Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Узнать есть ли у файла цифровая подпись (http://forum.oszone.net/showthread.php?t=217836)

Pavelnt 13-10-2011 01:23 1772173

Узнать есть ли у файла цифровая подпись
 
Добрый день!
Требуется узнать версию файла, для этого так понимаю может подойти команда CMD - Filever?
И еще одна задача, требуется узнать есть ли у файла цифровая подпись. Возможно ли это решить каким-то способом?
Заранее благодарен!

Kazun 13-10-2011 01:54 1772184

http://technet.microsoft.com/ru-ru/s...rnals/bb897441

Код:

PS  >  sigcheck C:\Windows\notepad.exe

Sigcheck v1.71 - File version and signature viewer
Copyright (C) 2004-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\windows\notepad.exe:
        Verified:      Signed
        Signing date:  7:17 14.07.2009
        Publisher:      Microsoft Corporation
        Description:    Notepad
        Product:        Microsoftо Windowsо Operating System
        Version:        6.1.7600.16385
        File version:  6.1.7600.16385 (win7_rtm.090713-1255)


Iska 13-10-2011 03:47 1772202

Цитата:

Цитата Pavelnt
Требуется узнать версию файла, для этого так понимаю может подойти команда CMD - Filever? »

Да.

Kazun, жаль, что у неё, как и у многих консольных утилит от Sysinternals, проблемы с русским языком:
читать дальше »
Цитата:

Код:

D:\Install\Microsoft Data Access Components\Microsoft Data Access Components 2.8 SP1\MDAC_TYP.EXE:
        Verified:      Signed
        Signing date:  04:59 26.04.2005
        Publisher:      ?????????? ?????????? (Microsoft Corp.)
        Description:    ?????????????? CAB-?????? Win32
        Product:        ???????????? ??????? Microsoft® Windows® 2000
        Version:        5.50.4134.600
        File version:  5.50.4134.600


Я всех встречных-поперечных спрашиваю, оттого спрошу и Вас: Вы не сталкивались с таким, не знаете случайно путей решения этого вопроса?

Pavelnt 13-10-2011 10:45 1772311

Спасибо.
Не подскажите пример BAT для запуска этой утилиты (так чтобы положить утилиту рядом с bat-файлов в любое место на жестком диске). Например, требуется проверить все файлы в двух каталогах:
C:\Program Files\MyApplication
C:\MyDistrib
и несколько файлов в указанном каталоге:
C:\Windows\System32\my.exe
C:\Windows\System32\my.dll
И вывести результат в консоль, а если это возможно, то и создать текстовый отчет.
Заранее благодарен!

Kazun 13-10-2011 14:05 1772457

To Iska, я не пользуюсь cmd,мои потребности полностью покрывает PowerShell,где нет таких проблем. И сделать функцию,обертку для sigcheck нет проблем.

Для примера ,приведу простую функцию:

Код:

Function Get-IsVerified
{
        process {
                        $value = (sigcheck -q $_.fullname) -match "Verified|Signing date" -replace ":\s+","=" | ConvertFrom-StringData
                        $_ = $_.VersionInfo
                        foreach ($i in $value)
                        {
                                $_ | Add-Member -Name $i.keys -Value ("$($i.values)") -MemberType NoteProperty
                        }
                        $_
                }
}

dir C:\Windows\ *.exe | Get-IsVerified | fl *
dir C:\Windows\ *.exe | Get-IsVerified | fl FileName,Verified,"Signing date",ProductVersion

Iska 13-10-2011 18:05 1772609

Цитата:

Цитата Kazun
где нет таких проблем. »

Однако :(…
читать дальше »
PowerShell ISE:
Цитата:

Код:

d:\install\microsoft data access components\microsoft data access components 2.8 sp1\MDAC_TYP.EXE:
        Verified:        Signed
        Signing date:        04:59 26.04.2005
        Publisher:        ?????????? ?????????? (Microsoft Corp.)
        Description:        ?????????????? CAB-?????? Win32                                         
        Product:        ???????????? ??????? Microsoftо Windowsо 2000
        Version:        5.50.4134.600
        File version:        5.50.4134.600


Собственно, PowerShell:
Цитата:

Код:

Sigcheck v1.71 - File version and signature viewer
Copyright (C) 2004-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

d:\install\microsoft data access components\microsoft data access components 2.8 sp1\MDAC_TYP.EXE:
        Verified:      Signed
        Signing date:  04:59 26.04.2005
        Publisher:      ?????????? ?????????? (Microsoft Corp.)
        Description:    ?????????????? CAB-?????? Win32
        Product:        ???????????? ??????? Microsoftо Windowsо 2000
        Version:        5.50.4134.600
        File version:  5.50.4134.600
C:\Program Files\Sigcheck
.


А как у Вас?

Kazun 13-10-2011 18:54 1772650

Тот же самый вариант,только чуть больше вывода и использование PowerShell c sigcheck.

Код:

dir C:\Windows\notepad.exe | Get-IsVerified | fl *

Verified          : Signed
Signing date      : 7:17 14.07.2009
Comments          :
CompanyName        : Microsoft Corporation
FileBuildPart      : 7600
FileDescription    : Notepad
FileMajorPart      : 6
FileMinorPart      : 1
FileName          : C:\Windows\notepad.exe
FilePrivatePart    : 16385
FileVersion        : 6.1.7600.16385 (win7_rtm.090713-1255)
InternalName      : Notepad
IsDebug            : False
IsPatched          : False
IsPrivateBuild    : False
IsPreRelease      : False
IsSpecialBuild    : False
Language          : English (United States)
LegalCopyright    : c Microsoft Corporation. All rights reserved.
LegalTrademarks    :
OriginalFilename  : NOTEPAD.EXE.MUI
PrivateBuild      :
ProductBuildPart  : 7600
ProductMajorPart  : 6
ProductMinorPart  : 1
ProductName        : MicrosoftR WindowsR Operating System
ProductPrivatePart : 16385
ProductVersion    : 6.1.7600.16385
SpecialBuild      :


Pavelnt 13-10-2011 19:21 1772669

На самом деле PowerShell не очень интересен. Заброс систем большой от 2000 до win7. Возможно ли это сделать в bat?

Iska 13-10-2011 19:46 1772680

Kazun, я имел в виду именно проблемы с кириллицей. У Вас найдётся какой-либо файл, где не «Microsoft Corporation», а «Корпорация Майкрософт»? На нём как будет?

Цитата:

Цитата Pavelnt
Заброс систем большой от 2000 до win7. Возможно ли это сделать в bat? »

С 2000, конечно, PoSH отпадает, к сожалению. Например, так:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sFile=%~1

if not defined sFile (
        call :Usage
        exit /b 1
)

if not exist "%sFile%" (
        echo File [%sFile%] not found
        exit /b 2
)

for /f "skip=1 tokens=2 delims=," %%i in (
    '""%ProgramFiles%\Sigcheck\sigcheck.exe" -q -v "%sFile%""'
) do set sSigned=%%i

if defined sSigned (
        echo %sSigned%
) else (
        echo Can't determine sign status
)

endlocal
exit /b 0

:Usage
        echo Usage: %~nx0 ^<file to verify^>
        exit /b 0


Kazun 13-10-2011 19:58 1772694

Я выше же уже писал,что нет проблем,от sigcheck надо только подписан он или нет.

Код:

Verified          : Signed
Signing date      : 9:48 21.11.2010
Comments          : Flavor=Retail
CompanyName        : Microsoft Corporation
FileBuildPart      : 31106
FileDescription    : Исполняющий механизм среды выполнения Microsoft .NET
FileMajorPart      : 4
FileMinorPart      : 0
FileName          : C:\Windows\System32\MUI\0419\mscorees.dll
FilePrivatePart    : 0
FileVersion        : 4.0.31106.0 (Main.031106-0000)
InternalName      : mscorees.dll
IsDebug            : False
IsPatched          : False
IsPrivateBuild    : True
IsPreRelease      : False
IsSpecialBuild    : False
Language          : Russian (Russia)
LegalCopyright    : c Корпорация Майкрософт (Microsoft Corp.). Все права защищены.
LegalTrademarks    :
OriginalFilename  : mscorees.dll
PrivateBuild      : DDBLD278
ProductBuildPart  : 31106
ProductMajorPart  : 4
ProductMinorPart  : 0
ProductName        : MicrosoftR .NET Framework
ProductPrivatePart : 0
ProductVersion    : 4.0.31106.0
SpecialBuild      :


Iska 13-10-2011 21:56 1772775

Kazun, спасибо, ясно. Буду думать.


Время: 19:15.

Время: 19:15.
© OSzone.net 2001-