0
写了一个小脚本来检查某些AD组是否存在。出于某种原因,它不会遍历给定的数组。它只将数组的第一个值写入控制台。当我把一个断点:if语句中的foreach循环
foreach ($item in $SecGroupNames)
我看到$ secGroupNames正在填充给值,任何人都可以帮我吗?无法解决这个问题。
代码:
Import-Module activedirectory
$SecGroupNames = @(
"DB_DATAREADER",
"DB_DATAWRITER",
"DB_OWNER",
"SQL_Public",
"SQL_SA",
"SQL_SecurityAdmin"
)
foreach ($item in $SecGroupNames)
{
If (Get-ADGroup $item)
{
Write-Host -ForegroundColor Yellow "$item Exists!"
return $true;
}
else
{
Write-Host -ForegroundColor Green "$Item Does not exist, Do something!"
return $false;
}
}
输出:
PS C:\Scripts\CreateOUgroups> C:\Scripts\CreateOUgroups\FunctionCheckSecurityGroup.ps1
DB_DATAREADER Exists!
True
我调整了我的代码,虽然我得到它不写我的控制台上的完整数组。它循环6次,结果相同: DANNY_DB_DATAREADER存在! 真 DANNY_DB_DATAREADER存在! 真 DANNY_DB_DATAREADER存在! 真 DANNY_DB_DATAREADER存在! 真 DANNY_DB_DATAREADER存在! 真 DANNY_DB_DATAREADER存在! True – MrPowerUser
@doenoe在''$ iets Exists!“这个问题中有一个拼写错误,在你的代码中呢?这会使得每次循环的价值都不会改变 – Matt
愚蠢的错字。调整后的代码到$ item。诀窍!非常感谢! – MrPowerUser