Announcement

Collapse
No announcement yet.

installierte server auf dem rechner finden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • installierte server auf dem rechner finden

    Hallo!

    wie kann man mit .NET rausfinden, welche Server grad auf dem rechner laufen/installiert sind?

    Gibt es da einen einfachen Code?

    Vielen Dank im Voraus

  • #2
    Welche Server suchst du denn?
    Du könntest nach installierten Dienst(Namen) suchen die so von deinen gesuchten Servern angelegt werden.

    Comment


    • #3
      Ich suche speziell SQL Server. Also das programm soll mir eine liste geben, welche sql Server ich drauf hab und (optional) ob die laufen.

      Und nicht nur die standard sql server. sondern auch postgres und filemaker. :-) Gibt es einen code, der das aus dem system lesen kann? kann man es vielleicht in der registry auslesen?

      Comment


      • #4
        Da wirst du schon für jeden Server deinen eigenen Code schreiben dürfen.

        Für den MS-SQL-Server suche z.B. nach SQLDMO im Forum.

        Comment


        • #5
          das hab ich mir schon gedacht, da ich schon länger danach gesucht habe. :-)

          SQLDMO kommt nicht in frage, da ich das installieren müsste. und am ende ist dann doch kein MS SQL Server auf dem Rechner. *lol*

          Theoretisch könnte ich doch einfach aus der registry die installierten treiber auslesen. Oder halt aus der Datei ODBC.ini. (weiß ich jetzt nicht genau)

          1. Sind die Treiber auch vorhanden, wenn kein SQL Server installiert ist?
          2. Werden die treiber immer da gespeichert? Und speichert Postgres die treiber-details da?
          3. wenn die server deinstalliert werden, bleiben die treiber im system? (einträge in der Registry, etc...)

          Comment


          • #6
            Originally posted by tipsybroom View Post
            SQLDMO kommt nicht in frage, da ich das installieren müsste. und am ende ist dann doch kein MS SQL Server auf dem Rechner. *lol*
            Dann wäre noch mit NetServerEnum zu suchen ...

            Originally posted by tipsybroom View Post
            Theoretisch könnte ich doch einfach aus der registry die installierten treiber auslesen. Oder halt aus der Datei ODBC.ini. (weiß ich jetzt nicht genau)
            Geht nur solange bis MS mal wieder die Spielregeln ändert ...

            Originally posted by tipsybroom View Post
            1. Sind die Treiber auch vorhanden, wenn kein SQL Server installiert ist?
            Ja. Der MS SQL-Server fast immer und die andern wenn die Client-Zugriffs-Kompos installiert sind.

            Originally posted by tipsybroom View Post
            2. Werden die treiber immer da gespeichert? Und speichert Postgres die treiber-details da?
            Nur wenn ein ODBC-Treiber installiert wird. Jedoch gehen viele eher über OLE DB oder ADO.NET-Provider oder andere native Zugriffskompos auf eine DB. Und wer sagt das Oracle, MS SQL, ... ODBC nicht irgendwann nicht mehr unterstützen ...

            Originally posted by tipsybroom View Post
            3. wenn die server deinstalliert werden, bleiben die treiber im system? (einträge in der Registry, etc...)
            Höchstwahrscheinlich ja. Sind ja die Treiber für die Clients.

            Comment


            • #7
              kann ich durch das suchen der dienste sicher gehen, dass nur die server gelistet werden, die installiert sind?

              Comment


              • #8
                Originally posted by tipsybroom View Post
                kann ich durch das suchen der dienste sicher gehen, dass nur die server gelistet werden, die installiert sind?
                Wieso sollten sonst die zu einem (SQL-)Server gehörigen Windows-Dienste installiert sein?

                Comment


                • #9
                  Jetzt muss ich nur noch wissen wie das geht. :-)

                  Ich hab schon codes gesehen, die NetServerEnum und NetApi32 enthalten, aber ich hab keine ahnung, welcher der beste ist. :-)

                  Comment


                  • #10
                    > Ich hab schon codes gesehen, die NetServerEnum und NetApi32 enthalten, aber ich hab keine ahnung, welcher der beste ist. :-)

                    Wichtig ist eher welcher der fehlerfreiste sein wird.
                    Aber unter .NET könnte es u.U. auch eine Kaplslung in einer Klasse geben.

                    Such mal unter Microsoft Win32 to Microsoft .NET Framework API Map ob du was findest

                    Comment


                    • #11
                      ich benutze vb.net mit dem framework 2.0. Leider kann ich keine der Klassen aufrufen auf dieser seite. :-(

                      also der namespace system.serviceprocess fehlt bei mir.


                      Dann noch was: Wie finde ich Raus unter welchem Servernamen der SQL Server dann läuft? Also ob er "local" oder einfach nur "Domain\SQLEXPRESS" heißt?
                      Zuletzt editiert von tipsybroom; 20.04.2007, 09:41.

                      Comment


                      • #12
                        Schonmal versuch den Namespace als Verweis hinzuzufügen?!

                        Mit
                        Code:
                        If Service.ServiceName.Contains("sql")
                        solltest Du dann den/die entsprechenden Dienst(e) herausbekommen und abfragen können...

                        Comment

                        Working...
                        X