Question Selection dans un tableau

Plus d'informations
il y a 10 ans 1 jour #17388 par MicroVal
Selection dans un tableau a été créé par MicroVal
Bonjour,

J'ai récupéré un code qui exécute une série d'instructions pour un groupe spécifique sur SharePoint 2010.

Et ce que je voudrais, c'est ajouter d'autres groupes en plus.

Le code original
[code:1]$web.Groups|?{$_.Name -match \"Propriétaires\"}|%{
INSTRUCTIONS
}[/code:1]

Ce que j'ai tenté :

[code:1]$web.Groups|?{$_.Name -match \"Propriétaires\" -or $_.Name -match \"Owner\"}|%{[/code:1]

[code:1]$web.Groups|?{$_.Name -match \"Propriétaires\" -and \"Owner\"}|%{[/code:1]

Car j'ai des groupes qui s'apellent \"Owners of ...\" et d'autres avec \"Propriétaires de ...\"

De plus, j'aurai voulu savoir quelle était la fonction des caractères \"?\" et \"%\" ici ?

Merci d'avance pour votre aide,
Valentin

Message édité par: MicroVal, à: 23/04/14 16:58<br><br>Message édité par: MicroVal, à: 23/04/14 16:58

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 1 jour #17391 par SiSMik
Réponse de SiSMik sur le sujet Re:Selection dans un tableau
Bonjour,

Tout d'abord % et ? sont les alias respectifs de Where-Object et Foreach-Object.

[code:1]
Get-Help Where-Object
Get-Help Foreach-Object[/code:1]

Le premier va te permettre de filtrer ta collection d'objets, le deuxième de boucler sur chaque objet.

Donc là, on n'est pas du tout dans ce que tu veux faire, c'est à dire rajouter des groupes à ta collections.

Pour voir les méthodes possibles sur ta collection (voir si c'est un tableau et que l'on peut ajouter des objets) il faut utiliser la commande suivante: Get-Member et regarder la valeur de TypeName.

[code:1]$web.Groups | Get-Member[/code:1]

Suivant ce qui sera retourner on étudiera les possibilités.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 21 heures #17393 par MicroVal
Réponse de MicroVal sur le sujet Re:Selection dans un tableau
Ah non ce que je veux faire c'est ajouter un filtre en plus !

Pour le moment cela filtre avec la chaîne de caractère \&quot;Propriétaire\&quot;, et ce que je voudrais, c'est filtrer avec \&quot;Propriétaire\&quot; ET \&quot;Owners\&quot;

Est-ce possible ici ?

Merci pour ton aide en tout cas :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 18 heures #17399 par Laurent Dardenne
MicroVal écrit:

Ah non ce que je veux faire c'est ajouter un filtre en plus !

Cela va mieux en le précisant :)
Une solution :
[code:1]
#Definition de tableaux de nom de groupes
$GroupesName=@(
\&quot;Propriétaires\&quot;, #Groupe ...
\&quot;Owner\&quot;, #Groupe ...
\&quot;Admin\&quot;,
\&quot;ServiceCompta\&quot;«»)

$ExcludeGroupesName=@(
\&quot;grpA\&quot;,
\&quot;GrpOwner\&quot;
)

#Construit un tableau de test contenant des noms de groupe
$Groupes=@( $ExcludeGroupesName; $GroupesName )
#Contrôle de la construction
$Groupes.Count
$Groupes[0,5]


#Affectations multiples. Mémorise la valeur de $OFS, le détail : Get-help About_automatic_variable
$OldOfs,$ofs=$Ofs,'|'

#Construit un pattern de regex, $OFS contient le métacaractère d'une alternative
\&quot;$GroupesName\&quot;
#grpA|GrpOwner|Propriétaires|Owner|Admin|ServiceCompta

#Filtre sur la regex construit dynamiquement
$Result= $Groupes|Where {Write-Warning \&quot;Item:$_\&quot;;$_ -match \&quot;$GroupesName\&quot;}
$Result
#restauration
$Ofs=$OldOfs
[/code:1]
On peut aller au delà et construire directement dynamiquement un script bloc
[code:1]
$FiltreGrpIT=[scriptblock]::Create(\&quot;`$_ -match '$GroupesName'\&quot;«»)
$Result= $Groupes|Where $FiltreGrpIT
$Result
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.065 secondes
Propulsé par Kunena