什么安全设置阻止Remote PowerShell 2.0访问UNC路径

时间:2011-12-02 20:13:52

标签: powershell powershell-v2.0

这很疯狂,我开始使用PowerShell。当然,我需要远程管理员工作。

一个简单的

dir \\server\share\folder

只是拒绝工作,我收到此错误

Get-ChildItem : Cannot find path '\\server\share\folder' because it does not exist.
    + CategoryInfo          : ObjectNotFound: (\\server\share\folder:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

对我来说很明显这是一个访问权限问题。我们公司在这里有一个域名。我在VNC上使用完全相同的用户帐户登录到服务器,我可以看到UNC路径。但每当我尝试使用远程连接从桌面复制文件时。它只是不起作用!!!!

我可以做很多其他的事情,所以我很肯定我有联系。

2 个答案:

答案 0 :(得分:15)

要使其正常工作,您必须配置本地和远程计算机。

在远程服务器上,运行以下命令:

 Enable-WSManCredSSP -Role server

如果运行Get-WSManCredSSP cmdlet并获得以下输出,您就会知道事情已经正确配置:

  

计算机未配置为允许委派新凭据。   此计算机配置为从远程客户端计算机接收凭据。

在本地计算机上,在管理PowerShell提示符下,您需要在PowerShell中允许凭据委派。运行以下命令:

 Enable-WSManCredSSP -Role Client -DelegateComputer <REMOTE_COMPUTER_NAME>

您可以使用* REMOTE_COMPUTER_NAME启用所有服务器。

当您运行Get-WSManCredSSP并获得以下输出时,您将知道这已正确配置:

  

机器配置为允许将新凭据委派给以下目标:wsman / REMOTE_SERVER_NAME
  此计算机未配置为从远程客户端计算机接收凭据。

在本地计算机上,更新组策略以允许将凭据委派给远程服务器。

  1. 打开gpedit.msc并浏览到计算机配置&gt;管理模板&gt;系统&gt;证书授权。
  2. 双击“允许使用仅限NTLM的服务器身份验证委派新凭据”。
  3. 启用该设置,并将构建服务器作为WSMAN / BuildServerName添加到服务器列表中。 (您可以通过输入WSMAN /*来启用所有服务器。)
  4. 然后,当您需要在远程服务器上运行命令时,您不能使用任何* -PSSession命令,因为CredSSP无法使用缓存凭据。您必须使用Invoke-Command启动会话,并使用CredSSP作为Authentication参数的值,如下所示:

    Invoke-Command -ScriptBlock { # remote commands here } `
                   -ComputerName <REMOTE_COMPUTER_NAME> `
                   -Authentication CredSSP `
                   -Credential <USERNAME>
    

答案 1 :(得分:0)

Powershell还在运行远程脚本时使用Internet Explorer安全设置。

我发现,对于你试图运行远程脚本的任何机器,如果我将远程机器的unc路径添加到我信任的intrAnet站点,那么我可以运行脚本(假设我的执行策略是豪华的设置为remotesigned ....“set-executionpolicy remotesigned”)。

我为使用和不使用SQL的多个服务器进行了大量管理,而且我从未对Enable-WSManCredSSP做过任何事情。