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, 2256 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
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Windows Update
Powershell WSUS Automation Skript - PoshWSUS

Frage von sigisigi zum Thema Windows Update ...

Windows Server
gelöst IIS Benutzerdefinierte Sitedelegierung mittels Skript (16)

Frage von EditorialBagPipe zum Thema Windows Server ...

Microsoft
SharePoint Search Server gesucht (3)

Frage von MasterSchlumpf zum Thema Microsoft ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (20)

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

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...