По умолчанию для удаленного подключения к компьютеру с помощью PowerShell (PowerShell Remoting) нужны права администратора. В этой статье мы покажем, как с помощью группы безопасности, групповой политики и изменения дескриптора сессии PoSh, предоставить права на подключение через PowerShell Remoting (WinRM) для рядовых пользователей без прав администратора.
Политики выполнения скриптов в PowerShell
Если вы увидели ошибку «Выполнение сценариев отключено в этой системе», то можем проверить конфигурацию политик для запуска сценариев, которые настроены в Windows 10. Откройте PowerShell от имени администратора и:
- Get-ExecutionPolicy -List
Мы можем видеть несколько уровней разрешений политик для запуска сценариев.
Чтобы изменить политику запуска скрипта, вы должны знать различные уровни привилегий, которые мы можем назначить каждому из областей.
- 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— вернуть назад по умолчанию.
Загрузка комментариев
Источник: http://mywebpc.ru/windows/politiki-vypolneniya-skriptov-v-powershell/
Запускаем выполнение сценариев PowerShell в Windows
Откройте редактор локальной групповой политики (в поиске Windows или через меню «Выполнить» (вызывается клавишами Win+R) введите «gpedit.msc» и нажмите клавишу «Enter» на клавиатуре)…
В левой части окна «Редактор локальной групповой политики» переходим по пути…
Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Windows Powershell…
Справа в рабочем окне находим пункт «Включить выполнение сценариев» и кликаем на него правой кнопкой мыши — выбираем «Изменить».
Ставим точку на «Включено» и проверяем, чтоб в разделе «Параметры:» (Политики выполнения) было выбрано «Разрешить локальные сценарии и удаленные подписанные сценарии» — нажимаем «Применить» …
Еще разок перепроверяем себя…
Кликаем «Ок» и закрываем все ранее открытые окна. Поздравляю, теперь знаете, как включить выполнение сценариев Powershell в Windows 10.
…
…
Вышеописанный метод точно работает в Windows 10 Pro и Enterprise. В домашней версии операционной системы Windows 10 нужно погружаться в реестр…
Источник: http://optimakomp.ru/powershell/
Удаленный доступ к 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.
После включения пользователя в группу Remote Management Users, он сможет создавать удаленную сессию PowerShell с помощью Enter-PSSession или запускать команды с помощью Invoke-Command. Права пользователя в данной сессии будут ограничены его правами на машине.
Проверьте, заработало ли удаленное подключение.
Источник: http://zen.yandex.ru/media/winitpro.ru/udalennyi-dostup-po-winrm-cherez-powershell-dlia-neadministratorov-5b504f299b6e4000a9e45cf3
Листинг №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, ссылки на которые вы можете найти в конце статьи.
Источник: http://setiwik.ru/vypolnit-komandu-na-udaljonnom-pk/
ПОЛЕЗНОЕ ВИДЕО
…
…
До новых полезных компьютерных программ и советов.
Уверенный пользователь трех домашних ПК с многолетним опытом, «компьютерщик» для всех родственников, соседей и знакомых, в течении 11-ти лет автор более тысячи обзоров интересных и полезных программ для компьютера на собственном софтовом блоге OptimaKomp.RU
Подписывайтесь на уведомления от сайта OptimaKomp.RU по электронной почте, чтоб не пропускать новые подробные обзоры интересных и полезных компьютерных программ.
Уже более 8-ми тысяч читателей подписалось — присоединяйтесь!
Источник: http://optimakomp.ru/powershell/
Запуск скрипта PowerShell c параметрами
Собственно запуск нужно делать как если бы вы запускали обычную программу или bat-файл с параметрами. Например, для запуска скрипта с параметрами из командной, можно написать такую команду:
powershell -executionpolicy RemoteSigned -file <имя_скрипта> param1 param2 «еще один текстовый параметр»
В самом скрипте вы можете получить эти параметры так:
param ($var1, $var2, $var3)echo $var1, $var2, $var3
В интегрированной среде PowerShell ISE запустить скрипт с параметрами можно аналогично, используя область команд.
Источник: http://codernotes.ru/articles/powershell/zapusk-skriptov-powershell.html
См. также:
- Обзор интегрированной среды скриптов Windows PowerShell
Источник: http://docs.microsoft.com/ru-ru/powershell/scripting/windows-powershell/ise/how-to-write-and-run-scripts-in-the-windows-powershell-ise?view=powershell-7