2016-05-03 7 views
1

Ich habe eine kurze Powershell-Syntaxfrage. Ich habe folgende Loop-Powershell. Ich würde gerne wissen, welcher Wert existiert (was einfach ist). Ich kann entweder "Lesen" oder "Besucher" verwenden, um die Berechtigung zuzuweisen. Ich kann 2 if-Aussagen machen, aber wenn es einen klügeren Weg gibt, würde ich das lieber verwenden.Schleife. Ermitteln, ob einer der Werte existiert

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 
     } 
    } 

} 

Antwort

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

Danke Brian für den Tipp. Ich schätzte es. –

+0

Was ist, wenn beides existiert? Wenn beide vorhanden sind, verwende ich den SP-Besucher, um die Berechtigung hinzuzufügen. Wenn nur Read existiert, werde ich Read verwenden. Der Code ist der gleiche für Lese- und SP-Besucher, der Benutzer mit dieser Berechtigungsstufe hinzufügt. –

+0

@NinjaCowgirl Ihre 'if' -Anweisung verwendet' -eq', wenn der Wert irgendwie beides sein kann, dann hätte diese Bedingung Ihr 'if' nie erfüllt Erklärung. Welcher Datentyp ist '$ spRoleDefinition.Name'? Was sind die möglichen Werte? – briantist

Verwandte Themen