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

По умолчанию для удаленного подключения к компьютеру с помощью PowerShell (PowerShell Remoting)  нужны права администратора. В этой статье мы покажем, как с помощью группы безопасности, групповой политики и изменения дескриптора сессии PoSh,  предоставить права на подключение через PowerShell Remoting (WinRM) для рядовых пользователей без прав администратора.

Политики выполнения скриптов в PowerShell

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

  • Get-ExecutionPolicy -List

Мы можем видеть несколько уровней разрешений политик для запуска сценариев.

Конфигурация политик powershell

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

  • Restricted: заблокировано выполнение любых скриптов, но разрешается работа интерактивных команд.
  • RemoteSigned: загруженные скрипты должны быть подписаны доверенным издателем. Локальные скрипты работают без подписи
  • AllSigned: разрешает выполнение любого подписанного скрипта, как локального, так и удаленного (загруженного).
  • Unrestricted: без ограничений. Вы можете запустить все сценарии, даже те, которые не подписаны.

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

  • Set-ExecutionPolicy Unrestricted -Scope CurrentUser — запуск без ограничения для пользователя.
  • Set-ExecutionPolicyRestricted -Scope CurrentUser вернуть назад, если будет нужно.

Разрешает без ограничений выполнять сценарии для локального пользователя. Ключ -Scope определяет, к чему применяется изменение политики. Когда вы вводите «CurrentUser«, то применяется только к текущему пользователю, а когда вы вводите «LocalMachine«, он применяется ко всей системе.

Разрешает без ограничений выполнять сценарии для локального пользователя

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

  • Set-ExecutionPolicy Unrestricted — разрешить выполнение скриптов без ограничений.
  • Set-ExecutionPolicy Restricted— вернуть назад по умолчанию.

разрешить выполнение скриптов без ограничений

Загрузка комментариев

Запускаем выполнение сценариев PowerShell в Windows

Powershell

Откройте редактор локальной групповой политики (в поиске Windows или через меню «Выполнить» (вызывается клавишами Win+R) введите «gpedit.msc» и нажмите клавишу «Enter» на клавиатуре)…

выполнить
открыть и выполнить

В левой части окна «Редактор локальной групповой политики» переходим по пути…

Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Windows Powershell…

редактор локальной групповой политики

Справа в рабочем окне находим пункт «Включить выполнение сценариев» и кликаем на него правой кнопкой мыши — выбираем «Изменить».

Ставим точку на «Включено» и проверяем, чтоб в разделе «Параметры:» (Политики выполнения) было выбрано «Разрешить локальные сценарии и удаленные подписанные сценарии» — нажимаем «Применить» …

включить выполнение сценариев Powershell

Еще разок перепроверяем себя…

выполнение сценариев Powershell включено

Кликаем «Ок» и закрываем все ранее открытые окна. Поздравляю, теперь знаете, как включить выполнение сценариев Powershell в Windows 10.

Вышеописанный метод точно работает в Windows 10 Pro и Enterprise. В домашней версии операционной системы Windows 10 нужно погружаться в реестр…

Удаленный доступ к WinRM  и группа Remote Management Users

Проверим стандартные разрешения для сессии PoSh:

(Get-PSSessionConfiguration -Name Microsoft.PowerShell).Permission

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

  • BUILTINAdministrators — AccessAllowed,
  • BUILTINRemote Management Users — AccessAllowed

Таким образом, чтобы пользователь мог удаленно подключаться через WinRM, ему достаточно состоять во встроенной локальной группе безопасности администраторов или Remote Management Users (группа создается в системе, начиная с версии PowerShell 4.0, имеющегося по умолчанию в Windows 8 / Windows Server 2012 и выше). Данная группа также предоставляется доступ к ресурсам WMI через управляющие протоколы (например, WS-Management)

Нужного пользователя можно включить в группу через оснастку управления компьютером:

или с помощью команды:или с помощью команды:

или с помощью команды:

net localgroup «Remote Management Users» /add aapetrov2

В том случае, если подобный доступ нужно предоставить на множестве компьютеров, можно воспользоваться групповой политикой. Для этого назначьте GPO на нужные компьютеры, и политике Computer Configuration -> Windows Settings -> Security Settings -> Restricted Groups добавьте новую группу Remote Management Users и включим в нее учетные записи или группы, которым нужно предоставить доступ к WinRM.

zen.yandex.ru

После включения пользователя в группу Remote Management Users, он сможет создавать удаленную  сессию PowerShell с помощью Enter-PSSession или запускать команды с помощью Invoke-Command. Права пользователя в данной сессии будут ограничены его правами на машине.

Проверьте, заработало ли удаленное подключение.

zen.yandex.ru

Листинг №1 – Запуск процесса используя WMI (VBScript)

Computer = «PC3»
Command = «cmd.exe /c systeminfo.exe > \servershare%computername%.txt»
Set objWMIService = GetObject(«winmgmts:\» & Computer & «rootcimv2:Win32_Process»)
Result = objWMIService.Create(«calc.exe», Null, Null, intProcessID)

Но гораздо проще воспользоваться утилитой командной строки wmic.exe которая предоставляет достаточно удобный интерфейс для работы с WMI и входит в состав операционных систем, начиная с Windows XP. В ней чтобы запустить, например калькулятор на компьютере main достаточно выполнить следующую команду:

wmic /node:main process call create calc.exe

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

ПОЛЕЗНОЕ ВИДЕО

До новых полезных компьютерных программ и советов.

svengaliУверенный пользователь трех домашних ПК с многолетним опытом, «компьютерщик» для всех родственников, соседей и знакомых, в течении 11-ти лет автор более тысячи обзоров интересных и полезных программ для компьютера на собственном софтовом блоге OptimaKomp.RU

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

Уже более 8-ми тысяч читателей подписалось — присоединяйтесь! ;)

Запуск скрипта PowerShell c параметрами

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

powershell -executionpolicy RemoteSigned -file <имя_скрипта> param1 param2 «еще один текстовый параметр»

В самом скрипте вы можете получить эти параметры так:

param ($var1, $var2, $var3)echo $var1, $var2, $var3

В интегрированной среде PowerShell ISE запустить скрипт с параметрами можно аналогично, используя область команд.

См. также:

  • Обзор интегрированной среды скриптов Windows PowerShell
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: