2016-05-03 7 views
1

私は簡単なPowerShellの構文の質問があります。私はpowershellで次のループを持っています。どの値が存在するのかを知りたい(これは簡単です)。私は "Read"か "Visitor"のどちらかを使ってパーミッションを割り当てることができます。私は2つのif文を行うことができますが、よりスマートな方法があれば、むしろそれを使用します。ループ。どちらかの値が存在するかどうかを確認する

if(($listRA.Member.Name) -ne $authUsers) 
{ 
    foreach($spRoleDefinition in $rc) 
    { 
     if(($spRoleDefinition.Name -eq "Read") -OR ($spRoleDefinition.Name -eq "SP Visitor")) 
     { 
      Need to determine which one exists 
      Adding a user code.... 
      write-host $spRoleDefinition.Name 
     } 
    } 

} 

答えて

1

Use a switch statement

if(($listRA.Member.Name) -ne $authUsers) 
{ 
    foreach($spRoleDefinition in $rc) 
    { 
     switch($spRoleDefinition.Name) 
     { 
      'Read' { 
       # do Read stuff 
       break; 
      } 

      'SP Visitor' { 
       # do SP Visitor stuff 
       break; 
      } 
     } 
    } 
} 
+0

先端をありがとうブライアン。私はそれを感謝します。 –

+0

両方が存在する場合はどうなりますか。両方が存在する場合は、SP Visitorを使用してアクセス許可を追加します。 Readのみが存在する場合、私はReadを使用します。あなたの許可レベルのユーザーを追加しているreadとsp訪問者のコードは同じです。 –

+0

@NinjaCowgirl 'if'ステートメントは' -eq'を使用していますので、もし値が何とかなら両方の場合、その条件はあなたの 'ステートメント。どのデータ型が '$ spRoleDefinition.Name'ですか?可能な値は? – briantist

関連する問題