目标:
我定期通过FTP将新的.exe文件上传到Windows Server 2003,我想通过点击同一服务器上的网站的Url手动运行它。 Exe需要在管理员帐户下运行,而不是NETWORK SERVICE
帐户。
到目前为止我取得的成就: 我已经能够通过Web请求在服务器上的Admin帐户下成功运行notepad等应用程序,使用以下任何一个:
.net process.Start()
凭据提供给process.StartInfo
甚至 问题:
上面的方法运行我的exe但是任务管理器,或者对System.Security.Principal.WindowsIdentity.GetCurrent().Name
的调用显示它在NETWORK SERVICE
下运行。
我怀疑这个文件增加了安全性限制因为它来自ftp链接。检查文件属性中的run-as-administrator不是一个选项,因为文件将定期更换,所有文件都需要自动化。手动服务器配置也应该是最小的或理想情况下不存在。仅限代码的单网页解决方案非常理想。编辑asp.net网页和exe都可以。 (我尝试过自我重启的东西)。
答案 0 :(得分:0)
对此不确定,但我怀疑这与您在NETWORK SERVICE
用户下运行的网站有关。无论您的网站用户拥有什么权限,当您尝试运行可执行文件时,可能会授予/传递相同的权限。
此服务器是在内部网络上还是以其他方式受到保护? (我希望如此!)。如果是这样,您可以尝试将运行该网站的App Pool更改为管理员帐户(在IIS中,右键单击运行该站点的App Pool,选择Advanced Settings,然后查找 Identity 设置) 。如果我没错,那么您也可以以管理员身份运行可执行文件。
请注意,这可能会增加设置的安全风险:允许您的网站在管理员帐户下运行,这意味着如果有人能够渗透到任何安全措施,则可以更轻松地访问整个服务器你有位置。确保对此服务器的访问受到严格限制,并且最好是它无法访问其他系统,因为这反过来会使它们受到扩展的攻击。</ p>