Question [Résolu] AD: Supprimer valeurs d'un résultat

Plus d'informations
il y a 9 ans 1 semaine #23310 par Allkor
Bonjour, je cherche à récupérer l'OU d'un ordinateur par la commande :

[code:1]Get-ADComputer -Identity ComputerName -Properties * | FT DistinguishedName -Autosize
[/code:1]
Ce qui me donne le résultat :

[code:1]DistinguishedName
CN=ComputerCN,OU=ComputerOU,DC=ComputerDC1,DC=ComputerDC2[/code:1]

Je voudrais au final n'obtenir que l'OU de l'ordinateur \"ComputerOU\" pour m'en servir en variable.

Si une personne à une solution à cela je suis prenneur :)

Bien à vous.
Allkor

Message édité par: Arnaud, à: 15/03/17 10:32<br><br>Message édité par: Arnaud, à: 21/03/17 16:42

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

Plus d'informations
il y a 9 ans 1 semaine #23312 par Arnaud Petitjean
Salut Alkor,

Essaie :

[code:1]$computer = Get-ADComputer -Identity ComputerName
$computer.DistinguishedName [/code:1]

ou directement :

[code:1](Get-ADComputer -Identity ComputerName).DistinguishedName [/code:1]


Ensuite il s'agit d'une simple extraction de chaine.

Goldorak

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 9 ans 2 jours #23346 par Philippe
salut Allkor76

Je voudrais au final n'obtenir que l'OU de l'ordinateur \&quot;ComputerOU\&quot; pour m'en servir en variable.

l'operation est facilité en utilisant CanonicalName

[code:1]$ou = ((Get-ADComputer -Identity ComputerName -Properties CanonicalName).CanonicalName -split '/')[-2]
$ou
# donne ComputerOU
[/code:1]

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

Plus d'informations
il y a 9 ans 2 jours #23347 par Allkor
Réponse de Allkor sur le sujet Re:supprimer valeurs d'un résultat
Merci pour les réponses :)

Au final j'ai réussis avec vos informations à me débrouiller, voici ce que donne mon script :
[code:1]param
(
[parameter(ParameterSetName = \&quot;ComputerName\&quot;, Mandatory = $true, ValueFromPipeline = $true, Position = 0)]
$ComputerName,
[parameter(ParameterSetName = \&quot;ThisComputer\&quot;«»)]
[switch]$ThisComputer,
[switch]$ValueOnly
)

begin
{
$rootDse = New-Object System.DirectoryServices.DirectoryEntry(\&quot;LDAP://RootDSE\&quot;«»)
$Domain = $rootDse.DefaultNamingContext
$root = New-Object System.DirectoryServices.DirectoryEntry(\&quot;LDAP://$Domain\&quot;«»)
}

process
{
if ($PSCmdlet.ParameterSetName -ne \&quot;ComputerName\&quot;«»)
{
$ComputerName = $env:COMPUTERNAME
}

$searcher = New-Object System.DirectoryServices.DirectorySearcher($root)
$searcher.Filter = \&quot;(&amp;(objectClass=computer)(name=$ComputerName))\&quot;
[System.DirectoryServices.SearchResult]$result = $searcher.FindOne()
if (!$?)
{
return
}
$dn = $result.Properties[\&quot;distinguishedName\&quot;]
$ouResult = $dn.Substring($ComputerName.Length + 4)

$ouResult = $ouResult.split(',')[2]
$ouResult = $ouResult.Substring($ouResult.Length-7,7)
$ouResult
[/code:1]<br><br>Message édité par: Allkor76, à: 20/03/17 16:51

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

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