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.
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 –