组策略和bginfo
简介#
很多的IT管理员都希望终端操作用户达到一个计算机脱盲的水平,但是理想很丰满,现实很骨感。人生不如事十之八九。
终端用户真的一言难尽。
简单的帮我们看一下CPU,内存,IP地址,这些基础信息,他们做不到。
好在微软发布了bginfo这个软件,BgInfo - Sysinternals | Microsoft Learn
你曾多少次进入办公室中的系统,需要单击多个诊断窗口来提醒自己系统配置的重要内容,例如系统的名称、IP 地址或操作系统版本? 如果你管理多台计算机,可能需要 BGInfo。 它会自动在桌面背景上显示有关 Windows 计算机的相关信息,例如计算机名称、IP 地址、Service Pack 版本等。 你可以编辑任何字段以及字体和背景色,将其放在启动文件夹中,这样每次启动都会运行,甚至可以将其配置为显示在登录屏幕的背景中。
由于 BGInfo 编写新的桌面位图后即退出,因此无需担心它会消耗系统资源或干扰其他应用程序。
本文尝试使用域控发布启动脚本来实现统一信息显示桌面功能
简单配置#
就这界面,左边随便删除,右边选择了可以add,排版字体,大小,都很明显。
apply,就看到效果了。
点击File→Save as(另存为配置文件),配置文件后缀为*.bgi,使用命令行参数来启动指定的配置文件。
可以做成批处理放启动项里面,也就是域控统一部署的基础。
参数 | 说明 |
---|---|
<path> | 指定要用于当前会话的配置文件的名称。 按“确定”或“应用”时,会自动将配置更改保存回文件。 如果此参数不存在,BGInfo 将使用当前用户下存储在注册表中的默认配置信息(“HKEY_CURRENT_USER\Software\Winternals\BGInfo”)。 |
/timer | 指定倒计时计时器的超时值(以秒为单位)。 指定零将更新显示,而不显示配置对话框。 指定 300 秒或更长时间将完全禁用计时器。 |
/popup | 使 BGInfo 在不更新桌面的情况下创建一个包含配置信息的弹出窗口。 信息的格式与在桌面上显示时完全相同,但位于适合屏幕大小的窗口中。 使用此选项时,不会更新历史记录数据库。 |
/Silent | 禁止显示错误消息。 |
/taskbar | 使 BGInfo 在不更新桌面的情况下将图标放置在任务栏的状态区域中。 单击该图标会使配置的信息出现在弹出窗口中。 使用此选项时,不会更新历史记录数据库。 |
/all | 指定 BGInfo 应更改当前登录系统的所有用户的壁纸。 此选项在终端服务环境中非常有用,或者计划定期在多人使用的系统上运行 BGInfo 时(请参阅下文的“使用计划”)非常有用。 |
/log | 使 BGInfo 将错误写入指定的日志文件,而不生成警告对话框。 此选项对于跟踪 BGInfo 在计划程序下运行时发生的错误非常有用。 |
/rtf | 使 BGInfo 将其输出文本写入 RTF 文件。 包括所有格式设置信息和颜色。 |
c:\bginfo.exe bginfo.bgi /timer:0 /silent /nolicprompt
似乎这样就可以了。
域控配置#
将bginfo,bgi配置文件放入登录脚本目录。
自己编辑一个bat登录脚本就好。
\\server\software\bginfo\bginfo.exe \\server\software\bginfo\bginfo.bgi /timer:0 /silent /nolicprompt
高级操作#
有些内容不适合我们啊,比如说显示mac,显示了所有的mac,连虚拟机的虚拟网卡都显示了,显示IP也一样,IPV6显示了一堆。
我还想显示系统安装时间。所属OU,计算机描述的使用人信息。
如何自定义,注意Custom,自定义按钮
可以新建自定义内容
看起来还不少呢。
Environment variable,环境变量的值。
Registry value,注册表的值
WMI Query,wmi筛选值,这是微软新一代交互工具。具体可以去查文档。
version infomation for a file,文件版本
time stamp of a file,文件时间戳
contents of a file,文件内容
VB Script file,VBS脚本
好吧,看看我们有什么可以用的。
自定义注册表项#
首先是计算机描述设置的使用人。我们在MDT设置描述时操作过这个注册表键。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\srvcomment
可以读出来。
自定义WMI查询#
系统安装时间,这个用wmi查询
SELECT InstallDate FROM Win32_OperatingSystem
自定义VBS脚本#
随便找个AI写个VBS脚本
' 创建一个WMI服务对象 Set objWMI = GetObject("winmgmts:\\.\root\cimv2") ' 查询启用了IP的网络适配器配置 Set Win32MacAddr = objWMI.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled = True") ' 遍历查询结果并输出IPv4地址 For Each objNetCard in Win32MacAddr If Not IsNull(objNetCard.IPAddress) And UBound(objNetCard.IPAddress) >= 0 Then For i = LBound(objNetCard.IPAddress) To UBound(objNetCard.IPAddress) ' 检查IP地址是否是IPv4格式(简单方法,可能不适用于所有情况) If InStr(objNetCard.IPAddress(i), ".") > 0 And InStr(objNetCard.IPAddress(i), ":") = 0 Then ' 假设如果包含点并且不包含冒号,则它是IPv4 Echo objNetCard.IPAddress(i) End If Next End If Next ' 清理对象 Set objWMI = Nothing Set Win32MacAddr = Nothing
保存为文件
在bginfo指向即可
看看效果#
后记#
也不知道什么时候更新自定义powershell脚本。
有了自定义vbs脚本和AI辅助,更多功能待你开发,或问询AI。
我做了个powershell脚本,查询该计算机在域控中的组织单位和描述,并将组织单位重新排列后写入注册表自定义键,更新本地计算机描述和域控计算机描述一致。
然后就可以在桌面显示组织单位(所属部门),描述(使用人)信息了。
开机启动,即更新。
发现一个bginfo的隐藏参数,看意思是接受协议。我整烦恼第一次要同意协议呢。
C:\bginfo\Bginfo.exe /accepteula c:\bginfo\oem.bgi /timer:0
作者:上官飞鸿
出处:https://www.cnblogs.com/jackadam/p/18203222
版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2022-05-21 python操作excel
2022-05-21 NGINX配置显示目录文件列表