Use PowerShell cmdlets for XRM tooling to connect to CRM
Applies To: Dynamics CRM 2013
XRM tooling provides you with couple of Windows PowerShell cmdlets to connect to Microsoft Dynamics CRM and retrieve organizations that the current user has access to: Get-CrmConnection and Get-CrmOrganizations.
In This Topic
Prerequisites
Register the cmdlets
Use the cmdlet to retrieve organizations from your CRM server
Use the cmdlet to connect to CRM
Prerequisites
You need a version of PowerShell that is no earlier than version 3.0 to use the XRM tooling cmdlets. To check your PowerShell version, open a PowerShell window and run the following command: $Host
Set the execution policy to run the signed PowerShell scripts. To do so, open a PowerShell window as an administrator and run the following command: Set-ExecutionPolicy -ExecutionPolicy AllSigned
Register the cmdlets
You must register the PowerShell cmdlets for XRM tooling before you can use it.
Download the CRM SDK package, and run the package file to extract the contents of the package. Let’s assume that you extracted the package to the c:\ drive on your computer. The PowerShell assembly (Microsoft.Xrm.Tooling.CrmConnector.Powershell.dll) and the script (RegisterXRMTooling.ps1) for registering the cmdlets become available at the following location: c:\SDK\bin.
Start Windows PowerShell on your computer with elevated privileges (run as administrator).
At the prompt in the PowerShell window, change your directory to the folder that contains the PowerShell dll file and the script for registering the cmdlets. In this case:
cd c:\SDK\bin
Run the RegisterXRMTooling.ps1 script to register the XRM Tooling PowerShell assembly, and install the Windows PowerShell snap-in. Type the following command, and press ENTER:
.\RegisterXRMTooling.ps1
Add the Windows PowerShell snap-in for XRM tooling. This registers the Get-CrmConnection and Get-CrmOrganizations cmdlets.
Add-PSSnapin Microsoft.Xrm.Tooling.Connector
You are now ready to use these Windows PowerShell cmdlets. To list the cmdlets that you registered, run the following command at the prompt in the Windows PowerShell window:
Get-Help “Crm”
Use the cmdlet to retrieve organizations from your CRM server
Use the Get-CrmOrganizations cmdlet to retrieve the organizations that you have access to.
Provide your credentials to connect to your Microsoft Dynamics CRM (on-premises) or Microsoft Dynamics CRM Online instance. Running the following command will prompt you to type your user name and password to connect to the CRM instance, and it will be stored in the $Cred variable.
$Cred = Get-Credential
Use the following command to retrieve your organizations, and store the information in the $CRMOrgs variable:
If you’re connecting to the Microsoft Dynamics CRM (on-premises) server:
$CRMOrgs = Get-CrmOrganizations –ServerUrl http://<CRM_Server_Host> –Credential $Cred
If you’re connecting to the Microsoft Dynamics CRM Online instance:
$CRMOrgs = Get-CrmOrganizations -Credential $Cred -DeploymentRegion NorthAmerica –OnlineType Office365
Note
For the DeploymentRegion parameter, valid values are NorthAmerica, EMEA, and APAC. For the OnlineType parameter, valid values are Office365 and LiveID.
If you’re connecting to the CRM server using the claims-based authentication against the specified Home realm:
$CRMOrgs = Get-CrmOrganizations –ServerUrl http://<CRM_Server_Host> –Credential $Cred –HomRealmURL http://<Identity_Provider_Address>
Your supplied credentials are validated when you run the command in step 2. On successful execution of the command, type the following command, and press ENTER to display the organizations that you have access to:
$CRMOrgs
Tip
You can use the variable used to store the retrieved CRM organizations (in this case $CRMOrgs) with the Get-CrmConnection cmdlet to connect to CRM. To specify the org name, use the following command: $CRMOrgs.UniqueName.
If there is more than one organization value stored in the $CRMOrgs variable, you can refer to the nth organization using the following command: $CRMOrgs[n-1]. For example, to refer to the unique name of the third organization in the $CRMOrgs variable (”MyOrg”), use the following command: $CRMOrgs[2].UniqueName. For more information about values in an array in PowerShell, see Accessing Values in an Array.
Use the cmdlet to connect to CRM
Use the Get-CrmConnection cmdlet to connect to a CRM instance. The cmdlet lets you either use the XRM tooling common login control to specify your credentials and connect to CRM or lets you specify your credentials as inline parameters. For more information about the common login control, see Use the XRM tooling common login control in your client applications.
Connect to CRM using the common login control
If you want to use the common login control to provide your credentials to connect to your CRM instance, use the following command. The connection information is stored in the $CRMConn variable so that you can use it later.
$CRMConn = Get-CrmConnection -InteractiveMode
The LoginControl dialog box appears. Provide your credentials to connect to your CRM instance, and click Login.
Connect to CRM by specifying credentials inline
Use the following command to get a connection to your Microsoft Dynamics CRM (on-premises) or Microsoft Dynamics CRM Online instance. We are using the $Cred variable that was created earlier to store the credential while retrieving the organizations. The connection information will be stored in the $CRMConn variable:
If you’re connecting to the Microsoft Dynamics CRM (on-premises) server:
$CRMConn = Get-CrmConnection –ServerUrl http://<CRM_Server_Host> -Credential $Cred -OrganizationName <OrgName>
If you’re connecting to the Microsoft Dynamics CRM Online instance:
$CRMConn = Get-CrmConnection -Credential $Cred -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName <OrgName>
Note
For the DeploymentRegion parameter, valid values are NorthAmerica, EMEA, and APAC. For the OnlineType parameter, valid values are Office365 and LiveID.
If you’re connecting to the CRM server using the claims-based authentication against the specified Home realm:
$CRMConn = Get-CrmConnection –ServerUrl http://<CRM_Server_Host> -Credential $Cred -OrganizationName <OrgName> –HomRealmURL http://<Identity_Provider_Address>
Note
For the OrganizationName parameter in all the preceding commands, you can either specify the organization unique name or friendly name. You can also use the organization unique name or friendly name that you retrieved using the Get-CrmOrganizations cmdlet and stored in the $CRMOrgs variable. For example: $CRMOrgs[x].UniqueName or $CRMOrgs[x].FriendlyName.
Your supplied credentials are validated when you run the command in step 2. On successful execution of the cmdlet, type the following command, and press ENTER to display the connection information and status:
$CRMConn
See Also
Use XRM tooling to connect to CRM
Build Windows client applications using the XRM tools