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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 164397
Url: https://administrator.de/contentid/164397
Ausgedruckt am: 23.11.2024 um 15:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo Fahrrad!
In etwa so:
Gruß Dieter
In etwa so:
If Wscript.Arguments.Count = 0 Then WScript.Echo "Aufruf ohne Parameter!": WScript.Quit
MeineVariable = WScript.Arguments(0)
Gruß Dieter
Hallo Fahrad!
Wieso willst Du eine "
möglich sein.
Im VBScript kommt die Variable, wie Dieter schon gezeigt hat, als "
Grüße
bastla
P.S.: ""-Formatierung macht Dein Script besser lesbar (und lässt sich auch einfach durch Editieren des Beitrages noch hinzufügen) ...
Wieso willst Du eine "
for
"-Schleife verwenden, wenn Du bereits eine Variable hast? Eigentlich sollte der Aufruf ja einfach mitCSCRIPT /NOLOGO LastLogonUser.vbs %UserDN%
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))
bastla
P.S.: ""-Formatierung macht Dein Script besser lesbar (und lässt sich auch einfach durch Editieren des Beitrages noch hinzufügen) ...