= 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.