Script pour lister les droits NTFS + Utilisateurs
hamariana Messages postés 5 Statut Membre -
Bonjour,
Script pour lister les droits NTFS + Utilisateurs d'un dossier partagé
J'ai un problème avec mon script qui fonctionne sur un PC mais pas l'autre je n'arrive pas à trouver le problème ci joint le script :
#Import module:
Import-Module ActiveDirectory
#Scripts variable
#Entrez ici le chemin du dossier :
$folder = "CHEMIN_AD"
$users_excluded = @("CREATOR OWNER" , "BUILTIN\Administrateurs" , "AUTORITE NT\Système" , "NomDuDomaine\Administrateur")
$displayed_members_groups_list = @()
# initialisation du contenu du fichier
$file_content = "
L'objectif de ce dossier est de permettre aux utilisateurs d'échanger des documents.
Les dossiers de ce niveau peuvent être consultés, créés, modifiés et supprimés par n'importe quel utilisateur à tout moment.
Accès accordés aux sous-dossiers pour les groupes :
"
#Liste de chaque groupe AD pour chaque sous-dossiers
$file_content += "NomDuDossier`r`n"
$acl = Get-Acl "$folder" | ForEach-Object { $_.Access } #obtenir des informations de sécurité
foreach($acl_unit in $acl)
{
if ($users_excluded -notcontains $acl_unit.IdentityReference) #Vérifier si l'utilisateur est exclu
{
$file_content += " " + $acl_unit_IdentityReference_Without_DOMAIN + "`r`n"
if($displayed_members_groups_list -notcontains $acl_unit_IdentityReference_Without_DOMAIN) #Vérifiez si le groupe est déjà enregistré dans la liste des groupes
{
$displayed_members_groups_list += $acl_unit_IdentityReference_Without_DOMAIN
}
}
}
$file_content += "`r`n"
$file_content += "`r`nGroups :
"
#Liste des membres de chaque groupe AD
foreach ($row in $displayed_members_groups_list)
{
$file_content_temp = ""
$users = Get-ADGroupMember -Identity $row | Sort-Object Name | Sort-Object SamAccountName ` #Obtenir la liste des membres du Groupe AD
$i = 0
ForEach ($user in $users)
{
$file_content_temp += $user.SamAccountName + " " + $user.Name + " " + "`r`n" #Afficher le nom d'utilisateur pour chaque utilisateur
$i += 1
}
$file_content += $row + " (" + $i + ") :`r`n"
$file_content += $file_content_temp
$file_content += "`r`n"
}
$date_now = Get-Date -format "dd/MM/yyyy" #date
$time_now = Get-Date -format "HH:mm" #heure
$file_content += "`r`n
`r`nContent automatically generated on " + $date_now + " at " + $time_now + "."
$readme_file_path = $folder + "\_README.TXT" #Chemin du fichier de sortie
echo $file_content > $readme_file_path #Ecriture du fichier de sortie
ERREUR : Get-ADGroupMember : Impossible de valider l'argument sur le paramètre «Identity». L’argument est Null ou vide. Indiquez un
argument qui n’est pas Null ou vide et réessayez.
Au caractère Ligne:43 : 46
+ $users = Get-ADGroupMember -Identity $row | Sort-Object Name | Sort-Obje ...
+ ~~~~
+ CategoryInfo : InvalidData : ( [Get-ADGroupMember], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMembe
r
Pouvez-vous m'aider svp
Windows / Chrome 105.0.0.0
- Powershell lister les droits d'un utilisateur
- Lister les disques cmd - Guide
- Impossible de charger les accords de l'utilisateur tv lg - Forum Téléviseurs
- Donnez à ce fichier les mêmes droits d'accès que les autres notes de service. - Forum Réseau
- CMD - Lister les disques ✓ - Forum Windows
- Fransat vous n'avez pas les droits pour accéder au programme ✓ - Forum TV & Vidéo
3 réponses
Bonjour,
row ne contient probablement pas une cellule de type ADUser dans la liste que vous avez. Assurez-vous que l'ArrayList soit bien de type ADUser.
Bonjour,
Le message d'erreur indique que l'argument $row
est null ou vide lors de l'appel à la cmdlet Get-ADGroupMember
à la ligne 43. Cela peut se produire si $displayed_members_groups_list
est vide. Vous pouvez ajouter une condition pour vérifier si la liste n'est pas vide avant de boucler sur chaque élément, comme ceci :
if($displayed_members_groups_list){
foreach ($row in $displayed_members_groups_list)
{
#...
}
}