Powershell где находится windows 7. Windows PowerShell: что это за программа

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

Что такое PowerShell?

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

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

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

Первая версия PowerShell была выпущена в ноябре 2006 года для Windows XP, Windows Server 2003 и Windows Vista. Последней является версия 4.0, которая была выпущена в октябре 2013 г. Она идет по умолчанию с Windows 8.1 и Windows Server 2012 R2.

Что можно сделать с помощью PowerShell?

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

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

Если вы являетесь администратором сети, вы обнаружите, что PowerShell очень полезен при работе с Active Directory. Учитывая, что инструмент содержит сотни настраиваемых команд, которые называются командлеты, вероятность того, что PowerShell может помочь вам стать более продуктивным, очень высока.

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

Если у вас нет плитки PowerShell на начальном экране или ярлыка на рабочем столе, тогда вы можете открыть его с помощью поиска – это один из самых простых способов. Нажмите + Q, введите «powershell», а затем нажмите Enter.

Также вы можете открыть PowerShell в разделе «Приложения» на начальном экране: перейдите на начальный экран и переместите курсор в левый нижний угол, чуть ниже последней плитки в первой колонке. Нажмите на значок со стрелкой, указывающей вниз. Затем нажмите на иконку PowerShell в разделе «Служебные».

Чтобы открыть PowerShell с помощью диалога «Выполнить», нажмите клавиши + R, введите «powershell» и нажмите Enter.

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

В Windows 7 вы можете найти инструмент по ключевому слову «powershell» в меню «Пуск».

Кроме того, открыть PowerShell через меню «Пуск» можно в разделе «Стандартные».

Очевидно, что упомянутая выше команда в окне «Выполнить» работает и в Windows 7.

Кто обычно использует PowerShell?

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

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

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

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

Отличного Вам дня!

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

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

Примеры однострочных скриптов на vbs для windows scripting host можно нарыть в интернете, вот простейший пример:

Set oVoice = CreateObject("SAPI.SpVoice" )
set oSpFileStream = CreateObject("SAPI.SpFileStream" )
oSpFileStream.Open "c:\Windows\Media\tada.wav"
oVoice.SpeakStream oSpFileStream
oSpFileStream.Close

Кстати, это чудо, что код заработал на windows 7, так как по сравнению с windows xp ряд activex объектов исчезло (типа WMPlayerClass) и никто не знает, когда исчезнет или как изменится класс SAPI, да и не дело это, микроскопом гвозди забивать. Поэтому это решение считаю неправильным и не логичным, да и отмирает ActiveX потихоньку, вполне логично убиваемый.NET окружением.

Попробовал решить задачу новомодным PowerShell (не умею готовить, но специально порылся в документации), у меня волосы дыбом встали от того, как там сочетаются замечательные идеи с ужасной реализацией. Например нет нормальной возможности запустить скрипт из командной строки не создав и не подписав файл (я все понимаю, безопасность превыше всего, как результат вопросы, стоит ли этим пользоваться).

Вот простейший код:

$s=new-Object System.Media.SoundPlayer;$s.SoundLocation="C:\Windows\Media\tada.wav";$s.Play();
Прекрасно работает внутри powershell, если его вставить и выполнить вручную!

Но вот таким образом:

powershell -Command $s=new-Object System.Media.SoundPlayer;$s.SoundLocation="C:\Windows\Media\tada.wav";$s.Play();
Ничего не происходит, потому как каждая команда выполняется в своем контексте (т.е. на каждом шаге $s не определено).

Попробовал воспользоваться перенаправлением:

echo $s=new-Object System.Media.SoundPlayer;$s.SoundLocation="C:\Windows\Media\tada.wav";$s.Play(); | powershell -command -
И был шокирован результатом - был запущен зарегистрированный плеер по умолчанию на wav файл (у меня это оказался winamp). С какой стати?

А без использования -command -:

echo $s=new-Object System.Media.SoundPlayer;$s.SoundLocation="C:\Windows\Media\tada.wav";$s.Play(); | powershell
Происходит простой запуск PowerShell с ожиданием ввода команд.

Ладно, сдаюсь, пробуем разрешить не подписанные скрипты (запускаем под привилегированным шелом):

powershell Set-ExecutionPolicy Unrestricted
Создаем и запускаем файл с вышепредложенным кодом (поместив его в c:\a.ps1):И ничего не получаем! Тишина, и никаких сообщений об ошибке (при не разрешенным запуске не подписанных скриптов получаю соответствующее сообщение).

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

UPD от и : Слона то я и не приметил, скрипт завершает работу не доиграв, а запуск кода из командной строки можно организовать с помощью групировки и символа &:

powershell -Command "& {$s=new-Object System.Media.SoundPlayer; $s.SoundLocation="C:/Windows/Media/tada.wav"; $s.Play(); Sleep -Seconds 9}"

UPD2 На основе еще ряда комментариев: Окончательное решение, само собой может быть таким, с учетом автоматического определения длительности файла и исключением переменной $s:

powershell -Command (new-object Media.SoundPlayer "C:\Windows\Media\notify.wav").playsync();
Но самое главное, так и не решает первоначальную задачу - System.Media.SoundPlayer не умеет играть mp3 файлы, т.е. нужно что то посложнее ваять, но я и не задумывался целью этого поста ставить решение оригинальной задачи.

Запуск программы из PowerShell

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

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

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

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

Обратите внимание, что даже находясь в нужном каталоге, требуется указывать относительный путь к исполняемому файлу. Исключение составляют файлы из директорий, перечисленных в переменной окружения (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″

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

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

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

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

$process.HasExited

$process.ExitTime

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

$process.ExitCode

.NET

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

::Start(′C:\Program Files\Hello.exe′)

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

$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()

WMI

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

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

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

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

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

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

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

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

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 -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-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″

CMD

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

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

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

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

Всем привет! Сегодня небольшая заметка на тему, как открыть powershell от имени администратора . Напомню PowerShell, это мощный язык программирования и администрирования от компании Microsoft, каждый год он обрастает, все большим количество командлетов и функциональностей. По сути, это замена командной строке Windows . Ниже рассмотрим методы позволяющие его открыть и настроить.
.

Методы открытия оснастки PowerShell

Powershell очень хорошо развивается и с выходом Windows 10 получил уже 5 версию, но у нас тема другая. Так как открыть powershell? Все просто если в Windows XP, то никак. так он доставляется отдельно, во всех последующих релизах он идет как встроенный компонент. Самый универсальный способ открытия powershell это нажать

Win+R и ввести powershell

Нажав enter у вас запуститься консоль PowerShell, проблема только в том, что откроется она не от имени администратор. И в итоге многое команды выполнить не удастся, ниже смотрим как это сделать от имени админа.

Как запустить windows powershell от имени администратора в Windows 8.1 и Windows 7

Открыть windows powershell можно через пуск. В Windows 8.1, Windows 2012 R2 переходите в пункт Служебные - Windows и правым кликом выбираете запустить от имени администратора.

В Windows 7 и Windows 2008 R2 это выглядит вот так Пуск > Стандартные > Windows PowerShell

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

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

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

Нажимаем кнопку "Дополнительно". У вас откроется дополнительные свойства. где вам нужно выставить галку запуск от имени администратора.

Все очень просто. Уверен, что у вас теперь не встанет вопроса как вам открыть windows powershell. Еще полезным бывает поменять шрифт в окне powershell.

Как открыть PowerShell через контекстное меню кнопки «Пуск» в Windows 10

Компания Microsoft, все больше делает акцент с командной строки в сторону своего сильного языка (PowerShell), и это логично, так как его возможности по управлению операционными системами семейства Windows, почти безграничны, а то и больше, чем в графическом интерфейсе. Начиная с версии Windows 10 1709, в контекстном меню, PowerShell, заменил всем привычный cmd. Щелкаете правым кликом по кнопке пуск в Windows 10 и из контекстного меню, выбираем соответствующий пункт:

  1. Windows PowerShell
  2. Windows PowerShell (администратор) - это как раз и есть режим с максимальными правами в Windows 10.

Запуск Windows PowerShell с помощью поиска в Windows 10

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

Запуск Windows PowerShell с помощью меню Пуск в Windows 10

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

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

Дополнительные и универсальные методы запуска оболочки

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

C:\Users\имя пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

В итоге у вас откроется папка с ярлыками, которые присутствуют в меню "Пуск", можете их запускать.

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

C:\Windows\System32\WindowsPowerShell\v1.0

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

Так же вы можете запустить виндоус PowerShell и из окна командной строки, для этого просто введите в нем волшебное слово и нажмите Enter.

Ну и еще напомню метод, запуска новой задачи из оснастки "Диспетчер задач". Откройте "Диспетчер задач", выберите пункт меню "Файл - Запустить новую задачу"

В появившемся окне введите PowerShell.

Ну и последний известный мне метод, это запуск PowerShell, через проводник Windows 10, для этого откройте проводник, выберите пункт меню "Файл - запустить Windows PowerShell", тут будут оба режима.

Что такое PowerShell ISE

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

powershell шрифт меняется очень просто перейдите в свойствах на вкладку Шрифт, где вы можете задать размер от 5 до 72.

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

Тут настройки шрифта немного другие, вместе с их изменением, меняется и размер консоли.

На вкладке Цвета, можете задать цвет шрифта в powershell да и самого окна. Сделав его например черным, как командная строка.

Так же советую, если вы активный консольщик выставить размер буфера не в 50 команд, а хотя бы в 100.

Спасибо за внимание. Вот такие вот методы, открытия консоли Power Shell в Windows. Материал сайта

Есть несколько различных способов запуска скрипта, ниже приведены основные:

  1. Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:\Scripts\test.ps1, или перейти в папку скрипта командой cd C:\Scripts и запустить его командой.\test.ps1)Оболочку можно найти и запустить множеством способов. Один из способов - через меню "Пуск". Для Windows 7 - нужно зайти во "Все программы" - "Стандартные" - "Windows PowerShell" и запустить оболочку "Windows PowerShell". Для Windows 10 - нужно найти группу на букву "W" и в ней вы найдете "Windows PowerShell".
  2. Запустить "Интегрированную среду сценариев Windows PowerShell ISE" - это программа - среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку "Открыть" или зайти в меню Файл - Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку "Выполнить скрипт".Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell - в меню "Пуск".
  3. Запустить стандартную коммандную строку и в ней написать:
    powershell -file <имя_скрипта> (пример: powershell -file myscript.ps1)

Если вы раньше не запускали скрипты PowerShell, то скорее всего, вы получите сообщение: Не удается загрузить файл <имя_скрипта>, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений. Связано это с тем, что из соображений безопасности и недопущения случайного выполнения вредоносного кода, все скрипты должны быть подписаны цифровой подписью.

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

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

Set-ExecutionPolicy RemoteSigned -Scope Process

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

<имя_скрипта>

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

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

Set-ExecutionPolicy RemoteSigned

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

Как запустить скрипт PowerShell в фоновом режиме?

Для этого достаточно использовать параметр запуска -WindowStyle, который может принимать значения: Normal, Minimized, Maximized и Hidden. Таким образом, чтобы запустить неподписанный скрипт в фоновом режиме, нужно выполнить команду:

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

Так же можно еще при желании добавить -NonInteractive, чтобы скрипт не задавал никаких вопросов. Таким образом, скрипт выполнится незаметно для пользователя. Будmте внимательны, используя такой способ.

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

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

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

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

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

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

Как запустить скрипт PowerShell с помощью ярлыка?

Осуществить такую задачу можно двумя способами:

  1. Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
  2. Создать ярлык на PowerShell, который можно найти в папке c:\Windows\System32\WindowsPowerShell\v<версия>\ и в свойствах ярлыка в поле "Объект" дописать необходимые параметры.

Таким образом, например, чтобы запустить скрипт powershell при входе пользователя, можно просто создать ярлык, как описано во 2-м пункте и поместить его в автозагрузку. Так же, создание ярлыка одним из способов выше позволит легко запустить скрипт от имени администратора или от имени любого другого пользователя как обычную программу.

Скриптовый язык PowerShell - довольно мощный инструмент для решения различных задач, но его можно использовать не только для хороших вещей, но и во вред, поэтому, пользуйтесь им с умом;)