Use PowerShell cmdlets for XRM tooling to connect to Dynamics 365

 

Updated: November 29, 2016

Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

XRM tooling provides you with the following Windows PowerShell cmdlets that you can use to connect to Microsoft Dynamics 365 and retrieve organizations that the current user has access to: Get-CrmConnection and Get-CrmOrganizations.

  • To use the XRM tooling cmdlets, you need PowerShell version 3.0 or later. 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

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 PowerShelldll 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 Get-CrmOrganizations cmdlet to retrieve the organizations that you have access to.

  1. Provide your credentials to connect to your Dynamics 365 (on-premises) or Microsoft Dynamics 365 (online) instance. Running the following command will prompt you to type your user name and password to connect to the Dynamics 365 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 Dynamics 365 (on-premises) server:

      $CRMOrgs = Get-CrmOrganizations –ServerUrl http://<CRM_Server_Host> –Credential $Cred
      
    • If you’re connecting to the Microsoft Dynamics 365 (online) instance:

      $CRMOrgs = Get-CrmOrganizations -Credential $Cred -DeploymentRegion NorthAmerica –OnlineType Office365
      
      System_CAPS_noteNote

      For the DeploymentRegion parameter, valid values are NorthAmerica, EMEA, APAC, SouthAmerica, Oceania, JPN, CAN, IND, and NorthAmerica2. For the OnlineType parameter, specify Office365.

    • If you’re connecting to the Dynamics 365 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
    System_CAPS_tipTip

    You can use the variable that was used to store the retrieved Dynamics 365 organizations (in this case $CRMOrgs) with the Get-CrmConnection cmdlet to connect to Dynamics 365. 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 second organization in the $CRMOrgs variable (”SampleOrg”), use the following command: $CRMOrgs[1].UniqueName. More information: TechNet: Accessing Values in an Array

Use the Get-CrmConnection cmdlet to connect to a Dynamics 365 instance. The cmdlet lets you either use the XRM tooling common login control to specify your credentials and connect to Dynamics 365 or lets you specify your credentials as inline parameters. More information: Use the XRM tooling common login control in your client applications

  1. If you want to use the common login control to provide your credentials to connect to Dynamics 365, 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 Dynamics 365 instance, and click Login.

  1. To connect to Dynamics 365, 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 Dynamics 365 (on-premises) server:

      $CRMConn = Get-CrmConnection –ServerUrl http://<CRM_Server_Host> -Credential $Cred -OrganizationName <OrgName>
      
    • If you’re connecting to the Microsoft Dynamics 365 (online) instance:

      $CRMConn = Get-CrmConnection -Credential $Cred -DeploymentRegion <Deployment region name> –OnlineType Office365 –OrganizationName <OrgName>
      
      System_CAPS_noteNote

      For the DeploymentRegion parameter, valid values are NorthAmerica, EMEA, APAC, SouthAmerica, Oceania, JPN, CAN, IND and NorthAmerica2. For the OnlineType parameter, specify Office365.

    • If you’re connecting to the Dynamics 365 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>
      
    System_CAPS_noteNote

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

Microsoft Dynamics 365

© 2016 Microsoft. All rights reserved. Copyright

Show: