【问题标题】:SSAS adding members to server administrator role using PowerShellSSAS 使用 PowerShell 将成员添加到服务器管理员角色
【发布时间】:2017-04-21 09:25:40
【问题描述】:

我正在尝试使用 PowerShell 将成员添加到服务器管理员角色。我可以为每个可用的单独数据库添加角色和成员,但我想将其添加到顶层,以便给定用户可以访问数据库。

这是我当前的代码,但我得到了错误:

使用“1”个参数调用“添加”的异常:“集合的大小是固定的。” 在 D:\Untitled8.ps1:15 char:1 + $targetsvr.Roles.Members.Add($syncAccount) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : NotSupportedException

Function Add-NewMember
{
[CmdletBinding()]
param(
[Parameter(Position=0,mandatory=$true)]
[string] $ssasInstance,
[Parameter(Position=1,mandatory=$true)]
[string] $syncAccount ="NT Service\SQLSERVERAGENT")

[void][System.reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")

$targetsvr = new-Object Microsoft.AnalysisServices.Server
$targetsvr.Connect($ssasInstance)

$targetsvr.Roles.Members.Add($syncAccount)
}
Add-NewMember -ssasInstance "localhost" -syncAccount "NT SERVICE\SQLSERVERAGENT"

【问题讨论】:

  • 请将确切的错误信息添加到问题中。哦,一个名为 Add-Member 的用户函数也会与 Powershell 自身的功能发生冲突?
  • 我只是改了函数名还是一样
  • docs.microsoft.com/en-us/sql/analysis-services/powershell/… - 这不是你想要的吗?我从未亲自尝试过。
  • 那是在数据库级别添加,但我想按照图片所示添加

标签: sql-server powershell


【解决方案1】:

$targetsvr.Roles.Members 是一个合法的表达式,它产生所有角色的所有成员的集合(它相当于$targetsvr.Roles | Foreach { $_.Members })。但是这个集合是由 PowerShell 合成的,不是某个东西的实际成员,所以你不能修改它。你想要$targetsvr.Roles["Administrators"].Members。并且您明确需要在服务器看到更改之前更新角色。并且您还想给 cmdlet 起一个更好的名称。如果可以的话:

Function Add-ASAdministrator {
    param(
        [Parameter(Mandatory=$True, ValueFromPipeline)]
        [string] $User,

        [string] $Instance = "."
    )
    $server = New-Object Microsoft.AnalysisServices.Server
    $server.Connect($Instance)
    $administrators = $server.Roles["Administrators"]
    if ($administrators.Members.Name -notcontains $User) {
        $administrators.Members.Add($User) | Out-Null
        $administrators.Update()
    }
    $server.Disconnect()
}

【讨论】:

  • 感谢Jeoren 的帮助
猜你喜欢
  • 2019-11-21
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多