Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Skript gesucht um allowed workstations zu reduzieren

Frage Entwicklung Batch & Shell

Mitglied: DerWoWusste

DerWoWusste (Level 5) - Jetzt verbinden

01.11.2012, aktualisiert 23:41 Uhr, 2251 Aufrufe, 10 Kommentare

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.
Mitglied: bastla
02.11.2012, aktualisiert um 11:43 Uhr
Hallo DWW!

Sollte einfach per Auslesen, Ersetzen im String und Neuschreiben zu machen sein - per VBS für eine ganze OU etwa so:
01.
Set OU = GetObject("LDAP://ou=Test,dc=firma,dc=local") 
02.
OU.Filter = Array("user") 
03.
For Each objUser In OU 
04.
    Allowed = objUser.userWorkstations 
05.
    Allowed = Replace(Allowed, "PC010", "") 
06.
    Allowed = Replace(Allowed, "PC012", "") 
07.
 
08.
    'überflüssige Kommata entfernen 
09.
    Do 
10.
        Allowed = Replace(Allowed, ",,", ",") 
11.
    Loop Until InStr(Allowed, ",,") = 0 
12.
    If Allowed <> "," Then 
13.
        If Left(Allowed, 1) = "," Then Allowed = Mid(Allowed, 2) 
14.
        If Right(Allowed, 1) = "," Then Allowed = Left(Allowed, Len(Allowed) - 1) 
15.
    End If 
16.
 
17.
    objUser.userWorkstations = Allowed 
18.
    objUser.SetInfo 
19.
Next
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]
Bitte warten ..
Mitglied: DerWoWusste
02.11.2012, aktualisiert um 09:41 Uhr
Moin bastla!

Sehr schön. e22472956952a50dfe0ca580bf8022cb - Klicke auf das Bild, um es zu vergrößern
Läuft wie erwünscht.

Danke!

PS: ein allowd musste wohl noch durch allowed ersetzt werden.
Bitte warten ..
Mitglied: bastla
02.11.2012, aktualisiert um 11:46 Uhr
Hallo DWW!

Schön, dass ich auch Dir mal etwas zu bieten hatte ...
ein allowd musste wohl noch durch allowed ersetzt werden.
So isses (war wohl doch schon etwas spät gestern / früh heute ; habe ich inzwischen oben nachgetragen) ...

Grüße
bastla
Bitte warten ..
Mitglied: DerWoWusste
02.11.2012 um 12:25 Uhr
Schön, dass ich auch Dir mal etwas zu bieten hatte
Das war ja nun nicht zum ersten Mal
Bitte warten ..
Mitglied: bastla
02.11.2012 um 12:31 Uhr
[OT] Hallo DWW!

Dann beruht das zumindest auf Gegenseitigkeit ...

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: DerWoWusste
11.04.2013, aktualisiert um 13:20 Uhr
Hallo Bastla.

Ich hatte das Skript damals erfolgreich ausprobiert. Nun benötige ich es und es bringt Fehler - ich verstehe leider nicht, woran es liegt. Habe es wie oben übernommen, nur den LDAP-Namen angepasst.
Es bringt die Meldung [Windows Script Host]
Line:18, Char:5 The attribute syntax specified to the directory
service is invalid. Code 8007200B
Source: (null)

Hast Du zufällig noch den Durchblick?

Grüße
DWW
Bitte warten ..
Mitglied: bastla
12.04.2013 um 15:59 Uhr
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:
01.
Set OU = GetObject("LDAP://ou=Test,dc=firma,dc=local") 
02.
OU.Filter = Array("user") 
03.
For Each objUser In OU 
04.
    Allowed = objUser.userWorkstations 
05.
    Allowed = Replace(Allowed, "PC010", "") 
06.
    Allowed = Replace(Allowed, "PC012", "") 
07.
    'überflüssige Kommata entfernen 
08.
    Do 
09.
        Allowed = Replace(Allowed, ",,", ",") 
10.
    Loop Until InStr(Allowed, ",,") = 0 
11.
    If Allowed <> "," Then 
12.
        If Left(Allowed, 1) = "," Then Allowed = Mid(Allowed, 2) 
13.
        If Right(Allowed, 1) = "," Then Allowed = Left(Allowed, Len(Allowed) - 1) 
14.
    End If 
15.
    If Allowed <> "" Then 
16.
        objUser.userWorkstations = Allowed 
17.
    Else 
18.
        objUser.PutEx  1, "userWorkstations", 0 
19.
    End If 
20.
    objUser.SetInfo 
21.
Next
Grüße
bastla
Bitte warten ..
Mitglied: DerWoWusste
12.04.2013 um 16:29 Uhr
Ahhh
Es ist doch immer wieder schön, wenn Leute den Durchblick haben! So funktioniert es. Ich hoffe, ich werde das bald selbst durchschauen.
Vielen Dank!
Bitte warten ..
Mitglied: bastla
12.04.2013 um 16:40 Uhr
Hallo DWW!

Ein vernünftige Fragestellung / Beschreibung (wie hier durch die Fehlermeldung) macht's ja leicht ...

A propos vernünftig: Es wäre wohl viel zu einfach, wenn MS die Whitelist für die "UserWorkstations" durch eine Blacklist ergänzt hätte ...

Grüße
bastla
Bitte warten ..
Mitglied: DerWoWusste
29.05.2013 um 15:47 Uhr
Ha... noch ein Pferdefuß...
Die Replace-Fuktion ist case-sensitive. Wer das vermeiden will, nehme
an den entscheidenden Stellen
01.
Allowed = Replace(Allowed, "PC010", "", 1, -1, vbTextCompare)
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Sonstige Systeme
gelöst Kostenfreies Ticketsystem gesucht (4)

Frage von Stefan007 zum Thema Sonstige Systeme ...

Windows Server
gelöst Skript per GPO ausführen - Berechtigungen? (13)

Frage von honeybee zum Thema Windows Server ...

LAN, WAN, Wireless
Software für Backup oder Datensynchronisation über WAN gesucht (4)

Frage von Rubiks zum Thema LAN, WAN, Wireless ...

Batch & Shell
Script zum Auflösen einer Ordnerstruktur und zurück gesucht (12)

Frage von websolutions zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...