1. Писане на сценарий
Скриптът на PowerShell (без значение коя версия) е текстов файл с разширение *.ps1.
Ето пример за прост скрипт на Power Shell (файл systemInfo.ps1):
# Извличане на WMI обект за операционната система
Get-WmiObject Win32_OperatingSystem
Този файл може да бъде създаден и редактиран, например, във FAR Manager.
Забележкаче FAR Manager, въпреки че може да работи в конзолата Power Shell, но изпълнява скриптове от себе си в средата на обикновена конзола на Windows cmd . Тоест, FAR Manager може да се използва само за създаване и редактиране на PowerShell скриптове, но не и за изпълнение. Но преди да се разочаровате, прочетете точка 3.
2. Стартирайте скрипта
Скриптът трябва да се стартира от конзолата на Power Shell, а не от обикновената конзола на Windows. В конзолата на Power Shell трябва да отидете в директорията, където се намира скриптът (с помощта на командите cd ), и след това стартирайте самия скрипт, не забравяйте да предпишете знаците преди него".\" . Например, имаме пътя до скриптовия файл d:\work\systemInfo.ps1 . Тогава командите за стартиране ще изглеждат така:
cd\
cd работа
.\systemInfo.ps1
или по този начин (просто посочете пълния път до скрипта):
d:\work\systemInfo.ps1
Най-вероятно, когато стартирате скрипта, ще се появи следната грешка:
Не може да се зареди файл D:\work\systemInfo.ps1, защото скриптовете не са разрешени в тази система. Напишете „get-help about_signing“ за повече информация.
низ: 1 знак: 18
CategoryInfo: NotSpecified: (:), PSSecurityException
FullyQualifiedErrorId: RuntimeException
Грешката се появява поради факта, че по подразбиране Power Shell има активирана максимална политика за сигурност, която ви позволява да изпълнявате команди на PowerShell на командния ред, но не ви позволява да изпълнявате скрипт с команди на PowerShell на същия команден ред .
За да разрешите изпълнението на скриптове на PowerShell, трябва да създадете *.bat файл, например enableScript.bat със следното съдържание:
powershell -Command Set-ExecutionPolicy RemoteSigned
Този *.bat файл може да се изпълни във всяка конзола: дори в PowerShell, дори в обичайната cmd . След изпълнение на този файл, скриптовете на PowerShell ще започнат да се изпълняват в конзолата на PowerShell.
3. Стартиране на PowerShell скрипт от обикновена cmd конзола на Windows
Можете също така да стартирате PowerShell скрипт от обикновена конзола на Windows. За да направите това, можете да използвате командата:
Powershell -файл ./systemInfo.ps1
По този начин можете да изпълнявате скриптове директно от FAR Manager и те ще работят.
Но тук има лека тънкост. Параметър- Файл задейства само по локални пътища, дори ако пътят е относителен"./" . Тоест, ако *.ps1 - файлът е на локалния диск C: или D: , тогава това обаждане ще работи. Но ако се опитате да изпълните скрипт, намиращ се на ресурс на домейн, скриптът няма да бъде намерен. Може би това ще бъде коригирано в бъдещите версии на PowerShell.
След като преминаха към операционната система Windows 10, много потребители забелязаха бутона „Стартиране на PowerShell“ в интерфейса на Explorer. В тази връзка в мрежата се появиха много въпроси, потребителите се интересуваха каква е програмата Windows PowerShell и за какво е тя. Ако и вие се интересувате от този въпрос, тогава този материал трябва да ви помогне.
Windows PowerShell е скриптов език и програма за команден ред за изпълнение на тези скриптове. Този език беше пуснат през 2006 г. като част от втория сервизен пакет за Windows XP и оттогава PowerShell е част от всички операционни системи на Microsoft. През 2008 г. се появи втората версия на този език и от Windows 7 се използва. Файловете със скриптове на Windows PowerShell имат разширение PS1 и могат да се изпълняват като познати BAT и CMD файлове.
Windows PowerShell е скриптов език, който е разработен основно за бизнес клиенти на Microsoft, които се нуждаят от мощни инструменти за автоматизиране на задачите за управление на Windows сървъри и компютри. Платформата .NET, разработена от Microsoft от 2002 г., е използвана като основа за този език.
Windows PowerShell ви позволява да автоматизирате голямо разнообразие от задачи. С него можете да управлявате файлове, услуги, процеси, акаунти и настройки. Езикът PowerShell разбира много команди от обикновения команден ред на Windows (CMD), но също така има свой собствен език, състоящ се от собствени команди, наричани тук командлети.
Cmdlets (на английски cmdlets) се формират според правилото глагол-съществително, например Get-Help. Можете да научите основите на Windows PowerShell, като използвате Помощ (кратката команда „Get-Help“). За обща информация просто напишете „Get-Help“, за помощ за конкретен cmdlet напишете „Get-Help Cmdlet-Name“. Например, ако въведете командата „Get-Help Get-Process“, ще получим помощ за cmdlet Get-Process.
Можете да стартирате програма Windows PowerShell по различни начини. Най-лесният вариант е просто да използвате търсенето в менюто "Старт". За да направите това, отворете менюто "Старт", въведете заявката за търсене "Windows PowerShell" и след това отворете намерената програма.
Можете също така да използвате комбинация Клавиш Windows-Rи въведете командата "powershell".
В Windows 10 програмата PowerShell може да се стартира от всяка папка. За да направите това, щракнете върху бутона "Файл" в горния ляв ъгъл на Explorer и изберете "Стартиране на Windows PowerShell".
Както вече казахме, с помощта на програмата PowerShell можете да автоматизирате много рутинни задачи в операционната система Windows. Като пример ще демонстрираме някои от функциите, които има този инструмент, за да разберем как да го използваме.
Изпразване на кошницата. Има специална команда за изчистване на кошчето, наречена „Clear-RecycleBin“. Тази кратка команда е полезна при писане на скриптове за обслужване на компютри. Когато стартирате cmdlet, трябва да посочите устройството, на което искате да изпразните кошчето. Пример:
Изчистване на кошчето c:
Екранната снимка по-долу показва как се изпълнява тази кратка команда. След въвеждане на командата "Clear-RecycleBin c:" се появява съобщение за потвърждение. За да продължите да изпълнявате cmdlet, трябва да въведете буквата "Y" и да натиснете Enter.
Ако добавите „-Force“ към кратката команда „Clear-RecycleBin c:“, тогава кошчето ще бъде изчистено, без да се иска потвърждение. Екранна снимка по-долу.
Архивиране на файлове. За архивиране и разопаковане на файлове се предоставят кратки команди Compress-Archive и Expand-Archive. Например, за да архивирате папката "C:\test\" в архива "C:\archive\test2.zip", трябва да изпълните следната команда:
Compress-Archive -LiteralPath C:\test\ -DestinationPath C:\archive\test2.zip
В резултат на изпълнение на горната команда в папка “C:\archive\” ще се появи файлът “test2.zip”, в който ще се архивира съдържанието на папка “C:\test\”.
За Windows PowerShell има огромен брой различни командлети и няма да работи да ги опишем всички в една статия. Затова ви предлагаме да се запознаете с най-популярните от тях:
Можете да получите пълен списък на кратките команди на Windows PowerShell, като изпълните кратката команда „Get-Command -CommandType“.
Стартиране на програма от PowerShell
Задачата е да стартирате от PowerShell произволен изпълним файл(програма или помощна програма от командния ред) е доста често срещана. PowerShell предлага няколко различни начина да направите това, които ще разгледаме по-късно в тази статия. Да започнем с най-простото...
Най-лесният начин да стартирате изпълним файл в PowerShell е да отидете до директорията, съдържаща файла, и да го стартирате директно. Например, нека вземем проста програма, която показва поздрав, и я изпълним с командата:
Set-Location ″C:\Program Files″
.\Hello.exe
Моля, имайте предвид, че дори и да сте в правилната директория, трябва да посочите относителния път към изпълнимия файл. Изключение са файлове от директории, изброени в променливата на средата (път). Например, различни вградени програми и помощни програми (notepad, calc, ping и т.н.), намиращи се в директорията Windows\System32, могат да се стартират без да се посочва пътя.
Ако трябва да посочите пълния път до изпълнимия файл, можете да използвате оператора & (повикване на оператор). Тя ви позволява да изпълните низ от текст, посочен в кавички, като една команда. Например:
&'C:\Program Files\Hello.exe'
Тъй като операторът & не анализира подадената команда, той не може да интерпретира нейните параметри. Следователно допълнителните параметри/аргументи също се предават като текст, в кавички. Например, нека вземем предишната програма и я модифицираме малко, така че да приема желания текст като аргумент:
& 'C:\Program Files\Hello.exe' 'Здравей, свят'
По желание можете да посочите множество аргументи, разделени със запетаи:
& ′C:\Program Files\Hello.exe′ ′Hello,′, ′ world′
За удобство командата и аргументите могат да бъдат поставени в променливи:
$exe = 'C:\Program Files\Hello.exe'
$arg1 = 'Здравей'
$arg2 = 'свят'
& $exe $arg1 $arg2
Е, ако има много аргументи, тогава те могат да бъдат комбинирани с помощта на следната конструкция:
$exe = 'C:\Program Files\Hello.exe'
$allargs = @(′Здравей,′,′свят′)
& $exe $alargs
Командлетът Invoke-Expression работи почти по същия начин като оператора & - той взема текстов низ и го изпълнява като команда. Например:
Invoke-Expression -Command 'C:\Windows\Hello.exe'
Той обаче има един голям недостатък, а именно невъзможността за работа с интервали. Например следната команда ще генерира грешка:
Invoke-Expression -Command 'C:\Program Files\Hello.exe'
Тази функция прави използването на cmdlet изключително неудобно. Въпреки че, ако е необходимо, такива грешки могат да бъдат избегнати с помощта на допълнителни цитати, например като този:
Invoke-Expression -Command ″C:\′Program Files′\Hello.exe″
Кратката команда Start-Process стартира посочения файл като процес, използвайки Започнете.NET клас процес. Например:
Старт-процес -FilePath 'C:\Program Files\Hello.exe'
По подразбиране процесът се изпълнява в отделен прозорец, който се затваря, когато процесът приключи. Можете да промените това поведение с помощта на параметри, така че следната команда ще се изпълни в текущия прозорец:
Старт-процес -FilePath 'C:\Program Files\Hello.exe' -NoNewWindow -Изчакайте
Start-Process също ви позволява да подадете допълнителни аргументи към процеса:
Start-Process -FilePath 'C:\Program Files\Hello.exe' -ArgumentList 'Hello, world' -NoNewWindow -Изчакайте
По подразбиране cmdlet не връща нищо, но можете да използвате параметъра -PassThru, за да го принудите да върне процесен обект. Този обект е много удобен за поставяне в променлива:
$process = Start-Process -FilePath ′C:\Program Files\Hello.exe′ -Wait -PassThru
от които след това можете да научите много полезни неща, като например състоянието:
$process.HasExited
$process.ExitTime
или код за изпълнение:
$process.ExitCode
По принцип класът .NET Process може да се използва директно без cmdlet 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 = ″Здравей, свят″
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $false
$process.Start()
$process.WaitForExit()
$process.StandatdOutput.ReadToEnd()
Можете да правите почти всичко с WMI, включително стартиране на програма. За това методът Създавайте 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
— Успешно завършване
2
- Отказан достъп
3
— Недостатъчни привилегии
8
— Неизвестен отказ
9
- Пътят не е намерен
21
— Невалиден параметър
Кратката команда Invoke-Command може да изпълнява команди на локален или отдалечен компютър с помощта на WinRM. Например, за да стартираме нашата програма на локалния компютър, използваме командата:
Invoke-Command -ScriptBlock (″C:\′Програмни файлове′\Hello.exe″)
Ако е необходимо, аргументите могат да бъдат предадени на програмата:
Invoke-Command -ScriptBlock (C:\'Program Files'\Hello.exe ″Hello,world″)
Моля, обърнете внимание, че Invoke-Command не е много приятелски настроен към интервалите, така че трябва да измислите кавички, за да избегнете грешки. Подобни проблеми обаче могат да бъдат избегнати, например чрез комбиниране на използването на cmdlet с оператора &:
Invoke-Command -ScriptBlock (&'C:\Program Files\Hello.exe')
Invoke-Command се използва главно за дистанционно управление, основното му предимство е възможността да работи едновременно на няколко компютъра. Например:
Invoke-Command -ScriptBlock (″C:\'Program Files'\Hello.exe″) -ComputerName SRV1,SRV2,SRV3
$scriptblock = (″C:\'Програмни файлове'\Hello.exe″)
$Компютри = @(′SRV1′,′SRV2′,′SRV3′)
Invoke-Command -ScriptBlock $scriptblock -ComputerName $Computers
По подразбиране cmdlet връща резултата от изпълнението на програмата и ако я стартирате във фонов режим (параметър -AsJob), тя връща обекта Job:
Invoke-Command -ScriptBlock (C:\'Program Files'\Hello.exe) -ComputerName localhost -AsJob -JobName Hello
Кратката команда 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″
И накрая, друг начин за стартиране на програма от PowerShell е използването на cmd shell. Методът е доста ″индиректен″, но въпреки това работи. Следната команда стартира нов екземпляр на cmd, изпълнява указаната програма в него, излиза от cmd и връща резултата:
cmd /c ″C:\Program Files\Hello.exe″
Такова изобилие от начини за стартиране на програмата осигурява PoSh. И всеки от тях е добър за определени ситуации.
Между другото, статията е базирана на PowerShell: Deep Dive and Best Practice. Силно препоръчвам да го прочетете, има много повече.
Здравейте всички! Днес малка бележка по темата, как да отворите powershell като администратор. Позволете ми да ви напомня, че PowerShell е мощен език за програмиране и администриране от Microsoft, всяка година той придобива все повече и повече командлети и функционалност. По същество това е заместител на командния ред на Windows. По-долу ще разгледаме методите, които ви позволяват да го отворите и конфигурирате.
.
Powershell се развива много добре и с излизането на Windows 10 вече получи версия 4, но нашата тема е друга. И така, как да отворите powershell? Всичко е просто, ако в Windows XP, тогава нищо. тъй като се доставя отделно, във всички следващи версии идва като вграден компонент. Най-универсалният начин за отваряне на powershell е да натиснете
Win + R и въведете powershell
С натискане на enter се стартира PowerShell конзолата, единственият проблем е, че няма да се отвори от името на администратора. И в резултат на това много команди няма да могат да бъдат изпълнени, по-долу ще разгледаме как да направите това от името на администратора.
Можете да отворите Windows powershell чрез start. В Windows 8.1, Windows 2012 R2 отидете на System Tools - Windows и щракнете с десния бутон върху Run as administrator.
В Windows 7 и Windows 2008 R2 изглежда така Старт > Аксесоари > Windows PowerShell
Можете също да създадете пряк път в елемента на задачата и да щракнете с десния бутон върху него и да изберете съответния елемент
би било хубаво PowerShell винаги да се отваря като администратор, нека приложим това. Това се прави във всички версии на Windows по същия начин. Отваряне на контролния панел
Щракнете с десния бутон върху него и изберете свойства. Веднага можете да видите пътя до файла, където се намира в системата.
Щракнете върху бутона "Разширени". Ще видите допълнителни свойства. където трябва да поставите отметка в квадратчето, за да стартирате като администратор.
Всичко е много просто. Сигурен съм, че сега няма да имате въпрос как да отворите Windows powershell. Друго полезно нещо е да промените шрифта в прозореца на Powershell.
Microsoft все повече се фокусира върху командния ред към своя силен език (PowerShell) и това е логично, тъй като неговите възможности за управление операционна система Windows семействата са почти неограничени, ако не и повече от GUI. Започвайки с Windows версии 10 1709, в контекстното меню, PowerShell, замени познатия cmd. Щракнете с десния бутон върху бутона за стартиране в Windows 10 и от контекстно меню, изберете съответния елемент:
В Windows 10 и по-стари версии можете да намерите обвивката на PowerShell, като използвате обичайното търсене, има специален раздел за това. Щракнете до бутона Старт, иконата на лупа. Във формата за търсене, която се отваря, въведете думата PowerShell. Ще бъдете претърсени за всички опции, сред които ще намерите черупката. Ако щракнете с десния бутон върху него, можете да го отворите като администратор.
За да отворите PowerShell shell от менюто "Старт", отворете го и намерете елемента Windows PowerShell, той ще бъде под формата на папка, отворете го и стартирайте подходящата версия.
Ако щракнете с десния бутон, ще можете да стартирате обвивката от името и с администраторски права.
Има и много специфични методи за отваряне на обвивка с мощен език от Microsoft. Най-тромавото е просто да намерите изпълнимия файл и да го стартирате директно от местоположението в системата. Предаваме вашия Windows 10 по пътя:
C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
В резултат на това ще отворите папка с преки пътища, които присъстват в менюто "Старт", можете да ги стартирате.
Можете също така да стартирате оригиналния изпълним файл, който се намира по пътя:
C:\Windows\System32\WindowsPowerShell\v1.0
И с десния бутон върху него можете да го изтеглите като администратор, с максимални права.
Можете също да стартирате Windows PowerShell от прозорец на командния ред, просто въведете вълшебната дума в него и натиснете Enter.
Е, ще ви напомня и за метода за стартиране на нова задача от конзолната добавка на диспечера на задачите. Отворете "Диспечер на задачите", изберете елемента от менюто "Файл - Стартиране на нова задача"
В прозореца, който се показва, въведете PowerShell.
Е, последният познат ми метод е стартирането на PowerShell, чрез Windows Explorer 10, за да направите това, отворете Explorer, изберете елемента от менюто "Файл - стартирайте Windows PowerShell", ще има и двата режима.
Със сигурност сте забелязали, че навсякъде има пряк път за PowerShell ISE и бихте искали да знаете какво представлява той. Накратко, това е специална обвивка, в която можете да пишете скриптове и скриптове на езика PowerShell, като използвате цялото разнообразие от кратки команди, които Microsoft ви предлага.
промените на шрифта на powershell много просто отидете в раздела свойства Шрифт, където можете да зададете размера от 5 до 72.
можете също да стигнете до свойствата от самия прозорец на помощната програма, щракнете върху иконата в горния ляв ъгъл и изберете свойства
Тук настройките на шрифта са малко по-различни, заедно с промяната им се променя и размерът на конзолата.
В раздела Цветове можете да зададете цвета на шрифта в Powershell и самия прозорец. Като го направите черен например като командния ред.
Също така съветвам, ако сте активен конзолен играч, задайте размера на буфера не на 50 команди, а поне на 100.
Благодаря за вниманието. Това са методите за отваряне на конзолата Power Shell в Windows. Материал на сайта