Как выполнить сценарий powershell с сервера server1 для развертывания wsp на сервере server2 - PullRequest
1 голос
/ 07 июня 2019

Я пытаюсь удаленно развернуть файл wsp, присутствующий на сервере2, запустив скрипт powershell на сервере 1.

Я могу успешно войти на сервер2 через сервер1, используя следующую команду:

$password = ConvertTo-SecureString "password" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("username",$password)

но я не могу развернуть файл wsp.Это код, который я попробовал:

Enter-PSSession -ComputerName server2 -Credential $cred
Add-PSSnapin Microsoft.Sharepoint.Powershell –EA 0
Update-SPSolution -Identity TechSoup.Web.wsp -LiteralPath "C:\Program Files ...Debug\Some.wsp" -GacDeployment

Я также пытался поместить вышеуказанный код в скрипт, сохранить его и запустить скрипт удаленно.

Это ошибка, которую яЯ получаю.Я считаю, что это потому, что у меня нет привилегий администратора, я могу сказать это, потому что когда я запускаю код развертывания с сервера 2 от имени администратора, файл wsp развертывается.Итак, как я могу получить права администратора удаленно.У пользователя есть права администратора, все, что мне нужно сделать, это запустить его с повышенными привилегиями (например, щелкнуть правой кнопкой мыши и запустить от имени администратора, но программно)

Update-SPSolution: Невозможно получить доступ к локальной ферме.Убедитесь, что локальная ферма правильно настроена, доступна в данный момент и у вас есть соответствующие разрешения для доступа к базе данных, прежде чем пытаться снова

РЕДАКТИРОВАТЬ

У меня естьпопробовал приведенный ниже код скрипта в режиме администратора в powershell:

$password = ConvertTo-SecureString "serverpassword" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("userName",$password)
Enable-PSRemoting
Enable-WSmanCredSSP -Role Server
winrm set winrm/config/winrs '@{MaxShellsPerUser="25"}'
winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="600"}'
Enter-PSSession -ComputerName Server2 -Credential $cred  -Authentication credssp

Однако я продолжаю получать эту ошибку:

Enter-PSSession: не удалось подключиться к удаленному серверу Server2 со следующимсообщение об ошибке: WinRM клиент не может обработать запрос.Аутентификация CredSSP в настоящее время отключена в конфигурации клиента.Измените конфигурацию клиента и повторите запрос.Аутентификация CredSSP также должна быть включена в конфигурации сервера.Кроме того, групповая политика должна быть отредактирована, чтобы разрешить делегирование полномочий на целевой компьютер.Используйте gpedit.msc и просмотрите следующую политику: Конфигурация компьютера -> Административные шаблоны -> Система -> Делегирование учетных данных -> Разрешить делегирование новых учетных данных.Убедитесь, что он включен и настроен с именем участника-службы, соответствующим целевому компьютеру.Например, для имени целевого компьютера «myserver.domain.com» имя участника-службы может быть одним из следующих: WSMAN / myserver.domain.com или WSMAN / *. Domain.com. Для получения дополнительной информации см. Раздел справки about_Remote_Trou фондовой справки

Независимо от того, что я пытаюсь, я получаю эту ошибку.Я попробовал эти методы:

  • Разрешено Делегирование новых учетных данных, а также новых учетных данных NTLM в GPEdit.
  • Я пробовал скрипт, представленный в по этой ссылке
  • Я добавил пользовательские привилегии в compmgmt.msc для пользователей удаленного рабочего стола WinRMRemoteWMIUsers__ WSS_ADMIN_WPG Пользователи удаленного управления

Может кто-нибудь предложить что-нибудь ??

1 Ответ

0 голосов
/ 07 июня 2019

Для удаленного запуска команд SharePoint выполните шаги, описанные в: Удаленная PowerShell для локального управления SharePoint

По сути, после включения удаленного взаимодействия необходимо включить доступ CredSSP, чтобы ваши учетные данные отправлялись на удаленный и локальный компьютер для запуска команд с повышенными правами.

На сервере:

Enable-PSRemoting
Enable-WSmanCredSSP -Role Server
winrm set winrm/config/winrs '@{MaxShellsPerUser="25"}'
winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="600"}'

А на клиенте:

Enable-PSRemoting
Enable-WSmanCredSSP -Role Client -DelegateComputer "server2.contoso.com"

Затем на клиенте вы можете войти в сессию:

Enter-PSSession -ComputerName server2 -Credential $cred  -Authentication Credssp
...