我需要在具有管理员权限的远程计算机上执行Powershell脚本。
我有2个脚本:客户端和服务器。
当我启动client.ps1时,我在服务器计算机上调用命令,但出现访问错误。如果我在server.ps1中使用简单的代码(如写入主机“hello”),则不会出错。

server.ps1:

 Get-service -ComputerName 'client'

client.ps1:
$ScriptBlockContent = {
        d:\server.ps1
        }
$remote=New-PSSession -ComputerName 'server'
Invoke-Command $remote -ScriptBlock $ScriptBlockContent

最佳答案

您的问题是身份验证。您必须启用服务器才能使用您的凭据。您可以使用CredSSP做到这一点。

  • 在您的客户端上启用此功能:

    Enable-WSManCredSSP-角色客户端-DelegateComputer ServerName此处
  • 在您的服务器上启用它:

    Enable-WSManCredSSP-角色服务器
  • 现在将其添加到您的Invoke-Command中:
  • -Credential Domain\YourUsername -Authentication CredSSP
    需要说明的是:使用CredSSP,如果您连接到受感染的系统(与RDP相同),则很容易窃取您的凭据。确保仅在安全计算机上执行此操作。

    关于powershell - 在远程计算机上运行.ps1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43968015/

    10-13 08:03