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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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) {
    $x = Grouped $b
    $x | Where-Object -Property Count -GT 1
}
function OldVers ($c) {
    $x = MoreOne $c
    $x | ForEach-Object -Process {
        $_.Group | Sort-Object -Property { [Version] $_.Version },{ $_.Date } |
        Select-Object -SkipLast 1  
    }
}
function OldDate ($d) {
    $x = MoreOne $d
    $x | ForEach-Object -Process {
        $_.Group | Sort-Object -Property { $_.Date },{ [Version] $_.Version } |
        Select-Object -SkipLast 1  
    }
}
function Add-PropDrivers ($e) {
    $x = OldVers $e
    $y = OldDate $e
    foreach ($item in $script:Drivers) {
        if ($item -in $x) {
            $item | Add-Member -MemberType NoteProperty -Name IsOldVersion -Value $true
        } else {
            $item | Add-Member -MemberType NoteProperty -Name IsOldVersion -Value $false
        }
        if ($item -in $y) {
            $item | Add-Member -MemberType NoteProperty -Name IsOldDate -Value $true
        } else {
            $item | Add-Member -MemberType NoteProperty -Name IsOldDate -Value $false
        }
    }
}
$Drivers = Get-WindowsDriver -Online
 
[bool[]]$arr = $ViewGroup,$ViewMoreOne,$ViewOldVersion,$ViewOldDate,$Table
switch ([convert]::toint32((-join [int[]]$arr),2)){
    "0"{
        Add-PropDrivers $Drivers; $Drivers;    break
    }
    "1"{    
        Add-PropDrivers $Drivers
        $Drivers | Sort-Object -Property ClassName, ProviderName, Date |
        Format-Table -Property Driver, CatalogFile, ClassDescription, ProviderName, `
        Date, Version, BootCritical, IsOldVersion, IsOldDate
        break
    }
    "2"{OldDate $Drivers;break}
    "4"{OldVers $Drivers;break}
    "8"{MoreOne $Drivers;break}
    "16"{Grouped $Drivers;break}
}
 

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 01:12 28-08-2020 | Исправлено: YuS 2, 01:22 28-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