Question
Gestion d’expiration d'un compte AD
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 4 ans 8 mois #29112
par Galadan
Gestion d’expiration d'un compte AD a été créé par Galadan
Bonjour,
J'un script pour créer des compte AD à partir d'un CSV.
J'ai juste un problème pour gérer l'expiration du compte.
En effet je souhaite que si la colonne ou se trouve normalement la date d'expiration est vide cela rentre la date du jour + 1 mois sinon cela rentre la date inscrite dans le fichier.
J'ai donc fait cela:
[code:1]# Gestion de la fin de contrat
If ($_.FinContrat -ne $null){
$FinContrat = $_.FinContrat
}
Else {
$Date = Get-Date
$FinContrat = $Date.AddMonths(1).ToString(\"dd/MM/yy HH:mm\"«»)
}
#[/code:1]
Cela fonctionne lorsque le CSV est rempli mais pas lorsque vide...
Je sèche...
Merci de votre aide.
J'un script pour créer des compte AD à partir d'un CSV.
J'ai juste un problème pour gérer l'expiration du compte.
En effet je souhaite que si la colonne ou se trouve normalement la date d'expiration est vide cela rentre la date du jour + 1 mois sinon cela rentre la date inscrite dans le fichier.
J'ai donc fait cela:
[code:1]# Gestion de la fin de contrat
If ($_.FinContrat -ne $null){
$FinContrat = $_.FinContrat
}
Else {
$Date = Get-Date
$FinContrat = $Date.AddMonths(1).ToString(\"dd/MM/yy HH:mm\"«»)
}
#[/code:1]
Cela fonctionne lorsque le CSV est rempli mais pas lorsque vide...
Je sèche...
Merci de votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 4 ans 8 mois #29113
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:Gestion d’expiration d'un compte AD
Bonjour Galadan,
Déjà, tu pourrais essayer d'inverser ton test :
[code:1]
If ($null -eq $_.FinContrat){ ...
[/code:1]
Parce que dans le cas où tu récupères un tableau dans ta propriété FinContrat et que parmi les valeurs il se trouve la valeur $Null, alors ton test serait vrai.
Et sinon tu devrais aussi tester la valeur chaine vide, comme ceci :
[code:1]
If ($null -eq $_.FinContrat -or '' -eq $_.FinContrat){ ...
[/code:1]
Arnaud
Déjà, tu pourrais essayer d'inverser ton test :
[code:1]
If ($null -eq $_.FinContrat){ ...
[/code:1]
Parce que dans le cas où tu récupères un tableau dans ta propriété FinContrat et que parmi les valeurs il se trouve la valeur $Null, alors ton test serait vrai.
Et sinon tu devrais aussi tester la valeur chaine vide, comme ceci :
[code:1]
If ($null -eq $_.FinContrat -or '' -eq $_.FinContrat){ ...
[/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.
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 4 ans 8 mois #29124
par Galadan
Réponse de Galadan sur le sujet Re:Gestion d’expiration d'un compte AD
Tous simplement inverser... Merci ça fait le job apriori.
J'ai une autre question, le script met bien bien une date de fin mais avec 1 jour de moins que demandé:
Par ex dans le fichier, si c'est noté 30/07/2019, dans l'AD ça passe à 29/07/2019.
Si c'est vide, la date d'aujourd'hui + 1 mois cela nous donne 24/08/19 mais dans l'AD c'est 23/08/2019
[code:1]# Gestion de la fin de contrat
If ($null -eq $_.FinContrat -or '' -eq $_.FinContrat){
$Date = Get-Date
$FinContrat = $Date.AddMonths(1).ToString(\"dd/MM/yy HH:mm\"«»)
}
Else {
$FinContrat = $_.FinContrat
}[/code:1]
Merci d'avance.
J'ai une autre question, le script met bien bien une date de fin mais avec 1 jour de moins que demandé:
Par ex dans le fichier, si c'est noté 30/07/2019, dans l'AD ça passe à 29/07/2019.
Si c'est vide, la date d'aujourd'hui + 1 mois cela nous donne 24/08/19 mais dans l'AD c'est 23/08/2019
[code:1]# Gestion de la fin de contrat
If ($null -eq $_.FinContrat -or '' -eq $_.FinContrat){
$Date = Get-Date
$FinContrat = $Date.AddMonths(1).ToString(\"dd/MM/yy HH:mm\"«»)
}
Else {
$FinContrat = $_.FinContrat
}[/code:1]
Merci d'avance.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 4 ans 8 mois #29125
par Philippe
Réponse de Philippe sur le sujet Re:Gestion d’expiration d'un compte AD
salut Galadan
dans l'AD la date est celle du dernier jour ou le compte est encore actif
si t'a besoin d'un jour de plus tu peux faire :
[code:1]$Date.AddMonths(1).AddDays(1).ToString(\"dd/MM/yy HH:mm\"«») [/code:1]
dans l'AD la date est celle du dernier jour ou le compte est encore actif
si t'a besoin d'un jour de plus tu peux faire :
[code:1]$Date.AddMonths(1).AddDays(1).ToString(\"dd/MM/yy HH:mm\"«») [/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 4 ans 8 mois #29126
par Galadan
Réponse de Galadan sur le sujet Re:Gestion d’expiration d'un compte AD
Je parle du AccountExpirationDate, je sais pas si c'était clair...
Pour la gestion du CSV ça serait donc ça:
[code:1] $FinContrat = $_.FinContrat.AddDays(1)[/code:1]
?
Pour la gestion du CSV ça serait donc ça:
[code:1] $FinContrat = $_.FinContrat.AddDays(1)[/code:1]
?
Connexion ou Créer un compte pour participer à la conversation.
- Quentin
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 47
- Remerciements reçus 0
il y a 4 ans 8 mois #29132
par Quentin
Réponse de Quentin sur le sujet Re:Gestion d’expiration d'un compte AD
Bonjour, pour information :
un article expliquait la différence de traitement de l'expiration des comptes entre powershell et la méthode graphique via l'AD.
Powershell : dès qu'on arrive à la date ciblée, le compte est bloqué
graphique via l'AD : dès qu'on arrive à la FIN de la date ciblée, le compte est bloqué
Exemple :
Powershell fin au 31/12 => passage du 30/12 au 31/12, expiration du compte
Graphique via l'AD, fin au 31/12 => passage du 31/12 au 01/01, expiration du compte
Donc soit tu choisis d'ajouter un jour pour que méthode graphique = méthode powershell. Soit tu fais en sorte que ton entrée ai directement +1 jour sur les dates
Whitatrax
Whitatrax
un article expliquait la différence de traitement de l'expiration des comptes entre powershell et la méthode graphique via l'AD.
Powershell : dès qu'on arrive à la date ciblée, le compte est bloqué
graphique via l'AD : dès qu'on arrive à la FIN de la date ciblée, le compte est bloqué
Exemple :
Powershell fin au 31/12 => passage du 30/12 au 31/12, expiration du compte
Graphique via l'AD, fin au 31/12 => passage du 31/12 au 01/01, expiration du compte
Donc soit tu choisis d'ajouter un jour pour que méthode graphique = méthode powershell. Soit tu fais en sorte que ton entrée ai directement +1 jour sur les dates
Whitatrax
Whitatrax
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.076 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Gestion d’expiration d'un compte AD