Jump to content

Benutzername und Computername aller angemeldeten Benutzer ausgeben


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

  • 2 Wochen später...

Hi, ich habe mich damit auch mal befasst. Dieses Skript als .vbs abspeichern. Es funktioniert, wenn alle Firewalls richtig konfiguriert oder ausgeschaltet sind. Und dann auf dem Domänencontroller mit Adminrechten in der Konsole mit

'cscript Pfad >Datei.txt'

starten. Teste es 'mal.

 

Set objShell = CreateObject("WScript.Shell")
Set objWshScriptExec = objShell.Exec("net view")
'Zum Abfangen der "net view"Ausgabe stdOut verwenden
Set objStdOut = objWshScriptExec.StdOut
'gesamte "net view"-Ausgabe in strOutput speichern ...
strOutput = objStdOut.ReadAll
'... und in einzelne Zeilen zerlegen (am Zeilenende = vbCrLF splitten), die als Array gespeichert werden.
'aLines = Array("")
aLines = Split(strOutput, vbCrLF)
'Variable für die Zusammenfassung initialisieren
strResult = ""
'Schleife über alle einzelnen Zeilen
For i = 0 To UBound(aLines)
   'Wenn die Zeile mit "\\" beginnt, ...
   If Left(aLines(i), 2) = "\\" Then
       '... enthält sie ab Position 3 einen Rechnernamen.
strCmp = Trim(Mid(aLines(i), 3))
On Error Resume Next
strCompi = Split(strCmp, " ")
strCmp = strCompi(0)
       'Falls beim Abfragen des Computers ein Fehler eintritt, nicht abbrechen ...
       On Error Resume Next
       'Ab dem zweiten gefundenen Rechner (wenn strResult also schon ein Ergebnis enthält) ...
       If strResult <> "" Then
           '... zunächst eine Zeilenschaltung und dann Computernamen und User hinzufügen.
           strResult = strResult & vbCrLF & strCmp & vbTab & UserName(strCmp)
       Else
           'Beim ersten Eintrag ist die Zeilenschaltung nicht nötig.
           strResult = strCmp & vbTab & UserName(strCmp)
       End If
       'Ab hier wieder bei einem Fehler abbrechen ...
       On Error Goto 0
   End If


Next

'Das Ergebnis in einer Form ausgeben, die auch den Aufruf aus einer Batchdatei ermöglicht:
WScript.Echo strResult
WScript.Quit

Function UserName(strComputer)
'Abfrage des beim Funktionsaufruf übergebenen Computernamens per WMI
Set objWMIService = GetObject("WinMgmts:\\" & strComputer & "\root\cimv2") 
Set colItems = objWMIService.ExecQuery( _
   "SELECT * FROM Win32_ComputerSystem",,48) 
'Auch wenn nur ein Computer abgefragt wird, ist das Ergebnis eine Aufzählung,
'deren einzelne Elemente mit "For Each" durchlaufen werden ...
For Each objItem in colItems
   'Den Usernamen als Eigenschaft auslesen und zwischenspeichern ...
   strUser = objItem.UserName
Next
'... und falls kein User angemeldet ist, Infotext erzeugen.
If IsNull(strUser) Then strUser = "No User"
'Function-Ergebnis festlegen
UserName = strUser
End Function

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...