我试图让所有注册表项以数字1-9开头。这就是我正在使用的:
Get-ChildItem -Path HKLM:\SOFTWARE\Policies\Citrix | Where-Object {$_.name -Match '^[1-9]'}
简单吧?应该管用?不行!我错过了什么?
UPDATE1:
$CitrixPolRegDel = (Get-ChildItem -Path $CitrixPolRegPath).pschildName | Where-Object {$_ -Match '^[0-9]{1,2}$'}
这就是我现在使用的,pschildname比下面给出的拆分示例更容易使用,但是我不知道这个方法可能有缺点吗?
我还更新了regex表达式以匹配以一位或两位数命名的regkeys:
正则表达式检索名称以(^
)数字0-9([0-9]
)开头的regkeys,名称中的数字可以出现一到两次({1,2}
)和然后名称应该结束($
)
答案 0 :(得分:1)
所以,有趣的是你运行那个GCI并且用一个子键的名称来踢回一个表,但是如果你做一个Select -Expand Name它会给出完整的HKLM \软件\策略\思杰。因此存在问题,名称实际上包含密钥的全名,而不仅仅是最后一个子密钥。
那么,你想要以1-9开头的子键吗?将其拆分为\
,并为每个条目使用最后一个。试试这个:
(Get-ChildItem -Path HKLM:\SOFTWARE\Policies\Citrix).Name | ForEach {$_.Split("\")[4] | Where-Object {$_.name -Match '^[1-9]'}}