PowerShell 脚本错误:RPC 服务器不可用

PowerShell 脚本错误:RPC 服务器不可用

我正在慢慢接触 Powershell,所以我是个新手。尝试让 PS 从文本文件中提取 PC 列表并让我知道它们的 App Identity Service 的状态。基本脚本出错(如下)。我添加了 $ErrorActionPreference = 'SilentlyContinue 语句,但我没有看到错误,但脚本仍然停止。我得到了前两个结果,之后它出错了。有什么想法吗?

$ErrorActionPreference = 'SilentlyContinue'
$path = 'C:\Users\user\Documents\list.txt'
$pc = Get-Content $path
gwmi win32_service -ComputerName $pc | where name -like "APPIDSVC" | select SystemName,startmode,state | Out-GridView

这是我的错误(拒绝访问)

gwmi : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
At line:3 char:1
+ gwmi win32_service -ComputerName $pc | where name -like "APPIDSVC" |  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], COMException
    + FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

gwmi : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
At line:3 char:1
+ gwmi win32_service -ComputerName $pc | where name -like "APPIDSVC" |  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-WmiObject], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

答案1

通过在每个目标端点winrm quickconfig上运行来启用远程管理。(如果您有很多端点,则可以使用 GPO 或 SCCM 等工具进行配置。)

这将启动监听传入 PowerShell 管理的服务。除此之外,您还需要确保您的防火墙允许端口 5985 和 5986 以使此服务正常运行。

如您所指出的,您用于使用 PowerShell 进行远程管理(或查询)的帐户也需要目标计算机上的本地管理员权限。解决此问题的一个好方法是在 Active Directory 中创建一个“服务器管理员”组,并使用组策略对象将此组添加到每台服务器上的本地管理员组(除了你的域控制器)然后,为您的系统管理员创建单独的服务器管理员帐户(这些帐户应该与他们的标准日常使用帐户分开,并与任何域管理员帐户分开)并将这些帐户放入“服务器管理员”组。

答案2

所以我发现如果我以域管理员身份运行 PS,它会继续运行。我想我很幸运,找到了解决方案。

相关内容