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, 3701 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
Windows Server
GPO auf User-OU greift nicht (1)

Frage von eastfrisian zum Thema Windows Server ...

Entwicklung
gelöst Grafische Darstellung - Fortschrittsanzeige VBS Skript (7)

Frage von Komoran12 zum Thema Entwicklung ...

Batch & Shell
Powershell - LastExitCode aus Job? (7)

Frage von Markus2016 zum Thema Batch & Shell ...

Batch & Shell
gelöst Vbs programm unabhängig vom Speicherort ausführen (2)

Frage von Markus2016 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Firewall
Welche Firewall ? (18)

Frage von Cyberurmel zum Thema Firewall ...

Windows Server
gelöst Einzelnes Windows Update über GPO deinstallieren (16)

Frage von lordofremixes zum Thema Windows Server ...