Поделиться через


Get-AuthenticodeSignature

Возвращает сведения о подписи Authenticode для файла.

Синтаксис

Get-AuthenticodeSignature
   [-FilePath] <String[]>
   [<CommonParameters>]
Get-AuthenticodeSignature
   -LiteralPath <String[]>
   [<CommonParameters>]
Get-AuthenticodeSignature
   -SourcePathOrExtension <String[]>
   -Content <Byte[]>
   [<CommonParameters>]

Описание

Этот командлет доступен только на платформе Windows.

Командлет Get-AuthenticodeSignature получает сведения о подписи Authenticode для файла или содержимого файла в виде массива байтов. Если файл является внедренным и подписанным каталогом Windows, используется подпись каталога Windows. Если файл не подписан, извлекается информация, но поля пусты.

Примеры

Пример 1. Получение подписи Authenticode для файла

Get-AuthenticodeSignature -FilePath "C:\Test\NewScript.ps1"

Эта команда получает сведения о сигнатуре Authenticode в файле NewScript.ps1. В нем используется параметр FilePath для указания файла.

Пример 2. Получение подписи Authenticode для нескольких файлов

Get-AuthenticodeSignature test.ps1, test1.ps1, sign-file.ps1, makexml.ps1

Эта команда получает сведения о подписи Authenticode для четырех файлов, перечисленных в командной строке. В этом примере имя параметра FilePath, который является необязательным, опущен.

Пример 3. Получение только допустимых подписей Authenticode для нескольких файлов

Get-ChildItem $PSHOME\*.* | ForEach-Object {Get-AuthenticodeSignature $_} |
    Where-Object {$_.Status -eq "Valid"}

Эта команда содержит список всех файлов в каталоге $PSHOME с допустимой подписью Authenticode. $PSHOME автоматическая переменная содержит путь к каталогу установки PowerShell.

Команда использует командлет Get-ChildItem для получения файлов в каталоге $PSHOME. В нем используется шаблон . исключить каталоги (хотя он также исключает файлы без точки в имени файла).

Команда использует оператор конвейера (|) для отправки файлов в $PSHOME командлету ForEach-Object, где Get-AuthenticodeSignature вызывается для каждого файла.

Результаты команды Get-AuthenticodeSignature отправляются в команду Where-Object, которая выбирает только объекты подписи с состоянием Valid.

Пример 4. Получение подписи Authenticode для содержимого файла, указанного в виде массива байтов

$authenticodeSignatureParams = @{
    Content = (Get-Content foo.ps1 -AsByteStream)
    SourcePathorExtension = "ps1"
}
Get-AuthenticodeSignature @authenticodeSignatureParams

Эта команда получает сведения о сигнатуре Authenticode для содержимого файла. В этом примере расширение файла указывается вместе с содержимым файла.

Параметры

-Content

Содержимое файла в виде массива байтов, для которого извлекается подпись Authenticode. Этот параметр должен использоваться с параметром SourcePathOrExtension. До PowerShell 7.4 содержимое файла должно быть в формате Юникода (UTF-16LE).

Тип:Byte[]
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-FilePath

Указывает путь к файлу для проверки. Подстановочные знаки разрешены, но они должны привести к одному файлу. Не обязательно вводить FilePath в командной строке при указании значения этого параметра.

Тип:String[]
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:True

-LiteralPath

Указывает путь к проверяемой файлу. В отличие от FilePath, значение параметра LiteralPath используется точно так же, как и тип. Символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символ, заключите его в одинарные кавычки. Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-символы.

Тип:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-SourcePathOrExtension

Путь к файлу или типу файла содержимого, для которого извлекается подпись Authenticode. Этот параметр используется с Content, где содержимое файла передается в виде массива байтов.

Тип:String[]
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

Входные данные

String

Можно передать строку, содержащую путь к файлу для этого командлета.

Выходные данные

Signature

Этот командлет возвращает объект подписи для каждой получаемой подписи.

Примечания

Этот командлет доступен только на платформах Windows.

Сведения о подписях Authenticode в PowerShell см. в about_Signing.