Cataster
Cataster

Reputation: 3541

Check if member exists in role

I want to check if both role then member exist already, but i am getting error that FindByName is not a method of Member

$db = $Analysis_Server.Databases.FindByName($cube)
$ROLE = $db.Roles.FindByName($cube_ROLE)
$memberexists = $ROLE.Members.FindByName($member)
if ($ROLE) # if role exists already...check if group exists, or just add group
{
   if ($memberexists)
    {
        write "member exists!"
    }
   else
    {
        $ROLE.Members.Add($member)
        $ROLE.Update()
    }
}

Upvotes: 0

Views: 421

Answers (1)

ArcSet
ArcSet

Reputation: 6860

So $Role.Members is a RoleMemberCollection Object. We can Enumerate over it since it doesnt have the method FindByName(). This will get a RoleMember Object with the property Name. So what the code will look like is...

$memberexists = $False
$memberexists = $ROLE.Members.GetEnumerator() | ?{$_.name -like $Member} | select -First 1 | %{$True}
enter code here

Upvotes: 1

Related Questions