2015-09-25 3 views
2

Я хочу знать, есть ли команда, которая будет перечислять информацию, которая может быть найдена в разделе «Цифровые подписи» свойств файла .exe. В частности, я хочу иметь возможность захватить имя подписывающего лица. Есть ли команда, которая будет генерировать эту информацию для меня?Команда, чтобы получить имя подписывающего лица из .exe

ответ

0

Чтобы получить имя субъекта из сертификата подписчика, используемый для создания подписи Authenticode, вы могли бы использовать Get-AuthenticodeSignature:

PS > $asig = Get-AuthenticodeSignature 'C:\Windows\System32\xcopy.exe' 
PS > $asig.SignerCertificate.Subject 

CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US 

Вы, вероятно, заинтересованы в Общее имя (CN) и, возможно, имя организации (O). Вы можете разобрать отличительное имя от субъекта на ее компоненты, чтобы получить общее имя:

PS > $asig = Get-AuthenticodeSignature 'C:\Windows\System32\xcopy.exe' 
PS > $dnDict = ($asig.SignerCertificate.Subject -split ', ') | 
     foreach ` 
      { $dnDict = @{} } ` 
      { $item = $_.Split('='); $dnDict[$item[0]] = $item[1] } ` 
      { $dnDict } 

PS > $dnDict['CN'] 

Microsoft Windows 

PS > $dnDict['O'] 

Microsoft Corporation 
+0

Первый работает отлично, как мне получить второй, который будет просто перечислять имя CN для запуска в powershell. Каждый раз, когда я пытаюсь скопировать его и запускать, он дает мне сообщение о том, что system.string не содержит метода с именем TrimStart – Technic1an

+0

Должна быть проблема, связанная с версией. Обновление для использования TrimStart ('') в качестве обходного пути, но вам придется протестировать. Это просто удаление первого символа, пробела, которое было после запятой. – jimhark

+0

@ Technic1an, я просто переписал, чтобы удалить необходимость в TrimStart(). Оказывается, я должен был просто использовать оператор PS -split. Я надеюсь, что этот ответ будет вам приемлемым. – jimhark

0

Sigcheck tool от Windows Sysinternals Microsoft может сбросить информацию из. Использование опции командной строки -c форматирует вывод в формате csv, который может быть передан в файл для последующей обработки.

Sigcheck - утилита командной строки, которая показывает номер версии файла, информацию о временной отметке и данные цифровой подписи, включая цепочки сертификатов.

Смежные вопросы