Use PowerShell cmdlets for XRM tooling to connect to CRM

 

Applies To: Dynamics CRM 2015

XRM tooling provides you with the following Windows PowerShell cmdlets that you can use 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 CRM

Use the cmdlet to connect to CRM

Prerequisites

  • To use the XRM tooling cmdlets, you need a version of PowerShell that is no earlier than version 3.0. To check the 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

Before you can use the PowerShell cmdlets, you have to register them.

  1. Download the Microsoft Dynamics CRM SDK package. Run the package file to extract the contents of the package. The PowerShell assembly (Microsoft.Xrm.Tooling.CrmConnector.Powershell.dll) and the script (RegisterXRMTooling.ps1) for registering the cmdlets are located in the \SDK\bin folder in the SDK.

  2. Start Windows PowerShell on your computer with elevated privileges (run as administrator).

  3. At the prompt, change your directory to the folder that contains the PowerShell dll file and the script for registering the cmdlets. For example:

    cd c:\SDK\bin
    
  4. 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
    
  5. Add the Windows PowerShell snap-in. This registers the Get-CrmConnection and Get-CrmOrganizations cmdlets.

    Add-PSSnapin Microsoft.Xrm.Tooling.Connector
    

You’re now ready to use these Windows PowerShell cmdlets. To list the cmdlets that you registered, run the following command in the Windows PowerShell window:

Get-Help “Crm”

Use the cmdlet to retrieve organizations from CRM

Use the Get-CrmOrganizations cmdlet to retrieve the organizations that you have access to.

  1. 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
    
  2. 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, APAC, SouthAmerica, Oceania, Japan, and NorthAmerica2. 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>
      
  3. 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
    

    List of organizations returned by the cmdlet

    Tip

    You can use the variable that was 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. More information: TechNet: 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. More information: Use the XRM tooling common login control in your client applications

Connect to CRM using the common login control

  1. If you want to use the common login control to provide your credentials to connect to CRM, use the following command. The connection information is stored in the $CRMConn variable so that you can use it later.

    $CRMConn = Get-CrmConnection -InteractiveMode
    
  2. The LoginControl dialog box appears. Provide your credentials to connect to your CRM instance, and click Login.

Connect to CRM by specifying credentials inline

  1. To connect to CRM, use the following commands. Note that these commands use the $Cred variable created earlier to store the credential while retrieving the organizations. The connection information is 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 <Deployment region name> –OnlineType <Online type name> –OrganizationName <OrgName>
      

      Note

      For the DeploymentRegion parameter, valid values are NorthAmerica, EMEA, APAC, SouthAmerica, Oceania, Japan, and NorthAmerica2. 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, you can use $CRMOrgs[x].UniqueName or $CRMOrgs[x].FriendlyName.

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

    CRM connection information and status

See Also

Use XRM tooling to connect to CRM
Build Windows client applications using the XRM tools

© 2016 Microsoft. All rights reserved. Copyright