Powershell if语句中的Foreach循环

Powershell if语句中的Foreach循环,powershell,active-directory,Powershell,Active Directory,编写了一个小脚本来检查是否存在某些广告组。由于某种原因,它不会在给定的数组中循环。它只将数组的第一个值写入控制台。当我在上放置断点时: foreach ($item in $SecGroupNames) 我看到$secgroupname被gives值填充,有人能帮我吗?我想不出这个 代码: 输出: PS C:\Scripts\CreateOUgroups> C:\Scripts\CreateOUgroups\FunctionCheckSecurityGroup.ps1 DB_DATARE

编写了一个小脚本来检查是否存在某些广告组。由于某种原因,它不会在给定的数组中循环。它只将数组的第一个值写入控制台。当我在上放置断点时:

foreach ($item in $SecGroupNames)
我看到$secgroupname被gives值填充,有人能帮我吗?我想不出这个

代码:

输出:

PS C:\Scripts\CreateOUgroups> C:\Scripts\CreateOUgroups\FunctionCheckSecurityGroup.ps1
DB_DATAREADER Exists!
True

这是因为
return
语句。它使脚本返回值并在第一个循环过程中结束执行

如果要从脚本或函数返回多个值,请使用
Write Output
而不是
return

foreach ($item in $SecGroupNames)
{   
  if (Get-ADGroup $item)
  {     
    Write-Host -ForegroundColor Yellow "$item Exists!"
    Write-Output $true;
  }
  else
  {
    Write-Host -ForegroundColor Green "$item Does not exist, Do something!" 
    Write-Output $false;
  }
}

我调整了我的代码,尽管我发现它没有在我的控制台上编写完整的数组。它循环了6次相同的结果:DANNY_DB_DATAREADER存在!真正的DANNY_DB_数据读取器存在!真正的DANNY_DB_数据读取器存在!真正的DANNY_DB_数据读取器存在!真正的DANNY_DB_数据读取器存在!真正的DANNY_DB_数据读取器存在!True@doenoe问题
“$iets存在!”中有一个打字错误。
您的代码中也有吗?这将使值不会随着每个循环的输入而改变。将代码调整为$item。我成功了!非常感谢!
foreach ($item in $SecGroupNames)
{   
  if (Get-ADGroup $item)
  {     
    Write-Host -ForegroundColor Yellow "$item Exists!"
    Write-Output $true;
  }
  else
  {
    Write-Host -ForegroundColor Green "$item Does not exist, Do something!" 
    Write-Output $false;
  }
}