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

VBS-Job läuft in OU aber nicht in Unter-OUs

Frage Entwicklung VB for Applications

Mitglied: JoshuaTree

JoshuaTree (Level 1) - Jetzt verbinden

29.04.2009, aktualisiert 18.10.2012, 3692 Aufrufe, 6 Kommentare

Hallo,

ich habe mir ein Script gebastelt das mir an jeden User-Objekt etwas ändert.
Das Funktioniert auch allerdings nur in der OU in der ich das Script starte.
Ich hätte gerne das es auch wenn es eine Unter-OU findet die User darin bearbeitet wie kann ich das.

01.
Dim OutPutFile,Username,newmailnickname,newmailnicknamepart1,newmailnicknamepart2 
02.
 
03.
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject") 
04.
Set OutPutFile = FileSystem.CreateTextFile(".\alias.csv", True) 
05.
OutPutFile.WriteLine "Username;Alias" 
06.
 
07.
Set objRootDSE = GetObject("LDAP://rootDSE") 
08.
Set objContainer = GetObject("LDAP://ou=blabla,dc=domain,DC=de") 
09.
 
10.
For Each obj In objContainer 
11.
    			   
12.
       
13.
                
14.
     
15.
    Username = obj.givenName & " " & obj.sn 
16.
    newmailNickNamePart1 = Left(obj.givenName,2) 
17.
    newmailNickNamePart2 = Left(obj.sn,6) 
18.
    newmailnickname = newmailNickNamePart1 & newmailNickNamePart2 
19.
    WScript.Echo "Username:" & Username & vbCrlf & "newmailnickName: " & newmailnickname 
20.
    outputFile.WriteLine UserName & ";" & newmailnickname 
21.
     
22.
     
23.
     
24.
     
25.
    obj.Put "mailnickName", (newmailNickName)    
26.
    obj.SetInfo                                           
27.
     
28.
		 
29.
Next
Gruss
Andreas
Mitglied: bastla
29.04.2009, aktualisiert 18.10.2012
Hallo JoshuaTree!

Den Link zu How Can I List All the Sub-OUs in an OU? hatte ich Dir an anderer Stelle schon einmal angeboten ...

Grüße
bastla
Bitte warten ..
Mitglied: JoshuaTree
05.05.2009 um 11:09 Uhr
Hi Bastla,

vielen lieben Dank ich habs einfach nicht mehr gefunden und hatte insgeheim die Hoffnung das du das hier liest

Gruss
Andreas
Bitte warten ..
Mitglied: JoshuaTree
05.05.2009 um 11:19 Uhr
Kann ich das mit meinem Provider zusammenfrickeln?
Ich benutze ja den rootdse und wir in unserem alten Script den ADODB ?

Oh man
Bitte warten ..
Mitglied: bastla
05.05.2009 um 20:30 Uhr
Hallo JoshuaTree!

Du bekommst aus dem anderen Script ja ohnehin einen "ADSPath" - den kannst Du dann als Basis für Dein Script verwenden, also etwa:
01.
Const ADS_SCOPE_SUBTREE = 2 
02.
 
03.
Set objConnection = CreateObject("ADODB.Connection") 
04.
Set objCommand =   CreateObject("ADODB.Command") 
05.
objConnection.Provider = "ADsDSOObject" 
06.
objConnection.Open "Active Directory Provider" 
07.
Set objCommand.ActiveConnection = objConnection 
08.
 
09.
objCommand.Properties("Page Size") = 1000 
10.
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  
11.
 
12.
objCommand.CommandText = _ 
13.
    "SELECT ADsPath FROM 'LDAP://ou=blabla,dc=domain,DC=de' WHERE " & _ 
14.
        "objectCategory='organizationalUnit'"   
15.
Set objRecordSet = objCommand.Execute 
16.
 
17.
objRecordSet.MoveFirst 
18.
Do Until objRecordSet.EOF 
19.
    ADSPath = objRecordSet.Fields("ADsPath").Value 
20.
    Set objContainer = GetObject(ADSPath) 
21.
    For Each obj In objContainer 
22.
        Username = obj.givenName & " " & obj.sn 
23.
        ' ... 
24.
    Next 
25.
    objRecordSet.MoveNext 
26.
Loop
Grüße
bastla
Bitte warten ..
Mitglied: JoshuaTree
13.05.2009 um 17:22 Uhr
@bastla
Habe mir den Code umgebaut.
Wenn ich ihn mit wscript.echo durchlaufen lies war alles gut.
Jetzt wo ich die änderung machen wollte bleibt er stehen mit:
script.vbs(35, 5) (null): Die Attributsyntax, die dem Verzeichnisdienst übergeben wurde, ist ungültig.
Zeile 35 ist die obj.SetInfo vorher hat er 8 objekte sauber bearbeitet.
Kann es sein das das Script ein Problem damit hat wenn es auf ein Gruppenobjekt trifft?


01.
Dim OutPutFile,Username,newmailnickname,newmailnicknamepart1,newmailnicknamepart2 
02.
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject") 
03.
Set OutPutFile = FileSystem.CreateTextFile(".\alias.csv", True) 
04.
OutPutFile.WriteLine "Username;Alias" 
05.
 
06.
 
07.
Const ADS_SCOPE_SUBTREE = 2 
08.
 
09.
Set objConnection = CreateObject("ADODB.Connection") 
10.
Set objCommand =   CreateObject("ADODB.Command") 
11.
objConnection.Provider = "ADsDSOObject" 
12.
objConnection.Open "Active Directory Provider" 
13.
Set objCommand.ActiveConnection = objConnection 
14.
 
15.
objCommand.Properties("Page Size") = 1000 
16.
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  
17.
 
18.
objCommand.CommandText = _ 
19.
    "SELECT ADsPath FROM 'LDAP://ou=administration,dc=blabla,DC=de' WHERE " & _ 
20.
        "objectCategory='organizationalUnit'"   
21.
Set objRecordSet = objCommand.Execute 
22.
 
23.
objRecordSet.MoveFirst 
24.
Do Until objRecordSet.EOF 
25.
    ADSPath = objRecordSet.Fields("ADsPath").Value 
26.
    Set objContainer = GetObject(ADSPath) 
27.
    For Each obj In objContainer 
28.
        Username = obj.givenName & " " & obj.sn 
29.
    	newmailNickNamePart1 = Left(obj.givenName,2) 
30.
    	newmailNickNamePart2 = Left(obj.sn,6) 
31.
    	newmailnickname = newmailNickNamePart1 & newmailNickNamePart2 
32.
    	'WScript.Echo "Username:" & Username & vbCrlf & "newmailnickName: " & newmailnickname 
33.
    	 
34.
    obj.Put "mailnickName", (newmailNickName) 'Attribut in Zwischenspeicher schreiben 
35.
    obj.SetInfo                               'Zwischenspeicher in Objekt übertragen 
36.
    outputFile.WriteLine UserName & ";" & newmailnickname 
37.
    
38.
    
39.
    Next 
40.
    objRecordSet.MoveNext 
41.
Loop
Bitte warten ..
Mitglied: bastla
13.05.2009 um 17:43 Uhr
Hallo JoshuaTree!

Versuch es mit folgender zusätzlicher Zeile (zwischen 26 und 27):
objContainer.Filter = Array("user")
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Exchange Server
gelöst Auf SBS 2011 läuft POPcon - bekomme eine Mail nicht raus (9)

Frage von jensgebken zum Thema Exchange Server ...

Weiterbildung
Neue Betrugsmasche: Gefälschte Job-Angebote im Internet (4)

Link von Frank zum Thema Weiterbildung ...

Windows Userverwaltung
Active Directory - OU Anordnung und Aufbau (9)

Frage von nightwishler zum Thema Windows Userverwaltung ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...