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, 2260 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 ..
Ähnliche Inhalte
Windows Systemdateien
Skript in Kombination mit PSExec (6)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Microsoft
PDF-Browserplugins für IRM-geschützte Inhalte gesucht (2)

Frage von DerWoWusste zum Thema Microsoft ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(11)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server Komplettspiegelung (13)

Frage von pdiddo zum Thema Windows Server ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...