- forum
- PowerShell
- Entraide pour les débutants
- Lister utilisateurs par groupe avec des foreign security principals
Question
Lister utilisateurs par groupe avec des foreign security principals
- Julien
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 10 mois 2 semaines - il y a 10 mois 2 semaines #32779
par Julien
Bonjour,
Je travail actuellement sur un script powershell permettant de lister l'ensemble des users par groupes sur plusieurs domaines. Je rencontre néanmoins un problème avec certains groupes sans que je puisse comprendre si cela a à voir avec les foreign security principals ou pas.
Sur un bon nombre de groupe, j'ai soit l'une ou l'autre des erreurs suivantes sur la commande get-aduser, qu'il y ait ou nom des foreign security principals dedans ni d'autres groupes imbriqués, du type :
Get-ADUser : Impossible de trouver un objet avec l’identité « S-1-5-21-1343024091-1715567821-1417001333-8577 » sous : « DC=XXXX,DC=XXXX ».
At C:\Users\XXXX\Desktop\mes scripts\Users par groupe - tableau.ps1:69 char:14
+ ... $ret=Get-ADUser -Identity $nom -properties * -server $domaine ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (S-1-5-21-134302...1417001333-8577:ADUser) [Get-ADUser], ADIdentityNotFoundException
+ FullyQualifiedErrorId : Impossible de trouver un objet avec l’identité «S-1-5-21-1343024091-1715567821-1417001333-8577» sous: «DC=XXXX,DC=XXXX».,Microsoft.ActiveDirectory.Management.Commands
.GetADUser
Soit
Get-ADUser : Impossible de trouver un objet avec l’identité « CN=GRP_file_applis_specifique_bordereaux_W,OU=GROUPES,DC=XXXX,DC=XXXX » sous : « DC=XXXX,DC=XXXX ».
At C:\Users\XXXX\Desktop\mes scripts\Users par groupe - tableau.ps1:69 char:14
+ ... $ret=Get-ADUser -Identity $nom -properties * -server $domaine ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (CN=GRP_file_app...,DC=XXXX:ADUser) [Get-ADUser], ADIdentityNotFoundException
+ FullyQualifiedErrorId : Impossible de trouver un objet avec l’identité «CN=GRP_file_applis_specifique_bordereaux_W,OU=GROUPES,DC=XXXX,DC=XXXX» sous: «DC=XXXX,DC=XXXX».,Microsoft.ActiveDir
ectory.Management.Commands.GetADUser
Si quelqu'un a une idée du problème, je suis preneur.
Ci-dessous mon script :
# définition de fonction
function Get-AdGroupForeignMembers
{
param(
[string]$group
)
$translatedMembers = @()
$members = (Get-ADGroup $group -Properties member).member
foreach($m in $members)
{
$orphan = $false
$name = ""
$dn = $([adsi]$("LDAP://$m")).DistinguishedName
$ado = Get-ADObject -Identity $($dn)
if($ado.Name -match "^S-\d-\d-\d\d")
{
try
{
$name = ([System.Security.Principal.SecurityIdentifier] $ado.Name).Translate([System.Security.Principal.NTAccount])
}
catch
{
$name = $ado.Name
$orphan = $true
}
}
else
{
$name = $ado.DistinguishedName
}
$translatedMembers += [PSCustomObject] @{
Name = $name
Orphaned = $orphan
}
}
Write-Output $translatedMembers
}
# Début programme
$Groups = Get-ADGroup -Filter * -SearchBase 'OU=GROUPES,DC=XXXX,DC=XXXX' -searchscope 1
$AllGroups = Get-ADGroup -Filter * -SearchBase 'OU=GROUPES,DC=XXXX,DC=XXXX' -searchscope 1
$TotalGroups = $AllGroups.Count
$i = 1
foreach( $Group in $Groups ){
Write-Progress -Activity "Traitement du groupe '$($Group.samAccountName)'" -Status "$i ème groupe sur un total de $TotalGroups groupes traités"
Get-AdGroupForeignMembers $group | ForEach-Object {
$nom=$_.name
$domaine="XXXX.XXXX"
if ( $nom -like "*\*") {
$nomseul="$nom" -split "\\"
$nom=$nomseul[1]
if ( $nomseul[0] -like "nom du domaine" ) { $domaine="xxxx.fr"}
elseif ( $nomseul[0] -like "autre nom de domaine") { $domaine="xxxx.dom" }
}
$ret=Get-ADUser -Identity $nom -properties * -server $domaine | Select-Object -Property @{Name = 'Groupe' ; Expression = {"CN=" + $Group.Name}}, @{Name = 'Class' ; Expression = {$_.objectClass}}, sn, sAMAccountName, @{Name = 'UserPrincipalName' ; Expression = {$_.userPrincipalName}}, @{Name = 'DisplayName' ; Expression = {$_.displayName}}, mail, title, @{Name = 'societe' ; Expression = {$_.company}}, @{Name = 'ville' ; Expression = {$_.l}}, objectSid, distinguishedName, @{Name = 'Prenom' ; Expression = {$_.givenName}}, @{Name = 'EmployeeNumber' ; Expression = {$_.employeeNumber}} | Export-Csv -Path \\svlxxxx\stockage\UTILISATEURS\xxxx\Userspargroupe-tableau.csv -Delimiter ";" -Append
}
$i++
}
J'ai volontairement masqué les noms de domaines et remplacé par des XXXX.
Merci d'avance,
Je travail actuellement sur un script powershell permettant de lister l'ensemble des users par groupes sur plusieurs domaines. Je rencontre néanmoins un problème avec certains groupes sans que je puisse comprendre si cela a à voir avec les foreign security principals ou pas.
Sur un bon nombre de groupe, j'ai soit l'une ou l'autre des erreurs suivantes sur la commande get-aduser, qu'il y ait ou nom des foreign security principals dedans ni d'autres groupes imbriqués, du type :
Get-ADUser : Impossible de trouver un objet avec l’identité « S-1-5-21-1343024091-1715567821-1417001333-8577 » sous : « DC=XXXX,DC=XXXX ».
At C:\Users\XXXX\Desktop\mes scripts\Users par groupe - tableau.ps1:69 char:14
+ ... $ret=Get-ADUser -Identity $nom -properties * -server $domaine ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (S-1-5-21-134302...1417001333-8577:ADUser) [Get-ADUser], ADIdentityNotFoundException
+ FullyQualifiedErrorId : Impossible de trouver un objet avec l’identité «S-1-5-21-1343024091-1715567821-1417001333-8577» sous: «DC=XXXX,DC=XXXX».,Microsoft.ActiveDirectory.Management.Commands
.GetADUser
Soit
Get-ADUser : Impossible de trouver un objet avec l’identité « CN=GRP_file_applis_specifique_bordereaux_W,OU=GROUPES,DC=XXXX,DC=XXXX » sous : « DC=XXXX,DC=XXXX ».
At C:\Users\XXXX\Desktop\mes scripts\Users par groupe - tableau.ps1:69 char:14
+ ... $ret=Get-ADUser -Identity $nom -properties * -server $domaine ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (CN=GRP_file_app...,DC=XXXX:ADUser) [Get-ADUser], ADIdentityNotFoundException
+ FullyQualifiedErrorId : Impossible de trouver un objet avec l’identité «CN=GRP_file_applis_specifique_bordereaux_W,OU=GROUPES,DC=XXXX,DC=XXXX» sous: «DC=XXXX,DC=XXXX».,Microsoft.ActiveDir
ectory.Management.Commands.GetADUser
Si quelqu'un a une idée du problème, je suis preneur.
Ci-dessous mon script :
# définition de fonction
function Get-AdGroupForeignMembers
{
param(
[string]$group
)
$translatedMembers = @()
$members = (Get-ADGroup $group -Properties member).member
foreach($m in $members)
{
$orphan = $false
$name = ""
$dn = $([adsi]$("LDAP://$m")).DistinguishedName
$ado = Get-ADObject -Identity $($dn)
if($ado.Name -match "^S-\d-\d-\d\d")
{
try
{
$name = ([System.Security.Principal.SecurityIdentifier] $ado.Name).Translate([System.Security.Principal.NTAccount])
}
catch
{
$name = $ado.Name
$orphan = $true
}
}
else
{
$name = $ado.DistinguishedName
}
$translatedMembers += [PSCustomObject] @{
Name = $name
Orphaned = $orphan
}
}
Write-Output $translatedMembers
}
# Début programme
$Groups = Get-ADGroup -Filter * -SearchBase 'OU=GROUPES,DC=XXXX,DC=XXXX' -searchscope 1
$AllGroups = Get-ADGroup -Filter * -SearchBase 'OU=GROUPES,DC=XXXX,DC=XXXX' -searchscope 1
$TotalGroups = $AllGroups.Count
$i = 1
foreach( $Group in $Groups ){
Write-Progress -Activity "Traitement du groupe '$($Group.samAccountName)'" -Status "$i ème groupe sur un total de $TotalGroups groupes traités"
Get-AdGroupForeignMembers $group | ForEach-Object {
$nom=$_.name
$domaine="XXXX.XXXX"
if ( $nom -like "*\*") {
$nomseul="$nom" -split "\\"
$nom=$nomseul[1]
if ( $nomseul[0] -like "nom du domaine" ) { $domaine="xxxx.fr"}
elseif ( $nomseul[0] -like "autre nom de domaine") { $domaine="xxxx.dom" }
}
$ret=Get-ADUser -Identity $nom -properties * -server $domaine | Select-Object -Property @{Name = 'Groupe' ; Expression = {"CN=" + $Group.Name}}, @{Name = 'Class' ; Expression = {$_.objectClass}}, sn, sAMAccountName, @{Name = 'UserPrincipalName' ; Expression = {$_.userPrincipalName}}, @{Name = 'DisplayName' ; Expression = {$_.displayName}}, mail, title, @{Name = 'societe' ; Expression = {$_.company}}, @{Name = 'ville' ; Expression = {$_.l}}, objectSid, distinguishedName, @{Name = 'Prenom' ; Expression = {$_.givenName}}, @{Name = 'EmployeeNumber' ; Expression = {$_.employeeNumber}} | Export-Csv -Path \\svlxxxx\stockage\UTILISATEURS\xxxx\Userspargroupe-tableau.csv -Delimiter ";" -Append
}
$i++
}
J'ai volontairement masqué les noms de domaines et remplacé par des XXXX.
Merci d'avance,
Dernière édition: il y a 10 mois 2 semaines par Julien.
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les débutants
- Lister utilisateurs par groupe avec des foreign security principals
Temps de génération de la page : 0.040 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Lister utilisateurs par groupe avec des foreign security principals