Selbsterstelltes VBScript führt zu Fehlermeldung: Diese App kann auf dem PC nicht ausgeführt werden

Hallo Mädels und Jungs,

habe ein kleines VBScript geschrieben, welches den Namen einer ausführbaren Datei (*.exe) um die Dateiversion ergänzen soll, wenn eine vorhanden ist.
Also aus "EssentialPIMPro.exe" soll "EssentialPIMPro.9.10.6.exe" werden.

Mit Wscript.Arguments kann eine Datei übergeben und somit ein Kontextmenüeintrag im Explorer eingerichtet werden.
Zu Testzwecken ist eine Variable mit einem existierenden Dateinamen eingebaut, wenn kein Argument übergeben wird.
Hier "F:\vs_community.exe".
Die VBS-Datei ist in"C:\Scripts" gespeichert.

Nun folgendes Phänomen: Klicke ich die VBS-Datei zum Ausführen an, wird mir brav der neue Dateiname "F:\vs_community.16.9.31105.61.exe" angezeigt.
Führe ich das Script jedoch aus dem Explorer-Kontextmenü aus, poppt eine Warnmeldung auf:

"Diese App kann auf dem PC nicht ausgeführt werden. Wenden Sie sich an den Softwareherausgeber, um eine geeignete Version für Ihren PC zu finden"

Für hilfreiche Tipps wäre ich sehr dankbar.
Gruß
Peter

Content-Key: 1305748975

Url: https://administrator.de/contentid/1305748975

Ausgedruckt am: 20.10.2021 um 00:10 Uhr

Mitglied: PeterleB
PeterleB 25.09.2021 aktualisiert um 15:52:49 Uhr
Goto Top
Habe jetzt noch ein Hilfsscript angelegt, um die VBS als Admin zu starten.
Doch auch das ändert nichts.

adminstart-fileversion.vbs


Übrigens führt mein Script bisher die Umbenennung noch gar nicht aus, sondern zeigt erstmal in einem Wscript.Echo den möglichen neuen Namen an, es finden also gar keine Dateioperationen statt.

Gruß
Peter
Mitglied: beidermachtvongreyscull
beidermachtvongreyscull 26.09.2021 um 07:08:10 Uhr
Goto Top
Moin,

stell doch mal das komplette Script zur Verfügung. Das würde Spekulationen reduzieren.

Gruß
bdmvg
Mitglied: PeterleB
PeterleB 26.09.2021 aktualisiert um 09:28:18 Uhr
Goto Top
Hallo,

mache ich gern:


Anstelle "WScript.Echo "Neuer Dateiname: " & sNewName" soll dann mal
ausgeführt werden.

Ich denke, dass es kein Problem des Scriptes ist, sondern eher die Tatsache, dass die Kontextmenüverknüpfung auf EXE-Dateien zugreifen will.

Gruß
Peter
Mitglied: beidermachtvongreyscull
beidermachtvongreyscull 26.09.2021 aktualisiert um 10:53:13 Uhr
Goto Top
Das Script sieht auf den ersten Blick gut aus.

Ich nehme an, dass der Aufruf aus dem Kontextmenü falsch abläuft.

Hast Du mal geprüft, was das Script als Argument bekommt und wie es das weiterverarbeitet?
Du hast keine Fehlerbehandlung drin. Es kann also sein, dass im Script dann etwas schief läuft.

Gruß
Andreas
Mitglied: colinardo
Lösung colinardo 26.09.2021 aktualisiert um 12:36:13 Uhr
Goto Top
Servus Peter.
Zu aller erst, die Dateiversion bekommt man zuverlässiger und ohne langwierige Schleife anhand der CLSID der Windows-Property und der Methode ExtendedProperty über Windows OS hinweg sprachunabhängig. Das kennt aber leider kaum einer.

Dann zu der Meldung die du erhältst: Die Meldung kommt wenn du in den Kontextmenüeintrag den VBS Pfad direkt einträgst, damit kann Windows hier nichts anfangen, du musst das VBS Skript dort stattdessen explizit mit dem regulären Interpreter wscript.exe oder cscript.exe starten und den Pfad des Skripts übergeben:
Und als Hinweis wie man das Auslesen der Property effektiver und auch Sprachunabhänig macht (Zeile 16)

Brauchst du stattdessen die ProductVersion statt die FileVersion (die können sich ja je nach Produkt unterscheiden) machst du das am Ende von Zeile 16 meines Skriptes einfach so
Das Äquivalent für die CLSID für "FileVersion" im Klartext ist

Ich habe in meinem Beispiel die CLSID und die propID verwendet weil das etwas effektiver ist als mit den Namen zu arbeiten.

Grüße Uwe
Mitglied: PeterleB
PeterleB 26.09.2021 um 12:46:25 Uhr
Goto Top
Hallo,

lieber Uwe, Du bist wieder mal der Beste!
Abgesehen von einem fehlenden Backslash in meiner Version funktioniert es jetzt hervorragend.
Deine Erläuterungen überzeugen mich und ich werde deshalb Deine Variante einsetzen.
Habe noch ein //NOLOGO in den Registryeintrag eingefügt.
Vielen Dank.

Zu Testzwecken habe ich versucht, das gleiche Problem mit Powershell anzugehen.
Hätte das Vorteile?


Was hältst Du davon?

Gruß
Peter
Mitglied: colinardo
colinardo 26.09.2021 aktualisiert um 13:18:57 Uhr
Goto Top
Zitat von @PeterleB:
Habe noch ein NOLOGO in den Registryeintrag eingefügt.
Kannst du machen ist aber überflüssig. VBS zeigt via wscript per default keine Interpreter-Banner.
Zu Testzwecken habe ich versucht, das gleiche Problem mit Powershell anzugehen.
Hätte das Vorteile?
Was hältst Du davon?
Sicher kannst du auch zur Powershell greifen, das ist dann jedem selbst überlassen, du musst halt die Executionpolicy beachten des jeweiligen Systems beachten z.B. über -EP Bypass im Kontextmenüeintrag.
Und auch das aufblitzende Powershell-Fenster das du zwar mit -WindowStyle hidden etwas aber nicht ganz abstellen kannst. Für vollständige Unsichbarkeit ist dann wieder der Aufruf über ein wrapper vbs mit wscript.shell nötig.

p.s. das doppelt und dreifachen Aufruf get-item solltest du besser über eine Variable ablösen das kostet nur unnötige Ressourcen wenn das System die Properties immer erst erneut abfragen muss.

Das ganze lässt sich dann auch auf folgendes Powershell-Script reduzieren:

Mitglied: PeterleB
PeterleB 26.09.2021 um 13:34:52 Uhr
Goto Top
Hallo,

hab noch ein Icon für den Menüeintrag gefunden, dann sieht die Reg-Datei so aus:


Gruß
Peter
Mitglied: PeterleB
PeterleB 26.09.2021 um 13:52:31 Uhr
Goto Top
Nochmals vielen Dank.
Habe Deinen Beitrag als Lösung markiert.

Gruß
Peter
Heiß diskutierte Beiträge
question
Windows 11 Upgrade nicht möglichben1300Vor 1 TagFrageWindows 1114 Kommentare

Guten Morgen ! ich habe einen Gaming PC, mit folgende Spezifikationen: Leider kann ich diesen nicht auf Windows 11 upgraden: Welche Optionen bleiben mir, um ...

question
Was ich benötige ist ein guter Wechselrahmen 5,25"Lefty0815Vor 1 TagFrageFestplatten, SSD, Raid8 Kommentare

Hallo an alle, ich such mir noch einen Wolf :-) Was ich benötige ist ein Wechselrahmen 5,25" für eine zwei oder drei 3,5Zoll Festplatten (SATA ...

question
Exchange Server - Wege, anonymes Senden zu verbietenDerWoWussteVor 1 TagFrageExchange Server11 Kommentare

Ich grüße Euch! Ziel 1: Alle PCs sollen Warnmeldungen per E-Mail geskriptet und anonym versenden können. In diesen Skripten handelt das Computerkonto und im Skript ...

question
Neuinstallation NetzwerkBurQueVor 14 StundenFrageNetzwerkgrundlagen13 Kommentare

Hallo ich hab die Aufgabe bekommen ein Netzwerk in einem neuen Gebäude einzurichten bzw. mir dazu Gedanken zu machen. Raumsituation. Im Keller steht ein Serverschrank ...

question
WLAN Lösung für Gästehaus Vereinjohannes-meyerVor 1 TagFrageLAN, WAN, Wireless8 Kommentare

Hallo, ich betreue die IT eines Vereins, der zwei Gebäude mit Gästebetrieb betreibt. Es sind regelmäßig an die 30 bis 50 Geräte verbunden. Ich hab ...

question
SMTP Relay Server gelöst MacLeodVor 1 TagFrageExchange Server10 Kommentare

Hallo zusammen. Vorwort: Habe das hier bei Exchange eingeteilt, betrifft aber Mailserver Versand allgemein. Bei einem Kunden mit einem Kerio Mailserver werden neben dem üblichen ...

question
Multi-WAN-Netzwerk fürs StudentenwohnheimHutzeljaegerVor 8 StundenFrageLAN, WAN, Wireless17 Kommentare

Hallo allerseits. Für die Internetversorgung unseres Studentenwohnheims muss ich nun sehen, dass ich eine kostengünstige Lösung eines Multi-WAN Netzwerks hinbekomme, wohl am besten per Multi-WAN-Bonding. ...

question
Drei Fragen zum Internet Explorer gelöst UserUWVor 1 TagFrageWebbrowser4 Kommentare

1) Der IE lässt sich unter Windows 10 deaktivieren, aber nicht physisch deinstallieren. Heißt das, dass IE-Funktionalitäten "unter der Haube" auch von Windows 10 genutzt ...