Obrigado por me responder.
Com base no que me falou, isso bloquearia e desbloquearia as conta de usuários quando eu precisasse?
Módulo de importação do ActiveDirectory
Import-Module ActiveDirectory
Lista de pares usuário-data de bloqueio
$UsersAndBlockDates = @(
@{ Username = "jose.couves"; BlockDate = Get-Date -Year 2024 -Month 01 -Day 25 },
@{ Username = "maria.maças"; BlockDate = Get-Date -Year 2024 -Month 02 -Day 10 },
@{ Username = "joao.abacaxis"; BlockDate = Get-Date -Year 2024 -Month 03 -Day 15 }
)
Lista de pares usuário-data de desbloqueio
$UsersAndUnlockDates = @(
@{ Username = "jose.couves"; UnlockDate = Get-Date -Year 2024 -Month 02 -Day 25 },
@{ Username = "maria.maças"; UnlockDate = Get-Date -Year 2024 -Month 03 -Day 10 },
@{ Username = "joao.abacaxis"; UnlockDate = Get-Date -Year 2024 -Month 04 -Day 15 }
)
Função para bloquear um usuário
function Block-User($Username, $BlockDate) {
$User = Get-ADUser -Identity $Username
Set-ADAccountExpiration -Identity $User -DateTime $BlockDate -Verbose
Start-Sleep -Seconds 5
}
Função para desbloquear um usuário
function Unblock-User($Username, $UnlockDate) {
$User = Get-ADUser -Identity $Username
Set-ADAccountExpiration -Identity $User -DateTime $UnlockDate -Verbose
Start-Sleep -Seconds 5
}
Bloquear usuários
foreach ($UserAndBlockDate in $UsersAndBlockDates) {
Block-User -Username $UserAndBlockDate.Username -BlockDate $UserAndBlockDate.BlockDate
}
Desbloquear usuários
foreach ($UserAndUnlockDate in $UsersAndUnlockDates) {
Unblock-User -Username $UserAndUnlockDate.Username -UnlockDate $UserAndUnlockDate.UnlockDate
}
Verificar se os usuários foram bloqueados e desbloqueados corretamente
foreach ($UserAndBlockDate in $UsersAndBlockDates) {
$Username = $UserAndBlockDate.Username
$BlockDate = $UserAndBlockDate.BlockDate
$User = Get-ADUser -Identity $Username
Write-Host "$Username está bloqueado em $BlockDate: $($User.AccountExpirationDate -eq $BlockDate)"
}
foreach ($UserAndUnlockDate in $UsersAndUnlockDates) {
$Username = $UserAndUnlockDate.Username
$UnlockDate = $UserAndUnlockDate.UnlockDate
$User = Get-ADUser -Identity $Username
Write-Host "$Username está desbloqueado em $UnlockDate: $($User.AccountExpirationDate -eq $UnlockDate)"
}