Top-Themen

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

Frage Entwicklung VB for Applications

GELÖST

Group Nesting per VBS Skript bricht ab

Mitglied: RetroDude

RetroDude (Level 1) - Jetzt verbinden

11.02.2009, aktualisiert 15:23 Uhr, 4332 Aufrufe, 6 Kommentare

Hallo

Ich möchte mit folgendem Skript, welchen ich stündlich über 2 Gruppen laufen lassen möchte, deren Member sicherstellen. So will ich sicherstellen, dass sich gewisse Gruppen in der entsprechenden Gruppe befinden. Ihr findet das komisch? Wäre es auch, hätten wir nicht eine AD Verwaltungssoftware, welche keine Verschachtelungen erlaubt. Wenn diese Gruppen generiert werden sind unsere manuell hinzugefügten Gruppen wieder raus. Deshalb will ich mit meinem Skript sicherstellen, dass diese speziellen Gruppen automatisch hinzugefügt werden.
Mein Problem ist aber, dass der Skript abbricht, sobald er einen Eintrag gefunden hat, welcher bereits existiert. Was muss ich einbauen, damit er trotzdem jeden Eintrag abbarbeitet?

Adds two groups (Executives and Scientists) and one user account (MyerKen) to the Sea-Users group in Active Directory.


Const ADS_PROPERTY_APPEND = 3

Set objGroup = GetObject _
("LDAP://cn=Man_Gen,cn=Groups,dc=NA,dc=fabrikam,dc=com")

objGroup.PutEx ADS_PROPERTY_APPEND, "member", _
Array("cn=Auto_Gen1,ou=Groups,dc=NA,dc=fabrikam,dc=com", _
"cn=Auto_Gen2,ou=Groups,dc=NA,dc=fabrikam,dc=com", _
"cn=Auto_Gen3,ou=Groups,dc=NA,dc=fabrikam,dc=com")

objGroup.SetInfo

Es ist in der Praxis nie der Fall, dass sämtliche Gruppen rausfallen. Deshalb ist es wichtig, dass das Skript bei einem bereits vorhandenen Gruppeneintrag bis zum Ende weiterfährt. Wäre es sinnvoller für jede hinzuzufügende Gruppe eine IF Schlaufe zu integrieren? Wenn ja, wie würde man das am elegantesten tun?

Gruss
Mitglied: bastla
12.02.2009 um 16:32 Uhr
Hallo RetroDude!

Eigentlich sollte es ja genügen, mit einem "On Error Resume Next" den Fehler zu übergehen - sinnvoll ist dies aber nur, wenn Du versuchst, jede Gruppe einzeln hinzuzufügen, also (ungetestet):
01.
Const ADS_PROPERTY_APPEND = 3 
02.
 
03.
Set objGroup = GetObject _ 
04.
("LDAP://cn=Man_Gen,cn=Groups,dc=NA,dc=fabrikam,dc=com") 
05.
 
06.
MyGroups = Array( _ 
07.
"cn=Auto_Gen1,ou=Groups,dc=NA,dc=fabrikam,dc=com", _ 
08.
"cn=Auto_Gen2,ou=Groups,dc=NA,dc=fabrikam,dc=com", _ 
09.
"cn=Auto_Gen3,ou=Groups,dc=NA,dc=fabrikam,dc=com") 
10.
 
11.
On Error Resume Next 
12.
For Each Group In MyGroups 
13.
    objGroup.PutEx ADS_PROPERTY_APPEND, "member", Array(Group) 
14.
    objGroup.SetInfo 
15.
Next 
16.
On Error Goto 0
Grüße
bastla
Bitte warten ..
Mitglied: RetroDude
13.02.2009 um 08:33 Uhr
Hallo Bastla!

Danke, werde es noch heute ausprobieren. Ich habe nur noch ein kleines Problem. Wie muss ich es machen, wenn ich mehrere Gruppen mit dem Skript modifizieren muss? D. h. diverse Arrays für diverse Gruppen? Einfach diesen Codeblock mehrmals verwenden? Oder ginge dies schlanker bzw. eleganter?

Gruss und Dank

RetroDude
Bitte warten ..
Mitglied: bastla
13.02.2009 um 11:22 Uhr
Hallo RetroDude!
Einfach diesen Codeblock mehrmals verwenden?
Die Zuwesiungen in den Zeilen 3 bis 9 musst Du auf jeden Fall mehrfach vornehmen, die Zeilen 11 bis 16 könntest/solltest Du in ein Unterprogramm auslagern.

Grüße
bastla
Bitte warten ..
Mitglied: RetroDude
13.02.2009 um 11:26 Uhr
Du meinst in eine Funktion und diese dann immer aufrufen? Wäre froh, wenn Du mir noch etwas auf die Sprünge helfen könntest...

Gruss
retrodude
Bitte warten ..
Mitglied: bastla
13.02.2009 um 11:42 Uhr
Hallo RetroDude!
Du meinst in eine Funktion und diese dann immer aufrufen?
Streng genommen ist eine "Function" dadurch gekennzeichnet, dass sie einen Rückgabewert liefert, während ein "Sub" dies nicht tut - aber grundsätzlich: ja.

Das könnte hier so aussehen:
01.
Const ADS_PROPERTY_APPEND = 3 
02.
 
03.
'erste Gruppe 
04.
Set objGroup = GetObject _ 
05.
("LDAP://cn=Man_Gen,cn=Groups,dc=NA,dc=fabrikam,dc=com") 
06.
MyGroups = Array( _ 
07.
"cn=Auto_Gen1,ou=Groups,dc=NA,dc=fabrikam,dc=com", _ 
08.
"cn=Auto_Gen2,ou=Groups,dc=NA,dc=fabrikam,dc=com", _ 
09.
"cn=Auto_Gen3,ou=Groups,dc=NA,dc=fabrikam,dc=com") 
10.
Eintragen 'Aufruf des Unterprogrammes 
11.
 
12.
' nächste Gruppe 
13.
Set objGroup = GetObject _ 
14.
("LDAP://cn=Test_Gen,cn=Groups,dc=NA,dc=fabrikam,dc=com") 
15.
MyGroups = Array( _ 
16.
"cn=Auto_Gen11,ou=Groups,dc=NA,dc=fabrikam,dc=com", _ 
17.
"cn=Auto_Gen12,ou=Groups,dc=NA,dc=fabrikam,dc=com") 
18.
Eintragen 
19.
 
20.
' ... and so on. 
21.
 
22.
 
23.
Sub Eintragen 
24.
On Error Resume Next 
25.
For Each Group In MyGroups 
26.
    objGroup.PutEx ADS_PROPERTY_APPEND, "member", Array(Group) 
27.
    objGroup.SetInfo 
28.
Next 
29.
On Error Goto 0 
30.
End Sub
Da in VBS alle Variablen "global" sind, müssen "objGroup" und "MyGroups" noch nicht einmal als Argumente übergeben werden.

Grüße
bastla
Bitte warten ..
Mitglied: RetroDude
13.02.2009 um 14:18 Uhr
Hei bastla!

Danke, klappt prima!

Grüsse und schönes Wochenende

RetroDude
Bitte warten ..
Ähnliche Inhalte
Windows 7
Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen
gelöst Frage von CeejaayWindows 72 Kommentare

Hallo, ich möchte per Batch-Skript oder VBS-Skript unter Windows 7 folgendes tun: - Registry-Key (nur den Wert, in diesem ...

VB for Applications
VBS Skript für AD Attribute füllen
gelöst Frage von pixel0815VB for Applications4 Kommentare

Guten Tag zusammen, ich bin auf der Suche nach einem VBS Skript, mit dem ich das Location Attribut eines ...

Entwicklung
Grafische Darstellung - Fortschrittsanzeige VBS Skript
gelöst Frage von Komoran12Entwicklung7 Kommentare

Hallo Ihr, ich brauche mal wieder eure Hilfe. Ich für mit nachfolgendem VBS Skript (hier im Forum gefunden) mehrere ...

Windows Server
Windows Server 2008R2 Shutdown Skript bricht ab
Frage von holyoneWindows Server13 Kommentare

Guten Morgen zusammen, ich habe ein kleines Problem und zwar folgendes. Ich habe 3 Server die Abhängig von einander ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...