Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Невозможно вызвать метод для выражения со значением NULL

Ответить
Настройки темы
PowerShell - [решено] Невозможно вызвать метод для выражения со значением NULL

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Скрипт
Код: Выделить весь код
$data = & dism /online /get-drivers /format:table | select -Skip 12
$Headers = @( ($data | select -First 1).ToString().Split('|') | %{$_.Trim()} )
$HashTable = $data | select -Skip 2 | 
    ConvertFrom-Csv -Delimiter '|' -Header $Headers | 
        select @{n='FileName';e={$_."$($Headers[1])"}},
               @{n='Class';e={$_."$($Headers[3])"}},
               @{n='Vendor';e={$_."$($Headers[4])"}},
               @{n='Date';e={[datetime]::Parse($_."$($Headers[5])")}},
               @{n='Version';e={$_."$($Headers[6])"}}
Write-Host "All installed third-party drivers"
$HashTable | sort Filename | ft
Write-Host "Different versions"
$last = ''
$NotUnique = @()
foreach ( $Dr in $($HashTable | sort Filename) ) {
    
    if ($Dr.FileName -eq $last  ) {  $NotUnique += $Dr  }
    $last = $Dr.FileName
}
$NotUnique | sort FileName | ft
Write-Host "Outdated drivers"
$list = $NotUnique | select -ExpandProperty FileName -Unique
$ToDel = @()
foreach ( $Dr in $list ) {
    Write-Host "Duplicate found"
    $sel = $HashTable | where { $_.FileName -eq $Dr } | sort date -Descending | select -Skip 1
    $sel | ft

    $ToDel += $sel
}
Write-Host "Drivers to remove"
$ToDel | ft
foreach ( $item in $ToDel ) {
    $Name = $($item.Name).Trim()
    Write-Host "deleting $Name"
    Write-Host "pnputil.exe -d $Name"
    Invoke-Expression -Command "pnputil.exe -d $Name"
}

Имеется скрипт удаления старых драйверов. Функция удаления почему-то не "очень удаляет", выдавая
Скрытый текст
Код: Выделить весь код
Невозможно вызвать метод для выражения со значением NULL.
строка:34 знак:19
+     $FileName = $($item.Name).Trim()
+                   ~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Отправлено: 16:48, 18-07-2017

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


$item.FileName.Trim() - должно быть FileName, вместо Name,т.к. Name - отсутствует.

Отправлено: 17:04, 18-07-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Невозможно вызвать метод для выражения со значением NULL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Регулярные выражения для образки URL ntro123 Скриптовые языки администрирования Windows 4 22-02-2014 21:59
[решено] Указание data = null для MySQL с использованием php cibin Вебмастеру 3 08-07-2012 16:48
[решено] RunAs, как вызвать msgbox для ввода пароля? HFShak AutoIt 2 17-01-2012 12:29
CMD/BAT - Узнать версию файла и сравнить со значением Fresh96 Скриптовые языки администрирования Windows 3 10-11-2011 08:34
[решено] Как установить Resizing метод для StatusBar? beve AutoIt 1 29-09-2009 16:14




 
Переход