- forum
- PowerShell
- Entraide pour les débutants
- lancer une recherche d'utilisateurs dans plusieurs domaines listés dans un csv
Question
lancer une recherche d'utilisateurs dans plusieurs domaines listés dans un csv
- Verley
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 3 ans 1 semaine #30021
par Verley
Réponse de Verley sur le sujet lancer une recherche d'utilisateurs dans plusieurs domaines listés dans un csv
Bonjour!
Il s'agit d'une application nommée SAS, à laquelle les utilisateurs peuvent accéder sans VPN dans un premier temps, via leur login mot de passe. Pour les forcer à paramétrer la double authentification via leur téléphone portable, je souhaite mettre en place le processus suivant : les utilisateurs ayant accès à cette appli sont enregistrés dans le groupe AD "G-UTIL-CIT-SAS-Explicite", on utilise l'attribut dispo "homepage" de chaque user. A la première connexion on fixe l'attribut à 1. Soit l'utilisateur applique les consignes reçues, à savoir il active la double authentification, auquel cas il bascule dans un autre groupe et c'est réglé! Soit on incrémente l'attribut de 1 à chaque future connexion, tant qu'il n'active pas la double authentification, jusqu'à la cinquième tentative où il sera sorti du groupe AD et sera obligé de faire une nouvelle demande d'habilitation. Du coup si homepage = 5 remove! Ce script sera exécuté une fois par jour, et il s'agira à chaque fois de lister les users dont les droits auront été désactivés dans un fichier csv. J'espère que c'est un peu plus clair! Merci pour votre temps passé.
Jowell
Il s'agit d'une application nommée SAS, à laquelle les utilisateurs peuvent accéder sans VPN dans un premier temps, via leur login mot de passe. Pour les forcer à paramétrer la double authentification via leur téléphone portable, je souhaite mettre en place le processus suivant : les utilisateurs ayant accès à cette appli sont enregistrés dans le groupe AD "G-UTIL-CIT-SAS-Explicite", on utilise l'attribut dispo "homepage" de chaque user. A la première connexion on fixe l'attribut à 1. Soit l'utilisateur applique les consignes reçues, à savoir il active la double authentification, auquel cas il bascule dans un autre groupe et c'est réglé! Soit on incrémente l'attribut de 1 à chaque future connexion, tant qu'il n'active pas la double authentification, jusqu'à la cinquième tentative où il sera sorti du groupe AD et sera obligé de faire une nouvelle demande d'habilitation. Du coup si homepage = 5 remove! Ce script sera exécuté une fois par jour, et il s'agira à chaque fois de lister les users dont les droits auront été désactivés dans un fichier csv. J'espère que c'est un peu plus clair! Merci pour votre temps passé.
Jowell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6294
- Remerciements reçus 67
il y a 3 ans 1 semaine #30022
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet lancer une recherche d'utilisateurs dans plusieurs domaines listés dans un csv
Une réécriture de ton code :Réécriture à la volée, qui ne veut pas dire correction 
A tester et à simplifier.
# Gestion des authentifications SAS
[CmdletBinding()]
Param()
Clear-Host
#Autorise l'exécution du sript
Set-ExecutionPolicy RemoteSigned
import-module ActiveDirectory
#Variable représentant le répertoire de travail
$ScriptDir = $PsScriptRoot
#Variable représentant le fichier source.csv dans le répertoire de travail (script et csv)
$source = "$ScriptDir\source.csv"
#Variable représentant le groupe contenant les utilisateurs qui se connecte à SAS sans double authentification
$NomDeGroupe = 'G-UTIL-CIT-SAS-Explicite'
# Etape 1 : Parcourt la liste des domaines à traiter
Foreach ($DomainCourant in Import-Csv $source -Delimiter ';')
{
$Domain=$DomainCourant.Domain
#Pour chaque domaine, lister les utilisateurs du groupe indiqué
$utilisateurs = @(get-adgroupmember -identity $NomDeGroupe -server $Domain| select-object -ExpandProperty samaccountname)
$Supprimes=[System.Collections.ArrayList]::new()
#exécution du script pour chaque utilisateur
foreach ($id in $utilisateurs)
{
$CurrentUser=get-aduser -identity $id -properties homepage -server $Domain
$ver = $CurrentUser |select-object -ExpandProperty homepage
#Si le champs est vide c'est que la personne a été ajouté au groupe le jour même
if($Null -eq $ver)
{
$CurrentUser|set-aduser -HomePage 5
write-host "Valeur initialisée pour le compte '$id'"
}
elseif($ver -eq '0')
{
#Si la valeur de l'attribut est égale à 0 l'utilisateur est sorti du groupe
remove-ADGroupMember -Identity $NomDeGroupe -Member $id -server $Domain -whatif:$whatif
$CurrentUser|set-aduser -HomePage $null -whatif:$whatif
$Supprimes.Add($id) > $null
write-host "Le compte '$id' a été supprimé du groupe"
}
#Pour toute autre valeur de l'attribut, celui-ci est décrémenté de 1
else
{
$NewVer -=1
$CurrentUser|set-aduser -HomePage $NewVer
write-host "La valeur '$Newver' a été attribué au compte '$id'"
}
}#foreach users
}#foreach Domain
# Exporte la liste des utilisateurs sortis du groupe G-UTIL-CIT-SAS-Explicite vers out.csv
$Supprimes|
Export-Csv -path "$ScriptDir\out.csv"

A tester et à simplifier.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Verley
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 3 ans 5 jours #30028
par Verley
Réponse de Verley sur le sujet lancer une recherche d'utilisateurs dans plusieurs domaines listés dans un csv
Merci bcp Laurent je teste et te tiens au courant.
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les débutants
- lancer une recherche d'utilisateurs dans plusieurs domaines listés dans un csv
Temps de génération de la page : 0.085 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- lancer une recherche d'utilisateurs dans plusieurs domaines listés dans un csv