组策略和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)」许可协议进行许可。

posted @   上官飞鸿  阅读(403)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2022-05-21 python操作excel
2022-05-21 NGINX配置显示目录文件列表
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示