Запрос на ввод учетных данных скрипта Powershell появляется перед выполнением read-host

Запрос на ввод учетных данных скрипта Powershell появляется перед выполнением read-host

Я вызываю скрипт внутри другого скрипта:

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

Это присоединяет виртуальную машину к домену после загрузки некоторых вещей. Однако, когда скрипт запускается, запрос "Add-Computer" запускается перед read-host или вообще пропускается:

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 $_
        }

Очевидно, это не удается, поскольку для присоединения к домену требуется -OUPath, который не запрашивается.

Если я запускаю script2.ps1, щелкнув правой кнопкой мыши, он работает. Когда я запускаю его изнутри другого скрипта, вот так, он терпит неудачу:

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

решение1

Похоже, это решается добавлением амперсанда перед именем скрипта вместо его вызова с помощью PowerShell, как это делал я:

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

Идея из этого поста:Скрипт Powershell для запуска другого скрипта PowerShell и ожидания завершения

Связанный контент