设置服务:找不到与参数名称“凭据”匹配的参数

ASF*_*est 5 powershell service

我正在尝试使用 powershell 脚本来更改服务的登录凭据。根据此 Microsoft 文档(示例 8),我使用以下代码:

$credential = Get-Credential
Set-Service -Name serviceName -Credential $credential
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,系统提示我输入用户名和密码,我输入了这些信息,但随后出现以下错误:

Set-Service : A parameter cannot be found that matches parameter name 'Credential'.
At line:2 char:28
+ Set-Service -Name serviceName -Credential $credential
+                            ~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-Service], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SetServiceCommand
Run Code Online (Sandbox Code Playgroud)

这可能是什么原因造成的?这台机器不在域中,但我以本地管理员身份登录,并以管理员身份运行 powershell。我有权更改这些服务,并且可以通过通常的服务 GUI 正常输入登录详细信息。

小智 4

Credential参数仅适用于 PowerShell 版本 6+(不受支持)。
您可能使用的是 PowerShell 6 之前的版本(很可能是 5.1,它仍然是 Windows 10 和 11 中的主要版本)。

见下文Set-Service

运行$PSVersionTable.PSVersion, 到您的 PowerShell 版本。

如果运行(Get-Help -Name Set-Service).Parameters.parameter.Name,您将在活动版本中找到所有可用参数。
如果您运行的是 5.1 或更早版本,则应Get-Help -Name Set-Service -Parameter Credential返回错误“没有参数与条件匹配。”。

安装或更新到 PowerShell 7.X就像运行一样简单winget install Microsoft.PowerShell