Maschinen-Zertifikate auslesen bzw. abfragen

  • Hallo zusammen,


    ich suche händeringend nach einer Möglichkeit ein Maschinen-Zertifikat auszulesen oder wenigsten zu überprüfen ob es vorhanden ist. In MMC.exe kann ich es mit "send" automatisieren, hilft nur leider nicht wenn das Zertifikat nicht vorhanden ist. Sieht jemand von Euch eine Möglichkeit Zertifikate vielleicht per wmi abzufragen ??


    Spoiler anzeigen
    [autoit]

    AutoItSetOption("SendKeyDelay", 1)
    AutoItSetOption("WinWaitDelay", 1)
    AutoItSetOption("WinTitleMatchMode", 3)
    AutoItSetOption("TrayIconDebug", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Run("mmc")
    WinWait("Konsole1")
    WinActivate("Konsole1")
    WinWaitActive("Konsole1")
    Send("!D")
    Send("h")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Snap-In hinzufügen/entfernen")
    WinActivate("Snap-In hinzufügen/entfernen")
    WinWaitActive("Snap-In hinzufügen/entfernen")
    Send("!H")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Eigenständiges Snap-In hinzufügen")
    WinActivate("Eigenständiges Snap-In hinzufügen")
    WinWaitActive("Eigenständiges Snap-In hinzufügen")
    Send("z")
    Send("!H")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Zertifikats-Snap-In")
    WinActivate("Zertifikats-Snap-In")
    WinWaitActive("Zertifikats-Snap-In")
    Send("!C")
    Send("!W")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Computer auswählen")
    WinActivate("Computer auswählen")
    WinWaitActive("Computer auswählen")
    Send("{ENTER}")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Eigenständiges Snap-In hinzufügen")
    WinActivate("Eigenständiges Snap-In hinzufügen")
    WinWaitActive("Eigenständiges Snap-In hinzufügen")
    Send("!S")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("Snap-In hinzufügen/entfernen")
    WinActivate("Snap-In hinzufügen/entfernen")
    WinWaitActive("Snap-In hinzufügen/entfernen")
    Send("{ENTER}")
    Send("{DOWN}")
    Send("{RIGHT}")
    Send("{DOWN}")
    Send("{RIGHT}")
    Send("{DOWN}")
    Sleep (1000)
    Send("{TAB}")
    Send("{ENTER}")

    [/autoit]
  • Hi!

    Deine Angaben sind etwas dürftig.
    Was genau willst du machen?
    Willst du ein Zertifikat exportieren,importieren?

    Such mal im Internet nach Certutil.exe

    If not :?: then ?( else :thumbup:

    Einmal editiert, zuletzt von Concara (23. September 2009 um 13:16)

  • Hallo,


    ich will wie oben beschrieben ein Clientsystem überprüfen auf:


    1. Ist ein bestimmtes Maschinen Zertifikat vorhanden

    > falls Ja dann

    2. Wann wurde es ausgestellt

    3. Wie lange ist es gültig

    4. von welcher Stelle wurde es ausgestellt.


    ich hoffe das ist verständlicher... ;(

  • Hi!

    Hast du nach der certutil.exe gegoogelt?
    Eher nicht, nehme ich an.
    Bekommen dust du sie im Adminpack von Server 2003
    http://www.microsoft.com/downloadS/details.aspx?FamilyID=c16ae515-c8f4-47ef-a1e4-a8dcbacff8e3&displaylang=en

    Die Verwendung ist im Technet beschrieben.
    http://technet.microsoft.com/en-us/library/…28WS.10%29.aspx

    Einen Auszug aus dieser Seite, der dir weiterhelfen könnte.

    To view the certificate of the user that has the serial number 26e0aaaf000000000004 in the store named My, type:
    certutil -store -user My 26e0aaaf000000000004

    Schau dir aber die Technetseite an, da du ja Maschinenzertifikate auslesen willst und nicht welche von Usern.


    So noch ein kleines Beispiel aus der Hilfe von Autoit, wie man das ganze dann noch in einem Programm verwenden kann.

    Spoiler anzeigen
    [autoit]


    #include <Constants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Local $foo = Run("certutil -v -store -user My ", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    Local $line
    While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDOUT read:", $line)
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR read:", $line)
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "Debug", "Exiting...")

    [/autoit]

    Ich hoffe das war jetzt hilfreich für dich.
    LG
    Concara

    If not :?: then ?( else :thumbup: