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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 193605
Url: https://administrator.de/forum/skript-gesucht-um-allowed-workstations-zu-reduzieren-193605.html
Ausgedruckt am: 17.04.2025 um 18:04 Uhr
10 Kommentare
Neuester Kommentar
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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