Използване на PowerShell за домашни потребители – Ръководство за начинаещи

Кой не иска да бъде магьосник и да произнесе няколко думи, за да се случат вълшебни неща? Е(Well) , ние не можем да ви покажем как да бъдете магьосник, но можем да ви покажем как да направите малко компютърна магия.

Ако имате компютър с Windows с (Windows)Windows 7 на него, имате PowerShell . Освен това, ако имате компютър с Windows 7 на него, моля, актуализирайте го от съображения за сигурност.

Но тази статия не е само за хората с Windows . Последната версия на PowerShell е безплатна и може да се инсталира и използва на компютри Mac и Linux .

Това е важно, защото това, което научите за PowerShell , сега може да се използва на почти всеки компютър. Кой знае? Може да изведете това умение на следващото ниво и да се впуснете в кариера в информационните технологии(Information Technology) .

Какво е PowerShell?

Високотехнологичният отговор от Microsoft е, че това е „обвивка на командния ред“, създадена специално за системни администратори. †Звучи(” Sounds) плашещо. Но не е така. Грижиш ли се за компютъра си? Да, тогава вие сте системният администратор във вашата къща.

Казвате ли на компютъра си какво да прави с щраквания и натискания на клавиши? Да, така че мислете за обвивката на командния ред като просто за още един прозорец, в който въвеждате неща, за да кажете на компютъра си какво да прави. Можете да направите това.

PowerShell е като език за програмиране, но не толкова загадъчен, колкото повечето. Той наистина се чете много като обикновен английски(English) , което беше нещо, към което Microsoft се стремеше, за да може да бъде взето от непрограмисти.

Това е начин да напишете няколко реда команди, наречени скрипт, за да накарате операционната система Windows да направи нещо, което искате да прави. След това можете да запишете тези редове във файл и да го стартирате с едно щракване или да планирате периодичното му изпълнение.

Какво можете да правите с PowerShell?

Точката от високо ниво на PowerShell е да може да автоматизира задачи, така че да не е нужно да губите времето си да правите обикновени неща многократно. За професионален системен администратор(Systems Administrator) това може да бъде нещо като създаване на нови потребители, генериране на пароли за тях и изпращане на имейл с подробности до техния нов надзорник.

Ръчно извършен, с щраквания и въвеждане, този процес може да отнеме от 5 минути до един час или повече. С правилните скриптове системният администратор(Systems Administrator) може дори да не трябва да прави част от това.

Но искате да знаете какво можете да правите с PowerShell у дома. Почти всичко, което не обичате да правите отново и отново. Използвайте го, за да освободите място на вашия твърд диск, като изтриете временни и регистрационни файлове, от които не се нуждаете.

Поставете полицейски час на компютъра на вашето дете. Преименувайте(Rename) или организирайте куп файлове. Това е красотата на PowerShell . Почти(Almost) всичко, което можете да правите на вашия компютър, можете да създадете скрипт на PowerShell за автоматизиране и изпълнение с едно щракване или по график.

Как да използвам PowerShell?

Най-лесният начин за работа с PowerShell е в интегрираната среда за скриптове на PowerShell (ISE)(PowerShell Integrated Scripting Environment (ISE)) . Можете да го намерите, като щракнете върху Старт(Start) и напишете powershell ise в лентата за търсене в Windows 10 . Трябва да го видите, както е показано по-долу.

За първи път, когато го използваме, ще го стартираме като администратор(Administrator) . За да направите това, първо трябва да имате администраторски права на вашия компютър. Във вашето меню " Старт"(Start Menu) щракнете с десния бутон върху PowerShell ISE , след което щракнете върху Изпълни като администратор(Run as Administrator) .

Може да получите изскачащ прозорец с предупреждение за контрол на потребителския достъп(User Access Control) ( UAC ), който пита дали сте сигурни, че искате да направите това. (UAC)Щракнете върху Да(Yes) .

Сега разглеждате IDE PowerShell(PowerShell IDE) . Горният панел на прозореца (1) е прозорецът за скриптове. Тук ще напишете своя скрипт. Долният панел на прозореца (2) е зоната на конзолата. Когато тествате своя скрипт, ще видите изхода в този прозорец.

Тук също ще видите съобщения за грешки и такива, които ще ви помогнат да поправите и подобрите скриптовете си. Панелът от дясната страна на прозореца (3) е командната добавка. Мислете за него като за речник на всички команди на PowerShell , достъпни за вас.(PowerShell)

PowerShell е настроен да не изпълнява никакви скриптове, освен тези, които вече са част от Windows . Ще трябва да го промените, за да можете да изпълнявате свои собствени скриптове.

В прозореца за скриптове копирайте и поставете следното:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Частта Set-ExecutionPolicy от него се нарича командлет (произнася се командлет). Командлетите са мощни неща. Мислете(Think) за тях като за кратки команди, които можете да дадете на Windows и Windows ще направи куп по-сложни неща, за да удовлетвори вашата команда.

Аналогия би била да кажете на детето си да почисти стаята си. Кратко(Short) и по същество. Ако вашето дете е добре запознато с почистването на стаята, тогава то ще отиде и ще си оправи леглото, ще сложи прането си в коша, ще постави играчките и книгите си и може би дори ще почисти с прахосмукачка пода. Те разбират, че командлетът Clean-YourRoom(Clean-YourRoom) означава всичко това.

В горната част на прозореца ще видите зелена стрелка. Кликнете(Click) върху него, за да изпълните командата.

Частта -ExecutionPolicy казва на Set-ExecutionPolicy(Set-ExecutionPolicy) каква политика да зададе. Това е параметър. Казва се: „Искам да работите в рамките на тези насоки и да направите специално това. Той му казва да използва специфичната политика на RemoteSigned .

Политиката RemoteSigned гласи, че PowerShell не може да изпълнява или изпълнява нито един скрипт, който е бил изтеглен от интернет(Internet) , освен ако не е подписан от доверен издател.

По заобиколен начин той казва на PowerShell , че е добре да се изпълнява всеки скрипт, създаден локално, защото не е необходимо те да бъдат подписани от отдалечен доверен издател. Сега вашият PowerShell скрипт ще може да изпълнява всеки скрипт, който напишете на вашия компютър.

Нека разгледаме скрипт за изтриване на временни файлове. Той не е толкова мощен или задълбочен като CCleaner , но CCleaner идва със собствен набор от проблеми.

Използвайте PowerShell(Use PowerShell) , за да създадете(Create Space) място на вашия твърд диск(Your Hard Drive)

Ще разбием този скрипт ред по ред, за да можете да видите как работи. В края скриптът ще бъде показан напълно, така че можете да го копирате и поставите, ако желаете.

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

Всичко със знак за долар пред него е име на променлива. Мислете за него като за портфейл, в който да поставите ценни неща. Портфейлът(Wallet) ни напомня за знака на долара, ценностите звучи като променлива, така че ние също ще помним това. Създаваме портфейл или променлива с име $TempFileLocation . Знакът за равенство казва на PowerShell какво да постави в тази променлива.

В този случай ние поставяме местоположението на местоположението на временните файлове на Windows – C:\Users\username\AppData\Local\Temp\* . Правим това по две причини; това е местоположение, което винаги е безопасно за изтриване на файлове и ние ще го използваме, за да кажем на PowerShell къде трябва да отиде, за да изтрие файлове.

Където пише потребителско име на това място, разменете го с вашето потребителско име. Това е потребителското име, което използвате, за да влезете в компютъра си. Звездичката (*) в края й е заместваща карта. Това, което представлява, е всичко в папката Temp , защото всичко в папката Temp е временно и искаме да го изтрием.

Двойните кавички около местоположението също са важни. Това казва на PowerShell , че това, което има там, е низ. Мислете(Think) за низ като низ от букви и знаци. Ако бяха обикновени числа, нямаше да използваме кавичките.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Ние правим друга променлива. Този път ще използваме команда, за да измислим нещо, което да поставим в променливата $TempFile .

Get-ChildItem 

Друго нещо, което ще забележите при командлетите като Get-ChildItem е, че е напълно четлив. Вижте как първата дума е глагол? Всички команди(Cmdlets) започват с думи за действие, така че веднага да разберете какво прави. ChildItem е две съществителни.

Втората част на командлета винаги ще ни казва към какво PowerShell ще приложи действието. ChildItem означава всички деца на родителско местоположение. Това е като да кажете вземете всички файлове, които са в папка, като файловете са деца, а папката е родител.

За какво командлетът получава дъщерните елементи? Всичко в променливата $TempFileLocation . PowerShell ще отиде до местоположението, което сме поставили в $ TempFileLocation по-рано и ще получи всички дъщерни елементи, които са там. След това ще ги постави в променливата $TempFile .

И така, какво е с частта -Recurse ? Това казва на Get-ChildItem да премине през всичко в това местоположение. Не отивайте просто да вземете файловете веднага в родителската папка. Ако има папки в тази папка, вземете и всичките им деца, техните деца и т.н. Ще ги вземем всички.

$TempFileCount = ($TempFile).count

Да, ние създаваме трета променлива, наречена $TempFileCount , и ще поставим число в тази променлива. Къде е номерът? Е, ( $TempFile).count ще ни даде този номер. Вероятно сте разбрали, че частта .count ще направи преброяването на всички файлове, които току-що съхранихме в $ TempFile .

Защо направихме това? Най-вече защото е хубаво да знаем колко безполезни файлове почистваме с останалата част от скрипта, за да можем да кажем колко ефективен е бил.

if($TempFileCount -eq 0)

Сега настройваме условно изявление. Можете да видите, че пита „ако“. Ако Какво? Ако нещото в скобите е вярно или невярно. Скобите са важни, в противен случай If не знае какво да сравни. Тук се пита дали числото, което съхраняваме в $TempFileCount , е равно на нула.

-eq е(-eq) стенография за равни. Това е тип оператор за сравнение. Това е все едно да кажете на децата си: „Ако стаята ви е чиста, страхотна, ще направим нещо...“ Това изявление казва дали числото, което е било съхранено в $ TempFileCount , е -равно на нула do следващото нещо.

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

Това е нещото, което ще се случи, ако $TempFileCount е нула. Къдравите скоби са важни. Те казват на PowerShell да прави само това, което е вътре в тях, ако $ TempFileCount е равен на нула.

Той ще напише на хоста или на екрана: „Няма файлове в папката C:\Users\username\Appdata\Local\Temp\*†. Параметърът в края – ForegroundColor казва на PowerShell да направи текста зелен. Това само улеснява разграничаването от съобщение за грешка, което обикновено е червено.

Else

Знаеш какво означава друго. Това е „по-добре стаята ви да е чиста или иначе...“ част от проверката дали детето ви е почистило стаята си. Това ще се случи, ако $TempFileCount не е нула.

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

Това казва отидете на текущото местоположение, съхранено в $TempFile . Вертикалната линия след нея се нарича тръба. Той функционира нещо като тръба в реалния живот, тъй като казва на PowerShell да прехвърли съдържанието на $ TempFile в командлета, сякаш водата се подава в перална машина. След това командлетът Remove-Item прави това, което казва; премахва всичко, което е на това място.

Параметърът -WhatIf е много важен на този етап. Той казва на PowerShell да изпълни командата, но само я изпробвайте, не премахвайте нищо. Просто(Just) ни покажи какво би се случило, ако наистина направихме това.

Това ви позволява да тествате команди, без да променяте нищо на компютъра си. Оставете -WhatIf там, докато не се успокоите, че скриптът ще прави това, което искате да прави и нищо друго. След това просто го изтрийте и скриптът ще свърши своята работа.

Параметърът -Confirm:$false спира скрипта да пита дали наистина искате да изтриете файла. Знаете какво прави -Recurse . -Принудително( -Force) означава изтриване на това нещо, независимо какво. -WarningAction е настроен на SilentlyContinue .

Това не позволява на скрипта да ви дава предупреждения за това, което изтривате. -ErrorAction е настроен на SilentlyContinue , така че ако има някаква грешка в процеса, той просто продължава да се движи.

Сега сме на последния ред.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Точно както Write-Host направи първия път, той ще изведе следното изречение, така че да знаем какво се е случило. Той ще ни каже колко файла са изтрити от току-що обработената папка и ще го направи в зелено, за да го забележите лесно.

Нека разгледаме скрипта като цяло:

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

Можете да копирате и поставите това във вашия PowerShell ISE и да го запишете като нещо като delete-TemporaryFiles.ps1 . Можете също така да се придържате към конвенцията за именуване на командлетите сега, когато ги разбирате.

Ако кодът не работи за вас по някаква причина, можете също да изтеглите скрипта PowerShell, който създадохме, и просто да го стартирате. Просто(Just) го разархивирайте първо, за да видите файла на скрипта.

Всеки път, когато искате да стартирате този скрипт, просто щракнете с десния бутон върху него и изберете Изпълни с PowerShell(Run with PowerShell) . За секунда или две ще се появи конзола на PowerShell , докато вашият скрипт върши своето и след това ще изчезне, ако няма грешки.

Къде мога да науча повече PowerShell?

Това изглежда много! За първия ви PowerShell скрипт е доста. Ако сте стигнали дотук, аплодирайте себе си. Днес научихте много, но сега искате да научите повече. Това е страхотно!

В Интернет(Internet) има много ресурси, за да научите повече за PowerShell . Добро място за начало е нашата статия „ Генериране на списък със стартиращи програми чрез команден ред или PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) “. След това разгледайте тези други ресурси:



About the author

„Аз съм експерт по Windows и Office на свободна практика. Имам над 10 години опит в работата с тези инструменти и мога да ви помогна да извлечете максимума от тях. Моите умения включват: работа с Microsoft Word, Excel, PowerPoint и Outlook; създаване на уеб страници и приложения; и помагане на клиентите да постигнат своите бизнес цели."



Related posts