Skript gesucht um allowed workstations zu reduzieren
Moin Kollegen!
Hat jemand schon einmal per Skript die Liste der PCs, an denen sich ein AD-Benutzer anmelden kann, um bestimmte Workstations reduziert? Hinzufügen kann ich per Skript, jedoch nicht reduzieren.
Hat jemand schon einmal per Skript die Liste der PCs, an denen sich ein AD-Benutzer anmelden kann, um bestimmte Workstations reduziert? Hinzufügen kann ich per Skript, jedoch nicht reduzieren.
Please also mark the comments that contributed to the solution of the article
Content-Key: 193605
Url: https://administrator.de/contentid/193605
Printed on: April 18, 2024 at 03:04 o'clock
10 Comments
Latest comment
Hallo DWW!
Sollte einfach per Auslesen, Ersetzen im String und Neuschreiben zu machen sein - per VBS für eine ganze OU etwa so:
Wenn eine größere Anzahl an Workstations entfernt werden soll, würde sich natürlich ein Array und anstelle der Zeilen 5 und 6 eine Schleife anbieten ...
Grüße
bastla
[Edit] Fehlendes "e" in "Allowed" (Zeile 14) nachgereicht [/Edit]
Sollte einfach per Auslesen, Ersetzen im String und Neuschreiben zu machen sein - per VBS für eine ganze OU etwa so:
Set OU = GetObject("LDAP://ou=Test,dc=firma,dc=local")
OU.Filter = Array("user")
For Each objUser In OU
Allowed = objUser.userWorkstations
Allowed = Replace(Allowed, "PC010", "")
Allowed = Replace(Allowed, "PC012", "")
'überflüssige Kommata entfernen
Do
Allowed = Replace(Allowed, ",,", ",")
Loop Until InStr(Allowed, ",,") = 0
If Allowed <> "," Then
If Left(Allowed, 1) = "," Then Allowed = Mid(Allowed, 2)
If Right(Allowed, 1) = "," Then Allowed = Left(Allowed, Len(Allowed) - 1)
End If
objUser.userWorkstations = Allowed
objUser.SetInfo
Next
Grüße
bastla
[Edit] Fehlendes "e" in "Allowed" (Zeile 14) nachgereicht [/Edit]
Hallo DWW!
Sorry - manchmal dauert's lang, dann wieder länger ...
Die Ursache dürfte sein, dass ein Benutzer (bereits vorher oder nach dem Entfernen der angegebenen Workstations) eine "leere Liste" erhält (was bedeutet, dass er sich an allen Workstations anmelden darf) - der Fehler sollte sich so vermeiden lassen:
Grüße
bastla
Sorry - manchmal dauert's lang, dann wieder länger ...
Die Ursache dürfte sein, dass ein Benutzer (bereits vorher oder nach dem Entfernen der angegebenen Workstations) eine "leere Liste" erhält (was bedeutet, dass er sich an allen Workstations anmelden darf) - der Fehler sollte sich so vermeiden lassen:
Set OU = GetObject("LDAP://ou=Test,dc=firma,dc=local")
OU.Filter = Array("user")
For Each objUser In OU
Allowed = objUser.userWorkstations
Allowed = Replace(Allowed, "PC010", "")
Allowed = Replace(Allowed, "PC012", "")
'überflüssige Kommata entfernen
Do
Allowed = Replace(Allowed, ",,", ",")
Loop Until InStr(Allowed, ",,") = 0
If Allowed <> "," Then
If Left(Allowed, 1) = "," Then Allowed = Mid(Allowed, 2)
If Right(Allowed, 1) = "," Then Allowed = Left(Allowed, Len(Allowed) - 1)
End If
If Allowed <> "" Then
objUser.userWorkstations = Allowed
Else
objUser.PutEx 1, "userWorkstations", 0
End If
objUser.SetInfo
Next
bastla