Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb

Keeb kwm, cov kab lus hais kom siv hauv Unix systems tau tsim zoo dua li hauv Windows, tab sis nrog rau qhov kev daws teeb meem tshiab qhov xwm txheej tau hloov pauv.

Windows PowerShell tso cai rau cov thawj coj ua haujlwm kom ua haujlwm ntau yam haujlwm niaj hnub. Nrog nws cov kev pab, koj tuaj yeem hloov chaw, nres thiab pib cov kev pabcuam, thiab tseem ua haujlwm saib xyuas cov ntawv thov feem ntau. Nws yuav tsis ncaj ncees lawm kom pom lub qhov rais xiav ua lwm tus neeg txhais lus txib. Txoj hauv kev no tsis cuam tshuam qhov tseem ceeb ntawm kev tsim kho tshiab uas tau hais los ntawm Microsoft. Qhov tseeb, lub peev xwm ntawm Windows PowerShell yog qhov dav dua: hauv cov kab lus luv luv peb yuav sim xyuas seb qhov kev daws teeb meem Microsoft txawv li cas ntawm cov cuab yeej peb paub ntau dua.

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb

Cov Ntaos Ntaus 

Tau kawg, Windows PowerShell feem ntau yog lub plhaub scripting, Ameslikas tsim rau ntawm .NET Framework thiab tom qab ntawd rau .NET Core. Tsis zoo li cov plhaub uas lees txais thiab xa cov ntaub ntawv xa rov qab, Windows PowerShell ua haujlwm nrog .NET cov chav kawm uas muaj cov khoom thiab cov txheej txheem. PowerShell tso cai rau koj khiav cov lus txib thiab tseem muab rau koj nkag mus rau COM, WMI, thiab ADSI cov khoom. Nws siv ntau yam khaws cia, xws li cov ntaub ntawv kaw lus lossis Windows sau npe, rau kev nkag mus rau qhov hu ua. cov neeg muab kev pabcuam. Nws yog tsim nyog sau cia tias muaj peev xwm embedding PowerShell executable Cheebtsam hauv lwm daim ntawv thov siv ntau yam haujlwm, incl. los ntawm graphical interface. Qhov thim rov qab kuj tseem muaj tseeb: ntau daim ntawv thov Windows muab kev nkag mus rau lawv cov kev tswj hwm cuam tshuam los ntawm PowerShell. 

Windows PowerShell tso cai rau koj mus:

  • Hloov cov txheej txheem kev khiav hauj lwm;
  • Tswj cov kev pabcuam thiab cov txheej txheem;
  • Configure server luag hauj lwm thiab Cheebtsam;
  • Nruab software;
  • Tswj software ntsia los ntawm kev sib txuas tshwj xeeb;
  • Embed executable Cheebtsam nyob rau hauv cov kev pab cuam thib peb;
  • Tsim cov ntawv sau ua haujlwm rau kev tswj hwm;
  • Ua haujlwm nrog cov ntaub ntawv kaw lus, Windows sau npe, khw muag ntawv pov thawj, thiab lwm yam.

Plhaub thiab kev loj hlob ib puag ncig

Muaj Windows PowerShell nyob rau hauv ob daim ntawv: ntxiv rau lub console emulator nrog lub plhaub hais kom ua, muaj ib qho Integrated Scripting Environment (ISE). Txhawm rau nkag mus rau cov kab hais kom ua interface, tsuas yog xaiv cov shortcut uas tsim nyog los ntawm Windows menu lossis khiav powershell.exe los ntawm Run menu. Lub qhov rais xiav yuav tshwm sim ntawm qhov screen, pom txawv ntawm qhov muaj peev xwm los ntawm antediluvian cmd.exe. Muaj autocompletion thiab lwm yam kev paub txog cov neeg siv ntawm cov lus txib plhaub rau Unix systems.

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb

Txhawm rau ua haujlwm nrog lub plhaub, koj yuav tsum nco ntsoov qee cov keyboard shortcuts:

  • Cov xub nce thiab nqis nqes los ntawm keeb kwm kom rov ua cov lus txib yav dhau los;
  • Txoj cai xub nyob rau hauv kawg ntawm ib kab retypes yav dhau los hais kom ua cim los ntawm tus cwj pwm;
  • Ctrl + Tsev tshem tawm cov ntawv ntaus ntawv los ntawm tus cursor txoj hauj lwm mus rau qhov pib ntawm kab;
  • Ctrl + Xaus tshem cov ntawv los ntawm tus cursor mus rau qhov kawg ntawm kab.

F7 qhia lub qhov rais nrog cov lus txib thiab tso cai rau koj xaiv ib qho ntawm lawv. Lub console tseem ua haujlwm nrog kev xaiv cov ntawv nrog tus nas, luam tawm, tso tus cursor, tshem tawm, backspace - txhua yam peb nyiam.

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb
Windows PowerShell ISE yog qhov chaw ua tiav kev txhim kho nrog tabbed thiab syntax-highlighted code editor, command builder, built-in debugger, thiab lwm yam kev txaus siab rau kev ua haujlwm. Yog tias koj sau ib lub hyphen tom qab lub npe hais kom ua nyob rau hauv qhov kev txhim kho ib puag ncig editor, koj yuav tau txais tag nrho cov kev xaiv muaj nyob rau hauv daim ntawv teev npe poob nrog qhov qhia txog hom. Koj tuaj yeem tso PowerShell ISE los ntawm ib qho shortcut los ntawm cov ntawv qhia zaub mov, lossis siv cov ntaub ntawv ua tiav powershell_ise.exe.

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb

Cmdlets 

Hauv Windows PowerShell, lub npe hu ua. cmdlets. Cov no yog cov chav kawm tshwj xeeb .NET uas muab ntau yam kev ua haujlwm. Lawv hu ua Action-Object (lossis Verb-Noun, yog tias koj xav tau), thiab qhov sib txuas sib cais zoo ib yam li cov lus qhia thiab cov ntsiab lus hauv cov kab lus ntuj. Piv txwv li, Get-Help txhais tau tias "Get-Help", lossis hauv PowerShell cov ntsiab lus: "Show-Help". Qhov tseeb, qhov no yog ib qho piv txwv ntawm tus txiv neej hais kom ua nyob rau hauv Unix systems, thiab phau ntawv qhia hauv PowerShell yuav tsum tau thov nyob rau hauv txoj kev no, thiab tsis yog hu rau cmdlets nrog lub --help lossis /? key. Tsis txhob hnov ​​​​qab txog cov ntaub ntawv PowerShell online: Microsoft muaj nws cov ncauj lus kom ntxaws heev.

Ntxiv rau Tau, cmdlets siv lwm cov lus qhia los qhia txog kev ua (thiab tsis yog cov lus qhia, nruj me ntsis hais lus). Hauv cov npe hauv qab no peb muab qee qhov piv txwv:

Add - ntxiv;
Clear - meej;
Enable - tig rau;
Disable - hloov tawm;
New - tsim;
Remove - rho tawm;
Set - nug;
Start - khiav;
Stop - nres;
Export - export;
Import β€” import.

Muaj cov kab ke, cov neeg siv thiab xaiv cmdlets: raws li kev ua tiav, lawv tag nrho rov qab ib qho khoom lossis ib qho khoom ntawm cov khoom. Lawv tsis yog case sensitive, i.e. los ntawm tus neeg txhais lus hais kom ua, tsis muaj qhov sib txawv ntawm Get-Help thiab get-help. Cov cim ';' yog siv rau kev sib cais, tab sis nws yuav tsum tau muab tso rau tsuas yog tias ob peb cmdlets raug tua ntawm tib kab. 

Windows PowerShell cmdlets tau muab faib ua cov qauv (NetTCPIP, Hyper-V, thiab lwm yam), thiab muaj ib qho Get-Command cmdlet los tshawb txog cov khoom thiab kev ua. Koj tuaj yeem tso saib kev pab rau nws zoo li no:

Get-Help Get-Command

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb

Los ntawm lub neej ntawd, cov lus txib qhia txog kev pab sai, tab sis tsis muaj (kev sib cav) raug xa mus rau cmdlets raws li xav tau. Nrog rau lawv cov kev pab, koj tuaj yeem, piv txwv li, tau txais cov ncauj lus kom ntxaws (-Cov ntsiab lus nthuav dav) lossis ua tiav (-Full) kev pab, nrog rau cov qauv qhia (-Piv txwv qhov ntsuas):

Get-Help Get-Command -Examples

Pab hauv Windows PowerShell tau hloov kho los ntawm Update-Help cmdlet. Yog tias cov kab hais kom ua tau ntev dhau lawm, cov lus sib cav cmdlet tuaj yeem txav mus rau ib qho ntxiv los ntawm kev sau cov cim kev pabcuam '`' thiab nias Enter - tsuas yog sau cov lus txib ntawm ib kab thiab txuas ntxiv mus rau lwm qhov yuav tsis ua haujlwm.

Nov yog qee qhov piv txwv ntawm cmdlets: 

Get-Process - qhia cov txheej txheem khiav hauv qhov system;
Get-Service - qhia cov kev pabcuam thiab lawv cov xwm txheej;
Get-Content - tso saib cov ntsiab lus ntawm cov ntaub ntawv.

Rau cov uas nquag siv cmdlets thiab cov khoom siv sab nraud, Windows PowerShell muaj luv luv synonyms - aliases (los ntawm lus Askiv. Alias). Piv txwv li, dir yog lub npe hu ua Get-ChildItem. Cov npe ntawm cov lus sib txuas kuj suav nrog cov lus piv txwv ntawm cov lus txib los ntawm Unix systems (ls, ps, thiab lwm yam), thiab Get-Help cmdlet raug hu los ntawm cov lus txib pab. Ib daim ntawv teev npe tag nrho tuaj yeem saib tau siv Get-Alias ​​​​cmdlet:

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb

Scripts, Functions, Modules, thiab PowerShell Language

Windows PowerShell scripts yog khaws cia ua cov ntawv nyeem dawb nrog .ps1 txuas ntxiv. Koj tsis tuaj yeem tso lawv los ntawm ob-nias: koj yuav tsum tau nyem rau sab xis kom hu rau cov ntawv qhia zaub mov thiab xaiv cov khoom "Khiav hauv PowerShell". Los ntawm lub console, koj yuav tsum tau qhia tag nrho txoj hauv kev rau tsab ntawv, lossis mus rau cov ntawv teev npe tsim nyog thiab sau cov npe ntawm cov ntaub ntawv. Cov ntawv sau ua haujlwm tseem raug txwv los ntawm txoj cai tswjfwm, thiab txhawm rau txheeb xyuas cov chaw tam sim no, koj tuaj yeem siv Get-ExecutionPolicy cmdlet, uas yuav rov qab ib qho ntawm cov txiaj ntsig hauv qab no:

Restricted - launching scripts yog neeg xiam (los ntawm lub neej ntawd);
AllSigned - tsuas yog tso tawm cov ntawv kos npe los ntawm tus neeg tsim khoom ntseeg tau tso cai;
RemoteSigned - tso cai rau khiav kos npe thiab tus kheej scripts;
Unrestricted - tso cai rau khiav tej scripts.

Tus thawj tswj hwm muaj ob txoj kev xaiv. Qhov kev nyab xeeb tshaj plaws suav nrog kev kos npe rau cov ntawv sau, tab sis qhov no yog ib qho kev ua khawv koob loj heev - peb yuav nrog nws hauv cov lus hauv qab no. Tam sim no cia peb taug txoj hauv kev tsawg kawg ntawm kev tawm tsam thiab hloov txoj cai:

Set-ExecutionPolicy RemoteSigned

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb
PowerShell yuav tsum tau khiav ua tus thawj coj ua qhov no, txawm hais tias koj tuaj yeem hloov txoj cai rau cov neeg siv tam sim no nrog rau qhov tshwj xeeb.

Cov ntawv sau tau sau ua ib hom lus hais txog kev ua haujlwm, cov lus txib uas muaj npe raws li tib txoj cai raws li cov lus hais yav dhau los cmdlets: "Action-Object" ("Verb-Noun"). Nws lub hom phiaj tseem ceeb yog kom ua haujlwm rau kev tswj hwm kev ua haujlwm, tab sis nws yog cov lus txhais lus uas muaj tag nrho cov tsim nyog tsim: dhia, voj, hloov pauv, arrays, khoom, kev ua yuam kev, thiab lwm yam. Txhua cov ntawv nyeem yog qhov zoo rau kev sau ntawv, tab sis nws yog qhov zoo tshaj los khiav Windows PowerShell ISE.

Koj tuaj yeem hla tsis dhau mus rau tsab ntawv, ua rau lawv xav tau, thiab teeb tsa qhov tseem ceeb. Tsis tas li ntawd, Windows PowerShell tso cai rau koj los tsim thiab hu ua haujlwm tib yam li cmdlets, los ntawm kev siv Function construct thiab curly braces. Ib tsab ntawv uas muaj nuj nqi hu ua module thiab muaj .psm1 txuas ntxiv. Modules yuav tsum tau muab khaws cia rau hauv cov npe teev tseg hauv PowerShell ib puag ncig hloov pauv. Koj tuaj yeem saib lawv nrog cov lus txib hauv qab no:

Get-ChildItem Env:PSModulePath | Format-Table -AutoSize

Ntsia Tus Ntaus

Hauv qhov piv txwv kawg, peb tau siv cov qauv tsim uas paub txog Unix plhaub cov neeg siv. Hauv Windows PowerShell, qhov ntsug bar kuj tso cai rau koj kom dhau qhov tso tawm ntawm ib qho kev hais kom ua rau cov tswv yim ntawm lwm tus, tab sis muaj qhov sib txawv tseem ceeb hauv kev siv cov raj xa dej: peb tsis tau tham txog ib txheej ntawm cov cim lossis qee yam. ntawv nyeem. Built-in cmdlets lossis cov neeg siv-txhais ua haujlwm rov qab cov khoom lossis cov khoom ntawm cov khoom, thiab tuaj yeem tau txais lawv los ua cov tswv yim. Zoo li Bourne plhaub thiab nws ntau tus neeg ua tiav, PowerShell ua cov haujlwm nyuaj yooj yim dua nrog cov kav dej.

Cov piv txwv yooj yim tshaj plaws zoo li no:

Get-Service | Sort-Object -property Status

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb
Qhov Txais-Service cmdlet raug tua ua ntej, thiab tom qab ntawd tag nrho cov kev pabcuam uas nws tau txais raug xa mus rau Sort-Object cmdlet rau kev txheeb xyuas los ntawm cov cuab yeej xwm txheej. Qhov kev sib cav qhov tshwm sim ntawm ntu dhau los ntawm cov raj xa dej tau dhau los nyob ntawm nws hom - feem ntau nws yog InputObject. Qhov teeb meem no yuav raug tham kom ntxaws ntxiv hauv ib tsab xov xwm tshwj xeeb rau PowerShell programming lus. 

Yog tias koj xav tau, koj tuaj yeem txuas ntxiv cov saw thiab dhau qhov tshwm sim ntawm Kev Ua Haujlwm Yam Khoom Siv rau lwm cmdlet (lawv yuav raug tua los ntawm sab laug mus rau sab xis). Los ntawm txoj kev, cov neeg siv Windows kuj tau nkag mus rau kev tsim kho rau pagination paub txog txhua tus Unixoids: 

Get-Service | Sort-Object -property Status | more

Ua haujlwm hauv keeb kwm yav dhau 

Heev feem ntau, nws yog ib qhov tsim nyog los khiav ib qho kev hais kom ua nyob rau hauv keeb kwm yav dhau, thiaj li tsis mus tos rau qhov tshwm sim ntawm nws tua nyob rau hauv lub plhaub kev sib kho. Windows PowerShell muaj ob peb cmdlets rau rooj plaub no:

Start-Job - pib ua haujlwm tom qab;
Stop-Job - tso tseg txoj haujlwm tom qab;
Get-Job - saib daim ntawv teev cov haujlwm tom qab;
Receive-Job - saib cov txiaj ntsig ntawm kev ua haujlwm tom qab;
Remove-Job - rho tawm haujlwm tom qab;
Wait-Job - Hloov cov haujlwm tom qab rov qab mus rau console.

Txhawm rau pib ua haujlwm tom qab, peb siv Start-Job cmdlet thiab qhia meej cov lus txib lossis cov lus txib hauv curly braces:

Start-Job {Get-Service}

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb
Cov haujlwm tom qab hauv Windows PowerShell tuaj yeem tswj hwm los ntawm kev paub lawv cov npe. Ua ntej, cia peb kawm yuav ua li cas tso saib lawv:

Get-Job

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb
Tam sim no cia peb qhia qhov tshwm sim ntawm txoj haujlwm Txoj Haujlwm 1:

Receive-Job Job1 | more

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb
Txhua yam yog yooj yim zoo nkauj.

Tej thaj chaw deb hais kom ua

Windows PowerShell tso cai rau koj los ua cov lus txib thiab cov ntawv sau tsis yog ntawm lub khoos phis tawj hauv zos xwb, tab sis kuj nyob rau hauv lub computer tej thaj chaw deb, thiab txawm nyob rau tag nrho pawg ntawm cov tshuab. Muaj ntau txoj hauv kev los ua qhov no:

  • Ntau cmdlets muaj qhov parameter -ComputerName, tab sis nyob rau hauv txoj kev no nws yuav tsis ua hauj lwm, piv txwv li, los tsim ib tug conveyor;
  • Cmdlet Enter-PSSession tso cai rau koj los tsim kev sib tham sib tham ntawm lub tshuab tej thaj chaw deb; 
  • Siv lub cmdlet Invoke-Command koj tuaj yeem khiav cov lus txib lossis cov ntawv sau rau ntawm ib lossis ntau lub khoos phis tawj nyob deb.

Versions ntawm PowerShell

PowerShell tau hloov pauv ntau yam txij li thawj zaug tso tawm xyoo 2006. Cov cuab yeej muaj rau ntau lub tshuab khiav ntawm cov khoom siv sib txawv (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux thiab OS X. Tseeb tso tawm 6.2 tso tawm rau lub Ib Hlis 10, 2018. Cov ntawv sau rau cov ntawv ua ntej yuav ua haujlwm hauv cov ntawv tom qab, tab sis kev xa rov qab tuaj yeem muaj teeb meem vim PowerShell tau qhia ntau tus cmdlets tshiab nyob rau xyoo ntawm kev txhim kho. Koj tuaj yeem pom cov version ntawm lub plhaub hais kom ua rau hauv lub computer siv cov cuab yeej PSVersion ntawm $PSVersionTable built-in variable:

$PSVersionTable.PSVersion

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb
Koj tseem tuaj yeem siv cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb
Ib yam yog ua tiav nrog Get-Host cmdlet. Qhov tseeb, muaj ntau txoj kev xaiv, tab sis siv lawv koj yuav tsum kawm PowerShell programming lus, uas peb yuav ua hauv lwm tsab xov xwm

Cov txiaj ntsim tau los 

Microsoft tau tswj hwm los tsim lub plhaub muaj zog tiag tiag nrog ib puag ncig yooj yim rau kev tsim cov ntawv sau. Nws txawv ntawm cov cuab yeej uas peb paub hauv ntiaj teb Unix los ntawm kev sib sib zog nqus nrog kev ua haujlwm ntawm Windows tsev neeg, nrog rau cov software rau lawv thiab .NET Core platform. PowerShell tuaj yeem raug hu ua lub plhaub hom khoom vim tias cmdlets thiab cov neeg siv cov haujlwm tau hais tseg rov qab cov khoom lossis cov khoom ntawm cov khoom thiab tuaj yeem coj lawv los ua cov tswv yim. Peb xav tias txhua tus neeg ua haujlwm server ntawm Windows yuav tsum muaj cov cuab yeej no: lub sijhawm dhau los thaum lawv tuaj yeem ua yam tsis muaj kab hais kom ua. Lub plhaub console qib siab tshwj xeeb yog xav tau ntawm peb tus nqi qis VPS khiav Windows Server Core, tab sis qhov ntawd yog ib zaj dab neeg sib txawv kiag li.

Windows PowerShell yog dab tsi thiab nws noj nrog dab tsi? Ntu 1: Cov yam ntxwv tseem ceeb

Tsuas yog cov neeg siv sau npe tuaj yeem koom nrog hauv daim ntawv ntsuam xyuas. Kos npe rau hauvthov.

Cov ncauj lus dab tsi yuav tsum tau hais ua ntej hauv cov lus tom ntej hauv koob?

  • 53,2%Programming hauv PowerShell123

  • 42,4%PowerShell98 Kev Ua Haujlwm thiab Modules

  • 22,1%Yuav kos npe rau koj tus kheej li cas?51

  • 12,1%Ua haujlwm nrog cov chaw cia khoom los ntawm cov chaw muab kev pabcuam28

  • 57,6%Automating Computer Administration nrog PowerShell133

  • 30,7%Kev tswj hwm software thiab embedding PowerShell executables hauv cov khoom thib peb71

231 cov neeg siv pov npav. 37 cov neeg siv txwv tsis pub siv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib