我在批处理文件中使用了脚本来运行脚本以启动服务,该脚本要求启动服务的用户输入服务所需的用户名和密码。出现输入框,我可以输入凭据。
$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设置服务凭据的示例,但是只有一个可以完成我想做的事情,这显然是行不通的。
答案 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
的用途。