这个0来自哪里?

时间:2019-01-30 08:18:14

标签: powershell ssas

我写了一个脚本,将角色/成员添加到数据库/多维数据集。

由于某种原因,每次添加角色/成员时,控制台上都会输出0。那是哪里来的我开始怀疑Analysis.Role属性具有默认的0输出,因为当我的if语句运行并且该成员已经存在时,因此不添加任何角色/成员,就不会输出0。仅当角色不存在时,才输出0,因为它添加了角色。所以这就是我将其缩小到该结论的方式。

但是,如果是这样,我如何抑制这个“ 0”?

$ErrorActionPreference = 'SilentlyContinue' # suppress all exceptions

$as = New-Object Microsoft.AnalysisServices.Server  
$as.Connect("$server")

$db = $Analysis_Server.Databases.FindByName($CUBE)

$ROLE = $db.Roles.FindByName($CUBE_ROLE)
$member = "member1"

$memberExists = $false

if ($ROLE) {
    # if role exists already...check if group exists, or just add group
    $memberExists = $ROLE.Members.GetEnumerator() |
                    ?{$_.name -like $member} |
                    select -First 1 |
                    %{$True}

    if ($memberExists) { 
        Write-Host "already exists!"
    } else {
        $ROLE.Members.Add($member)
        $ROLE.Update()
    }

    $error.Clear()
    if ($error[0]) {
        Write-Host ("`r`nError Adding Group!" + "$($error[0])`r`n")
    }
}

zero

1 个答案:

答案 0 :(得分:6)

更改:

$ROLE.Members.Add($member)

收件人:

$ROLE.Members.Add($member) | Out-Null

如果使用.Add()将对象添加到数组,则将返回其当前索引(在这种情况下为0)。