如何不将 Powershell 中用户名中的“(1)”视为位置参数

如何不将 Powershell 中用户名中的“(1)”视为位置参数

长话短说,我的 SBS2011 Sharepoint 有问题。要修复,我需要按照以下方式运行一些 PS 命令:https://blogs.technet.microsoft.com/sbs/2011/08/17/http-error-503-accessing-company-web-on-sbs-2011-standard/

问题是我的 SBS 帐户以某种方式自我复制了,spfarm现在也是如此spfarm(1)

因此当我运行时(按照说明)

Set-SPManagedAccount -UseExistingPassword -Identity $env:userdomain\accountname

我正在跑步

Set-SPManagedAccount -UseExistingPassword -Identity $env:userdomain\spfarm(1)

这会导致 powershell 错误

Set-SPManagedAccount:找不到接受参数“1”的位置参数。

我不太了解 PS,那么如何使用像spfarm(1)上述命令中的用户名?

答案1

脚本引擎正在spfarm(1)以函数形式进行评估。要阻止它这样做,您可以将参数括在双引号中

"$env:userdomain\spfarm(1)"

现在引擎仍然进行评估,$env:userdomain但它并不将其视为spfarm(1)一项功能。

虽然大多数情况下这样做是可行的,但更安全的做法是明确说明应该评估什么并将其更改为$env:userdomain$($env:userdomain)最后,参数变为

"$($env:userdomain)\spfarm(1)"

相关内容