【发布时间】:2013-11-24 18:35:38
【问题描述】:
我需要完全自动化地运行 Powershell 脚本,但它需要以管理员身份运行。我愿意使用 Powershell commads 或 C# 编码来执行此操作。哪个先给我答案。我一直在网上寻找似乎永远的东西,但我仍然没有成功......
对于 C# 我已经尝试过了,但没有域名,它似乎会抛出错误: http://www.codeproject.com/Articles/10090/A-small-C-Class-for-impersonating-a-User
对于 Powershell,我尝试过使用 Start-Process -credential "username",但似乎没有办法让我输入密码部分,如果我尝试这样做:
Start-Process -credential "username", "Password"
或
Start-Process -credential "username" "Password"
我收到一条错误消息,提示 Start-Process : Cannot process argument transformation on parameter 'Credential'.
我也尝试过使用Start-Process Powershell -Verb runAs,但这仍然会启动UAC,我仍然需要在后台运行窗口(这不是我主要关心的问题,因为我可以使用-NoNewWindow)。
我对 Powershell 比较陌生,如果有人对我将如何做这件事有任何想法,那将非常有帮助。
谢谢!
【问题讨论】:
-
如果不完全关闭 UAC,您将无法真正绕过 UAC(如果您确实想出办法,向 Microsoft 提交错误,您可能会从他们的错误赏金中获得一些可观的现金) .即使您确实冒充为管理员,他们也不会处于提升的上下文中。您可以使用“技巧”来完成这项工作,例如让 Windows 服务以 SYSTEM 身份运行,然后通过命令生成 Windows 服务,但安全地做到这一点很困难。
标签: c# powershell admin