Auf zb SBS2011 diverse Dinge auslesen

Colisspo

Ensign
Registriert
Okt. 2013
Beiträge
163
Hallo, ich hätte sehr gerne gewusst, ob man auf zb einem Windows SBS 2011 folgende Dinge auslesen, bzw. sehen kann:
*Welche User innerhalb der Domäne sind momentan angemeldet?
*Wo kann ich sehen, welche Clients welches Office installiert haben?
*Wo kann ich sehen, welche Clients welches Windows als OS benutzen?

Das wären erstmal DREI grundlegende Dinge, die für mich wichtig wären.
 
Zuletzt bearbeitet:
Colisspo schrieb:
Das wären erstmal zwei grundlegende Dinge, die für mich wichtig wären.

Ähm, nicht 3?

Und zu 1-3: Google liefert hierzu hervorragende Antworten, teilweise sogar direkt von Microsoft...
 
Du hast recht, 3 ;-)
Wonach hast du bei Google gesucht? Finde dort nämlich nix gescheites, sonst hätte ich hier nicht gefragt..
 
Zu 1) Geht mit Powershell, aber die Kommandos hab ich gerade nicht parat

Zu 2) Soweit ich weiß kann man das nur aus den Clients direkt auslesen. Zum Beispiel mit WMI. Dazu kann ich den WMI Code Creator von Microsoft empfehlen. -> http://www.microsoft.com/en-us/download/confirmation.aspx?id=8572

Zu 3) Das kann man aus dem Active Directory auslesen.
Angenommen die Domäne heißt contoso.local und die Computer sind im AD im Container "Computers" eingeteilt, dann lautet der Pfad zu den Infos so: DC=contoso,DC=local,CN=Computers,CN=[Computername]
[Computername] muss man natürlich mit dem echten Computernamen ersetzen von dem man die Info braucht.
Die Attribute heißen "operatingSystem", "operatingSystemServicePack" und "operatingSystemVersion"
Mit ADSI-Editor kann man das prima nachvollziehen.

Für .NET gibt es passende Namespaces mit denen man das alles automatisiert abfragen kann. Dazu hätte ich auch Codebeispiele
 
Hi Doc,

das klingt doch alles schonmal sehr vielversprechend. Werde zweiteres zuerst mal probieren.
 
Zu drittens hätte ich stumpf den WSUS aufgerufen, bei 2 auch wenn es denn nicht Office 2013 PKC ist.
Die angemeldeten Clients sind normalerweise im Dashboard drin wenn man sich an diese SBS-Zwangsjacke hält.
Und da steht ja wer on und offline ist.
 
Ich hab mal ein kleines Beispiel rausgesucht wie man in einem .NET Programm die Computerliste abrufen kann und die Attribute ausliest

Code:
using System.DirectoryServices.ActiveDirectory;
using System.DirectoryServices;

        DirectorySearcher ds;

        string SearchPathTemplate = "LDAP://OU=Workstations,DC=contoso,DC=local";

         public List<string> GetAllComputers()
        {
            List<string> computers = new List<string>();
            
            // Hole Objekte vom Typ Computer aus dem AD 
            ds = new DirectorySearcher("(samAccountType=805306369)");
            SearchResultCollection src = ds.FindAll();

            foreach (SearchResult res in src)
            {
                DirectoryEntry entry = res.GetDirectoryEntry();
                // Wenn das Computerkonto aktiv ist, füge dessen Attribut CN zur Liste hinzu, ansonsten nicht
                if (Convert.ToInt32(entry.Properties["userAccountControl"].Value) != 4096)
                    continue;
                else
                    computers.Add (entry.Properties["cn"].Value.ToString());
            }

            return computers;
        }

Beim SearchPathTemplate kann es sein dass man statt OU= CN= nehmen muss, je nachdem ob die Computerobjekte in einer Organisationseinheit oder in einem schnöden Container eingefügt wurden. Aber das sieht man dann schon in ADSIEdit.
Man kann auch nur "DC=contoso,DC=local" nehmen wenn man alle Computer im gesamten AD auslesen will.
 
Zurück
Oben