iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: # Показ драйверов в системе [CmdletBinding(DefaultParameterSetName)] param ( [Parameter(ParameterSetName = "ViewGroup")] [switch] $ViewGroup, # сгруппированные по имени файла [Parameter(ParameterSetName = "ViewMoreOne")] [switch] $ViewMoreOne, # для которых есть более одной версии [Parameter(ParameterSetName = "ViewOldVersion")] [switch] $ViewOldVersion, # устаревшие версии [Parameter(ParameterSetName = "ViewOldDate")] [switch] $ViewOldDate, # устаревшей датой [Parameter(ParameterSetName = "Table")] [switch] $Table # все, в виде таблицы, с полями IsOldVersion и IsOldDate ) $Drivers = Get-WindowsDriver -Online $Grouped = $Drivers | Group-Object -Property { ([IO.FileInfo] $_.OriginalFileName).Name } if ($ViewGroup) { $Grouped ; return } $MoreOne = $Grouped | Where-Object -Property Count -GT 1 if ($ViewMoreOne) { $MoreOne ; return } $OldVers = $MoreOne | ForEach-Object -Process { $_.Group | Sort-Object -Property { [Version] $_.Version } | Select-Object -SkipLast 1 } if ($ViewOldVersion) { $OldVers ; return } $OldDate = $MoreOne | ForEach-Object -Process { $_.Group | Sort-Object -Property { $_.Date } | Select-Object -SkipLast 1 } if ($ViewOldDate) { $OldDate ; return } foreach ($item in $Drivers) { if ($item -in $OldVers) { $item | Add-Member -MemberType NoteProperty -Name IsOldVersion -Value $true } else { $item | Add-Member -MemberType NoteProperty -Name IsOldVersion -Value $false } } foreach ($item in $Drivers) { if ($item -in $OldDate) { $item | Add-Member -MemberType NoteProperty -Name IsOldDate -Value $true } else { $item | Add-Member -MemberType NoteProperty -Name IsOldDate -Value $false } } if ($Table) { $Drivers | Sort-Object -Property ClassName, ProviderName, Date | Format-Table -Property Driver, CatalogFile, ClassDescription, ProviderName, Date, Version, BootCritical, IsOldVersion, IsOldDate return } $Drivers |
|