Question remplir un groupe

Plus d'informations
il y a 16 ans 2 mois #5951 par Morand
remplir un groupe a été créé par Morand
Bonjour,
j'ai deux groupes AD : \"Laptops\" contenant des comptes d'ordinateurs portables et \"Laptop Users\" contenant les utilisateurs de portables.
Chaque compte d'ordinateur à un champ description rempli avec le prénom et nom de l'utilisateur, comme ce qui apparaît dans le champ \"Nom complet\" d'un utilisateur. On aurait dut utiliser je pense le champ \"géré par\", ca aurait été plus simple pour la suite mais bon, passons.
Mon problème est que le groupe \"Laptop Users\" contient bien plus d'utilisateurs que le groupe \"Laptops\" ne contient d'ordinateurs.
J'ai créé deux variables :
$users = Get-ADGroupMember \"Laptop Users\" | select Name | sort -Property Name
$laptops = Get-ADGroupMember \"Laptops\" | Get-ADComputer -Properties * | select Description | sort -Property Description
Ces deux listes contiennent en partie les mêmes informations, sauf que $users est complète et pas l'autre.
Ce que je cherche à faire c'est comparer chaque ligne de $users, voire si elle existe dans $laptops et si elle n'existe pas, ajouter l'ordinateur dont le champ description est la ligne courante de $users au groupe \"Laptops\". La partie ajout d'un compte à un groupe AD ca va, c'est plutôt la comparaison des deux listes qui me pose problème.
Voilà j'espère que j'ai été compréhensible et merci pour toute aide.

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

Plus d'informations
il y a 16 ans 2 mois #5954 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:remplir un groupe
Salut,
pour comparer et extraire les différences de deux listes tu peux utiliser le cmdlet Compare-Object:
[code:1]
cd $env:temp
@\"
un
deux
trois
quatre
cinq
six
\"@ > pc1.txt

@\"
un
trois
cinq
Sept
\"@ > pc2.txt

$Ancien= gc pc1.txt
$New=gc pc2.txt

#voir:
#http://dmitrysotnikov.wordpress.com/2008/06/06/compare-object-gotcha/
$Max=[Math]::Max($New.count,$Ancien.count)
#On compare des chaînes, on ne précise donc pas de nom
#de propriété pour la comparaison
$Comparaison=Compare-object $new $ancien -includeequal -Sync $Max
$Comparaison

$Egaux =@()
$Inexistants =@()
$Nouveaux =@()

foreach ($Item in $Comparaison)
{
switch ($Item.SideIndicator)
{
'==' {$Egaux +=$item}
'<=' {$Inexistants +=$item}
'=>' {$Nouveaux +=$item}
}
}

$ancien
$new

Write-host \"Egaux :\" -f Green
$Egaux

Write-host \"Nouveaux :\" -f Green
$Nouveaux

Write-host \"Inexistants :\" -f Green
$Inexistants
[/code:1]
A noter que l'usage d'un arraylist peut améliorer les performances si la liste est conséquente.

Tutoriels PowerShell

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

Plus d'informations
il y a 16 ans 2 mois #5955 par Morand
Réponse de Morand sur le sujet Re:remplir un groupe
Ah cool, merci je vais regarder ça de plus près!

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

Plus d'informations
il y a 16 ans 2 mois #5956 par Morand
Réponse de Morand sur le sujet Re:remplir un groupe
Oh je n'avais pas vu le petit lien en bas \&quot;comparing group membership between different groups\&quot;, bien util, par contre il faut avoir le Quest cmdlet, que je vais m'empresser d'installer.<br><br>Message édité par: Sim, à: 15/01/10 13:07

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

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