在PowerShell中连接到CRM 2016 IFD

Dej*_*lar 3 powershell crm dynamics-crm

我想使用Get-CrmConnectionSDK中包含的PowerShell cmdlet连接到CRM 2016服务器.

我找不到正确的连接字符串.

连接到本地网络中的服务器正常工作:

Get-CrmConnection -ConnectionString "Url=http://<server>/OrganizationName;"
Run Code Online (Sandbox Code Playgroud)

但是连接到为IFD配置的服务器失败:

Get-CrmConnection -ConnectionString "Url=https://crm.ourdomain.com/"

Get-CrmConnection : Organization cannot be null or empty.
Parameter name: Organization Name
At line:1 char:1
+ Get-CrmConnection -ConnectionString "Url=https://crm.ourdomain.com/ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SyntaxError: (:) [Get-CrmConnection], ArgumentNullException
    + FullyQualifiedErrorId : -9,Microsoft.Xrm.Tooling.CrmConnector.Powershell.Commands.GetCrmConnectionCommand
Run Code Online (Sandbox Code Playgroud)

我尝试在连接字符串中添加AuthType参数,提供组织名称,但没有成功.重要的是我可以使用交互模式连接:

Get-CrmConnection -InteractiveMode
Run Code Online (Sandbox Code Playgroud)

交互模式窗口

这将返回以下连接:

IsReady                        : True
IsBatchOperationsAvailable     : True
Authority                      :
OAuthUserId                    :
ActiveAuthenticationType       : AD
OrganizationServiceProxy       : Microsoft.Xrm.Tooling.Connector.CrmWebSvc+ManagedTokenOrganizationServiceProxy
OrganizationWebProxyClient     :
LastCrmError                   : OrganizationWebProxyClient is null
LastCrmException               :
CrmConnectOrgUriActual         : https://crm.ourdomain.com/XRMServices/2011/Organization.svc
ConnectedOrgFriendlyName       : OrganizationName
ConnectedOrgUniqueName         : OrganizationName
ConnectedOrgPublishedEndpoints : {[WebApplication, https://crm.ourdomain.com/], [OrganizationService,
                             https://crm.ourdomain.com/XRMServices/2011/Organization.svc],
                             [OrganizationDataService,
                             https://crm.ourdomain.com/XRMServices/2011/OrganizationData.svc]}
ConnectionLockObject           : System.Object
ConnectedOrgVersion            : 8.0.1.79
Run Code Online (Sandbox Code Playgroud)

Zep*_*eph 7

有一些大问题microsoft.xrm.tooling.connector CrmConnection可以让你撞到墙上.

引自http://crmtipoftheday.com/2016/01/14/rumors-about-microsoft-xrm-client-death-are-exaggerated/

请注意以下事项:

  • 网址必须采用https://orgname.contoso.com/orgname的形式.对于内部部署和IFD部署,连接器期望orgname
    处于最终状态,并且看起来它不会尝试
    从服务器URL 推断出orgname.
  • 必须指定域名,但不会通过声明传递,因此它可以是任何内容.真的是任何非空字符串o__O
  • 用户名必须是UPN.如果不是,那么,由于域名未通过它,ADFS 3.0会抛出一个拟合(ADFS 2.0假定域)

以下适用于我

get-crmconnection -ConnectionString "Server=https://{orgname}.{domain}.com/{orgname}; Domain=this_isnt_used_but_must_be_provided; UserName={domain}\{user}; Password={password}"
Run Code Online (Sandbox Code Playgroud)

稍微修改后的用户名也是UPN

get-crmconnection -ConnectionString "Server=https://{orgname}.{domain}.com/{orgname}; Domain=this_isnt_used_but_must_be_provided; UserName={user}@{domain}; Password={password}"
Run Code Online (Sandbox Code Playgroud)