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 }
我仅限于 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 }