2015-11-03 2 views
1

. В нашей среде «подрядчики» и «сотрудники» есть две группы: мне нужно написать сценарий, в котором перечислены все пользователи, которые не являются частью обеих групп, могут кто-то мне помогает.Сценарий Powershell для перечисления пользователей, которые не входят в две группы.

$n = Get-ADGroupMember "Contractor" | Sort-Object | 
    foreach {Get-ADUser $_.name | select name} 
$group = "Employee" 

foreach ($u in $n) { 
    $get = (Get-ADUser $u.Name -Properties * | Select-Object memberof) 

    if ($get.memberof -match $group) { 
     Write-Host $u.name " is ok. They're in both groups." 
    } else { 
     Write-Host $u.Name " is not a member" -ForegroundColor Red -BackgroundColor Yellow 
    } 
} 
+0

Sure. Покажите нам код, который у вас есть, и объясните, в какой конкретной проблеме вы столкнулись, и мы поможем вам улучшить ситуацию. –

+0

Я не получаю правильный вывод, приложил сценарий, который я попробовал – Bunny

+0

Пожалуйста, отредактируйте ваш вопрос. Как вы можете видеть, код, как правило, становится нечитаемым в комментарии. Если вы не получаете правильный вывод, вам также необходимо предоставить ввод образца, а также фактический и желаемый результат. –

ответ

0

Я исправил свой сценарий, попробуйте следующее:

$n = get-adgroupmember "Contractor" | sort-object |foreach {get-aduser $_.SamAccountName} 
$group = "Employee" 
Foreach ($u in $n){ 
    $get = (get-aduser $u.SamAccountName -Properties * | Select-Object memberof) 
     if ($get.memberof -match $group) { 
      Write-Host "$($u.name) is ok. They're in both groups." } 
     Else { write-host $($u.name) " is not a member" -ForegroundColor Red -BackgroundColor Yellow 
     } 
} 
+0

Привет, я все равно получаю одинаковый результат, его список пользователей группы «Подрядчики» – Bunny

+0

Должны ли пользователи из Employee? – kekimian

+0

Нет ... он должен указывать пользователей, не входящих в «Работник» и «Подрядчик». – Bunny

1
$AllUsers = Get-ADUser -Filter * -Properties memberof 
foreach ($User in $AllUsers) { 
    if (($User.memberof -match "Employee") -and ($User.memberof -match "Contractor")) { 
     Write-Host -ForegroundColor Green "$($User.samaccountname) in both groups" 
    } else { 
     Write-Host -ForegroundColor Red "$($User.samaccountname) not in both groups" 
    } 
} 
+0

Это работает спасибо, я помечаю это как ответил – Bunny

+0

Отлично, спасибо за редактирование Matt :). пожалуйста, отметьте, если вы довольны ответом. – Oggew

+0

Я подозреваю, что логика выключена и что OP нуждается во всех пользователях, которые не входят в одну из групп. Я подозреваю, что пользователи должны быть в одном или другом, но не в обоих. В любом случае, ОП забыл проголосовать, чтобы дать кредит, и отметить ответ. – Xalorous

Смежные вопросы