sigcheck -a -q %windir%\system32\mstsc.exe
- Bei Bedarf MD5, SHA1, PESHA1, SHA256 hinzufügen
sigcheck -a -q -h %windir%\system32\mstsc.exe
- Testversion und Befehl ausführen:
sigcheck -a -q %windir%\system32\mstsc.exe | find "Prod version:" | find "6.0.6001.18564" && Echo "RDP 6.0.6001.18564"
filever - Support-Tools:
Windows XP Service Pack 2-Supporttools oder
32-Bit-Supporttools für 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
Power Shell:
Dateibeschreibung:
powershell (gi %windir%\system32\mstsc.exe).versioninfo.FileDescription
Ausführung:
powershell (gi %windir%\system32\mstsc.exe).versioninfo ^|Ft -Au
Skriptversion vergleichen:
$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'
}
Ausgabe:
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: Entpacken, ausführen 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:
Installieren Sie das Win32 :: File :: VersionInfo-Modul: cpan Win32::File::VersionInfo
use Win32::File::VersionInfo;
$fn=$ENV{windir} . "\\system32\\mstsc.exe";
$fl=GetFileVersionInfo($fn);
if($fl){print $fl->{FileVersion},"\n";}
Die Antwort von @STTR ist in Ordnung, bietet aber keine Möglichkeit, Versionen im Batch zu vergleichen , da dies beispielsweise auch das Problem beim Vergleich von 10.0.10049 mit 6.3.9600 sein kann.
Wenn Sie es mit plain machen
IF %ver1% GTR %ver%
, erhalten Sie einen Stringvergleich und6.3.9600
erscheinen größer als10.0.10049
.Ich weiß, dass Sie gesagt haben, dass es nicht "für mich schreiben" ist, aber in diesem Fall ist es einfacher, Code zu schreiben, als ihn im Klartext zu erklären (und der Code ist selbsterklärend).
Unter /superuser//a/363308/131936 habe ich herausgefunden, wie man die Dateiversion liest
wmic
, die mit nackten Fenstern geliefert wird.compareVersion.cmd
Wie Sie dies in Bezug auf Ihre Frage nutzen können:
Lesen Sie zuerst eine Dateiversion:
dann vergleiche es mit anderen Dateien:
Sie können die Version auch fest codieren, wenn Sie möchten:
PS Hier ist mein Skript zum Lesen / Überprüfen der Windows-Version , das auf einem ähnlichen Prinzip basiert .
quelle
Nicht genau für die Versionsprüfung, aber Sie können die MD5- oder SHA1-Prüfsumme zweier Dateien berechnen und vergleichen und dann vergleichen, ob sie identisch sind. Wenn die Prüfsummenzeichenfolgen gleich sind, sind die beiden Dateien identisch (daher dieselbe Version), ansonsten unterschiedlich.
Sie können das FCIV-Tool in der Befehlszeile verwenden, um die Prüfsumme zu berechnen.
quelle