远程 PowerShell 执行脚本失败?解决方法在此!372


在使用 PowerShell 进行远程管理时,您可能会遇到无法执行脚本的常见问题。本文将深入探讨此问题的潜在原因并提供详细的解决方案,帮助您顺利远程执行 PowerShell 脚本。

原因 1:未启用远程 PowerShell

远程 PowerShell 必须在目标计算机上启用。要检查其状态,请在目标计算机上运行以下命令:```powershell
Get-PSSessionConfiguration
```

如果 EnableRemotePS 设置为 False,请运行以下命令启用它:```powershell
Set-PSSessionConfiguration -Name -EnableRemotePS $true
```

原因 2:目标计算机上的安全限制

目标计算机上的安全限制可能会阻止远程脚本执行。要检查这些限制,请在目标计算机上运行以下命令:```powershell
Get-LocalPolicy -List | Select-String -Pattern "ScriptBlockLogging"
```

如果 Audit ScriptBlockLogging设置为已禁用,则需要启用它。此外,您还可以修改以下注册表项以允许远程脚本执行:```
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\powershell\ScriptExecutionPolicy
```

将 LocalMachine 值设置为 RemoteSigned。

原因 3:防火墙阻止 PowerShell 端口

防火墙可能会阻止 PowerShell 远程管理端口 (TCP 5985)。要检查其状态,请在目标计算机上运行以下命令:```powershell
Get-NetFirewallRule -DisplayName "PowerShell Remoting (TCP)"
```

如果规则已禁用,请启用它。此外,您还可以使用以下命令允许通过防火墙的连接:```powershell
New-NetFirewallRule -DisplayName "PowerShell Remoting (TCP)" -Profile Domain,Private -Direction Inbound -Action Allow -Protocol Tcp -RemotePort 5985
```

原因 4:目标计算机上的 Windows Management Instrumentation (WMI) 服务

WMI 服务用于远程管理和脚本执行。要检查其状态,请在目标计算机上运行以下命令:```powershell
Get-Service winmgmt | Select-Object -ExpandProperty Status
```

如果服务已停止,请启动它。此外,您还可以使用以下命令配置 WMI 服务以允许远程连接:```powershell
Set-Item -Path WSMan:localhost\Client\TrustedHosts -Value 'IPAddressOrHostName'
```

原因 5:目标计算机上的 PowerShell 执行策略

目标计算机上的 PowerShell 执行策略可能会阻止远程脚本执行。要检查其状态,请在目标计算机上运行以下命令:```powershell
Get-ExecutionPolicy
```

如果策略设置为 RemoteSigned 或 AllSigned,则需要将其更改为 RemoteSigned 或 Unrestricted。您还可以使用以下命令设置执行策略:```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
```

通过遵循本文中提供的解决方案,您应该能够解决远程 PowerShell 无法执行脚本的问题。请记住,根据您的环境和目标计算机的配置,可能需要应用多个解决方案。如果您遇到其他问题,请随时在评论区寻求帮助。

2024-12-05


上一篇:了解启动中的 PowerShell 脚本

下一篇:Powershell 脚本文件夹:管理和自动化任务的终极指南