Удаление нескольких приложений с помощью powershell? - PullRequest
0 голосов
/ 31 октября 2011

Я хочу создать скрипт для удаления нескольких приложений. Я хочу сделать это без взаимодействия с пользователем, как только я запустил скрипт.

Это сценарий, который у меня есть до сих пор; это не работает, но, надеюсь, вы увидите, что я пытаюсь сделать:

$App = Get-Content "C:\ListOFApps.txt" #get a list of apps
$args= '/quiet /norestart' # stores arguments for start-process 

#gwmi gets the list of applications 
# where selects just the apps im interested in removing 
# start-process removes each app using msiexec with quiet and norestart options 

gwmi win32_product | where { $App -contains $_.Name } | foreach {Start-Process 'msicexec /uninstall ' $_.IdentifyingNumber -ArgumentList $args -wait}'

Произошла ошибка:

ForEach-Object : Cannot process command because of one or more missing mandatory parameters: Process.
At C:\Users\username\AppData\Local\Temp\406f96a1-19b4-4e0d-af1b-b1ac2e32a6ba.ps1:3 char:62
+ gwmi win32_product| where { $App -contains $_.Name }| foreach <<<<  
+ CategoryInfo          : InvalidArgument: (:) [ForEach-Object], ParameterBindingException
+ FullyQualifiedErrorId : MissingMandatoryParameter,Microsoft.PowerShell.Commands.ForEachObjectCommand
 $_.IdentifyingNumber
Start-Process 'msicexec /uninstall $_.IdentifyingNumber' -ArgumentList $args -wait 

Ответы [ 2 ]

1 голос
/ 31 октября 2011

У вас есть несбалансированная одинарная кавычка в конце строки с "foreach". Я подозреваю, что это только начало ваших проблем. Удачи.

0 голосов
/ 23 октября 2013

Также у вас есть Процесс с ошибкой.Должно быть "msiexec", а не "msicexec"

...