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, 7192 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: ...

VB for Applications

Array aus anderer Datei auslesen

gelöst Frage von jaydotkayVB for Applications2 Kommentare

Hallo liebe Leute, ich würde gerne von einem Makro aus ein Datenfeld auslesen, dass in einer anderen Datei liegt. ...

Batch & Shell

Services aus einem Array auslesen dann stückweise stoppen

gelöst Frage von DanielBodenseeBatch & Shell4 Kommentare

Hallo zusammen, ich muss mir eine Funktion schreiben der ich ein Array von zu stoppenden Services übergeben kann. Innerhalb ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 16 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 16 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...