WDS+MDT网络启动自动部署windows(十三)骚操作,修改MDT数据库,使用变量设置计算机描述

简介#

我正在努力尝试将一个被取消的功能重新实现。

在mdt安装时,为计算机添加计算机描述,它将是未来一些自动化操作的变量,如使用人参数。

MDT 2010 - Setting the Computer Description in AD without a webservice - Deploy Vista

在 MDT 部署期间在 Active Directory 中设置计算机描述 – GivingSomethingBack (maikkoster.com)

MDT 提示输入计算机描述的脚本 - 软件 - Spiceworks 社区

对我的帮助不大。并没有完整实现我的需求。深挖MDT文档,我找到了这个

引用CustomSettings.ini文件中的新列 | Microsoft Learn

初看起来就是我需要的。还想过做IIS,web查询MDT数据库这种曲线救国的方法呢。

修改表#

修改表 | Microsoft Learn#

似乎我不需要修改表。

 

这有描述字段,我们去看看数据库是什么样的。在表Computerldentity中。

 

修改和刷新依赖视图#

在视图ComputerSettings中,继续查找

 右键--设计视图,照猫画虎,添加描述字段

 重新打开视图,已经可以看到描述字段被读出来了。

 SSMC#

右键--视图dbo.ComputerSettings--设计,勾选ci小窗口DEScription

 右键--视图dbo.ComputerSettings--选择前1000行

 横向滚动条,拉到最右边。

 高级#

看到上面s的小窗口了么?

你还可以继续自定义表ComputerIdentity、Settings,然后修改视图ComputerSettings。

ComputerIdentity的ID,对应的应该是Settings的ID。也可以直接在MDT数据库新建Computer,再来修改。

未来将可以使用python等自动化工具来链接sql数据库,对所有的设置项进行自动化处理。

 

引用CustomSettings.ini文件中的新列#

引用CustomSettings.ini文件中的新列 | Microsoft Learn

它示例是根据地点来筛选防病毒服务器。

看看我们的是什么。

 自动生成的是根据 UUID,AssetTag,SerialNumber,MacAddress,满足最后一个条件来筛选。看起来我们已经获取这个表了。

它直接Properties=AVserver,我怎么办呢?我这是Properties=MyCustomProperty。

 

MDT部署双硬盘选择 - momingliu11 - 博客园 (cnblogs.com)

这篇博文写了逗号分隔的多个变量,

照猫画虎,再添加一个变量Description。

 我们已经修改过视图了。计算机名和描述都在一个查询里面,那么调用方式因该是一样的。

 尝试使用变量#

经bing copilot 帮助写了个改计算机描述的wsf脚本。

复制代码
<?xml version="1.0" encoding="utf-8"?>
<job>
  <script language="VBScript">
    <![CDATA[
      ' 修改本地计算机描述的 VBScript 脚本
      ' 请将 "NewDescription" 替换为你想要设置的新描述

      Const HKEY_LOCAL_MACHINE = &H80000002
      strComputer = "."

      ' 创建 WMI 对象以与系统交互
      Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

      ' 设置注册表路径和值名称
      strKeyPath = "System\CurrentControlSet\Services\lanmanserver\parameters"
      strValueName = "srvcomment"

      ' 新的计算机描述
      strNewDescription = "NewDescription"

      ' 设置计算机描述
      objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strNewDescription

      WScript.Echo "计算机描述已成功设置为: " & strNewDescription
    ]]>
  </script>
</job>
复制代码

一点小问题是,没有使用变量,翻查其他脚本,及多次实验,最终脚本是这样的。注意src路径,我是放在script/custom/目录下,如果你放scrtip目录,就删掉..\

复制代码
<?xml version="1.0" encoding="utf-8"?>
<job>
  ' 这里增加一行,引入上级目录的ZTIUtility.vbs文件
  <script language="VBScript" src="..\ZTIUtility.vbs">  
  <script language="VBScript">
    <![CDATA[
      ' 修改本地计算机描述的 VBScript 脚本
      ' 请将 "NewDescription" 替换为你想要设置的新描述

      Const HKEY_LOCAL_MACHINE = &H80000002
      strComputer = "."

      ' 创建 WMI 对象以与系统交互
      Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

      ' 设置注册表路径和值名称
      strKeyPath = "System\CurrentControlSet\Services\lanmanserver\parameters"
      strValueName = "srvcomment"

      ' 新的计算机描述(注释掉)
      ' strNewDescription = "NewDescription"

      ' 使用变量设置计算机描述
      strNewDescription = oEnvironment.Item("Description")

      ' 设置计算机描述
      objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strNewDescription

      ' 注释这行,它是提示窗口
      ' WScript.Echo "计算机描述已成功设置为: " & strNewDescription
    ]]>
  </script>
</job>
复制代码

设置任务Command line,放在state restore之中,我也试了放postinstall,无效,具体为什么就不知道。

 完美实现MDT安装时设置计算机描述,为下一步autoit,自动安装需要参数的软件提供了基础。

 中文描述#

这里还有个问题,计算机描述设置为中文时,会出现乱码,这是微软的歧视么?据说双字节字符的所有语言都受影响。

经多次尝试,需要改编码。

又去嫖了大佬的代码

 这样使用

 使用新的设置描述脚本,在debug中断时,可以完美设置中文计算机描述。

所以有个msgBox   WScript.Echo,临时测试用。已注释

作者:上官飞鸿

出处:https://www.cnblogs.com/jackadam/p/18172534

版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。

posted @   上官飞鸿  阅读(227)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示