Aller au contenu

Utilisateur:David Latapie/differ

Une page de Wikipédia, l'encyclopédie libre.

<# charge le module Quest.ActiveRoles.ADManagement ____________________________________________________________________________ Ce module éttend les fonctions de recherche sur les objets de l'ActiveDirectory ____________________________________________________________________________

  1. >

Add-PSSnapin -ErrorAction SilentlyContinue -Name Quest.ActiveRoles.ADManagement <#____________________________________________________________________________

 FONCTIONS
 déclaration de la fonction ListMemberGroup
   LA FONCTION LISTE LES MEMBRES DU GROUPE EN LECTURE ET EXPORTE DANS LE FICHIER GFLD_R.csv LogonName, Name, FirstName, LastName, le Group, le chemin de la ressource
   et le dernier caractère du nom du groupe
  1. >

Function ListMemberGroup ([String] $groupe)

   {
      Get-QADGroupMember -Identity $groupe | select LogonName, Name, FirstName, LastName,@{n="Group";e={$groupe}},@{n="Source";e={$source}},@{n="droit";e={$groupe.SubString($groupe.Length-1)}} >> $test
      }
 

<#_____________________________________________________________________________ déclaration de la fonction RecurseUsersInGroup

  1. >

Function RecurseUsersInGroup {

   Param ([string]$object = "", [int]$level = 0)
   $indent = "-" * $level

   $x = Get-QADObject -Identity $object -Properties SamAccountName

   if ($x.ObjectClass -eq "group") #si 
    {
       Write-Host "$indent# $($x.SamAccountName)"

       $y = Get-QADGroup -Identity $object -Properties Members

       $y.Members | %{
           $o = Get-QADObject -Identity $_ -Properties SamAccountName

           if ($o.ObjectClass -eq "user") {
               Write-Host "$indent-> $($o.SamAccountName)"
           } elseif ($o.ObjectClass -eq "group") {
               RecurseUsersInGroup $o.DistinguishedName ($level + 1)
           }
       }
   } else {
       Write-Host "$($object) is not a group, it is a $($x.ObjectClass)"
   }

}


<# VARIABLES

_____________________________________________________________________________
#>

$test = $fictemp+"\membres.csv" $acl1 = $fictemp+"\acl.csv" $acl2 = $fictemp+"\acl2.csv" $sources = "p:\dsi\commun"

$id = "\\appsef\habilitation\depot\reconciliation\id_traitement.csv" <#TEST DE LA PRESENCE DU REPERTOIRE TEMP DANS L'ENVIRONNEMENT DE TRAVAIL TEMPORAIRE

  1. >

h: $t = [Environment]::GetEnvironmentVariable("Tmp", "User") $fictemp = "$t\temp" $testtemp = (Test-Path $fictemp) if ($testtemp -like "false") {new-item -itemtype directory $fictemp} else { <#

   remise à jour du répertoire temporaire
  1. >

remove-item -force -Recurse $fictemp new-item -itemtype directory $fictemp }

  1. début des opérations

$var1 = (get-acl $sources | select -expand access | select IdentityReference |where {$_.IdentityReference -like "AD-ITS*"}) $groupe = ($var1 | ForEach-Object { $_.IdentityReference.ToString().Replace('AD-ITS\', ' ')})


<# ____________________________________________________________________________________________________________________________________________________________________

  ____________________________________________________________________________________________________________________________________________________________________
   création de fonction
   LA FONCTION LISTE LES MEMBRES DU GROUPE EN LECTURE ET EXPORTE DANS LE FICHIER GFLD_R.csv LogonName, Name, FirstName, LastName, le Group, le chemin de la ressource
   et le dernier caractère du nom du groupe
  1. >

Function ListMemberGroup ([String] $groupe)

   { 
   
          Get-QADGroupMember -Identity $groupe | ForEach-Object{
               if ($_.type -eq "group"){
                   ListMemberGroup ($_.name)
               }
           
               if ($_.type -eq "user"){
                   Write-Host "user $($_.name) ajouté dans le fichier"}
                   #select LogonName, Name, FirstName, LastName,@{n="Group";e={$groupe}},@{n="Source";e={$source}},@{n="droit";e={$groupe.SubString($groupe.Length-1)}} | export-csv -Force -path $file1
               }
      }
  1. test : user ou group

$groupe | %{

   $var1 = Get-QADGroup $_

if ($var1.type -eq "group")

                               {ListMemberGroup $var1.name}

else

                               {Write-Host "c'est un user donc ajouté dans le fichier"}

}