Question
ADSI : marche au prompt, pas en script
- Patrick Berthon
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 100
- Remerciements reçus 0
il y a 15 ans 2 mois #5012
par Patrick Berthon
ADSI : marche au prompt, pas en script a été créé par Patrick Berthon
Bonjour,
un petit problème :
[code:1]
function Get-AD($qry) {
$MyBase = New-Object -typeName System.DirectoryServices.DirectoryEntry(\"LDAP://$(Get-NetBiosDomainName)\"«»)
New-Object System.DirectoryServices.DirectorySearcher -ArgumentList $MyBase, $qry
}
function Get-ADUser($cn) {
$user = Get-AD -qry \"(&(objectClass=user)(cn=$cn))\"
$user.FindOne()
}
function Get-ADUser2($cn) {
$user = Get-ADUser -cn $cn
$user2 = [ADSI]$($user.Path)
$user2
}
[/code:1]
si je fais une fonction qui contient ce code (sachant que les utilisateurs existent déjà, ne vous fiez pas au nom de la variable $nouveau):
[code:1]
$nouveaux | Foreach-Object {
$login = Get-LoginName -ldap_user $_
$u = Get-ADUser2 -cn $login
$u.Put(\"Description\", $_.gecos)
$u.Put(\"mail\", $_.mail)
$u.SetInfo()
[/code:1]
ça me renvoie ça :
Exception calling \"Put\" with \"2\" argument(s): \"Exception from HRESULT: 0x80005008\"
At C:\Temp\CreeComptes.ps1:228 char:10
+ $u.Put <<<< (\"Description\", $_.gecos)
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
Exception calling \"Put\" with \"2\" argument(s): \"Exception from HRESULT: 0x80005008\"
At C:\Temp\CreeComptes.ps1:229 char:10
+ $u.Put <<<< (\"mail\", $_.mail)
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
alors que si je le fais au prompt (en prenant un utilisateur au hasard dans ma console de gestion des comptes), ça marche !
quelqu'un à une idée ?
merci
<br><br>Message édité par: Zylwee, à: 2/08/09 09:36
un petit problème :
[code:1]
function Get-AD($qry) {
$MyBase = New-Object -typeName System.DirectoryServices.DirectoryEntry(\"LDAP://$(Get-NetBiosDomainName)\"«»)
New-Object System.DirectoryServices.DirectorySearcher -ArgumentList $MyBase, $qry
}
function Get-ADUser($cn) {
$user = Get-AD -qry \"(&(objectClass=user)(cn=$cn))\"
$user.FindOne()
}
function Get-ADUser2($cn) {
$user = Get-ADUser -cn $cn
$user2 = [ADSI]$($user.Path)
$user2
}
[/code:1]
si je fais une fonction qui contient ce code (sachant que les utilisateurs existent déjà, ne vous fiez pas au nom de la variable $nouveau):
[code:1]
$nouveaux | Foreach-Object {
$login = Get-LoginName -ldap_user $_
$u = Get-ADUser2 -cn $login
$u.Put(\"Description\", $_.gecos)
$u.Put(\"mail\", $_.mail)
$u.SetInfo()
[/code:1]
ça me renvoie ça :
Exception calling \"Put\" with \"2\" argument(s): \"Exception from HRESULT: 0x80005008\"
At C:\Temp\CreeComptes.ps1:228 char:10
+ $u.Put <<<< (\"Description\", $_.gecos)
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
Exception calling \"Put\" with \"2\" argument(s): \"Exception from HRESULT: 0x80005008\"
At C:\Temp\CreeComptes.ps1:229 char:10
+ $u.Put <<<< (\"mail\", $_.mail)
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
alors que si je le fais au prompt (en prenant un utilisateur au hasard dans ma console de gestion des comptes), ça marche !
quelqu'un à une idée ?
merci
La pièce jointe CreeComptes___Copie.ps1 est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 15 ans 1 mois #5058
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:ADSI : marche au prompt, pas en script
Zylwee écrit:
Ensuite d'utiliser le script Resolve-Error( dispo sur le blog de MS-PowerShell) puis de lier le résultat de son exécution, suite à cette erreur, serait fort appréciable pour ceux et celles qui souhaiterait t'aider.
Voir aussi, certains, codes d'erreur ADSI .
Je ne pense pas qu'on puisse appeler cela une idée mais vérifie avec Write-Debug si l'objet courant dans le pipeline est bien renseigné.quelqu'un à une idée ?
Ensuite d'utiliser le script Resolve-Error( dispo sur le blog de MS-PowerShell) puis de lier le résultat de son exécution, suite à cette erreur, serait fort appréciable pour ceux et celles qui souhaiterait t'aider.
Voir aussi, certains, codes d'erreur ADSI .
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Patrick Berthon
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 100
- Remerciements reçus 0
il y a 15 ans 1 mois #5097
par Patrick Berthon
Réponse de Patrick Berthon sur le sujet Re:ADSI : marche au prompt, pas en script
bonjour,
merci pour les pistes, je suis en vacances, et comme c'est urgent, j'utiliserai les commandes dsadd en attendant de trouver le pourquoi du comment quand je retournerai au boulot.
je vous tiendrai au courant.
merci.
merci pour les pistes, je suis en vacances, et comme c'est urgent, j'utiliserai les commandes dsadd en attendant de trouver le pourquoi du comment quand je retournerai au boulot.
je vous tiendrai au courant.
merci.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.099 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- ADSI : marche au prompt, pas en script