Powershell script for creating cube roles

Hi All,

I have one scenario where i need to read the cube role for one cube and create the same in the another cube on the same server. I am able to create the cube role and adding members in it as per the source cube role. But am stuck while adding the permission from source cube role to target cube role. Below is script. Could you please help me out.

param
($Servername ="Servername", 
 $databasename ="cube-1",
 $databasename1 = "Cube-2"
)

$loadInfo = [Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")

$svr = new-Object Microsoft.AnalysisServices.Server
 
$svr.Connect($ServerName)
 
$db = $svr.Databases.FindByName($databasename)
$db1 = $svr.Databases.FindByName($databasename1)

#$rolename ="ReportViewer"



#Create Role



#$db1.Roles.Add($roleToCreate)

  Foreach($rolename in $db.Roles)
    {
      $roleToCreate = new-Object([Microsoft.AnalysisServices.Role])($rolename)
      $db1.Roles.Add($roleToCreate)

    foreach ($UserName in $db.Roles.FindByName($rolename).Members)
          {
            #add-rolemember -MemberName $UserName -Server $Servername -Database $db1 -RoleName $rolename
            $roleToCreate.Members.Add($UserName)
          }
         
         $roleToCreate.Update()
         
         #$dbperm1 = $db1.DatabasePermissions.FindByRole($rolename) 
         $dbperm = $db.DatabasePermissions.GetByRole($rolename.ID)
           
             $Rvalue = $dbperm.ReadDefinition.value__
             $Avalue = $dbperm.Administer.value__
             $Pvalue = $dbperm.Process.value__

              If($dbperm.ReadDefinition.Equals($True))
              {
              $dbperm1 = $db1.DatabasePermissions.Add($rolename.ID)
              $dbperm1.Administer = [Microsoft.AnalysisServices.ReadAccess]::Allowed
              $dbperm1.Update()  
              }
           
                     
         
           
         
         
    }

 

$svr.Disconnect()  

Regards,

Sagar

August 20th, 2015 1:49am

I think it will be difficult because the permissions are stored in the relevant dimension/objects/etc and not in the role. Can something like following work for you?

Free Windows Admin Tool Kit Click here and download it now
August 20th, 2015 2:44am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics