Seite 1 von 1

[Gelöst] session-setup startet PowerShell weiterhin in der 32-Bit-Version

Veröffentlicht: 4. August 2017 - 10:57 Uhr
von swbsf
Guten Morgen,
Ich gebe zu, es ist ziemlich kompliziert, deshalb wende ich mich an Sie, um zu sehen, ob jemand dazu Erkenntnisse hat :)

Mein PowerShell-Skript:

Code: Alle auswählen

$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference="Continue"
Start-Transcript -path c:\tmp\Win10.log -append

if ([Environment]::Is64BitProcess) {
        echo "64 bit powershell" }
Else { echo "32 bit powershell" }
Stop-Transcript
Das Ende von Sitzungseinrichtung :

Code: Alle auswählen

        cmd="c:\\Windows\\System32\\WindowsPowershell\\v1.0\\powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File c:\\tmp\\Win10.ps1"
        run(cmd,timeout=7200)
Und die Protokolle sagen mir:

Code: Alle auswählen


    **********************
    Début de la transcription Windows Powershell
    Heure de début : 20170804094010
    Nom d'utilisateur : DESKTOP-IJCDS8M\bobby
    Utilisateur runAs : DESKTOP-IJCDS8M\bobby
    Ordinateur : DESKTOP-IJCDS8M (Microsoft Windows NT 10.0.15063.0)
    Application hôte : c:\Windows\System32\WindowsPowershell\v1.0\powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File c:\tmp\Win10.ps1
    ID de processus : 3080
    PSVersion: 5.1.15063.502
    PSEdition: Desktop
    PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.15063.502
    BuildVersion: 10.0.15063.502
    CLRVersion: 4.0.30319.42000
    WSManStackVersion: 3.0
    PSRemotingProtocolVersion: 2.3
    SerializationVersion: 1.1.0.1
    **********************
    Transcription démarrée, le fichier de sortie est c:\tmp\Win10.log
    32 bit powershell
Unglaublich, oder? Der Anwendungsname und der vollständige Pfad stimmen, und trotzdem startet die 32-Bit-Version. Aber die 32-Bit-Version hat nur die Hälfte der benötigten Befehle. Danke, Microsoft.

Betreff: Sitzungseinrichtung startet PowerShell immer im 32-Bit-Modus

Veröffentlicht: 4. August 2017 - 11:02 Uhr
von swbsf
Die Schlinge zieht sich zu!

Code: Alle auswählen

    >>> run(u'c:\\Windows\\System32\\WindowsPowershell\\v1.0\\powershell.exe -Command "[Environment]::Is64BitProcess"')
    <RunOuput returncode :0>
    u'False\r\n'

Betreff: Sitzungseinrichtung startet PowerShell immer im 32-Bit-Modus

Veröffentlicht: 4. August 2017 - 11:20 Uhr
von swbsf
Okay, ich beantworte die Fragen. ;)
Die Antwort habe ich hier gefunden: https://stackoverflow.com/a/23395020/3829020
Windows ist echt raffiniert!
Kurz gesagt: Wenn man den Prozess in System32 sucht, ist dieses Verzeichnis für 32-Bit-Prozesse (in diesem Fall Python) virtualisiert, sodass man immer auf eine 32-Bit-PowerShell stößt. Deshalb muss man ihn in %SystemRoot%\SysNative suchen.
Puh!

Betreff: [Gelöst] session-setup startet weiterhin PowerShell in 32-Bit

Veröffentlicht: 4. August 2017 - 16:07 Uhr
von agauvrit
Ausgezeichnete Lösung!

Wir hatten dasselbe Problem beim Aufruf von dism.exe für ein Paket. Man muss den Sysnative-Alias ​​überprüfen, um sicherzustellen, dass man den richtigen aufruft.

Alexandre