Utilisation "import-module activedirectory"

Fermé
pbh974 Messages postés 2 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 30 juin 2022 - Modifié le 29 juin 2022 à 11:46
choubaka Messages postés 39399 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 3 août 2024 - 30 juin 2022 à 16:40
Bonjour,
Dans un domaine AD, je souhaite exécuter un script à l'ouverture de session des utilisateurs en Powershell (via GPO) afin de leur envoyer un message si la date de changement de leur mot de passe dépasse un certain nombre de jour (60 jours).
En local sur un DC pas de problème le script fonctionne correctement, mais quand le script est exécuté sur le poste de l'utilisateur (à l'ouverture de session via la GPO) cela ne fonctionne pas car il n'y a pas d'accès au module "ActiveDirectory" (la fonctionnalité RSAT n'est pas installée sur les postes des utilisateurs et je ne souhaites pas l'installer naturellement) . Du coup j'ai invariablement le message :

import-module : Le module "ActiveDirectory" spécifié n'a pas été chargé, car aucun fichier de module valide n'a été trouvé dans un répertoire de module.

Voici le code de mon script :

import-module ActiveDirectory

$Seuil_maxi = 60

$name_user = $env:USERNAME

$user_current = Get-ADUser -filter {SamAccountName -eq $name_user } -properties SamAccountName, passwordlastset, passwordneverexpires | select-object Name, passwordlastset, SamAccountName

if (-not ([string]::IsNullOrEmpty($user_current.passwordlastset)))
{
            $last_change_pwd = Get-Date $user_current.passwordlastset -Format "dd/MM/yyyy"
            $Date_du_jour = (Get-Date).ToString("dd/MM/yyyy")
            $ts = New-TimeSpan -Start $last_change_pwd -End $Date_du_jour

            # Affichage du message d'information
        if ($ts.Days -gt $Seuil_maxi) {
            powershell -WindowStyle hidden -Command "& {Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show('Bonjour, veuillez changer votre mot de passe', 'Info Users', 'Ok', [System.Windows.Forms.MessageBoxIcon]::Information);}"
        }
}

Pour info le script a été positionné dans le netlogon du domaine et tous les utilisateurs peuvent l'exécuter naturellement.
Quelqu'un aurait-il une solution pour importer le module "ActiveDirectory" qui me permettrait d'utiliser la fonction "Get-ADUser "? Ou éventuellement une autre façon de faire...

Merci d'avance


EDIT: Discussion déplacée dans le forum PowerShell
EDIT² : Ajout des BALISES DE CODE

3 réponses

choubaka Messages postés 39399 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 3 août 2024 2 101
29 juin 2022 à 18:18
0
pbh974 Messages postés 2 Date d'inscription mercredi 29 juin 2022 Statut Membre Dernière intervention 30 juin 2022
30 juin 2022 à 09:11
Bonjour Choubaka,
Merci pour ta réponse, mais mon problème ne vient pas d'une impossibilité de définir une stratégie d'expiration de mot de passe (la GPO par défaut du domaine fait ça très bien). Nous avons constaté que plusieurs utilisateur on l'option "le mot de passe n'expire jamais" et la la GPO n'y peux rien (ce paramètre prime sur la GPO). Il s'agit de pouvoir vérifier à l'ouverture de session des utilisateurs depuis combien de temps ils n'ont pas changés leur mot de passe via la commande "Get-aduser", sauf que cela ne fonctionne pas sur les postes des utilisateurs car ils n'ont pas le module RSAT d'installé sur leur poste et je ne souhaites pas l'installer sur tous les postes (donc pas accès au module activedirectory).
0
choubaka Messages postés 39399 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 3 août 2024 2 101
30 juin 2022 à 16:40
Bonjour
En effet, mais malheureusement RSAT doit absolument être installé .. Plus d'infos ci-dessous.

https://www.it-connect.fr/chapitres/installer-le-module-active-directory-sur-windows-10-et-windows-server/
0