Script de prolongation de compte bureautique

Résolu/Fermé
vincent801566668 Messages postés 49 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 5 septembre 2018 - 3 mai 2018 à 13:24
vincent801566668 Messages postés 49 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 5 septembre 2018 - 6 mai 2018 à 15:41
Bonjour,

Je souhaite créer un script pour mon projet professionnel qui permet de prolonger les comptes bureautique via Powershell.

J'ai pour base se script :

# Importer le module Active Directory
Import-Module ActiveDirectory

# Import du CSV
$csv = Import-CSV -Path "C:\PS1\user.csv" -Delimiter ";" -Encoding UTF8

# Pour chaque utilisateur, on met à jour la date d'expiration
foreach($user IN $csv){
Set-ADAccountExpiration $user.samaccountname -DateTime "Monday, November 18, 2013"
}
Je souhaite que la valeur DateTime soit aléatoire et soit prise via le CSV pour ne pas être fixe.

Si quelqu'un sait comment faire ?

Merci pour votre aide

Cordialement
A voir également:

2 réponses

vincent801566668 Messages postés 49 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 5 septembre 2018 3
4 mai 2018 à 11:28
Quand je dis aléatoire c'est que la valeur date soit prise à partir du CSV pour être différente d'un utilisateur à un autre
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
4 mai 2018 à 17:10
Bonjour,

As-tu essayé quelque chose comme ça :
Set-ADAccountExpiration $user.samaccountname -DateTime $user.newexpiration

En nommant la colonne contenant la date dans ton CSV "newexpiration", et en y mettant les dates avec le même format que dans ton script d'origine.

Xavier
0
vincent801566668 Messages postés 49 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 5 septembre 2018 3
6 mai 2018 à 11:47
Bonjour,

Merci pour votre retour je vais tester et je vous dis si cela fonctionne

Merci pour votreaide

Cordialement
0
vincent801566668 Messages postés 49 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 5 septembre 2018 3
6 mai 2018 à 14:35
Bonjour,

J'ai mis le script

"# Importer le module Active Directory
Import-Module ActiveDirectory

# Import du CSV
$csv = Import-CSV -Path "C:\PS1\user.csv" -Delimiter ";" -Encoding UTF8

# Pour chaque utilisateur, on met à jour la date d'expiration
foreach($user IN $csv){
Set-ADAccountExpiration $user.samaccountname -DateTime $user.newexpiration
} "

Le fichier CSV


"samaccountname;";"newexpiration;"
"T0061042;";"lundi, 6 mai, 2018;"
"T0062052;";"lundi, 6 mai, 2019;"
"T0261047;";"lundi, 6 mai, 2020;"
"T0069048;";"lundi, 6 mai, 2021;"

J'ai mis la date en tenant compte que c'est un os Francais le format me semble correct

lors de l'exécution du script j'obtiens des erreurs :


u caractère Ligne:1 : 1
prolongation.ps1
~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (prolongation.ps1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException


uggestion [3,General]: La commande prolongation.ps1 est introuvable, mais elle existe à l'emplacement actif. Par défaut
Windows PowerShell ne charge pas de commandes à partir de l'emplacement actif. Si vous approuvez cette commande, tapez
".\prolongation.ps1" à la place. Pour plus d'informations, voir "get-help about_Command_Precedence".
S C:\ps1> powershell c:\ps1\prolongation.ps1
et-ADAccountExpiration : Impossible de valider l'argument sur le paramètre «Identity». L'argument est Null. Spécifiez
ne valeur valide pour l'argument, puis réessayez.
u caractère C:\ps1\prolongation.ps1:9 : 25
Set-ADAccountExpiration $user.samaccountname -DateTime $user.newexpiration
~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData : (:) [Set-ADAccountExpiration], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADAcco
untExpiration

et-ADAccountExpiration : Impossible de valider l'argument sur le paramètre «Identity». L'argument est Null. Spécifiez
ne valeur valide pour l'argument, puis réessayez.
u caractère C:\ps1\prolongation.ps1:9 : 25
Set-ADAccountExpiration $user.samaccountname -DateTime $user.newexpiration
~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData : (:) [Set-ADAccountExpiration], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADAcco
untExpiration

et-ADAccountExpiration : Impossible de valider l'argument sur le paramètre «Identity». L'argument est Null. Spécifiez
ne valeur valide pour l'argument, puis réessayez.
u caractère C:\ps1\prolongation.ps1:9 : 25
Set-ADAccountExpiration $user.samaccountname -DateTime $user.newexpiration
~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData : (:) [Set-ADAccountExpiration], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADAcco
untExpiration

et-ADAccountExpiration : Impossible de valider l'argument sur le paramètre «Identity». L'argument est Null. Spécifiez
ne valeur valide pour l'argument, puis réessayez.
u caractère C:\ps1\prolongation.ps1:9 : 25
Set-ADAccountExpiration $user.samaccountname -DateTime $user.newexpiration
~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData : (:) [Set-ADAccountExpiration], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADAcco
untExpiration

S C:\ps1>


J'ai essayé de modifier le format du script pour la date mais j'ai la même chose.
0
vincent801566668 Messages postés 49 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 5 septembre 2018 3
6 mai 2018 à 14:50
Je pense que mon erreur ce trouve dans le CSV
0
vincent801566668 Messages postés 49 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 5 septembre 2018 3
6 mai 2018 à 14:51
Si une personne a une idée ?
0
vincent801566668 Messages postés 49 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 5 septembre 2018 3
6 mai 2018 à 15:11
en modifiant le fichier CSV
samaccountname;newexpiration
T0061042;lundi, 6 mai, 2018
T0062052;lundi, 6 mai, 2018
T0261047;lundi, 6 mai, 2018
T0069048;lundi, 6 mai, 2018
"

J'ai comme erreur :

Set-ADAccountExpiration : Impossible de lier le paramètre «DateTime». Impossible de convertir la valeur «lundi, 6 mai,
2018» en type «System.DateTime». Erreur: «La chaîne n'a pas pu être reconnue en tant que DateTime valide, car le jour
de la semaine était incorrect.»
Au caractère C:\ps1\prolongation.ps1:9 : 56
+ Set-ADAccountExpiration $user.samaccountname -DateTime $user.newexpiration
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : (:) [Set-ADAccountExpiration], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.SetADAccoun
tExpiration
0