HTA kann ie4uinit.exe nicht ausführen

515
Azevedo

Ich versuche, Desktopsymbole von einer HTA mit folgendem zu aktualisieren:

var shell = new ActiveXObject("WScript.Shell"); shell.run("C:\\Windows\\System32\\ie4uinit.exe -show"); 

Ich leite es als Administrator und bin sicher, dass es C:\Windows\System32\ie4uinit.exeexistiert.

Wenn ich genau den gleichen Befehl aus einem vbscript verwende .vbs, wird die Datei erfolgreich ausgeführt.

Ist es eine Art Einschränkung? Warum kann HTA nicht ausgeführt werden C:\Windows\System32\ie4uinit.exe?

Die Fehlermeldung:

HTA kann ie4uinit.exe nicht ausführen

Wie kann ich diese Arbeit machen?

2
Was ist die Fehlermeldung, wenn es nicht funktioniert? DavidPostill vor 6 Jahren 0
Ich habe die Frage mit dem Fehlerbildschirm aktualisiert. Azevedo vor 6 Jahren 0
Es scheint mir immer noch, dass die 32-Bit-Umleitung für ie4uinit nicht gefunden werden kann. Sind Sie sicher, dass Sie den 64-Bit-Modus ausführen, wenn das Dialogfeld angezeigt wird? harrymc vor 6 Jahren 0
Positiv. 64bit. Ich habe das Prozessabbild im Task-Manager überprüft. Azevedo vor 6 Jahren 0
Was passiert, wenn Sie als System mit `psexec -i -s` laufen? Als weitere Testfreigabe für Ihr Konto [Bypass Traversing Checking] (https://docs.microsoft.com/de-de/windows/security/threat-protection/security-policy-settings/bypass-traverse-checking). harrymc vor 6 Jahren 0
Sie können auch den Inhalt des Registrierungsschlüssels "HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ htafile \ Shell \ Open \ Command" und die Header-Tags Ihres HTML-Codes anzeigen. harrymc vor 6 Jahren 0
Der Registrierungsschlüssel enthält: C: \ Windows \ SysWOW64 \ mshta.exe "% 1" % U % * Azevedo vor 6 Jahren 0
Dies ist der 32-Bit-HTA-Handler: `C: \ Windows \ SysWOW64 \ mshta.exe` - ** SysWOW64 **. Es scheint immer mehr wie eine Umleitung die Antwort zu sein, selbst wenn der Dialog durch eine unbekannte Magie von einer 64-Bit-Task erzeugt wird. Sie könnten versuchen, `C: \ Windows \ System32 \ mshta.exe` zu ​​verwenden, aber es könnte einiges kaputt gehen - es gibt einen Grund dafür, dass die 32-Bit-Version der Standard-Handler ist. harrymc vor 6 Jahren 0

1 Antwort auf die Frage

0
harrymc

Ihr Registrierungsschlüssel von HKEY_LOCAL_MACHINE\SOFTWARE\Classes\htafile\Shell\Open\Command enthält den Wert von:

C:\Windows\SysWOW64\mshta.exe "%1" %U %* 

Dies ist der 32-Bit-HTA-Handler, was bedeutet, dass Sie im 32-Bit-Modus ausgeführt werden.

Dies bedeutet weiterhin, dass Sie die 32-Bit-Version von VBScript verwenden, so dass die Umleitung von Windows-Dateien dazu führt, dass dort nachgesehen wird C:\Windows\SysWOW64, wo ie4uinit.exenicht vorhanden ist.

In dieser ServerFault-Antwort finden Sie eine Lösung, um zu vermeiden, dass zwei verschiedene Versionen Ihrer VBScript-Skripts verwaltet werden .

Alternativ können Sie versuchen, Ihre Anwendung mit dem 64-Bit-HTA-Handler zu starten C:\Windows\System32\mshta.exe.

Sie sollten sich der Tatsache bewusst sein, dass Microsoft HTA-Anwendungen nicht mehr aktiv unterstützt. Stattdessen konzentrieren Sie sich lieber auf Windows Forms und ähnliche Technologien. Daher ist es sehr wahrscheinlich, dass HTA in der Zukunft nicht mehr verwendet wird.

Alle 64bit hier. Immer noch nicht so. Ich habe den vollständigen Pfad zu "ie4uinit.exe" angegeben Azevedo vor 6 Jahren 0
Der Task-Manager in Windows 10 zeigt nicht mehr die 32- und 64-Bit-Größe eines Prozesses. Dazu benötigen Sie den Process Explorer, der die Spalte Image Type anzeigt, oder Sie doppelklicken auf das Exe und sehen es im Feld Image. harrymc vor 6 Jahren 0
Theoretisch können Sie immer noch über das [Dateisystem-Redirector] (https://docs.microsoft.com/en-us/windows/desktop/winprog64/file-system-redirector) auf das reale System zugreifen32: `C: \ Windows \ Sysnative \ ie4uinit.exe`, obwohl ich nicht weiß, wie gut dies in Ihrer Umgebung funktioniert. Beachten Sie, dass `Sysnative` kein Verzeichnis ist, sondern nur ein Traversal-Tool und für 64-Bit-Apps nicht vorhanden ist. harrymc vor 6 Jahren 0
@Azevedo: Irgendwelche Kommentare? harrymc vor 6 Jahren 0
Immer noch die gleichen. Azevedo vor 6 Jahren 0
Es bleibt gleich, solange Sie im 32-Bit-Modus laufen. Der Link, den ich gegeben habe, hat eine Lösung, die ich nicht getestet habe. harrymc vor 6 Jahren 0
Haben Sie immer noch Bedenken hinsichtlich der Richtigkeit meiner Antwort? harrymc vor 6 Jahren 0