AD - auslesen nach OS, Computer, Lastlogon, Ping - VB Script
//edit hier die funktionierende Version - kein Grund die unteren Konversation durchzugehen.
Das Skript liest euch Active Directory aus nach folgenden Kriterien:
Computerobjekte - die mit OS Windows XP laufen, erstellt ein .txt File und schreibt euch folgendes rein:
Computername, OS, Last Logontime und ein Ping auf jedes Objekt (wobei eine Antwort 0= Online und 11004=Offline bedeutet)
Hoffe das hilft !
Lg. S
[Edit Biber] Codeformatierung [/Edit]
Das Skript liest euch Active Directory aus nach folgenden Kriterien:
Computerobjekte - die mit OS Windows XP laufen, erstellt ein .txt File und schreibt euch folgendes rein:
Computername, OS, Last Logontime und ein Ping auf jedes Objekt (wobei eine Antwort 0= Online und 11004=Offline bedeutet)
Hoffe das hilft !
Lg. S
' Skript to check Active Directory for : Operating System, object=Computer, ping each Comp.object and create a .txt report
' march 2012
' intressting = Replace function !! (see line 36)
'on error resume next
strComputer = "."
Set objOU = GetObject ("LDAP://OU=XXXXXXXXXX,DC=XXX,DC=XXX")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile ("\\Networkpath\users\XXX\Desktop\Logfile.txt", ForAppending = 8)
for each objMember in objOU
if objMember.Class = "computer" and objMember.operatingSystem = "Windows XP Professional" then
set objLastLogon = objMember.Get("lastLogonTimestamp")
i8High = objLastLogon.HighPart
i8Low = objLastLogon.LowPart
If (i8Low < 0) Then
i8High = i8High + 1
End If
intLastLogonTime = i8High * (2^32) + i8Low
intLastLogonTime = intLastLogonTime / (60 * 10000000)
intLastLogonTime = intLastLogonTime / 1440
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery("Select * From Win32_PingStatus where Address ='"& Replace(objMember.sAMAccountName, "$", "") & "'")
For Each objItem In colPings
onlStatus = objItem.PrimaryAddressResolutionStatus
Next
objTextFile.WriteLine("PC Name: " & Replace(objMember.sAMAccountName, "$", "") & " , Operating System :" & objMember.operatingSystem & " , Last logontime : " & intLastLogonTime + #1/1/1601# & " Onlinestatus : " & onlstatus)
end if
next
objTextFile.Close
set objOU = nothing
set objMember = nothing
set objLastLogon = nothing
set objWMIService = nothing
wscript.quit
[Edit Biber] Codeformatierung [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 182619
Url: https://administrator.de/contentid/182619
Ausgedruckt am: 23.11.2024 um 03:11 Uhr
12 Kommentare
Neuester Kommentar
Hallo DerSven2!
Vorweg: Findest Du nicht, dass Dein (von Biber für Dich formatierter) Code im Eröffnungsposting viel leserlicher ist? Die entsprechende Formatierung geht auch gar nicht so schwer ( ) und lässt sich auch nachträglich noch einbauen ...
Ich würde einfach
verwenden, auf jeden Fall aber das "
Grüße
bastla
Vorweg: Findest Du nicht, dass Dein (von Biber für Dich formatierter) Code im Eröffnungsposting viel leserlicher ist? Die entsprechende Formatierung geht auch gar nicht so schwer ( ) und lässt sich auch nachträglich noch einbauen ...
Ich würde einfach
onlStatus = colPings.StatusCode
Set
" weglassen ...Grüße
bastla
Hallo DerSven2!
besser ...
Grüße
bastla
Line 28 char.4 : Object variable not set
Die Zeile 31 muss nach dem "Next
" platziert werden, und die Zeilen 33 bis 36 kannst Du weglassen (oder zumindest ebenfalls aus der Schleife raus nach unten verschieben) ...die Ausgabe ist in CN="PCname"
Dann wäre wohlobjMember.sAMAccountName
Grüße
bastla