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 Array auslesen und schreiben

Mitglied: skid

skid (Level 1) - Jetzt verbinden

12.09.2006, aktualisiert 14.09.2006, 7282 Aufrufe, 9 Kommentare

Hi,

habe ein Problem mit einem Array.

Undzwar soll mein Skript das AD auslesen und Workstations die mit ABC anfangen in ein Array schreiben.
Nachdem das Array gefüllt worden ist soll es bei einem User im AD unter Log On To.. eingefügt werden.

Mein Skript sieht folgendermaßen aus:

01.
 ...............
02.
 
03.
Const ADS_PROPERTY_APPEND = 3
04.
 
05.
Set objUser = GetObject(strOU)
06.
 
07.
Dim ArrWorkstations()
08.
ReDim ArrWorkstations(0)
09.
i = 0
10.
 
11.
Do Until objRecordSet.EOF
12.
 
13.
i = i + 1
14.
 
15.
'Computer und Datum in Variable
16.
 
17.
strComputerName = objRecordSet.Fields("Name")
18.
strComputerName = Left(strComputerName, 3)
19.
	
20.
 
21.
If strComputerName = "NGO" Then
22.
			
23.
			
24.
	Workstations = objRecordSet.Fields("Name")
25.
End If
26.
		
27.
		
28.
if Ubound(ArrWorkstations) < i then ReDim preserve ArrWorkstations(i)
29.
 
30.
                ArrWorkstations(i) = Workstations
31.
 
32.
	objRecordSet.MoveNext
33.
		
34.
	
35.
Loop
36.
 
37.
 
38.
MsgBox Join(ArrWorkstations, vbNewLine )
39.
 
40.
 
41.
objUser.PutEx ADS_PROPERTY_APPEND, "userWorkstations", Array (ArrWorkstations)
42.
				
43.
           objUser.SetInfo			
44.
						
45.
objConnection.Close
Wenn ich mir mit der MsgBox das Array ausgeben lasse sind alle Workstations drin.

Aber ich schaffe es nicht diese Werte beim User einzutragen.
Es wird immer nur die letzte Workstation aus dem Array eingefügt.

Kann mir jemand sagen wo der Fehler ist ?!


Gruss

SKID

PS: irgendwie klappt das mit dem Formatieren nicht immer
Mitglied: DaSam
12.09.2006 um 23:08 Uhr
Hi,

liegts vielleicht daran, dass man die Workstations KOMMASEPARIERT eintragen muss?

Guckst Du hier: http://www.microsoft.com/technet/scriptcenter/resources/qanda/feb06/hey ...

cu,
Alex
Bitte warten ..
Mitglied: Biber
13.09.2006 um 09:13 Uhr
...oder, anders ausgedrückt:

01.
...
02.
objUser.PutEx ADS_PROPERTY_APPEND, "userWorkstations", Join( Array (ArrWorkstations),",")
03.
...
Gruß
Biber
Bitte warten ..
Mitglied: skid
13.09.2006 um 09:36 Uhr
Hi,

der Tip war schon nicht schlecht aber jetzt bekomme ich die Fehlermeldung:

Laufzeitfehler in Microsoft VBScript: Typen unverträglich

Da vielleicht ne idee ?

SKID
Bitte warten ..
Mitglied: Biber
13.09.2006 um 09:43 Uhr
..sorry, war doppelt gemoppelt:
01.
objUser.PutEx ADS_PROPERTY_APPEND, "userWorkstations", Join( ArrWorkstations,",")
immer noch ungetestet, aber Erfolg versprechender...

Gruß
Biber
Bitte warten ..
Mitglied: skid
13.09.2006 um 13:24 Uhr
Tja, und schon die nächste Fehlermeldung:

Active Directory: Unbekannter Fehler

Wenn ich das ganze in dieser Form direkt mitgebe, so als Test, dann geht´s:

01.
objUser.PutEx ADS_PROPERTY_APPEND,"userWorkstations", Array ("WKS1,WKS2")
02.
objUser.SetInfo
Müsste man evtl. das ArrWorkstations auch in Hochkommas setzen ?

Gruss
SKID
Bitte warten ..
Mitglied: DaSam
13.09.2006 um 15:48 Uhr
Hola,

so könnte es gehen:

01.
objUser.PutEx ADS_PROPERTY_APPEND, "userWorkstations", Array(Join( ArrWorkstations,","))
Bitte warten ..
Mitglied: skid
13.09.2006 um 16:03 Uhr
SUPER

So klappt es jetzt!

Danke an alle Beteiligten - ich war schon am verzweifeln

Gruss
SKID
Bitte warten ..
Mitglied: Biber
13.09.2006 um 17:52 Uhr
Nachtrag: @skid
Ich musste ein bisschen länger draufgucken, aber jetzt verstehe ich es auch.

Der Klemmer ist, dass Du ja das ADS_PROPERTY_APPEND verwendest.
Und zusätzliche Einträge in ein Attribut einträgst, dass auch mehrere aufnehmen kann.

Heißt
a) Du MUSST in diesem Fall ein Array übergeben, auch wenn es nur ein Element gäbe...
[Beispiel: objUser.PutEx ADS_PROPERTY_APPEND "userWorkstations", Array("MeinEinzigerRechner") ]
b) Wenn das so ist, ist Deine Programmmimik oben zu umständlich;
dann könntest Du auch gleich jedesmal den frisch gefundenen Eintrag beim Lesen des aktuellen Satzes/Feldes "Name" anfügen:
[ [Beispiel: objUser.PutEx ADS_PROPERTY_APPEND "userWorkstations", Array(objRecordSet.Fields("Name")) ]

OHNE die Zwischenspeicherung in "Workstations" und "ArrWorkStations" und das ständige "ReDim Preserve".

c) Ist aber alles gar nicht, was Du willst... Du fügst ja immer neue "workstations" an... die bereits vorhandenen bleiben erhalten in der ADS.objUser.userWorkStations-Property.

Führt mich zu Punkt d)....
d) Mein Gedanke mit dem Als-String-Übergeben vorhin war nicht so daneben, aber das Flag ADS_PROPERTY_APPEND muss raus:
d1) objUser.PutEx "userWorkstations", Join( ArrWorkstations,",")
-oder-
d2) objUser.PutEx ADS_PROPERTY_UPDATE, "userWorkstations", Array(Join( ArrWorkstations,",") )
Wenn die gefundenen Workstations tatsächlich die einzigen sind.

Gruß
Biber
Bitte warten ..
Mitglied: skid
14.09.2006 um 09:15 Uhr
Hi Biber,

zuerst hatte ich auch vor direkt beim lesen des ersten Datensatzes den Wert reinzuschreiben.
Habe es Probiert mit:

objUser.PutEx ADS_PROPERTY_APPEND, "userWorkstations", Array (Workstations)

aber so hat er mir immer den letzten Datensatz reingeschrieben - heißt, alle davor wurden überschrieben.

objUser.PutEx ADS_PROPERTY_APPEND, "userWorkstations", Array(objRecordSet.Fields("Name"))

--> führt zu einem Fehler: Active Directory: Mindestens ein Eingabeparameter ist ungültig

Habe dann gelesen das dieses Feld Log On To zwar ein Feld ist wo man mehrere Einträge machen kann aber die Werte in einem reingeschrieben werden müssen.
http://www.wisesoft.co.uk/Articles/Scripting/ActiveDirectoryProgramming ...

Da es aber nicht nur eine Workstation gibt die mit NGO anfangen ist das so schon OK.

Gruss
SKID
Bitte warten ..
Ähnliche Inhalte
JavaScript
Javascript Array
gelöst Frage von internet2107JavaScript2 Kommentare

Ich habe folgendes Problem. Ersetze ich die folgenden Zahlen gegen Variablenwerte, bekomme ich nicht das Ergebnis, wie mit festen ...

Windows Server

Freigabe führt nicht zur Schreib-Berechtigung

gelöst Frage von ElmaCxWindows Server11 Kommentare

Hallo miteinander, ich bin seit 2 Tagen an einer Berechtigungs Problematik zu Gange, bei welcher ich die Lösung nicht ...

Server

Freenas schlechte Schreib Performance bei NFS

Frage von janosch12Server17 Kommentare

Hallo, ich habe momentan das Problem das die Performance bei NFS zu wünschen über lässt Schreiben max 100 Mbit/s ...

Batch & Shell

Leere Array-Werte aus einem Array entfernen

gelöst Frage von ToniHoBatch & Shell3 Kommentare

Hallo zusammen, ich bin dabei ein Powershell-Script zu schreiben, welches diverse Reports generieren kann. Für die Eingabe von SamAccountNames ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 1 TagiOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 1 TagiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 4 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 4 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
gelöst Frage von frosch2Windows Netzwerk27 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

Hosting & Housing
VMware VM mit über 1TB RAM für S4HANA
Frage von Leo-leHosting & Housing22 Kommentare

Hallo zusammen, wer hat Erfahrng und kann mir einen Tipp zum sizing von S4HANA Systemen geben? Wir möchten, zunächst ...

LAN, WAN, Wireless
WLAN und Ausmessung - Eine Glaubensfrage?
Frage von ptr2brainLAN, WAN, Wireless20 Kommentare

Liebe Experten, als Sys-Admin habe ich mir schon öfter die Frage gestellt, ob es sich beim Thema WLAN und ...

Virtualisierung
Gebrauchte Server Hardware als Virtualisierungs-"Spielwiese"?
Frage von NixVerstehenVirtualisierung19 Kommentare

Einen wunderschönen guten Morgen zusammen, ich möchte mich gerne etwas tiefer mit dem Thema Virtualisierung beschäftigen und dazu ein ...