sigcheck -a -q %windir%\system32\mstsc.exe
- w razie potrzeby dodać MD5, SHA1, PESHA1, SHA256
sigcheck -a -q -h %windir%\system32\mstsc.exe
- wersja testowa i uruchom polecenie:
sigcheck -a -q %windir%\system32\mstsc.exe | find "Prod version:" | find "6.0.6001.18564" && Echo "RDP 6.0.6001.18564"
filever - Narzędzia wsparcia:
Narzędzia obsługi systemu Windows XP z dodatkiem Service Pack 2 lub
Windows Server 2003 Service Pack 2 32-bitowe narzędzia pomocy technicznej
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:
Opis pliku:
powershell (gi %windir%\system32\mstsc.exe).versioninfo.FileDescription
wersja:
powershell (gi %windir%\system32\mstsc.exe).versioninfo ^|Ft -Au
porównanie wersji skryptu:
$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'
}
wynik:
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 install: Rozpakuj, uruchom 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:
Zainstaluj moduł 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";}
Odpowiedź @STTR jest w porządku, z wyjątkiem tego, że nie zapewnia sposobu na porównanie wersji wsadowych , ponieważ może to być również problem, na przykład przy porównywaniu 10.0.10049 z 6.3.9600.
Jeśli zrobisz to z prostym
IF %ver1% GTR %ver%
, otrzymasz porównanie ciągów i6.3.9600
będzie większe niż10.0.10049
.Wiem, że powiedziałeś, że nie jest to „pisz dla mnie”, ale dzieje się tak, gdy łatwiej jest napisać kod niż wyjaśnić go zwykłym angielskim (a kod jest zrozumiały).
Od /superuser//a/363308/131936 dowiedziałem się, jak czytać wersję pliku za pomocą
wmic
, która jest dostarczana z pustymi oknami.CompareVersion.cmd
Jak wykorzystać to w odniesieniu do twojego pytania:
najpierw przeczytaj jedną wersję pliku:
następnie porównaj go z innymi plikami:
możesz też na stałe zapisać wersję, jeśli chcesz:
PS Oto mój skrypt do odczytu / sprawdzenia wersji systemu Windows , zbudowany na podobnej zasadzie.
źródło
Niezupełnie do sprawdzania wersji, ale można obliczyć i porównać sumę kontrolną MD5 lub SHA1 dwóch plików, a następnie porównać, jeśli są takie same. Jeśli ciągi sumy kontrolnej są równe, oba pliki są dokładnie takie same (stąd ta sama wersja), w przeciwnym razie różne.
Możesz użyć narzędzia FCIV w wierszu poleceń, aby obliczyć sumę kontrolną.
źródło