代码之家  ›  专栏  ›  技术社区  ›  user2049142

在Powershell中传递凭据以启动服务时遇到问题,但未获得无效参数错误

  •  0
  • user2049142  · 技术社区  · 6 年前

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

    $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 回复  |  直到 6 年前
        1
  •  1
  •   Jacob    6 年前

    你需要用管道把它传出去

    $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