为域用户创建安装程序

为域用户创建安装程序

我已经为某件事纠结了好久了。老板想要在我们的文件服务器中建立一个目录,他将把程序安装文件放在里面,所有人都可以读取,只有他可以修改。

他希望客户端工作站有一个脚本,可以读取目录并向用户显示其中有哪些文件。然后,用户(即普通域用户,没有安装任何文件的能力)可以单击“安装”,然后它就会安装它。

其背后的想法是在用户站点拥有本地管理员,并让脚本知道本地管理员的密码,然后使用这些本地管理员凭据在用户的计算机上安装该程序。

这是一个非常棘手的问题,因为如果不将本地管理员密码存储在脚本中,我就无法知道如何保护它,这是一件非常糟糕的事情。

我尝试过以某种方式加密密码并将脚本转换为可执行文件,但我看不出有办法让对计算机略知一二的用户无法反编译可执行文件。如果我使用 PowerShell 加密,它只适用于一台机器和一个用户。

然后我想到了另一种方法:从客户端工作站向文件管理器发出调用,然后让文件管理器使用 psexec 返回给用户,但这太过复杂了。

然后,我考虑使用invoke-command从用户的计算机向文件管理器发出调用,然后从文件管理器返回到用户,但我需要允许所有客户端使用WinRM。

我正在使用 PowerShell 进行此操作。也许这里有人做过类似的事情,可以建议我如何安全地做到这一点。

第一个选项效果很好,所以如果可能的话我愿意坚持使用它,但我必须弄清楚如何保护这个东西,而不仅仅是将凭据放在用户计算机上的 PowerShell 脚本中。

答案1

我认为有两种方法。

  1. 换一个老板。他显然不知道他要求的任务到底有多复杂,总是细节,我怀疑他是否看过它们。Windows 安装的细节非常难以掌握。

还在读吗?好的。可以读。

  1. 关键点是将脚本作为“计划任务”在后台运行。当您为每台机器设置新的“计划任务”时,系统会提示您输入此任务应使用的用户名和密码。在这里,您输入安装帐户凭据。密码无法在之后检索,因此可以认为是安全的。此“计划任务”现在具有完全的管理权限,如果您使用域用户帐户(在客户端上授予其管理员权限,在服务器上仅授予其用户权限),您的脚本可以轻松通过网络访问安装文件并触发安装。

但请注意,许多安装程序相当愚蠢,它们会将程序安装给安装程序的用户(即您的安装程序用户),而不是供前台登录的用户使用。一些安装程序可以参数化为安装给“所有用户”,这可能行得通,对于其他安装程序,您必须使脚本更智能,以便它可以在软件安装程序完成后将“所有必需的设置、许可证(!)、图标、程序运行所需的一切”添加到前台用户的配置文件中。

绝对没有合法的方式让用户帐户执行任务。如果用户可以通过任何方式在不知道管理员密码或没有管理员授予管理权限的情况下将其权限提升为管理员,那么任何用户都可以随时做任何事情,这几乎相当于始终以管理员身份运行所有用户帐户。

  1. 现在您需要一些额外的脚本、Web GUI 或任何您喜欢的东西,让用户从服务器上的软件中进行选择,可能检查用户是否有权限安装该软件,可能检查用户的计算机是否满足安装要求(硬件?可用磁盘空间?...)才能成功。然后您必须将该信息存储在后台安装程序可以读取的位置。服务器上的简单列表即可。

  2. 最后,后台脚本将定期访问该列表并触发安装程序。

完毕。

假设你正在考虑编写一个自动化软件分发工具。有商业工具可以做到这一点,其中一个甚至是内置在 Windows Active Directory 中的,而且是免费的。我不知道开发人员花了多少年时间和金钱才让他们的安装程序掌握了各种 Windows 软件使用的众多安装程序变体中的许多(大多数?全部?一些?)。起初它们可能看起来每个客户端都很贵,但我怀疑你在 Powershell 中所做的任何事情在成本、可靠性、功能、文档和社区支持方面都无法击败任何商业解决方案。

答案2

这听起来像是组策略软件部署的工作。这解决了用户缺乏管理权限的问题。

经过出版一个包,它将使软件在控制面板下可供用户使用(而不是自动安装它)。

从最终用户的角度来看:

设置

  1. 请参阅 Microsoft 的指南这里(旧文章,但仍然相关)。请关注“发布包”部分而不是“分配包”。
  2. 为 GPO 和“软件存储库”共享委派适当的权限。您可以专门为此创建一个名为可选软件管理员,并将您的老板添加为成员。 确保 ACE 适用于此对象及其所有后代对象 授予调整可选软件管理员对软件文件夹的 NTFS 权限:
  3. 通过运行此提升权限的 PowerShell 命令在你老板的机器上安装组策略管理控制台:
Add-WindowsCapability -名称“Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0”-在线

从现在开始,您的老板就可以开始将安装程序复制到软件共享并相应地修改软件部署 GPO(尽管最初需要有人指导)。而且这一切都不需要本地计算机或域管理员权限,所有参与者的体验(相当)轻松!

您甚至可以通过将快捷方式直接推送到他们需要去的地方,让最终用户和老板的工作更加轻松。如果需要扩展到更多管理用户或您的老板在多台机器之间移动,也可以自动安装组策略管理控制台。

相关内容