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

Art*_*dez 14 powershell powershell-2.0

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

一个简单的

dir \\server\share\folder
Run Code Online (Sandbox Code Playgroud)

只是拒绝工作,我得到这个错误

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
Run Code Online (Sandbox Code Playgroud)

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

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

Aar*_*sen 15

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

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

 Enable-WSManCredSSP -Role server
Run Code Online (Sandbox Code Playgroud)

如果运行Get-WSManCredSSPcmdlet并获得以下输出,您将知道正确配置的内容:

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

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

 Enable-WSManCredSSP -Role Client -DelegateComputer <REMOTE_COMPUTER_NAME>
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

  1. 打开gpedit.msc并浏览到计算机配置>管理模板>系统>凭据委派.
  2. 双击"允许使用仅NTLM服务器身份验证委派新凭据".
  3. 启用该设置并将构建服务器作为WSMAN/BuildServerName添加到服务器列表中.(您可以通过输入WSMAN/*来启用所有服务器.)

然后,当您需要在远程服务器上运行命令时,您不能使用任何*-PSSession命令,因为CredSSP无法使用缓存凭据.您必须使用启动会话Invoke-Command,并使用CredSSP作为Authentication参数的值,如下所示:

Invoke-Command -ScriptBlock { # remote commands here } `
               -ComputerName <REMOTE_COMPUTER_NAME> `
               -Authentication CredSSP `
               -Credential <USERNAME>
Run Code Online (Sandbox Code Playgroud)