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, 3674 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...