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, 3707 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 Powershell - LastExitCode aus Job? (7)

Frage von Markus2016 zum Thema Batch & Shell ...

Exchange Server
Outlook Office 365 Syncjob nimmt keine neue OU an

Frage von Chonta zum Thema Exchange Server ...

Windows Server
gelöst Site-GPO auf OU anwenden, bei der die Vererbung deaktiviert ist?! (3)

Frage von mexx991 zum Thema Windows Server ...

Windows Server
AD Bestimmten Benutzer (Hilfsadmin) nur Zugriff auf eine OU geben (1)

Frage von conym18 zum Thema Windows Server ...

Neue Wissensbeiträge
Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Exchange Server

Mittels Batch-Script Exchange-Logs sammeln und archivieren

Anleitung von beidermachtvongreyscull zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
SSL Zertifikat für HTTPS (29)

Frage von Hendrik2586 zum Thema Verschlüsselung & Zertifikate ...

Grafikkarten & Monitore
24" oder 27" mit Full HD oder doch mehr Auflösung? (21)

Frage von brutzler zum Thema Grafikkarten & Monitore ...

Netzwerke
Ip Adressenkonflikt bei Großfamilie (12)

Frage von gunter zum Thema Netzwerke ...