Ich verwende Windows 7 und wenn ich versuche, eine Batchdatei auszuführen, heißt es: "Der Herausgeber konnte nicht überprüft werden. Sind Sie sicher, dass Sie diese Software ausführen möchten?"
Wenn ich versuche, es mit meinem Codesignaturzertifikat zu signieren, wird "SignTool-Fehler: Dieses Dateiformat kann nicht signiert werden, da es nicht erkannt wird" angezeigt.
Also stecke ich zwischen einem Felsen und einem harten Ort fest. Gibt es eine Möglichkeit, eine der beiden Nachrichten zu entfernen?
Antworten:
Ich erhalte eine ähnliche Meldung, wenn ich Batchdateien (oder andere ausführbare Dateien) von einem Netzwerkspeicherort aus ausführe. In diesem Fall können Sie es auf ein lokales Laufwerk verschieben. Eine andere Alternative besteht darin, eine separate Batchdatei auf dem lokalen Laufwerk zu verwenden, um die im Netzwerk zu starten. Die Start-Batch-Datei muss nur eine Zeile enthalten:
Windows wird die lokale Datei nicht blockieren, und sobald diese Datei ausgeführt wird, kann es die Netzwerkversion ohne Probleme aufrufen.
quelle
E:
ist also ein Laufwerk mit Netzwerkzuordnung?Sie signieren keine Batch-Dateien. Es hört sich so an, als würde Ihre Batch-Datei etwas anderes aufrufen, das signiert werden sollte.
Bearbeiten: Nachdem Sie eine Batch-Datei veröffentlicht haben, können wir feststellen, dass dies am Netzwerkspeicherort liegt. Oder manchmal passiert es, wenn Sie lediglich eine Datei von einem Netzwerkspeicherort kopieren . Im letzteren Fall liegt es daran, dass Windows die Datei über einen alternativen Datenstrom so markiert hat, dass sie sich in einer anderen Internetzone befindet. Sie können dies auf zwei Arten umgehen:
type thefile.bat > %temp%\newfile.bat & type %temp%\newfile.bat > thefile.bat
quelle
Was Sie sehen, ist eine allgemeine Eingabeaufforderung, die Windows bereitstellt, wenn Sie versuchen, eine heruntergeladene Datei zu einem beliebigen Zeitpunkt zu öffnen. Wenn Sie eine Datei herunterladen, wird sie mit einem Flag gekennzeichnet, das angibt, dass sie aus dem Internet stammt und daher möglicherweise gefährlich ist. Wenn Sie versuchen, eine solche Datei auszuführen, prüft Windows, ob sie eine gültige Signatur hat, um festzustellen, ob sie vertrauenswürdig ist.
Was Sie tun können, ist, das Flag aus der Datei zu entfernen, indem Sie die Schaltfläche " Blockierung aufheben" in den Eigenschaften der Datei verwenden. Danach lässt Windows Sie in Ruhe, wenn Sie versuchen, es auszuführen:
Das Problem ist, dass Batch-Dateien Textdateien sind, die ausgeführt werden können. Während es möglich ist, eine Textdatei zu signieren, wird am Ende eine Reihe von Binärdaten an die Datei angehängt, was für eine Batch-Datei fehlerhaft ist, da sie Kauderwelsch ist und Probleme verursacht, wenn der Befehlsinterpreter versucht, sie auszuführen. Das Auskommentieren der Signatur funktioniert auch nicht, da die Signatur dann beschädigt wird.
Daher funktioniert das Signieren einer Batchdatei nicht.
Was Sie tun müssen, ist herauszufinden, warum das System Sie auffordert, es auszuführen. Standardmäßig fragt Windows nicht, bevor Batch-Dateien ausgeführt werden. Daher muss eine spezielle Richtlinie oder ein Sicherheitsprogramm dies blockieren. Überprüfen Sie Ihre Sicherheitsprogramme, um festzustellen, ob es eine Überprüfungseinstellung gibt, für die Sie einen Ausschluss deaktivieren oder hinzufügen können.
Überprüfen Sie auch den Inhalt der Batch-Datei, um festzustellen, ob eine nicht signierte ausführbare Datei ausgeführt wird (obwohl Windows standardmäßig nicht nach ausführbaren Dateien fragt, es sei denn, sie wurde heruntergeladen oder erfordert erhöhte Berechtigungen. Überprüfen Sie daher Ihre Einstellungen).
quelle
goto :eof
vor der Signatur einfügen , aber das würde dann den Hash der Datei ändern und die Signatur ungültig und damit die Datei als beschädigt / unsicher machen. Ich nehme an, Sie könnten die Zeile dort am Ende der Datei haben, bevor Sie sie signieren, und sie sollte funktionieren. Interessantes Experiment zum Ausprobieren…Sie können die .bat-Datei auch in ein PowerShell-Skript konvertieren. Signtool unterstützt das Signieren dieser Dateien.
quelle