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-ID: 216117

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

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

ThePinky777
ThePinky777 04.09.2013 um 17:42:37 Uhr
Goto Top
Wann und Wie und Wo startest du das Script genau ?
Snowman25
Snowman25 04.09.2013 aktualisiert um 17:45:34 Uhr
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.
ThePinky777
Lösung ThePinky777 04.09.2013, aktualisiert am 28.01.2014 um 14:49:26 Uhr
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
andy1234
andy1234 04.09.2013 aktualisiert um 22:00:47 Uhr
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 ...
ThePinky777
ThePinky777 05.09.2013 um 08:06:37 Uhr
Goto Top
%windir%\sysnative zeigt auf c:\Windows

bringt uns hier aber nicht weiter.
Snowman25
Snowman25 05.09.2013 um 10:50:09 Uhr
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