在登录脚本中安装 Excel 插件(如何在 cmd 中使用当前用户 SID)

在登录脚本中安装 Excel 插件(如何在 cmd 中使用当前用户 SID)

我正在尝试使用登录脚本向我的客户端添加 Excel 插件。我检查了是否可以使用 GPO 添加它,但不幸的是,它不可以(即使您可以手动排除它们 -__- GG MS)。我之所以不直接将 .xlam 复制到插件文件夹,是因为我们有时会更新它,因此他们必须从网络驱动器访问它。我的问题是密钥位于 CURRENT_USER 下,因此我需要当前用户的 SID。现在我的问题是如何获取用户的 SID 并在 .reg 文件中使用它?

.reg 文件如下所示:

Windows Registry Editor Version 5.00
[HKEY_USERS\\****SID****\Software\Microsoft\Office\12.0\Excel\Options]
"OPEN"="\"\\****MACRO****.xlam\""

在这里获取 SID 的最简单方法是什么?

提前致谢!

答案1

我需要当前用户的 SID

您可以使用wmic

从命令行:

wmic useraccount where name='%username%' get sid

F:\test>wmic useraccount where name='%username%' get sid
SID
S-1-5-21-1699878757-1063190524-3119395976-1000

从批处理文件(GetSID.cmd):

@echo off
setlocal
rem use findstr to strip blank lines from wmic output
rem skip the heading
for /f "usebackq skip=1" %%i in (`wmic useraccount where name^="%username%" get sid ^| findstr /r /v "^$"`) do (
  set _sid=%%i
  )
echo %_sid%
endlocal    

笔记:

  • 批处理文件存储了 SID,%_sid%以供稍后需要时使用。

用法示例:

F:\test>GetSID
S-1-5-21-1699878757-1063190524-3119395976-1000

F:\test>

如何在文件中使用当前用户的 SID .reg

最简单的选择可能是使用reg命令将所需的键直接添加到注册表中。

您可以编写一个批处理文件来执行以下操作:

  1. 运行wmic命令。

  2. 将 SID 保存在环境变量中,例如%_sid%

  3. 我已经在上面的批处理文件中完成了此操作GetSID.cmd

  4. 现在在正确的位置添加适当的reg add命令%-sid%以将值添加到注册表。


进一步阅读

答案2

好的,我找到了解决问题的简单方法。显然,该键也存在于 HKEY_CURRENT_USER 下,所以这是迄今为止最简单的解决方案。

但非常感谢您提供的其他解决方案!我很可能将在我的解决方案中使用您的批处理文件实现方法。

感谢您提供全面、出色且极快的解决方案,David!

相关内容