Question A supprimer

Plus d'informations
il y a 8 ans 2 mois #24754 par ShizuCorp
Réponse de ShizuCorp sur le sujet Re:CSV/Powershell
Waaw, merci de ta réponse Laurent!! Je vais revoir mon script que je venais de modifié du coup :laugh:

J'avais fait celui-ci en me basant sur celui de @6ratgus et je revenais vers vous pour savoir si c'est gênant d'avoir plusieurs \"Switch\" ou ce n'est pas grave ?

Voici mon script :

[code:1]
#Parametre fichier CSV
param (
[Parameter(Position=0, Mandatory=$True)]
[string] $Path
)

#Importation du module Active Directory
Import-module ActiveDirectory

# Convertir le mot de passe en chaine securisée
$securePassword = ConvertTo-SecureString \"Stagiairetest\" -AsPlainText -Force

#Boucle du recueil des informations
foreach($user in $users) {

$fname = $user.\"firstName\"
$lname = $user.\"lastName\"
$dept = $user.\"department\"
$Uoffice = $user.\"office\"
$jtitle = $user.\"jobtitle\"
$Upassword = $user.\"password\"
$OUpath = $user.\"Organizational Unit\"
$login = $user.\"firstName\" + \".\" + $user.\"lastName\"

switch($user.office){
\"Paris\" {$office = \"OU=Paris,OU=Employés,DC=entreprise,DC=fr\"}
\"Lyon\" {$office = \"OU=Lyon,OU=Employés,DC=entreprise,DC=fr\"}
\"Rennes\" {$office = \"OU=Rennes,OU=Employés,DC=entreprise,DC=fr\"}
\"Domicile\" {$office = \"OU=Domicile,OU=Employés,DC=entreprise,DC=fr\"}
}

try {
New-ADUser -UserPrincipalName \"$fname.$lname\" -SamAccountName $login -Name \"$fname $lname\" -GivenName $fname -Surname $lname -AccountPassword (ConvertTo-SecureString $Upassword -AsPlainText -Force) -ChangePasswordAtLogon $True -City $Uoffice -Path $OUpath -Department $dept -Enabled $true
Set-ADUser -Identity $login -Enabled $true
#Informations complémentaires
Set-ADUser $fname $lname -add @{title= $jtitle;mail=$fname.$lname@entreprise.fr}

echo \"Utilisateur ajouté! : $fname $lname\"


} catch{
echo \"Utilisateur non ajouté : $fname $lname\"
}

}


#Ajout des utilisateurs de Paris dans leurs groupes

Switch ($dept) {
{$Uoffice -eq \"Paris\" -and $dept -eq \"NEWMAINT\"} {
$groupedest = \"Gi-gmaoPARIS\"
}
{$Uoffice -eq \"Paris\" -and $dept -eq \"NEWMAINT Admin\"} {
$groupedest = \"Gi-gmaoutilsPARIS\"
}
{$Uoffice -eq \"Paris\" -and $dept -eq \"NEWMAINT module intervention\"} {
$groupedest = \"Gi-gmaoDiPARIS\"
}

Add-ADGroupMember -Identity $groupedest -Members $login

#Ajout des utilisateurs de Lyon dans leurs groupes

Switch ($dept) {
{$Uoffice -eq \"Lyon\" -and $dept -eq \"NEWMAINT\"} {
$groupedest = \"Gi-gmaoLYON\"
}
{$Uoffice -eq \"Lyon\" -and $dept -eq \"NEWMAINT Admin\"} {
$groupedest = \"Gi-gmaoutilsLYON\"
}
{$Uoffice -eq \"Lyon\" -and $dept -eq \"NEWMAINT module intervention\"} {
$groupedest = \"Gi-gmaoDiLYON\"
}

Add-ADGroupMember -Identity $groupedest -Members $login

#Ajout des utilisateurs de Rennes dans leurs groupes

Switch ($dept) {
{$Uoffice -eq \"Rennes\" -and $dept -eq \"NEWMAINT\"} {
$groupedest = \"Gi-gmaoRENNES\"
}
{$Uoffice -eq \"Rennes\" -and $dept -eq \"NEWMAINT Admin\"} {
$groupedest = \"Gi-gmaoutilsRENNES\"
}
{$Uoffice -eq \"Rennes\" -and $dept -eq \"NEWMAINT module intervention\"} {
$groupedest = \"Gi-gmaoDiRENNES\"
}

Add-ADGroupMember -Identity $groupedest -Members $login


[/code:1]

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

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

je revenais vers vous pour savoir si c'est gênant d'avoir plusieurs \"Switch\" ou ce n'est pas grave ?

Ce qui est gênant c'est qu'un script ne fasse pas ce qu'il est sensé faire...
Ensuite, pour la maintenance tu peux simplifier le code autour des switch.
Si on peut imbriquer des hashtables on peut aussi imbriquer des switchs. Voir utiliser des fonctions qui, entre autres, évite la duplication de code.

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 2 mois #24756 par ShizuCorp
Réponse de ShizuCorp sur le sujet Re:CSV/Powershell
D'accord, merci!

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

Plus d'informations
il y a 8 ans 2 mois #24759 par Philippe
Réponse de Philippe sur le sujet Re:CSV/Powershell
trois remarque pour ton script :

1) tu fais trois \"Add-ADGroupMember -Identity $groupedest -Members $login\"
un seul suffit a la fin

2) met tes switch dans la boucle foreach

3) dans le switch essai d'utilisé \"$_\" a la place \"$dept\"

4) (zut j'avais dis trois ! :whistle: ) je t'ai corriger la ligne
[code:1]Set-ADUser $fname $lname -add @{title = $jtitle; mail = \"$$(fname.$lname)@entreprise.fr\"}[/code:1]

ton code refait avec un double switch imbriqué :
[code:1]
#Parametre fichier CSV
param (
[Parameter(Position=0, Mandatory=$True)]
[string] $Path
)

#Importation du module Active Directory
Import-module ActiveDirectory

# Convertir le mot de passe en chaine securisée
$securePassword = ConvertTo-SecureString \"Stagiairetest\" -AsPlainText -Force

#Boucle du recueil des informations
foreach ($user in $users) {

$fname = $user.\"firstName\"
$lname = $user.\"lastName\"
$dept = $user.\"department\"
$Uoffice = $user.\"office\"
$jtitle = $user.\"jobtitle\"
$Upassword = $user.\"password\"
$OUpath = $user.\"Organizational Unit\"
$login = $user.\"firstName\" + \".\" + $user.\"lastName\"

switch ($user.office) {
\"Paris\" {$office = \"OU=Paris,OU=Employés,DC=entreprise,DC=fr\"}
\"Lyon\" {$office = \"OU=Lyon,OU=Employés,DC=entreprise,DC=fr\"}
\"Rennes\" {$office = \"OU=Rennes,OU=Employés,DC=entreprise,DC=fr\"}
\"Domicile\" {$office = \"OU=Domicile,OU=Employés,DC=entreprise,DC=fr\"}
}

try {
New-ADUser -UserPrincipalName \"$fname.$lname\" -SamAccountName $login -Name \"$fname $lname\" -GivenName $fname -Surname $lname -AccountPassword (ConvertTo-SecureString $Upassword -AsPlainText -Force) -ChangePasswordAtLogon $True -City $Uoffice -Path $OUpath -Department $dept -Enabled $true
Set-ADUser -Identity $login -Enabled $true
#Informations complémentaires
Set-ADUser $fname $lname -add @{title = $jtitle; mail = \"$$(fname.$lname)@entreprise.fr\"}
Write-Host \"Utilisateur ajouté! : $fname $lname\"
}
catch {
Write-Host \"ERREUR : Utilisateur non ajouté : $fname $lname\" -ForegroundColor Red
}

#Ajout des utilisateurs de Paris dans leurs groupes

Switch ($Uoffice) {
\"Paris\" {
Switch ($dept) {
\"NEWMAINT\" {
$groupedest = \"Gi-gmaoPARIS\"
}
\"NEWMAINT Admin\" {
$groupedest = \"Gi-gmaoutilsPARIS\"
}
\"NEWMAINT module intervention\" {
$groupedest = \"Gi-gmaoDiPARIS\"
}
}
}
\"Lyon\" {
Switch ($dept) {
\"NEWMAINT\" {
$groupedest = \"Gi-gmaoPARIS\"
}
\"NEWMAINT Admin\" {
$groupedest = \"Gi-gmaoutilsPARIS\"
}
\"NEWMAINT module intervention\" {
$groupedest = \"Gi-gmaoDiPARIS\"
}
}
}
\"Rennes\" {
Switch ($dept) {
\"NEWMAINT\" {
$groupedest = \"Gi-gmaoPARIS\"
}
\"NEWMAINT Admin\" {
$groupedest = \"Gi-gmaoutilsPARIS\"
}
\"NEWMAINT module intervention\" {
$groupedest = \"Gi-gmaoDiPARIS\"
}
}
}
}
try {
Add-ADGroupMember -Identity $groupedest -Members $login
Write-host \"Utilisateur ajouté dans le groupe ! : $groupedest\"
}
catch {
Write-Host \"ERREUR : Utilisateur non ajouté dans le groupe : $groupedest\" -ForegroundColor Red
}

}
[/code:1]

Message édité par: 6ratgus, à: 21/12/17 16:13<br><br>Message édité par: 6ratgus, à: 21/12/17 16:14

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

Plus d'informations
il y a 8 ans 2 mois #24760 par ShizuCorp
Réponse de ShizuCorp sur le sujet Re:CSV/Powershell
Woooow, merci 6ratgus!! tu gère tellement !

Merci infiniment! :woohoo:

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

Plus d'informations
il y a 8 ans 2 mois #24761 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:CSV/Powershell
Un petit pb de copier/coller dans les noms de groupes.

Tutoriels PowerShell

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

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