Скрипты Powershell противоречивое поведение - PullRequest
0 голосов
/ 16 мая 2018

У меня есть два сценария powershell, которые вращаются вокруг заброшенных учетных записей.Эти сценарии должны исключать шесть конкретных подразделений в нашей среде.Первый сообщает обо всех учетных записях, которые потребуют действий.Второй выполняет действие и отключает учетные записи на основе тех же критериев.

По причинам, которые я не могу понять, сценарий отключения оставляет пользователей в нескольких подразделениях, над которыми он не предпринимает никаких действий.Буду признателен за любую помощь.

Вот версия отчета:

  import-module activedirectory

$datestring = Get-Date -f MM-dd-yyyy
$oldDate = [DateTime]::Today.AddDays(-45)
$OUDN1 = "OU=Resource accounts,OU=Domain Users,DC=placeholder,DC=org"
$OUDN2 = "OU=Service Accounts,OU=Domain Users,DC=placeholder,DC=org"
$OUDN3 = "OU=DO NOT DELETE,OU=Disabled Accounts,DC=placeholder,DC=org"
$OUDN4 = "CN=Users,DC=placeholder,DC=org"
$OUDN5 = "OU=User Templates,OU=Domain Users,DC=placeholder,DC=org"
$OUDN6 = "CN=Microsoft Exchange System Objects,DC=placeholder,DC=org"

Get-ADUser -filter {(Enabled -eq $True) -AND ((LastLogonDate -lt $olddate) -OR ((LastLogonDate -notlike "*") -AND (WhenCreated -lt $olddate)))} -Properties DisplayName,Name,LastLogonDate,Modified,info,description,sAMAccountName,WhenCreated | Where-Object {($_.DistinguishedName -notlike "*,$OUDN1") -and ($_.DistinguishedName -notlike "*,$OUDN2") -and ($_.DistinguishedName -notlike "*,$OUDN3")-and ($_.DistinguishedName -notlike "*,$OUDN4") -and ($_.DistinguishedName -notlike "*,$OUDN5") -and ($_.DistinguishedName -notlike "*,$OUDN6")} | Select sAMAccountName,Name,description,LastLogonDate,WhenCreated,Modified,DistinguishedName | Export-CSV c:\Reports\nolog45_$datestring.csv

А вот версия действия:

import-module activedirectory

$disUsers = @()
$oldDate = [DateTime]::Today.AddDays(-45)
$OUDN1 = "OU=Resource accounts,OU=Domain Users,DC=placeholder,DC=org"
$OUDN2 = "OU=Service Accounts,OU=Domain Users,DC=placeholder,DC=org"
$OUDN3 = "OU=DO NOT DELETE,OU=Disabled Accounts,DC=placeholder,DC=org"
$OUDN4 = "CN=Users,DC=placeholder,DC=org"
$OUDN5 = "OU=User Templates,OU=Domain Users,DC=placeholder,DC=org"
$OUDN6 = "CN=Microsoft Exchange System Objects,DC=placeholder,DC=org"

$disUsers = Get-ADUser -filter {(Enabled -eq $True) -AND (LastLogonDate -lt $olddate)} -Properties sAMAccountName,Name,SID,Enabled,LastLogonDate,Modified,info,description,DistinguishedName | Where-Object {($_.DistinguishedName -notlike "*,$OUDN1") -and ($_.DistinguishedName -notlike "*,$OUDN2") -and ($_.DistinguishedName -notlike "*,$OUDN3")-and ($_.DistinguishedName -notlike "*,$OUDN4") -and ($_.DistinguishedName -notlike "*,$OUDN5")  -and ($_.DistinguishedName -notlike "*,$OUDN6")} 

foreach ($name in $disUsers) {
        $DistName = $name.DistinguishedName
        Disable-ADAccount -Identity $DistName -ErrorAction Continue
        }

В сегодняшнем прогоне, например, осталось 30 аккаунтовнайденный сценарий отчета все еще включен.Это были не разрешения, потому что я мог без проблем отключить те же учетные записи вручную.Красный текст не генерировался, ошибки не выводились - казалось бы, игнорировались учетные записи.

Заранее благодарим за помощь.

1 Ответ

0 голосов
/ 16 мая 2018

Критерии в обоих сценариях не совпадают.

У вашего сценария отчетности есть то, чего нет в вашем сценарии действия:

 -OR ((LastLogonDate -notlike "*") -AND (WhenCreated -lt $olddate))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...