Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 2268 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
Backup
gelöst Backup - Macrium Server oder Workstation ? (5)

Frage von Estefania zum Thema Backup ...

Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Vmware
VMware Workstation Restriction funktioniert nicht!? (8)

Frage von f0rml0s zum Thema Vmware ...

Exchange Server
GPO - Logon-Skript wird nicht ausgeführt (4)

Frage von Der-Phil zum Thema Exchange Server ...

Neue Wissensbeiträge
Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Humor (lol)
Freidach Beitrag (29)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Windows 7
SSD - Win7 Lags (19)

Frage von ph5555 zum Thema Windows 7 ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...