---------- 1 skyrius "Windows" scenarijų istorija --------------
1 Pirmoji scenarijaus šikšnosparnių karta. Jis prasidėjo su win95, win98--------- ir baigėsi apie 2008 m. Funkcijos: Į simbolius orientuotos komandos su komandine eilute ir srautu. 2 Antrosios kartos scenarijus VBS. Savybės: Tik funkcijos, perduodamos reikšmės, skambučiai. 3 Trečiosios kartos scenarijaus powershell. Nuo 2012 m. komanda visiškai išsivystė į objektus. Pavyzdžiui, tasklist ir get-process yra pasikartojančios rato funkcijos: orientuotos į objektus. Paveldėti ankstesnių dviejų kartų scenarijų pranašumus.
K: Kodėl verta mokytis "PowerShell"? A: Misionierius atsakė, kad studijuos vienerius ir penkerius metus BAT. Paprasta sintaksė ir stiprios bibliotekos funkcijos! Vienintelis pasaulyje, kuris palaiko objektus su komandomis abiejose dujotiekio pusėse. t.y. objektinė komanda 1 | 2 objektinė komanda
"Windows" ir "Linux" skiriasi: "PowerShell" scenarijuje "Win" Palaikykite CR, LF, CRLF enter. Palaikykite kelių gijų ir kelių procesų sutapimą. Lengva įterpti [Text2 garsas], "Pranešti kapitonui, diskas pilnas". Įterpti grafinę sąsają paprasta. (Kai iššokančioji sąsaja prašo įvesti vartotojo vardą, slaptažodį, vieną pasirinkimą, kelis pasirinkimus ir kt.) Tai yra Linux scenarijų pavydas.
"PowerShell" skiriasi nuo "Python": "PowerShell" lengva naudoti kinų kalbą. Kinų rašto pavadinimas, kintamojo pavadinimas, komentaras. Kinų viengubos kabutės, kinų dvigubos kabutės. Automatiškai atpažįsta GBK, UTF8, Unicode kodavimą. Vamzdyno palaikymo objektai, kurių pavydi Python scenarijai.
Paprastas sintaksės pavyzdys 1: "Powershell" viengubų ir dvigubų kabučių magija. Viengubos kabutės, gali būti cituojamos su dvigubomis kabutėmis. Ir atvirkščiai. Viengubas ir dvigubas kabutes galima @引用 @''. BAT neveikė.
Misionierius pasakotojas: Aš įdėjau daug minčių į mokymo programos dizainą. Ar neskaitėte istorijos dalies, kurią parašiau, buvo labai paprasta ir grubi? Istorija nešama vienu smūgiu. Bet kadangi aš tai pasakiau, tai nėra nesąmonė, aš tiesiog noriu, kad studentai aiškiai parodytų, kad nuo win7-win2008, [objektyvinimas] scenarijų tapo populiarus. Veda prie kito į objektą orientuoto paaiškinimo skyriaus. Bet PS įvadinė pamoka turėtų paminėti skirtumą tarp personažų ir objektų. Tiesiog tikslinga šią temą įtrinti į komandinės eilutės istoriją.
---------- 2 skyrius Nuostabus objekto orientavimo -------------- Kas yra objektas, kodėl jis orientuotas į objektus ir kodėl "Microsoft" sustiprina ratą?
1 objektinis pavyzdys: Klausimas: Aš suvalgau 2,2 obuolio per dieną, kiek obuolių suvalgau per 17 dienų? A: Galimas 2,2 x 17. Taip pat galima naudoti i++, palaikomą bet kuria scenarijų kalba. už ($i = 1; $i -lt 18; $i++)
{ $Apple = 2,2 + $Apple write-host $i,$Apple
}
-------------------------------------------- Kai tik klausimas pasikeis, aš jums nepasakysiu dienų skaičiaus, tik pasakysiu, Per dieną suvalgau 2,2 obuolio, kiek obuolių suvalgau nuo 2017 m. sausio 20 d. iki birželio 20 d.? $days = ((gavimo data '2017-06-20') - (gavimo data '2017-01-20')).dienų #值151
Per dieną suvalgau 2,2 obuolio, kiek obuolių suvalgau nuo 2020 m. sausio 20 d. iki birželio 20 d.? $days = ((gavimo data '2020-06-20') - (gavimo data '2020-01-20')).dienų #值152
for ($i=(gavimo data '2020-01-20'); $i -lt (data '2020-06-20'); $i=$i.adddays(1))
{ $Apple = 2,2 + $Apple write-host $i,$Apple
}
Išvada: Naudojant datos objektą, skaičiuoti dienas, valandas ir kt. yra paprasta. [for,,i++] yra įprastas, bet niekada nemaniau, kad skaičius i gali būti datos tipo.
------------------------------------------
Kokie yra objektinio orientavimo pranašumai? Prieš orientuodamiesi į objektus, turėjome tik eilutes ir sveikuosius skaičius. 1 Yra objektas. ----- [Simbolio tipas]----- Glifas turi system.string, kuris yra pats paprasčiausias. System.Text.StringBuilder atmintis, dažnai kinta, didelės eilutės
----- [Skaitinis tipas]----- system.int32, system.int64, system.decimal, system.double, System.Numerics.BigInteger begalinis sveikasis skaičius. Dažniausiai naudojamas int32, dešimtainis.
Ar 1/3*3 yra lygus 1, ar 0,9999, priklauso nuo duomenų tipo. ----- [Masyvas]----- sistema.masyvo masyvas system.arraylist masyvas dažnai keičiasi, pvz., visada perrašoma, pridedama ar ištrinama, turite tai naudoti. Greitis yra gana didelis. System.Collections.Generic.HashSet pašalina masyvų dublikatus. Tas pats kaip python set objektas.
-----【Forma】----- 1 komandos išvestis. Pavyzdžiui, dir, get-process. 2. Rašydami scenarijus, konstruodami naudojame objektus ir atributus.
----- [Kiti] ----- maišos lentelės, failai ir kt.
2 turi požymių. Atributai yra argumentai ir yra mažesni už eilutes. Kad nebūtų atributų, turime filtruoti ir filtruoti eilutes naudodami [smegenų deginimo reguliarus], vadinamą [dedukcijos eilute]. Jei turite atributų, jums to nereikia. 3 Yra būdas. Metodas yra programa, kodas. Nereikia jo perrašyti patiems. Šikšnosparnis tikrai nėra geras, nėra jokio būdo, taip pat yra asmeninis rašymas, nepatikimas, nedrįskite juo naudotis. Metodai gali būti savarankiškai parašytos ps funkcijos, savarankiškai parašyti metodai ps klasėse. Metodas, kurį rašote patys, gali būti laikinai [sujungtas] į trečiosios šalies klasę. Metodas, kurį rašote patys, gali būti laikinai [sujungtas] į .net klasę.
Kokie yra objektinio orientavimo trūkumai? Pamokslininkas moko powershell žmonėms, kurie naudoja winxp. Asmuo sakė, kad powershell nėra geras, objektas yra per daug atminties, ir jis teisus. Cmd grąžinu 100 failų pavadinimų (eilučių) su dir. "PowerShell" naudoju dir, kad grąžinčiau 100 failų objektų, o "Powershell" užima daug atminties. Tačiau dabar yra kitaip: 1. Nereikalingas turinys neturėtų egzistuoti kintamuosiuose. Arba sunaikinkite jį iškart po naudojimo, kad sumažintumėte atminties naudojimą. 2. Pakanka atminties kritimo. Kadangi procesoriaus našumas nebegali padidėti, mes karštligiškai didiname atmintį, bandydami iškeisti erdvę į laiką. 3. Mes norime galingesnių funkcijų, o objekto orientacija šiais laikais yra pati paprasčiausia. Kuris nėra orientuotas į objektus, py, php, java, .net, c++?
Suvestinė: 1 Objektai yra didesni ir reikalauja daugiau atminties nei eilutės. 2. Yra daugiau objektų orientacijos metodų ir stipresnių funkcijų. 3 atributai yra mažesni už stygų detalumą, o tai itin patogu naudoti. Vengiau [beprotiško smegenų deginimo reguliaraus filtravimo naudojimo] stygų!
=== Beprotiškas smegenų deginimo reguliariųjų naudojimas filtruoti pavyzdžius, šikšnosparnių versija ping numatytasis šliuzas === @echo poslinkis ir nustatymasvietinis įgalina uždelstą plėtrą Echo ieško numatytojo šliuzo...
/f "usebackq delims=" %%i in ('ipconfig /all') do ( echo %%i|find /i "gateway">nul|| echo %%i|rasti "numatytasis šliuzas" >nul jei "!errorlevel!" =="0" ( for /f "tokens=2 delims=:" %%a in ("%%i") do for /f "delims= " %%m in ("%%a") do set ipgate=%%m
)
)
Numatytasis aido šliuzas yra: !ipgate! =========== ping numatytąjį šliuzą.ps1============ $default šliuzas = (get-netroute -DestinationPrefix 0.0.0.0/0). KitasHop & ping.exe $ Numatytasis šliuzas
# bandomasis ryšys $ numatytasis šliuzas =======================
K: Net jei objektinis orientavimas yra toks geras, iš kur šie objektai atsiranda? A: Iš .net bibliotekos.
---------- 3 skyrius Įvadas į .NET --------------
K: Kiek versijų šakų turi .NET Core? A: Šiuo metu yra trys versijos. .NET 2.0 Naujausia .NET 3.51 versija .NET 4.0 Naujausia .NET 4.70 versija .NET Core 1.x Naujausia .NET 1.2 versija, skirta "Apple" sistemoms, "Linux" sistemoms ir įterptosioms sistemoms. .NET Core 2.x Naujausia .NET 2.0 versija, skirta "Apple" sistemoms, "Linux" sistemoms ir įterptosioms sistemoms.
K: Kiek funkcinių šakų turi .net? A: Darbalaukio šaka .NET. WinForm. Darbalaukio langų kūrimui. Garso biblioteka asp.net .NET ir .NET Core. Žiniatinklio serverio funkcijų biblioteka. Naudojamas B/S žiniatinklio serveriui atidaryti. F# .NET ir .NET Core. Yra matematikos bibliotekos, trigonometrinių funkcijų bibliotekos ir kt. "PowerShell" ".NET" ir ".NET Core". Yra bendros sistemos valdymo sąsajos, pvz., scenarijaus failai. Linux ◦Ubuntu 14.04 \ 16.04 ◦CentOS/RHEL 7 ir naujesnės versijos ◦atidarykite SUSE 42 ir naujesnę versiją ◦Arch Linux (archl inux neturi versijos numerio) ◦LINUX docker konteineris ◦Linux AppImage konteineris (nešiojama programa viena dvejetainė) https://github.com/probonopd/AppImageKit
MAC OS X ◦OS X 10.11
K: Kaip .NET programa (C# programa) prisijungia prie MySQL serverio? A: Eikite į oficialią "mysql" svetainę, kad atsisiųstumėte .NET kalbos jungtį. mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll Pridėkite MySql.Data klasę prie .net ir pridėkite duomenų bazės sąsają.
Išvada: WinXP mašina pirmiausia įdiegti .net 3.51, win7 ir win2008 mašina, pirmiausia įdiegti .net 4.62 ar naujesnę versiją.
.net egzistuoja daugelį metų, o .net palaikančios programinės įrangos nėra daug nei "Java". Visos .net šakos, sąsajos (duomenų bazės, WeChat ir kt.). ) Tie dlls, tos bibliotekos, powershell gali būti vadinami. Tai lygiai tas pats, kas exe, parašytas C#.
K: Be .NET šakos sąsajos, kokios yra pačios "PowerShell" bibliotekos (moduliai)? A: Žiūrėkite kitą skyrių
---------- 4 skyrius Dažniausiai naudojamos įtaisytosios bibliotekos, išorinės bibliotekos ir trečiųjų šalių bibliotekos "PowerShell --------------
Misionieriška pagalba: Šio skyriaus negalima aptarti, bet tai tik bibliotekų ir vadovų sąrašas. Pažymėkite šį skyrių. Pažvelgę į šias bibliotekas žinosite, ką gali padaryti "PowerShell".
"Win2012" rankinis adresas: (dažniausiai naudojamas skelbimų modulis)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx AD vartotojų grupės valdymas, DHCP, DNS, spausdintuvas, failų bendrinimas, IIS, diskas, NIC,
"Exchange2016"
https://technet.microsoft.com/zh-cn/library/bb124413.aspx "Active Directory 12" Apsauga nuo šlamšto ir kenkėjiškų programų 59 Kliento prieiga 100 Išplėtimo agentas 4 El. pašto adresai ir adresų knygos 37 Susiejimas ir hibridinė konfigūracija Didelis prieinamumas Pašto srautas Pašto dėžutė Pašto dėžutės duomenų bazė Pašto dėžutės serveris Perkėlimas ir perkėlimas Organizacija Leidimai Politika ir atitiktis Saugumas Serverio sveikata, stebėjimas ir našumas Bendrinkite ir bendradarbiaukite Vieningas pranešimas Vartotojai ir grupės
sqlserver2016
https://msdn.microsoft.com/zh-cn/library/hh245198.aspx
"Lync2015"
https://technet.microsoft.com/zh-CN/library/gg398867.aspx
SharePoint2016
https://technet.microsoft.com/zh-cn/library/ff678226(v=office.16).aspx
"Amazon" virtualios mašinos, AWS, "Microsoft" virtualios mašinos, "Azure", "Hyper-V", "VMware vSphere" ir įmonės lygio virtualios mašinos.
Klientai: Paslaugos, procesai, žurnalai, registrai, failų katalogai, nuotolinis valdymas. Laiko užduotys.
Internetas: FTP, paštas, SSH kliento įskiepis Linux serverio ryšiui.
SMS žinutė: XML, HTML, CVS, JSON, EXCEL ir kt.
Teksto 2 balsas
Grafinė sąsaja.
Microsoft scenarijų centras
https://gallery.technet.microsoft.com/scrip{过滤}tcenter/
"PowerShell" programinės įrangos šaltinis oficiali svetainė --- oficiali "PowerShell" biblioteka.
https://www.powershellgallery.com
Kitos Niu x bibliotekos yra visos github. Be to, misionieriai reguliariai skelbia [Niu x Magic Weapon] iš [Hidden Foot Pavilion], kuri yra naudinga trečiosios šalies PowerShell biblioteka.
---------- 5 skyrius Pradedantieji turi išmokti padėti naudotis komandomis--------------
K: Kaip sužinoti "PowerShell" versiją? A: $PSVersionTable
K: Nežinau modulio, kaip jį rasti? A: get-module -ListAvailable
K: Kaip rasti komandas, kai žinau tik dalį jų? A: gauti komandą *paslauga*
K: Aš žinau komandą, bet nežinau, kokie parametrai yra komandoje, kaip išvardyti parametrus? A: get-help write-host -Parametras * show-command write-host
K: Žinau parametrą, bet nežinau, kuri komanda turi šį parametrą, kaip rasti komandą? A: get-command -ParameterName kodavimas
K: Kaip gauti pagalbos dėl komandos iš komandinės eilutės? A: Gaukite pagalbos pasimatymą
-Pavyzdžiai komandų pavyzdžiai -internetinis internetinis vadovas
K: Nežinau komandos atributo metodo (nežinau objekto), kaip jį rasti? A: "ABC" | gauti narį Gauti datą | gauti narį
K: Kur yra kinų .NET vadovas? A: msdn。 Pagrindinės eilutės savybės ir metodai yra vadove.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx
---------- 6 skyrius Įvadas į bendrąsias komandas --------------
Pirmoji komanda, kurią reikia išmokti, yra dir K: Kodėl verta naudoti powershell dir [t.y., Get-ChildItem] vietoj cmd dir? A: Į objektą orientuotas, stiprus metodas ir daugybė atributų. $file = dir a:\pscode\temp183\aaa.txt $file. Vardas ir pavardė #返回全路径属性 $file. BaseName #返回文件名属性 $file. Pratęsimo #返回扩展名属性 $file. LastWriteTime #返回最后写入时间属性
Pirmoji sintaksė, kurią reikia išmokti, yra masyvo sintaksė. $a = @(xxx komanda) K: Kartais reikia naudoti [simbolių pagrindu veikiančias išorines komandas], kad grąžinamos reikšmės būtų padalintos į masyvus pagal elgsenos vienetus. A: $a = @(ipconfig) $a[8] #第9行
Gauti vaikąDaikto naudojimas: Pridėti parametrai "PowerShell 3.0" ir naujesnėse versijose
get-childitem d:\xxx -file #过滤, tik išvesties failai -Katalogų filtravimas, išvesties tik katalogai -Paslėptas filtravimas, tik išvestis paslėpta
K: Atidaryti failą, segmentuoti pagal elgesį, įdėti į masyvą? A: $a = Get-Content a:\pscode\temp183\aaa.txt -ReadCount 0
K: Atidarykite failą kaip didelę eilutę ir išsaugokite visą kintamąjį? A: $a = Gauti turinį a:\pscode\temp183\aaa.txt -raw
$a,$b,$c = 1,2,3
K: Kaip paleisti komandas fone? A: Senovėje yra cmd /c "komanda". Dabar yra powershell /c "komanda" arba powershell -c "komanda", powershell -failas "script.ps1" -argumentas 1 aaaa -parametras 2 1234 start-process -path xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'
K: Noriu paleisti scenarijų su kitu vietiniu vartotoju, bet "Powershell" neturi runų. exe panašios komandos? A: "PowerShell" yra įvairių seansų. ip + prievadas + vartotojo vardas + slaptažodis = sesija, man tereikia pakeisti vartotojo vardą, pakeisti slaptažodį, o jūs galite pakeisti leidimus. Nes leidimai yra susieti su vartotoju. Panašiai, man reikia tik sukurti n sesijas naudoti, neperjungiant vartotojų. Svarbiausia nauja pssesija turi parametrą -Credential, įveskite vartotojo slaptažodį, kuris nėra tas pats, kas runas. Ar exe yra tas pats? Kas dar yra SmbSession? Taigi nemanau, kad reikia naudoti runas powershell. exe。 Jums tiesiog reikia naudoti šias komandas su sesija ir kredencialais, tiesa?
Patikrinkite komandas su pavadinimu [Credential] parametro pavadinime: get-command -ParameterName kredencialas
Peržiūrėti komandas su [session] simboliu komandoje: gauti komandą *sesija*
K: Kaip išsiųsti el. laišką naudojant "PowerShell"? A: Send-MailMessage -Subject 'Subject' -Iš "jūsų Hotmail" paskyros @hotmail.com" -Į "jūsų QQ el. pašto adresą @qq.com" ' -SmtpServer "smtp.live.com" -port 587 -useSsl -credential "jūsų Hotmail paskyra @hotmail.com" ' -Priedai $Attachments -BodyAsHTML -body $HTML el. laiško turinys
Nata: 1 naudojimasxxx@QQ.com+ Jūsų QQ slaptažodis + aukščiau pateikta komanda El. laiško siuntimas neveikia. Nes QQ slaptažodžių saugumui "Tencent" reikalauja nepriklausomų el. pašto slaptažodžių. 2 Pagal numatytuosius nustatymus siųsti iš QQ pašto dėžutės negalima. Jis išjungtas, o nustatymuose turite įjungti SMTP. 3 PowerShell 3.0 ir naujesnės versijos palaiko tik prievado parametrus. Norėdami gauti win7, pirmiausia turite įdiegti naujausią PS versiją
K: Stebėkite laimėjimo procesorių, diską, tinklą, IO ir kt. A: Našumo monitorius arba "Get-Counter" gauna našumo skaitiklio duomenis iš vietinių ir nuotolinių kompiuterių.
K: Kaip galiu pamatyti, kokios prekystalio prekės yra prieinamos? A: Viskas yra vadove. Patikrinkite, kokios yra pagrindinės naudojimo kategorijos: Get-Counter -ListSet * | Rūšiuoti objektą CounterSetName | Format-Table CounterSetName
Pavyzdžiui, dabar žinau, kad disko kategorija yra (PhysicalDisk), tada patikrinkite disko subkategorijas, naudokite: (Get-Counter -ListSet PhysicalDisk). Keliai
K: Kaip peržiūrėti žurnalus? A: Įvykių peržiūros programa arba get-eventlog
K: Kaip vykdyti eilutes? A: $cmd 1 = 'xxxx' Iškvietimo išraiška $cmd 1
Na, mes daug sužinojome apie atskiras komandas, pažvelkime į "Powershell" scenarijų vykdymą.
---------- 7 skyrius PS1 scenarijus, derinimas ir paleidimas -------------- Scenarijus yra komandų sakinių derinys ir perdanga. Scenarijus yra klijai, eiti aplink ieškoti kitų skambinti, ieškoti ratų surinkti automobilį. Užuot gaminę ratus, kad kiti galėtų naudotis.
Cainiao paklausė: Kaip parašyti scenarijų? Senas paukštis atsakė: 1 Reikia išsiaiškinti problemos detales. Pavyzdžiui: gaminkite mėnulio pyragus. 2 Problemų sprendimo idėjos taip pat iš esmės yra užbaigtos. Miltus ir vandenį, sudėkite įdarą, garinkite. 3 Kokias komandas ir kintamuosius naudoti. Įpilkite penkis branduolius, sudėkite juos į formą ir išspauskite. 4 Pirmiausia rašykite apytiksliai, rašykite apytiksliai. 5 Derinimas praėjo. 6 Parašykite išsamiai. Apsvarstykite klaidos situaciją ir klaidos kodą, klaidos pranešimą. Pašalinkite klaidų linkusį kodą, kuris nėra lengvai suderinamas. Perrašykite kodą, kuris neveikia gerai. Iki šiol geras scenarijus gali atrodyti negerai, tačiau jis turėtų būti labai naudingas. 7 Smulkiai pagamintas. Refactoring, pakartotinai naudojamų kodo fragmentų įrašymas į funkcijas. Perrašykite kintamųjų pavadinimus, kad žmonės galėtų juos suprasti iš karto. Gerai suformatuokite kodą ir padarykite įtrauką.
K: Kokia IDE naudojama rašant PS1? A: Labiausiai rekomenduojama naudoti "Visual Studio Code" ir "PowerShell" papildinį. Funkcijos: Kodo raginimai, automatinis užbaigimas, kodo formatavimas, įtrauka pasirinkti tarpą ar skirtuką, failų kodavimo nustatymai. Yra papildinys, vadinamas FTP-sync, kuris gali parašyti PS1 scenarijus Win's VSCode ir automatiškai sinchronizuoti juos su Linux katalogu, kai išsaugomas.
K: Kokie įrankiai naudojami PS1 derinimui? A: Labiausiai rekomenduojamas powergui gyvenimas nenaudoja lokomotyvo, net jei jis yra herojus, PS scenarijus taip pat šokinėja ir praneša apie klaidą! vscode taip pat gerai
K: Kokius įrankius naudojate kodo formatavimui? A: Viskas, kas turėtų būti įtraukta, yra įtraukta, o lygybės ženklai yra išlyginti.
PowerShell ISE + ISE įskiepis [ISESteroids]
Montavimas: Install-Module -Name ISESteroids
ISE veikia: Pradžia-Steroidai
K: Kokius įrankius naudojate, kad kodo spalva būtų graži? A: 1 Norėdami formatuoti kodą, naudokite aukščiau pateiktus įrankius. 2 Naudokite "PowerShellise + Missionary DIY Color Matching 2016 Edition". 3 Paimkite nuotrauką. Gaminamas maloniausias ir gražiausių spalvų "PowerShell" kodas.
Visi aukščiau išvardyti IDE yra kinų kalba.
K: Kaip pavadinti scenarijų? xxx.ps1 A: Rekomenduojama pradėti nuo 1---2 raidžių, o likusioms naudoti kinišką failo pavadinimą. ty [bf atsarginę kopiją visus senus files_ ir ištrinti .ps1 iš 10 dienų atgal] Tokiu būdu pirmiausia įveskite [bf], tada paspauskite tabuliatorių, kad užbaigtumėte scenarijaus pavadinimą.
K: Kaip įjungti "PowerShell" scenarijaus vykdymo leidimą? A: aidas Šis kodas gali būti paleistas cmd su administratoriaus teisėmis arba "PowerShell" su administratoriaus teisėmis. aidas, jei naudojate "PowerShell" nuotolinio valdymo pultą. Tiek vietinis, tiek nuotolinis kompiuteris turi būti paleisti su administratoriaus teisėmis. "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted" "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted" & "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted" & "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted" pristabdyti
K: Kokie yra lokomotyvo (powergui) trūkumai? A: Neįmanoma nustatyti fono spalvos.
K: Kokie yra vscode trūkumai? A: $ ir kintamojo pavadinimas nėra tos pačios spalvos. Derinimo funkcijos yra lėtos ir kartais užblokuotos.
K: Kokie yra ISE trūkumai? A: Negalite pasirinkti įrašyti ar konvertuoti kodavimo. Įtrauka į [tarpas], [tab] abu. Kitoje teksto redagavimo programinėje įrangoje rodoma įtrauka.
---------- 8 skyrius Faktinės kovos pratybos -------------- Grupė 6504748 ir parašė šią dalį patys.
5. 1 pavyzdys: įjunkite ir išjunkite paslaugą 6. 2 pavyzdys: valdymo ugniasienė (atidaryti, uždaryti, valdyti) 7. 3 pavyzdys: nustatykite politiką (slaptažodžio politika kaip pavyzdys)
---------- 9 skyrius Šie papildomi pasirenkamieji kursai jus domina? -------------- "PowerShell" scenarijus, komandų eilutės argumentai perduoda reikšmes ir susieja kintamuosius pavyzdžiai
http://www.cnblogs.com/piapia/p/5910255.html
Leiskite "Powershell" vienu metu paleisti tik vieną scenarijų (proceso abipusio išskyrimo pavyzdys)
http://www.cnblogs.com/piapia/p/5647205.html
powershell simbolių sąsaja, powershell plus WPF sąsaja, 2048 žaidimas
http://www.cnblogs.com/piapia/p/5531945.html
Du tikrintuvai "PowerShell"
http://www.cnblogs.com/piapia/p/5367556.html
"PowerShell" scenarijus: atsitiktinių slaptažodžių generatorius
http://www.cnblogs.com/piapia/p/5184114.html
"PowerShell" rekursinio algoritmo pavyzdys
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html
"PowerShell" balso skaičiuoklė
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html
1 Išvardykite visus EFS užšifruotus failus. 2Iššifruokite visus EFS užšifruotus failus
http://www.cnblogs.com/piapia/p/4702514.html Tai įrankis, parašytas sistemos administratoriams ir tinklo administratoriams. Darbuotojui išėjus iš darbo, jo diskas daro prielaidą, kad yra 10 000 failų (katalogų), iš kurių yra 3 failų katalogai, užšifruoti EFS. Naršyklėje šie trys failai yra žali. Bet jei spustelėsite (10 000 katalogų) po vieną, nesvarbu, ar jis žalias, ar ne, būsite išsekę. Šiuo metu tinklo administratorius naudoja darbuotojo WIN paskyrą, prisijungia prie darbuotojo kompiuterio ir naudoja šį scenarijų visiems EFS užšifruotiems failams išvardyti.
---------- 10 skyrių Užduokite klausimą-------------- Ponios ir ponai, jei yra ką pranešti, išeikite iš teismo be nieko.
----------11 skyrius "Linux" skyrius--------------
Misionierius: Kol galite įdiegti "PowerShell" Linux versiją, jums reikia tik ps1 scenarijų, jokių sh scenarijų. Aiškinimas: 1 Trumpai tariant, bash turi tik sintaksę, jokių komandų ir bibliotekų. 2 bash turi tik 1% sintaksės funkcijas, PowerShell negali jos įgyvendinti. Tai normalu, pasaulyje nėra dviejų vienodų lapų. Tai reiškia, kad jums reikia tik ps1 scenarijaus, ne sh. 3 bash yra per senas, tą pačią funkciją, "Powershell" galima įdiegti, taip pat gali sutaupyti laiko, pvz., 10 000 tuščių forų, "Powershell" turi sutaupyti 90% laiko. 4 Išmokite naudoti /usr/bin/powershell vietoj /usr/bin/bash. Kitos Linux komandos, vamzdynai, senas kung fu ir kt. naudojami lygiai taip pat, kaip ir bash. 5 Palaipsniui naudokite objektines, paprastas ir galingas "PowerShell" komandas ir bibliotekas, o ne smegenis deginančias "Linux" komandas. ---Tai yra bendras principas, bendras metmenys.
K: Kurios "Linux" versijos gali įdiegti "PowerShell"? A: ◦Ubuntu 14.04 / 16.04 ◦CentOS/RHEL 7 ir naujesnės versijos ◦atidarykite SUSE 42 ir naujesnę versiją ◦Arch Linux (archl inux neturi versijos numerio) ◦LINUX docker konteineris ◦Linux AppImage konteineris (nešiojama programa viena dvejetainė) https://github.com/probonopd/AppImageKit
K: Kodėl sakoma, kad komandinė eilutė laimėti yra stipresnė nei Linux? A: Komandos per 1 laimėjimą išsivystė į objektą orientuotą "PowerShell". Linux dar neveikia. Nuo win7 iki win2012r2 evoliucija baigiasi.
2 Aš girdėjau, kad Unix turi daug Linux komandų ir yra labai galingas. Bet dabar sakau, kad "Powershell" komandų yra bent dešimt kartų daugiau nei "Linux" komandų. Šiaip ar taip, aš vis tiek neišmokau visą savo gyvenimą.
3 Linux yra labiau priklausomas nuo grafiko, su per mažai komandų. Ir laimėti komanda yra daug daugiau nei Linux. 3.1 Bet kuriame "Linux" pašto serveryje esančios komandos yra vis išsamesnės nei mainai? Patogiau nei mainai? 3.2 "Linux" DNS serverio susiejimas nėra toks patogus kaip DNS komanda laimėti. Ar bind turi [komandą] pridėti ipv4 A įrašą prie domeno vardo? Dar nepriklausomas nuo žiniatinklio grafikos? Kai kurie žmonės sako, kad reikia naudoti nsupdate. Tai nėra teksto kūrimas ir teksto paleidimas. Kuo skiriasi [DNS zonos failo] pakeitimas sed ir [dns zonos] perkrovimas?
4 Naujoje "win" versijoje arba "powershell" viskas yra [komanda + parametras]. Ir didžioji dalis Linux vis dar yra [sed tekstas]. 4.1 Kaip pavyzdį paimkite tinklo plokštei priskirtą IP adresą. nmcli ryšys pridėti tipą ethernet con-name NEW_STATIC ifname eno1234567 ip4 192.168.1.111 gw4 192.168.1.1, Ar ne patogiau nei naudoti sed ifcfg-eth0 failui nuskaityti?
5 Bet kuri kalba apdoroja duomenis, taip pat ir scenarijai. Objektų pagalba "PowerShell" yra patogesnis nei nepatogus. Shenma csv, excel, xml, json SQL lentelė, nosql lentelė. HTML ir kt.
K: Kaip "PowerShell" įgyvendina [sed -i "s/ko ieškoti/pakeisti /g" failo pavadinimu]? A: @(Get-Content failo pavadinimas) -pakeiskite 'aaa','bbb' | Rinkinio turinio failo vardas $aaa Tai yra, atidarykite failą, pakeiskite jį, išsaugokite failą.
K: Kodėl vis mažiau žmonių naudoja SED sistemoje Linux? A: 1 argumentas: AWK gali pakeisti SED, bet SED negali pakeisti AWK. sed, tai yra, tiesiog suraskite pakaitalą. AWK turi ir panašiai įgyvendinti sudėtingą apdorojimą.
2 argumentas: AWK naudoja standartinį reguliarųjį, o sed reguliarusis yra toks pat kaip sed, tačiau dalys skiriasi. Mokymasis SED reiškia, kad du nesuderinamų reguliarių standartų rinkiniai smegenyse kovoja vienas su kitu.
K: Taigi teisinga mokytis AWK? A: Mokytis "PowerShell" yra lengviau nei mokytis AWK. "PowerShell" naudoja [split and then split], [if and if], where-object, string.substing(), string[-3] ir kt. Suskaidykite stygų problemą sluoksnis po sluoksnio. Paprasčiau nei awk įprasta.
K: Ar "PowerShell" galima naudoti vamzdynus ir AWK? A: "PowerShell" galite pavadinti awk, lygiai taip pat, kaip ir "Bash". Senieji kovos menai yra visiškai Turinas.
K: Kaip įdiegti [awk '{print $3}'] funkciją PowerShell? A: ($line -split "\s+|\t+") [0] #第一行 ($line -split "\s+|\t+") [2] #第三行
Gauti turinį /xxx/yyy.txt | foreach-object {$_.split()[2]} #awk '{print $3}'
K: Kaip įdiegti [awk -f a.awk file] funkciją naudojant "PowerShell"? A: Iš esmės tai yra filtravimo funkcija, kuri naudoja vamzdį. "PowerShell" tai vadinama filtru arba filtru. "PowerShell" palaiko komandos + vamzdžio + filtro derinį. Kaip ir 1 komandoje | 1 filtras | 2 komanda | 2 filtras | 3 filtras filtro filtras1
{ AWK tipo funkcionalumas
}
K: Ar "PowerShell" yra [xargs]? A: Dujotiekyje naudojamas vamzdžio kintamasis vadinamas [$psitem], o jo slapyvardis yra [$_]. "PowerShell" naudoja foreach-object ir $_, kad įgyvendintų xargs funkciją.
K: Ar "PowerShell" yra [<] [<<] numeris? A: Ne. Galbūt [<] simbolis iš dešinės į kairę yra antižmogiškas mąstymas. Daugelis "PowerShell" komandų buvo pakeistos iš kairės į dešinę. Jei get-random < (1..100) nėra teisėtas PowerShell, legalus turėtų būti get-random -inputobject (1..100) arba 1. 100 |get-random Mažiau nei 1% keistų komandų [turi] remtis simboliu [<], o tai galima pasiekti iškviečiant cmd "PowerShell" arba bash ("PowerShell for Linux") "PowerShell". Pavyzdžiui, $a = bash -x "komanda 1 < komanda 2" #linux Pavyzdžiui, $a = cmd -c "komanda 1 < komanda 2" #cmd
K: Ar "PowerShell" yra komanda tikėtis? Kaip prisijungti prie Linux SSH serverio iš Win naudojant PowerShell? A: 1. Taip. Kai kuriems keistiems ir daliniams durų reagavimo poreikiams yra trečiųjų šalių moduliai. 2 Nr. "PowerShell" nenaudoja komandos tikėtis, bet naudoja seansą.
Naudokite "Powershell" + SSH kliento biblioteką + IP + prievadą + vartotojo vardą + slaptažodį, kad sujungtumėte ryšį ir siųstumėte komandas į šį ryšį. Kodas yra toks: $connection 1 = New-SSHSession -ComputerName 1.1.1.1 -Port 22 -Credential aaaa #将提示输入密码 $to return = Invoke-SSHCommand -Command {cat /etc/issue} -SSHSession $Connection 1
Ši standartinė funkcija, tokia kaip (MongoDB, mysql, ssh, ftp, http, telnet ir kt.), turi tvarkykles arba modulius. ps ir. .netprogram, per tvarkyklės ryšį, siųsti komandas ir priimti duomenis. Modulių ar tvarkyklių naudojimo [duomenims] siųsti ir gauti privalumai yra šie: Duomenys bus konvertuoti į .net objektą, kuris savo ruožtu bus konvertuotas į PS objektą. Priešingu atveju, tai visos stygos, o PS sektos [objektiniai kovos menai] yra nenaudingi.
Kokie yra modulių ar tvarkyklių naudojimo komandoms siųsti pranašumai? Kas kalba? Manau, kad nauda yra: 1 Kelių gijų. Foninė gija veikia ir neužima dabartinės gijos. 2. Mes galime bet kada [atsijungti pusiaukelėje] nuo sesijos, vykdyti kitą PS kodą, funkcijas ir [bet kada grįžti į sesiją]. Scenarijai yra lankstesni rašyti ir lengvai derinami. 3session atneša kelis vartotojus, o skirtingi vartotojai gali turėti skirtingus serverio leidimus.
K: Ar yra su, runas komanda powershell? Kaip paleisti kito vartotojo komandą naudojant "PowerShell"? A: Ne. "PowerShell" paleisti "Linux" vietines komandas ir vamzdynus yra lengva. Pavyzdžiui: sshaaa@127.0.0.1"Vykdoma su vartotojo AAA teisėmis, komanda xxx" sshpass -p user_password sshaaa@192.168.1.1
K: Du Linux įrenginiai su SSHD? Kaip prisijungti ir siųsti komandas naudojant "Powershell"? A: Be aukščiau pateikto metodo, taip pat galite naudoti naujos "Linux" sesijos kūrimo metodą. (Prijungta iš Linux į kitą SSHD) Pastaba: Šis metodas reikalauja redaguoti failą /etc/ssh/sshd_config. Įrašyti šią eilutę Posistemis powershell powershell -sshs -NoLogo -NoProfile Po to iš naujo paleiskite SSHD serverį. Išsamų vadovą rasite čia:
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting
Komanda: $connect 2 = New-PSSession -HostName 127.0.0.1 -UserName user006 #手动输入密码或用-KeyFilePath parinktis invoke-command -session $connect 2 -scrip{filter}tBlock {new-item ~/ccc.txt}
Suvestinė: Win klientas, prijungtas prie Linux serverio. Šiuo metu reikalingi trečiųjų šalių moduliai, žinoma, tai yra modulis oficialioje bibliotekoje, tiesiog naudokite diegimo modulį PoshSSH. Linux klientas, prijungtas prie Linux serverio. Turite redaguoti failą /etc/ssh/sshd_config. Linux klientas, prijungtas prie Win serverio. Serveryje turite įjungti paslaugą. Pasitikėkite kliento serveriu. Win klientas, prijungtas prie Win serverio. Serveryje turite įjungti paslaugą. Pasitikėkite kliento serveriu.
K: Ar "PowerShell" yra [grep]? A: Select-string komanda naudojama powershell. Vien kodavimo požiūriu, select-string=smart, grep=stupid + turi sunkų trūkumą :mrgreen: Kai yra KS antraštė, pasirinkimo eilutė automatiškai atpažįsta failo kodavimo tipą. Kai nėra KS antraštės, nereikia keisti apvalkalo aplinkos, pvz., linux+grep, ir nereikia išsaugoti failų pagal tam tikrą kodą. Jums tereikia nurodyti parametrą -encoding pagal failo kodavimą. Ir grep neturi šios funkcijos, tai yra, yra sunkus trūkumas [neįmanoma nurodyti failo kodavimo tipo]. Žinoma, grep nėra nenaudingas, grep turi tam tikrus parametrus, turi papildomų unikalių funkcijų, select-string ne, čia grep yra stipresnis nei select-string.
K: Ar "PowerShell" yra [eval]? A: Naudokite Invoke-Expression, kad vykdytumėte eilutes powershell.
K: Ar "PowerShell" yra uodega -f? Naujai sugeneruotas failo eilutes galima išvesti realiuoju laiku. A: Gauti turinį D:\a.txt -Uodega 10 -ReadCount 0 -Palaukti
K: Noriu naudoti mažą klaviatūrą ir 256 spalvų terminalą, tad kaip turėtų būti nustatytas xshell? A: Terminalo --- terminalo tipas --- [putty-256color] arba [export TERM=putty-256color] Terminalas --- Klaviatūra --- numatytoji arba Linux.
Eterm-256spalvų skardinė gnome-256color neveikia konsole-256color neveikia glaistas-256spalva PowerShell Misionierius Originalus Dalintis 2017-02-15 RXVT-256COLOR neveikia Screen-256color neveikia ST-256SPALVA VTE-256COLOR neveikia xterm-256color neveikia Tas pats principas galioja ir "SecureCRT"
K: Kas galingesnis, apvalkalas ar pitonas? A: Kiekvienas turi savo stipriąsias puses ir gali papildyti vienas kitą. Tačiau jie nepapildo vienas kito. Daugiau apie tai žemiau.
K: Kodėl "PowerShell" Linux versija labiau tinka eksploatavimo ir priežiūros personalui rašyti scenarijus? (Palyginti su Linux versija Python) A: 1 "Python" turi į objektus orientuotas funkcijas, o "PowerShell" "Linux" versija yra prieinama.
2 Python neturi komandinės eilutės. 2.1 "Python" negali būti numatytasis SSH terminalas, bet "PowerShell", skirta "Linux". Žiūrėkite skyrių: "Du Linux įrenginiai su SSHD? Kaip prisijungti ir siųsti komandas naudojant "Powershell"? 》 2.2 Naudoti apvalkalo komandas (awk, grep ir kt.) python yra labai sudėtinga. Reikia pridėti daug py sintaksės ir kodo. "PowerShell", skirta "Linux", paleidžia awk komandas kaip ir bash.
3 Python neturi vamzdžių. Labai vargina perduoti reikšmes tarp n [komandinės eilutės programų]. Reikia pridėti daug py sintaksės ir kodo. "PowerShell" "Linux" versijoje yra vamzdynai, o awk komandų paleidimas yra tas pats, kas bash.
4 Python turi 2 versiją, 3 versija nesuderinama su vėžiu! Klausimas. "PowerShell", skirta "Linux", tokios problemos neturi. 4.1 Šiuose klausimuose yra kodavimo problemų.
Išvada: apvalkalo komandos, tokios kaip GREP, nėra tinkamos kodavimo palaikymui, ne tokios geros, kaip 4.1 kodavimo problemos aukščiau PowerShell namuose. Pridėjus aukščiau nurodytus 2,3 balo. Dėl to Linux žmonės jaučiasi nepatogiai, tačiau labai mažai žmonių naudoja išorines komandas py. [py komandų biblioteka] ir [apvalkalo komanda] yra negyvi ir iš esmės negali papildyti vienas kito. "Linux" PS versija skiriasi.
K: Kodėl sakoma, kad "Powershell" yra geresnis už apvalkalą? A: 1 "PowerShell" yra orientuota į objektus, o ypatybės pateikia tiesiogiai pasiekiamus duomenis. Tai daug rečiau nei simbolių scenarijų kalbose (šikšnosparnis, apvalkalas), kuriose reikia eilučių atskaitymų. Gimė su mažiau [turinio, kurio reikia išvengti]. 2 Eilutės paieškos pakeitimas, "PowerShell" yra metodų, kurių nereikia pabėgti, .NET klasėje. Pavyzdžiui: [eilutė]$a = 'abc\\def' $b = $a.replace('\\','when') #返回: [ABC kaip def] Norėdami nustatyti, ar IP yra teisėtas, galite naudoti TryParse() metodą IPAddress klasėje. Trumpai tariant, mano pasiūlymas yra naudoti kuo daugiau .net metodų, naudoti kuo mažiau reguliariosios išraiškos arba tiesiog naudoti paprastus reguliarius. 3 PowerShell naudoja ['] kaip pabėgimo simbolį. ['] yra rečiau naudojamas nei [\] ir daug rečiau naudojamas kaip pabėgimo simbolis. 3.1 Rašant duomenų bazės scenarijus, yra daugiau ['] konfliktų. Pavyzdžiui, ['table'] konfliktuos su ['t], pvz., ['biao'] konfliktuos su ['b], o aš vėliau tai išsprendžiau su ['table']. 4 ps eilutės paieška ir pakeitimas, turi įprastą variklį, yra suderinamas su Linux, taip pat naudoja [\] kaip pabėgimą. Tačiau yra speciali eilutės pabėgimo funkcija [[Regex]::Escape()], kuri pirmiausia pabėgama, o paskui randama ir pakeičiama, o kodas yra lengvai skaitomas. $Original eilutė prieš pabėgimą = '\+\&*|]' $escaped eilutė = [regex]::escape($original eilutė prieš pabėgant) ------------- Scenarijaus pavyzdžiai [eilutė]$a = 'abc\\def' $Original eilutė prieš pabėgimą = '\' $Escaped eilutė = [regex]::escape($Original eilutė prieš pabėgimą) #[\]--->[\\] $b = [regex]::replace($a,$Escaped eilutė, 'kada') $b #返回 [ABC Dangdang DEF] ------------- 5 bash ir awk, kiekvienas turi savo už, kiekvienas turi savo pabėgti. Kartu A lengva paveikti B, o A praryja B. Taip pat lengva turėti problemų susidūrus su ['], ["], [\] ir [*]. Tai tarsi dėvėti du ilgų kelnių sluoksnius, traukiate vieną sluoksnį, o kitas sluoksnis taip pat juda, turite nerimauti dėl jų suderinamumo. Tai vėžys ir sunkiai išsprendžiamas. Tačiau žiupsnelis, šios problemos taip pat galima išvengti tam tikru mastu. Tam reikia, kad apvalkalą parašęs asmuo ištaisytų dvokiančią problemą. [Įdėkite awk kodą į .awk failą atskirai, o ne į komandinę eilutę] "PowerShell" neturi šios problemos, įdėkite ją į komandinę eilutę, įdėkite į scenarijų, ji neturi jokio poveikio.
|