Top-Themen

Aktuelle Themen (A bis Z)

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
GELÖST

VBSkript um Attribute für AD-User zu ändern

Frage Entwicklung

Mitglied: RustyVS

RustyVS (Level 1) - Jetzt verbinden

12.12.2014, aktualisiert 14:38 Uhr, 942 Aufrufe, 3 Kommentare

Hallo zusammen,

ich versuche ein VBSkript zu erstellen, dass für alle Benutzer in unserer AD das extensionAttribut10 setzt.
Dazu hab ich bereits eine CSV-Datei (BoxNr.csv) mit allen Benutzern und dem dazu gehörenden Wert, welcher als Attribut gesetzt werden soll, angelegt.

Beispiel:
01.
extensionAttribute10;CN 
02.
3000;Meyer\, Marko 
03.
3001;Müller\, Maria 
04.
...

Als weiteres habe ich auch schon ein Script, mit dem ich einzelne Benutzer bearbeiten kann.

01.
Set objUser = GetObject _ 
02.
   ("LDAP://CN=Meyer\, Marko,OU=Benutzer,OU=produktion,DC=firma,DC=local")  
03.
 
04.
  
05.
objUser.Put "extensionAttribute10", "3000" 
06.
 
07.
  
08.
objUser.SetInfo
Nun würde ich gerne das Skript umschreiben, damit die Benutzer und Attribute aus der CSV-Datei ausgelesen werden und die Attribute in der AD automatisch gesetzt werden.

Ich wäre sehr Dankbar, wenn mir hier jemand helfen könnte!

MFG Rusty
Mitglied: 114757
12.12.2014, aktualisiert um 13:46 Uhr
Moin,
z.B. so
01.
set fso = CreateObject("Scripting.FilesystemObject") 
02.
arrContent = Split(fso.OpenTextFile("C:\BoxNr.csv",1).ReadAll(),vbNewline) 
03.
 
04.
for i = 1 to UBound(arrContent) 
05.
  if arrContent(i) <> "" then 
06.
    arrCols = Split(arrContent(i),";") 
07.
    Set objUser = GetObject("LDAP://cn=" & arrCols(1) & ",OU=Benutzer,OU=produktion,DC=firma,DC=local")  
08.
    objUser.put "extensionAttribute10",arrCols(0) 
09.
    objUser.SetInfo 
10.
  End if 
11.
Next 
12.
msgbox "Feddich"
Gruß jodel32
Bitte warten ..
Mitglied: colinardo
LÖSUNG 12.12.2014, aktualisiert um 14:38 Uhr
Hallo Rusty,
ich würde es zwar mit Powershell machen (ist da ein Einzeiler), aber hier noch eine VBS Lösung wenn vorher nicht klar ist in welcher OU sich der User befindet:
Hinweis: Für dieses Script musst du keinen Backslash für den Usernamen in der CSV-Datei setzen.
01.
Const CSV = "C:\BoxNr.csv" 
02.
Dim fso, arrContent,arrCols,objUser 
03.
 
04.
set fso = CreateObject("Scripting.FilesystemObject") 
05.
arrContent = Split(fso.OpenTextFile(CSV,1).ReadAll(),vbNewline) 
06.
 
07.
for i = 1 to UBound(arrContent) 
08.
  if arrContent(i) <> "" then 
09.
    arrCols = Split(arrContent(i),";") 
10.
    Set objUser = FindAccount(Trim(arrCols(1))) 
11.
    if not objUser is nothing then 
12.
	objUser.put "extensionAttribute10",Trim(arrCols(0)) 
13.
    	objUser.SetInfo 
14.
    End if 
15.
  End if 
16.
Next 
17.
 
18.
Function FindAccount(cn) 
19.
	On Error Resume Next 
20.
	Dim adoCommand, adoConnection 
21.
	Dim varBaseDN, varFilter 
22.
	Dim objRootDSE, varDNSDomain, strQuery, adoRecordset 
23.
 
24.
	Set adoCommand = CreateObject("ADODB.Command") 
25.
	Set adoConnection = CreateObject("ADODB.Connection") 
26.
	adoConnection.Provider = "ADsDSOObject" 
27.
	adoConnection.Open "Active Directory Provider" 
28.
	Set adoCommand.ActiveConnection = adoConnection 
29.
	 
30.
	' Search entire Active Directory domain. 
31.
	Set objRootDSE = GetObject("LDAP://RootDSE") 
32.
	 
33.
	varDNSDomain = objRootDSE.Get("defaultNamingContext") 
34.
	varBaseDN = "<LDAP://" & varDNSDomain & ">" 
35.
	 
36.
	' Filter for user objects. 
37.
	varFilter = "(&(objectCategory=person)(objectClass=user)(cn=" & cn & "))" 
38.
	 
39.
	' Construct the LDAP syntax query. 
40.
	adoCommand.CommandText = varBaseDN & ";" & varFilter & ";ADSPath;Subtree" 
41.
	adoCommand.Properties("Page Size") = 2 
42.
	adoCommand.Properties("Timeout") = 20 
43.
	adoCommand.Properties("Cache Results") = False 
44.
	Set adoRecordset = adoCommand.Execute 
45.
	adoRecordset.MoveFirst 
46.
 
47.
	If adoRecordset.RecordCount > 0 Then 
48.
		set FindAccount = GetObject(adoRecordset("ADSPath")) 
49.
	else 
50.
		set FindAccount = Nothing 
51.
	End If 
52.
	 
53.
	adoRecordset.Close 
54.
	adoConnection.Close 
55.
End Function
Grüße Uwe

-edit- hier noch als Ergänzung eine Lösung mit Powershell (hier ebenfalls in der CSV-Datei keinen Backslash im CN setzen):
01.
import-csv "C:\BoxNr.csv" -Delimiter ";" | %{$wert=$_.extensionAttribute10; get-aduser -Filter "cn -eq '$($_.cn)'" | set-aduser -Replace @{"extensionAttribute10"=$wert}}
Bitte warten ..
Mitglied: RustyVS
12.12.2014 um 14:40 Uhr
Vielen Dank für die schnellen Lösungen!

Hat perfekt funktioniert.


MfG Rusty
Bitte warten ..
Ähnliche Inhalte
Windows Userverwaltung
Set AD User Attribute
gelöst Frage von joehuabaWindows Userverwaltung2 Kommentare

Hallo Zusammen, ich habe folgendes Problem: Ich kann per PowerShell in die Attribute von AD-Usern schreiben. (z.B. Stadt) Allerdings ...

Exchange Server
Attribute der Globalen Adressliste durch User ändern lassen!?
gelöst Frage von EmptymanExchange Server3 Kommentare

Hallo zusammen, weiß zufällig jemand ob es die Möglichkeit gibt, mit Boardmitteln (keine Third Party Tools) zu konfigurieren, dass ...

Batch & Shell
Powershell AD Attribute auslesen
gelöst Frage von xbast1xBatch & Shell8 Kommentare

Hallo zusammen, ich möchte gern von allen AD Usern die E-Mail,Nachname, Vorname auslesen und in eine CSV exportieren. Ich ...

Exchange Server
Self Service für AD Attribute
gelöst Frage von mart1nExchange Server2 Kommentare

Hallo zusammen, ich habe da mal eine Frage zu den Kontoinformationen die man im OWA ändern kann. In der ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 StundeWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 3 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...