Dateiversionsabfrage per batch bei einem client geht sie, bei anderen nicht
guten tag,
folgende code habe ich aus dem netz gefunden und benutze ihn:
@echo off & setlocal
set "Datei=c:\temp\firefox.exe"
set "GetV=%Temp%\GetV.vbs"
echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%"
echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%"
echo For Each objFile in colFiles: WScript.Echo objFile.version: Next>>"%GetV%"
set Version=
for /f %%i in ('cscript //nologo "%GetV%" "%Datei%"') do set "Version=%%i"
if defined Version echo %Datei% - Version %Version%
del "%GetV%"
pause
dieser frägt in einer batch die dateiversion von einer exe ab. damit kann ich dann in der batch weiter arbeiten.
bei 1 win 7 x64 funktioniert das script ohne probleme bei einem anderen pc mit komplett aktuellem patchstand bekomme ich die meldung:
C:\users\admini~.mer\appdata\local\temp\getv.vbs<1, 1> laufzeitfehler in Microsoft VBScript: Objekt erforderlich: 'objWMIService'
wie kann das sein, dass ein und der gleiche code auf unterschiedlichen maschinen gleicher prozessor-und os bauart unterschliedlich interpretiert wird?
wie kann ich dies ändern?
grüße chris
folgende code habe ich aus dem netz gefunden und benutze ihn:
@echo off & setlocal
set "Datei=c:\temp\firefox.exe"
set "GetV=%Temp%\GetV.vbs"
echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%"
echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%"
echo For Each objFile in colFiles: WScript.Echo objFile.version: Next>>"%GetV%"
set Version=
for /f %%i in ('cscript //nologo "%GetV%" "%Datei%"') do set "Version=%%i"
if defined Version echo %Datei% - Version %Version%
del "%GetV%"
pause
dieser frägt in einer batch die dateiversion von einer exe ab. damit kann ich dann in der batch weiter arbeiten.
bei 1 win 7 x64 funktioniert das script ohne probleme bei einem anderen pc mit komplett aktuellem patchstand bekomme ich die meldung:
C:\users\admini~.mer\appdata\local\temp\getv.vbs<1, 1> laufzeitfehler in Microsoft VBScript: Objekt erforderlich: 'objWMIService'
wie kann das sein, dass ein und der gleiche code auf unterschiedlichen maschinen gleicher prozessor-und os bauart unterschliedlich interpretiert wird?
wie kann ich dies ändern?
grüße chris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 213611
Url: https://administrator.de/forum/dateiversionsabfrage-per-batch-bei-einem-client-geht-sie-bei-anderen-nicht-213611.html
Ausgedruckt am: 15.04.2025 um 15:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo Chris,
bitte poste deinen Code mit Tags.
Eventuell hat der User auf dem PC nicht genug Rechte für WMI-Abfragen.
Du kannst die Datei-Version auch ohne WMI ausgeben lassen (Das sollte auf jeden Fall funktionieren)
Grüße Uwe
bitte poste deinen Code mit Tags.
Eventuell hat der User auf dem PC nicht genug Rechte für WMI-Abfragen.
Du kannst die Datei-Version auch ohne WMI ausgeben lassen (Das sollte auf jeden Fall funktionieren)
echo Set objFSO = CreateObject("Scripting.FileSystemObject")>"%GetV%"
echo Wscript.Echo objFSO.GetFileVersion(Replace(WScript.Arguments(0),"\","\\"))>>"%GetV%"
Grüße Uwe
hast du den obigen Code selber geschrieben oder nur kopiert ? dann wüstest du wo der hin kommt. Bitte poste Ihn erst mit Tags ansonsten gibts hier nix ....
Moin,
reden wir russisch oder was ist daran so schwer die Formatierungshilfen zu nutzen? Das ist nicht das erste Mal das du die Sache ignorierst! Ist es zuviel verlangt, eine Minute zu investieren und das ordentlich zu schreiben? Ich denke nicht!
Es stehen noch divesere Beiträge von dir aus... wenn ich dein Profil anschaue.
Grüße,
Dani (Mod)
reden wir russisch oder was ist daran so schwer die Formatierungshilfen zu nutzen? Das ist nicht das erste Mal das du die Sache ignorierst! Ist es zuviel verlangt, eine Minute zu investieren und das ordentlich zu schreiben? Ich denke nicht!
Es stehen noch divesere Beiträge von dir aus... wenn ich dein Profil anschaue.
Grüße,
Dani (Mod)
das ist nur kopiert... nutze ich auch
allerdings für NAV:
Und das Script funktioniert Tadellos auf Win7 (wir nutzen die Abfrage bei jedem Installationsscript wo es anschließen mit in`s Log geschrieben wird)
set "Datei=%PROGRAMFILES(X86)%\Microsoft Dynamics NAV\70\RoleTailored Client\Microsoft.Dynamics.Nav.Client.exe"
(
echo Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
echo Set objShell = CreateObject^("Shell.Application"^)
echo Set objFolder = objShell.NameSpace^(objFSO.GetParentFolderName^(WScript.Arguments^(0^)^)^)
echo WScript.Echo objFolder.ParseName^(objFSO.GetFileName^(WScript.Arguments^(0^)^)^).ExtendedProperty^("productversion"^)
)>"%temp%\getPV.vbs"
for /f %%i in ('cscript //nologo "%temp%\getPV.vbs" "%Datei%"') do set "ProdVersion=%%i"
del "%temp%\getPV.vbs"
Und das Script funktioniert Tadellos auf Win7 (wir nutzen die Abfrage bei jedem Installationsscript wo es anschließen mit in`s Log geschrieben wird)