Приклади скрипт PowerShell для автозапуску програми. Як відкрити PowerShell, всі методи

Приклади скрипт PowerShell для автозапуску програми. Як відкрити PowerShell, всі методи

Запуск PowerShell скриптів за розкладом

До завдань практично будь-якого системного адміністратора входить написання різних скриптів та їх запуск. Запланувати запуск скрипту за розкладом за допомогою Task Sheduler — це завдання нескладне, але при використанні PowerShell є деякі нюанси, про які я розповім у цій статті.

Отже, припустимо, у мене є скрипт start.ps1, який мені необхідно запускати щодня протягом 10 днів. Є два способи вирішити це завдання.

Спосіб 1

Для запуску скрипта скористаємося оснащенням Task Scheduler, він планувальник завдань. Знайти його можна в розділі Administrative Tools або натиснувши Win+Rі ввівши команду taskschd.msc. Відкриваємо планувальник та у розділі Actions вибираємо пункт Create Task.

На вкладці General вказуємо ім'я та опис завдання, а також (за потребою) користувача, від якого завдання буде запускатися. Для того, щоб завдання виконувалося незалежно від того, чи користувач у системі залогінен, вибираємо опцію «Run whether user is logged on or not». Якщо виконання завдання потрібно підвищення привілеїв, то відзначаємо опцію «Run with highest privileges».

Далі йдемо на вкладку Triggers і створюємо новий тригер, у якому зберігатиметься розклад запуску нашого завдання. У полі Start вказуємо дату та час запуску, а поле Expire — дату і час завершення завдання. Вказуємо виконувати завдання щодня (Daily) та задаємо період повтору (Recur every) 1 день.

Примітка.Якщо ви хочете запускати завдання частіше, ніж раз на день, то потрібно вибрати одноразове виконання (One time), а в розділі Advanced settings відзначити пункт Repeat task every і вказати час повторення мінімум 5 хвилин максимум 1 годину. Якщо цього недостатньо, додатково в полі Delay task for up to можна вказати тимчасову затримку.

І головне. Переходимо на вкладку Action та вказуємо дію для запланованого завдання. Нагадаю, що з метою безпеки PowerShell скрипти можуть виконуватися лише інтерактивно, тобто спочатку треба запустити оболонку PowerShell і вже в ній вказати шлях до скрипту. Тому в полі "Action" вказуємо запуск powershell.exe, а в полі "Add Arguments" параметр -File і шлях до нашого скрипту, ось так:

File ″C:Scripts¥start.ps1″

Також у полі аргументи можна вказати:

Command — Виконує вказані команди та будь-які інші параметри. Цей параметр також можна використовувати для запуску скрипта, наприклад: -Command ″& (C:\Scripts\start.ps1)″. Крім того, за його допомогою можна передавати до скрипту параметри: -Command ″& (C:\Scripts\start.ps1 -a 1 -b 3)″;
-ExecutionPolicy — задає політику виконання скриптів для поточного сеансу, може приймати значення Unrestricted, RemoteSigned, AllSigned та Restricted. Задана політика діятиме тільки у поточному сеансіі має пріоритет над будь-якими раніше створеними політиками;
-NonInteractive - відключити виведення інтерактивних запитів до користувача;
-WindowStyle Hidden - запуск вікна PowerShell у прихованому режимі, непомітно для користувача;
-NoProfile - запобігає завантаженню профілю, що може дещо прискорити виконання скрипту;
-NoExit - Залишити оболонку відкритої після відпрацювання скрипта. Це може знадобитися під час перевірки та налагодження скрипту.

Заповнивши необхідні поля, тиснемо ОК і зберігаємо завдання. Тепер скрипт запускатиметься за розкладом щодня протягом заданого часу протягом 10 днів.

Спосіб 2

PowerShell 3.0 з'явився новий функціонал Sheduled Job, що дає можливість створювати заплановані завдання прямо з консолі, не користуючись оснасткою планувальника. Скористаємося ним для планового запуску нашого скрипту.

Спочатку створюємо розклад запуску (щодня о пів на п'яту вечора, протягом 10 днів):

$t = New-JobTrigger -Daily -At 4:30PM -DaysInterval 10

Потім зберігаємо в змінній облікові дані:

$cred = Get-Credential contoso\administrator

Як опція вказуємо запуск завдання з підвищеними привілеями:

$o = New-ScheduledJobOption -RunElevated

І реєструємо завдання з ім'ям Start:

Register-ScheduledJob -Name Start -FilePath C:\Scripts\start.ps1 -Trigger $t -Credential $cred -ScheduledJobOption $o

Щоб переконатися, що завдання створено, можна відкрити планувальник і знайти наше завдання у розділі Microsoft\Windows\PowerShell\SheduledJobs.

Примітка.Для кожного запланованого завдання PowerShell у директорії %systemdrive%\Users\%username%\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs створюється однойменна папка. У цій папці знаходиться саме завдання у XML-файлі та папка Output, в якій, у підпапках за часом виконання, зберігається історія виконання завдання - результат виконання (файл Result.xml) і статус завдання (Status.xml). Ці файли можуть стати в нагоді для налагодження та діагностики в тому випадку, якщо завдання не відпрацьовує належним чином.

Execution Policy

Насамкінець нагадаю про один важливий момент, а саме про політику виконання скриптів Execution Policy. Подивитися поточне значення політики можна командою Get-ExecutionPolicy. Політика виконання може мати значення:

Restricted – блокується виконання будь-яких скриптів. Значення за замовчуванням;
AllSigned - дозволено виконання скриптів, що мають цифровий підпис;
RemoteSigned — скрипти, підготовлені на локальному комп'ютері, можна запускати без обмежень, скрипти, завантажені з Інтернету, лише за наявності цифрового підпису;
Unrestricted - дозволено виконання будь-яких скриптів. При запуску непідписаного скрипта, завантаженого з Інтернету, програма може вимагати підтвердження;
Bypass – нічого не блокується, жодні попередження та запити не з'являються.

Зазвичай для безпроблемного виконання скриптів достатньо встановити значення RemoteSigned. Змінити поточне значення можна командою Set-ExecutionPolicy, наприклад:

Set-ExecutionPolicy RemoteSigned -force

Примітка.Якщо зазначена в команді політика виконання суперечить груповій політиці, параметр запишеться в реєстр, але діяти не буде.

Запуск PowerShell скрипту

Ця нотатка присвячена опису налаштування необхідних параметрів для запуску PowerShellскриптів. Найчастіше при першому запуску .ps1скриптів ви бачите такі помилки:

Файл неможливо завантажити. Файл немає цифрового підпису. Скрипт не буде виконано у системі. Щоб отримати додаткові відомості, введіть "Get-Help about_signing".
The file cannot be loaded. The file is not digitally signed. Script не буде execute on the system. Please see "Get-Help about_Signing" для більше details.

Запустити програму від ненадійного видавця? Файл опубліковано CN= Цей видавець не помічений як надійний у цій системі. Виконувати слід лише скрипти надійних видавців.
[V] Ніколи не виконувати [D] Не виконувати [R] Виконати один раз [A] Завжди виконувати [?] Довідка (за замовчуванням «D»):
Do you want to run software from this untrusted publisher? The file is published by CN= Цей публікуючий не є trusted на вашій системі. Тільки run scripts від trusted publishers.
[V] Never run [D] Do not run [R] Run once [A] Always run [?] Help (default is «D»):

Ці помилки та повідомлення викликані параметрами політики виконання Windows PowerShell. При цьому не варто думати, що ці параметри дійсно підвищують безпеку ОС, адже код все одно відпрацює, якщо його скопіювати в консоль PowerShell. Таким чином, налаштування безпеки можна відключити - вони захищають лише від випадкових дій. Тому зазвичай цю проблему вирішують командою:

Set-ExecutionPolicy Unrestricted LocalMachine

Звичайно, такий підхід не застосовується в корпоративному середовищі, тому розберемося докладніше з цією ситуацією. Переглянути поточні налаштування політики в усіх сферах застосування можна, виконавши командлет Get-Executionpolicyіз параметром list.

get-executionpolicy -list

Scope ExecutionPolicy
—— —————
MachinePolicy Unrestricted
UserPolicy Undefined
Process RemoteSigned
CurrentUser AllSigned
LocalMachine Restricted

Ця політика може набувати 6 значень:

Restricted(Політика виконується за замовчуванням. Наприклад, якщо у всіх галузях застосування стоїть значення Undefined)
- Допускає окремі команди, але скрипти виконувати не можна.
— Перешкоджає виконанню всіх файлів скриптів, включаючи файли форматування та конфігурації (PS1XML), файли скриптів модулів (PSM1) та профілі Windows PowerShell (PS1).

AllSigned

— Вимагає, щоб усі скрипти та конфігураційні файли були підписані надійним видавцем, у тому числі скрипти, підготовлені на локальному комп'ютері.
— Перед виконанням скриптів видавців, для яких ще не визначено, чи надійні вони, виводяться попередження.
— Є ризик виконання непідписаних скриптів із джерел, відмінних від Інтернету, а також підписаних, але шкідливих скриптів.

RemoteSigned
- Виконання скриптів дозволено.
— Вимагає наявності цифрового підпису надійного видавця у скриптів та конфігураційних файлів, що завантажуються з Інтернету (включаючи електронну пошту та програми миттєвого обміну повідомленнями).
— Не потребує наявності цифрових підписів у скриптів, які виконуються та написані на локальному комп'ютері (не завантажені з Інтернету).
— Існує ризик виконання підписаних, але шкідливих скриптів.

Unrestricted
— Можуть виконуватись непідписані скрипти. (Є ризик виконання шкідливих скриптів.)
— Попереджає користувача перед виконанням скриптів та конфігураційних файлів, завантажених з Інтернету.

Bypass
— Нічого не блокується, і жодних попереджень і запитів не з'являється.
— Ця політика виконання призначена для конфігурацій, у яких скрипт Windows PowerShell вбудований у більшу програму, або для конфігурацій, у яких Windows PowerShell є платформою для програми, яка має власну модель безпеки.

Undefined
— У поточній області не встановлено політику виконання.
— Якщо політика виконання у всіх областях має значення Undefined, діє політика виконання Restricted, яка є стандартною політикою виконання.

Існує п'ять областей застосування цієї політики та параметрів:

MachinePolicyі UserPolicyзадаються політиками AD або локальними політиками комп'ютера.
Process- сфера застосування поточна сесія. У довідці йдеться, що її значення зберігається в змінній $PSExecutionPolicyPreference, однак отримати/змінити значення цієї політики через змінну не вдалося. Зміни зроблені на цю сферу застосування не вплинуть на інші сесії.
CurrentUser- сфера застосування поточної користувач. Її значення зберігається в розділі реєстру HKEY_CURRENT_USER ("HKEY_CURRENT_USER\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy").
LocalMachine— сфера застосування на всіх користувачів поточного комп'ютера. Вона зберігається в розділі реєстру HKEY_LOCAL_MACHINE("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics\ExecutionPolicy").

У команди get-executionpolicyє параметр -Scope. За допомогою цього параметра можна вибрати область застосування, для якої з'явиться значення політики.

Get-ExecutionPolicy -scope Process

Результат виконання командлета: RemoteSigned

При цьому Області застосування мають пріоритет найвищого має MachinePolicy, потім UserPolicy, Process, CurrentUser і найнижчий пріоритет у LocalMachine.
Тому в прикладі:

Scope ExecutionPolicy
—— —————
MachinePolicy Unrestricted
UserPolicy Undefined
Process RemoteSigned
CurrentUser AllSigned
LocalMachine Restricted

У поточній сесії результуюча політика матиме значення Unrestricted.

Щоб дізнатися значення політики виконання скриптів для даної сесіі, треба застосувати командлет Get-ExecutionPolicy без параметрів.

Висновок: Unrestricted

Зміна політики виконання скриптів PowerShell:

Щоб змінювати значення політик виконання скриптів PowerShell, існує командлет Set-ExecutionPolicy.
Цей командлет має такі параметри:

-ExecutionPolicy
Вказує на значення політики. Може мати такі значення: Restricted, AllSigned, RemoteSigned, Unrestricted, Bypass, Undefined. Цей параметр є обов'язковим для вказівки. Якщо не вказано, під час виконання комадлет попросить вказати значення.

Висновок:
Вкажіть значення для наступних параметрів:
ExecutionPolicy:

-Scope
Визначає сферу застосування цієї політики. Може мати такі значення: LocalMachine, Process, CurrentUser. Якщо параметр області застосування не вказано, за промовчанням вказується значення LocalMachine.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process

Set-ExecutionPolicy Unrestricted Process

-Force
З цим параметром командлет не вимагатиме підтвердження з боку користувача. Наприклад:

Set-ExecutionPolicy Unrestricted Process -Force

Командлет нічого не виведе на екран і застосовує значення політики.

-Confirm
Якщо вам навпаки мало одного підтвердження. Можна вказати параметр Confirm і у вас буде ще один, додатковий запит на підтвердження ваших дій:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process -confirm

Результат виконання:

Підтвердження
Ви дійсно хочете виконати цю дію?
Виконує операцію Set-ExecutionPolicy над цільовим об'єктом Unrestricted.
[Y] Так - Y [A] Так для всіх - A [N] Ні - N [L] Ні для всіх - L [S] Припинити - S [?] Довідка (значенням за замовчуванням є "Y"):

Зміна політики виконання
Політика виконання захищає комп'ютер від ненадійних сценаріїв. Зміна політики виконання може спричинити загрозу безпеці системи, як описано в розділі довідки, що викликається командою about_Execution_Policies. Ви хочете змінити політику виконання?
[Y] Так - Y [N] Ні - N [S] Призупинити - S [?] Довідка (значенням за умовчанням є «Y»):. exe -executionpolicy Unrestricted

Get-ExecutionPolicy -list

Результат виконання:

Scope ExecutionPolicy
—— —————
MachinePolicy Unrestricted
UserPolicy Undefined
Process RemoteSigned
CurrentUser AllSigned
LocalMachine Restricted

Зміна параметрів політики запуску скриптів за допомогою групових політик.

У груповій політиці параметр контролює запуск скриптів перебувати по шляху:

для MachinePolicy:

Computer Configuration/Policies/Administrative Templates/Windows Components/Windows PowerShell

Конфігурація комп'ютера/Адміністративні шаблони/компоненти Windows/Windows PowerShell

для UserPolicy:
User Configuration/Policies/Administrative Templates/Windows Components/Windows PowerShell

Конфігурація користувача/Адміністративні шаблони/компоненти Windows/Windows PowerShell

Параметр Execution Policy може набувати 3 значень.

Запуск програми з 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 FilesHello.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 FilesHello.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 FilesHello.exe″

Таке ось безліч способів запустити програму надає PoSh. І кожен із них добрий для певних ситуацій.

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

Всім привіт сьогодні хочу розповісти, як запустити скрипт PowerShell у Windows. Уявіть ситуацію ви написали скрипт який сильно спрощує вам виведення інформації по Active Directory , ви відкриваєте оснастку powershell прописуєте шлях до свого скрипту натискаєте enter і отримуєте помилку.

Неможливо завантажити файл<путь к вашему файлу>, оскільки виконання скриптів заборонено даної системи. Введіть "get-help about_signing", щоб отримати додаткові відомості.

Дивимося, як її вирішити.

PowerShell має ряд режимів виконання, які визначають, який тип коду дозволяється виконувати. Все це управляється ключем реєстру, який живе в HKLM. Існує 4 різних режими виконання:

Обмежений(Restricted): Політика виконання за умовчанням, не допускає роботу скриптів і дозволяє лише інтерактивних команд.

Усі підписані(All Signed): Допускає роботу всіх скриптів. Щоправда, всі скрипти та конфігураційні файли повинні бути підписані видавцем, якому ви довіряєте; даний режим наражає вас на ризик роботи підписаних (але шкідливих) скриптів, після отримання підтвердження довіри видавцеві.

Видалені підписані(Remote Signed): Локальні скрипти працюють без підпису. Усі скачані скрипти повинні мати цифровий підпис.

Необмежений(Unrestricted): Усі скрипти та файли конфігурації, отримані з комунікаційних програм, на кшталт Microsoft Outlook, Internet Explorer, Outlook Express та Windows Messenger працюють після підтвердження, що ви розумієте, що файл виходить з Інтернету; жодних цифрових підписів не потрібно; Цей режим наражає вас на ризик роботи непідписаних, шкідливих скриптів.

За промовчанням для PowerShell використовується режим "Обмежений". У цьому режимі PowerShell працює лише як інтерактивна оболонка. Він допускає роботу скриптів, і завантажує лише файли конфігурації, які підписані видавцем, якому ви довіряєте.

Дозволити виконання скриптів powershell

Щоб запускати створені собою скрипти, необхідно дозволити виконання ненадійних скриптів за допомогою команди Set-ExecutionPolicy remotesignedта підтвердженням (Увага!!! для виконання цієї команди необхідно запустити PowerShell з правами адміністратора). Після цього можна знову запустити виконання скрипту.

На запитання тиснемо Y, щоб дозволити виконання скриптів. Після цих маніпуляцій ви можете запустити ваш скрипт.

Всім привіт! Сьогодні невелика замітка на тему, як відкрити 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. Матеріал сайту

 

 

Це цікаво: