Question Conversion VBS Powershell (Resolu)
- Berfini
- Auteur du sujet
- Hors Ligne
- Membre premium
-
- Messages : 86
- Remerciements reçus 0
Et meme avec l'aide de microsoft qui propose les fonctions equivalentes, sa ne marche pas.
La fonction refuse ma variable qui est pourtant bien une chaine de caracteres.
Merci a celui ou celle qui prendra le temps de regarder mon probleme.
Exemple de code qui plante :
VBS Initial :
Function getDN(saMAccountName)
Dim nRoot, basedn, objConnection2, objCommand2, objRecordSet2
Set nRoot = GetObject(\"LDAP://rootDSE\")
' genere automatiquement le chemin dc=************, dc=****, dc=***
' ou dc=*********, dc=*****, dc=***
basedn = nRoot.Get(\"defaultNamingContext\")
set nRoot = Nothing
Set objConnection2 = CreateObject(\"ADODB.Connection\")
objConnection2.Open \"Provider=ADsDSOObject;\"
Set objCommand2 = CreateObject(\"ADODB.Command\")
objCommand2.ActiveConnection = objConnection2
objCommand2.CommandText = \"<LDAP://\" & basedn & \">;(saMAccountName=\" & saMAccountName & \");distinguishedname;subtree\"
Set objRecordSet2 = objCommand2.Execute
If objRecordset2.RecordCount = 0 Then
getDN = \"\"
Else
getDN = objRecordSet2(0)
End If
objConnection2.Close
End function
Convertion Powershell :
Function getDN([string] $saMAccountName)
{
[reflection.assembly]::LoadWithPartialName(\"microsoft.visualbasic\")
$nRoot = [microsoft.visualbasic.interaction]::GetObject(\"LDAP://rootDSE\")
$basedn = $nRoot.Get(\"defaultNamingContext\") # probleme
$nRoot = $null
$objConnection2 = new-object -comobject \"ADODB.Connection\"
$objConnection2.Provider = \"ADsDSOObject\"
$objConnection2.Open
$objCommand2 = new-object -comobject \"ADODB.Command\"
$objCommand2.ActiveConnection = $objConnection2
$objCommand2.CommandText = \"<LDAP://\" + $basedn + \">;(saMAccountName=\" + $saMAccountName + \");distinguishedname;subtree\"
$objRecordSet2 = $objCommand2.Execute
if ($objRecordset2.RecordCount -eq 0)
{
return \"\"
}
else
{
return $objRecordSet2
}
$objConnection2.Close
}
Je joint egalement tout mon fichier ps1 car ce probleme se repete plusieurs fois

La pièce jointe Fonctions_EspaceUtilisateur.ps1 est absente ou indisponible
Message édité par: Gaby, à: 5/07/07 14:52<br><br>Message édité par: Gaby, à: 16/07/07 13:05
Gaby
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
- Messages : 576
- Remerciements reçus 0
L'objet que tu cherches est directement accessible en ADSI:
[code:1]$nRoot = [ADSI]\"LDAP://RootDSE\"
$basedn = $nRoot.Get(\"defaultNamingContext\"«»)[/code:1]
Au passage, tu pourras retirer le chargement de la bibliothèque Microsoft.VisualBasic devenue totalement inutile.
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Berfini
- Auteur du sujet
- Hors Ligne
- Membre premium
-
- Messages : 86
- Remerciements reçus 0
Gaby
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Conversion VBS Powershell (Resolu)