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, 2254 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
Ähnliche Inhalte
Netzwerkmanagement
Benachrichtigungstool gesucht - unter 50 Euro (4)

Frage von sojos zum Thema Netzwerkmanagement ...

Peripheriegeräte
gelöst Barcodescanner LongRange für ca. 3m gesucht (5)

Frage von TiCar zum Thema Peripheriegeräte ...

Backup
Backupkonzept gesucht, bzw. Frage zum Beispiel (9)

Frage von DeathNote zum Thema Backup ...

Heiß diskutierte Inhalte
Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (14)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...

Viren und Trojaner
Wie werde ich den Mist "fanli90" wieder los? (12)

Frage von Taumel zum Thema Viren und Trojaner ...