Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Невозможно вызвать метод для выражения со значением NULL (http://forum.oszone.net/showthread.php?t=328439)

farag 18-07-2017 16:48 2752321

Невозможно вызвать метод для выражения со значением NULL
 
Скрипт
Код:

$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


Kazun 18-07-2017 17:04 2752328

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


Время: 14:45.

Время: 14:45.
© OSzone.net 2001-