Как запустить windows powershell – Как легко начать писать на PowerShell или несложная автоматизация для управления Active Directory

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

В сегодняшней статье мы рассмотрим как разными способами запустить Windows PowerShell в Windows 10.

Открыть PowerShell из строки поиска

В строке поиска напишите  PowerShell => нажмите на Windows PowerShell левой кнопкой мыши — если вы хотите открыть PowerShell с правами пользователя под которым вошли в систему, или нажмите на Windows PowerShell правой кнопкой мыши и выберите «Запустить от имени администратора».

201509012

Открыть Windows PowerShell из меню «Пуск»

Откройте меню «Пуск» и найдите папку Windows PowerShell (нажмите на нее раз левой кнопкой мыши) => если вы хотите открыть  PowerShell с правами пользователя под которым вошли в систему — просто нажмите на Windows PowerShell левой кнопкой мыши. Если вы хотите открыть  PowerShell с правами администратора — нажмите на Windows PowerShell правой кнопкой мыши и выберите «Запуск от имени администратора».

20170101-7-min

Открыть Windows PowerShell из диспетчера задач

В пустом месте нажмите на панель задач правой кнопкой мыши и из контекстного меню выберите «Диспетчер задач» (также диспетчер задач можно запустить одновременно нажав клавиши Ctrl+Shift+Esc).

201601048

201504033-min

Если Вы запускаете диспетчер задач первый раз — нужно нажать «Подробнее».

20161228-9-min

Слева вверху выберите «Файл» => «Запустить новую задачу».

20170101-10-min

В появившемся окне введите команду powershell и нажмите «ОК», если вы хотите запустить  Windows PowerShell с правами пользователя под которым вошли в систему. Если вы хотите запустить Windows PowerShell с правами администратора — поставьте флажок возле «Создать задачу с правами администратора» и нажмите на «ОК».

20170101-11-min

Открыть Windows PowerShell из выполнить

Нажмите Win+R на клавиатуре.

winr-min

Напишите команду powershell и нажмите «ОК».

20170101-9-min

PowerShell запустится с правами пользователя под которым вы вошли в систему, если вы хотите переключиться из обычного режима в режим администратора, введите команду Start-Process powershell -Verb runAs и нажмите Enter.

20170101-9-min

Открыть Windows PowerShell в проводнике

Первый способ открытия  Windows PowerShell в проводнике: в адресной строке напишите команду powershell и нажмите Enter.

20170101-13-min

Второй способ открытия Windows PowerShell в проводнике:  зайдите в «Файл» => Запустить Windows PowerShell => здесь вы можете выбрать запуск PowerShell с правами пользователя под которым вошли в систему или с правами администратора.

20170101-12-min

Третий способ открытия Windows PowerShell в проводнике: откройте C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 => если вы хотите запустить Windows PowerShell с правами пользователя под которым вошли в систему — просто откройте двойным щелчком левой кнопкой мыши файл powershell. Если вы хотите запустить Windows PowerShell с правами администратора — нажмите на файл powershell правой кнопкой мыши и выберите «Запуск от имени администратора».

20170101-14-min

Открыть Windows PowerShell из Win+X меню

Если нажать на меню «Пуск» правой кнопкой мыши или нажать клавиши Win+X — перед вами возникнет контекстное меню с различными инструментами. По умолчанию, в нём есть возможность запустить командную строку и командную строку от имени администратора. Если вы используете Windows PowerShell чаще чем командную строку, то можно заменить в этом меню командную строку на PowerShell.

20160103

Нажмите правой кнопкой мыши в пустом месте панели задач и выберите «Параметры панели задач» => нажмите на переключатель напротив «Заменить командную строку оболочкой Windows PowerShell в меню, которое появляется  при щелчке правой кнопки мыши на кнопке «Пуск» или при нажатии клавиш Win+X», чтобы он стал в положение «Вкл.».

Открыть Windows PowerShell из командной строки

1. Откройте командную строку от имени администратора.

2. Введите powershell и нажмите Enter.

20161227-5-min

На сегодня все, если вы знаете другие способы или есть дополнения — пишите комментарии! Удачи Вам  🙂

20161227-5-min

Windows PowerShell – что это такое и как запустить?

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

История появления PowerShell в семействе операционных систем Windows такова. Надо сказать, что консольная утилита, позволяющая взаимодействовать с компьютером посредством ввода команд, присутствовала там изначально (собственно, именно посредством такой утилиты когда-то, ещё до широкого распространения средств графического интерфейса пользователя, предполагалось главным образом осуществлять взаимодействие с системой, начиная с MS-DOS самых первых версий).

Сначала существовал довольно ограниченный набор соответствующих команд. Будучи реализованными в составе соответствующей подсистемы ОС (средствами вышеназванной утилиты), они и представляли собой так называемый интерпретатор командной строки. Любые другие задачи могли вызываться из данной оболочки в качестве отдельных программ, оформленных тоже как консольные приложения. Уже в то время имелись и некоторые средства автоматизации задач, реализованные с помощью языка сценариев (с примерами его вы можете познакомиться, открыв в текстовом редакторе любой .BAT-файл).

Windows PowerShellWindows PowerShell

Очень быстро, однако, стало понятно, что для полноценной автоматизации средств уже имеющегося интерпретатора было недостаточно, особенно после широкого распространения Windows. Правда, уже тогда многие действия удобнее было автоматизировать с помощью приложений, использующих все преимущества графического интерфейса, однако по-прежнему существовала (и существует до сих пор) и потребность в командной строке, позволяющей при достаточном уровне квалификации создавать различные пакетные задания. К сожалению, тогдашний язык сценариев был ещё слишком слаб для реализации сколь либо сложных алгоритмов.

Положение несколько изменилось с появлением Windows 98, в составе которой впервые появляется такое средство, как WSH (Windows Script Host, или сервер сценариев Windows). Оно уже позволяло запускать сценарии с использованием таких скриптовых языков, как JScript и VBScript (и других дополнительно устанавливаемых языковых модулей). К сожалению, у Windows Script Host отсутствует интеграция с существующей командной оболочкой, а также встроенная документация (даже сейчас далеко не все пользователи Windows вообще знают о существовании такого средства). Поэтому в 2003 году Microsoft приступила к разработке новой продвинутой командной оболочки, призванной автоматизировать весь спектр административных задач, впоследствии ставшей известной как PowerShell.

Команды, выполняемые внутри PowerShell, теперь могут представлять собой не только стандартные операции по работе с системой, как раньше, или названия исполняемых файлов, а ещё и целые специализированные классы среды исполнения приложений .NET – так называемые командлеты. Появился и новый улучшенный язык сценариев, включающий в себя реализацию динамических типов, на основе всё того же .NET. Освоив его, продвинутые пользователи теперь могли создавать свои сценарии автоматизации, не прибегая к помощи полноценных сред программирования и таких языков, как C# или VB.NET.

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

Для запуска оболочки PowerShell существует несколько способов. Отметим, что её можно запускать как от имени простого пользователя, так и от имени администратора (для этого предусмотрены отдельные пункты меню).

В операционных системах, предшествующих Windows 8, вы можете открыть PowerShell из меню «Пуск», выбрав последовательно пункты «Все программы» и «Стандартные». Также вы можете найти данное средство, введя в строке поиска меню «Пуск» запрос «Интегрированная среда сценариев» или «PowerShell» (для запуска от администратора щёлкните по появившемуся пункту Интегрированная среда сценариев Windows PowerShell и выберите пункт Запуск от имени администратора.

В Windows 8 не имеется штатной поддержки меню «Пуск» (кроме того, которое вызывает оболочку Modern), однако вы легко можете найти PowerShell в контекстном меню, всплывающем по нажатию комбинации клавиш Win-X. Либо нажав правой кнопкой мыши на меню Пуск. Это же относится и к Windows 10.

Запуск PowerShell в WindowsЗапуск PowerShell в Windows

Также, если вы используете Windows 10, то сможете отыскать соответствующий пункт и во вновь вернувшемся в этой системе меню «Пуск» (или любой существующей реализации этого меню сторонними компаниями).

Наконец, для запуска PowerShell непосредственно из командной строки можно использовать команду PowerShell_ISE или ISE.

Запуск PowerShell через командную строку WindowsЗапуск PowerShell через командную строку Windows

На этом все. Всего хорошего!

Запуск исполняемого файла из PowerShell

Задача запустить из PowerShell какой либо исполняемый файл (программу или утилиту командной строки) встречается достаточно часто. PowerShell предлагает для этого несколько различных способов, которые мы и рассмотрим далее в этой статье. Начнем с самого простого…

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

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

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

Прямой запуск программы из PoSh

 

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

запуск встроенных утилит

Оператор &

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

& ′C:\Program Files\Hello.exe′

запуск с использованием символа &

 

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

& ′C:\Program Files\Hello.exe′  ′Hello, world′

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

& ′C:\Program Files\Hello.exe′  ′Hello,′, ′ world′

Для удобства команду и аргументы можно поместить в переменные:

$exe = ′C:\Program Files\Hello.exe′
$arg1 = ′Hello′
$arg2 = ′world′
& $exe $arg1 $arg2

запуск с аргументами

 

Ну и если аргументов много, то их можно объединить, воспользовавшись такой конструкцией:

$exe = ′C:\Program Files\Hello.exe′
$allargs = @(′Hello,′,′world′)
& $exe $allargs

варианты передачи аргументов

Invoke-Expression

Командлет Invoke-Expression работает примерно так-же, как и оператор & — берет текстовую строку и выполняет ее в виде команды. Например:

Invoke-Expression -Command ′C:\Windows\Hello.exe′

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

Invoke-Expression -Command ′C:\Program Files\Hello.exe′

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

Invoke-Expression -Command ″C:\′Program Files′\Hello.exe″

использование Invoke-Expression для запуска программы

Start-Process

Командлет Start-Process запускает указанный файл в виде процесса, используя метод Start .NET класса Process. Например:

Start-Process -FilePath ′C:\Program Files\Hello.exe′

По умолчанию процесс выполняется в отдельном окне, которое закрывается по окончании процесса. Изменить такое поведение можно с помощью параметров, так следующая команда запустится в текущем окне:

Start-Process -FilePath ′C:\Program Files\Hello.exe′ -NoNewWindow -Wait

Также Start-Process позволяет передать в процесс дополнительные аргументы:

Start-Process -FilePath ′C:\Program Files\Hello.exe′ -ArgumentList ′Hello, world′ -NoNewWindow -Wait

запуск с использованием Start-Process

 

По умолчанию командлет ничего не возвращает, но с помощью параметра -PassThru можно заставить его вернуть объект процесса. Этот объект очень удобно поместить в переменную:

$process = Start-Process -FilePath ′C:\Program Files\Hello.exe′ -Wait -PassThru

из которой можно затем можно узнать многие полезные вещи, такие как статус:

$process.HasExited

время:

$process.ExitTime

или код выполнения:

$process.ExitCode

варианты использования Start-Process

.NET

В принципе .NET классом Process можно воспользоваться напрямую, без командлета Start-Process. К примеру, запустить процесс можно командой:

[System.Diagnostics.Process]::Start(′C:\Program Files\Hello.exe′)

использование класса .Net для запуска программы

 

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

$process = New-Object -TypeName System.Diagnostics.Process
$process.StartInfo.FileName = ″C:\Program Files\Hello.exe″
$process.StartInfo.Arguments = ″Hello,world″
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $false
$process.Start()
$process.WaitForExit()
$process.StandatdOutput.ReadToEnd()

варианты использования .Net

WMI

С помощью WMI можно сделать практически все, в том числе и запустить программу. Для этого вполне подойдет метод Create WMI-класса Win32_Process. Этот метод запускает процесс на локальном или удаленном компьютере через RPC. Например, для выполнения программы на локальном компьютере можно воспользоваться такой командой:

([wmiclass])″Win32_Process″).Create(′C:\Program Files\Hello.exe′)

А для выполнения на удаленном компьютере команда будет выглядеть так:

([wmiclass])″\\remotecomputer\root\cimv2:Win32_Process″).Create(′C:\Program Files\Hello.exe′)

запуск программы через WMI, способ 1

 

Как вариант, можно воспользоваться командлетом Invoke-WmiMethod:

Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList ″C:\Program Files\Hello.exe″

запуск программы через WMI, способ 2

 

Либо командлетом Invoke-CimMethod:

Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @{CommandLine=″C:\Program Files\Hello.exe″}

использование командлета Invoke-CimMethod

 

WMI запускает процесс в отдельном окне и возвращает объект, содержащий идентификатор процесса (ProcessID) и результат выполнения (ReturnValue). ReturnValue может принимать следующие значения:

0 — Sucsessful Completiom
2 — Access Denied
3 — Insufficient Privilege
8 — Uncnown Failure
9 — Path Not Found
21 — Invalid Parameter

Invoke-Command

Командлет Invoke-Command умеет выполнять команды на локальном или удаленном компьютере, используя WinRM. Например, для запуска нашей программы на локальном компьютере используем команду:

Invoke-Command -ScriptBlock {″C:\′Program Files′\Hello.exe″}

При необходимости в программу можно передать аргументы:

Invoke-Command -ScriptBlock {C:\′Program Files′\Hello.exe ″Hello,world″}

Обратите внимание, что Invoke-Command не очень дружит с пробелами, поэтому во избежании ошибок приходится исхитряться с кавычками. Впрочем, подобных проблем можно избежать, например комбинируя использования командлета с оператором &:

Invoke-Command -ScriptBlock {& ′C:\Program Files\Hello.exe′}

запуск программы с помощью Invoke-Command

 

В основном Invoke-Command применяется для удаленного управления, его главное достоинство — это возможность одновременного выполнения на нескольких компьютерах. Например:

Invoke-Command -ScriptBlock {″C:\′Program Files′\Hello.exe″} -ComputerName SRV1,SRV2,SRV3

Или так:

$scriptblock = {″C:\′Program Files′\Hello.exe″}
$Computers = @(′SRV1′,′SRV2′,′SRV3′)
Invoke-Command -ScriptBlock $scriptblock -ComputerName $Computers

По умолчанию командлет возвращает результат выполнения программы, а если запустить его в фоновом режиме (параметр -AsJob), то возвращает объект Job:

Invoke-Command -ScriptBlock {C:\′Program Files′\Hello.exe} -ComputerName localhost -AsJob -JobName Hello

запуск Invoke-Command в фоновом режиме

Invoke-Item

Командлет Invoke-Item предназначен для применения к файлу действия по умолчанию. Так запустить исполняемый файл можно командой:

Invoke-Item -Path ″C:\Program Files\Hello.exe″

Однако наиболее удобно использовать Invoke-Item для открытия определенного типа файлов. Например так мы откроем текстовый файл:

Invoke-Item -Path ″C:\Files\test.txt″

А так все текстовые файлы в папке:

Invoke-Item -Path ″C:\Files\*.txt″

использование Invoke-Item

CMD

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

cmd /c ″C:\Program Files\Hello.exe″

запуск программы с помощью cmd

 

Такое вот изобилие способов запустить программу предоставляет PoSh. И каждый из них хорош для определенных ситуаций.

Кстати, статья написана по мотивам PowerShell: Deep Dive and Best Practice. Рекомендую почитать, там еще много интересного.

Компьютеры и Интернет

Многие пользователи знают о командной строке, в то время как очень небольшое количество людей знают об Windows PowerShell. Вместо командной строки вы можете работать с ОС Windows PowerShell, который обеспечивает больше силы и власти над компьютером с установленной Windows 10. Следовательно, в этой статье мы написали различные советы для разных способов запустить PowerShell от имени администратора в операционной системе Windows 10 от имени администратора. Microsoft уже создала оболочку которая называется оболочка для обработки конфигурации и выполнения задач автоматизации. В Windows PowerShell приходит вам на помощь, когда у вас есть куча административной работы, чтобы её решить.
Например, вы спрашиваете PowerShell чтобы распознавать программы, которые выполняются не точно и вам необходимо убить их процессы. Также в сети вы можете задать вопрос PowerShell и выставлять все установленные USB-устройства на одном или нескольких компьютерах. С помощью PowerShell Вы действительно можете сделать много вещей. Если вы предпочитаете, чтобы работать с ней, прочитайте различные способы, чтобы запустить его в Windows 10 от имени администратора.

Как запустить PowerShell от имени администратора в Windows 10

1. Через проводник

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

Запустите проводник, отправляетесь в раздел, где находится ваш диск или лежит папка.
Нажмите на папку который вы хотите запустить в PowerShell и п нажмите на файл в крайней левой части меню.
Из поступивших вариантов, нажмите Открыть Windows PowerShell как администратор.

2. Через Диспетчер задач

Щёлкните правой кнопкой мыши на пустом поле панели задач и нажмите 3 вариант снизу в Диспетчер задач.

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

Создайте новую задачу в этом окне. В поле текст введите PowerShell и выберите опцию создать задачу с правами администратора.

Нажмите кнопку ОК для продолжения.
PowerShell с правами администратора будет виден на экране.

3. Через Поиск Кортана

Нажмите Кортана поиск и введите PowerShell в поле и нажмите Ввод.

Кортана будет показывать вам вариант PowerShell с его значком.
Щёлкните правой кнопкой мыши на нем и выберите запуск от имени администратора.

PowerShell будет запущен с правами администратора.

4. Через проводник, но на этот раз правой кнопкой мыши на контекстное меню.

Открыть проводник на экране и идите по пути –
C:\Windows\System32\WindowsPowerShell\v1.0
Ищите PowerShell.ехе который лежит в средней части проводника. Щёлкните правой кнопкой мыши на нем он на втором месте с верху, и запустите от имени администратора.

С этими 4 способами, вы можете запустить PowerShell от имени администратора в Windows 10.

 

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

В операционной системе Windows 10 имеется мощный инструмент для управления и выполнения различных задач — это PowerShell. Эта консоль предназначена для администраторов, поскольку она позволяет им контролировать всю операционную систему с помощью сценариев (script). PowerShell используется многими фоновыми приложениями для внесения изменений в систему и это ставит под угрозу безопасность нашего ПК.

Сценарий (script) — простая программа написана в коде, который работает линейно на нашем компьютере. Мы можем создавать и выполнять собственные сценарии для автоматизации задач, или приложения могут выполнять их для выполнения определенных конфигураций и задач. По умолчанию Windows 10 не запрещает ни приложениям, ни нам запускать сценарии в системе, если они подписаны или являются «своими». Проблема возникает, когда мы запускаем свой скрипт, и нам выдает ошибку «Выполнение сценариев отключено в этой системе«. Это многоуровневая мера безопасности в PowerShell, которая предотвращает запуск вредоносных сценариев и может нанести вред системе. Давайте разберем, как изменить политики безопасности для PowerShell.

Политики выполнения скриптов в 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— вернуть назад по умолчанию.

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


comments powered by HyperComments

Как запустить Windows PowerShell ISE на компьютере – INFO-EFFECT

На чтение 1 мин. Опубликовано

 Привет ! Сегодня я покажу вам как запустить программу Windows PowerShell ISE на компьютере Windows 10. Данная программа предназначена для выполнения различных сценариев и операций.

В нижнем левом углу экрана откройте меню “Пуск”. В открывшемся окне, в списке всех приложений, найдите букву W, под буквой нажмите на вкладку приложения – Windows PowerShell.

 

Windows PowerShell

 

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

 

– Windows PowerShell.

– Windows PowerShell (x86).

– Windows PowerShell ISE.

– Windows PowerShell ISE (x86).

 

powershell ISE

 

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

 

PowerShell

 

При открытии программы ISE, у вас откроется окно загрузки – Интегрированная среда сценариев. Дождитесь пока программа загрузится.

 

версия ISE

 

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

 

сценарии

 

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

 

команды Windows 10

 

команды Windows 10 Как проецировать на компьютере Windows 10 Смотри Здесь !

 

Остались вопросы ? Напиши комментарий ! Удачи !

 

Запуск PowerShell скрипта как службы Windows

Из любого скрипта PowerShell можно сделать службу Windows, которая работает в фоновом режиме и запускается автоматически при загрузке сервера. Вы можете создать службу Windows с помощью утилит srvany.exe и instsrv.exe (из состава Windows Server Resource 2003 Kit), позволяющих запустить процесс powershell.exe с параметром в виде пути к ps1 файлу скрипта. Основной недостаток такого способа создания службы — srvany.exe не контролирует выполнение приложения (скрипта PowerShell в нашем случае) и, если приложение падает (зависает), то служба это не видит и продолжает работать. В этой статье для создания службы Windows из файла со скриптом PowerShell мы будем использовать утилиту NSSM (Non-Sucking Service Manager – оставим без перевода…:)), которая лишена этих недостатков.

Вы можете скачать и установить NSSM вручную или через Chocolately. Сначала нужно установить сам Choco:

Set-ExecutionPolicy Bypass -Scope Process -Force; `
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Затем установим пакет NSSM:

choco install nssm

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

Итак, у нас имеется код, который нужно сохранить в PS1 файл. Добавим бесконечный цикл, который раз в минуту выполняет проверку:

while($true) {
#Ваш PS код
Start-Sleep –Seconds 60
}

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

Создать службу из скрипта PowerShell при помощи NSSM можно прямо из PowerShell :):

$NSSMPath = (Get-Command "C:\tools\nssm\win64\nssm.exe").Source
$NewServiceName = “CheckADGroupSrv”
$PoShPath= (Get-Command powershell).Source
$PoShScriptPath = “C:\tools\CheckADGroup\checkad.ps1”
$args = '-ExecutionPolicy Bypass -NoProfile -File "{0}"' -f $PoShScriptPath
& $NSSMPath install $NewServiceName $PoShPath $args
& $NSSMPath status $NewServiceName

Запустим новую службу:

Start-Service $NewServiceName

Проверим статус службы с помощью PowerShell:

Get-Service $NewServiceName

NSSM - создать службу Windows из скрипта PowerShell

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

Служба CheckADGroupSrv действительно появилась, она настроена на автоматический запус и в данный момент запущена (Running). Как вы видите, ваш PowerShell скрипт запущен внутри процесса nssm.exe.

NSSM - создать службу Windows из скрипта PowerShell

Обратите внимание, что служба запущена из-под учетной записи System. Если вы используете в своих PS скриптах другие модули (в моем случае для получения состава доменной группы безопасности используется командлет Get-ADGroupMember из модуля Active Directory для Windows PowerShell), этот аккаунт должен иметь доступ к файлам модуля и права на подключение к AD (в моем случае). Вы так же можете запустить эту службы под другой учётной записью (или аккаунтом gMSA) и предоставить пользователям права на остановку/перезапуск службы, если у них нет прав локального администратора.

Чтобы служба могла отображать уведомления в сеанс пользователя (взаимодействовать с рабочим столом) нужно на вкладке “Вход в систему” (Log on) включить опцию “Разрешить взаимодействие с рабочим столом” (Allow service to interact with desktop).

Чтобы это работало в Windows 10 / Windows Server 2012 R2/ 2016 нужно изменить значение DWORD параметра реестра NoInteractiveServices в ветке HKLM\System\CurrentControlSet\Control\Windows на 0 и включить службу обозревателя интерактивных служб (Interactive Services Detection Service):

Start-Service -Name ui0detect

Однако в Windows 10 1803 службу Interactive Services Detection Service полностью убрали из системы, и вы более не можете переключиться в нулевую сессию (Session 0), так что вы просто не увидите окна, которые выводятся из-под аккаунта System.

Вы можете изменить описание службы командой:

& $NSSMPath set $NewServiceName description “Мониторинг изменений группы AD”

Чтобы удалить созданную службу можете воспользоваться командой sc delete или

nssm remove CheckADGroupSrv

nssm remove - удалить службу windows

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

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