hta – Troubles auf Windows Server 2008 R2 (= 64 bit)


sehr verwirrender ArtikelNaja, ganz OKbrauchbar für Checker...guter Artikelsehr guter Artikel - Danke

Eine aus einer hta aufgerufene Command-shell läuft auf einem 64-bit-System per default als 32-bit-Anwendung (Kontrolle: Taskmanager -> cmd.exe*32)Wo ist hier die Ursache zu suchen?auf einem Windows Server 2008 R2 (ohne SP1) sind mehrere mshta.exe vorhanden:
1.) mshta.exe in c:\windows\system32  – Dateiversion 8.0.7600.16385
2.) mshta.exe in c:\windows\winsxs\amd64_microsoft-windows-ie-htmlap… – Dateiversion  8.0.7600.16385
3.) mshta.exe in c:\windows\sysWOW64 – Dateiversion   8.0.7600.16385
4.) mshta.exe in c:\winsxs\wow64_microsoft-windows-ie-htmlap… – Dateiversion   8.0.7600.16385 

Bei mir wurde (auf dem mir vorliegenden System) per default jede .hta mit “C:\Windows\SysWOW64\mshta.exe” gestartet…
das Kuriose daran: obwohl der Pfad intuitiv auf eine 64-bit-Anwendung hindeuten würde, handelt es sich hierbei um die 32-bit-Version der mshta.exe [ARGHH]

Wird nun aus einer hta., die mit der ”C:\Windows\SysWOW64\mshta.exe” ausgeführt wird, eine Command-Shell geöffnet, dann ist diese Command-Shell ebenfalls jene aus “C:\windows\SysWOW64″  und damit ebenfalls eine 32-bit-Anwendung!

Dies führt dazu, dass nur ein eingeschränkter Befehlsumfang zur Verfügung steht, speziell der WDS in der Version des 2008 R2 (64-bit-only) ist damit nicht per command-line zu steuern…

Lösung:

Variante1:
auf eine .hta am Server Rechtsklick -> Standardprogramm auswählen -> C:\windows\system32\mshta.exe -> Dateityp immer mit dem ausgewählten Programm öffnen

Dadurch wird dann auch die Command-Shell aus C:\windows\system32\cmd aufgerufen, die den vollen Befehlsumfang hat. (Beispiel: WDSUtil etc)

Variante2:
man kopiert die cmd.exe aus C:\windows\system32 in einen beliebigen Ordner und ruft in der .hta dann diese cmd.exe mit dem vollen Pfad zu diesem beliebigen Ordner auf!
Dadurch bleibt die hta eine 32-bit-Anwendung, die cmd läuft aber als 64-bit-Anwendung.


This entry was posted in VBScript, Windows Server 2008. Bookmark the permalink.

Hinterlasse eine Antwort