gpt4 book ai didi

powershell - 通过Powershell编辑gPCMachineExtensionNames属性

转载 作者:行者123 更新时间:2023-12-03 00:02:33 25 4
gpt4 key购买 nike

我必须使用Powershell从 Activity 目录中的组策略中修改gPCMachineExtensionNames属性字符串。为此,我首先要读取现有的字符串,对其进行修改,然后将旧字符串替换为修改后的字符串。

该属性在策略容器中的以下位置定义:
CN = {POLICY GUID},CN =策略,CN =系统,DC = [域],DC = [COM]

当我使用ADSI Edit浏览属性时,gPCMachineExtensionNames的值正确显示为[{827D319E-6EAC-11D2-A4EA-00C04F79F83A} {803E14A0-B4FB-11D0-A0D0-00A0C90F574B}]

我尝试使用ldap查询选择值:

'(objectClass=groupPolicyContainer)' 
([adsisearcher]'(objectCategory=groupPolicyContainer)').FindAll() | ForEach-Object {
New-Object -TypeName PSCustomObject -Property @{
abc = $_.Properties.gPCMachineExtensionNames -join ''
}
}

但是结果是空的。我只能查询其他属性,例如name,cn,USNCreated,displayname等。这里显示正确。为什么无法返回属性gPCMachineExtensionNames的值?

我可以进行另一个LDAP查询,还是可以使用其他方法查询或修改Windows Server 2008 R2上的属性?

谢谢您的支持!

最佳答案

检查名称的大小写:

$allGPOs = ([adsisearcher]'(objectCategory=groupPolicyContainer)').FindAll()

# this returns nothing
$allGPOs | % { $_.Properties.gPCmachineExtensionNames }

# this returns what you expect
$allGPOs | % { $_.Properties.gpcmachineextensionnames }

$allGPOs | ForEach-Object {
New-Object -TypeName PSCustomObject -Property @{
abc = $_.Properties.gpcmachineextensionnames -join ''
}
}

我在这里假设 $allGPOs.GetType()是SearchResultCollection,而 $allGPOs[0].Properties.GetType()是SearchResultCollection,它们的行为与“常规”名称/值对略有不同。

关于powershell - 通过Powershell编辑gPCMachineExtensionNames属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20677683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com