无法将凭证传递给Powershell中的Start-Service而没有得到无效的参数错误

时间:2018-08-01 17:48:34

标签: powershell

我在批处理文件中使用了脚本来运行脚本以启动服务,该脚本要求启动服务的用户输入服务所需的用户名和密码。出现输入框,我可以输入凭据。

$srvName = Get-Service | Where-Object { $_.ServiceName -like ‘myService’ }
Start-Service net -arg $srvName -Credential (Get-Credential)Out-File C:\a.txt

但是,服务无法启动,并且在我的文件中,出现以下错误。

CategoryInfo          : InvalidArgument: (:) [Start-Service], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.StartServiceCommand

当我看时,发现有很多使用Powershell设置服务凭据的示例,但是只有一个可以完成我想做的事情,这显然是行不通的。

1 个答案:

答案 0 :(得分:1)

您需要将其通过管道发送到文件外

$srvName = Get-Service | Where-Object { $_.ServiceName -like ‘myService’ }
Start-Service $srvName -Credential (Get-Credential) | Out-File C:\a.txt

发布的错误状态为InvalidArgument: (:),因为它会将Out-File C:\a.txt解释为Start-Service的参数,因此也解释为InvalidArgument

此外,启动服务没有-arg参数,而且我不确定net的用途。