fahrrad
Goto Top

Wie kann ich in einer FOR-Schleife einem VB-Script die Variable übergeben?

Guten Morgen,

ich habe da ein kleines Problem mit Active Directory und einem VB-Skript

ich habe aus dem Active Directory einen DN ausgelesen, zB "CN=Hans Meyer,OU=Users,OU=Forschung,OU=DE,DC=eu,DC=microsoft,DC=com" und als Variable UserDN gespeichert.

Desweiteren habe ich ein VB Skript gefunden, welches mir den LastLogon Time Stamp ausgeben kann:

Set objUser = GetObject("LDAP://CN=Hans Meyer,OU=Users,OU=Forschung,OU=DE,DC=eu,DC=microsoft,DC=com")
Set objLastLogon = objUser.Get("lastLogonTimestamp")

intLastLogonTime = objLastLogon.HighPart * (2^32) + objLastLogon.LowPart
intLastLogonTime = intLastLogonTime / (60 * 10000000)
intLastLogonTime = intLastLogonTime / 1440

Wscript.Echo "Last logon time : " & intLastLogonTime + #1/1/1601#

ich möchte nun dem VB Skript meine Variable UserDN übergeben, damit dieses mir den LastLogon TimeStamp liefert

Stören tun natürlich die Anführungszeichen in meiner Variable, die kann ich per FOR-Schleife entfernen

FOR /F "DELIMS=#" %A IN ('ECHO %UserDN%') DO CSCRIPT /NOLOGO LastLogonUser.vbs %~A

Wie übergebe ich dem VB Skript meine Variable, damit es funktioniert?

Vielen Dank für Eure hilfe

VG
Fahrrad

Content-Key: 164397

Url: https://administrator.de/contentid/164397

Printed on: April 18, 2024 at 14:04 o'clock

Mitglied: 76109
76109 Apr 12, 2011 at 08:51:17 (UTC)
Goto Top
Hallo Fahrrad!

In etwa so:
If Wscript.Arguments.Count = 0 Then WScript.Echo "Aufruf ohne Parameter!":  WScript.Quit  

MeineVariable = WScript.Arguments(0)

Gruß Dieter
Member: Fahrrad
Fahrrad Apr 12, 2011 at 09:02:03 (UTC)
Goto Top
Hallo Dieter,

erst einmal vielen Dank für Deine Antwort,

kann als VB-DAU jedoch nicht erkennen wo ich diese Zeilen einfügen muß und wenn ich die FOR Schleife benutzen muß wir die Syntax für meinen speziellen Fall wäre.

VG
Fahrrad
Member: bastla
bastla Apr 12, 2011 at 09:34:05 (UTC)
Goto Top
Hallo Fahrad!

Wieso willst Du eine "for"-Schleife verwenden, wenn Du bereits eine Variable hast? Eigentlich sollte der Aufruf ja einfach mit
CSCRIPT /NOLOGO LastLogonUser.vbs %UserDN%
möglich sein.

Im VBScript kommt die Variable, wie Dieter schon gezeigt hat, als "WScript.Arguments(0)" an - ob Du sie dann noch einer VB-Variablen zuweisen oder direkt verwenden willst, ist Deine Entscheidung. Als Beispiel für die Variante 2:
Set objUser = GetObject("LDAP://" & WScript.Arguments(0))
Grüße
bastla

P.S.: ""-Formatierung macht Dein Script besser lesbar (und lässt sich auch einfach durch Editieren des Beitrages noch hinzufügen) ...
Member: Fahrrad
Fahrrad Apr 12, 2011 at 10:02:44 (UTC)
Goto Top
Hallo Bastla,

ich hattes es am Anfang nur mit direktem Reinkopieren des DN ins Skript ausprobiert und da störten die (doppelten) Anführungszeichen,

aber so ist es natürlich viel einfacher und schöner!

Vielen Dank an Euch beide!

VG
Fahrrad