[英]Using 'Get-CrmConnection' to get Dynamics CRM connection is failed
[英]Get-CrmConnection failing when executed from non-admin context (3.3.0.857)
我正在尝试执行Get-CrmConnection
以从 Powershell 连接到 Dynamics 365,但从非管理 Powershell 上下文执行时,该命令返回以下内容:
Get-CrmConnection -ConnectionString "AuthType=Office365;Username=xxx;Password=xxx;Url=https://xxx.crm.dynamics.com"
Get-CrmConnection : Failed to connect to CRM: Unable to Login to Dynamics CRM
At line:1 char:1
+ Get-CrmConnection -ConnectionString "AuthType=Office365;Username=crm_ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Get-CrmConnection], Exception
+ FullyQualifiedErrorId : -10,Microsoft.Xrm.Tooling.CrmConnector.Powershell.Commands.GetCrmConnectionCommand
我安装了 3.3.0.857 版的连接器。
附加信息
如果我在管理员提示的上下文中执行相同的命令,我可以毫无问题地连接。
我需要此命令在管理员上下文之外工作,因为此脚本将作为 Azure DevOps 管道的一部分被调用。 在 Azure DevOps 中托管的管道中执行此代码时,会出现相同的问题。
我能够找到不涉及提升为管理员的问题的解决方案。
在运行Get-CrmConnection
时使用-Verbose
选项,我看到发生的错误是连接被主机强行关闭。 经过一番谷歌搜索,我偶然发现了这个论坛帖子。 上一篇文章建议尝试将其添加到我的脚本中:
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
我试过了,现在一切正常,不管是不是管理员。
您可以使用以下命令在提升模式下运行任何脚本:
$script = "-file C:\crmscript.ps1"
Start-Process powershell -Verb RunAs -ArgumentList $script
您可以使用动词属性下的System.Diagnostics.ProcessStartInfo
对象获取任何进程的有效动词。 在这种情况下, RunAs
是在提升模式下启动 powershell 进程的有效动词。
然后,您可以将其合并到您的 Azure Pipelines/DevOps 中。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.