Résolu Récupération valeur du dernier changement de mot de passe pour les users admin

Plus d'informations
il y a 10 mois 3 semaines #33765 par kren
Bonjour à tous,

Je reviens vers la communauté Powershell car j'ai une difficulté sur la récupération d'une valeur en fonction d'un nom.

La première requête sert à récupérer des users administrateurs:
(Get-LocalGroupMember -Group "Administrateurs" | Select-Object -ExpandProperty Name) -join "; "

J'obtiens un retour comme ça:
monpc\Administrateur; monpc\user1; monpc\user2; monpc\user3

Ensuite j'ai la commande Get-LocalUser | Select * qui me permet de récupérer le type d'information si-dessous par utilisateur exemple:

AccountExpires         :
Description            : Compte utilisateur géré par le système.
Enabled                : False
FullName               :
PasswordChangeableDate :
PasswordExpires        :
UserMayChangePassword  : True
PasswordRequired       : False
PasswordLastSet        :
LastLogon              :
Name                   : DefaultAccount
SID                    : S-1-5-21-2235031023-114394703-1092233391-503
PrincipalSource        : Local
ObjectClass            : Utilisateur

Je souhaiterais donc à l'aide de la première requête récupérer juste le nom du user"sans monpc\" et m'en servir pour requêter les informations suivantes:

PasswordExpires        :
UserMayChangePassword  :
PasswordRequired       :
PasswordLastSet        :
LastLogon              :
Name                   : xxxx

Merci pour votre aide

Cordialement
 

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 mois 3 semaines #33769 par Fabien
Bonjour Kren,

Voici comment tu peux récupérer les infos : 
#Récupération des utilisateurs "Administrateurs"
$Users = Get-LocalGroupMember -Group "Administrateurs" | Select-Object -ExpandProperty Name

# Extraire la partie après le "\"
$Users = $Users -replace '.*\\'

#Création du tableau
$Infos = @()

#Boucle de traitement pour chaque utilisateur
foreach ($i in $Users){

    #Récupérer les informations nécessaires
    $Infos += Get-LocalUser -Name $i | select PasswordExpires, UserMayChangePassword, PasswordRequired, PasswordLastSet, LastLogon, Name
}

#Affichage du tableau
$Infos

Fabien

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 mois 3 semaines - il y a 5 mois 2 semaines #33775 par kren
Bonjour Fabien,

Merci pour ton retour, c'est parfait.

Voici le script pour afficher le résultat sur une seule ligne si besoins:

#Récupération des utilisateurs "Administrateurs"
$Users = Get-LocalGroupMember -Group "Administrateurs" | Select-Object -ExpandProperty Name

# Extraire la partie après le "\"
$Users = $Users -replace '.*\\'

#Création du tableau
$Infos = @()

#Boucle de traitement pour chaque utilisateur
foreach ($i in $Users){

#Récupérer les informations nécessaires
$Infos += Get-LocalUser -Name $i | select PasswordExpires, UserMayChangePassword, PasswordRequired, PasswordLastSet, LastLogon, Name
}

# Créer un tableau pour stocker chaque ligne formatée
$tableauLignesusers = @()

# Parcourir chaque élément dans formater la ligne
foreach ($element in $Infos) {
$ligneusers = "Name={0},PasswordLastSet={1}" -f $element.Name, $element.PasswordLastSet
$tableauLignesusers += $ligneusers
}
# Joindre les lignes avec un point-virgule
$usersResult = $tableauLignesusers -join ";"

$usersResult




Bonne journée
Dernière édition: il y a 5 mois 2 semaines par kren.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.106 secondes
Propulsé par Kunena