別のスクリプトを開始してパラメーターを渡す PowerShell スクリプトを入手しました。Start-Job
2 番目のスクリプトが終了するまで待ちたくないので、これを行います。
スクリプト A:
start-job -name EnableAutoUnlock -scriptblock {Invoke-Command -script { C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "\\Path\To\Script\EnableAutoUnlock.ps1" $VolumeDriveLetter }}
スクリプト B:
[CmdletBinding()]
Param (
[Parameter(Position=0)]
[string]$drive
)
<do stuff with $drive here>
$VolumeDriveLetter
処理される単なるドライブ文字、つまり「C:」です。
残念ながら、変数によるパラメーターの受け渡しは機能しません$VolumeDriveLetter
が、期待される値がありますが、入力は正しく機能します。
作品:
start-job -name EnableAutoUnlock -scriptblock {Invoke-Command -script { C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "\\Path\To\Script\EnableAutoUnlock.ps1" C: }}
動作しません
$VolumeDriveLetter = "C:"
start-job -name EnableAutoUnlock -scriptblock {Invoke-Command -script { C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "\\Path\To\Script\EnableAutoUnlock.ps1" $VolumeDriveLetter }}
編集: ScriptB は渡された変数を空として出力します
変数を渡して機能させるには何が欠けていますか?