Какой параметр безопасности запрещает удаленному PowerShell 2.0 доступ к UNC-путям - PullRequest
14 голосов
/ 03 декабря 2011

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

15 голосов
/ 08 декабря 2011

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

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

 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>
0 голосов
/ 16 января 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...