繁体   English   中英

从非管理上下文执行时 Get-CrmConnection 失败 (3.3.0.857)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM