суббота, 29 мая 2010 г.

SharePoint 2010 & PowerShell: remote managment

Возможность работать с SharePoint 2010 через PowerShell очень интересна, особенно учитывая то что PowerShell 2.0 умеет работать удаленно. Командлеты для работы с PowerShell можно посмотреть, например, тут.
Для начала я попробовал просто подключиться к удаленной машине (там Win2k8 R2):

Enter-PSSession -ComputerName SERVER

И получил ошибку:
Enter-PSSession : Connecting to remote server failed with the following error message : The client cannot connect to th
e destination specified in the request. Verify that the service on the destination is running and is accepting requests
. Consult the logs and documentation for the WS-Management service running on the destination, most commonly IIS or Win
RM. If the destination is the WinRM service, run the following command on the destination to analyze and configure the
WinRM service: "winrm quickconfig". For more information, see the about_Remote_Troubleshooting Help topic

Т.е. перед тем как работать удаленно, надо на сервере вызвать команду:
winrm quickconfig
,но лучше вместо нее использовать PowerShell-команду:
Enable-PSRemoting

После подключения нам нужно будет загрузить командлеты для работы с Sharepoint.
Add-PSSnapin Microsoft.SharePoint.Powershell

И можно будет работать.

Вот такая команда создаст сайт.
New-SPWeb -url "http://SERVER/newSite"

Но с большой вероятностью вы увидите ошибку :
New-SPWeb : Server Out Of Memory.
There is no memory on the server to run your program. Please contact your administrator with this problem.0x8
007000e
    + CategoryInfo          : InvalidData: (Microsoft.Share....SPCmdletNewWeb:SPCmdletNewWeb) [New-SPWeb], OutOfMemory
   Exception
    + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletNewWeb

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

Короче, надо на сервере дать вот такую команду:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1000
Это увеличит объем памяти со 150М до 1G и этого уже должно будет хватить. :)

Используя эту технику можно делать удаленно многое из того что не доступно в Clien Object Model и Web Services.

Комментариев нет: