Какой параметр безопасности запрещает удаленному PowerShell 2.0 доступ к UNC-путям

Это просто безумие, я начинаю на 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 ответа

Решение

Чтобы это работало, вы должны настроить как локальный, так и удаленный компьютеры.

На удаленном сервере выполните следующую команду:

 Enable-WSManCredSSP -Role server

Вы будете знать, что все настроено правильно, если вы запустите Get-WSManCredSSP Командлет и получить следующий вывод:

Машина не настроена на разрешение делегирования новых учетных данных. Этот компьютер настроен на получение учетных данных с удаленного клиентского компьютера.

На локальном компьютере из командной строки администратора PowerShell необходимо разрешить делегирование полномочий в PowerShell. Запустите следующую команду:

 Enable-WSManCredSSP -Role Client -DelegateComputer <REMOTE_COMPUTER_NAME>

Вы можете включить все серверы, используя * для 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>

Powershell также использует настройки безопасности Internet Explorer при запуске удаленных сценариев.

Я обнаружил, что для любой машины, на которой вы пытаетесь запустить удаленный сценарий, если я добавлю unc-путь удаленной машины к моим доверенным сайтам intrAnet, тогда я смогу запустить сценарии (при условии, что моя политика выполнения в posh установлена ​​на remotesigned)..... "set-executepolicy remotesigned").

Я занимаюсь администрированием множества серверов с SQL и без него, и я никогда ничего не делал с Enable-WSManCredSSP.

Другие вопросы по тегам