= SRM And PowerShell =
**Summary**: How to work and setup powershell and powercli for VMware Site Recovery Manager 5.1. \\
**Date**: Around 2012 \\
**Refactor**: 29 April 2025: Checked links and formatting. \\
{{tag>vmware srm powershell}}
PowerShell can be a great way to help you create the site recovery you really want. This article talks about installing PowerCLI on a SRM server installed as described [[srm|here]]. Also, running the script automatically and adding them into your recovery plan will be discussed.
= Installing PowerShell =
We have a Site Recovery Server 5.1 server which is installed as described [[srm|here]]. To install PowerCLI we first have to install PowerShell, which, on Windows Server 2008 R2 is a feature and can be installed as such:
* Start Server Manager
* Click Add Feature
* Check the "Windows PowerShell Integrated Scripting Environment (ISE)" checkbox and select the .NET Framework dependency
* Click Next, Install, and Close.
Now we can install PowerCLI. We'll use PowerCLI 5.1 R2, which was released on 2013-02-11 and is released as this executable:
* VMware-PowerCLI-5.1.0-1012425.exe
Run the executable as an administrator and keep all the defaults during installation.
Also, to speed up PowerCLI go to the control panel -> Internet Options -> Advanced tab -> Security Section -> Uncheck the "Check for publisher's certificate revocation" checkbox.
Now, start PowerCLI as an administrator using the shortcuts on the desktop and issue:
Set-ExecutionPolicy RemoteSigned -force
Set-PowerCLIConfiguration -InvalidCertificateAction ignore -ProxyPolicy NoProxy -Confirm:$False
> Note: For more information regarding installing, configuring and getting started with PowerShell and PowerCLI see [[vspherepowercli]].
> Note: In case you also use 32 bits commands you should also do this in the PowerCLI for 32 bits.
= Managing PowerCLI Scripts Authentication =
Create a AD service account and grant the account the following permissions:
* Member of Domain Users
* Member of the local administrators group
* Open Server Manager -> Configuration -> Local Users and Groups -> Groups -> Add service account to Administrators group
* Log on as a service permission
* Open gpedit.msc -> Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment -> Add service account to "Log on as a service"
* vCenter permissions
* Grant the account administrator permissions at the vCenter of the recovery site
> Note that the vCenter permissions might be a bit too much. You could just grant permissions at the correct cluster, or use specific roles.
Then configure the SRM service to run under this account:
* Open services.msc -> VMware vCenter Site Recovery Manager Server -> Log On -> Enter the service account credentials.
Restart the service to make sure the created account works and test your Site Recovery Manager setup.
= Adding a PowerCLI Script to a Recovery Plan =
Because adding scripts to recovery plans will be a common tasks we put some extra effort in making this look nice. Because adding a powershell script to a recovery plans uses a lot of text in the commands this means it gets quite confusing and unreadable. To prevent this we'll use a redirect command. Create a redirect.cmd in the same location where your scripts will be stored and put the following lines in it:
redirect.cmd:
@echo off
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -psc "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" "& '%1'"
Now you can add a powershell script to a recovery plan like this:
* Select the recovery plan that should run the script and select the "Recovery Steps" tab.
* Select the step where you want to run the script before or after and click "Add Step":
* Now fill in the required settings
* And click ok.
For reference, the command in the Command Step is this:
c:\windows\system32\cmd.exe /C g:\scripts\redirect.cmd g:\scripts\srmrdms.ps1
Note that without the redirect script you should use this command, and would have to load the VMware snap-ins inside the script:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File g:\scripts\srmrdms.ps1
[{{srmpowershell01.jpg}}] \\
You have now added an extra step to the recovery plan to run a script, which in this case sets the [[srmrdms|RDM settings]] correctly.