Я написал сценарий, который отключил старых пользователей ... и мне нужно сделать список исключений ... список исключений должен быть .csv, с 3 столбцами «Имя», «SamaccountName», «Reason» ... Я как бы застрял с фильтрацией списка исключений ... Я пытался сделать -notmatch и -notcontains и ничего не работал для меня ... i even попытаться сделать Еогеасп с, если, но то же самое ...Отключено ActiveDirectory Пользователей за определенную дату с перечнем исключений
Function Get-ADLockOldUsers {
param()
begin{
[datetime]$myDate = '01/01/1601 02:00:00'
$colObj = @()
$AllUsers = (Get-ADUser -Filter * -Properties lastLogonTimestamp | ? {$_.Enabled} | Select-Object Name,SamAccountName,@{N="LastLogon";E={[datetime]::FromFileTime($_.lastLogonTimestamp)}})
$AllUsers = $AllUsers | ? {(Get-Date).AddDays(-30) -gt $_.LastLogon -and -not ($_.LastLogon -eq $myDate)}
}
process {
$AllUsers | % {
$obj = New-Object psobject
$obj | Add-Member noteproperty 'Name' $_.Name -Force
$obj | Add-Member noteproperty 'SamAccountName' $_.SamAccountName -Force
$obj | Add-Member noteproperty 'LastLogon' $_.LastLogon -Force
$obj | Add-Member noteproperty 'NeedDisabled' $true -Force
$colObj += $obj
}
}
end { return $colObj }
}
Function Set-ADLockUser {
param()
begin{
if (Test-Path '.\excludeusers.csv') {
$excludeUsers = Import-Csv '.\excludeusers.csv'
$DUser = @()
$colUsers = Get-ADLockOldUsers
$colUsers | ? {$_.SamAccountName -notcontains $excludeUsers} | % {Set-ADUser -Identity $_.SamAccountName -Enabled $false -WhatIf }
}
else { Write-Output "Error! excludeusers.csv cannot be found, stop script"; break }
}
process {
}
end{}
}
Set-ADLockUser
Спасибо .. О -propertie s * i не нужно все свойства ... – OhadH
Это должно было быть в безопасности, потому что некоторые свойства по умолчанию не включены. Оператор 'select' фильтрует свойства, которые вам действительно нужны, из всего набора. –