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, 3682 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
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Batch - Warten bis bestimmter Task läuft (5)

Frage von Winfried-HH zum Thema Batch & Shell ...

Windows Server
SSL für WSUS läuft unter Server 2016 nicht (5)

Frage von Raynor zum Thema Windows Server ...

Windows 10
Vbs getobject auf per Task gestartete Anwendung (4)

Frage von schauan zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 7
gelöst BOOTMGR is missing (auch nach bootrec -RebuildBcd) (21)

Frage von Mipronimo zum Thema Windows 7 ...

Router & Routing
Tipps für Router (ca. 100 clients, VPN) (20)

Frage von oel-auge zum Thema Router & Routing ...

Windows Userverwaltung
Windows Freigabe: Zugriff auf alle Ordner trotz Sicherheitseinstellungen (18)

Frage von Pandreas zum Thema Windows Userverwaltung ...

Exchange Server
gelöst MS Exchange 2016 - Basicconfig Fragen (16)

Frage von maddig zum Thema Exchange Server ...