如何在软件安装期间锁定普通(非管理员)用户?

Wes*_*eed 12 scripting windows login embedded sccm

我们有很多运行 Windows Embedded Standard 7 的瘦客户端和一个 SCCM 2012 R2 服务器来管理它们。瘦客户端启用了它们的写入过滤器 (FBWF),因此机器更改不是持久的。在极少数情况下,我们必须更新它们的某些内容,我们只需通过 SCCM 部署它,它就会自动关闭并重新打开写入过滤器以提交更改。

以下是应该发生的情况:
SCCM 客户端向用户发出通知并进行 30 分钟的倒计时以保存他们的工作并退出系统。然后瘦客户端重新启动并禁用写入过滤器。登录屏幕会显示一个挂锁并通知设备正在维修,并且在 SCCM 执行此操作时不允许普通(非管理员)用户登录。SCCM 完成后,它会重新启用写入过滤器、重新启动,然后用户可以再次登录。

我遇到的问题是我们使用感应读卡器登录系统。员工不输入密码。他们只需点击他们的徽章。这个系统很好,但运行它的软件打破了 Windows Embedded 的写入过滤器自动化。

以下是实际发生的情况:
SCCM 客户端在关闭写过滤器的情况下重新启动之前通常会发出 15 分钟的通知。当它重新启动时,会显示正常的登录屏幕。用户可以在 SCCM 安装软件时登录系统并使用它。并且由于用户会话处于活动状态,它会再次发出另外 30 分钟的通知,然后重新启动写入过滤器。

在这种情况下,它不仅增加了 30 分钟的部署时间,而且还为普通用户提供了 30 到 60 分钟在瘦客户端上不受保护的可靠时间,他们所做的任何更改都会永久地融入到映像中。写过滤器重新打开。

该问题源于这样一个事实,即 Windows Embedded 7 使用与常规 Windows 7 不同的凭据提供程序(又名 GINA),但 SSO 产品必须替换 Windows 凭据提供程序才能正常运行。我已经就此事联系了供应商,但他们只是说这是一个已知问题,并且没有修复或解决方法。

所以这是我的问题:
如何以另一种方式模拟所需的行为?我知道有一个组策略设置,您可以在其中拒绝特定用户组的本地登录。我想我可以在安装前后翻转相应的注册表设置,但我对其他想法持开放态度。

如果必须的话,我不会超过脚本安装。我精通脚本、PowerShell、VBScript 等。我只是想知道是否有人对如何解决这个问题有任何聪明的想法。


更新:
我没有提到这些设备正在医院环境中用于工作人员为他们的患者绘制图表。它们必须全天 24 小时可用,因此我们无法限制登录时间或配置维护时段。我们通过提前通知轮班主管来管理停机时间,但任何超过一个小时的事情都会成为法律合规问题,需要正式的停机程序才能生效。

小智 4

在我们开始之前,我想提出一个迂腐的观点,更多的是为了普通读者而不是为了你自己。

我们只是通过 SCCM 推送它

SCCM 是一种基于拉动的技术。我知道您的意思,但我发现对于我的一级人员来说,每次我有机会强调 SCCM 不是基于推送的技术,都可以帮助他们更快地理解它。


我已就此问题联系了供应商,但他们只是说这是一个已知问题,并且没有修复或解决方法

这太糟糕了,因为听起来这个问题的原因是嵌入式卡身份验证程序。继续关注供应商,也许他们真的会修复他们的软件。



关于真正的答案 - 我为您找到了一些可能的解决方案,但没有一个特别好。

  • 为这些客户端配置维护窗口,以便您首次重新启动以将客户端从其写入过滤器中删除、您的实际负载以及由此产生的重新启动都发生在员工不在终端的非工作时间。这似乎是最不痛苦的选择。无需让 SCCM 变得比现在更复杂。
  • 创建一个本地组策略模板,将安全组添加到拒绝登录用户权限,然后将其分配/取消分配作为应用程序部署的一部分。
  • 使用 PowerShell 设置拒绝登录用户权限。我相信PowerShell 社区扩展 (PSCX)具有Set/Get-Privileges可让您操纵用户权限分配的 cmdlet
  • 如果需要,您可以使用 API。这是一个例子