Question
AD OU Keep tree order
- Dela
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 47
- Remerciements reçus 0
<br><br>Message édité par: Alexis, à: 9/12/14 10:03Write-Verbose : Impossible de trouver un paramètre positionnel acceptant l'argument « Syndicats ».
Au caractère Ligne:24 : 7
+ Write-Verbose \"Nom : \"$Current.Name $InputObject.DistinguishedName
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : ([Write-Verbose], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.WriteVerboseCommand
Get-ADOrganizationalUnit : Le nom unique (distinguishedName) fourni doit appartenir à l’une des partitions suivantes: «DC=mondomain,DC=com , CN=Configuration,DC=mondomain,DC=com , CN=Schema,CN=Configuration,DC=mondomain,DC=com ,
DC=DomainDnsZones,DC=mondomain,DC=com , DC=ForestDnsZones,DC=mondomain,DC=com».
Au caractère Ligne:49 : 2
+ Get-ADOrganizationalUnit -filter * -SearchBase $SearchBase -SearchScope $Search ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : ([Get-ADOrganizationalUnit], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADOrganizationalUnit
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 69
[code:1]
Write-Verbose \"Nom : $($Current.Name) $($InputObject.DistinguishedName)\"
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Dela
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 47
- Remerciements reçus 0
j'ai cherché a déclarer les variable avant , ca ne change rien !! je comprends pas pkoi il ne prend pas la valeur des variabels en comptes ... du coup le distinguishedname doit etre null ou ne pas faire parti de ma foret ! je cherche !
[code:1]Get-ADOrganizationalUnit : Le nom unique (distinguishedName) fourni doit appartenir à l’une des partitions suivantes: «DC=mondomain,DC=com , CN=Configuration,DC=mondomain,DC=com , CN=Schema,CN=Configuration,DC=mondomain,DC=com ,
DC=DomainDnsZones,DC=mondomain,DC=com , DC=ForestDnsZones,DC=mondomain,DC=com».
Au caractère Ligne:49 : 2
+ Get-ADOrganizationalUnit -filter * -SearchBase $SearchBase -SearchScope $Search ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : (:«») [Get-ADOrganizationalUnit], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:«»System.ArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADOrganizationalUnit[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 69
Désolé je n'avais pas vu, j'ai répondu rapidement.C'est mieux ! on a toujours le meme deuxieme message d'erreur !!
Alexis écrit:
La liaison de paramètre de la fonction Get-ADOrganizationalUnitByLevel est peut-être erronée ?je cherche !
L'object construit dans New-RequestInfo ne porte pas l'info 'distinguishedname' mais 'name'.
Si le premier appel à Get-ADOrganizationalUnitByLevel réussi, je pense que mon erreur est là.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 69
[code:1]
$VerbosePreference='Continue'
Function New-RequestInfo{
#objet PS contenant les résultats des requêtes
param(
[ValidateNotNull()]
[Parameter(Mandatory=$true,ValueFromPipeline = $true)]
$InputObject,
[Parameter(Position=1,Mandatory=$true)]
[int] $SearchScope
)
process {
$Current = New-Object PSObject -Property @{
'Level'=\"Lvl$SearchScope\";
'Name'=[string]$InputObject.Name;
'DistinguishedName'=[string]$InputObject.DistinguishedName;
'TotalUsers'=$null;
'Enabled'=$null;
'Disabled'=$null;
'NotSpec'=$null;
}
Write-Verbose (\"Nom : {0} {1}\" -F $Current.Name,$Current.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')]
[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 \"OU=Utilisateurs_Groupes;OU=MONAD,dc=MONDOMAIN,dc=com\" -SearchScope 1
$OU_Level2 = $OU_Level1|Get-ADOrganizationalUnitByLevel -SearchScope 2
@($OU_Level1;$OU_Level2) |
Export-csv c:\temp\test.csv
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
je suis du même avisLa liaison de paramètre de la fonction Get-ADOrganizationalUnitByLevel est peut-être erronée ?
apres un petit test de ton script j'ai ce message d'erreur, à la ligne du cumul des $OU... :
[code:1]
$OU_Level2 = $OU_Level1 | Get-ADOrganizationalUnitByLevel -SearchBase \"OU=People,DC=domaine,DC=lan\" -SearchScope 2
Get-ADOrganizationalUnitByLevel : L'objet d'entrée ne peut être lié à aucun paramètre de la commande, soit parce que cette commande n'accepte pas l'entrée de pipeline, soit parce que l'entrée e
t ses propriétés ne correspondent à aucun des paramètres qui acceptent l'entrée de pipeline.
Au niveau de C:\temp\test41.ps1 : 62 Caractère : 56
+ $OU_Level2 = $OU_Level1|Get-ADOrganizationalUnitByLevel <<<< -SearchBase \"OU=People,DC=domaine,DC=lan\" -SearchScope 2
+ CategoryInfo : InvalidArgument: (@{Name=OU=Peopl...0; Enabled=537}:«»PSObject) [Get-ADOrganizationalUnitByLevel], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Get-ADOrganizationalUnitByLevel[/code:1]
soit : InvalidArgument: (@{Name=OU=Peopl...0; Enabled=537}: PSObject)
hors tu a fait des alias :
[code:1] [ValidateNotNull()]
[Parameter(Mandatory=$true,ValueFromPipeline = $true)]
[Alias('DistinguishedName')]
[Alias('Name')]
[string] $SearchBase,
[/code:1]
ca devrait fonctionner non ?
jsuis pas bon en pipeline
par contre sur la ligne suivante le count renvoie rien $users est vide ou avec 1 utilisateur :
[code:1]$Current.Disabled = ($Users | where {$_.Enabled -eq $false}).count[/code:1]
ce qui provoque une erreur a l'addition de la ligne suivante ...
enfin sur powershell v2 !!
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- AD OU Keep tree order