snowman25
Goto Top

RunAs startet DISM als 32-Bit Prozess in einer 64-Bit Umgebung

Hallo Leute,

momentan versuche ich, die Rollouts hier etwas zu automatisieren und bin auf ein Problem gestoßen:
Zur Installation des deutschen Sprachpakets benutze ich dism /online /add-package /norestart /packagepath:\\serverpfad\etc\lp.cab. Dies funktioniert soweit auch aus einer Admin-Shell.
Da ich es jetzt lokal testen wollte habe ich eine UserShell geöffnet und den Befehl ausgeführt. Ergebnis: DISM meckert, dass er als Admin laufen muss.
Also ein RunAs /user:Administrator davorgeklemmt und das Passwort eingegeben.
Ergebnis:
Fehler: 11

Ein ausgeführtes 64-Bit-Betriebssystem kann nicht mit einer 32-Bit-Version von
DISM gewartet werden.
Verwenden Sie die DISM-Version, die der Architektur der Computers entspricht.

Im Log unter C:\windows\logs\dism\dism.log steht auch folgendes:
2013-09-04 17:12:44, Info                  DISM   DISM.EXE: Host machine information: OS Version=6.1.7601, Running architecture=x86, Number of processors=4
Zum Vergleich bei normaler Ausführung:
2013-09-04 17:16:17, Info                  DISM   DISM.EXE: Host machine information: OS Version=6.1.7601, Running architecture=amd64, Number of processors=4

Ist das ein Bug? Konnte keine Info finden, dass RunAs alles als 32-Bit starten würde.

Gruß,
@Snowman25

Content-Key: 216117

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

Printed on: April 23, 2024 at 16:04 o'clock

Member: ThePinky777
ThePinky777 Sep 04, 2013 at 15:42:37 (UTC)
Goto Top
Wann und Wie und Wo startest du das Script genau ?
Member: Snowman25
Snowman25 Sep 04, 2013 updated at 15:45:34 (UTC)
Goto Top
Das war zu Testzwecken auf meiner eigenen Maschine (win7 enterprise, 64bit), wo das Languagepack auch schon installiert ist.
Vorgang:
  • Windows + R
  • cmd
  • runas-command
Daraufhin poppt sehr kurz eine neue Shell im Admin-Kontext auf, welche die beschriebene Fehlermeldung zeigt.
Member: ThePinky777
Solution ThePinky777 Sep 04, 2013, updated at Jan 28, 2014 at 13:49:26 (UTC)
Goto Top
Probier mal:

%windir%\SysWOW64\dism.exe

anstatt nur

dism.exe

das selbe gilt auch für RUNAS

%windir%\SysWOW64\runas.exe

anstatt nur

runas.exe

Sprich anstatt:
runas /user:Administrator dism /online /add-package /norestart /packagepath:\\serverpfad\etc\lp.cab

so

%windir%\SysWOW64\runas.exe /user:Administrator %windir%\SysWOW64\dism.exe /online /add-package /norestart /packagepath:\\serverpfad\etc\lp.cab
Member: andy1234
andy1234 Sep 04, 2013 updated at 20:00:47 (UTC)
Goto Top
Benutz den alias um auf 64 bit prozess aus einem 32 bit Umfeld zu gelangen.
%windir%\system32
wird in den 32-bit Teil %windir%\syswow64 gelenkt.

Benutze:
%windir%\sysnative\....

see: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.8 ...
Member: ThePinky777
ThePinky777 Sep 05, 2013 at 06:06:37 (UTC)
Goto Top
%windir%\sysnative zeigt auf c:\Windows

bringt uns hier aber nicht weiter.
Member: Snowman25
Snowman25 Sep 05, 2013 at 08:50:09 (UTC)
Goto Top
Zitat von @ThePinky777:
Sprich anstatt:
runas /user:Administrator dism /online /add-package /norestart /packagepath:\\serverpfad\etc\lp.cab

so

%windir%\SysWOW64\runas.exe /user:Administrator %windir%\SysWOW64\dism.exe /online /add-package /norestart
/packagepath:\\serverpfad\etc\lp.cab

Ausprobiert, geht auch nicht.
SysWOW64 ist doch eigentlich auch nur die 32-Bit-Node und system32 enthält die ganzen 64-Bit Programme.

Und dann funktioniert es auch so:
%windir%\system32\runas /user:Administrator "%windir%\system32\dism.exe /online /add-package /norestart /packagepath:\\<server>\nonpublic\microsoft\Windows7-LanguagePacks-64bit-SP1\de-de\lp.cab"  
Dies ist zwar eigenartig, weil %windir%\system32 an erster Stelle in der PATH-Variablen steht (und diese doch von vorne nach hinten abgesucht wird), aber solange es funktioniert, bin ich glücklich face-smile

Danke!
Gruß,
@Snowman25