更新本地启动策略的 gpt.ini 文件

问题描述 投票:0回答:1

我计划在报告问题时通过计算机启动策略卸载和安装软件代理。卸载/安装的批处理文件和 script.ini 文件将被复制过来,这部分就成功了。

如果我手动将 gpt.ini 版本值增加 1 并重新启动 PC,则启动策略成功运行。

我可以使用 PowerShell 脚本将版本值增加 1,但我知道这还不够。还需要附加

gPCMachineExtensionNames
值,我需要帮助。

当前 PowerShell 脚本将 gpt.ini 版本值更新 1:

$gptIniFilePath = 'RemotePC path'
$encoding = 'UTF8'
$gptIniContent = Get-Content -Encoding $encoding -Path $gptIniFilePath
foreach ($s in $gptIniContent) {
    if($s.StartsWith("Version")) {
        $num = ($s -split "=")[1] 
        $ver = [Convert]::ToInt32($num)
        $newVer = $ver + 1
        Write-Host $newver
        (Get-Content $gptIniFilePath) | ForEach-Object {$_ -replace "$ver","$newver" } |
            Set-Content -Encoding $encoding $gptIniFilePath -Force
    }
}
powershell group-policy
1个回答
0
投票

在您以文本形式提供代码后收到的所有帮助之后,我有一些您可能感兴趣的信息。

“Version=x。此条目是 GPO 的版本号,其中 x 是版本计数器函数指定的数字的占位符。通常,版本号是从零开始的,每次修改 GPO 时,该计数器增加 1。但是,该数字是八位十六进制数 (DWORD) 的十进制表示形式,这是组策略进程理解的数据类型。四个最低有效数字表示计算机设置版本号,最高四位数字代表用户设置版本号,换句话说,如果看到 Version=65539,计算机会将其理解为十六进制 0x00010003,这告诉它计算机设置版本是 3,用户设置版本是 1 ”。 [来源是https://www.serverbrain.org/administration-practice-2003/the-gptini-file.html]

这实际上是我发现的最好的解释,因为我也参与了这个主题(我自己的用例是以编程方式添加/删除启动/登录/注销/关闭脚本LGPO 策略)。

议程上的下一个是您要求的 GUID。经过广泛的测试(包括反复试验),我发现了以下内容:

gPCMachineExtensionNames=[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]

如果你有兴趣,

gPCUserExtensionNames=[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B66650-4972-11D1-A7CA-0000F87571E3}]

这些是运行 Win10 的未加入域的计算机上启动/关闭和登录/注销策略的 GUID。

不幸的是,至于版本控制的意义,我不知所措。我的意思是,我不知道当我们到达 0xFFFFFFFF 时会发生什么,并且有一个新的更改需要增加相应的版本。就我个人而言,我还没有在其他地方(同样是在 local 机器上)找到可以“验证”此版本号的相应值。

希望我对你有一些帮助。干杯。

© www.soinside.com 2019 - 2024. All rights reserved.