none
Ajuda com script por favor! RRS feed

  • Pergunta

  • Boa tarde, estou escrevendo um script para diariamente receber uma lista de usuários AD, desativa-los, move-los para uma OU e adicionar uma descrição. 

    No momento, estou conseguindo tudo. Mas preciso verificar antes de executar o script se o usuário pertence a tal grupo, se pertencer, pular para o próximo sem executar. 

    Obrigado

    Segue script abaixo:

    =========================================================================

    Import-Module ActiveDirectory
    $today = Get-Date -UFormat "%d/%m/%Y %R"

    Import-CSV "C:\script\desativar.csv" |
    ForEach {
            Get-ADUser -Identity $_.samaccountname | where -Property Enabled -eq $true `
            | Set-ADUser -replace @{description="Desabilitado por script em: $today"}

            Get-ADUser -Identity $_.samaccountname | where -Property Enabled -eq $true `
            | Move-ADObject -TargetPath "OU=Desabilitados,DC=daniel,DC=infra" -PassThru `
            | Disable-ADAccount
    }

    ========================================================================

    terça-feira, 29 de novembro de 2022 16:15

Todas as Respostas

  • Você pode adicionar uma verificação antes de executar o resto do script para verificar se o usuário pertence a um determinado grupo:

    Import-Module ActiveDirectory
    $today = Get-Date -UFormat "%d/%m/%Y %R"
    $groupName = "GroupName"

    Import-CSV "C:\script\desativar.csv" |
    ForEach {
        $user = Get-ADUser -Identity $_.samaccountname
        if ($user.MemberOf -notcontains (Get-ADGroup -Identity $groupName)) {
            $user | where -Property Enabled -eq $true `
            | Set-ADUser -replace @{description="Desabilitado por script em: $today"}

            $user | where -Property Enabled -eq $true `
            | Move-ADObject -TargetPath "OU=Desabilitados,DC=daniel,DC=infra" -PassThru `
            | Disable-ADAccount
        }
    }

    quinta-feira, 2 de fevereiro de 2023 17:15