Question
[Résolu] AD: Supprimer valeurs d'un résultat
- Allkor
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 9 ans 1 semaine #23310
par Allkor
[Résolu] AD: Supprimer valeurs d'un résultat a été créé 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
[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.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 9 ans 1 semaine #23312
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:supprimer valeurs d'un résultat
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
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.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 2 jours #23346
par Philippe
Réponse de Philippe sur le sujet Re:supprimer valeurs d'un résultat
salut Allkor76
[code:1]$ou = ((Get-ADComputer -Identity ComputerName -Properties CanonicalName).CanonicalName -split '/')[-2]
$ou
# donne ComputerOU
[/code:1]
l'operation est facilité en utilisant CanonicalNameJe voudrais au final n'obtenir que l'OU de l'ordinateur \"ComputerOU\" pour m'en servir en variable.
[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.
- Allkor
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
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 = \"ComputerName\", Mandatory = $true, ValueFromPipeline = $true, Position = 0)]
$ComputerName,
[parameter(ParameterSetName = \"ThisComputer\"«»)]
[switch]$ThisComputer,
[switch]$ValueOnly
)
begin
{
$rootDse = New-Object System.DirectoryServices.DirectoryEntry(\"LDAP://RootDSE\"«»)
$Domain = $rootDse.DefaultNamingContext
$root = New-Object System.DirectoryServices.DirectoryEntry(\"LDAP://$Domain\"«»)
}
process
{
if ($PSCmdlet.ParameterSetName -ne \"ComputerName\"«»)
{
$ComputerName = $env:COMPUTERNAME
}
$searcher = New-Object System.DirectoryServices.DirectorySearcher($root)
$searcher.Filter = \"(&(objectClass=computer)(name=$ComputerName))\"
[System.DirectoryServices.SearchResult]$result = $searcher.FindOne()
if (!$?)
{
return
}
$dn = $result.Properties[\"distinguishedName\"]
$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
Au final j'ai réussis avec vos informations à me débrouiller, voici ce que donne mon script :
[code:1]param
(
[parameter(ParameterSetName = \"ComputerName\", Mandatory = $true, ValueFromPipeline = $true, Position = 0)]
$ComputerName,
[parameter(ParameterSetName = \"ThisComputer\"«»)]
[switch]$ThisComputer,
[switch]$ValueOnly
)
begin
{
$rootDse = New-Object System.DirectoryServices.DirectoryEntry(\"LDAP://RootDSE\"«»)
$Domain = $rootDse.DefaultNamingContext
$root = New-Object System.DirectoryServices.DirectoryEntry(\"LDAP://$Domain\"«»)
}
process
{
if ($PSCmdlet.ParameterSetName -ne \"ComputerName\"«»)
{
$ComputerName = $env:COMPUTERNAME
}
$searcher = New-Object System.DirectoryServices.DirectorySearcher($root)
$searcher.Filter = \"(&(objectClass=computer)(name=$ComputerName))\"
[System.DirectoryServices.SearchResult]$result = $searcher.FindOne()
if (!$?)
{
return
}
$dn = $result.Properties[\"distinguishedName\"]
$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.053 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] AD: Supprimer valeurs d'un résultat