Listar usuários locais, membros do grupo e status Habilitado para um único arquivo csv usando o Powershell

1

Estou tentando criar um arquivo .csv listando todos os usuários locais, as associações de grupo de cada usuário e se a conta de usuário está ativada ou não usando o Powershell.

Encontrei isso responda que eu ' Consegui modificar para fazer uma iteração em uma lista de máquinas na rede e descobri como enviar para um único arquivo csv, mas preciso incluir o nome da máquina em meu arquivo de saída. Obrigado por qualquer ajuda / dicas ...

Function Check-Enabled ($Username) 
{
-not (Get-WmiObject Win32_UserAccount -filter "LocalAccount=True AND Name='$Username'").disabled
}

$Nodes= "Machine1", "Machine2", "Machine3"

ForEach ($Node in $Nodes)
{  
$adsiPath = ("WinNT://" + $Node)
$adsi = [ADSI]$adsiPath 

If (Test-Connection -BufferSize 32 -Count 1 -ComputerName $Node -Quiet)
    {
        $SingleMachine = $adsi.Children | where { $_.SchemaClassName -eq 'user' } | ForEach-Object {
            $groups = $_.Groups() | ForEach-Object {
                $_.GetType().InvokeMember('Name', 'GetProperty', $null, $_, $null)
            }
            $_ | Select-Object @{n='UserName';e={$_.Name}},
                               @{n='Groups';e={$groups -join ';'}},
                               @{n='Enabled';e={Check-Enabled $_.Name}}
        } 
        $AllMachines += $SingleMachine  
    }     
}

$AllMachines | Export-CSV -NoTypeInformation -Path ("C:\Users\"+$env:UserName+"\Desktop\AR-SingleFile.csv")
    
por BradyM 18.08.2017 / 09:15

1 resposta

0

Insere outra propriedade calculada no Select-Object

        $_ | Select-Object @[n='Node';e={$Node}},
                           @{n='UserName';e={$_.Name}},
                           @{n='Groups';e={$groups -join ';'}},
                           @{n='Enabled';e={Check-Enabled $_.Name}}
    
por 20.08.2017 / 09:13

Tags