Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何使用Invoke命令将bath文件作为远程服务器运行?_Powershell_Batch File_Powershell 2.0_Powershell 3.0 - Fatal编程技术网

Powershell 如何使用Invoke命令将bath文件作为远程服务器运行?

Powershell 如何使用Invoke命令将bath文件作为远程服务器运行?,powershell,batch-file,powershell-2.0,powershell-3.0,Powershell,Batch File,Powershell 2.0,Powershell 3.0,我刚刚编写了一个批处理文件,希望作为远程服务器运行,但当我使用Invoke命令时,它在PowerShell中不断给我错误。批处理文件运行良好。有人知道我错过了什么吗?下面是我的PowerShell脚本和我得到的错误 Invoke-Command -ComputerName "HEPWIN2020-10" -Scriptblock {Start-Process C:\DHCP\batfile1.bat} 我得到的错误是: Invoke-Command : A positional paramet

我刚刚编写了一个批处理文件,希望作为远程服务器运行,但当我使用
Invoke命令时,它在PowerShell中不断给我错误。批处理文件运行良好。有人知道我错过了什么吗?下面是我的PowerShell脚本和我得到的错误

Invoke-Command -ComputerName "HEPWIN2020-10" -Scriptblock {Start-Process C:\DHCP\batfile1.bat}
我得到的错误是:

Invoke-Command : A positional parameter cannot be found that accepts argument ''. At line:1 char:1 + Invoke-Command -ComputerName "HEPWIN2012-03" -Scriptblock{Start-Proce ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Invoke-Command], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeCommandCommand 调用命令:找不到接受参数“”的位置参数。 第1行字符:1 +调用命令-ComputerName“HEPWIN2012-03”-脚本块{启动进程。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:InvalidArgument:(:)[Invoke Command],ParameterBindingException +FullyQualifiedErrorId:PositionParameterNotFound,Microsoft.PowerShell.Commands.InvokeCommandCommand
仅供参考,如果远程计算机具有凭据,您也应该传递该凭据。并且使用
调用表达式
而不是
启动进程

$Username = 'USER'
$Password = 'PASSWORD'
$pass = ConvertTo-SecureString -AsPlainText $Password -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass
Invoke-Command -ComputerName "Server1" -credential $cred -ErrorAction Stop -ScriptBlock {Invoke-Expression -Command:"cmd.exe /c 'C:\DHCP\batfile1.bat'"}

-Scriptblock
和实际脚本块
{…}之间添加一个空格
@Theo即使使用空格,它仍然会给出相同的错误。您使用的是哪个Powershell版本?您的标记同时显示PSv2和v3。然后请使用添加的空格编辑您的问题。此外,我认为您最好引用文件路径
C:\DHCP\batfile1.bat
,因为我假设这只是一个示例文件,实际文件可能包含空格人物。。