Question A supprimer

Plus d'informations
il y a 8 ans 2 mois #24747 par ShizuCorp
A supprimer a été créé par ShizuCorp
.<br><br>Message édité par: ShizuCorporation, à: 19/01/18 15:16

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

Plus d'informations
il y a 8 ans 2 mois #24748 par Philippe
Réponse de Philippe sur le sujet Re:CSV/Powershell
Salut ShizuCorporation

Laurent Dardenne qui a plus une vision de développeur te donnera peut etre une autre approche

pour moi il n'y a que les if, les switch, et parfois les formules mathématiques !

par contre perso je préfère mettre des variable dans le code a exécute en fonction des conditions

même si tu peut faire qu'une ligne avec ton exemple :
[code:1]Add-ADGroupMember -Identity $dept -Members $login[/code:1]

pour reprendre ton exemple, voila une écriture avec le switch :[code:1]Switch ($dept) {
{$Uoffice -eq \&quot;Lyon\&quot; -and $dept -eq \&quot;NEWMAINT\&quot;} {
$groupedest = \&quot;NEWMAINT\&quot;
}
{$Uoffice -eq \&quot;Lyon\&quot; -and $dept -eq \&quot;NEWMAINT Admin\&quot;} {
$groupedest = \&quot;NEWMAINT Admin\&quot;
}
}
Add-ADGroupMember -Identity $groupedest -Members $login
[/code:1]
tu a ainsi qu'un seul Add-ADGroupMember, plus simple et lisible pour une autre personne qui relis ton code

autre avantage il n'y a qu'une ligne ou une partie qui exécute l'action (le Add-ADGroupMember) plus simple pour le debugage voir pour placer une gestion d'erreur par try/catch

en plus a cas de modif ces souvent sur la ligne de l'action (le Add-ADGroupMember) ou il faut rajouter un serveur AD ou une authentification
tu n'a ainsi qu'une ligne a modifier !! ;)

voila ma vision !! :P

pour info dans le switch de l'exemple la variable est donner pour ne pas généré d'erreur mais n'est pas utilisé dans le reste du code comme dans les exemples suivant (voir la doc du switch et un tuto ) :
[code:1]#exemple 1 :
Switch ($dept) {
{$Uoffice -eq \&quot;Lyon\&quot; -and $_ -eq \&quot;NEWMAINT\&quot;} {
$groupedest = \&quot;NEWMAINT\&quot;
}
{$Uoffice -eq \&quot;Lyon\&quot; -and $_ -eq \&quot;NEWMAINT Admin\&quot;} {
$groupedest = \&quot;NEWMAINT Admin\&quot;
}
}
########################
#exemple 2 :
Switch ($dept) {
\&quot;NEWMAINT\&quot; {
$groupedest = \&quot;NEWMAINT\&quot;
}
\&quot;NEWMAINT Admin\&quot; {
$groupedest = \&quot;NEWMAINT Admin\&quot;
}
}[/code:1]

Message édité par: 6ratgus, à: 21/12/17 10:07

Message édité par: 6ratgus, à: 21/12/17 10:10<br><br>Message édité par: 6ratgus, à: 21/12/17 10:11

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

Plus d'informations
il y a 8 ans 2 mois #24749 par ShizuCorp
Réponse de ShizuCorp sur le sujet Re:CSV/Powershell
Ah super! Merci de ta réponse rapide!
D'accord, bah je vais voir si Laurent Dardenne voit le message pour me dire s'il existe une autre approche!

Donc si j'ai bien compris, si je reformule pour mon cas, cela peut donner ceci ?

[code:1]
Switch ($dept) {
{$Uoffice -eq \&quot;Lyon\&quot; -and $dept -eq \&quot;NEWMAINT\&quot;} {
$groupedest = \&quot;Gi-gmaoLYON\&quot;
}
{$Uoffice -eq \&quot;Lyon\&quot; -and $dept -eq \&quot;NEWMAINT Admin\&quot;} {
$groupedest = \&quot;Gi-gmaoutilsLYON\&quot;
}
{$Uoffice -eq \&quot;Lyon\&quot; -and $dept -eq \&quot;NEWMAINT module intervention\&quot;} {
$groupedest = \&quot;Gi-gmaoDiLYON\&quot;
}

[/code:1]

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

Plus d'informations
il y a 8 ans 2 mois #24750 par Philippe
Réponse de Philippe sur le sujet Re:CSV/Powershell

Ah super! Merci de ta réponse rapide!

le hasard et encore j'ai planté mon navigateur pendant la réponse :angry:

Donc si j'ai bien compris, si je reformule pour mon cas, cela peut donner ceci ?

oui c'est correct je te redonne les liens que j'ai rajouter ton message après dans mon précèdent message pour
voir la doc du switch et un tuto

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

Plus d'informations
il y a 8 ans 2 mois #24751 par ShizuCorp
Réponse de ShizuCorp sur le sujet Re:CSV/Powershell

le hasard et encore j'ai planté mon navigateur pendant la réponse

Ahah, merci quand même ! :laugh:

oui c'est correct je te redonne les liens que j'ai rajouter ton message après dans mon précèdent message pour
voir la doc du switch et un tuto

D'accord super! merci beaucoup je vais voir ça! :P

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

Plus d'informations
il y a 8 ans 2 mois #24753 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:CSV/Powershell
Salut,
6ratgus écrit:

Laurent Dardenne qui a plus une vision de développeur te donnera peut etre une autre approche

Sans spec et sans connaissance de l'infra ciblée, je ne vois pas grand chose :-)
En passant on peut utiliser une hahstable imbriquée :
[code:1]
$Uoffice=\&quot;Lyon\&quot;
$dept=\&quot;NEWMAINT\&quot;

#Constante
$ChoixGroupe=@{
\&quot;Lyon\&quot; =@{
\&quot;NEWMAINT\&quot;=\&quot;Gi-gmaoLYON\&quot;
\&quot;NEWMAINT Admin\&quot;=\&quot;Gi-gmaoutilsLYON\&quot;
\&quot;NEWMAINT module intervention\&quot;=\&quot;Gi-gmaoDiLYON\&quot;
}
\&quot;Paris\&quot; =@{
\&quot;NEWMAINT\&quot;=\&quot;Gi-Paris\&quot;
\&quot;NEWMAINT Admin\&quot;=\&quot;Gi-gmaParis\&quot;
\&quot;NEWMAINT module intervention\&quot;=\&quot;Gi-gmaoDiParis\&quot;
}
}

#Affichage du contenu
$ChoixGroupe.GetEnumerator()|% {Write-warning $_.Key;$_.value}

#Sélecteur
$Choix=$ChoixGroupe.$UOffice.$Dept
if ($null -eq $choix)
{ Write-error \&quot;données inconnues.\&quot;} #pas d'erreur

$Uoffice=\&quot;Lyon\&quot;
$dept=\&quot;NEWMAIN\&quot;
$Choix=$ChoixGroupe.$Uoffice.$dept
if ($null -eq $choix)
{ Write-error \&quot;données inconnues.\&quot;} #erreur, mais on ne sait pas si c'est le nom de ville ou le nom de groupe qui n'existe pas
[/code:1]
Le seul cas qui n'est pas couvert avec ce type de codage est l'attribution d'une valeur par défaut, alors que le switch le propose.

Pour les cas où le nom de groupe n'existe pas ou est mal orthographié il faut vérifier si le cmdlet utilisé renvoi une exception.
Ainsi on laisse le cmdlet effectuer le contrôle à notre place et on détermine, si possible, dans un try catch la cause de l'erreur.

Mais je peux comprendre qu'en débutant ce n'est peut être pas la meilleure approche :-)

Tutoriels PowerShell

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

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