|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Powershell-скрипт очистки C:\Windows\Installer |
|
PowerShell - Powershell-скрипт очистки C:\Windows\Installer
|
Новый участник Сообщения: 10 |
Имеется скрипт на сайте: http://www.bryanvine.com/2015/06/pow...eaning-up.html. Как его переделать полностью на PS?
|
|
Отправлено: 13:32, 11-01-2017 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $msi = New-Object -ComObject WindowsInstaller.Installer $savelist = @() $products = $msi.GetType().InvokeMember("Products","GetProperty",$null,$msi,$null) foreach($product in $products) { $patches = $msi.GetType().InvokeMember("Patches","GetProperty",$null,$msi,@($product)) foreach($patch in $patches) { $location = $msi.GetType().InvokeMember("PatchInfo","GetProperty",$null,$msi,@($patch,"LocalPackage")) $savelist += [pscustomobject]@{ ProductCode = $product PatchCode = $patch PatchLocation = $location } } } $filelocation = $savelist | select -ExpandProperty PatchLocation #First pass to remove exact file names dir C:\windows\Installer -file | ForEach-Object{ $fullname = $_.FullName if($filelocation | Where-Object{$_ -like "*$fullname*"}){ "Keeping $fullname" } else{ Remove-Item $fullname -Force -Verbose } } #second pass to match product and patch codes dir C:\windows\Installer -Directory | ForEach-Object{ $fullname = $_.name if($savelist | Where-Object{$_.ProductCode -like "*$fullname*" -or $_.PatchCode -like "*$fullname*" }){ "Keeping $fullname" } else{ Remove-Item $_.fullname -Force -Verbose -Recurse } } |
Отправлено: 14:28, 11-01-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Спасибо большое, но такой вопрос назрел: на виртуалке после очередного запуска его скрипта, папка очистилась совсем. В чем может быть дело?
|
Отправлено: 16:22, 11-01-2017 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - Скрипт Powershell для мониторинга изменений файлов | andorke | Скриптовые языки администрирования Windows | 2 | 06-05-2014 19:48 | |
Любой язык - [решено] Скрипт очистки всех контрольных точек восстановления | Slackerok | Скриптовые языки администрирования Windows | 3 | 16-12-2013 16:49 | |
2008 R2 - [решено] PowerShell скрипт для получения поля ManagedBy | Delirium | Windows Server 2008/2008 R2 | 5 | 30-01-2012 05:50 | |
VBS/WSH/JS - [решено] Скрипт очистки папки обмена | stolyar | Скриптовые языки администрирования Windows | 9 | 15-02-2010 08:44 | |
BAT-скрипт для очистки пакетов ForceWare International от "лишних" языков | ShaddyR | Программное обеспечение Windows | 6 | 08-02-2007 10:55 |
|