Problème script powershell
BSE technique
-
BSE technique -
BSE technique -
Bonjour,
J'aurais besoin d'un coup de main, je voudrais mettre en place deux scripts mais le premier ne s'effectue pas correctement.
Le premier liste les comptes dont le mot de passe va bientôt expirer.
Le deuxième affiche un pop à l'ouverture de la session utilisateur.
J'aurais besoin d'un coup de main, je voudrais mettre en place deux scripts mais le premier ne s'effectue pas correctement.
Le premier liste les comptes dont le mot de passe va bientôt expirer.
import-module activedirectory # Récupérer la date du jour $date = Get-Date # Création du fichier $fichier="C:\Windows\SYSVOL\sysvol\"NOM_DE_DOMAINE.lan"\scripts\users_expire.txt" Remove-Item $fichier -Force New-Item $fichier -ItemType file #ADD-content -path $fichier -value "sam;" ADD-content -path $fichier -value $date.DateTime $Listusers = Get-ADUser -SearchBase 'DC="NOM_DE_DOMAINE", DC=lan' -Filter * Foreach ($user in $Listusers) { $foruser = $user.SamAccountName $Expiration = {[datetime]::FromFileTime((Get-ADUser –Identity $foruser -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed")} # Afficher les dates en Ticks $exp = $expiration.Ticks $d = $date.Ticks # Calculer la différence de jours $comp = $exp - $d # 12750000000000 = 15 jours # Si $comp est inférieur à 15 jours, ecrire if ($comp -le 12750000000000) { ADD-content -path $fichier -value $foruser";" } }
Le deuxième affiche un pop à l'ouverture de la session utilisateur.
$connect = $env:USERNAME $fichier = Import-Csv -Delimiter ";" -Path "\\SRV01\SYSVOL\"NOM_DE_DOMAINE.lan"\scripts\users_expire.txt" foreach ($line in $fichier) { $l = $line.sam if ($connect -eq $l) { $wshell = New-Object -ComObject Wscript.Shell $wshell.Popup("Veuillez modifier votre mot de passe Ctrl + Alt + Suppr > Modifier un mot de passe Merci") } } exit
A voir également:
- Problème script powershell
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Virus powershell - Guide
- Script cmd - Guide
2 réponses
voila le résultat du 1er script dans le doc "users_expire.txt"
jeudi 16 mars 2017 12:07:11
Administrateur;
Invité;
suivi de tous les noms d'utilisateurs de l'AD suivi d'un ";"
jeudi 16 mars 2017 12:07:11
Administrateur;
Invité;
suivi de tous les noms d'utilisateurs de l'AD suivi d'un ";"
j'ai effectué quelques modification que voici:
dans le fichier texte j'ai une bonne partie des users suivi d'un ";" mais je n'ai toujours pas leur expiration de MDP.
J'ai aussi eu un autre problème pendant les modification :
Exception lors de l'appel de « FromFileTime » avec « 1 » argument(s) : « FileTime Win32 non valide.
Nom du paramètre : fileTime »
peut il y avoir un rapport ?
import-module activedirectory
# Récupérer la date du jour
$date = Get-Date
# Création du fichier
$fichier="C:\Windows\SYSVOL\sysvol\CMPP.lan\scripts\users_expire.txt"
Remove-Item $fichier -Force
New-Item $fichier -ItemType file
#ADD-content -path $fichier -value "sam;"
ADD-content -path $fichier -value $date.DateTime
$Listusers = Get-ADUser -SearchBase 'DC=CMPP, DC=lan' -Filter *
$expiration = 12750000000000
Foreach ($user in $Listusers)
{
$foruser = $user.SamAccountName
$proper = Get-ADUser -Identity $foruser -Properties "msDS-UserPasswordExpiryTimeComputed"
$value = $proper."msDS-UserPasswordExpiryTimeComputed"
if ($value -le $expiration) {
ADD-content -path $fichier -value $foruser";"
}
}
dans le fichier texte j'ai une bonne partie des users suivi d'un ";" mais je n'ai toujours pas leur expiration de MDP.
J'ai aussi eu un autre problème pendant les modification :
Exception lors de l'appel de « FromFileTime » avec « 1 » argument(s) : « FileTime Win32 non valide.
Nom du paramètre : fileTime »
peut il y avoir un rapport ?