1

我收到错误:

“尝试对 'BizTalk' 提供程序执行 InitializeDefaultDrives 操作失败。”。

几个月前,我在我们的 BizTalk Dev 系统上进行了这项工作;今天刚刚安装了生产服务器,并收到错误。

在 Win 2012 上使用 BizTalk 2016。

我运行了命令:

  %windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
 .\BizTalkFactory.PowerShell.Extensions.dll

我在 32 位模式下使用 PowerShell 4:

Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.

PS C:\Users\myusername> get-pssnapin -registered


Name        : BizTalkFactory.PowerShell.Extensions
PSVersion   : 4.0
Description : Windows PowerShell CmdLets and Provider for Microsoft Biztalk Server

Name        : WDeploySnapin3.0
PSVersion   : 2.0
Description : This is a PowerShell snap-in that contains cmdlets for managing Microsoft Web Deployment infrastructure.



PS C:\Users\myusername> Add-PSSnapIn -Name BiztalkFactory.PowerShell.Extensions
Attempting to perform the InitializeDefaultDrives operation on the 'BizTalk' provider failed.
PS C:\Users\myusername> Add-PSSnapIn -Name BiztalkFactory.PowerShell.Extensions
PS C:\Users\myusername> Get-ExecutionPolicy
RemoteSigned
4

2 回答 2

3

在我的开发环境中,BizTalk 和 SQL 在同一台服务器上,但在生产环境中,它们在不同的服务器上。

显然,如果在不同的服务器上,你必须添加这一行:

New-PSDrive -Name BizTalk -Root BizTalk:\ -PsProvider BizTalk -Instance MySqlServer -Database BizTalkMgmtDb

只需将“MySqlServer”替换为您的服务器名称即可。

在这里得到了想法/解决方案:在 BizTalk 2013 上安装 BizTalkFactory PowerShell 提供程序,他在其中谈到了创建 Profile.ps1 文件。或者我可能在 Dev 中创建了 Profile.ps1,然后就忘了它;现在检查一下。

于 2017-07-14T14:44:21.097 回答
2

万一有人偶然发现这篇旧帖子,要停止错误,只需事先设置此变量:

$InitializeDefaultBTSDrive = $false

它也使它更快。

添加管理单元的另一种方法是仅导入模块,因此您的脚本变为:

$InitializeDefaultBTSDrive = $false
Import-Module "$env:BTSINSTALLPATH\SDK\Utilities\PowerShell\BizTalkFactory.PowerShell.Extensions.dll" -WarningAction Ignore
New-PSDrive -Name BizTalk -PSProvider BizTalk -Root BizTalk:\ -Instance mybiztalksqlservername.mydomain -Database BizTalkMgmtDb
于 2019-08-22T15:56:12.993 回答