![Windows 组策略 - 我可以使用 VBscript 进行修改吗?](https://linux22.com/image/597623/Windows%20%E7%BB%84%E7%AD%96%E7%95%A5%20-%20%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20VBscript%20%E8%BF%9B%E8%A1%8C%E4%BF%AE%E6%94%B9%E5%90%97%EF%BC%9F.png)
首先,我既不是 Windows 专家,也不是组策略脚本专家,但我的任务之一是配置注定不会联网的 XP 机器。因此,我使用 VBScript 更改注册表设置,但现在我在组策略中有一些设置,我目前手动配置,但想编写脚本或以某种方式自动化。
有人能告诉我是否可以使用 VBscript 更改组策略吗,或者我是否需要使用其他东西?
我发现这该页面概述了一些可能性,但没有太多细节,而且我还找不到后续文章。
** 附加信息 **
使用 gpedit.msc 我目前在 GUI 中手动设置以下设置:
- 计算机配置 > 管理模板 > 系统 > 登录 > 计算机启动和登录时始终等待网络
- 计算机配置>管理模板>系统>关闭自动播放
- 计算机配置 > Windows 设置 > 安全设置 > 用户权限分配 > 从网络访问此计算机
- 计算机配置 > Windows 设置 > 安全设置 > 用户权限分配 > 拒绝从网络访问此计算机
- 计算机配置 > Windows 设置 > 安全设置 > 用户权限分配 > 拒绝本地登录
- 计算机配置 > Windows 设置 > 安全设置 > 用户权限分配 > 本地登录
- 计算机配置 > Windows 设置 > 安全设置 > 安全选项 > 网络访问:可以从网络访问的共享
我希望能够使用 VBScript 或其他方式(也许是 .NET?)编写这些更改的脚本。
我发现对于上述几个设置,我可以直接在注册表中更改它们,但在组策略编辑器(gpedit.msc)中看不到这些更改
答案1
是的,这是有可能的。
不太建议这样做,因为支持和推荐的方法是使用gpedit.msc
工具(或域上的 GPO)。因此,使用脚本执行此操作充其量只是半文档化的,而且您在尝试时确实会遇到一些奇怪的事情。
如果您仍决心尝试,这些设置实际上只是注册表项。如果可以找出哪些项被更改,那么编写脚本来导入所有这些注册表项并最终获得所需的配置就很简单了。老实说,我只会使用批处理文件。
但是,您会遇到的问题是,这些更改需要保存%SYSTEM ROOT%\System32\GroupPolicy\User\Registry.pol
为本地组策略来强制执行,而我不知道是否有一个好的脚本解决方案,因此常见的解决方法是按照您想要的方式设置第二台机器,然后将文件夹%SYSTEM ROOT%\System32\GroupPolicy\User
和文件复制到目标机器。
我个人认为整个过程非常痛苦,我宁愿建立一个小域,也不愿经历这个过程来自动应用本地组策略。
答案2
有一种工具叫GPO 注册表编辑器可以按命令编辑/更新本地组策略,而无需覆盖所有现有策略(只需复制和粘贴 Registry.pol 即可)。要使用此工具,首先您可以获取源代码。GRE 是用 AutoItScript 编写的。要创建可执行文件,您需要编译它,例如使用AutoItScript 编辑器。
您现在应该有一个具有以下命令行选项的 gre.exe:
GPO Registry Editor provides read/write capabilities for registry policy files.
Usage:
-a --add Add the entry specified by the key, value, type, and data parameters.
-r --remove Remove the entry specified by the key and value parameters.
-d --data Specifies the data of the registry entry.
-f --file Specifies the registry file to load or modify.
Use `computer` or `user` to specify the system policy files.
-k --key Specifies the key of the registry entry.
-s --silent Perform the operation silently (no GUI).
-t --type Specifies the type of the registry entry.
-v --value Specifies the value of the registry entry.
-h --help Display this message.
-? --? Display this message.
要确定需要设置哪些键和值,您可以运行管理控制台并设置您想要设置的设置。由于 gpedit.msc 会直接应用策略,因此您可以打开注册表编辑器然后转到 HKLM\SOFTWARE\Policies 或 HKCU\SOFTWARE\Policies 检查已设置哪个键。
[编辑] 我发现了一个叫做Registry.pol 查看器实用程序它可以读取位于 %SYSTEMROOT%\System32\GroupPolicy\Machine 和 %SYSTEMROOT%\System32\GroupPolicy\User 中的注册表策略文件 (Registry.pol)。它会向您显示哪些键和值及其数据已应用于组策略。然后可以轻松地将其与 gre 一起使用。 [/编辑]
例如政策计算机配置 > 管理模板 > 系统 > 登录 > 计算机启动和登录时始终等待网络可以使用以下 gre 命令:
gre --add -s -f=computer -k="Software\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon" -v="SyncForegroundPolicy" -t REG_DWORD -d="1"
然后可以将几个 gre 命令添加到批处理脚本中,并添加以下命令来应用更新的组策略:
gpupdate /force
此类脚本可轻松在目标计算机上启动以应用所需的策略。或者,您也可以选择部署工具来使用它,例如西太平洋太平洋集团。