El mensaje de credenciales del script de Powershell aparece antes de que se ejecute el host de lectura

El mensaje de credenciales del script de Powershell aparece antes de que se ejecute el host de lectura

Estoy llamando a un script dentro de otro script:

...
...
powershell C:/temp/script2.ps1"
...
...

Eso une una VM a un dominio después de descargar algunas cosas. Sin embargo, cuando se ejecuta el script, el mensaje "Agregar computadora" se ejecuta antes de leer el host o se omite por completo:

param (
    [String]$OU,
    [PSCredential]$Credential
    )

$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
Start-Transcript -path C:\script2.txt -append

if ([Environment]::UserInteractive) {
    if (!$OU) { $OU = Read-Host "Enter Tenant Resource Pool Name (exactly as appears in vCenter inventory)" }
    if (!$Credential) { $Credential = Get-Credential -Message "Enter dev domain credentials" }
}

# Add Computer to Dev domain

try {
        Add-Computer -DomainName dev.domain.com -OUPath "OU=$OU,dc=dev,dc=domain,dc=com" -ErrorAction stop -Credential $Credential
        }
catch {
        Write-Warning "Failed to join to domain."
        Read-Host -Prompt "Press Enter to exit"
    Throw $_
        }

Obviamente, esto falla porque la unión al dominio requiere -OUPath, que no aparece.

Si ejecuto script2.ps1 haciendo clic derecho, funciona. Cuando lo ejecuto desde dentro del otro script de esta manera, falla:

wget -O C:/temp/script1.ps1 https://script-source.com:8443/script1.ps1 | powershell C:\temp\script1.ps1

Respuesta1

Esto parece resolverse agregando un signo delante del nombre del script en lugar de llamarlo con PowerShell como estaba haciendo yo:

powershell_stuff
..
..
& C:/temp/script2.ps1
..
..
morePowershell_stuff

Idea de esta publicación:Script de PowerShell para ejecutar otro script de PowerShell y esperar hasta que termine

información relacionada