Windows PowerShell перестал работать: попробуйте эти 4 исправления

Я часто работаю с командами на удаленных системах через PowerShell как во время пентестов, так и при решении повседневных задач. Запуска удаленных команд происходит через протокол WinRM (Windows Remote Management), который, насколько мне известно, поддерживается в Windows Vista SP 1, Windows 7, Windows Server 2008 и Windows Server 2012.

Разница между cmd и PowerShell: не только в цветах.

Более могущественная, и столь же усложнённая. В один ряд с терминалом Линукс по своей многозадачности её ставить нельзя: мелко плавает. Но по сравнению с cmd она может гораздо больше, и это на фоне того факта, что практически всё, что может cmd, прокатит и в PowerShell. Однако для работы с shell придётся использовать уже отдельный вид команд, которые, дабы на русском не звучало косноязычно, переводчики назвали “командлетами”. В отличие от cmd, в shell команды исполняются по нескольким каналам. Это значит, что выход одной команды (в смысле, командлета) может быть одновременно входом в другую. И всё потому, что командлеты  PowerShell – это вполне себе определённые объекты, представители конкретной структуры данных. Даже те командлеты, которые встречают в ответе shell на запрос пользователя. Выражаясь языком программистов, PSH – объектно-ориентированный, а cmd обрабатывает только символы или последовательность символов. Проще говоря, PowerShell позволяет работать с некоторыми программами изнутри, в режиме реального времени, интерактивно. Cmd, в сущности, может только запускать утилиты, которые в Windows уже существуют (почти все они в папке C:\Windows).

Более того, PowerShell – это вполне себе законченная среда для написания и исполнения скрипта. Так что можно создавать очень сложные и объёмные скрипты для управления системой, чем те, на какие была способна консоль cmd.

Основная разница между PowerShell и cmd в том, что последняя – это обновлённая версия “отжившей” в своё время программной оболочки DOS, а в первую, как видно, Windows вдыхает новую жизнь. Очевидно демонстрируя, что от DOS команд разработчики отказываться вообще не собираются. Сравнение с DOS уже неверно, та очень ограничена в своих возможностях; cmd существовала в Windows как “наследие DOS для избранных” или ремонтный, прямой вариант самых необходимых команд. А ввод в работу PowerShell – это как своеобразное предложение, если не покопаться во внутренностях системы, то поучаствовать в изучении её возможностей и способ заняться её модификацией вполне официально: интеграция в среду .Net тому подтверждение.

Читайте также:  5 ошибок при запуске Windows 10, и что с ними делать

Действия по исправлению ошибок Windows PowerShell перестали работать

  1. Инициируйте полное сканирование системы.
  2. Сделайте чистый процесс загрузки.
  3. Отключите и снова включите Windows PowerShell.
  4. Создайте новую учетную запись Microsoft.

1. Инициируйте полное сканирование системы

В некоторых ситуациях атака вредоносного ПО может быть причиной того, что Windows PowerShell не работает должным образом. Итак, первое, что нужно сделать, это запустить сканирование безопасности.

Скорее всего, вы заразились Poweliks , вредоносной программой, которая мешает PowerShell. Файл, связанный с этим вирусом: * 32 или * 32, и его обычно можно остановить из диспетчера задач.

Теперь в этом случае вам нужно использовать антивирусную или антивирусную программу, например Malwarebytes, и сканировать систему Windows 10 на наличие возможных зараженных файлов. Программа безопасности должна автоматически находить и удалять вредоносные программы.

Действия по исправлению ошибок Windows PowerShell перестали работать

Примечание : рекомендуется запускать сканирование безопасности из безопасного режима, то есть когда сторонние приложения и процессы отключаются платформой Windows 10. Вы можете перейти в безопасный режим:

2. Инициируйте чистую загрузку

Вы можете увидеть, вызывает ли программный конфликт сбой в Windows PowerShell, инициировав чистую загрузку. Таким образом, вы можете запустить систему Windows 10 только с функциями по умолчанию.

Действия по исправлению ошибок Windows PowerShell перестали работать

Если ошибка Windows PowerShell перестала работать не отображается после выполнения чистой загрузки, это означает, что существует конфликт программного обеспечения, поэтому необходимо удалить программу, которая стоит за этой проблемой.

Вот как вы можете запустить процесс чистой загрузки:

ТАКЖЕ ПРОЧИТАЙТЕ . Microsoft PowerShell все чаще используется для распространения вредоносного ПО.

Действия по исправлению ошибок Windows PowerShell перестали работать

3. Отключите и снова включите Windows PowerShell

  1. Нажмите горячие клавиши Win + X и выберите Панель управления .
  2. С панели управления перейдите в категорию .
  3. А из отображаемого списка выберите Удалить – в разделе «Программы».
  4. На левой панели главного окна нажмите ссылку Включить или отключить функции Windows .
  5. Прокрутите вниз и найдите запись Windows PowerShell .
  6. Снимите флажок с PowerShell.
  7. Сохраните и примените ваши изменения.
  8. Перезагрузите компьютер с Windows 10.
  9. После этого повторите шаги, описанные выше, и снова включите функцию Windows PowerShell.

4. Создайте новую учетную запись Microsoft

Действия по исправлению ошибок Windows PowerShell перестали работать

Ваша учетная запись может быть повреждена (по разным причинам), и поэтому вы можете получить сообщение об ошибке «Windows PowerShell прекратил работу».

Читайте также:  Автоматизация работы с Outlook с помощью дополнений

Итак, попробуйте создать новую учетную запись, а затем убедитесь, что проблема все еще возникает или то, что вам нужно следовать:

  1. Нажмите на значок запуска Windows.
  2. Выберите Настройки и перейдите в раздел Аккаунты .
  3. Оттуда выберите Семья и другие пользователи .
  4. Нажмите Добавить кого-то еще на этот компьютер.
  5. Просто следуйте инструкциям на экране для возобновления этого процесса.
  6. Подсказка: не забудьте сделать резервную копию своих данных перед завершением этого процесса – возможно, вам придется импортировать ваши личные файлы и приложение под новой учетной записью.
Действия по исправлению ошибок Windows PowerShell перестали работать

Надеемся, что сообщение об ошибке «Windows PowerShell перестало работать» исчезло. Если у вас есть вопросы, связанные с решениями для устранения неполадок, описанными выше, свяжитесь с нашей командой.

Вы можете легко связаться с нами, используя поле для комментариев снизу или заполнив контактную форму, доступную на странице О нас.

Кроме того, если вы сталкивались с другими решениями для исправления этой ошибки, перечислите шаги по устранению неполадок в комментариях ниже, и мы соответствующим образом обновим это пошаговое руководство.

Написание и запуск скриптов

Скрипты сохраняются в виде файлов с расширением .ps1. Несмотря на то, что PowerShell уже давно является нативной частью ОС Windows, вы не сможете запустить его скрипты простым двойным щелчком. Для этого надо кликнуть правой кнопкой по скрипту и выбрать «Запустить в PowerShell».

Курс по веб-разработке от Logitech и GeekBrains

1–3 марта, Онлайн, Беcплатно

События и курсы на

Также существуют системные политики, ограничивающие выполнение скриптов. Можно проверить текущие параметры политики, введя команду Get-ExecutionPolicy. Результатом будет одно из следующих значений:

  • Restricted — выполнение скриптов запрещено. Стандартная конфигурация;
  • AllSigned — можно запускать скрипты, подписанные доверенным разработчиком; перед запуском скрипта PowerShell запросит у вас подтверждение;
  • RemoteSigned — можно запускать собственные скрипты или те, что подписаны доверенным разработчиком;
  • Unrestricted — можно запускать любые скрипты.

Для начала работы необходимо изменить настройку политики запуска на RemoteSigned, используя команду Set-ExecutionPolicy:

Командлеты

Командлеты — это команды с предопределённой функцией, подобные условным операторам в языках программирования. У них есть несколько ключевых особенностей:

  • существуют системные, пользовательские и опциональные командлеты;
  • результатом выполнения командлета будет объект или массив объектов;
  • командлеты могут обрабатывать данные и передавать их другим командлетам с помощью конвейеров;
  • командлеты нечувствительны к регистру, так что нет никакой разницы между Get-ADUser, get-aduser и gEt-AdUsEr;
  • в качестве разделителя используется символ ; .

Каждый командлет содержит в себе глагол и существительное, разделяемые дефисом. Например:

  • Get-Process — отобразить текущие процессы, запущенные на компьютере;
  • Get-Service — отобразить список служб и их статус;
  • Get-Content — отобразить содержимое указанного файла, например Get-Content C:\Windows\System32\drivers\etc\hosts.
Читайте также:  Как перенести Windows 10 на SSD (перенос уже установленной системы)

При необходимости список всех доступных командлетов можно вывести с помощью Get-Help-Category:

Также можно создавать и свои собственные командлеты.

Параметры

У каждого командлета есть несколько параметров, определяющих его работу. PowerShell ISE автоматически предлагает все доступные параметры с отображением их типа. Например, Get-Service-NameW* выводит список служб, у которых имя начинается с W. Если вы забыли, какие параметры у введённого командлета, воспользуйтесь Get-Member. Например, Get-Process | Get-Member:

Если вы не нашли того, что нужно, или не уверены в том, как правильно задаются параметры, можно даже запросить примеры с помощью параметра -Examples:

Некоторые командлеты также могут вызываться с помощью алиасов, например вместо Get-Help можно просто написать Help.

При написании больших скриптов или коллективной разработке можно пользоваться комментариями. Каждый комментарий начинается с символа #, а блок комментариев ограничивается комбинациями символов <# и #> в начале и в конце соответственно.

Конвейер

PowerShell позволяет осуществлять обмен данными между командлетами с помощью конвейера. Например:

  • GetService | SortObject -property Status — сортировка запущенных служб по статусу;
  • “Hello World!” | Out-File C:\ps\ — запись текста в файл.

Можно использовать несколько конвейеров. Например, следующий скрипт выводит список имён всех служб за исключением остановленных:

Get-Service | WHERE {$_.status -eq “Running”} | SELECT displayname

Как еще заставить свой компьютер автоматически выключаться

Если вам чужды текстовые команды для вашего ПК для настройки автовыключения, вы можете использовать интерфейс настроек ОС. Эта возможность также есть во всех версия Windows. Но применять её можно только на мобильных ПК, то есть на ноутбуках.

Настроить выключение компьютера нужно в настройках электропитания:

  1. Вам нужно открыть «Панель управления». В Windows 7 раздел находится в меню «Пуск». В восьмой версии выберите кнопку «Пуск» ПКМ и нажмите на этот пункт. Для десятой (включая все предыдущие) этот пункт можно открыть, введя в окне «Выполнить» команду «control»;
  2. В панели управления выберите пункт «Система и безопасность» и «Электропитание». Слева в меню «Настройка схемы электропитания»;
  3. Здесь вам доступна настройка параметров, при которых компьютер будет выключен;
  4. Нажмите на строку «Изменить дополнительные параметры…» и выберите в окне пункт «Кнопка питания и крышка»;
  5. Установите «Отключение» при закрытии крышки ноутбука.
Как еще заставить свой компьютер автоматически выключаться

Полноценным таймером эти действия назвать нельзя. Но вам теперь не нужны дополнительные телодвижения для того, чтобы выключить систему. Просто закройте крышку компьютера. Это неплохой альтернативный способ вместо команды «shutdown -s -t 3600:».

Узнайте также, как сделать кнопку выключения Windows на рабочем столе.