Kuidas konfigureerida Windowsi tööks PowerShelli skriptidega kergemini
Windowsil ja PowerShellil on sisseehitatud turvaelemendid ja vaikekonfiguratsioonid, mille eesmärk on takistada lõppkasutajatel oma igapäevase tegevuse käigus skripte kogemata käivitamast. Siiski, kui teie igapäevased tegevused hõlmavad rutiinselt oma PowerShelli skriptide kirjutamist ja käivitamist, võib see olla rohkem häiriv kui kasu. Siin näitame teile, kuidas neid funktsioone ümber töötada, ilma et turvalisus oleks täielikult ohustatud.
Kuidas ja miks Windows ja PowerShell takistavad skripti täitmist.
PowerShell on tegelikult käskude ja skriptide keel, mis on mõeldud asendama CMD- ja partiiskriptid Windowsi süsteemides. Sellisena saab PowerShelli skripti üsna palju konfigureerida nii, et see toimiks käsurealt käsitsi. See võrdub praktiliselt mis tahes muutustega teie süsteemis, kuni teie kasutajakontol kehtivate piiranguteni. Niisiis, kui sa võiksid lihtsalt topeltklõpsata PowerShelli skripti ja käivitada selle täieliku administraatori õigustega, võiks selline lihtne ühe vooderdisega sinu päev tõesti purustada:
Get-ChildItem "$ env: SystemDrive" -Recurse -ErrorAction SilentlyContinue | Eemalda-üksus -Force -Recurse -ErrorAction SilentlyContinue
ÄRGE käitage ülaltoodud käsku!
See lihtsalt läheb läbi failisüsteemi ja kustutab kõik, mida see on võimalik. Huvitav on see, et see ei pruugi muuta süsteemi kasutuskõlbmatuks nii kiiresti kui sa arvad - isegi siis, kui töötate kõrgemal istungil. Aga kui keegi helistab sulle pärast selle skripti käivitamist, sest nad ei suuda äkki oma faile leida või mõningaid programme käivitada, „juhib see uuesti välja ja uuesti sisse” viib need tõenäoliselt lihtsalt Windowsi käivitamise parandusesse, kus neile öeldakse. midagi, mida saab probleemi lahendamiseks teha. Mis võiks olla hullem on see, et selle asemel, et saada skript, mis lihtsalt oma failisüsteemi prügikasti, võib teie sõber olla kursis, et käivitada keylogger või kaugjuurdepääsu teenus. Seejärel võivad nad käivitamise parandamise kohta küsimuste esitamise asemel küsida politseilt mõningaid küsimusi pettuste kohta!
Praeguseks peaks olema selge, miks on vaja teatud asju, et kaitsta lõppkasutajaid enda eest. Kuid võimu kasutajad, süsteemiadministraatorid ja muud geekid on üldiselt (kuigi on ka erandeid) nende ohtude eest veidi ettevaatlikumad, teades, kuidas neid vältida ja neid kergesti vältida, ning tahan lihtsalt oma tööd teha. Selleks peavad nad kas blokeerima või töötama mõne teeploki ümber:
- PowerShell ei võimalda vaikimisi skriptide välist teostamist.
PowerShelli seadistus seadistuses ExecutionPolicy takistab väliste skriptide täitmist vaikimisi kõigis Windowsi versioonides. Mõnes Windowsi versioonis ei võimalda vaikimisi skripti täitmine üldse. Näitasime teile, kuidas seda seadet muuta, kuidas lubada PowerShelli skriptide täitmist operatsioonisüsteemis Windows 7, kuid me katame selle ka mõnedel tasanditel. - PowerShell ei ole vaikimisi seotud .PS1-faililaiendiga.
Me tõime selle algselt meie PowerShell Geek Schooli seeriasse. Windows määrab .PS1-failide vaikefunktsioonid, et need avada Notepadis, selle asemel, et saata need PowerShelli käsulehele. See aitab otseselt vältida pahatahtlike skriptide juhuslikku täitmist, kui nad lihtsalt topeltklõpsavad. - Mõned PowerShelli skriptid ei tööta ilma administraatori õigustega.
Isegi siis, kui töötate administraatori tasemel kontoga, peate teatud toimingute sooritamiseks ikka veel läbi kasutajakonto kontrolli (UAC). Käsurea tööriistade puhul võib see olla vähe tülikas. Me ei taha UAC-i keelata, kuid see on ikka tore, kui saame selle kergemini toime tulla.
Need samad probleemid kerkivad esile, kuidas kasutada partiifaili, et muuta PowerShelli skriptid lihtsamaks, kus me kirjutame partiifaili kirjutamiseks ajutiselt nende ümber. Nüüd näitame teile, kuidas seada oma süsteem pikaajalisema lahendusega. Pidage meeles, et te ei tohiks üldjuhul neid muudatusi teha süsteemides, mida te ei kasuta ainult teie poolt - vastasel juhul paned teised kasutajad samade probleemide tekkimise ohule suuremaks, kuna need funktsioonid on mõeldud selleks, et vältida.
.PS1-faili assotsieerimise muutmine.
Esimene ja võib-olla ennekõike pahameel ringi liikumiseks on .PS1-failide vaikimisi assotsiatsioon. Nende failide seostamine mis tahes muu kui PowerShell.exe-ga on loogiline soovimatute skriptide juhusliku täitmise vältimiseks. Arvestades, et PowerShelli kaasas on integreeritud skriptikeskkond (ISE), mis on spetsiaalselt ette nähtud PowerShelli skriptide redigeerimiseks, siis miks peaksime vaikimisi avama .PS1-faile Notepadis? Isegi kui te ei ole valmis täielikult sisse lülitama topeltklõpsu-to-run funktsiooni lubamist, soovite ilmselt neid seadeid muuta.
PS1-failide assotsiatsiooni saate muuta vaikimisi programmide juhtpaneeliga soovitud programmiga, kuid otse registrisse kaevamine annab teile veidi rohkem kontrolli failide avamise üle. See võimaldab ka määrata või muuta lisafunktsioone, mis on saadaval kontekstimenüüs. Ära unusta registri varundamist enne seda teha!
Registri seaded, mis kontrollivad PowerShelli skriptide avamist, salvestatakse järgmisesse asukohta:
HKEY_CLASSES_ROOT Microsoft.PowerShellScript.1 Shell
Nende sätete muutmiseks enne nende muutmist vaadake seda võtit ja selle alamvõtmeid Regeditiga. Shelli klahvil peaks olema vaid üks väärtus („Vaikimisi”), mis on seatud väärtusele “Open”. See on viide failile topeltklõpsamise vaiketoimingule, mida näeme alamvõtmetes.
Laiendage Shelli võtit ja näete kolme alamvõtit. Igaüks neist kujutab endast toimingut, mida saate täita, mis on spetsiifiline PowerShelli skriptidele.
Iga klahvi saate laiendada, et uurida väärtusi, kuid need on põhimõtteliselt võrdsed järgmiste vaikeväärtustega:
- 0 - Käivita PowerShelliga. „Run with PowerShell” on tegelikult PowerShelli skriptide kontekstimenüüs juba olemas oleva valiku nimi. Teksti lihtsalt tõmmatakse teisest asukohast selle asemel, et kasutada võtmesõna nagu teised. Ja see pole ikka veel vaikimisi topeltklõpsuga toiming.
- Redigeerimine - avatud PowerShelli ISE-s. See on palju mõttekam kui Notepad, kuid teil tuleb vaikimisi klõpsata .PS1-failil.
- Ava - avatud märkmikus. Pange tähele, et see võtme nimi on ka string, mis on salvestatud Shelli võti „(vaikimisi)” väärtusele. See tähendab, et faili topeltklõpsamine avab selle ja see toiming on tavaliselt seatud Notepadi kasutamiseks.
Kui soovite kinni pidada juba olemasolevatest eelnevalt ehitatud käskude stringidest, saate lihtsalt muuta "(vaikimisi)" väärtust Shell võtmes, et see vastaks selle klahvi nimele, mis sobib sellega, mida soovite topeltklõpsuga teha. Seda saab hõlpsasti teha Regeditist või kasutada õppetundidest saadud õppetunde, et uurida registrit PowerShelliga (pluss väike PSDrive näpunäide), et alustada korduvkasutatava skripti loomist, mis võimaldab teie süsteeme teie jaoks konfigureerida. Allpool olevad käsud tuleb käivitada kõrgendatud PowerShelli seansist, mis sarnaneb administraatorina CMD käitamisele.
Kõigepealt soovite seadistada PSDrive HKEY_CLASSES_ROOT jaoks, kuna see pole vaikimisi seadistatud. Selle käsk on:
Uus-PSDrive HKCR register HKEY_CLASSES_ROOT
Nüüd saate HKEY_CLASSES_ROOT registri võtmeid ja väärtusi navigeerida ja redigeerida, nagu oleksite tavalises HKCU ja HKLM PSDrives'is.
PowerShelli skriptide käivitamiseks topeltklõpsamine:
Set-ItemProperty HKCR: Microsoft.PowerShellScript.1 Shell (vaikimisi) '0
PowerShelli skriptide avamiseks PowerShelli ISE-s topeltklõpsamiseks:
Set-ItemProperty HKCR: Microsoft.PowerShellScript.1 Shell (vaikimisi) "Redigeeri"
Vaikeväärtuse taastamiseks (määrab topeltklõpsuga PowerShelli skriptid Notepadis):
Set-ItemProperty HKCR: Microsoft.PowerShellScript.1 Shell (vaikimisi) "Open"
See on lihtsalt vaikimisi topeltklõpsamise toimingu muutmise põhialused. Me läheme üksikasjalikumalt, kuidas kohandada PowerShelli skripte, kui nad avatakse PowerShellis Explorerist järgmises osas. Pidage meeles, et ulatuse määramine takistab PSD-de püsimist seansside vahel. Niisiis, soovite tõenäoliselt lisada uue-PSDrive rea iga sellise skripti alguses, mille te ehitate selleks otstarbeks, või lisage see oma PowerShelli profiilile. Vastasel juhul peate enne selle muutmist proovima seda bitit käsitsi käivitada.
PowerShelli ExecutionPolicy seadistuse muutmine.
PowerShelli ExecutionPolicy on veel üks kiht pahatahtlike skriptide täitmise eest. Selleks on mitu võimalust ja paar erinevat võimalust selle seadistamiseks. Alates kõige vähem turvalistest on järgmised valikud:
- Piiratud - skripte ei tohi kasutada. (Enamiku süsteemide vaikeseade.) See takistab isegi teie profiili skripti töötamist.
- AllSigned - kõik skriptid peavad olema usaldusväärse kirjastaja poolt digitaalselt allkirjastatud, et kasutaja käivitada. Skriptid, millele on alla kirjutanud kirjastajad, kes on selgelt määratletud kui ebausaldusväärsed, või skriptid, mida ei ole digitaalselt allkirjastatud, ei tööta. PowerShell palub kasutajal kinnitust, kui skript on allkirjastatud kirjastajaga, kes pole veel määratletud kui usaldusväärne või usaldamatu. Kui te ei ole oma profiili skripti digitaalselt allkirjastanud ja selle allkirja vastu usaldanud, ei saa see käivitada. Olge ettevaatlikud, millised kirjastajad usaldad, sest te võite endiselt pahatahtliku skripti käivitada, kui usaldate valet.
- RemoteSigned - Internetist alla laaditud skriptide puhul on see sama mis “AllSigned”. Lokaalselt loodud või muust allikast kui Internetist imporditud skriptid võivad siiski töötada ilma kinnitamiskutseta. Siin peate olema ka ettevaatlikud, milliseid digitaalallkirju te usaldate, kuid peate olema hoolikamad mitte-allkirjastatud skriptide puhul, mida soovite käivitada. See on kõrgeim turvalisuse tase, mille alusel saate tööprofiili skripti ilma seda digitaalselt allkirjastamata.
- Piiranguteta - kõik skriptid võivad töötada, kuid Interneti skriptide jaoks on nõutav kinnitus. Sellest hetkest alates on see täiesti teie enda ülesanne vältida ebausaldusväärseid skripte.
- Ümbersõit - kõik töötab ilma hoiatuseta. Olge selle juures ettevaatlik.
- Määratlemata - praeguses ulatuses ei ole ühtegi poliitikat määratletud. Seda kasutatakse selleks, et lubada madalamatel aladel (rohkem üksikasju allpool) või operatsioonisüsteemi vaikesätete jaoks määratletud poliitikat.
Määratlemata kirjelduse kohaselt võib ülaltoodud poliitikameetmeid seada ühte või mitmesse valdkonda. Saate kasutada rakendust Get-ExecutionPolicy koos -List parameetriga, et näha kõiki ulatusi ja nende praegust konfiguratsiooni.
Reguleerimisala on loetletud eelisjärjekorras, kusjuures ülemine määratletud ulatus hõlmab kõiki teisi. Kui ühtegi poliitikat ei ole määratletud, läheb süsteem tagasi vaikeseadistusse (enamasti on see piiratud).
- MachinePolicy esindab grupi poliitikat, mis kehtib arvuti tasandil. Seda rakendatakse tavaliselt ainult domeenis, kuid seda saab teha ka kohapeal.
- UserPolicy kujutab endast kasutajale kehtivat grupipoliitikat. Seda kasutatakse tavaliselt ainult ettevõtluskeskkondades.
- Protsess on selle PowerShelli juhtumi spetsiifiline ulatus. Selle ulatusega poliisi muudatused ei mõjuta teisi jooksvaid PowerShelli protsesse ja on pärast selle seansi lõppemist ebaefektiivsed. Seda saab konfigureerida parameetriga -ExecutionPolicy, kui käivitatakse PowerShell, või saab selle seadistada seansi sättega õige Set-ExecutionPolicy süntaksiga..
- CurrentUser on kohalikus registris konfigureeritud ulatus, mis kehtib PowerShelli käivitamiseks kasutatava kasutajakonto kohta. Seda ulatust saab muuta Set-ExecutionPolicy abil.
- LocalMachine on kohalikus registris konfigureeritud ulatus, mis kehtib kõigile süsteemi kasutajatele. See on vaikeväärtus, mida muudetakse, kui Set-ExecutionPolicy käivitatakse ilma -Scope parameetrita. Kuna see kehtib kõigile süsteemi kasutajatele, saab seda muuta ainult kõrgendatud sessioonist.
Kuna see artikkel on peamiselt seotud turvalisuse hõlbustamisega, et hõlbustada kasutatavust, siis me lihtsalt muretseme kolme väiksema ulatuse pärast. MachinePolicy ja UserPolicy seaded on tõesti kasulikud ainult siis, kui soovite jõustada piiravat poliitikat, mis ei ole nii lihtsalt möödunud. Hoides meie muudatusi protsessi tasemel või allpool, saame hõlpsasti kasutada mis tahes poliitikakujundust, mida me antud olukorras asjakohaseks peame.
Turvalisuse ja kasutatavuse vahelise tasakaalu säilitamiseks on ekraanil näidatud poliitika tõenäoliselt parim. LocalMachine'i reegli Piiratud seadmine takistab tavaliselt skriptide käitamist keegi teine peale teie. Loomulikult saab seda mööda jätta kasutajad, kes teavad, mida nad teevad ilma palju pingutusteta. Kuid see peaks hoidma kõiki mitte-tehnoloogilisi kasutajaid kogemata vallandamast midagi katastroofilist. Võttes praeguse kasutaja (st .: te), mis on seatud piiranguteta, saate skripte käsitsi käivitada käsurealt, aga soovid, kuid säilitab hoiatuse Internetist alla laaditud skriptide suhtes. Protsessi tasemel RemoteSigned seadistust tuleb teha PowerShell.exe otsetee või (nagu me allpool) registri väärtustes, mis reguleerivad PowerShelli skriptide käitumist. See võimaldab hõlpsalt topeltklõpsu-to-run funktsioone kõikidele skriptidele, mida kirjutate, tehes samal ajal tugevama tõkke (potentsiaalselt pahatahtliku) skriptide tahtmatu täitmise eest välistest allikatest. Me tahame seda siin teha, sest skripti juhusliku topeltklõpsuga on palju lihtsam kui seda tavaliselt interaktiivsest seansist käsitsi kutsuda.
Praeguse kasutaja ja kohaliku masina reeglite seadistamiseks, nagu ülaloleval pildil, käivitage kõrgendatud PowerShelli seansist järgmised käsud:
Set-ExecutionPolicy Restricted Set-ExecutionPolicy Unrestricted -Skoobivoolu kasutaja
RemoteSigned-i poliitika jõustamiseks Explorerist käivitatud skriptide puhul peame muutma väärtust ühe registri võtme sees, mida me varem otsisime. See on eriti oluline, sest olenevalt teie PowerShelli või Windowsi versioonist võib vaikimisi seadistada kõik ExecutionPolicy seaded, välja arvatud AllSigned. Et näha, milline on teie arvuti praegune konfiguratsioon, saate selle käsu käivitada (veenduge, et HKCR PSDrive on kõigepealt kaardistatud):
Get-ItemProperty HKCR: Microsoft.PowerShellScript.1 Shell Command Vali objekt (vaikimisi)
Teie vaikekonfiguratsioon on tõenäoliselt üks järgmistest kahest stringist või midagi üsna sarnast:
(Windows 7 SP1 x64, PowerShelli 2.0 abil)
"C: Windows System32 WindowsPowerShell v1.0 powerhell.exe" "-fail" "1
(Windows 8.1 x64, PowerShelli 4.0 abil)
"C: Windows System32 WindowsPowerShell v1.0 powerhell.exe" "-käsk" "kui ((Get-ExecutionPolicy) -ne 'AllSigned') Set-ExecutionPolicy -Skoobi protsesside möödaviik; & '% 1 ''
Esimene neist ei ole liiga halb, sest kõik see on skripti käivitamine olemasolevate rakenduste seadete all. Seda saab teha paremaks, rakendades rangemaid piiranguid õnnetusjuhtumite suhtes, kuid see ei olnud algselt mõeldud käivitamiseks topeltklõpsuga, ja vaikepoliitika on üldjuhul piiratud. Teine võimalus on aga ükskõik millise ExecutionPolicy täieliku möödasõidu võimalus, isegi kui see on piiratud. Kuna ümbersõit rakendatakse protsessiruumis, mõjutab see ainult seansse, mis käivitatakse, kui skripte käivitatakse Explorerist. Kuid see tähendab, et sa võiksid lõpetada skriptide käivitamise, mida te muidu võiksite (ja tahate) oma poliitikat keelata.
Rakenduse Exploreris käivitatud skriptide jaoks protsessitaseme täitminePolicy seadistamiseks vastavalt ülaltoodud ekraanipildile peate muutma sama registri väärtust, mida me lihtsalt küsisime. Seda saate teha Regeditis käsitsi, muutes selle:
"C: Windows System32 WindowsPowerShell1.0 powerhell.exe" "-ExecutionPolicy" "RemoteSigned" "-fail" "% 1"
Saate seadet muuta ka PowerShelli sees, kui soovite. Ärge unustage seda teha kõrgendatud sessioonist, kus HKCR PSDrive kaardistatud.
Set-ItemProperty HKCR: Microsoft.PowerShellScript.1 Shell Command (vaikimisi) "C: Windows System32 WindowsPowerShell v1.0 powershell.exe" "-ExecutionPolicy" "RemoteSigned" "-file" " % 1 ""
Käivita PowerShelli skriptid administraatorina.
Nii nagu see on halb mõte UAC täielikult keelata, on ka halb turvapraktika käivitada skripte või programme kõrgendatud õigustega, välja arvatud juhul, kui te tegelikult vajate neid operatsioone, mis nõuavad administraatori juurdepääsu. Niisiis ei ole soovitatav UAC-käsu ehitamine PowerShelli skriptide vaiketoimingusse. Kuid me saame lisada uue kontekstimenüü valiku, mis võimaldab meil skripte kergelt käivitada kõrgendatud sessioonides. See on sarnane meetodiga, mida kasutatakse kõigi failide kontekstimenüüs „Open with Notepad”, kuid siinkohal kavatseme sihtida ainult PowerShelli skripte. Me võtame üle ka mõned eelmises artiklis kasutatud meetodid, kus kasutasime PowerShelli skripti käivitamiseks registrihakkude asemel partiifaili.
Selleks Regeditis, mine tagasi Shelli võtmesse aadressil:
HKEY_CLASSES_ROOT Microsoft.PowerShellScript.1 Shell
Saate luua uue alamvõtme. Kutsuge seda "Run with PowerShell (Admin)". Selle all looge teine alamvõti, mida nimetatakse "Command". Seejärel seadistage käsku Command väärtuseks „(Default)” väärtus:
"C: Windows System32 WindowsPowerShell v1.0 powerhell.exe" "-käsk" "" & Start-Process PowerShell.exe -ArgumentList "-ExecutionPolicy RemoteSigned -Fail"% 1 "'-Verb RunAs "
Tehes sama PowerShellis, on sellel hetkel kolm rida. Üks iga uue võtme jaoks ja üks käsu „(Vaikimisi)” väärtuse määramiseks. Ära unusta kõrgust ja HKCR kaardistamist.
Uus kirje "HKCR: Microsoft.PowerShellScript.1" Shell PowerShelli abil (administraator) "Uus kirje" HKCR: Microsoft.PowerShellScript.1 Shell PowerShelli abil (administraator) Käsklus "Set-ItemProperty" HKCR: Microsoft.PowerShellScript.1 Shell Käivitage PowerShelliga (administraator) Käsklus "(vaikimisi)" "C: Windows System32 WindowsPowerShell v.0.0 powerhell.exe" "-käsk" "" & Start-Process PowerShell.exe -ArgumentList "-ExecutionPolicy RemoteSigned -Fail"% 1 "" - Verb RunAs ""
Samuti pöörake tähelepanelikult erinevusi PowerShelli kaudu sisestatud stringide ja registrisse kantavate tegelike väärtuste vahel. Eriti peame kogu asja ühte hinnapakkumistesse pakkima ja sisemiste üksikute hinnapakkumistega topelt-üles tegema, et vältida vigade esinemist käsureal.
Nüüd peaks teil olema uus kontekstimenüü kirje PowerShelli skriptide jaoks, mida nimetatakse "Run with PowerShell (Admin)".
Uus valik tekitab kaks järjestikust PowerShelli eksemplari. Esimene on lihtsalt teise käivitaja, mis kasutab parameetrit, mis nõuab uue seansi kõrguse suurendamist parameetriga "-Verb RunAs". Sealt peaks teie skript suutma käivitada administraatori õigustega pärast seda, kui klõpsate UAC-i käsku.
Viimistlus.
Sellele on veel paar rohkem tweaksit, mis aitab elust natuke kergemini muuta. Üks, kuidas umbes Notepadi toimimisest täielikult vabaneda? Lihtsalt kopeerige „(vaikimisi)” väärtus käsust „Redigeeri“ (allpool) olevasse klahvi käsuga Avatud.
"C: Windows System32 WindowsPowerShell v.0.0 powerhell_ise.exe" "% 1"
Või võite kasutada seda PowerShelli natuke (muidugi Admin & HKCR):
Set-ItemProperty HKCR: Microsoft.PowerShellScript.1 Shell Avatud käsk (vaikimisi) "C: Windows System32 WindowsPowerShell v.0.0 powerhell_ise.exe" "% 1"
Veel üks väike pahameel on konsooli harjumus kaduda, kui skript on valmis. Kui see juhtub, ei ole meil mingit võimalust vaadata skripti väljundit vigade või muu kasuliku teabe jaoks. Seda saab hoolitseda, kui iga skripti lõpus on muidugi paus. Teise võimalusena saame muuta "(vaikimisi)" väärtusi meie käsuklahvide jaoks, et lisada parameeter "-NoExit". Allpool on muudetud väärtused.
(Ilma administraatori juurdepääsuta)
"C: Windows System32 WindowsPowerShell v1.0 powerhell.exe" "-NoExit" "-ExecutionPolicy" "RemoteSigned" "-fail" "% 1"
(Administraatori juurdepääsuga)
"C: Windows System32 WindowsPowerShell v1.0 powerhell.exe" "-käsk" "" & Start-Process PowerShell.exe -ArgumentList '-NoExit -ExecutionPolicy RemoteSigned -Fail \ t Verb RunAs "
Ja muidugi anname teile need ka PowerShelli käskudes. Viimane meeldetuletus: Elevation & HKCR!
(Mitte-administraator)
Set-ItemProperty HKCR: Microsoft.PowerShellScript.1 Shell Command (vaikeväärtus) "C: Windows System32 Windows PowerPell v1.0 powershell.exe" "-NoExit" "-ExecutionPolicy" "RemoteSigned" " -fail "% 1" '
(Admin)
Set-ItemProperty 'HKCR: Microsoft.PowerShellScript.1 Shell Käivitage PowerShell'iga (Admin) Käsk "(Vaikimisi)" "C: Windows System32 WindowsPowerShell v1.0 powerhell.exe" "-Command" "" & Start-Process PowerShell.exe -ArgumentList "-NoExit -ExecutionPolicy RemoteSigned -Fail \ t
Võttes seda spin.
Selle katsetamiseks kasutame skripti, mis näitab meile rakenduste täitmise seadeid ja kas skript käivitati administraatori õigustega. Skripti nimetatakse "MyScript.ps1" ja salvestatakse "D: Skripti Lab" meie proovisüsteemis. Kood on allpool.
kui (([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity] :: GetCurrent ()) IsInRole ([Security.Principal.WindowsBuiltInRole] "Administraator")) Kirjutusväljund "Töötab administraatorina!" Kirjutusväljund „Käivitatud piiratud!” Get-ExecutionPolicy -List
Rakenduse „Run with PowerShell” kasutamine:
Rakenduse „Run with PowerShell (Admin)” kasutamine pärast klõpsamist läbi UAC:
Selleks, et näidata rakendusePoliitikat protsessi ulatuses, saame Windowsi arvata, et fail tuli Internetist selle PowerShelli koodiga:
Add-Content -Path D: skripti Lab MyScript.ps1 '-Value "[ZoneTransfer]' nZoneId = 3" -Stream "Zone.Identifier"
Õnneks oli meil -NoExit lubatud. Vastasel juhul oleks see viga lihtsalt vilgunud ja me ei oleks teadnud!
Zone.Identifier saab selle abil eemaldada:
Clear-Content -Path D: skripti Lab MyScript.ps1 '-Stream' Zone.Identifier '
Kasulikud viited:
- PowerShelli skriptide käivitamine partiifailist - Daniel Schroederi programmeerimis blogi
- Administraatori õiguste kontrollimine PowerShellis - Hei, skriptimängija! Blogi