15858
02.04.2007, aktualisiert um 15:01:53 Uhr
7303
11
0
Überprüfen ob Computer Mitglied einer OU ist
Hi,
ich möchte per Script, am besten mit VB-Script überprüfen ob ein Computer Mitglied einer OU des Active Directory ist? Ich habe mitlerweile schon ettliche Foren durchsucht aber kein Beitrag konnte mir so richtig helfen.
Vielen Dank für eure Hilfe.
mfg 0per8or
ich möchte per Script, am besten mit VB-Script überprüfen ob ein Computer Mitglied einer OU des Active Directory ist? Ich habe mitlerweile schon ettliche Foren durchsucht aber kein Beitrag konnte mir so richtig helfen.
Vielen Dank für eure Hilfe.
mfg 0per8or
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 55624
Url: https://administrator.de/contentid/55624
Ausgedruckt am: 26.11.2024 um 11:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo Oper8or!
Als Grundgerüst:
Grüße
bastla
Als Grundgerüst:
strComputer = "TestRechner"
strOU = "TestOU"
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = _
"Select Name, Location from 'LDAP://OU=" & strOU & ",DC=firma,DC=local' " _
& "Where objectClass='computer'"
objCommand.Properties("Page Size") = 1000
Set objRecordSet = objCommand.Execute
If objRecordSet.EOF Then
WScript.Echo "In OU " & strOU & " keine Computer gefunden!"
WScript.Quit(1)
End If
objRecordSet.MoveFirst
bolInOU = False
Do Until objRecordSet.EOF
If UCase(objRecordSet.Fields("Name").Value) = UCase(strComputer) Then
bolInOU = True
Exit Do
End If
objRecordSet.MoveNext
Loop
If bolInOU Then
WScript.Echo strComputer & " ist in der OU " & strOU
Else
WScript.Echo strComputer & " ist nicht in der OU " & strOU
WScript.Quit(1)
End If
Grüße
bastla
Moin 0per8or,
eine Winzigkeit schlanker als bastla's Vorlage wäre die (wiederverwendbare) Funktion IsMember() als VBS-Schnipsel.
Gruss
Biber
[Edit] vorletzte Zeile (falscher Variablenname) korrigiert, s. bastla's Folgepost.
@bastla Thx, und bzgl. "Zu schlank ist ja nicht so unbedingt mein Fall":
Soll ich Dir meine Ex-Schwiegermutter vorstellen? [/Edit]
eine Winzigkeit schlanker als bastla's Vorlage wäre die (wiederverwendbare) Funktion IsMember() als VBS-Schnipsel.
'....irgendwo in Deinem VBS-krams...
....
Function IsMember(strGroup)
Set objNetwork = CreateObject("WScript.Network")
strDomain = objNetwork.UserDomain
strADUser = objNetwork.UserName
bIsMember = False
strCompGrp = UCase(strGroup)
' mit LDAP User in Active Directory finden und binden
Set strADUser = GetObject("WinNT://" & strDomain & "/" & strADUser & ",user")
For Each objGroup In strADUser.Groups
If UCase(objGroup.Name) = strCompGrp Then
bIsMember = True
Exit For
End If
Next
IsMember = bIsMember
End Function
Gruss
Biber
[Edit] vorletzte Zeile (falscher Variablenname) korrigiert, s. bastla's Folgepost.
@bastla Thx, und bzgl. "Zu schlank ist ja nicht so unbedingt mein Fall":
Soll ich Dir meine Ex-Schwiegermutter vorstellen? [/Edit]
@Biber
Zu schlank ist ja nicht so unbedingt mein Fall, aber wiederverwendbar ist gut:
Grüße
bastla
P.S.: In Deiner vorletzten Zeileist war ein Tippfehler, ansonsten ging's hier mehr um Computer und OU ...
Zu schlank ist ja nicht so unbedingt mein Fall, aber wiederverwendbar ist gut:
WScript.Echo CompIsOUMember("TestRechner", "TestOU", "DC=firma,DC=local")
Function CompIsOUMember(strComputer, strOU, strDom)
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = _
"Select Name from 'LDAP://OU=" & strOU & "," & strDom & "' " & _
"Where objectClass='computer' And Name='" & strComputer & "'"
Set objRecordSet = objCommand.Execute
If objRecordSet.EOF Then
bolInOU = False
Else
bolInOU = True
End If
CompIsOUMember = bolInOU
End Function
Grüße
bastla
P.S.: In Deiner vorletzten Zeile
@Biber
Grüße
bastla
P.S.: Anderes P.S. an die veränderte Code-Lage angepasst ...
Soll ich Dir meine Ex-Schwiegermutter vorstellen?
Obwohl ich bisher erst sehr wenig über sie weiß ("Social Engineering" ist ja mehr die Stärke von LSW), muss ich Dich trotzdem fragen: Womit hätte ich das verdient?Grüße
bastla
P.S.: Anderes P.S. an die veränderte Code-Lage angepasst ...