【问题标题】:Audit Local User Accounts on Remote Servers审核远程服务器上的本地用户帐户
【发布时间】:2021-02-26 23:45:01
【问题描述】:

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

例子:

Computer Name Enabled PasswordChangeableDate PasswordExpires UserMayChangePassword
Device 1 Administrator False 2/27/2021 5:00:05 AM True
Device 1 DefaultAccount False True
Device 1 Guest False False
Device 1 WDAGUtilityAccount False 1/24/2020 7:30:01 PM 4/22/2020 8:30:01 PM True
Device 1 WindowsHelp True 2/27/2021 5:00:05 AM True
Device 1 WindowsQuery True 2/27/2021 5:00:05 AM 5/27/2021 6:00:05 AM True
Computer Name Enabled PasswordChangeableDate PasswordExpires UserMayChangePassword
Device 2 Administrator False 2/27/2021 5:00:05 AM True
Device 2 DefaultAccount False True
Device 2 Guest False False
Device 2 WDAGUtilityAccount False 1/24/2020 7:30:01 PM 4/22/2020 8:30:01 PM True
Device 2 WindowsHelp True 2/27/2021 5:00:05 AM True
Device 2 WindowsQuery True 2/27/2021 5:00:05 AM 5/27/2021 6:00:05 AM True

代码片段

foreach ($device in Get-Content "list.txt"){
    Invoke-Command -ComputerName $device -ScriptBlock{
        get-localuser | select @{N="Computer"; E={$env:COMPUTERNAME}}, Name, Enabled, PasswordChangeableDate, PasswordExpires, UserMayChangePassword, PasswordRequired, PasswordLastSet, LastLogon | ft -a
    }  
}

我的问题是:

  1. 如何更正此问题以将输出合并到一个表中?
  2. 有更好的方法吗? (我当然希望如此!)

【问题讨论】:

  • 如果您发现自己在使用表格,您应该注意ImportExcel

标签: powershell


【解决方案1】:

我认为这应该足够了:

$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 可以采用计算机名数组。你不需要循环。

您不应该在循环中使用像 Format-Table 这样的格式 cmdlet。尤其是当您使用收集的数据计划进一步的步骤时。首先收集所有需要的信息——也许将它们保存在一个变量中,当你将它们输出到控制台时,你可以使用格式 cmdlet。现在,如果您想将收集的数据输出到 CSV 文件,您可以执行以下操作。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多