Question
Ne pas créer une O.U si elle existe déjà
- Derickxsen
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 13 ans 3 mois #13367
par Derickxsen
Ne pas créer une O.U si elle existe déjà a été créé par Derickxsen
Bonjour
Je suis vraiment tout nouveau dans le domaine du powershell et je n'arrive vraiment pas a trouver la solution a mon probleme qui va surement vous paraitre tout simple.
Je possède un fichier CSV détaillé comme ceci:
[code:1]
Login;Nom;Prenom;Classe;Password
XX;XX;XX;1L;XX
yy;yy;yy;1L;yy
zz;zz;zz;1S;zz[/code:1]
Cette partie de script me permet de créer les O.U correspondant aux différentes classes mais le problème que j'ai, c'est qu'il me génère une erreur dès que la classe a déjà été crée
[code:1]
Foreach ($User in $Userse)
{
$OU=\"OU=eleves,DC=xx,DC=xx\"
$Classe=$User.Classe
New-ADOrganizationalUnit -Name $Classe -Path \"OU=eleves,DC=xx,DC=xx\"
}
[/code:1]
Est-il possible de rajouter une fonction me permettant de tester si l'O.U a déjà été crée et si oui de passer à la suivante?
Je ne sais pas si c'est très clair pour vous, mais je vous remercie déjà de l'attention que vous pourrez y apporter.<br><br>Message édité par: Arnaud, à: 19/12/12 22:22
Je suis vraiment tout nouveau dans le domaine du powershell et je n'arrive vraiment pas a trouver la solution a mon probleme qui va surement vous paraitre tout simple.
Je possède un fichier CSV détaillé comme ceci:
[code:1]
Login;Nom;Prenom;Classe;Password
XX;XX;XX;1L;XX
yy;yy;yy;1L;yy
zz;zz;zz;1S;zz[/code:1]
Cette partie de script me permet de créer les O.U correspondant aux différentes classes mais le problème que j'ai, c'est qu'il me génère une erreur dès que la classe a déjà été crée
[code:1]
Foreach ($User in $Userse)
{
$OU=\"OU=eleves,DC=xx,DC=xx\"
$Classe=$User.Classe
New-ADOrganizationalUnit -Name $Classe -Path \"OU=eleves,DC=xx,DC=xx\"
}
[/code:1]
Est-il possible de rajouter une fonction me permettant de tester si l'O.U a déjà été crée et si oui de passer à la suivante?
Je ne sais pas si c'est très clair pour vous, mais je vous remercie déjà de l'attention que vous pourrez y apporter.<br><br>Message édité par: Arnaud, à: 19/12/12 22:22
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 13 ans 3 mois #13374
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Ne pas créer une O.U si elle existe déjà
Bonjour,
Au lieu de faire une action pour vérifier si elle existe déjà, utilise plutôt une gestion d'erreur (try..catch avec la version 2 de powershell).
Cela rendra ton script moins gourmand pour au final faire la même chose, ne pas créer l'OU si elle existe déjà.
Bien Cordialement,
Richard Lazaro.
Au lieu de faire une action pour vérifier si elle existe déjà, utilise plutôt une gestion d'erreur (try..catch avec la version 2 de powershell).
Cela rendra ton script moins gourmand pour au final faire la même chose, ne pas créer l'OU si elle existe déjà.
Bien Cordialement,
Richard Lazaro.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- Derickxsen
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 13 ans 3 mois #13376
par Derickxsen
Réponse de Derickxsen sur le sujet Re:Ne pas créer une O.U si elle existe déjà
Tout d'abord merci pour ta réponse Richard
A la suite de mon post, j'ai trouvé aussi la commande trap. Est-ce dans le même but?
Si j'ai bien compris, en ajoutant la variable
$ErrorActionPreference=\"silentcontinue\"
les erreurs n'apparaissent plus mais avec Trap, on récupère que celles qui nous interessent?
Dans ce cas comment récupérer le type de l'erreur qui m'interesse?
J'ai trouvé dans le bouquin une piste mais je n'arrive pas à la reproduire pour mon script.
A la suite de mon post, j'ai trouvé aussi la commande trap. Est-ce dans le même but?
Si j'ai bien compris, en ajoutant la variable
$ErrorActionPreference=\"silentcontinue\"
les erreurs n'apparaissent plus mais avec Trap, on récupère que celles qui nous interessent?
Dans ce cas comment récupérer le type de l'erreur qui m'interesse?
J'ai trouvé dans le bouquin une piste mais je n'arrive pas à la reproduire pour mon script.
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 13 ans 3 mois #13389
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Ne pas créer une O.U si elle existe déjà
Bonsoir,
S'il s'agit uniquement de masquer les erreurs il suffit d'utiliser le parametre commun -ErrorAction (donc applicable a toutes les commandelettes).
Donc ca pourrait donner quelque chose commme cela:
[code:1]New-ADOrganizationalUnit -Name $Classe -Path \"OU=eleves,DC=xx,DC=xx\" -ErrorAction SilentlyContinue[/code:1]
Arnaud
S'il s'agit uniquement de masquer les erreurs il suffit d'utiliser le parametre commun -ErrorAction (donc applicable a toutes les commandelettes).
Donc ca pourrait donner quelque chose commme cela:
[code:1]New-ADOrganizationalUnit -Name $Classe -Path \"OU=eleves,DC=xx,DC=xx\" -ErrorAction SilentlyContinue[/code:1]
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Derickxsen
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 13 ans 3 mois #13390
par Derickxsen
Réponse de Derickxsen sur le sujet Re:Ne pas créer une O.U si elle existe déjà
Bonsoir
Merci Arnaud
J'avais trouvé effectivement cette astuce, mais il y a dans mon script des erreurs notamment de création de comptes d'utilisateurs que je ne veux pas cacher. Or avec ErrorActionPreference SilentlyContinue ça me cache toutes les erreurs!!
Merci Arnaud
J'avais trouvé effectivement cette astuce, mais il y a dans mon script des erreurs notamment de création de comptes d'utilisateurs que je ne veux pas cacher. Or avec ErrorActionPreference SilentlyContinue ça me cache toutes les erreurs!!
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 13 ans 3 mois #13396
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Ne pas créer une O.U si elle existe déjà
Pas tout a fait car avec ce que je te propose tu ne masques uniquement les erreurs de la commande New-ADOrganizationalUnit.
Contrairement au fait de modifier l'etat de la variable $ErrorActionPreference, qui elle en effet s'applique a toute ta session.
Arnaud
Contrairement au fait de modifier l'etat de la variable $ErrorActionPreference, qui elle en effet s'applique a toute ta session.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Ne pas créer une O.U si elle existe déjà