Script de prolongation de compte bureautique

Résolu
vincent801566668 Messages postés 61 Statut Membre -  
vincent801566668 Messages postés 61 Statut Membre -
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

2 réponses

  1. vincent801566668 Messages postés 61 Statut Membre 3
     
    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
  2. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    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
    1. vincent801566668 Messages postés 61 Statut Membre 3
       
      Bonjour,

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

      Merci pour votreaide

      Cordialement
      0
    2. vincent801566668 Messages postés 61 Statut Membre 3
       
      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
    3. vincent801566668 Messages postés 61 Statut Membre 3
       
      Je pense que mon erreur ce trouve dans le CSV
      0
    4. vincent801566668 Messages postés 61 Statut Membre 3
       
      Si une personne a une idée ?
      0
    5. vincent801566668 Messages postés 61 Statut Membre 3
       
      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