2010-02-11 3 views
1

J'ai écrit un peu de code qui inspecte la métabase iis pour voir quels sites sont installés et où leurs répertoires virtuels sont conservés. Ce code fonctionne correctement lorsqu'il est exécuté localement sur le serveur. J'essaie de l'étendre pour qu'il fonctionne à distance. La chose avec laquelle je me bats pour l'authentifier. J'utilise actuellement la LogonUser api, mais cela renvoie toujours faux sur l'ouverture de sessionConnexion à la métabase IIS sur un serveur 2008 distant

  • Je sais que les pouvoirs que j'ai sont bons
  • Je n'ai pas un pare-feu entre moi et le serveur
  • Si je exécutez l'application avec sur l'appel API LogonUser et runas utilisateur à partir de la ligne de commande je reçois l'erreur: COMException (0x80005000)

Toutes les pensées seraient appréciés.

+1

Utilisez-vous WMI, System.DirectoryServices? – Kev

+0

@Kev, oui j'utilise les services WMI et Directory. – ilivewithian

Répondre

0

Normalement, si vous effectuez une administration par programme sur un serveur distant, vous transmettez les informations d'identification à l'API. Par exemple si vous utilisez System.DirectoryServices alors vous feriez:

string server = "MyHost"; 
string username = "bob"; 
string password = "bob123$"; 
string path = "IIS://" + server + "/W3SVC/1"; 

DirectoryEntry de = new DirectoryEntry(path, username, password); 
+0

J'ai aussi essayé, mais sans succès. J'ai fatigué le nom d'utilisateur en tant que «nom d'utilisateur» et «nom de serveur \ nom d'utilisateur». Est-ce que cela fait une différence que le serveur n'est pas sur un domaine? – ilivewithian

+1

@ilivewithian - J'ai essayé cela sur un serveur qui n'est pas dans un domaine de mon PC de développement. Votre compte utilisateur distant dispose-t-il des droits et privilèges appropriés? – Kev

+0

J'utilise l'utilisateur Admin local, donc il devrait avoir les droits corrects. J'ai réussi à obtenir un identifiant en utilisant l'API de LogonUser. J'espérais que travailler avec cela via imersonation aiderait, mais j'ai la même erreur. Je suppose qu'il doit y avoir quelque chose d'autre dans le serveur 2008 qui est verrouillé que je n'ai pas encore trouvé. – ilivewithian

Questions connexes