У меня была эта проблема долгое время, когда я предполагаю, что она будет выводить все данные, которых нет.
Пример:
$groups = "group1","Group2","Group3" # to be excluded
foreach ($group in $groups) {
$dns = (Get-ADGroup "$Group").DistinguishedName
}
Write-Host $dns
выведет различающееся имя только одной группы, но если в то же время я выведу
(Get-ADGroup "$Group").DistinguishedName | Out-File c:\list.txt
Я получу все 3. То же самое и с `Get-ADUser, если я попытаюсь получить пользователя из массива.
Любое реальное решение, с которым кто-нибудь сталкивался?
$groups="group1","Group2","Group3" # to be excluded ForeacH($group in $groups){ $dns=(Get-ADGroup "$Group").DistinguishedName } Foreach($dn In $dns){ get-ADGroupMember -Identity "GroupA" |get-aduser -prop memberof |where{$_.memberof -notcontains $dn}|select name }
31.01.2018New-Object
.$dns = @()
и$dns = [System.Collections.ArrayList]::new()
примерно равны по производительности. В любом случае, поскольку вы создаете экземпляр$dns
только один раз, влияние на производительность, скорее всего, будет минимальным, независимо от того, как вы это сделаете. 01.02.2018