Jump to content

Nero2021

Members
  • Gesamte Inhalte

    8
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Nero2021

  1. vor einer Stunde schrieb NilsK:

    Moin,

     

    du bist aber echt ne harte Nuss. Beim nächsten Mal wäre es nett, wenn du die eigentliche Aufgabe beschreibst und nicht immer nur den Punkt, an dem du gerade hängst. Ich bin mir sicher, dass es für beide Aufgaben viel effizientere Ansätze gegeben hätte.

     

    Gruß, Nils

     

    Mag sein :)

    • Verwirrend 1
  2. 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.

  3. 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?

  4. 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:

    https://devblogs.microsoft.com/scripting/dandelions-vcr-clocks-and-last-logon-times-these-are-a-few-of-our-least-favorite-things/

     

    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 :) 

    Meine Lösung

    • Like 1
  5. 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

     

     

  6. 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.

  7. 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

  8. 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 

     

×
×
  • Neu erstellen...