Question AD OU Keep tree order

Plus d'informations
il y a 11 ans 5 mois #18556 par Dela
Réponse de Dela sur le sujet Re:AD OU Keep tree order
Ca me fout la \"*****\" de creer le tableau dans la premiere itération !!

je Bug!!!

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

Plus d'informations
il y a 11 ans 5 mois #18557 par Dela
Réponse de Dela sur le sujet Re:AD OU Keep tree order
Bon le tableau dans la premiere itération n'est pas une bonne idée !

Je devrais peut etre creer un tableau ! créer deux itérations indépendantes mais je garderai bien cette config là qui me donne le résultat demandé !

je vais donc m'orienter sur l'ajout de la propriété level en plus dans le tableau !

j'ai juste un petit souci à ce niveau peut être pourriez-vous m'indiquer vers quoi me situer !!


j'essaie de faire un \"IS IN\" mai je n'y arrive pas !!

cad : Je créé une variable de \"référence\" avec mon GET-ADOU -searchlevel 1

Elle contient contient donc les infos de tte les OU du premier niveau de l'arbre !

QD j'interroge cette variable en faisant $var.distinguishedname

j'obtiens bien la liste des chemins de mes OUs

Je voudrais donc faire un \"ISIN\" pour faire

if($_.distinguishedname \"isin\" $var.distinguishedname) {action.....
}
traduction ... Pour chaque (foreach$\.distinguishedname qui passe SI IL EST DANS UNE LIGNE DE $var.distinguishedname) on fait qqch ...

Je ne sais pas comment écrire le ISIN. ou alors comment interroger ma variable !

Il est possible que je m’emmêle les pinceaux aussi ;oD

merci ;o)

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

Plus d'informations
il y a 11 ans 5 mois #18558 par Dela
Réponse de Dela sur le sujet Re:AD OU Keep tree order
Peut etre en déclarant ma variable comme un [array]$var

et mon \"isin\" je fais un truc du genre if ($_.distinguishedname -ne $var(*)) {action}

J'ai pas de console PS avec moi pour essayer ;oD mais j'y réfléchis xD



EDIT : du coup je fais un IF et un Elsif et c'est va béné !


Pourvu que ca marche !<br><br>Message édité par: Alexis, à: 8/12/14 19:26

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

Plus d'informations
il y a 11 ans 5 mois #18559 par Philippe
Réponse de Philippe sur le sujet Re:AD OU Keep tree order
salut Alexis

pour l'ordre des champs essai le select sur export-csv ca peut marcher si le nom des membres sont connus :
[code:1]$table | select \&quot;BASE AD\&quot;, Name, TotalUsers, Enabled Disabled, NotSpec | export-csv c:\temp\test.csv
[/code:1]

sinon Laurent a raison si tu connais le nom des membres, tu devrait initialisé ton tableau des le new-object
[code:1]
$obj += New-Object Psobject -Property @{
\&quot;BASE AD\&quot; = \&quot;Lvl1\&quot;
Name = $null
TotalUsers = $null
...
}[/code:1]
et apres ne faire que des $obj.Disabled = $Disabled plutôt que add-member



autre chose :

attention tu fait un add-member avant de faire le new-object dans ton dernier script ca n'aide pas
[code:1] $obj | Add-Member Noteproperty \&quot;BASE AD\&quot; \&quot;Lvl1\&quot;[/code:1]

mais surtout ne te décourage pas

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

Plus d'informations
il y a 11 ans 5 mois #18560 par xyz
Réponse de xyz sur le sujet Re:AD OU Keep tree order
Je te propose une autre approche :
[code:1]
$VerbosePreference='Continue'

$Table =New-Object System.Collections.ArrayList(100)

Function New-RequestInfo{
#objet PS contenant les résultats des requetes
param(
[ValidateNotNull()]
[Parameter(Mandatory=$true,ValueFromPipeline = $true)]
$InputObject,

[Parameter(Position=1,Mandatory=$true)]
[int] $SearchScope
)
process {
$Current = New-Object PSObject -Property @{
'Level'=\&quot;Lvl$SearchScope\&quot;;
'Name'=[string]$InputObject.Name;
'TotalUsers'=$null;
'Enabled'=$null;
'Disabled'=$null;
'NotSpec'=$null;
}
Write-Verbose \&quot;Nom : \&quot;$Current.Name $InputObject.DistinguishedName

$Users=@(Get-ADUser -Filter * -Searchbase $InputObject.DistinguishedName -ResultPageSize 5000 -resultSetSize 5000)

$Current.TotalUsers=$Users.count
$Current.Enabled =($Users | where {$_.Enabled -eq $true} ).count
$Current.Disabled=($Users | where {$_.Enabled -eq $false}).count

$Current.NotSpec=$Current.TotalUsers-$Current.Enabled-$Current.Disabled
Write-Output $Current
}#process
}#New-RequestInfo

Function Get-ADOrganizationalUnitByLevel {
Param(
[ValidateNotNull()]
[Parameter(Mandatory=$true,ValueFromPipeline = $true)]
[Alias('DistinguishedName')]
[Alias('Name')]
[string] $SearchBase,

[Parameter(Mandatory=$true)]
[int] $SearchScope
)
process {
Get-ADOrganizationalUnit -filter * -SearchBase $SearchBase -SearchScope $SearchScope |
Where {$_.name -ne 'Utilisateurs' -and $_.name -ne 'Groupes'} |
New-RequestInfo -SearchScope $SearchScope
}#process
}#Get-ADOrganizationalUnitByLevel


$OU_Level1 = Get-ADOrganizationalUnitByLevel -SearchBase \&quot;OU=Utilisateurs_Groupes;OU=MONAD,dc=MONDOMAIN,dc=com\&quot; -SearchScope 1
$OU_Level2 = $OU_Level1|Get-ADOrganizationalUnitByLevel -SearchScope 2

@($OU_Level1;$OU_Level2) |
Export-csv c:\temp\test.csv
[/code:1]
A tester !
Dans ta dernière construction, je ne vois trop comment tu peux ajouter le niveau...
Comme tu le constates, je n'ai pas codé de trace, ni de gestion d'erreur.

Je n'ai pas trop compris l'objectif du 'IsIn' :-/<br><br>Message édité par: Laurent Dardenne, à: 8/12/14 20:42

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 5 mois #18561 par Dela
Réponse de Dela sur le sujet Re:AD OU Keep tree order
Heu merci !

je suis en train de m'installer un SRV2012 à la maison pour essayer !

Autant creer des fonctions forcement .... ;oD

Le ISIN m'aurait permis de checker si l'OU que je testais etait contenu dans la variable $OULVL1 alors j'ajoutais le champ lvl à ce moment là ! pour les autres noms ce qui m'aurait permis de savoir quelle etait l'ou Mère .... pas la meilleur solution o)


Plus qu'à creer un arbo similaire et des users et je peux tester !!

merci je vais regarder et surement te demander des précisions sur les fonctions pour etre certain de bien comprendre.

bonne soirée ! ;) et un grand merci !! retour demain ou tout à l'heure !

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

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