Коришћење ПоверСхелл-а за кућне кориснике – водич за почетнике

Ко не жели да буде чаробњак и изговори неколико речи да би се магичне ствари догодиле? Па(Well) , нисмо у могућности да вам покажемо како да будете чаробњак, али можемо да вам покажемо како да направите малу компјутерску магију.

Ако имате Виндовс(Windows) рачунар са Виндовс 7(Windows 7) на њему, имате ПоверСхелл(PowerShell) . Такође, ако имате рачунар са Виндовс 7(Windows 7) на њему, ажурирајте га ради безбедности.

Али овај чланак није само за Виндовс(Windows) људе. Најновија верзија ПоверСхелл(PowerShell) -а је бесплатна и може се инсталирати и користити на Мац-овим и Линук(Linux) рачунарима.

То је важно јер оно што научите о ПоверСхелл(PowerShell) - у сада се може користити на скоро сваком рачунару. Ко зна? Ову вештину можете подићи на виши ниво и упустити се у каријеру у области информационих технологија(Information Technology) .

Шта је ПоверСхелл?

Високотехнолошки одговор из Мицрософта(Microsoft) је да је то „љуска командне линије“ дизајнирана посебно за систем администраторе. а€ Звучи(” Sounds) застрашујуће. Али није. Да ли бринете о свом рачунару? Да, онда сте ви систем администратор у својој кући.

Да ли свом рачунару говорите шта да ради са кликовима и притиском на тастере? Да, замислите командну линију као само још један прозор у који уносите ствари да бисте свом рачунару рекли шта да ради. Можеш ти то.

ПоверСхелл(PowerShell) је попут програмског језика, али не тако загонетан као већина. Заиста се чита као обичан енглески(English) , што је било нешто чему је Мицрософт(Microsoft) тежио да би га могли покупити не-програмери.

То је начин писања неколико редова команди, званих скрипта, да би оперативни систем Виндовс(Windows) урадио нешто што желите. Затим можете да сачувате те линије у датотеци и да је покренете једним кликом или да закажете периодично покретање.

Шта можете да урадите са ПоверСхелл-ом?

Поента високог нивоа ПоверСхелл(PowerShell) - а је да буде у могућности да аутоматизује задатке, тако да не морате да губите време радећи свакодневне ствари више пута. За професионалног администратора система(Systems Administrator) , то би могло бити нешто попут креирања нових корисника, генерисања лозинки за њих и слања е-поште са детаљима њиховом новом супервизору.

Ручно обављен, уз кликове и куцање, тај процес може трајати од 5 минута до сат времена или више. Са правим скриптама, администратор система(Systems Administrator) можда неће морати да уради било који део тога.

Али желите да знате шта можете да урадите са ПоверСхелл-(PowerShell) ом код куће. Готово све што не волите да радите изнова и изнова. Користите га да ослободите простор на чврстом диску брисањем привремених датотека и датотека евиденције које вам нису потребне.

Ставите полицијски час на рачунар вашег детета. Преименујте(Rename) или организујте гомилу датотека. То је лепота ПоверСхелл- а(PowerShell) . Готово(Almost) све што можете да урадите на свом рачунару, можете да креирате ПоверСхелл(PowerShell) скрипту за аутоматизацију и покретање једним кликом или по распореду.

Како да користим ПоверСхелл?

Најлакши начин за рад са ПоверСхелл(PowerShell) -ом је у ПоверСхелл интегрисаном окружењу за скриптовање (ИСЕ)(PowerShell Integrated Scripting Environment (ISE)) . Можете га пронаћи тако што ћете кликнути на Старт(Start) и откуцати поверсхелл исе(powershell ise ) у траку за претрагу у оперативном систему Виндовс 10(Windows 10) . Требало би да га видите као што је приказано испод.

По први пут када га користимо, покренућемо га као администратор(Administrator) . Да бисте то урадили, прво морате имати администраторска права на рачунару. У менију Старт(Start Menu) кликните десним тастером миша на ПоверСхелл ИСЕ(PowerShell ISE) , а затим кликните на Покрени као администратор(Run as Administrator) .

Можда ћете добити искачуће упозорење за контролу приступа корисника(User Access Control) ( УАЦ ) са питањем да ли сте сигурни да желите ово да урадите. (UAC)Кликните на Да(Yes) .

Сада гледате у ПоверСхелл ИДЕ(PowerShell IDE) . Горње окно прозора (1) је окно за скриптовање. Овде ћете написати свој сценарио. Доње окно прозора (2) је област конзоле. Када тестирате своју скрипту, видећете излаз у овом окну.

Овде ћете такође видети поруке о грешци и такве које ће вам помоћи да поправите и побољшате своје скрипте. Окно на десној страни прозора (3) је командни додатак. Замислите то као речник свих ПоверСхелл(PowerShell) команди које су вам доступне.

ПоверСхелл(PowerShell) је подешен да не покреће ниједну скрипту осим оних које су већ део Виндовс(Windows) -а . Мораћете да га промените да бисте могли да покрећете сопствене скрипте.

У прозору за скриптовање копирајте и налепите следеће:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Његов део Сет-ЕкецутионПолици(Set-ExecutionPolicy ) назива се цмдлет (изговара се командлет). Команде су моћне ствари. Замислите(Think) их као кратке команде које можете дати Виндовс(Windows) -у, а Виндовс(Windows) ће урадити гомилу компликованијих ствари да задовољи вашу команду.

Аналогија би била да кажете свом детету да очисти своју собу. Кратко(Short) и тачно. Ако је ваше дете добро упућено у чишћење соба, онда ће отићи и намештати кревет, стављати веш у корпу, стављати своје играчке и књиге на полице, а можда чак и усисати под. Они разумеју да је цмдлет Цлеан-ИоурРоом(Clean-YourRoom) значио све то.

На врху прозора видећете зелену стрелицу. Кликните(Click) на то да бисте покренули команду.

Део -ЕкецутионПолици(-ExecutionPolicy) говори Сет-ЕкецутионПолици(Set-ExecutionPolicy) коју политику да постави. То је параметар. Каже се: „Желим да радите у складу са овим смерницама и урадите управо ово. Каже му да користи специфичну политику РемотеСигнед(RemoteSigned) .

Политика РемотеСигнед(RemoteSigned ) наводи да ПоверСхелл(PowerShell) не сме да изврши или покрене ниједну скрипту која је преузета са Интернета(Internet) осим ако је није потписао издавач од поверења.

На заобилазни начин, ПоверСхелл(PowerShell) -у говори да је у реду покренути било коју скрипту креирану локално, јер оне не морају да буду потписане од стране удаљеног поузданог издавача. Сада ће ваша ПоверСхелл(PowerShell) скрипта моћи да покрене било коју скрипту коју напишете на рачунару.

Погледајмо скрипту за брисање привремених датотека. Није тако моћан или темељан као ЦЦлеанер(CCleaner) , али ЦЦлеанер(CCleaner) долази са сопственим скупом проблема.

Користите ПоверСхелл(Use PowerShell) за стварање простора(Create Space) на чврстом диску(Your Hard Drive)

Раставићемо ову скрипту, ред по ред, тако да можете да видите како функционише. На крају, скрипта ће бити приказана у потпуности, тако да можете да је копирате и налепите ако желите.

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

Све са знаком долара испред је име променљиве. Замислите то као новчаник у који стављате вредне ствари. Новчаник(Wallet) нас подсећа на знак долара, вредности звучи као променљиво, па ћемо и то запамтити. Правимо новчаник, или променљиву, под називом $TempFileLocation . Знак једнакости говори ПоверСхелл-(PowerShell) у шта да стави у ту променљиву.

У овом случају, постављамо локацију Виндовс локације привремених датотека – C:\Users\username\AppData\Local\Temp\* . Ово радимо из два разлога; то је локација са које је увек безбедно брисати датотеке и користићемо је да кажемо ПоверСхелл-(PowerShell) у где мора да иде да би избрисао датотеке.

Тамо где пише корисничко име на тој локацији, замените га својим корисничким именом. То је корисничко име које користите за пријаву на рачунар. Звездица (*) на крају је џокер карта. Оно што представља је све што се налази у фолдеру Темп(Temp) , јер је све у фолдеру Темп(Temp) привремено и желимо да га избришемо.

Двоструки наводници око локације су такође важни. То говори ПоверСхелл(PowerShell) -у да је оно што је унутра стринг. Замислите(Think) стринг као низ слова и знакова. Да су у питању обични бројеви, не бисмо користили наводнике.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Правимо још једну променљиву. Овог пута ћемо користити команду да смислимо нешто што ћемо ставити у променљиву $TempFile .

Get-ChildItem 

Још једна ствар коју ћете приметити код цмдлет-а као што је Гет-ЦхилдИтем( Get-ChildItem) је да је потпуно читљива. Видите како је прва реч глагол? Све команде(Cmdlets) почињу са акционим речима, тако да одмах знате шта ради. ЦхилдИтем(ChildItem) су две именице.

Други део цмдлета увек ће нам рећи на шта ће ПоверСхелл(PowerShell) применити акцију. ЦхилдИтем означава сву децу родитељске локације. Ово је као да кажете да добијете све датотеке које се налазе у фасцикли, при чему су датотеке подређене, а фасцикла надређена.

Од чега цмдлет добија подређене ставке? Све у променљивој $TempFileLocation . ПоверСхелл(PowerShell) ће отићи на локацију коју смо раније ставили у $ ТемпФилеЛоцатион(TempFileLocation) и добити све подређене ставке које се тамо налазе. Затим ће их ставити у променљиву $TempFile .

Дакле, шта је са делом -Рецурсе(-Recurse ) ? То говори Гет-ЦхилдИтем-(Get-ChildItem) у да прође кроз све на тој локацији. Немојте само ићи да преузмете датотеке одмах у родитељски фолдер. Ако у тој фасцикли постоје фасцикле, узмите и сву њихову децу, њихову децу и тако даље. Све ћемо их добити.

$TempFileCount = ($TempFile).count

Да, правимо трећу променљиву под називом $TempFileCount и у ту променљиву ћемо ставити број. Где је број? Па, ( $TempFile).count ће нам дати тај број. Вероватно сте схватили да ће део .цоунт(.count) извршити бројање свих датотека које смо управо ускладиштили у $ ТемпФиле(TempFile) .

Зашто смо ово урадили? Углавном зато што је лепо знати колико бескорисних датотека чистимо са остатком скрипте како бисмо могли да кажемо колико је ефикасан.

if($TempFileCount -eq 0)

Сада постављамо условну изјаву. Видите да се пита а€˜акоа€™. Ако шта? Ако је ствар у загради тачно или нетачно. Заграде су важне, иначе ако не зна шта да упореди. Овде се пита да ли је број који смо ускладиштили у $TempFileCount једнак нули.

-ек је(-eq) скраћеница за једнаке. То је врста оператора поређења. То је као да својој деци кажете: „Ако је ваша соба чиста, одлична, урадићемо нешто...“ Ова изјава каже да ли је број који је сачуван у $ ТемпФилеЦоунт(TempFileCount) - једнак нули до следећа ствар.

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

То је оно што ће се догодити ако је $TempFileCount нула. Коврџаве заграде су важне. Они говоре ПоверСхелл(PowerShell) - у да ради само оно што је унутар њих ако је $ ТемпФилеЦоунт(TempFileCount) једнак нули.

Написаће домаћину или екрану: „Нема датотека у фасцикли Ц:\Усерс\усернаме\Аппдата\Лоцал\Темп\*а€. Параметар на крају, – ФорегроундЦолор(ForegroundColor ) , говори ПоверСхелл(PowerShell) -у да учини текст зеленим. То само олакшава разликовање од поруке о грешци која је обично црвена.

Else

Знаш шта друго значи. Ово је „боље да ваша соба буде чиста или у супротном...“ део провере да ли је ваше дете очистило своју собу. То ће се догодити ако $TempFileCount није нула.

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

Ово каже идите на тренутну локацију сачувану у $TempFile . Вертикална линија после ње назива се цев. Функционише као цев из стварног живота јер говори ПоверСхелл(PowerShell) -у да пребаци садржај $ ТемпФиле-(TempFile) а у цмдлет, као да се вода доводи у машину за прање веша. Затим цмдлет Ремове-Итем( Remove-Item ) ради оно што каже; уклања све што се налази на тој локацији.

Параметар -ВхатИф( -WhatIf ) је веома важан у овој фази. Каже ПоверСхелл(PowerShell) -у да покрене команду, али само је испробајте, не уклањајте ништа. Само(Just) нам покажите шта би се десило да ово заиста урадимо.

Ово вам омогућава да тестирате команде без промене било чега на рачунару. Оставите -ВхатИф тамо док вам не буде удобно да ће скрипта радити оно што желите да ради и ништа друго. Онда само то избришите и скрипта ће обавити свој посао.

Параметар -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) и сачувати га као нешто попут делете-ТемпорариФилес.пс1(delete-TemporaryFiles.ps1) . Можете се држати конвенције именовања цмдлет-а сада када их разумете.

Ако код из неког разлога не ради за вас, можете преузети и ПоверСхелл скрипту коју смо креирали и само је покренути. Само(Just) га прво распакујте да бисте видели датотеку скрипте.

Кад год желите да покренете ову скрипту, само кликните десним тастером миша на њу и изаберите Покрени са ПоверСхелл(Run with PowerShell) -ом . ПоверСхелл конзола(PowerShell) ће се појавити на секунд или две, док ваша скрипта ради своје, а затим ће нестати ако нема грешака.

Где могу да сазнам више о ПоверСхелл-у?

То изгледа много! За вашу прву ПоверСхелл(PowerShell) скрипту то је прилично мало. Ако сте стигли овако далеко, аплаудирајте себи. Данас сте много научили, али сада желите да научите више. То је сјајно!

На Интернету(Internet) постоји много ресурса за више информација о ПоверСхелл(PowerShell) -у . Добро место за почетак је наш чланак „ Генеришите листу програма за покретање преко командне линије или ПоверСхелл-(Generate a List of Startup Programs via Command Line or PowerShell) а“. Затим погледајте ове друге ресурсе:



About the author

Ја сам професионални рачунарски техничар и имам преко 10 година искуства у овој области. Специјализовао сам се за развој Виндовс 7 и Виндовс апликација, као и за дизајн цоол веб локација. Изузетно сам образован и искусан у овој области, и био бих драгоцена предност за сваку организацију која жели да унапреди своје пословање.



Related posts