创建提升的控制台/命令行应用程序窗口 - 建议?

时间:2014-07-25 11:10:07

标签: windows shell command-line admin uac

寻找有关如何进行以下操作的建议,即在其他方面做什么最好的语言,第三方工具是否:(

我的任务是创建某种Windows shell /命令行界面,允许标准用户安装一组特定的应用程序(可由管理员配置)(由于安全限制,安装需要Admin / UAC提升)用户无法拥有提升的权限,因此他们将能够以标准用户身份运行shell,并且内置隐藏/加密凭据以运行安装。

部分要求如下:

  1. 需要使用Server 2008 R2,2012 r1和2012 r2

  2. 用于执行安装的凭据必须从最终用户隐藏(加密)。

  3. 理想情况下,我们可以在将服务器交给客户之前为其提供一些配置,并限制它可用于安装到特定的.exe或.msi(因此我们知道需要)为了安装应用程序,我们被告知安装的名称并且可以登录并且可以将其输入到可能只安装该应用程序的表单中,然后将服务器交给运行相同实用程序或shell扩展的客户或什么,然后可以安装他们的应用程序。

  4. 更理想的是它比这更智能,并且确保任何.msi确实安装msi名称相关的应用程序(似乎不太可能,但以防普通用户创建.msi授予的一些方法)根据{{​​3}})进一步管理员访问

  5. 理想情况下,它的寿命会受到时间限制(不确定是否可以是例如x天)。

  6. 关于如何解决这个问题的任何指示似乎是一个很好的挑战:)

    感谢您阅读所有内容! 麦克

2 个答案:

答案 0 :(得分:1)

感谢您的回复,

我设法在C#中完成了这项工作,之前没有语言经验:)

Screenshot

该应用程序有2个部分,一个GUI和一个服务。它的工作原理是让应用程序通过IPC向其对应的提升服务发送安装命令。 (感谢 Hans Passant 指出我在正确的方向)。该服务在其自己的提升帐户下启动安装程序,但在用户会话上显示安装程序GUI。文件是在安装之前在应用程序和服务上验证的HMACSHA1校验和。

谢谢, 麦克

答案 1 :(得分:0)

如果用户需要能够在Program Files文件夹中安装应用程序,请指示域管理员为程序文件文件夹提供完全控制每个人

enter image description here

仅仅因为默认设置禁止标准用户修改程序,并不意味着你必须保持这种方式。 Windows是一种安全的操作系统,可为您提供功能以确保其安全。

如果您的管理员只希望某些用户能够修改 Program Files 文件夹的内容,则只向某些用户授予该权限。

更好的解决方案是重新设计应用程序,以便它们不会安装在(默认情况下)受保护的位置。让他们安装在:

%APPDATA_LOCAL%\Contoso\Frobber\Grob.exe

e.g。

D:\Users\Ian\AppData\Local\Contoso\Frobber\Grob.exe

始终允许用户在自己的个人资料文件夹中编写任何内容。