Viimasel ajal pole oma blogisse midagi õieti jõudnud kirjutada kuna olen usinasti Powershelli õppinud ja kirjutanud liidest Configuration Managerile, et üles panna pakette, advertisemente ja lisada distribution pointe. Arvatavasti uue aasta alguses postitan oma blogisse selle ülesse.
Selleks, et oma arvutis powershelli koodi üldse jooksutada on vaja seadistada Powershell Script Execution Policy. PS Execution poliitikat on võimalik seadistada mitut moodi. Selles postituses toon välja kõik erinevad variandid.
Mis on PS Execution poliitika?
PS Execution poliitika on loodud selleks, et kaitsta kasutaja arvutit viiruste eest, et need ei käivitaks kasutaja arvutis erinevaid skripte ja vältida olukordi kus sa ise lased mingi asja valesti käima. Kui *.VBS faili võid lihtsalt käivitada vajutades faili peal, siis Powershelli skriptiga nii lihtsalt ei lähe. Vaikimisi ei lubata käima lasta ühtki PSi faili ja kui proovid avada PS skripti, siis avatakse see Notepadis. Endalgi on juhtnud, et kogematta VBSi käima lasknud ja skript on alustanud mingit toimingut. Minule igatahes meeldib, see sisseehitatud turvalisuse element. Kui ma lugesin Microsofti PowerShelli Best Practice raamatut, siis seal öeldakse PS Execution poliitika kohta, et see ei ole turvalisuse element vaid mugavuse. Lisaks mainiti ka, et see poliitika on loodud selleks, et tõsta teadlikkust kuidas PSi skripte käivitatakse. Siit tekib aga küsimus, et mis mõttes mugavuse element?
Vaikimisi on arvutis PS Execution poliitika RESTRICTED. Kokku on viis erinevat poliitikat:
RESTRICED
· Default script execution policy
· Runs commands interactively from the Windows PowerShell Console
· Pipiline commands permitted
· Creating Functions in the Windows PowerShell Console permitted
· Use of script blocks in commands allowed
· All files with the extension of (*.ps1) are blocked from executing, including all six of the various Windows PowerShell profiles
· Modules are blocked (*.psm1file extension)
· Windows PowerShell Configuration files are blocked (*.ps1xml)
ALLSIGNED
· Scripts, profiles, modules, and configuration files run when signed by trusted publisher
· Requires all scripts to be signed, including scripts written on local computer
· Prompts before running scripts signed by publishers that are not trusted
· Prompts before running scripts from trusted publishers the first time the script is run
REMOTESIGNED
· Local scripts, profiles, modules, and configuration files run when not signed
· Scripts received from the internet zone must be signed by a trusted publisher prior to running
· Prompts before running scripts downloaded from the internet zone from trusted publishers
UNRESTRICED
· All unsigned scripts, profiles, modules, and configuration files run when not signed
· Prompts before running scripts received from the internet zone
BYPASS
· Nothing is blocked and no warning prompts
Kui te avate PS konsooli ja proovite *.ps1 faili käivitada saate te sellise veateate:
Veateate saate selle pärast, et alguses on Execution poliitika RESTRICTED. Pärast tulen selle juurde tagasi kuidas me saame selle faili käima lasta.
Interneti tsoonid
PSi Execution poliitika tugineb Internet Exploreri tsoonidel. Nt kui te laete alla skripti internetist lisatakse sellele külge märge, et fail on internetist. Selleks, et seda märget näha tuleb kasutada sellist utiliiti nagu
Streams.exe. Seda on võimalik laadida siit:
http://technet.microsoft.com/en-us/sysinternals/bb897440.
Streams.exe tuleb käima lasta argumendiga
–S nt:
Streams.exe –s C:\Scripts ja peale seda peaksite nägema midagi taolist:
Selleks, et eemaldada see märge tuleb Streams.exe käima lasta –D nt: Streams.exe –d c:\scripts\ script.ps1
Kui see märge faili küljest ära kustutada, siis arvuti arvab, et see fail pärineb sellest arvutist.
Execution poliitika seadistamise variandid
1. Otse registrist
PSi execution poliitika seadistus asub registris [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]
2. Läbi PS konsooli
Selleks, et execution poliitikat läbi PS konsooli seadistada tuleb PS konsool käima lasta „Run As Administrator“. Käsk mida sisestada tuleb on Set-ExecutionPolicy nt: Set-ExecutionPolicy 1.
0 - Unrestricted
1 - RemoteSigned
2 – AllSigned
3 – Restricted
4 – Bypass
3. Läbi Logon skripti
Tehke üks VBS fail ja käsk mida sinna sisestada võite nt:
Set WshShell = CreateObject(“Wscript.Shell“)
WshShell.Run(„PowerShell.exe –NoInteractive –command &{Set-ExecutionPolicy RemoteSigned}“)
4. Läbi grupi poliitika
Kui teil on AD DS domeen, siis oleks seda kõige õigem läbi grupipoliitika teha. Poliitika mida seadistama peate on Computer Configuration\Administrative Templates\Windows Components\Windows PowerShell ja sealt Turn on Script Execution (See käib Server 2008 R2 kohta)
Selleks korraks hetkel kõik. Järgmises osas räägin PowerShelli argumentidest.