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