Исправлено: выполнение скриптов отключено в этой системе

Содержание:

Просмотр

  1. Как включить удаленное взаимодействие PowerShell?
  2. Какая команда PowerShell используется для запуска интерактивного сеанса с удаленным компьютером?
  3. В чем преимущество использования сеанса удаленного взаимодействия PowerShell по сравнению с простым указанием имени компьютера с помощью каждой команды?
  4. Можно ли использовать сеанс удаленного взаимодействия PowerShell с сеансом удаленного взаимодействия «один к одному»?
  5. Чем отличается тип объектов, возвращаемых командлетами, от типа объектов, которые возвращаются при выполнении этих же командлетов на удаленных компьютерах с ?

Запуск PowerShell от имени администратора

Также поиск в меню «Пуск» — это самый простой способ запустить PowerShell от имени администратора. Для этого нужно воспользоваться поиском и когда программа будет найдена, кликнуть по ней правой кнопкой мышки. В открывшемся меню будет доступен вариант запуска от имени администратора. Данный способ запуска от имени администратора также доступен в Windows 7 и Windows 10

Кроме этого, в Windows 10 есть дополнительная возможность, которая позволяет запускать PowerShell как с правами пользователя, так и от имени администратора. Чтобы воспользоваться этим вариантом нужно кликнуть правой кнопкой мышки по кнопке «Пуск» и в открывшемся меню выбрать «PowerShell».

Если же в этом меню вместо PowerShell у вас отображается обычная командная строка, то это можно исправить. Откройте меню «Параметры» (комбинация клавиш Win-i) и перейдите в раздел «Персонализация – Панель задач». Здесь нужно включить опцию, которая заменяет командную строку на PowerShell, после чего описанный выше способ будет работать.

Как запустить скрипт PowerShell

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

  • Restricted / Ограниченный — режим по умолчанию, в нем запрещено выполнение скриптов, но можно использовать интерактивные команды.
  • All Signed / Все подписанные — режим разрешает выполнение всех подписанных издателем скриптов.
  • Remote Signed / Удаленные подписанные — режим разрешает выполнение локальных скриптов, но скачанные из интернета скрипты требуют наличия подписи.
  • Unrestricted / Неограниченный — режим разрешает запуск всех скриптов без ограничений, включая скачанные из интернета скрипты без подписи.

По умолчанию, используется режим Restricted или «Ограниченный». Поэтому если вам нужно запустить скрипт, то предварительно нужно выполнить команду «Set-ExecutionPolicy RemoteSigned -Scope Process» и нажать на клавишу «Y» для подтверждения. Данная команда разрешит выполнение удаленно подписанных скриптов для текущего сеанса.

После выполнения данной команды вы сможете запускать скрипты просто введя в консоль их полный адрес. Например, на скриншоте внизу мы выполнили скрипт «c:\test.ps1».

Если вы хотите запустить скрипт из стандартной командной строки, то это можно сделать при помощи команды «powershell -executionpolicy RemoteSigned -file путь». Ниже мы приведем еще несколько вариантов запуска скриптов PowerShell, которые могут быть полезны в определенных ситуациях.

  • powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file <путь>

    Запуск скрипта в фоновом режиме (параметр -WindowStyle Hidden). Если добавить параметр -NonInteractive, то скрипт не будет задавать никаких вопросов и выполнится без участия пользователя.

  • powershell -executionpolicy RemoteSigned -file <путь> param1 param2 «text param»

    Запуск скрипта c параметрами. Как видно, параметры передаются точно также как и в случае запуска обычных программ.

Если же вы хотите навсегда разрешить запуск скриптов, то для этого нужно выполнить команду «Set-ExecutionPolicy RemoteSigned» и нажать на клавишу «Y» для подтверждения.

Но, если ваш скрипт был скачан из интернета, то описанного выше варианта может быть недостаточно. Для того чтобы полностью и навсегда отключить любые предупреждения при запуске скриптов используйте «Set-ExecutionPolicy Bypass».

Обратите внимание, постоянное разрешение на запуск скриптов подвергает ваш компьютер опасности, поэтому желательно использовать временные разрешения, которые работают до завершения сеанса

Как открыть PowerShell?

Это можно сделать несколькими следующими способами:

  • Через Пуск — вы найдёте приложение в общем списке компонентов под буквой W.
  • При помощи поиска в Панели задач — откройте её, и введите слово PowerShell для поиска.
  • Используя меню «Выполнить» — запустите его через комбинацию Win+R и напишите название утилиты, после чего она будет найдена в системе.
  • В коммандере задайте действие PowerShell — но, вы должны знать, что будете работать с приложением через уже запущенную строку, а не в отдельном окне.
  • В параметрах Windows выберите «Свойства панели задач» и меню «Пуск». Во вкладке «Навигация» поставьте флажок на строке «Заменить командную строку оболочкой PowerShell…». Теперь вы сможете включать утилиту комбинацией Win+X.

Как разрешить выполнение неподписанного скрипта powershell?

1. В оболочке PowerShell, перед тем как запускать скрипт, выполнить команду, разрешающую выполнение неподписанных скриптов для текущего сеанса оболочки:

Set-ExecutionPolicy RemoteSigned -Scope Process

2. При запуске из стандартной коммандной строки использовать параметр -executionpolicy, т.е. запускать скрипт так:

powershell -executionpolicy RemoteSigned -file <имя_скрипта>

Оба способа устанавливают политику только для текущего сеанса, при этом, политика безопасности выполнения скриптов PowerShell, прописанная в реестре, не будет изменена и останется прежней. Если вы хотите поменять политику безопасности выполнения скриптов «на постоянно», то используйте такой способ:

3. Разрешить запуск навсегда: запустить оболочку PowerShell от имени «Администратора», затем выполните команду:

Set-ExecutionPolicy RemoteSigned

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

Примечание: Если скрипт был загружен из интернета, то чтобы избежать запроса на подтверждение запуска, нужно вместо RemoteSigned использовать Bypass — полное отключение любых запросов и предупреждений.

О том, как пронумеровать страницы для печати в «Excel».

Вопрос, с которым рано или поздно сталкивается каждый.

Для неподготовленного человека найти нумерацию страниц в «Эксель» довольно сложно.

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

Рассмотрим эти действия:

  • Для начала следует переключить вид страницы таким образом, чтобы отображались колонтитулы.
    • Для этого следует войти во вкладку «Вид» на панели инструментов.
    • Выбрать режим просмотра «Разметка страницы»

    Вид. Разметка страницы.

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

Выбор поля колонтитула
После клика по нужной области колонтитула, на панели станет активным режим конструктора колонтитулов.

Конструктор колонтитулов
Далее следует перейти в «конструктор» и выбрать пиктограмму «Номер страницы».

Номер страницы для таблицы Excel

После клика по пиктограмме в выбранном Вами колонтитуле будут отображаться номера страниц.

Кроме нумерации страниц таким образом можно указать текущую дату или время, а так же общее количество страниц.

Прямой запуск

Самый простой способ запустить исполняемый файл в PowerShell — это перейти в директорию с файлом и стартовать его напрямую. Для примера возьмем простенькую программку, выводящую приветствие, и выполним ее командой:

Set-Location ″C:Program Files″.Hello.exe

Обратите внимание, что даже находясь в нужном каталоге, требуется указывать относительный путь к исполняемому файлу. Исключение составляют файлы из директорий, перечисленных в переменной окружения (path)

Например различные встроенные программы и утилиты (notepad, calc, ping и т.п.), находящиеся в директории WindowsSystem32, можно запускать без указания пути.

Установка нескольких версий модуля

Чтобы установить несколько версий одного модуля, выполните следующую процедуру.

  1. Создайте каталог для каждой версии модуля. Включите номер версии в имя каталога.
  2. Создайте манифест модуля для каждой версии модуля. В качестве значения ключа ModuleVersion в манифесте укажите номер версии модуля. Сохраните файл манифеста (.psd1) в каталоге для версии модуля.
  3. Добавьте путь к корневой папке модуля в значение переменной среды PSModulePath, как показано в следующих примерах.

Чтобы импортировать определенную версию модуля, пользователь может использовать параметры или командлета Import-Module.

Например, если модуль Fabrikam доступен в версиях 8.0 и 9.0, структура каталогов модуля Fabrikam может выглядеть следующим образом:

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

После выполнения этих действий параметр ListAvailable командлета Get-Module получает оба модуля Fabrikam. Чтобы импортировать определенный модуль, используйте параметры или командлета Import-Module.

Если оба модуля, которые содержат командлеты с одинаковыми именами, импортируются в один сеанс, в этом сеансе будут доступными командлеты, импортированные последними.

Как запустить скрипт PowerShell по расписанию

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

Я приведу пример, когда мне нужно было отслеживать события ID 20291 или ID 11707.  И так откройте окно выполнить и введите в нем:

taskschd.msc

Далее вы щелкаете по библиотеке правым кликом и из контекстного меню выбираете пункт «Создать задачу».

Задаете имя задания, советую запускать скрипт PowerShell от имени учетной записи «СИСТЕМА (SYSTEM)», это будет гарантировать, что задание точно отработает.

Поставьте галку «Выполнять с наивысшими правами»

Переходим на вкладку тригеры и создаем новый. В параметрах выберите «При событии»

Далее задаем:

  • Журнал — Приложение
  • Источник — MsiInstaller
  • Код события — 11707

Тут тригер будет срабатывать, когда в логах появится событие 11707.

В действие оставляем «Запуск программы». В программе указываем powershell, а в параметрах задайте путь до самого скрипта, через параметр -File c:\scripts\id11707.ps1.

В итоге у меня вышло вот так.

Как видим, мое задание по запуску скрипта PowerShell успешно создано и отработало в планировщике Windows.

Правила установки модулей

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

Установка модулей в PSModulePath

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

переменная среды PSModulePath ( ) содержит расположения модулей Windows PowerShell. Командлеты используют значение этой переменной среды для поиска модулей.

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

()

Предупреждение
Это расположение зарезервировано для модулей, поставляемых с Windows. Не устанавливайте модули в это расположение.

()

()
Чтобы получить значение переменной среды PSModulePath, используйте одну из следующих команд.

Чтобы добавить путь к модулю в значение переменной среды PSModulePath, используйте следующий формат команды

В этом формате используется метод SetEnvironmentVariable класса System.Environment, чтобы сделать изменение переменной среды PSModulePath независимым от сеанса.

Важно!
После добавления пути в PSModulePath выполните рассылку сообщения окружения об изменении. Так другие приложения, например оболочка, смогут поддерживать эти изменения

Для этого код установки продукта должен отправить сообщение WM_SETTINGCHANGE с параметром , для которого задана строка Environment. Не забудьте отправить сообщение после того, как код установки модуля обновит PSModulePath.

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

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

Например, в примере модуля Fabrikam каталог, содержащий файлы модулей, называется Fabrikam, и хотя бы один файл имеет базовое имя Fabrikam. В этом случае и Fabrikam.psd1, и Fabrikam.dll имеют базовое имя Fabrikam.

Результат неправильной установки

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

  • Функция автоматической загрузки модуля не сможет автоматически импортировать модуль.

  • Параметр командлета Get-Module не сможет найти модуль.

  • Командлет Import-Module не сможет найти модуль. Чтобы импортировать модуль, необходимо указать полный путь к файлу корневого модуля или файлу манифеста модуля.

    Дополнительные функции, описанные ниже, не будут работать, если модуль не импортируется в сеанс. В модулях с правильным форматом в переменной среды PSModulePath эти функции будут работать, даже если модуль не импортируется в сеанс.

  • Командлет Get-Command не сможет найти команды в модуле.

  • Командлеты Update-Help и Save-Help не смогут обновить или сохранить справку для модуля.

  • Командлет Show-Command не сможет найти и отобразить команды в модуле.

    Команды в модуле будут отсутствовать в окне в интегрированной среде скриптов Windows PowerShell (ISE).

Сеансы PowerShell

В последнем примере в предыдущем разделе выполнялись две команды с помощью командлета .
Это означает, что для их запуска прошлось бы настроить два отдельных сеанса.

Подобно сеансам CIM, обсуждаемым в главе 7, сеанс PowerShell на удаленном компьютере можно использовать для запуска нескольких команд на удаленном компьютере без дополнительных затрат на создание нового сеанса для каждой отдельной команды.

Создайте сеанс PowerShell с каждым из трех компьютеров, с которыми мы работали в этой главе, — DC01, SQL02 и WEB01.

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

После создания сеанса с использованием альтернативных учетных данных указывать учетные данные при каждом выполнении команды не требуется.

Завершив работу с сеансами, не забудьте удалить их.

Запуск PowerShell скрипта в автозагрузке сервера

Открываем оснастку «Управление групповой политикой» и создаем на нужном уровне вашей иерархии организационных подразделений, новую политику, в моем примере, это будет «Добавление баз 1С». Переходим к ее редактированию.

Для того, чтобы при загрузке вашего сервера или компьютера, к нему применялся нужный вам сценарий PowerShell вам необходимо перейти в раздел:

Конфигурация компьютера — Политики — Конфигурация Windows — Сценарий (запуск/завершение) (Computer Configuration — Policies — Windows Settings — Scripts (Startup/Shutdown)

Тут вы увидите два возможных варианта «Автозагрузка» и «Завершение работы»

Далее вы открываете пункт «Автозагрузка», переходите на вкладку «Сценарий PowerShell» и нажимаете кнопку «Добавить». Через окно «добавление сценария» откройте папку «Startup» и скопируйте туда ваш скрипт. Теперь данный файл будет частью папки Sysvol и располагаться в конкретном GPO объекте.

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

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

  1. Во первых по умолчанию в Windows есть 5-ти минутная задержка выполнения скриптом, как ее отключать я рассказывал можете почитать вот тут.
  2. Если у вас в локальной сети присутствуют операционные системы по типу Windows Server 2008 или ниже, то там есть подводные камни в виде выполнения неподписанных скриптов и во вторых в старой версии PowerShell

Хочу отметить, что начиная с Windows Server 2012 R2, Windows 8.1 и выше, все запускаемые сценарии PowerShell через GPO работают в режиме Bypass, что подразумевает игнорирование политики Set-ExecutionPolicy. Но если у вас есть более старые клиенты, то вы можете пойти вот таким путем:

Вы можете явно указать исполняемый файл PowerShell, для этого в политике откройте вкладку «Сценарии», нажмите добавить. В имя сценария введите путь до файла powerShell, это:

%windir%\System32\WindowsPowerShell\v1.0\powershell.exe

В параметрах сценария введите вот такие ключи и сетевой путь до скрипта PowerShell.

-Noninteractive -ExecutionPolicy Bypass –Noprofile -file \\root.pyatilistnik.org\SysVol\root.pyatilistnik.org\ Policies\{2B79FA3E-CB2F-4D15-A446-3DBBF887CD40}\ Machine\Scripts\Startup\Add-Base-1C.ps1

Еще для подстраховки вы можете включить параметр GPO

Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Windows Powershell (Computer Configuration — Administrative Templates — Windows Components — Windows PowerShell)

Активируем настройку «Включить выполнение сценариев (Turn On Script Execution)», выставим значение «Разрешать все сценарии».

Небольшой совет, я бы вам рекомендовал включать выполнение всех сценариев исключительно для старых ОС, для этого вы можете сделать отдельную политику и применить ее только к старым операционным системам, через WMI фильтр

Проверяем применение вашей GPO, если все настроили правильно она отработает если нет, то начинается траблшутинг, проверяете фильтры GPO и общий алгоритм поиска проблем.

Манифесты модулей

Каждый модуль имеет манифест модуля. Манифест модуля содержит метаданные о вашем модуле.
Расширение файла для файла манифеста модуля — . Не все файлы с расширением являются манифестами модулей. Кроме того, их можно использовать для хранения части среды конфигурации DSC. используется для создания манифеста модуля. Path — единственное значение, которое необходимо указать. При этом модуль не будет работать, если не указан параметр RootModule. Лучше указать параметры Author и Description на тот случай, если вы решите передать модуль в репозиторий NuGet с помощью PowerShellGet, так как эти значения необходимо указать в приведенном сценарии.

Версия модуля без манифеста — 0.0. Это явное доказательство того, что модуль не имеет манифеста.

Манифест модуля можно создать с помощью всех рекомендуемых данных.

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

Как запустить скрипт PowerShell в Windows

Для запуска скрипта с расширением .ps1 нужно открыть консоль PowerShell и затем указать полный путь до файла. Вы также можете перейти в папку со скриптом либо с помощью команды cd, либо, если вы хотите полностью окунуться в стиль PowerShell, то можете использовать Set-Location.

Например, мне нужно перейти в папку C:\Users\Администратор\Downloads\WinPwn-master\:

Set-Location C:\Users\Администратор\Downloads\WinPwn-master\

Если вы просто попытаетесь запустить скрипт, то почти наверняка столкнётесь с ошибкой, что запуск скриптов запрещён. Для исправления ошибки выполните команду:

Set-ExecutionPolicy unrestricted

Подробности смотрите в статье «Ошибка «Невозможно загрузить файл ….ps1, так как выполнение сценариев отключено в этой системе» (РЕШЕНО)»

Запуск скрипта с помощью Import-Module

При запуске некоторых скриптов может ничего не происходить. Дело в том, что скрипт может содержать в себе функцию, которую нужно импортировать, а затем запустить. Поищите в документации по интересующей вас программе примеры со строкой Import-Module.

Например для запуска WinPwn нужно вначале импортировать файл с функциями:

Import-Module .\WinPwn.ps1

А после этого можно вызывать содержащиеся в файле функции:

WinPwn

Устранение неполадок при неотвечающем взаимодействиях

В этом разделе обсуждаются проблемы удаленного взаимодействия, препятствующие выполнению команды и предотвращению или задержке возврата командной строки PowerShell.

Прерывание команды

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

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

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

Использование break in Loops

Если оператор присутствует в цикле, таком как цикл,, или , PowerShell немедленно завершает работу цикла.

Оператор может включать метку, которая позволяет выйти из встраиваемых циклов. Метка может указывать любое ключевое слово Loop, такое как , или , в скрипте.

В следующем примере показано, как использовать оператор для выхода из оператора:

В этом примере оператор завершает цикл, если переменная равна 1. Несмотря на то , что оператор принимает значение true до тех пор , пока не будет больше 10, PowerShell достигают оператора break при первом запуске цикла.

Чаще используется оператор в цикле, где должно выполняться внутреннее условие. Рассмотрим следующий пример инструкции:

В этом примере оператор выполняет итерацию массива. Оператор возвращает значение false, если первые два раза выполняются в цикле, а переменная увеличивается на 1. Третье время выполнения цикла равно 2, а переменная равна 30. На этом этапе выполняется инструкция, и цикл завершает работу.

Использование метки в цикле

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

Перемещает выполнение из цикла с меткой. Во встроенных циклах результат отличается от результата ключевого слова при его использовании. В этом примере имеется оператор с оператором:

Если условие 2 принимает значение true, выполнение сценария пропускается до оператора после помеченного цикла. В этом примере выполнение начинается с оператора .

Можно вложить много циклов с метками, как показано в следующем примере.

Если переменная имеет значение true, выполнение сценария возобновляется после цикла, помеченного как «Red». Если значение переменной равно true, выполнение элемента управления скрипта возобновляется после цикла, помеченного как «желтый».

Если значение переменной равно true, выполнение возобновляется после самого внутреннего цикла. Метка не требуется.

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

Управление пакетами (автоустановка программ)

Модуль: PackageManagement

В Windows 10 встроено управление поставщиками пакетов (оно же OneGet), с помощью которого можно тихо установить сразу несколько приложений одной командой! Это похоже на Apt-Get в Linux, но можно провести и параллели с Ninite или InstallPack

Примечание. Можно использовать этот модуль, не устанавливая WMF 5.0. Предварительная версия модуля для PS 4.0 и 3.0 доступна отдельно — март 2016 тут, а более свежие ищите поиском в центре загрузки по запросу PackageManagement PowerShell Modules Preview.

Установка программ

В этом примере из репозитория Chocolatey устанавливаются четыре программы и полный набор утилит Sysinternals. Первые три команды выполняются однократно, причем смену политики надо подтвердить. Четвертая команда тихо устанавливает перечисленные программы, а пятая просто экономит время.

#Разрешить установку подписанных пакетов из Интернета
Set-ExecutionPolicy RemoteSigned
#Установить поставщик Chocolatey
Get-PackageProvider –Name Chocolatey -ForceBootstrap
#Сделать Chocolatey доверенным
Set-PackageSource -Name Chocolatey -Trusted
#Установить программы
Install-Package NotepadPlusPlus, vlc, firefox, filezilla, sysinternals -Verbose -Force -ProviderName chocolatey
#Добавить путь к исполняемым файлам (sysinternals) в PATH
setx PATH "$env:path;C:\Chocolatey\bin" -m

Поставщик скачивает в C:\Chocolatey\lib пакет, в основе которого лежит скрипт chocolateyInstall.ps1. Он загружает установщик программы с официального сайта в папку %temp%\Chocolatey и запускает его в режиме тихой установки. Простейший пример – Notepad++.

Install-ChocolateyPackage 'notepadplusplus' 'exe' '/S' 'https://notepad-plus-plus.org/repository/6.x/6.9/npp.6.9.Installer.exe'

Поиск программ

В репозиториях много программ, все самые популярные точно есть.

Find-Package '*zip*','*commander*' -ProviderName Chocolatey

Удаление программ

Uninstall-Package -name filezilla

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

Ссылки по теме OneGet и тихой установки:

  • Пошаговое руководство по установке программ из PowerShell (Дмитрий Буланов)
  • Командлеты управления пакетами (TechNet)
  • Типы инсталляторов и ключи тихой установки
  • Сайт автоустановки Windows и форум автоустановки программ

Параметры командлетов powershell

-ErrorAction — параметр присутствует во всех командлетах, позволяет задать действие выполняемое при возникновении ошибки:

  • Continue — вывести сообщение об ошибке и продолжить выполнение
  • SilentlyContinue — проигнорировать ошибку и продолжить
  • Stop — при первой же ошибке прервать выполнение
  • Inquire — при возникновении ошибки вывести запрос что делать дальше

Пример: Copy-Item «d:\test1\klbackup*» «d:\test2\» -ErrorAction stop

-WhatIf — отображает сообщение, в котором описан результат команды, без фактического ее выполнения.  Присутствует во всех командлетах.

get-help about_CommonParameters — описание параметров, которые могут использоваться с любым командлетом.

[Исправлено] Windows Script Host Access отключен на этом компьютере

Если сообщение «Доступ к скриптовому хосту Windows отключен» появляется при каждом запуске или через регулярные промежутки времени, когда вы ничего не делаете, тогда вредоносный скрипт (.vbs, .js или .wsf) может пытаться запускаться в фоновом режиме, и это предотвращается. по Windows Script Host действует ограничение в вашей системе, что очень хорошо. В таких случаях ваша цель должна состоять в том, чтобы полностью удалить вредоносное ПО из системы, а не исправить сообщение об ошибке хоста скрипта.

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

Выясните, какой сценарий пытается выполнить, что вызывает ошибку?

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

Используйте диспетчер задач, чтобы найти имя файла скрипта

Вы можете использовать простой инструмент, такой как диспетчер задач, чтобы узнать имя исполняемого файла скрипта. Используйте эти шаги:

  1. Пусть окно ошибки скрипта будет на экране. Пока не отклоняйте это.
  2. Отключите ваш компьютер от интернета.
  3. Откройте диспетчер задач (Ctrl + Shift + Esc) и перейдите на вкладку Подробности.
  4. Щелкните правой кнопкой мыши заголовок столбца, выберите «Выбрать столбцы».

  5. Включить Командная строка установите флажок и нажмите ОК.

    СВЯЗАННЫЙ: Ознакомьтесь с информацией о настройке диспетчера задач для отображения полного пути запущенных процессов для получения дополнительной информации и снимков экрана.

    Это показывает полный путь и имя файла скрипта, который пытается работать без вывода сообщений. В этом примере файл скрипта с именем protect.vbs пытается запустить его из папки% TEMP% в профиле пользователя.

    Связанный: Process Explorer из Windows SysInternals можно использовать для поиска имени процесса, пути и полных аргументов. Проверьте сообщение Как найти, какая программа вызвала неизвестное сообщение об ошибке? для деталей.

Используйте расширенные средства устранения неполадок

Кроме того, вы можете использовать Autoruns, еще один отличный инструмент от Microsoft Windows SysInternals, чтобы найти точку запуска при запуске (Startup или Task Scheduler), используемую этим вредоносным скриптом.

Начните свое расследование оттуда. Если вы опытный пользователь, вы можете даже отредактировать файл скрипта с помощью Блокнота и посмотреть, какой код выполняется. Ransomware обычно использует файлы .vbs, .js, .wsh или .hta для загрузки полезных данных крипто-вымогателей с удаленного сервера, запуска их в локальной системе и шифрования данных или их полного удаления.

Прежде всего, если кто-то может удалить вредоносный скрипт в вашем каталоге TEMP и запустить его, то в вашей системе существует действительно серьезная уязвимость. Защита от вирусов и вредоносных программ не всегда помогает, если ваша система уязвима для эксплойтов. Вы должны убедиться, что ваша система обновлена ​​с точки зрения исправлений Центра обновления Windows, а также обновлений для программ, которые вы используете в своей системе.

Выполните тщательную проверку с использованием известного средства защиты от вредоносных программ, такого как Malwarebytes.

Как мне включить доступ к Windows Script Host?

Если ваша система не подключена к домену, выполните действия по устранению ошибки «Доступ к хосту сценариев Windows отключен». Эта процедура включит запуск сценариев Windows (.vbs или .js) в вашей системе.

Разрешить доступ к Windows Script Host с помощью редактора реестра

  1. Нажмите WinKey + R, чтобы вызвать диалог Run.
  2. Тип
  3. Удалить значение с именем Включено в следующих ключах:
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows Script Host\Settings
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings

    Если ключ не существует, проигнорируйте и проверьте следующий ключ.

  4. Выйдите из редактора реестра.

Разрешить доступ к Windows Script Host с помощью командной строки

Чтобы сделать это с помощью командной строки, выполните эти команды из командной строки с повышенными правами:

REG DELETE "HKCU\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /f

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

Это оно! Это позволяет Windows Scripting host на вашем компьютере.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector