2010-08-27 11 views
0

Nous avons une application CMS qui permettait d'exécuter toutes les commandes dans un fichier de commandes; Cependant, il a échoué la semaine dernière.IIS ne peut pas exécuter la commande "net use" dans un fichier de commandes

Pour les tests, nous avons modifié le contenu dans le fichier batch comme celui-ci:

echo starting > c:\log.txt 
whoami >> c:\log.txt 
net use Z:\ \\192.168.2.123\share\ password /user:userWithAdminRightsInTarget  
copy c:\aTestFile.txt Z:\Success.txt 
net use Z:/DELETE 

Disons que ComputerSource est l'ordinateur sur lequel IIS héberge le site Web CMS et où le fichier batch réside, et ComputerTarget est le ordinateur où je veux copier les fichiers.

Si j'exécute le fichier de commandes manuellement en double-cliquant dessus, toutes les commandes sont exécutées avec succès; le résultat de whoami dans c: \ log.txt affiche le compte utilisateur connecté au serveur et le fichier est copié avec succès. Cependant, si j'exécute le fichier de commandes à partir du site Web du CMS, il exécute la première ligne "echo starting> c: \ log.txt" mais échoue ensuite.

Les deux commuters font partie d'un domaine Nous avons testé l'application en utilisant différents noms de domaines, même des comptes d'administrateurs de domaines. Nous avons utilisé l'usurpation d'identité sur le site Web (indiqué dans le fichier web.config du site Web cms) ainsi que l'utilisation de comptes d'administrateur de domaine dans la sécurité de répertoire IIS. Le résultat de la commande whoami lorsque le fichier de commandes est exécuté à partir du site Web est nt/service réseau. Nous avons pratiquement essayé presque n'importe quoi.

Nous apprécierons vraiment pour toutes les idées et l'aide que tout le monde peut fournir.

Merci.

Répondre

1

Vous devez modifier l'identité de l'utilisateur associée au pool d'applications de ce site Web particulier à un compte disposant de ces autorisations. Fondamentalement, le même compte que vous empruntez dans web.config doit également être spécifié en tant qu'identité en cours d'exécution du pool d'applications du site.

+0

Directement sur place. J'ai été en mesure d'exécuter le fichier de commandes à partir d'IIS après la création d'un nouveau pool d'applications avec des informations d'identification de domaine. La seule chose étrange qui subsiste maintenant est que le programme est exécuté même en utilisant le service nt/network ... Le service réseau s'exécute comme \ $ - où le compte machine est donné lorsque l'ordinateur rejoint le domaine. En utilisant ce compte, l'ordinateur devrait pouvoir se connecter à des partages d'autres serveurs, à moins que quelque chose ne se passe vraiment mal sur ce compte d'ordinateur ou qu'une politique bloque ceci - cela ressemble à ce que nous vivons. Merci beaucoup –

0

Ou peut-être appeler le fichier batch avec une commande Runas afin que vous puissiez spécifier l'utilisateur qu'il va emprunter l'identité?

Questions connexes