sigcheck -a -q %windir%\system32\mstsc.exe
- se necessário, adicione MD5, SHA1, PESHA1, SHA256
sigcheck -a -q -h %windir%\system32\mstsc.exe
- versão de teste e execute o comando:
sigcheck -a -q %windir%\system32\mstsc.exe | find "Prod version:" | find "6.0.6001.18564" && Echo "RDP 6.0.6001.18564"
filever - Ferramentas de suporte:
Ferramentas de suporte do Windows XP Service Pack 2 ou
Ferramentas de suporte de 32 bits do Windows Server 2003 Service Pack 2
filever /V %windir%\system32\mstsc.exe
var 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:
Descrição do arquivo:
powershell (gi %windir%\system32\mstsc.exe).versioninfo.FileDescription
versão:
powershell (gi %windir%\system32\mstsc.exe).versioninfo ^|Ft -Au
versão do script comparar:
$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'
}
resultado:
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"));
instalação do pefile modyle: Descompacte, execute 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:
Instale o módulo 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";}
A resposta @STTR 'está correta, exceto que não fornece uma maneira de comparar versões em lote , pois esse também pode ser o problema, por exemplo, ao comparar 10.0.10049 com 6.3.9600.
Se você fizer isso com simplicidade
IF %ver1% GTR %ver%
, obterá uma comparação de cadeias e6.3.9600
parecerá maior que10.0.10049
.Eu sei que você disse que não é "escreva para mim", mas esse é o caso quando é mais fácil escrever código do que explicar em inglês simples (e o código é auto-explicativo).
Em /superuser//a/363308/131936 , descobri como ler a versão do arquivo
wmic
, que é fornecida com janelas simples.compareVersion.cmd
Como usar isso em relação a sua pergunta:
primeiro, leia uma versão do arquivo:
então compare-o com outros arquivos:
Além disso, você pode codificar a versão, se desejar:
PS Aqui está o meu script para ler / verificar a versão do Windows , baseada em princípios semelhantes.
fonte
Não é exatamente para a verificação da versão, mas você pode calcular e comparar a soma de verificação MD5 ou SHA1 de dois arquivos e comparar se são iguais. Se as seqüências de soma de verificação forem iguais, os dois arquivos serão exatamente iguais (portanto, a mesma versão), caso contrário, diferentes.
Você pode usar a ferramenta FCIV na linha de comando para calcular a soma de verificação.
fonte