Powershell 审核远程服务器上的本地用户帐户

Powershell 审核远程服务器上的本地用户帐户,powershell,Powershell,我正在尝试对环境中所有服务器的本地用户帐户进行审核。我遇到了一个问题,输出被划分为每个设备的单独表,这对于成千上万的设备来说是行不通的!它应该只是一个大表,中间没有重复的标题或空格。一旦运行,它将导出到CSV进行进一步分析 例如: 电脑类 名称 启用 PasswordChangeableDate 密码过期 用户可以更改密码 设备1 管理员 假的 2021年2月27日上午5:00:05 真的 设备1 默认帐户 假的 真的 设备1 客人 假的 假的 设备1 WDAGUtilityAccount 假的

我正在尝试对环境中所有服务器的本地用户帐户进行审核。我遇到了一个问题,输出被划分为每个设备的单独表,这对于成千上万的设备来说是行不通的!它应该只是一个大表,中间没有重复的标题或空格。一旦运行,它将导出到CSV进行进一步分析

例如:

电脑类 名称 启用 PasswordChangeableDate 密码过期 用户可以更改密码 设备1 管理员 假的 2021年2月27日上午5:00:05 真的 设备1 默认帐户 假的 真的 设备1 客人 假的 假的 设备1 WDAGUtilityAccount 假的 2020年1月24日下午7:30:01 2020年4月22日下午8:30:01 真的 设备1 窗口帮助 真的 2021年2月27日上午5:00:05 真的 设备1 窗口查询 真的 2021年2月27日上午5:00:05 2021年5月27日上午6:00:05 真的
我认为这应该足够了:

$Result = 
Invoke-Command -ComputerName (Get-Content "list.txt") -ScriptBlock {
    Get-LocalUser | 
        Select-Object -Property PSComputerName, Name, Enabled, PasswordChangeableDate, PasswordExpires, UserMayChangePassword, PasswordRequired, PasswordLastSet, LastLogon 
}
$Result | Format-Table -AutoSize
参数
-ComputerName
可以采用一个ComputerName数组。你不需要一个循环

不应在循环中使用类似于
format Table
的format cmdlet。特别是当您计划使用收集的数据执行进一步的步骤时。首先收集所有需要的信息-可能将它们保存在变量中,当您将它们输出到控制台时,可以使用format cmdlet。现在,如果您想将收集的数据输出到CSV文件,可以执行以下操作

$Result | Export-Csv -Path LocalUserList.csv -NotypeInformation -Delimiter ','

如果您发现自己在处理表格,您应该注意