You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure自动化PowerShell Runbook使用OleDb连接SSAS失败,求解决方案

Azure自动化Runbook连接SSAS遇MDAC异常的解决办法

问题背景

在Azure自动化账户的PowerShell Runbook中,尝试通过OLEDB连接SSAS服务器执行DAX查询提取表元数据,代码如下:

$daxConnectionString = "Provider=MSOLAP;Data Source=$daxServer;Initial Catalog=$daxCatalog;UID=$daxUserId;PWD=$daxPwd"
$daxConnection = New-Object -TypeName System.Data.OleDb.OleDbConnection
$daxConnection.ConnectionString = $daxConnectionString
$daxConnection.Open() 
$daxCommand = $daxConnection.CreateCommand()

运行时触发以下异常:

System.Management.Automation.MethodInvocationException: Exception calling "Open" with "0" argument(s): "The .Net Framework Data Providers require Microsoft Data Access Components(MDAC).  Please install Microsoft Data Access Components(MDAC) version 2.6 or later." ---> System.InvalidOperationException: The .Net Framework Data Providers require Microsoft Data Access Components(MDAC).  Please install Microsoft Data Access Components(MDAC) version 2.6 or later. ---> System.Runtime.InteropServices.COMException: Retrieving the COM class factory for component with CLSID {2206CDB2-19C1-11D1-89E0-00C04FD7A829} failed due to the following error: 800736b1 The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail. (Exception from HRESULT: 0x800736B1).

核心原因

Azure自动化的沙箱环境不支持MDAC这类传统COM组件的部署,且旧版MDAC已不再适配现代SSAS驱动需求,报错中的CLSID对应旧版MSOLAP驱动,存在依赖缺失问题。

解决方法

1. 采用官方推荐的SqlServer模块执行DAX查询

这是最简便的方案,无需依赖COM组件:

  • 登录Azure自动化账户,在「模块」页面搜索并导入SqlServer模块
  • 使用Invoke-ASCmd cmdlet替代OLEDB连接,示例代码:
# 替换为你的元数据查询语句
$daxQuery = @"
EVALUATE 
SELECTCOLUMNS(
    TABLES(),
    "TableName", [Name],
    "TableDescription", [Description]
)
"@

# 使用自动化账户中存储的凭据
$ssasCredential = Get-AutomationPSCredential -Name "SSAS_Admin_Credential"

Invoke-ASCmd -Server $daxServer -Database $daxCatalog -Query $daxQuery -Credential $ssasCredential

2. 部署混合Runbook辅助角色

如果必须保留OLEDB连接方式:

  • 在本地或Azure VM上部署混合Runbook辅助角色,确保该服务器已安装Microsoft Analysis Services OLE DB Provider(而非旧版MDAC)
  • 将Runbook配置为在混合角色上运行,利用本地环境的驱动支持

3. 替换为现代SSAS驱动

若坚持使用OLEDB,需确保目标环境安装最新版的Microsoft Analysis Services OLE DB Provider,该驱动包含必要的依赖,无需单独安装MDAC。可通过SQL Server安装介质或微软官方渠道下载独立安装包。


内容的提问来源于stack exchange,提问作者Bart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:40:53