【发布时间】:2017-05-10 01:30:27
【问题描述】:
目标:
我定期通过 FTP 将新的 .exe 文件上传到 Windows Server 2003,我想通过点击同一服务器上网站的 Url 手动运行它。 exe 需要在管理员帐户下运行,而不是NETWORK SERVICE 帐户。
我目前取得的成就: 我已经能够通过 Web 请求在服务器上的 Admin 帐户下成功运行诸如记事本之类的应用程序,方法是使用以下任何一种:
- PsExec,
-
.net process.Start()提供给process.StartInfo的凭据,甚至 - 通过模拟管理员然后使用 process.Start 没有凭据 (http://www.f4cio.com/programmatically-impersonate-in-csharp)
问题:
上述方法运行我的 exe,但任务管理器或对 System.Security.Principal.WindowsIdentity.GetCurrent().Name 的调用显示它在 NETWORK SERVICE 下运行。
我怀疑这个文件添加了安全限制,因为它来自 ftp 链接。在文件属性中检查 run-as-administrator 不是一个选项,因为文件将被定期替换并且所有内容都需要自动化。此外,手动服务器配置应该是最少的或理想情况下不存在。纯代码单网页解决方案是理想的。编辑该 asp.net 网页和 exe 都可以。 (我尝试了一些 exe 自重启)。
【问题讨论】:
标签: c# security ftp impersonation runas