Een mogelijkheid met PowerShell en SharePoint 2010 is remote management. Dit betekend dat het mogelijk is om via PowerShell een SharePoint 2010 server remote te beheren zonder eerst een remote desktop verbinding met de server op te zetten. Om dit te kunnen doen zijn er een aantal zaken die eerst geconfigureerd moeten worden.
SharePoint Server
Remoting
Om te beginnen moet “remoting” worden aangezet op de server.
Windows PowerShell Remoting wordt ingeschakeld door de volgende cmdlet in PowerShell
Enable-PSRemoting

Test of remoting werkt op de server zelf:
Enter-PSSession –ComputerName localhost

Geheugen limiet voor remote shell
Standaard wordt er aan een remote shell 150MB geheugen toegewezen. Dit kan een probleem zijn bij commando’s die veel geheugen nodig hebben en daardoor fout gaan.
Met het volgende cmdlet wordt deze limiet verhoogd naar 1000MB
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1000

CredSSP-ondersteuning
Om geen problemen te krijgen met “double hop” authenticatie wordt CredSSP ingeschakeld.
Enable-WSmanCredSSP -Role Server

Client
Voer de volgende stappen uit op de computer welke gebruikt wordt voor SharePoint remote powershell
start gpedit.msc
Navigeer naar:
Local Computer Policy--> Computer Configuration--> Administrative Templates--> System--> Credentials Delegation

Allow Delegation Fresh Credentials
Voeg de SPN van de SharePoint server toe in het volgende formaat WSMAN/computer.domain
Allow Delegating Fresh Credentials with NTLM-only Server Authentication
Voeg de SPN van de SharePoint server toe in het volgende formaat WSMAN/computer.domain

Windows PowerShell Remoting wordt ingeschakeld door de volgende cmdlet in PowerShell
Enable-PSRemoting

CredSSP-ondersteuning
Om geen problemen te krijgen met “double hop” authenticatie
Enable-WSManCredSSP -Role Client –DelegateComputer “Servernaam”

Heeft de user waarmee je bent ingelogd de juiste rechten op de SharePoint server dan is het mogelijk om verbinding te maken met de SharePoint server.
Enter-PSSession –ComputerName “Servernaam”

Heeft de user waarmee je bent ingelogd niet de juiste rechten op de SharePoint server dan is het mogelijk om een verbinding te maken met een ander account

Verbinding maken met een ander Account.
Maak een password bestand
Het password wat gebruikt wordt voor dit account wordt encrypt opgeslagen in een tekst bestand
Read-Host -AsSecureString | ConvertFrom-SecureString | out-file C:\shp_pws.txt
type hierna het password van het account dat je gebruikt om in te loggen op server gevolgd door een enter.

Maak de volgende variabelen:
$pwd = Get-Content C:\shp_pws.txt | ConvertTo-SecureString
$crd = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "domain\account",$pwd
$session = New-PSSession -computername "Servernaam" -Authentication CredSSP -Credential $crd
Maak verbinding met de server.
Enter-PSSession $session

Laad de SharePoint cmdlets
Add-PSSnapin Microsoft.SharePoint.Powershell

Powershell script
Bovenstaand kan ook via een powershell script, het eerder aangemaakte password bestand kan hiervoor worden gebruikt.
Kopieer het volgende in een tekst bestand en sla het op als remote_server.ps1
$pwd = Get-Content C:\shp_pws.txt | ConvertTo-SecureString
$crd = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "domain\account",$pwd
$session = New-PSSession -computername "Servernaam" -Authentication CredSSP -Credential $crd
Enter-PSSession $session
Invoke-Command -Session $session -ScriptBlock{Add-PsSnapin Microsoft.SharePoint.PowerShell}
Om een verbinding te maken naar de sharepoint server, maak een shortcut aan met het volgende:
powershell.exe -noexit C:\remote_server.ps1