注册表项值与使用PowerShell脚本输出的字符串值匹配

注册表项值与使用PowerShell脚本输出的字符串值匹配,powershell,Powershell,这里,我从注册表项中获得了代理覆盖项值 $regpath1 = Get-ItemPropertyValue -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' 'ProxyOverride' $regpath1输出为“google.com;domain.com;foo.com' 但在这里,我想编写代码来匹配每个代理字符串值google.com、domain.com和foo.com。如果字符串不匹配

这里,我从注册表项中获得了代理覆盖项值

$regpath1 = Get-ItemPropertyValue -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'  'ProxyOverride'
$regpath1输出为“google.com;domain.com;foo.com'

但在这里,我想编写代码来匹配每个代理字符串值google.com、domain.com和foo.com。如果字符串不匹配,则发送失败的输出,如foo.com是无效的代理


任何建议要检查注册表项的值是否包含不允许的值,请创建允许值列表。拆分reg值以获取可使用foreach处理的集合。对于每个项目,检查其是否存在于允许值列表中。这样,

# Registry data
$regVal = 'google.com;domain.com;foo.com'
# Allowed values 
$goodProxies = @('google.com','domain.com')
# Create an array of values from regkey
$regProxies = $regVal -split ';'

# Loop through values    
foreach($proxy in $regProxies) {
  # if allowed list doesn't contain value in list, alert
  if(-not ($goodProxies -contains $proxy)) {
    write-output "$proxy in registry, not in allowed proxy list"
  }
}

提问并解释你喜欢匹配什么和不喜欢匹配什么。请举例说明您希望获得的示例注册表值。不要将示例添加为注释,因为这些注释很难阅读。任何人都可以在此处提出建议。谢谢,但是如何从注册表项“get-ItemPropertyValue-Path'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings”“ProxyOverride'”值中获取值并在中分配给$regValabove@Rama这听起来和你的手机一样。一旦有人给了你一个有效的答案,你就开始问如何得到要比较的值。。这两个问题都是关于如何进行比较,而不是如果有人能告诉你哪些价值观被认为是“好的”或“坏的”。这是你需要决定的