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, 7207 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
PHP

Mehrdimensionales Array mit PHP auslesen um es in eine MySql DB zu schreiben

gelöst Frage von IrunGoldsteinPHP2 Kommentare

Hallo Leute, eventuell kann mir jemand hier auf die Sprünge helfen damit. Ich habe ein Mehrdimensionales Array namens $tree ...

Datenbanken

Mongodb Daten aus Array auslesen

gelöst Frage von BaanauseDatenbanken1 Kommentar

Habe folgendes Programm geschrieben um eine MongoDB auszulesen. Als Ergebnis bekomme ich ein Array wie folgt: { _id: ...

Entwicklung

Powershell: Werte aus Array gezielt auslesen

gelöst Frage von SunnyRainyDayEntwicklung3 Kommentare

Hallo, Stehe ein wenig auf´m Schlauch. Ich möchte aus einem Array nur den Wert eines Feldes auslesen. Also z.b. ...

Batch & Shell

PowerShell: get-vm in 2-dimensionales Array schreiben

gelöst Frage von lasterBatch & Shell3 Kommentare

Hallo, ich versuche eine Liste mit mehreren Spalten in einem mehrdimensionalen Array zu speichern. Liste ausgeben: Wenn ich $vmListe 0 ...

Neue Wissensbeiträge
Suche Projektpartner

PC Recycling Projekte mit Flüchtlingen und Kids suchen Materialspenden und Mitmacher!

Erfahrungsbericht von NettePCyclePiraten vor 17 StundenSuche Projektpartner5 Kommentare

Hallöchen liebe Kollegen, ich betreue zwei PC-Gruppen im Raum Dortmund: "Ne#e PCycle Pir@ten" & "PCschr@uber Br@mbauer" Wir sind eine ...

iOS
IOS 12.2 beta und OpenVPN iPad und iPhone
Erfahrungsbericht von magicteddy vor 1 TagiOS

Moin, kleiner Hinweis an die experimentierfreudigen unter Euch: Bei der aktuellen beta gibt es ein Problem im Zusammenspiel zwischen ...

Vmware
VMware Tools 10.3 verfügbar
Information von sabines vor 1 TagVmware

Eine Sicherheitslücke wird mit den Tools der Version 10.3 geschlossen, die Tools müssen auf jeder VM aktualisiert werden. Näheres ...

Apple

Apple aktualisiert MacBook Pro, mit bis zu sechs Kernen

Information von Vision2015 vor 3 TagenApple

Jawohlchen das Warten hat sich gelohnt :-) Apple aktualisiert MacBook Pro Frank

Heiß diskutierte Inhalte
Microsoft
Dringend: Nach neustart kein zugriff mehr per RDP möglich - vermutlich wegen gelöschter SID in AD
gelöst Frage von sven784230Microsoft30 Kommentare

Hallo zusammen, gerade hat ein Server 2012 (terminalserver + Active directory) einen geplanten Neustart durchgeführt, wenn ich mich jetzt ...

Exchange Server
Exchange 2013 - Update schlägt fehlt
gelöst Frage von chb1982Exchange Server20 Kommentare

Hallo zusammen, kann sich jemand einen Reim auf die unten stehenden Fehlermeldung machen? Sie tritt auf beim Update von ...

Windows Netzwerk
Netzwerk einrichten - wie mache ich es richtig?
Frage von gintonikWindows Netzwerk17 Kommentare

Hallo, ich bin neu hier und erhoffe mir hier ein paar Antworten für meine Umsetzung zu erhalten. Kurz zu ...

Microsoft Office
Druckdatum nur auf ausgedrucktem Dokument anzeigen
gelöst Frage von eichi18Microsoft Office16 Kommentare

Hallo zusammen Ich versuche in einem Word Dokument das Druckdatum nur auf dem eigentlichen Ausdruck auszugeben und am Bildschirm ...