[Risolto] session-setup avvia ancora PowerShell a 32 bit

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
swbsf
Messaggi: 8
Registrazione: 27 luglio 2017 - 09:50

4 agosto 2017 - 10:57

Buongiorno,
Lo ammetto, è un argomento piuttosto complicato, quindi mi rivolgo a voi per vedere se qualcuno ha qualche suggerimento :)

Il mio script PowerShell:

Codice: Seleziona tutto

$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
La fine di impostazione della sessione :

Codice: Seleziona tutto

        cmd="c:\\Windows\\System32\\WindowsPowershell\\v1.0\\powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File c:\\tmp\\Win10.ps1"
        run(cmd,timeout=7200)
E i registri mi dicono:

Codice: Seleziona tutto


    **********************
    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
Incredibile, vero? Il nome dell'applicazione, con il percorso completo, è corretto, eppure avvia la versione a 32 bit. Ma la versione a 32 bit non ha nemmeno la metà dei comandi di cui ho bisogno. Grazie, Microsoft.
Ultima modifica di swbsf il 4 agosto 2017 alle 11:20, modificato 1 volta.
swbsf
Messaggi: 8
Registrazione: 27 luglio 2017 - 09:50

4 agosto 2017 - 11:02

Il cappio si stringe!

Codice: Seleziona tutto

    >>> run(u'c:\\Windows\\System32\\WindowsPowershell\\v1.0\\powershell.exe -Command "[Environment]::Is64BitProcess"')
    <RunOuput returncode :0>
    u'False\r\n'
swbsf
Messaggi: 8
Registrazione: 27 luglio 2017 - 09:50

4 agosto 2017 - 11:20

Okay, quindi farò le domande e le risposte. ;)
La risposta è stata trovata qui: https://stackoverflow.com/a/23395020/3829020
Che furbacchione questo Windows!
Per farla breve, se cerchi il processo in System32, questa directory è virtualizzata per processi a 32 bit (in questo caso, Python), quindi finisci sempre con una versione a 32 bit di PowerShell. Pertanto, devi cercarlo in %SystemRoot%\SysNative.
Meno male.
Avatar utente
agauvrit
Esperto WAPT
Messaggi: 238
Registrazione: 17 nov 2016 - 10:25
Posizione: Nantes
Contatto:

4 agosto 2017 - 16:07

Ottima soluzione!

Anche noi abbiamo avuto lo stesso problema quando cercavamo di richiamare dism.exe su un pacchetto; bisogna controllare l'alias di Sysnative per assicurarsi di richiamare quello corretto.

Alexandre
Bloccato