如何在Windows操作系统中枚举用户账户并获取详细的账户信息?

如何在Windows操作系统中枚举用户账户并获取详细的账户信息?

我想从远程 Linux 机器获取 Windows 操作系统中的所有用户帐户信息。Windows 操作系统中没有任何服务或功能可以支持它。现在我使用 WinRM 连接到 Windows 操作系统。我远程执行 cmd 命令,例如“net user”。有没有更好的方法可以替代目前的解决方案?

答案1

我经常使用“列出远程计算机的本地用户“Prakash Kumar 的 PowerShell 脚本。该脚本使用 WMI 获取用户列表并以良好的格式导出它们。

get-content "Servers.txt" | foreach-object { 
$Comp = $_ 
if (test-connection -computername $Comp -count 1 -quiet) 
{ 
    ([ADSI]"WinNT://$comp").Children | ?{$_.SchemaClassName -eq 'user'}                 | %{ 
                    $groups = $_.Groups() | %{$_.GetType().InvokeMember("Name",     'GetProperty', $null, $_, $null)} 
                    $_ | Select @{n='Server';e={$comp}}, 
                    @{n='UserName';e={$_.Name}}, 
                    @{n='Active';e={if($_.PasswordAge -like 0){$false} else{$true}}}, 
                    @{n='PasswordExpired';e={if($_.PasswordExpired){$true}     else{$false}}}, 
                    @{n='PasswordAgeDays';e={[math]::Round($_.PasswordAge[0]/86400,0)}}, 
                    @{n='LastLogin';e={$_.LastLogin}}, 
                    @{n='Groups';e={$groups -join ';'}}, 
                    @{n='Description';e={$_.Description}} 

                 }  
           } Else {Write-Warning "Server '$Comp' is Unreachable hence Could not fetch     data"} 
     }|Export-Csv -NoTypeInformation LocalUsers.csv 

相关内容