На заметку себе (может потом пригодится).
Хотел написать скрипт для замены/удаления раздела реестра. Вообще сначала я хотел написать скрипт для удаления из контекстного меню файла пункта Print (Печать). На мой взгляд это один из самых бесполезных пунктов меню. По аналогии с ним я хотел удалить пункт меню для встроенной программы Windows Photo Viewer. Меня тоже ужасно раздражает, что можно на практически любом файле-картинке нажать ПКМ и установить его как обои рабочего стола. Сначала я думал написать метод, который перебирает ветку реестра HKLM\Software\Classes и ищет там все подразделы, где присутствует что-то вроде shell\print\command и, если найдено, удалить print. Начал отсюда:
$stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
$stopwatch.Start()
$registryPath = "HKLM:\Software\Classes"
$items = Get-ChildItem -Path $registryPath –Recurse -Depth 2
$idx = 0
foreach ($item in $items)
{
$idx++
Write-Output "$idx. $item"
}
$elapsedtime = $stopwatch.Elapsed
$stopwatch.Stop()
Write-Output "Done in $elapsedtime"
Вывод скрипта я здесь приводить не буду (приведу лишь последние строчки), т.к. в результате его работы было найдено 112676 записей и его выполнение заняло больше 2-х минут:
112669. HKEY_LOCAL_MACHINE\Software\Classes\zapfile 112670. HKEY_LOCAL_MACHINE\Software\Classes\zapfile\DefaultIcon 112671. HKEY_LOCAL_MACHINE\Software\Classes\zapfile\shell 112672. HKEY_LOCAL_MACHINE\Software\Classes\zapfile\shell\open 112673. HKEY_LOCAL_MACHINE\Software\Classes\zapfile\shell\print 112674. HKEY_LOCAL_MACHINE\Software\Classes\zapfile\shell\printto 112675. HKEY_LOCAL_MACHINE\Software\Classes\{2C256447-3F0D-4CBB-9D12-575BB20CDA0A} 112676. HKEY_LOCAL_MACHINE\Software\Classes\{2C256447-3F0D-4CBB-9D12-575BB20CDA0A}\ProgID Done in 00:02:02.1831886
Так что теперь буду не искать нужные значения по реестру, а использовать заготовленные заранее пути к ключам реестра.
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024