Obtém uma lista de usuários que são administradores de domínio e não fizeram login nos últimos 30 dias?

1

Como posso obter uma lista de usuários do AD que são administradores de domínio e não fizeram login nos últimos 30 dias?

    
por user360071 11.06.2016 / 15:42

3 respostas

2

user360071, aqui está um script do PowerShell que fará o que você quiser.

Import-Module ActiveDirectory
$Age = 30
$When = ((Get-Date).AddDays(-$Age)).Date
$Members = (Get-ADGroupMember -Identity "Domain Admins" -Recursive).DistinguishedName
Foreach ($Member in $Members) {
Get-ADUser -Identity $Member -Property LastLogonDate | Where LastLogonDate -lt $When | Select SamAccountName,UserPrincipalName,LastLogonDate | Export-CSV -Path $env:USERPROFILE\Desktop\users.csv -NoTypeInformation -Append
}

Você pode fazer uma pequena alteração para escolher por quanto tempo deseja procurar uma conta que não tenha efetuado login. Aqui está a versão alterada.

Import-Module ActiveDirectory
$Age = Read-Host "Accounts that have not been logged into in the last how many days should be shown?"
$When = ((Get-Date).AddDays(-$Age)).Date
$Members = (Get-ADGroupMember -Identity "Domain Admins" -Recursive).DistinguishedName
Foreach ($Member in $Members) {
Get-ADUser -Identity $Member -Property LastLogonDate | Where LastLogonDate -lt $When | Select SamAccountName,UserPrincipalName,LastLogonDate | Export-CSV -Path $env:USERPROFILE\Desktop\users.csv -NoTypeInformation -Append
}

Resposta atualizada

Olá, user360071. Quando você quiser adicionar outra solicitação à sua pergunta ou precisar esclarecer o que está tentando fazer, edite sua pergunta e salve as alterações.

Em sua adição, você adicionou que deseja salvar os resultados em um arquivo do Excel.

Você tentou >> users.csv , mas o arquivo do Excel está vazio. No PowerShell, o que você quer fazer é | Export-CSV users.csv . Os scripts foram atualizados com isso.

    
por 11.06.2016 / 16:15
0

Para implementar a sugestão de user5870571 com >> users.csv (caso seu arquivo esteja em branco - o meu também foi) faça o seguinte:

1) salve o script abaixo em um arquivo .ps1. Observe que eu removi Export-Csv

    Import-Module ActiveDirectory
    $Age = Read-Host "Accounts that have not been logged into in the last how many days should be shown?"
    $When = ((Get-Date).AddDays(-$Age)).Date
    $Members = (Get-ADGroupMember -Identity "Domain Admins" -Recursive).DistinguishedName
    Foreach ($Member in $Members) {
    Get-ADUser -Identity $Member -Property LastLogonDate | Where LastLogonDate -lt $When | Select SamAccountName,UserPrincipalName,LastLogonDate
}

2) depois de salvar o arquivo, navegue até ele a partir de um prompt de powershell elevado e adicione >> users.csv no final.

Por exemplo, eu nomeei meu arquivo get-dausers.ps1 e salvei na área de trabalho, abri um prompt do PowerHell e naveguei para ele, então digitei .\get-dausers.ps1 >> users.csv - isso gerará um arquivo .csv na área de trabalho e não estará vazio mais.

    
por 16.06.2016 / 22:44
0

Para construir a postagem de user5870571 -

Eu recomendaria usar a propriedade LastLogonTimestamp da conta do ADUser, em vez do LastLogonDate .

lastLogon vs. lastLogonTimestamp no Active Directory

  • O lastlogon é atualizado apenas no controlador de domínio que executa a autenticação e não é replicado.

  • LastLogontimestamp é replicado, mas por padrão somente se for 14 dias ou mais mais antigo que o valor anterior.

Abaixo está o código atualizado. Eu também adicionei o "sort by LastLogon" porque acho que é útil.

Import-Module ActiveDirectory

$Age = Read-Host "Accounts that have not been logged into in the last how many days should be shown?"

$When = ((Get-Date).AddDays(-$Age)).Date

$Members = (Get-ADGroupMember -Identity "Domain Admins" -Recursive).DistinguishedName

Foreach ($Member in $Members) {
    Get-ADUser -Filter {DistinguishedName -eq $Member} -Property LastLogonTimestamp | Where {([datetime]::FromFileTime($_.LastLogonTimestamp)) -lt $When} |
    Select SamAccountName,UserPrincipalName,@{Name="LastLogon";Expression={[datetime]::FromFileTime($_.LastLogonTimestamp)}} | Sort-Object LastLogon |
    Export-CSV -Path $env:USERPROFILE\Desktop\users.csv -NoTypeInformation -Append
}
    
por 23.12.2016 / 00:55