0

Get-Credential を呼び出す powershell スクリプトがあります。入力した資格情報は、後でスクリプトと子スクリプトで複数のサーバーに対して使用されます。

コードは次のようになります。

$credentials = get-credential
CMD /c start powershell.exe -noexit -File subscript.ps1 $credentials

問題は subscript.ps1 内にあります。何が入ってくるかを確認するためだけにこのコードがあります。

$args.length
$args[0]

これにより、1つの System.Management.Automation.PSCredential が得られます

ご覧のとおり、Get-Credential 呼び出しによって返された実際のオブジェクトは渡されません。

これは、新しいコマンド ウィンドウでスクリプトを呼び出しているためだと思います。4 つの異なる subscript.ps1 を開く必要があるため、新しいコマンド ウィンドウを開く必要があります (並列処理用に異なるパラメーターを使用)。

何か案は?

ありがとう、アンドリュー

4

2 に答える 2

0

PowerShell V3 を使用している場合は、以下の構文を使用して非同期バックグラウンド タスクを開始します。

$job = Start-Job -ScriptBlock {param($cred) . C:\test.ps1 $cred} -ArgumentList $cred
wait-job $job 
receive-job $job
于 2012-12-12T18:29:26.713 に答える
0

既に PowerShell 内からプロセスを開始しているように見えるので、Start-Process受け入れるコマンドレットを使用します-Credential

于 2012-12-12T18:42:48.407 に答える