2009-04-17 4 views
0

J'ai demandé à mon script d'interroger Active Directory pour fonctionner lorsqu'il est appelé à partir des fenêtres de commande, mais cela ne fonctionnera pas sur ma page ASP. Au lieu de echo("message") dans le fichier VBS, j'ai utilisé Response.Redirect(message) dans mon ASP. Donc, voici le code qui fonctionne bien dans la fenêtre CMD, mais pas dans IE. Quoi qu'il en soit, j'espère que quelqu'un peut aider.Pourquoi est-ce que mon fichier de script VBS ne fonctionne pas lorsqu'il est copié sur ma page ASP?

Option Explicit 

Dim objRootDSE, strDNSDomain, objCommand, objConnection 
Dim strQuery, strBase, strFilter, strAttributes 
Dim objRecordSet, strAlias, strName, strSAM 
Dim blnFlag 

''// Use ADO to search Active Directory. 
Set objCommand = CreateObject("ADODB.Command") 
Set objConnection = CreateObject("ADODB.Connection") 
objConnection.Provider = "ADsDSOObject" 
objConnection.Open "Active Directory Provider" 
objCommand.ActiveConnection = objConnection 

''// Set AD query propeties 
strBase = "<LDAP://10.10.10.10>" 
strFilter = "(&(objectCategory=person)(objectClass=user)(cn="gossmari")" 
strAttributes = "displayName,mailNickname,sAMAccountName" 

''// AD query 
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree" 
objCommand.CommandText = strQuery 
objCommand.Properties("Page Size") = 100 
objCommand.Properties("Cache Results") = False 
Set objRecordSet = objCommand.Execute 

    Do Until objRecordSet.EOF 
     strName = objRecordSet.Fields("displayName") 
     strAlias = objRecordSet.Fields("mailNickname") 
     strSAM = objRecordSet.Fields("sAMAccountName") 
     objRecordSet.MoveNext 
    Loop 

''// Echo the requested information 
''// replaced by Response.Redirect("http://www.google.com/" & strName) 
Wscript.Echo strSAM & " ; " & strAlias & " ; " & strName 

objConnection.Close 

modifier: L'erreur que je continue à recevoir est: Une erreur est survenue sur le serveur lors du traitement de l'URL. Veuillez contacter l'administrateur du système. Si vous êtes l'administrateur système, veuillez cliquer ici pour en savoir plus sur cette erreur.

Mon ordinateur windows vista fonctionne et je commence vraiment à détester

+0

Ce code ne s'exécutera pas non plus en tant que VBS. Vous avez un problème de devis sur la ligne qui commence par strFilter ... Aussi, il est utile avec le message d'erreur que vous obtenez. (Aussi Response.Redirect redirige le navigateur, Response.Write écrit des choses ..) – svinto

Répondre

0

En fait, nous donnant le message d'erreur aiderait.

Si vous utilisez IE dans la boîte, vous ne le verrez pas. Aller à Outils, Options Internet, onglet Avancé et désactiver "Afficher les messages d'erreur HTTP amicaux"

Généralement l'accès à des choses comme le répertoire actif ne fonctionnera pas en raison du contexte de sécurité que l'utilisateur IIS anonyme par défaut s'exécute, donc si vous changez à la sécurité intégrée, vous pourriez aller plus loin.

1

Quelle erreur renvoie-t-elle?

Une cause possible peut être les informations d'identification que la page ASP exécute sous n'ont pas l'autorisation d'interroger Active Directory. S'il s'agit d'une page Web par défaut, il s'agit probablement d'une authentification anonyme, qui se traduit par [LOCALMACHINE] \ IUSR_ [LOCALMACHINE].

Cela expliquerait pourquoi il s'exécute lorsqu'il est exécuté sous vos informations d'identification, mais pas dans le contexte d'IIS.

Questions connexes