0
この作業の目的は、単純な.batスクリプトをPowerShellジョブとして実行することです。出力の最後のエラーメッセージを除いて正しく動作するように見えます。Start-Jobを実行するディレクトリを指定する方法はありますか?
PowerShellはどこからジョブを開始するディレクトリを取得しますか?それが使用する場所は、私のデフォルトのWindows "documents"ディレクトリです。私の組織は、ローカルディスク上の「マイドキュメント」ディレクトリの使用を許可していません。
Start-Jobを実行する初期ディレクトリを指定できますか?もしそうなら、どうですか?
PS C:\src\powershell> Get-Content .\sayhi.bat
SET EXITCODE=0
ECHO hi
EXIT /B %EXITCODE%
PS C:\src\powershell> Start-Job -ScriptBlock {& "C:\Windows\System32\cmd.exe" "/C", "C:\src\powershell\sayhi.bat"}
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Job1 BackgroundJob Running True localhost & "C:\Windows\System32...
PS C:\src\powershell> Get-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Job1 BackgroundJob Completed True localhost & "C:\Windows\System32...
PS C:\src\powershell> Receive-Job -Id 1 -Keep
20:15:27.33 C:\Windows
C:>SET EXITCODE=0
20:15:27.33 C:\Windows
C:>ECHO hi
hi
20:15:27.35 C:\Windows
C:>EXIT /B 0
'\\AHOST\USERS\pwatson\My Documents'
+ CategoryInfo : NotSpecified: ('\\AHOST\USERS\pwatson\My Documents':String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
+ PSComputerName : localhost
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.