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

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
swbsf
Nachrichten: 8
Anmeldung: 27. Juli 2017 - 09:50 Uhr

4. August 2017 - 10:57 Uhr

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.
Zuletzt bearbeitet von swbsf am 4. August 2017 um 11:20 Uhr, 1 Mal bearbeitet.
swbsf
Nachrichten: 8
Anmeldung: 27. Juli 2017 - 09:50 Uhr

4. August 2017 - 11:02 Uhr

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'
swbsf
Nachrichten: 8
Anmeldung: 27. Juli 2017 - 09:50 Uhr

4. August 2017 - 11:20 Uhr

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!
Benutzeravatar
agauvrit
WAPT-Experte
Nachrichten: 238
Anmeldung: 17. November 2016 - 10:25 Uhr
Ort: Nantes
Kontakt:

4. August 2017 – 16:07 Uhr

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
Gesperrt