将 2 个 PowerShell 命令合并为 1 个

将 2 个 PowerShell 命令合并为 1 个

我有一个 powershell 命令来列出所有 AD 计算机的上次登录日期

Get-ADComputer -Filter {enabled -eq $true} -properties * | select Name, LastLogonDate | Sort LastLogondate -Descending  | Export-csv c:\co.csv

另一个命令列出所有广告计算机

dsquery * domainroot -filter "(&(objectCategory=computer)(operatingSystem=Windows XP*))" -limit 1000 > c:\XP_Machines.txt

因此,如果我们可以过滤所有 xp 计算机和上次登录,我们就可以列出所有未使用的 xp 计算机并升级我们正在使用的计算机

答案1

由于操作系统有一个 AD 属性,您可以直接将其添加到命令的过滤器中:

Get-ADComputer -Filter {(enabled -eq $true) -AND (OperatingSystem -like "*XP*")} -properties LastLogonDate,OperatingSystem | select Name, LastLogonDate, OperatingSystem | Sort LastLogondate -Descending  | Export-csv c:\co.csv

这将获取已启用并安装有 Windows XP 的计算机。

答案2

除了Tobias提供的答案外,还有不同的符号:

$Filter = {(Enabled -eq $True) -and (OperatingSystem -like 'Windows XP*')}
$Properties = 'Enabled','LastLogonDate','OperatingSystem','Name'
$ResultSetSize = '3'
Get-ADComputer -Filter $Filter -Properties $Properties -ResultSetSize $ResultSetSize `
 | Select-Object -Property 'Name','LastLogonDate' `
 | Sort-Object -Property 'LastLogonDate'

Name     LastLogonDate      
----     -------------      
PC12345  10-02-2015 09:55:41 
PC67890  23-11-2015 08:40:49
PCX0000  12-01-2016 15:23:29 

相关内容