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

通过PowerShell导出SSAS Tabular角色无返回结果问题求助

问题原因

  • 缺少结果输出语句:脚本将角色信息存入$Result变量后没有执行输出操作,运行后自然无内容返回。
  • 程序集加载异常:代码中LoadWithPartialName的参数使用了中文双引号,会导致程序集加载失败;同时你加载的Microsoft.AnalysisServices.Tabular不是实例化SSAS服务对象所需的核心AMO程序集,部分环境下会出现属性读取不全的问题。
  • 权限不足:运行PowerShell的账号没有SSAS实例的访问权限,非管理员账号默认无法读取数据库角色列表,会返回空集合且无报错。
  • 代码冗余:你先后两次实例化Microsoft.AnalysisServices.Server对象,第一次的实例完全未使用,对应的加载成功校验逻辑也无效。

修复后代码

# 加载核心AMO程序集
Add-Type -AssemblyName "Microsoft.AnalysisServices, Version=16.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" -ErrorAction Stop

# SSAS服务器名,默认.代表本地默认实例,如果是命名实例请写为"服务器名\实例名"
$SSASServerName = "."

# 连接SSAS服务器
$SSASServer = New-Object Microsoft.AnalysisServices.Server
try {
    $SSASServer.Connect($SSASServerName)
}
catch {
    Throw "无法连接到SSAS服务器:$_"
    exit
}

$Result = @()
foreach ($DB in $SSASServer.Databases) {
    foreach ($Role in $DB.Roles) {
        foreach ($UserName in $Role.Members) {
            $ItemResult = [PSCustomObject]@{
                DatabaseName = $DB.Name
                RoleName = $Role.Name
                UserName = $UserName.Name
            }
            $Result += $ItemResult
        }
    }
}

# 输出结果
$Result
# 如果需要导出到CSV,取消注释下一行即可
# $Result | Export-Csv -Path "C:\SSAS角色列表.csv" -NoTypeInformation -Encoding UTF8

# 断开连接
$SSASServer.Disconnect()

验证说明

如果运行后依然无返回,先确认当前PowerShell运行账号已被添加为SSAS实例的管理员,或拥有对应数据库的读取权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:06:03