Как удалить программу через Powershell? - PullRequest
1 голос
/ 09 мая 2020

Я хочу создать функцию для удаления программы через powershell. Я не могу понять, как именно это сделать.

Мой код:

function RemoveProgram {
    $app = Get-CimInstance -Class Win32_Product | Where-Object {
        $_.Name -match $args
    }
    $app.Uninstall()
}

Однако, когда я запускаю это, я получаю

Method invocation failed because [Microsoft.Management.Infrastructure.CimInstance] does not contain a method named 'Uninstall'.

Есть ли у кого-нибудь советы, как это сделать лучше?

Ответы [ 3 ]

0 голосов
/ 09 мая 2020

Устанавливается только Powershell 5 и msi. Win32_Product также является только msi и проверяет каждый msi при запуске, поэтому он такой медленный.

function RemoveProgram {
  get-package *$args* | uninstall-package
}
0 голосов
/ 19 мая 2020

Итак, я действительно смог найти способ сделать это без создания собственной функции. Я использовал модуль под названием ProgramManagement. https://github.com/pldmgg/ProgramManagement

Надеюсь, это поможет, и спасибо всем, кто пытался помочь мне решить эту проблему!

0 голосов
/ 09 мая 2020

Этот код будет работать. Однако для запуска может потребоваться время.

param(
    [string] $programToUninstall = "BlueJeans"    
)

function RemoveProgram([string] $program) {
    Invoke-CimMethod `
        -Query ('select * from Win32_Product where name like "%' + $program + '%"') `
        -MethodName "Uninstall" 
}

RemoveProgram -program $programToUninstall
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...