我需要检查网络中的哪些设备, 其中没有OS版本1809 Windows 10,我需要进行扫描以确定那些设备从AD中提取数据。
Try{$Domain = $(get-addomain).dnsroot}
Catch{$Domain = ""}
$Log = "C:\Temp\Audit\$Domain OS Compliance $(get-date -f yyyy-MM-dd).csv"
$Computers = Get-ADComputer -Filter {Enabled -eq $True} -Property * |
Select Enabled,Name,OperatingSystem,OperatingSystemVersion
foreach ($Computer in $Computers)
{
#properties
$Version = $Computer.OperatingSystemVersion
$Enabled = $Computer.Enabled
$Name = $Computer.Name
$OS = $Computer.OperatingSystem
}
#Windows10 Build 1908 check
If($OS -like "Windows 10*")
{
$Type = "Computer"
$CountComputers++
$Build = "1908"
$obj = New-Object PSobject
$obj | Add-Member NoteProperty -Name "Enabled" -Value $Enabled
$obj | Add-Member NoteProperty -Name "Name" -Value $Computer.Name
$obj | Add-Member NoteProperty -Name "Operating System" -Value
$Computer.OperatingSystem
$obj | Add-Member NoteProperty -Name "Version" -Value $Version
$obj | Add-Member NoteProperty -Name "Build" -Value $Build
}
$OutData = $OutData | sort -Property "Type","Name"
$OutData | Export-CSV $Log -notype -Encoding UTF8
write-host "Log Export Complete to $Log" -foregroundcolor yellow
我似乎在调用查询时做错了事。我对Powershell不太了解,任何人都可以分享我或给我任何输入,以便我可以制定自己的代码来帮忙
答案 0 :(得分:1)
在安装了RSAT工具的计算机上(或从DC),您可以使用可以访问域中所有PC /服务器的帐户运行以下命令:
$computers = ( Get-ADComputer -Filter * -Properties DNSHostName ).DNSHostName
$results = Invoke-Command -ComputerName $computers {
switch ( [System.Environment]::OsVersion.Version.Major ) {
10 {
[PSCustomObject]@{ AtLeast1809 = [System.Environment]::OsVersion.Version.Build -ge 18362 }
break
}
default {
[PSCustomObject]@{ AtLeast1809 = $False }
}
}
}
$results | Where-Object { -Not $_.AtLeast1809 } | Select-Object PSComputerName, AtLeast1809
此代码查看当前的主要版本,如果不是10,我们将自动返回$false
。如果是Windows 10,我们将检查构建版本。 Invoke-Command
在域中的所有计算机上运行后,我们将从$results
集合中为版本不低于Windows 10 1809的任何计算机输出,然后选择PSComputerName
属性(使用Invoke-Command
记录结果来自哪台计算机时添加了自动属性)和我们从远程计算机返回的AtLeast1809
属性。
请注意,您可能不想一次对域中的每台计算机/服务器运行此命令。您可能想adjust the filter parameter批量选择您想要的计算机。
Here is the lookup table for Windows 10 versions。 1809是内部版本18362。