Nero2021
-
Gesamte Inhalte
8 -
Registriert seit
-
Letzter Besuch
Beiträge erstellt von Nero2021
-
-
Gerade eben schrieb NilsK:
Moin,
das ist in dem Artikel erklärt, den ich dir oben verlinkt hatte. Aber das müsste doch schon beim ersten Einsatz des Skripts aufgefallen sein?
Gruß, Nils
Ich muss lernen, Scripte die ich geschrieben habe, einfach zu kopieren :) Das erste Script war beim Kunden A und nun bin ich beim Kunden B.
Habe auch schon eine Lösung gefunden:
[datetime]::FromFileTime($($getad.lastlogontimestamp))
[datetime]::FromFileTime($($getad.lastlogontimestamp))
Danke dir für deine schnellen Antworten.
-
Am 8.6.2021 um 15:41 schrieb BOfH_666:
Hmmm ... das ist ein bissl missverständlich. In im "Titel" des Threads geht es eigentlich darum, die RSAT cmdlets ohne installierte RSAT zu nutzen, aber der als Antwort markierte Beitrag hat eigentlich nix damit zu tun.
Welche Lösung hast Du denn benutzt, wenn ich so neugierig sein darf? Das implicit Remoting oder die Lösung mit dem [adsisearcher]?
Meine an mich gestellte Aufgabe war es, aus dem AD den lastlogontimestamp eines Computers auszulesen. Mein erster Ansatz war mit Powershell. Die dann gemachten Erfahrungen sagten mir, ohne Powershell Erweiterungen geht es nicht. Dann habe ich ein sehr altes VBS gefunden und damit hatte ich dann auch Probleme. Also habe ich hier im Forum nach einer Lösung gesucht. Dank der vielen Anregungen "mach es mit PS" habe ich dann den verlinkten Beitrag gefunden.
$pc = 'Computername' $getad = (([adsisearcher]"(&(objectCategory=Computer)(name=$pc))").findall()).properties $getad.lastlogontimestamp
Lustigerweise habe ich jetzt wieder eine Aufgabe bekommen. Ich habe eine Liste von Clients und möchte gegen das AD Abfragen, wann sie sich zuletzt gemeldet haben. Und wenn ich nun das Script probiere, dann bekomme ich z.B. diese Zahl zurück 132688445643252252. Die Frage ist, was mache ich damit? Sind das Sekunden?
-
vor 2 Stunden schrieb NilsK:
Moin,
warum beides nicht ausgeführt wird, kann ich auch nicht nachvollziehen. Wie führst du das Skript denn aus? Läuft es evtl. in einem Host, der nur dann die Ausgaben anzeigt, wenn es keine Fehler im gesamten Ablauf gibt?
Wenn es unbedingt die antike Technik sein soll und du nicht sagen willst, was damit geschehen soll, damit man es vielleicht insgesamt anders angehen kann, hier der klassische Artikel, der beschreibt, wie man genau diese Daten mit VBS abfragt:
Deinem Skriptcode nach zu urteilen, baust du aber nicht auf bestehendem Wissen auf, und dann ist es wirklich nicht zukunftsweisend, auf eine Technik zu setzen, die seit 15 Jahren nicht mehr entwickelt wird. Aber das sagten wir vielleicht schon.
Gruß, Nils
Vielen Dank für eure Unterstützung. Ich habe nun auf PS gewechselt :)
- 1
-
vor 10 Stunden schrieb NilsK:
Moin,
ich mutmaße mal: Das Skript bricht wegen des Fehlers ab und gibt deshalb auch den Rest nicht mehr aus.
@Nero2021 wir haben jetzt den klassischen Fall, dass du dich auf dein Detailproblem fokussierst, statt das übergeordnete Ergebnis in den Blick zu nehmen. Was soll denn mit den Daten geschehen? Wäre es vielleicht schlauer, sie zentral auszulesen statt vom Client aus?
Gruß, Nils
Hallo Nils,
ich sehe das gerade mehr unter der Rubrik, lernen. Ich würde an dieser Stelle gerne verstehen wo der Fehler liegt.
Es gibt zwei Zeilen:
wscript.echo "AD-Description:" & objComputer.description 'wscript.echo "LastLogonTimeStamp:" & objComputer.lastLogonTimestamp
die Erste macht was sie soll. Die zweite sorgt dafür, dass auch die erste nicht mehr funktioniert, wenn sie dann aktiviert ist.
Liebe Grüße
Norbert
-
vor 24 Minuten schrieb BOfH_666:
Nur um da nix falsch zu verstehen: Das Tool, in das diese Informationen eingetragen werden, läuft auf dem jeweiligen Client? Darf man fragen, was das für ein Tool ist?
"cmdlet" .. klein und zusammen. ... man kann das AD auch ohne spezialisierte cmdlets abfragen. ... was nicht heißen soll, dass das in diesem Fall ein gute Idee sein muss.
ich habe gerade das Gefühl, dass wir uns von meinem eigentlichen Thema entfernen. Mir reicht es völlig aus, wenn die AD Infos ausgelesen werden können und wie in meinem Beispiel in die Registry eingetragen werden.
-
vor 40 Minuten schrieb NilsK:
Moin,
was hast du damit denn vor? Eigentlich macht man sowas heute nicht mehr per VBS. Wenn wir wissen, was damit geschehen soll, können wir dir vielleicht einen anderen Weg vorschlagen, statt hier ins Troubleshooting einzusteigen.
Genau an diesem Beispiel zeigt sich nämlich einer der vielen Nachteile von VBS: Es kann nicht mit 64-Bit-Integers umgehen, und lastLogonTimestamp gibt leider einen solchen zurück.
Gruß, Nils
Hallo Nils,
danke für deine schnelle Antwort.
Ich möchte die Computerbeschreibung und den letzten Kontakt des Clients aus dem AD auslesen. Diese Abfrage wird per Softwareverteilung am Client ausgeführt und in ein bestimmtes Tool eingetragen.
Ich bin ganz bei dir und würde diese Abfrage am liebsten per Powershell machen aber das kann WIn10 leider nicht ohne Nachinstallation des entsprechenden CMD-let. Also versuche ich es gerade mit dem VBS.
Liebe Grüße
Norbert
-
Hallo,
ich habe vor einiger Zeit mal ein VB-Script zum Auslesen von AD Infos gefunden. Verwenden möchte ich den Beschreibung und das lastLogonTimeStamp aus dem AD
Die Beschreibung auslesen klappt prima. Wenn ich das Auslesen des TimeStamp aktiviere, dann funktioniert beides nicht mehr. Hat jemand eine Idee?
Über diese Zeile spreche ich:
wscript.echo "LastLogonTimeStamp:" & objComputer.lastLogonTimestamp
Kommentiere ich sie aus, wird die Beschreibung ausgelesen, ist sie aktiviert, wird nicht mehr ausgelesen.
'========================================================================== Option Explicit 'On Error Resume Next Dim strKeyPath Dim strSearch Dim strAdsPath Dim strDefaultDomainNC Dim strADSQuery Dim objQueryResultSet Dim objADOConn Dim objADOCommand Dim objUser Dim objNetwork Dim strcomputer Dim oReg dim WSHShell, WshNetwork, strResult, objSysInfo, strcomment, objComputer ' Registrypfad für Inventory setzen strKeyPath = "SOFTWARE\Kunde" Set WSHShell = WScript.CreateObject("WScript.Shell") 'Rechnername auslesen Set objNetwork = Wscript.CreateObject("Wscript.Network") strcomputer = objNetwork.ComputerName Set WSHShell = WScript.CreateObject("WScript.Shell") Set WshNetwork = WScript.CreateObject("WScript.Network") WScript.Echo "Computer Name = " & WshNetwork.ComputerName Set objSysInfo = CreateObject("ADSystemInfo") Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName) wscript.echo "AD-Description:" & objComputer.description 'wscript.echo "LastLogonTimeStamp:" & objComputer.lastLogonTimestamp 'Registryobjekt anlegen const HKEY_LOCAL_MACHINE = &H80000002 Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ strComputer & "\root\default:StdRegProv") 'Registryschlüssel anlegen oReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath If not objComputer.description = "" Then oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,"Client_Description",objComputer.description End if If not objComputer.LastLogonDate = "" Then oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,"LastLogonTimeStamp",objComputer.LastLogonTimeStamp End if
lastLogonTimestamp auslesen
in Windows Forum — Scripting
Geschrieben
Mag sein :)