Как удалить PowerShell в Windows 10
Оболочка Windows PowerShell пришла в операционную систему Windows 10 на замену командной строки, хотя командная строка также получила обновление и возможность вставки команд с буфера обмена. Поскольку большинство пользователей привыкли к обычной командной строке, то даже замена пункта командной строки на оболочку PowerShell может показаться навязчивой.
Данная статья расскажет как удалить Windows PowerShell и вернуть командную строку вместо PowerShell в Windows 10. Процесс удаления оболочки заключается в отключении компонента Windows PowerShell 2.0 или же только в замене пункта в контекстном меню. Обратите внимание, что полностью убрать оболочку Windows PowerShell не удастся, даже после полного отключения компонента.
Как вернуть командную строку вместо PowerShell в Windows 10
С выходом нового обновления операционной системы в контекстном меню пуска была сделана замена возможности выбора командной строки на Windows PowerShell. Корпорация Майкрософт оставила за пользователями возможность возврата командной строки вместо PowerShell.
- Открываем Пуск > Параметры > Персонализация > Панель задач.
- Дальше изменяем значение пункта Заменить командную строку оболочкой Windows PowerShell в меню, которое появляется при щелчке правой кнопкой мыши по кнопке Пуск или при нажатии клавиш Windows+X на Отключено.
После чего в контекстном меню пуск появится доступная ранее командная строка. Смотрите также другие способы запуска командной строки в Windows 10. А также заменить PowerShell на командную строку можно использую редактор реестра. Обратите внимание что перед внесением изменений в реестр рекомендуется создать резервную копию реестра, а после внесения изменений необходимо выполнить перезагрузку компьютера или перезапуск проводника.
- Откройте редактор реестра выполнив команду regedit в окне Win+R.
- Дальше перейдите в расположение: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced.
- Измените значение параметра DontUsePowerShellOnWinX на 1.
Как отключить PowerShell в Windows 10
Программы и компоненты
Ранее мы уже рассматривали где находятся программы и компоненты в Windows 10, среди которых и присутствует оболочка Windows PowerShell 2.0. Включение и отключение компонента позволяет добавить или удалить оболочку Windows PowerShell в Windows 10. Полностью удалить компонент из системы последней версии не получится, и собственно в этом нет необходимости.
- Откройте компоненты Windows выполнив команду optionalfeatures в окне Win+R.
- Дальше найдите в открывшемся списке компонент Windows PowerShell 2.0 и отключите его.
Чтобы отключить компонент, достаточно снять его флажок и применить изменения. Затемненный флажок означает, что компонент включен частично.
Windows PowerShell
Для отключения компонента можно использовать сам компонент Windows PowerShell. Пользователю достаточно запустить оболочку PowerShell и выполнить одну команду для отключения любого с компонентов.
- Запускаем оболочку выбрав в результатах поиска классическое приложение Windows PowerShell от имени администратора.
- В открывшемся окне выполняем следующую команду: [stextbox -Online -FeatureName MicrosoftWindowsPowerShellV2Root[/stextbox]
С помощью одной команды можно отключить ненужный компонент Windows PowerShell устаревшей версии. После отключения обновленный PowerShell пятой версии останется доступным.
Вместе с обновлениями Windows 10 обновляются и компоненты операционной системы. Изменения потерпели множество компонентов, начиная от оболочки Windows PowerShelll, и включительно до компонента виртуализации Hyper-V Windows 10.
После отключения компонента Windows PowerShell второй версии обновленный PowerShell останется. Но пользователи предпочитающие видеть командную строку в контекстном меню пуск могут нажатием одной кнопки её вернуть.
Отключение PowerShell и прочие особенности борьбы с Malware. Часть I
Кажется не так давно это было, примерно в 2015 году, мы начали слышать о хакерах, не использовавших вредоносных программ внутри периметра атакуемой цели. А использовали они то, что было под рукой – это были различные инструменты, находившиеся на целевом сайте. Это оказалось идеальным способом, чтобы сделать свое «грязное дело» не поднимая лишнего «шума».
Этот подход в наше время набрал обороты и стал мейнстримом, в первую очередь из-за обилия готовых инструментариев хакеров, таких как PowerShell Empire.
Мы уже писали о том, как PowerShell, когда он дополняется PowerView, становится мощным поставщиком информации для хакеров (вся эта мудрость собрана в нашей подборке, которую вы должны прочитать как можно скорее).
Безусловно, любой инструмент может использоваться как для хорошего так и для плохого, так что я и не думаю тут намекать, что PowerShell был создан, чтобы облегчить жизнь хакерам.
Но так же, как вы бы не оставили сверхмощный болторез рядом с навесным замком, вы, вероятно, не захотите разрешить, или хотя бы сделать это максимально более трудным для хакеров получить в свои руки PowerShell.
Это в свою очередь поднимает большую тему в мире кибербезопасности: ограничение доступа к приложениям, также известную как белые и черные списки доступа. Общая идея в том, чтобы операционная система знала и строго контролировала какие приложения могут быть запущены пользователем, а какие – нет.
Например, будучи homo blogus, мне, как правило, нужны некоторые основные инструменты и приложения (а также теплое местечко, где могу спать ночью), и я прекрасно могу прожить без оболочки PowerShell, netcat, psexec, и всех других команд, о которых я рассказывал в предыдущих постах. То же самое относится к большинству работников в компаниях, и поэтому квалифицированный ИТ-специалист должен быть в состоянии составить список приложений, которые являются безопасными для использования.
В мире Windows, возможно использовать правила на выполнение приложений с помощью специальных ограничивающих политик использования программ, а в последнее время и AppLocker.
Однако, прежде чем мы перейдем к этим передовым идеям, давайте попробуем два очень простых решения, а затем посмотрим, что с ними не так.
ACL и другие упрощения
Мы часто думаем о списках доступа ACL Windows, что они используются для управления доступом к читабельному содержимому. Но они также могут быть применены и к исполняемым файлам — то есть.ехе, .vbs, .ps1 и остальным.
Я вернулся в облако Amazon Web Services, где у меня находится домен Windows для мифической и некогда легендарной компании Acme и там проделал работу с ACL, дабы продемонстрировать некоторые ограничения доступа.
PowerShell .exe, любой системный администратор сможет без труда сказать вам, находится в C:\Windows\System32\WindowsPowerShell\v1.0. Я перешел в эту папку, вызвал ее свойства и моментально ограничил права выполнения PowerShell на 2 основные группы: «Администраторов домена» и «Acme-SnowFlakes”, группы опытных пользователей Acme.
Я перезашел на сервер, как Боб, мой амплуа в компании Acme, и попытался вызвать PowerShell. Результаты ниже.
На практике, вы могли бы, наверняка, придумать скрипт — почему бы не использовать PowerShell чтобы автоматизировать этот процесс настройки ACL для всех ноутбуков и серверов в небольших и средних по размеру компаниях.
Это не плохое решение.
Если вам не нравится идея изменения ACL на исполняемых файлах, PowerShell предлагает свои собственные средства ограничения. Как пользователь с админ-правами, можно использовать, все что угодно, но проще всего встроенный командлет Set-ExecutionPolicy.
Это уже не настолько «топорное» решение, как установка ACL. Например, вы сможете ограничить PowerShell для работы только в интерактивном режиме – с помощью параметра Restricted — так что он не будет выполнять PS-скрипты, которые могут содержать вредоносные программы хакеров.
Однако, это также заблокирует и скрипты PowerShell, запускаемые вашими ИТ-специалистами. Чтобы разрешить одобренные скрипты, но отключить скрипты злобных хакеров, используйте параметр RemoteSigned. Теперь PowerShell будет запускать только подписанные скрипты. Администраторам, конечно, придется создать их собственные сценарии и затем подписать их с использованием проверенных учетных данных.
Я не буду вдаваться в подробности, как это сделать, в основном потому, что это так легко обойти. Кое-кто тут в блоге описал аж 15 способов обхода ограничений безопасности в PowerShell.
Самый простой – это с помощью параметра Bypass в самом PowerShell. Да! (см.ниже).
Похоже на дыру в безопасности, а?
Так что в PowerShell есть несколько основных уязвимостей. Это кстати и понятно, так как это, в конце концов, всего лишь программная оболочка.
Но даже подход ограничений на уровне ACL имеет свои фундаментальные проблемы.
Если хакеры ослабят свою философию, то они смогут запросто скачать, скажем, с помощью трояна удаленного доступа (RAT) — их собственную копию PowerShell.ехе. А затем запустить его напрямую, с легкостью избежав ограничений с разрешениями с локальным PowerShell.
Политики Ограничения Использования Программ
Эти основные дыры в безопасности (как и многие другие) всегда сопровождают потребительский класс операционных систем. Это навело исследователей ОС на мысль придумать безопасную операционную систему, которая бы имела достаточно силы, чтобы контролировать то, что может быть запущено.
В мире Windows, эти силы известны как политики ограничения использования программ (SRP) — для ознакомления, посмотрите это — они настраиваются через редактор Групповых политик.
С их помощью вы сможете контролировать, какие приложения могут быть запущены на основании расширения файла, имен путей, и было ли приложение подписано цифровой подписью.
Самый эффективный, хоть и самый болезненный подход, это запретить все, а потом добавлять туда приложения, которые вам действительно нужны. Это известно как внесение в „белый список“.
Мы разберем это более подробно в следующей части.
В любом случае, вам потребуется запустить редактор политик, gpEdit и перейдите к политике Local Computer Policy>Windows Settings>Security Settings>Software Restriction Polices>Security Levels. Если Вы нажмете на “Запретить (Disallowed)”, то вы можете сделать это политикой безопасности по-умолчанию — не запускать любые исполняемые файлы!
Белый список: запретить по-умолчанию, а затем добавить разрешенные приложения в “Дополнительные правила (Additional Rules)”.
Это больше похоже на тактику выжженной земли. На практике, потребуется ввести “дополнительные правила”, чтобы добавить обратно разрешенные приложения (с указанием их наименования и пути). Если вы выходите из оболочки PowerShell, то вы фактически отключаете этот инструмент на месте.
К сожалению, вы не можете подстроить правила политик ограничения использования программ на основании отдельных групп или пользователей. Блин!
И теперь это логично приводит нас к последнему достижению безопасности Microsoft, известному как AppLocker, который имеет свои уникальные особенности, чтобы разрешить открыть приложение. Поговорим об этом в следующий раз.
Удаление всех приложений Windows 10 с помощью PowerShell
Удаление всех приложений Windows 10 с помощью PowerShell
Перед любыми опасными телодвижениями на компьютере, создайте точку восстановления или сделайте полную резервную копию операционной системы.
После установки Windows 10, вы можете обнаружить, что ваша ОС напичкана приложениями сомнительного характера: Skype, Будильник, Погода, Кино, ТВ, Диктофон, Календарь, Почта, Get Office, Groove Музыка, Камера, Люди, Деньги, OneNote, Ваш телефон, Диктофон и так далее по обширному списку.
Давайте, попробуем удалить некоторые из них при помощи PowerShell, запущенной от имени Администратора (другие многочисленные способы не рассматриваем).
Статья , побудившая написать данный пост.
Выводим список всех установленных пакетов для текущей учетной записи пользователя :
Get-AppxPackage | Select Name, PackageFullName
Ёптимьё, как их много, скажете вы и будете правы. Огромный пчелиный рой жужжащий в фоновом режиме. Сохраняем список в файл . Команда может быть такая (если есть желание сохранить список на Рабочем столе):
Get-AppxPackage | Select Name, PackageFullName >»$env:userprofile\Desktop\Apps_List.txt»
Или такая (всё зависит от вашей версии Windows 10):
Get-AppxPackage | Select Name, PackageFullName >»$env:userprofile\OneDrive\Рабочий стол\Apps_List.txt»
Удаление отдельно взятых приложений :
Замените PackageFullName в приведенной выше команде фактическим приложением, например:
Удаление приложения без указания полного имени пакета :
Get-AppxPackage *Microsoft.SkypeApp* | Remove-AppxPackage
Удаление приложений из всех учетных записей пользователей :
Get-AppxPackage -allusers *PackageName* | Remove-AppxPackage
При создании нового пользователя приложение по умолчанию будут установлены заново. Удаление приложений для новых учетных записей :
Get-AppxProvisionedPackage –online | where-object <$_.packagename –like "*PackageName*">| Remove-AppxProvisionedPackage –online
Удаление всех пакетов, с сохранением Магазина Windows :
Get-AppxPackage -AllUsers | where-object <$_.name –notlike "*store*">| Remove-AppxPackage
Далее, отмечу следующее: удалять Магазин Windows (Microsoft.WindowsStore), нельзя, как бы нам этого не хотелось.
Если бесшабашно удалите все пакеты, могут возникнуть мелкие неприятности. Например, у меня исчезла возможность просмотра картинок. Потому, что «Microsoft.Windows.Photos» была удалена, а в новых версиях Windows 10, такое приложение, как «Просмотр фотографий Windows» скрыто. Следовательно, нужно обратно восстанавливать из Магазина, такой инструмент, как «Microsoft.Windows.Photos» или установить классическое средство «Просмотр фотографий Windows».
В PowerShell запущенной от имени администратора, выведите следующую команду:
If ( -Not ( Test-Path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll»))
If ( -Not ( Test-Path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell»))
If ( -Not ( Test-Path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open»))
Set-ItemProperty -path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open» -Name «MuiVerb» -Type «String» -Value «@photoviewer.dll,-3043»
If ( -Not ( Test-Path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\command»))
Set-ItemProperty -path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\command» -Name «(Default)» -Type «ExpandString» -Value «%SystemRoot%\System32\rundll32.exe `»%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`», ImageView_Fullscreen %1″
If ( -Not ( Test-Path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\DropTarget»))
Set-ItemProperty -path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\DropTarget» -Name «Clsid» -Type «String» -Value «
«
If ( -Not ( Test-Path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print»))
If ( -Not ( Test-Path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\command»))
Set-ItemProperty -path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\command» -Name «(Default)» -Type «ExpandString» -Value «%SystemRoot%\System32\rundll32.exe `»%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`», ImageView_Fullscreen %1″
If ( -Not ( Test-Path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\DropTarget»))
Set-ItemProperty -path «Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\DropTarget» -Name «Clsid» -Type «String» -Value «<60fd46de-f830-4894-a628-6fa81bc0190d>«
Гы-гы ¯\_(ツ)_/¯ , если не забудете про символ # (в конце команды), то команду можно вывести «одним скопом».
И только потом, сможем смотреть на картинки, при помощи приложения «Просмотр фотографий Windows».
Вывод: удалить все пакеты одной командой это хорошо, но могут возникнуть всяко разные ошибки, которые начнут нагревать мозг. Поэтому склоняюсь к тому, чтобы удалять пакеты по отдельности, и четко знать, что после удаления именно этого пакета, ваш компьютер не станет на дыбы и не запросит дополнительную порцию машинного масла ͡๏̮͡๏ .
Мною все эксперименты проводятся на второй ОС (на жёстком диске несколько Windows и Linux), поэтому нет страха, глюкнет, ну, и черт с ней.
Объявление по радио на рынке: Уважаемые покупатели, просим вас соблюдать осторожность и опасаться воров-карманников. Если вы обнаружите пропажу вашего кошелька или бумажника, вам необходимо будет пройти в пятый павильон у входа. Там всегда к вашим услугам магазин кожаных изделий, включая сумки и портмоне.