sigcheck -a -q %windir%\system32\mstsc.exe
- при необходимости добавить MD5, SHA1, PESHA1, SHA256
sigcheck -a -q -h %windir%\system32\mstsc.exe
- проверить версию и запустить команду:
sigcheck -a -q %windir%\system32\mstsc.exe | find "Prod version:" | find "6.0.6001.18564" && Echo "RDP 6.0.6001.18564"
filever - Инструменты поддержки:
Средства поддержки Windows XP с пакетом обновления 2 или
32-разрядные средства поддержки Windows Server 2003 с пакетом обновления 2 (SP2)
filever /V %windir%\system32\mstsc.exe
вар 2:
filever /V %windir%\system32\mstsc.exe | findstr "FileDesc Version"
filever /V %windir%\system32\mstsc.exe | findstr "ProductVersion" | find "6.0.6001.18564" && Echo "RDP 6.0.6001.18564"
filever /V %windir%\system32\mstsc.exe | findstr "ProductVersion" | find "6.0.6001.18564" || Echo "NOT 6.0.6001.18564"
WMIC:
wmic datafile where "name='C:\\<windows dir>\\system32\\mstsc.exe'" get version
Powershell:
Описание файла:
powershell (gi %windir%\system32\mstsc.exe).versioninfo.FileDescription
версия:
powershell (gi %windir%\system32\mstsc.exe).versioninfo ^|Ft -Au
Сравнение версии скрипта:
$VerArr = [version]"8.2.6001.18564", [version]"6.0.6001.18564"
[version]$v1="8.2.6001.18564"
[version]$v2="6.0.6001.18564"
[version]$v3=(gi $env:windir\system32\mstsc.exe).versioninfo.ProductVersion
$v3
$v3 -ge $v1
$v3 -ge $v2
If ($VerArr -contains $v3)
{
echo 'Run version list block'
}
выход:
Major Minor Build Revision
----- ----- ----- --------
6 0 6001 18564
False
True
Run version list block
WSH:
cscript //Nologo vers01.vbs
vers01.vbs:
WScript.Echo CreateObject("Scripting.FileSystemObject").GetFileVersion(CreateObject("WScript.Shell").Environment("Process")("WINDIR") & "\system32\mstsc.exe")
JScript:
cscript //Nologo vers01.js
vers01.js:
WScript.Echo(new ActiveXObject("Scripting.FileSystemObject").GetFileVersion(new ActiveXObject("WScript.Shell").ExpandEnvironmentStrings("%windir%")+"//system32//mstsc.exe"));
pefile modyle установить: распаковать, запустить python setup.py install
import pefile, os
pe = pefile.PE(os.path.join(os.environ['WINDIR'],'system32\mstsc.exe'))
ProductVersion = pe.FileInfo[0].StringTable[0].entries['ProductVersion']
print ProductVersion
PHP:
php vers01.php
php.ini ( %windir%
):
extension_dir = C:\php\ext\
[COM_DOT_NET]
extension=php_com_dotnet.dll
vers01.php:
<?php
$path = getenv('SystemRoot').'\\system32\\mstsc.exe';
$fso = new COM("Scripting.FileSystemObject");
echo $fso->GetFileVersion($path);
?>
Perl:
Установите модуль Win32 :: File :: VersionInfo: cpan Win32::File::VersionInfo
use Win32::File::VersionInfo;
$fn=$ENV{windir} . "\\system32\\mstsc.exe";
$fl=GetFileVersionInfo($fn);
if($fl){print $fl->{FileVersion},"\n";}
Ответ @STTR 'хорош, за исключением того, что он не обеспечивает способ сравнения версий в пакетном режиме , так как это также может быть проблемой, например, при сравнении 10.0.10049 с 6.3.9600.
Если вы сделаете это с обычным
IF %ver1% GTR %ver%
, вы получите сравнение строк , и6.3.9600
будет выглядеть больше, чем10.0.10049
.Я знаю, что вы сказали, что это не «пиши для меня», но это тот случай, когда писать код легче, чем объяснять простым английским языком (и этот код не требует пояснений).
С /superuser//a/363308/131936 я нашел, как читать версию файла с помощью
wmic
, которая поставляется с открытыми окнами.compareVersion.cmd
Как использовать это относительно вас ваш вопрос:
сначала прочитайте одну версию файла:
затем сравните его с другими файлами:
Кроме того, вы можете жестко закодировать версию, если вы хотите:
PS Вот мой скрипт для чтения / проверки версии windows , построенный по схожему принципу.
источник
Не совсем для проверки версии, но вы можете вычислить и сравнить контрольную сумму MD5 или SHA1 двух файлов, а затем сравнить, если они одинаковы. Если строки контрольной суммы равны, два файла абсолютно одинаковы (отсюда и одна и та же версия), иначе отличаются.
Вы можете использовать инструмент FCIV в командной строке для вычисления контрольной суммы.
источник