PowerShell 2 - 如何查看 90 天不活动的用户帐户

PowerShell 2 - How To View User Accounts That Have Been Inactive For 90 Days

我仅限于 PowerShell 版本 2。

我正在尝试列出超过 90 天未登录的用户帐户。

我一直在尝试为此制作命令但失败了,到目前为止我已经设法制作了以下内容:

Get-WmiObject Win32_UserAccount -Filter "LocalAccount=True" | Where-Object { (New-Timespan -Start $_.LastLogon -End (Get-Date)).Days -ge 90 }

你能帮帮我吗? :)

对于 PowerShell 版本 2,您可以像下面这样使用 Adsi

function Get-LocalUsers {
    Param([string]$ComputerName=$env:COMPUTERNAME)

    [ADSI]$computer="WinNT://$ComputerName"

    $computer.PsBase.Children | Where-Object {$_.SchemaClassName -match "user"} |
    Select-Object @{Name="ComputerName"; Expression={$computer.Name}},
                  @{Name="User"; Expression={$_.PsBase.Properties.Name.Value}},
                  @{Name="Description"; Expression={$_.PsBase.Properties.Description.Value}},
                  @{Name="Disabled"; Expression={[bool]($_.PsBase.Properties.Item("userflags").Value -band 2)}},
                  @{Name="LastLogin"; Expression={ if ($_.PsBase.Properties.LastLogin.Value) {
                                                        [datetime]$_.PsBase.Properties.LastLogin.Value
                                                   } else { "Never" }}}
}

# set the date to compare against to midnight using '.Date'
$refDate = (Get-Date).AddDays(-90).Date
Get-LocalUsers | Where-Object { $_.LastLogin -eq 'Never' -or $_.LastLogin -lt $refDate }