我已经阅读了Q / A已经可用,并且找不到我的答案(可能太简单了?)。
我有一个PS功能: 1)将本地.bat文件放入远程机器(目标) 2)调用远程.bat(通过invoke-command)传递一个参数 3)等待远程.bat成功完成 4)从目标机器中删除.bat
我的问题是一切都运行得很好但是...参数没有显示!
PS脚本的代码是:
function Run-BatchFile ($computer,$dbn, [string]$batLocation)
{
$sessions = New-PSSession -ComputerName $computer -Credential elsmith
Copy-Item -Path $batLocation -Destination "\\$computer\C$\temp" #copy the file locally on the machine where it will be executed
$batfilename = Split-Path -Path $batLocation -Leaf
Invoke-Command -Session $sessions -ScriptBlock {param($batfilename) & cmd.exe /c "C:\Temp\$batfilename $dbn" } -ArgumentList $batfilename -AsJob
-ArgumentList $batfilename -AsJob
Get-job | Wait-Job
Remove-Item -Path "\\$computer\C$\Temp\$batfilename" -Force
Remove-PSSession -Session $sessions
}
Run-BatchFile SERVERNAME JOHN "C:\Temp\test_remote_called.bat"
调用脚本的代码只是:
set DB=%1
echo Test of %DB% was successful >> c:\temp\output.txt
exit /B
输出结果为:
Test of was successful
我确定必须有一个微不足道的方法来解决这个问题:我犯了一个严重的错误吗?我错过了什么吗?