ERREUR : La valeur fournie pour adsObject n'implémente pas les IAD.
Bonjour à tous,
Je rencontre des difficultés lors de l'exécution de se script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $account = "test34"
$Searcher = New-Object DirectoryServices.DirectorySearcher
$Searcher.Filter = '(&(objectCategory=person)(sAMAccountName='+$account+'))'
$Searcher.SearchRoot = "LDAP://OU=_USERS,DC=DOMAINE,DC=dom"
[string]$Info = $Searcher.FindOne() | select Path
#On ne conserve que la partie LDAP...jusqu'à net
$separator = "@{Path=","}" #termes à supprimer
$option = [System.StringSplitOptions]::RemoveEmptyEntries #cette option supprime les espaces
$User = $Info.Split($separator,$option) # $$User récupère le chemin souhaité
#Fin de la récupération
$ModifHome= [adsi]($User)
$ModifHome.homeDrive.Clear()
$ModifHome.homedirectory.Clear()
$ModifHome.CommitChanges() |
Voici les erreurs remontées :
Citation:
Impossible de convertir la valeur «*System.String[]*» en type «*System.DirectoryServices.DirectoryEntry*». Erreur*: «*La valeur fournie pour adsObject n'implémente pas les IAD.*»
Au niveau de C:\00_test.ps1*: 11 Caractère*: 26
+ $ModifHome= [adsi]($User <<<< )
+ CategoryInfo : NotSpecified: (:) [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException
Vous ne pouvez pas appeler de méthode sur une expression ayant la valeur Null.
Au niveau de C:\00_test.ps1*: 12 Caractère*: 28
+ $ModifHome.homeDrive.Clear <<<< ()
+ CategoryInfo : InvalidOperation: (Clear:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Vous ne pouvez pas appeler de méthode sur une expression ayant la valeur Null.
Au niveau de C:\00_test.ps1*: 13 Caractère*: 35
+ $ModifHome.homedirectory.Clear <<<< ()
+ CategoryInfo : InvalidOperation: (Clear:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Vous ne pouvez pas appeler de méthode sur une expression ayant la valeur Null.
Au niveau de C:\00_test.ps1*: 14 Caractère*: 26
+ $ModifHome.CommitChanges <<<< ()
+ CategoryInfo : InvalidOperation: (CommitChanges:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Alors que, si je modifie mon script comme ceci, cela fonctionne
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $account = "test34"
$Searcher = New-Object DirectoryServices.DirectorySearcher
$Searcher.Filter = '(&(objectCategory=person)(sAMAccountName='+$account+'))'
$Searcher.SearchRoot = "LDAP://OU=_USERS,DC=DOMAINE,DC=dom"
[string]$Info = $Searcher.FindOne() | select Path
#On ne conserve que la partie LDAP...jusqu'à net
$separator = "@{Path=LDAP://","}","DC=dom" #termes à supprimer
$option = [System.StringSplitOptions]::RemoveEmptyEntries #cette option supprime les espaces
$User = $Info.Split($separator,$option) # $$User récupère le chemin souhaité
#Fin de la récupération
$ModifHome= [adsi]('LDAP://'+$User+'DC=com')
$ModifHome.homeDrive.Clear()
$ModifHome.homedirectory.Clear()
$ModifHome.CommitChanges() |
Modification sur la ligne 7 et 11.
Merci de votre aide.
[RESOLU] ERREUR : La valeur fournie pour adsObject n'implémente pas les IAD.
Effectivement,
En plaçant [string] devant $users (Ligne 9) cela fonctionne.
Merci pour ton info.
Bonne journée.:mrgreen: