Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

YuS 2



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
)
 
function Grouped ($a) {
    $a | Group-Object -Property { ([IO.FileInfo] $_.OriginalFileName).Name }
}
function MoreOne ($b) {
    $b | Where-Object -Property Count -GT 1
}
function OldVers ($c) {
    $c | ForEach-Object -Process { $_.Group | Sort-Object -Property { [Version] $_.Version } | Select-Object -SkipLast 1 }
}
function OldDate ($d) {
    $d | ForEach-Object -Process { $_.Group | Sort-Object -Property { $_.Date } | Select-Object -SkipLast 1 }
}
 
$Drivers = Get-WindowsDriver -Online
 
[bool[]]$arr = $ViewGroup,$ViewMoreOne,$ViewOldVersion,$ViewOldDate
switch ([convert]::toint32(($bin = -join [int[]]$arr),2)){
    "1"{$Grouped = Grouped $Drivers; $MoreOne = MoreOne $Grouped;OldDate $MoreOne;break}
    "2"{$Grouped = Grouped $Drivers; $MoreOne = MoreOne $Grouped;OldVers $MoreOne;break}
    "4"{$Grouped = Grouped $Drivers; MoreOne $Grouped;break}
    "8"{Grouped $Drivers;break}
}
if ([int]$bin){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
} else {$Drivers}

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 10:26 27-08-2020
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru