See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 11695|Vastuse: 1

PowerShelli alustamise õpetus - v0.3 versioon

[Kopeeri link]
Postitatud 19.04.2017 16:48:30 | | |


---------- 1. peatükk Windowsi skriptimise ajalugu --------------


1 Esimene põlvkond skript-nahkhiiri. See algas win95, win98--------- ja lõppes umbes 2008. aastal. Omadused: Tähemärgipõhised käsud, käsurea ja torujuhtmega.
2 Teise põlvkonna skript VBS. Omadused: Ainult funktsioonid, väärtuste edastamine, kõned.
3 Kolmanda põlvkonna skriptipowershell. Alates 2012. aastast on käsklus täielikult arenenud objektorienteerituks. Näiteks ülesandenimekiri ja get-process on korduvad rattafunktsioonid: objektipõhised. Pärides eelnevate kahe põlvkonna stsenaariumite eelised.



K: Miks õppida PowerShelli?
A:
Misjonär vastas, et õpib BAT-i ühe ja viie aasta jooksul. Lihtne süntaks ja tugevad teegifunktsioonid!
Ainus maailmas, mis toetab objekte, millel on käsud mõlemal pool torujuhtmet. st objektorienteeritud käsk 1 | Objektorienteeritud käsk 2

Windows ja Linux on erinevad:
PowerShelli skriptis Winis,
Toeta CR, LF, CRLF sisenemist. Toeta mitme lõime ja mitme protsessi samaaegsust.
On lihtne lisada [Text2 heli], "Raporteeri kapten, ketas on täis".
Graafilise liidese manustamine on lihtne. (Kui hüpikakena liides palub sisestada kasutajanime, parooli, ühe valiku, mitme valiku jne.) Need on Linuxi skriptide kadedused.

PowerShell erineb Pythonist:
PowerShellis on hiina keelt lihtne kasutada. Hiina kirja nimi, muutuja nimi, kommentaar. Hiina ühekordsed jutumärgid, hiina topeltjutumärgid.
Tuvastab automaatselt GBK, UTF8, Unicode kodeeringu. Pipeline'i tugiobjektid, mille üle Pythoni skriptid kadedad on.



Lihtne süntaksi näide 1: Powershelli ühe- ja topeltjutumärkide võlu.
Üksikuid jutumärke saab tsiteerida topeltjutumärkidega. Ja vastupidi.
Üksik- ja topeltjutumärke saab @引用 @''-ga.
BAT ei töötanud.


Misjonäri jutustaja:
Panin õpetuse disaini palju läbi. Kas sa ei lugenud, et minu kirjutatu ajalugu oli väga [lihtne ja robustne]? Ajalugu kannab edasi üks hoob.
Aga kuna ma seda ütlesin, siis see pole, ma tahan lihtsalt, et õpilased teeksid selgeks, et alates win7-win2008-st on skriptide [objektistamine] muutunud populaarseks. Viib järgmise objektorienteeritud seletuse peatükini.
Iga PS sissejuhatav õpetus peaks mainima erinevust tegelaskeskse ja objektipõhise vahel. On lihtsalt sobilik see teema käsurea ajalukku hõõruda.

---------- 2. peatükk Objektorienteeritud imeline --------------
Mis on objekt, miks see on objektorienteeritud ja miks Microsoft tugevdab ratast?

Objektorienteeritud näide 1:
Küsimus: Ma söön päevas 2,2 õuna, mitu õuna ma söön 17 päeva jooksul?
A:
2,2 x 17 on saadaval. Samuti on võimalik kasutada i++, mida toetab ükskõik milline skriptikeel.
kui ($i = 1; $i -leitnant 18; $i++)
{
        $Apple = 2,2 + $Apple
        kirjuta-host $i,$Apple
}

--------------------------------------------
Niipea kui küsimus muutub, ma ei ütle sulle päevade arvu, vaid ütlen ainult,
Söön päevas 2,2 õuna, mitu õuna söön 20. jaanuarist kuni 20. juunini 2017?
$days = ((saamise kuupäev '2017-06-20') - (saamiskuupäev '2017-01-20')). päevad #值151


Söön päevas 2,2 õuna, mitu õuna söön 20. jaanuarist kuni 20. juunini 2020?
$days = ((saamise kuupäev '2020-06-20') - (saamise kuupäev '2020-01-20')).päevad #值152

for ($i=(saa-kuupäev '2020-01-20'); $i -lt (kuupäevaks '2020-06-20'); $i=$i.adddays(1))
{
        $Apple = 2,2 + $Apple
        kirjuta-host $i,$Apple
}

Järeldus: kuupäevaobjekti puhul on päevade, tundide jms lugemine lihtne. [for,,i++] on tavaline, aga ma ei arvanud kunagi, et number i võiks olla kuupäevatüüp.

------------------------------------------



Millised on objektorienteeritud eelised?
Enne objektorientatsiooni olid meil ainult stringid ja täisarvud.
1 Seal on ese.
----- [Tegelase tüüp]-----
Glüüfil on system.string, mis on kõige lihtsam.
System.Text.StringBuilder mälu, sageli muutuvad, suured stringid

----- [Numbriline tüüp]-----
system.int32, system.int64, system.decimal, system.double, System.Numerics.BigIntarve lõpmatu täisarv.
Tavaliselt kasutatakse int32 ehk kümnendkohta.

Kas 1/3*3 on võrdne 1 või 0,9999-ga, sõltub andmetüübist.
----- [Array]-----
system.array massiivi
system.arraylist massiivi muutub sageli, näiteks pidevalt ümber kirjutamine, lisamine või kustutamine, seda tuleb kasutada. Kiirus on suhteliselt kiire.
System.Collections.Generic.HashSet desuplikeerivad massiivid. Sama mis python'i seadistusobjekt.

-----【Form】-----
1 käsu väljund. Näiteks dir, get-process.
2. Skripte kirjutades kasutame objekte ja atribuute ehitamiseks.

----- [Teised] -----
Räsi tabelid, failid jne.



2-l on omadused. Atribuudid on argumendid ja väiksemad kui stringid. Enne kui atribuute pole, peame filtreerima ja filtreerima stringe [ajupõletava regulaarsega], mida nimetatakse [deduktsiooni stringiks]. Kui sul on omadused, siis sul neid vaja ei ole.
3 On olemas võimalus. Meetod on programm, kood. Pole vaja ise ümber kirjutada. Nahkhiir pole kindlasti hea, pole võimalik, on ka isiklik kirjutis, ebausaldusväärne, ära julge seda kasutada.
Meetodid võivad olla isekirjutatud ps-funktsioonid, isekirjutatud meetodid ps-klassides.
Meetod, mille sa ise kirjutad, saab ajutiselt [ühendada] kolmanda osapoole klassiga.
Meetodi, mille sa ise kirjutad, saab ajutiselt [ühendada] .net klassiga.

Millised on objektorientatsiooni puudused?
Jutlustaja õpetab powershelli neile, kes kasutavad winXP-d. Inimene ütles, et powershell pole hea, objekt on liiga mälumahukas, ja tal on õigus.
Cmd-s tagastan 100 failinime (stringi) dir-iga. PowerShellis kasutan dir-i, et tagastada 100 failiobjekti, ja Powershell võtab palju mälu.
Aga nüüd on teisiti:
1. Tarbetu sisu ei tohiks eksisteerida muutujates. Või hävitada see kohe pärast kasutamist, et vähendada mälukasutust.
2. Mälu langus on piisav. Kuna protsessori jõudlus ei saa enam tõusta, suurendame meeleheitlikult mälu, püüdes ruumi aja vastu vahetada.
3. Me tahame võimsamaid omadusi ja objektorientatsioon on tänapäeval kõige lihtsam. Milline ei ole objektorienteeritud, näiteks py, php, java, .net, c++?

Kokkuvõte:
1 Objektid on suuremad ja mälumahukamad kui stringid.
2. Objektorientatsiooni ja tugevamate funktsioonide jaoks on rohkem meetodeid.
3 atribuuti on väiksemad kui stringi detailsus, mis on äärmiselt mugav kasutada. Vältisin [hullumeelset ajupõletava tavalise filtreerimise kasutamist] keeli!


=== Hull ajupõletavate regulaarsete kasutajate kasutamine näidete filtreerimiseks, bat-versioon pingi vaikimisi väravast ===
@echo off&setlocal enabledelayedexpansion
Echo otsib vaikimisi väravat...

/f jaoks "usebackq delims=" %%i in ('ipconfig /all') do (
echo %%i|find /i "gateway">nul|| echo %%i|find "default gateway" >nul
kui "!errorlevel!" =="0" (
for /f "tokens=2 delims=:" %%a in ("%%i") do for /f "delims= " %%m in ("%%a") do set ipgate=%%m
)
)

Echo vaikimisi värav on: !ipgate!
=========== pingi vaikimisi gateway.ps1============
$default gateway = (get-netroute -DestinationPrefix 0.0.0.0/0). NextHop
& ping.exe $ Vaikimisi värav

# test-ühendus $ vaikimisi värav
=======================






K: Isegi kui objektorientatsioon on nii hea, kust need objektid tulevad?
V: .net teegist.


---------- 3. peatükk Sissejuhatus .NET --------------


K: Mitu versiooniharu on .NET Core'il?
A:
Praegu on olemas kolm versiooni.
.NET 2.0 Viimane .NET 3.51 versioon
.NET 4.0 Viimane .NET 4.70 versioon
.NET Core 1.x Viimane .NET 1.2 versioon Apple'i, Linuxi ja manussüsteemide jaoks.
.NET Core 2.x Viimane .NET 2.0 versioon Apple'i, Linuxi ja manussüsteemide jaoks.



K: Mitu funktsionaalset haru on .net-il?
A:
Lauaarvuti haru .NET-is. WinForm. Töölauakende arendamiseks.
Heliraamatukogu
asp.net .NET ja .NET Core'is. Veebiserveri funktsioonide raamatukogu. Varem avasin B/S veebiserveri.
F# .NET ja .NET Core'is. Sisaldab matemaatikateeke, trigonomeetrilisi funktsiooniteeke jne.
PowerShell .NET ja .NET Core'is. Sisaldab tavalisi süsteemihalduse liideseid, nagu skriptifailid.
Linux
◦Ubuntu 14.04 \ 16.04
◦CentOS/RHEL 7 ja uuemad
◦ava SUSE 42 ja kõrgemad
◦Arch Linux (archl inuxil ei ole versiooninumbrit)
◦LINUX dockeri konteiner
◦Linux AppImage konteiner (kaasaskantav rakendus, üks binaar) https://github.com/probonopd/AppImageKit



MAC OS X
◦OS X 10.11


K: Kuidas ühendub .NET programm (C# programm) MySQL serveriga?
A:
Mine mysql ametlikule veebilehele, et alla laadida .NET keele ühendus.
mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll
Lisa MySql.Data klass .net-i ja lisa andmebaasi liides.



Kokkuvõte:
WinXP masin esmalt paigaldas .net 3.51, win7 ja win2008 ning esmalt .net 4.62 või uuema versiooni.

.NET on olnud olemas juba aastaid ja .NET-i toetavaid tarkvarasid pole palju kui Java. Kõik .net harud, liidesed (andmebaasid, WeChat jne). )
Need DLL-id, need teegid, powershell võib nimetada. See on täpselt sama, mis exe, mis on kirjutatud C#-s.


K: Lisaks .NET haruliidesele, millised on PowerShelli enda teegid (moodulid)?
A:
Palun vaata järgmist peatükki

---------- 4. peatükk Tavaliselt kasutati PowerShellis sisseehitatud teeke, väliseid teeke ja kolmandate osapoolte teeke --------------

Misjonäride abi:
Seda peatükki ei saa arutada, kuid see on lihtsalt nimekiri raamatukogudest ja käsiraamatutest. Pane see peatükk järjehoidjatesse. Pärast nende teekide vaatamist saad teada, mida PowerShell suudab.



Win2012 käsitsi aadress: (kõige sagedamini kasutatav reklaamimoodul)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx
AD kasutajagrupi haldus, DHCP, DNS, printer, failide jagamine, IIS, ketas, NIC,



Exchange2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx
Active Directory 12         
Rämpspostitõrje ja pahavaratõrje 59  
Kliendi ligipääs 100
Laiendusagent 4
E-posti aadressid ja aadressiraamatud 37
Föderatsioon ja hübriidkonfiguratsioon  
Kõrge saadavus  
Posti voog  
Postkast  
Postkastide andmebaas  
Postkasti server  
Kolimine ja migratsiooni  
Organisatsioon  
Load  
Poliitika ja vastavus  
Turvalisus  
Serveri tervis, jälgimine ja jõudlus  
Jaga ja tee koostööd  
Ühtne sõnum  
Kasutajad ja grupid  



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 Virtual Machines, AWS, Microsoft Virtual Machines, Azure, Hyper-V, VMware vSphere ja ettevõtte tasemel virtuaalmasinad.


Kliendid:
Teenused, protsessid, logid, registrid, failikataloogid, kaughaldus. Ajastatud ülesanded.



Internet:
FTP, meili, SSH kliendi plugin Linuxi serveriühenduse jaoks.


Tekst:
XML, HTML, CVS, JSON, EXCEL jne.


Text 2 hääl


Graafiline liides.


Microsoft Scripting Center
https://gallery.technet.microsoft.com/scrip{过滤}tcenter/


PowerShelli tarkvara allikas ametlik veebileht --- ametlik PowerShelli teek.
https://www.powershellgallery.com


Teised Niu x teegid on kõik githubis. Lisaks avaldavad misjonärid regulaarselt [Niu x Magic Weapon] [Hidden Foot Pavilionist], mis on kasulik PowerShelli kolmanda osapoole raamatukogu.


---------- 5. peatükk Algajad peavad õppima, kuidas käskude kasutamist toetada--------------


K: Kuidas ma tean PowerShelli versiooni?
A:
$PSVersionTable



K: Ma ei tea moodulit, kuidas seda leida?
A:
get-module -ListAvailable


K: Kuidas ma leian käske, kui ma tean neist ainult osa?
A:
get-command *teenus*



K: Ma tean käsku, aga ma ei tea, millised parameetrid käsu sees on, kuidas parameetreid loetleda?
A:
get-help write-host -Parameeter *
show-käsk kirjuta-host


K: Ma tean seda parameetrit, aga ma ei tea, millisel käsul see parameeter on, kuidas ma selle käsu leian?
A:
get-command -ParameterName kodeerimine



K: Kuidas ma saan abi käsurealt käsuga?
A:
Abi saa-kohting

-Näited käsunäidetest
-veebipõhine käsiraamat




K: Ma ei tea käsu atribuudi meetodit (ma ei tea objekti), kuidas seda leida?
A:
"ABC" | Liitu
Kohtumiskuupäev | Liitu



K: Kus asub Hiina .NET käsiraamat?
A:
msdn。 Kõige põhilisemad stringi omadused ja meetodid on käsiraamatus.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx



---------- 6. peatükk Sissejuhatus ühiskasutatavatesse käskudesse--------------

Esimene käsk, mida õppida, on dir
K: Miks kasutada powershell dir'i [st Get-ChildItem] cmd dir'i asemel?
A:
Objektorienteeritud, tugev meetod ja palju omadusi.
$file = dir a:\pscode\temp183\aaa.txt
$file. Täisnimi #返回全路径属性
$file. BaseName #返回文件名属性
$file. Laiendus #返回扩展名属性
$file. LastWriteTime #返回最后写入时间属性



Esimene süntaks, mida õppida, on massiivisüntaks. $a = @(xxx käsk)
K: Mõnikord tuleb kasutada [märgipõhiseid väliseid käske], et jagada tagastusväärtused massiivideks käitumisühikute kaupa.
A:
$a = @(ipconfig)
$a[8] #第9行


Lapseeseme kasutamine:
Lisatud parameetrid PowerShell 3.0 ja uuemates versioonides

get-childitem d:\xxx -file #过滤, ainult väljundfaile
-Kataloogide filtreerimine, ainult väljundkataloogid
-Peidetud filtreerimine, ainult väljund peidetud


K: Avada fail, segmentides käitumise kaupa, panna massiivi?
A:
$a = Saa-sisu a:\pscode\temp183\aaa.txt -ReadCount 0



K: Avada fail suure stringina ja salvestada kogu muutuja?
A:
$a = Saa-sisu a:\pscode\temp183\aaa.txt -raw


$a,$b,$c = 1,2,3


K: Kuidas ma saan käske taustal käivitada?
A:
Iidsetel aegadel on olemas käsk /c "käsk".
Nüüd on olemas powershell /c "käsk" või powershell -c "käsk",
PowerShell -fail "script.ps1" -argument 1 AAAA -parameeter 2 1234
start-process -path xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'


K: Soovin skripti käivitada teise kohaliku kasutajaga, aga PowerShellil pole runasid. EXE sarnaseid käske?
A:
PowerShellis on mitmeid sessioone.
IP + port + kasutajanimi + parool = sessioon, mul on vaja ainult kasutajanime muuta, parooli muuta ja sina saad õigusi muuta. Sest õigused on seotud kasutajaga.
Samamoodi pean looma ainult n sessiooni kasutamiseks, ilma kasutajat vahetamata.
Kõige olulisem uus-pssession sisaldab -Credential parameetrit, sisesta kasutajaparool, mis ei ole sama mis runas. Kas exe on sama? Mis veel on SmbSession?
Seega ei arva ma, et runasid on powershellis vaja kasutada. exe。
Sa pead lihtsalt neid käske kasutama seansi ja Credentialiga, eks?

Kontrolli käske, mille parameetri nimes on nimi [Credential]:
get-command -ParameterName Credential

Vaata käske [session] tegelasega:
get-command *sessioon*


K: Kuidas ma saan saata e-kirja PowerShelli abil?
A:
Send-MailMessage -Teema 'Teema'
-Sinu hotmail kontolt @hotmail.com" -Kuni "sinu QQ e-posti @qq.com" '
-SmtpServer "smtp.live.com" -port 587 -useSsl -credential "your hotmail account @hotmail.com" '
-Manused $Attachments -BodyAsHTML -body $HTML e-kirja sisu

Märkus:
1 kasutusxxx@QQ.com+ Sinu QQ parool + ülaltoodud käsk E-kirja saatmine ei tööta. Sest QQ paroolide turvalisuse tagamiseks nõuab Tencent sõltumatuid e-posti paroole.  
2 Saatmine QQ postkastist ei ole vaikimisi võimalik. See on välja lülitatud ja SMTP tuleb seadetes sisse lülitada.
3 PowerShell 3.0 ja uuemad versioonid toetavad ainult pordiparameetreid. Win7 jaoks pead esmalt paigaldama PS-i uusima versiooni




K: Jälgi WINI protsessorit, ketast, võrku, IO-d jne.
A:
Jõudlusmonitor või
Get-Counter toob jõudlusloenduri andmeid nii kohalikelt kui ka kaugarvutitelt.

K: Kuidas ma saan näha, millised vastutooted on saadaval?
A:
Kõik on käsiraamatus.
Vaata, millised on peamised kasutuskategooriad:
Loendi saamine -ListSet * | Sort-Object CounterSetName | Formaaditabeli CounterSetName


Näiteks tean nüüd, et ketta kategooria on (PhysicalDisk), ja siis kontrollin ketta alamkategooriaid, kasutan:
(Han-Counter -ListSet PhysicalDisk). Rajad




K: Kuidas ma logisid vaatan?
A:
Sündmuste vaatur, või
get-eventlog



K: Kuidas ma käivitan stringe?
A:
$cmd 1 = 'xxxx'
Kutsumise väljendus $cmd 1


Oleme palju õppinud üksikute käskude kohta, vaatame Powershelli skriptide täitmist.


---------- 7. peatükk PS1 skriptimine, silumine ja -------------- käivitamine
Skript on käsulausete kombinatsioon ja ülekate. Skript on liim, otsi teisi, kellele helistada, otsi rattaid, et auto kokku panna. Selle asemel, et teha rattaid, mida teised kasutaksid.



Cainiao küsis: Kuidas kirjutada stsenaariumi?
Vana lind vastas:
1 Probleemi üksikasjad tuleb selgitada. Näiteks: tee kuukooke.
2 Probleemide lahendamise ideed on samuti põhimõtteliselt valmis. Jahu ja vesi, pane täidis peale, auruta.
3 Milliseid käske ja muutujaid kasutada. Lisa viis terat, pane vormi ja pigista.
4 Kirjuta esmalt umbkaudu, kirjuta umbkaudu.
5 Silumine läbitud.
6 Kirjuta üksikasjalikult. Võta arvesse veaolukorda, lisaks veakoodi, veateadet. Eemalda vigadele vastuvõtlik kood, mis pole kergesti ühilduv. Kirjuta koodi ümber, mis ei tööta hästi.
Siiani ei pruugi hea stsenaarium hea välja näha, kuid see peaks olema väga kasulik.
7 Peenelt valmistatud. Refaktoreerimine, taaskasutatud koodilõikude kirjutamine funktsioonideks. Kirjuta muutujate nimed ümber, et inimesed saaksid neist kohe aru. Vorminda kood korralikult ja tee taandus.


K: Millist IDE-d kasutatakse PS1 kirjutamiseks?
A:
Kõige soovitatavam on kasutada Visual Studio Code'i ja PowerShelli pluginat.
Funktsioonid: Koodi viited, automaatne täitmine, koodi vormindamine, taandus tühiku või vahekaardi valimiseks, faili kodeerimise seaded.
On olemas plugin nimega FTP-sync, mis suudab kirjutada PS1 skripte Win'i VSCode'is ja sünkroniseerida need automaatselt Linuxi kataloogiga, kui need salvestatakse.



K: Milliseid tööriistu kasutatakse PS1 silumiseks?
A:
Kõige soovitatavam powergui Life ei kasuta vedurit, isegi kui tegemist on kangelasega, PS skript hüppab samuti ja teatab veast!
VSCODE sobib samuti hästi



K: Milliseid tööriistu kasutate koodivormindamiseks?
A:
Kõik, mis peaks olema taandatud, on süvendatud ja võrdusmärgid joondatakse.

PowerShell ISE + ISE plugin [ISESteroids]

Paigaldus:
Install-moodul -nimi ISESteroids

ISE juhib:
Start-steroidid





K: Milliseid tööriistu kasutate, et muuta koodivärv ilusaks?
A:
1 Kasuta ülaltoodud tööriistu koodi vormindamiseks.
2 Kasuta PowerShellise + Missionary DIY värvide sobitamine 2016. aasta väljaannet.
3 Võta pilt. Maailma kõige meeldivam ja kaunima värviga PowerShelli kood luuakse.

Kõik ülalmainitud IDE-d on hiina keeles.




K: Kuidas ma nimetan stsenaariumi? xxx.ps1
A:
Soovitatav on alustada 1---2 tähega ja ülejäänud puhul kasutada hiina failinime. Näiteks [poiss-sõber varundab kõik vanad files_ ja kustutab .ps1 10 päeva tagant]
Nii kirjuta esmalt [bf] ja seejärel vajuta tab, et skripti nimi lõpetada.




K: Kuidas ma saan lubada PowerShelli skripti täitmise loa?
A:
echo Järgmist koodi saab käivitada CMD-s administraatori õigustega või PowerShellis administraatori õigustega.
Echo, kui kasutan PowerShelli kaugjuhtimispulti. Nii kohalik kui ka kaugmasin peavad olema käivitatud administraatori õigustega.
"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -käsk "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
"C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -käsk "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -käsk "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -käsk "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
paus



K: Millised on veduri (powergui) puudused?
A:
Taustavärvi ei saa määrata.




K: Millised on vscode'i puudused?
A:
$ ja muutuja nimi ei ole sama värvi.
Silumisfunktsioonid on aeglased ja mõnikord ummikus.




K: Millised on ISE puudused?
A:
Sa ei saa valida, kas salvestada või teisendada kodeeringut.
Taande [tühikule], [tab] mõlemale. Teistes tekstiredigeerimistarkvarades kuvatakse taandus.




---------- 8. peatükk Tegelik lahinguharjutus --------------
Grupp 6504748 ja kirjutas selle osa ise.

5. Näide 1: Lülita teenus sisse ja välja
6. Näide 2: Tulemüüri juhtimine (Ava, sulge, reegel)
7. Näide 3: Kehtesta poliitika (näiteks paroolipoliitika)



---------- 9. peatükk Need lisavalikained Kas sind huvitab? --------------
PowerShelli skript, käsurea argumendid edastavad väärtusi ja sidumismuutujate näiteid
http://www.cnblogs.com/piapia/p/5910255.html




Las PowerShell käivitab korraga ainult ühe skripti (näiteks protsessi vastastikuse välistamise näide)
http://www.cnblogs.com/piapia/p/5647205.html



powershelli tegelasliides, powershell ja WPF liides, 2048 mäng
http://www.cnblogs.com/piapia/p/5531945.html


Kaks roomijat PowerShellis
http://www.cnblogs.com/piapia/p/5367556.html



PowerShelli skript: Juhuslike paroolide generaator
http://www.cnblogs.com/piapia/p/5184114.html



PowerShelli rekursiivse algoritmi näide
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html



PowerShelli häälkalkulaator
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html



1 Loetle kõik EFS-i krüpteeritud failid. 2Dekrüpteeri kõik EFS-i krüpteeritud failid
http://www.cnblogs.com/piapia/p/4702514.html
See on tööriist, mis on loodud süsteemiadministraatoritele ja võrguadministraatoritele.
Pärast töötaja töölt lahkumist eeldab tema ketas, et seal on 10 000 faili (kataloogi), millest 3 on EFS-i krüpteeritud failikataloogi. Exploreris on need kolm faili rohelised.
Aga kui klikid ükshaaval (10 000 kataloogile), olenemata sellest, kas see on roheline või mitte, oled väsinud.
Sel ajal kasutab võrguadministraator töötaja WIN-kontot, logib töötaja arvutisse sisse ja kasutab seda skripti, et loetleda kõik EFS-i krüpteeritud failid.


---------- 10. peatükk Palun esitage küsimus--------------
Daamid ja härrad, kui on midagi teatada, lahkuge kohtust ilma millegita.



----------11. peatükk Linuxi peatükk--------------

Missionary: Kui saad paigaldada PowerShelli Linuxi versiooni, vajad ainult PS1 skripte, sh-skripte mitte.
Tõlgendamine:
1 Lühidalt öeldes on bashil ainult süntaks, puuduvad käsud ja teegid.
2 Bashil on ainult 1% süntaksifunktsioone, PowerShell ei saa seda rakendada. See on normaalne, maailmas pole ühtegi lehte täpselt ühesugused.
See tähendab, et sul on vaja ainult PS1 skripti, mitte sh-d.
3 bash on liiga vana, sama funktsioon, Powershelli saab rakendada ja see võib ka aega säästa, näiteks 10 000 tühja forsi, Powershell peab säästma 90% ajast.
4 Õpi kasutama /usr/bin/powershell /usr/bin/bash asemel. Teised Linuxi käsud, torujuhtmed, vana kung fu jne on kasutusel täpselt samamoodi nagu Bashis.
5 Kasuta järk-järgult objektorienteeritud, lihtsaid ja võimsaid PowerShelli käske ja teeke, mitte ajupõletavaid Linuxi käske või mõlemat. ---See on üldprintsiip, üldine ülevaade.


K: Millised Linuxi versioonid saavad PowerShelli paigaldada?
A:
◦Ubuntu 14.04 / 16.04
◦CentOS/RHEL 7 ja uuemad
◦ava SUSE 42 ja kõrgemad
◦Arch Linux (archl inuxil ei ole versiooninumbrit)
◦LINUX dockeri konteiner
◦Linux AppImage konteiner (kaasaskantav rakendus, üks binaar) https://github.com/probonopd/AppImageKit





K: Miks öeldakse, et Win'i käsurea on tugevam kui Linux?
A:
1 win käsud on arenenud objektorienteeritud PowerShelliks. Linux ei tööta veel. Win7-st win2012r2-le lõpeb evolutsioon.

2 Kuulsin, et Unixil on palju Linuxi käske ja see on väga võimas. Aga nüüd ütlen sulle, et powershelli käsud on vähemalt kümme korda rohkem kui Linuxi käsud. Igatahes, ma pole kogu oma elu õppinud.

3 Linux on rohkem graafisõltuv, liiga väheste käsklustega. Ja win-command on palju enamat kui Linux.
3.1 Igas Linuxis on meiliserveri käsud järjest täielikumad kui Exchange'is? Mugavam kui vahetus?
3.2 Linuxi DNS-serveri sidumine ei ole nii mugav kui win-i DNS-käsk. Kas bindil on [käsk] lisada ipv4 A kirje domeeninimele? Kas sa ei sõltu veel veebigraafikast?
Mõned soovitavad kasutada nsupdate'i. See ei ole lihtsalt teksti tegemine ja siis selle käivitamine. Mis on [DNS zone file] asendamisel sed-iga ja seejärel [DNS zone] uuesti laadimisel?

4 Uues win-versioonis või powershellis on kõik [käsk + parameeter]. Ja enamik Linuxist on endiselt [sed tekst].
4.1 Võtame näiteks võrgukaardile määratud IP-aadressi.
nmcli ühendus lisa tüüp ethernet con-name NEW_STATIC ifname eno1234567 ip4 192.168.1.111 gw4 192.168.1.1,
Kas see pole mugavam kui SED-iga ifcfg-eth0 faili kraapimiseks?

5 Iga keel töötleb andmeid ja sama teeb skriptimise puhul. Objektide abil on PowerShell mugavam kui awk. Shenma csv, excel, xml, json
SQL tabel, noSQL tabel. html jne.




K: Kuidas PowerShell rakendab [sed -i "s/mida otsida/asendada /g-ga" failinime]?
A:
@(Get-Content failinimi) -asenda 'aaa','bbb' | Set-Content failinimi $aaa
See tähendab, ava fail, asenda see, salvesta fail.



K: Miks kasutab Linuxis üha vähem inimesi SED-i?
A:
Argument 1: AWK võib asendada SED-i, kuid SED ei saa AWK-d asendada.
sed, see tähendab lihtsalt leida asendus. AWK-l on vaja ja sarnaseid keerukaid protsesse rakendada.

Argument 2: AWK kasutab standardset regulaarset ja sed-i regulaar on sama, mis sed-il, kuid osad on erinevad.
SED-i õppimine tähendab, et kaks ajus omavahel sobimatut tavalist standardite komplekti võitlevad omavahel.



K: Kas siis on õige õppida AWK-d?
A:
PowerShelli õppimine on lihtsam kui AWK õppimine.
PowerShell kasutab [split and then split], [if ja if], where-object, string.substing(), string[-3] jne.
Jaga stringiprobleem kihthaaval. Lihtsam kui kohmakas tavaline.




K: Kas PowerShellis saab kasutada torujuhtmeid ja AWK-d?
A:
PowerShellis saab AWK-i kutsuda, täpselt samamoodi nagu Bashis. Vanad võitluskunstid on täiesti Torino omad.



K: Kuidas rakendada PowerShellis [awk '{print $3}'] funktsiooni?
A:
($line -split "\s+|\t+") [0] #第一行
($line -split "\s+|\t+") [2] #第三行       

Saad sisu /xxx/yyy.txt | foreach-object {$_.split()[2]} #awk '{print $3}'


K: Kuidas rakendada [awk -f a.awk file] funktsiooni PowerShelli abil?
A:
Põhimõtteliselt on see filtreerimisfunktsioon, mis kasutab toru. PowerShellis nimetatakse seda filtriks või filtriks.
PowerShell toetab käskude + toru + filtri kombinatsiooni. Nagu Command 1 | Filter 1 | Command 2 | Filter 2 | Filter 3
filter filter1
{
AWK-laadne funktsionaalsus
}





K: Kas PowerShellis on [xargs]?
A:
Torustikus kasutatav torumuutuja nimetatakse [$psitem] ja selle alias on [$_].
PowerShell kasutab foreach-object ja $_ xargide funktsiooni rakendamiseks.





K: Kas PowerShellis on [<] [<<] number?
A:
Ei.
Võib-olla on [<] sümbol paremalt vasakule inimvastane mõtlemine. Paljud PowerShelli käsud on muudetud vasakult paremale.
Kui get-random < (1..100) ei ole PowerShellis seaduslik, peaks seaduslik olema get-random -inputobject (1..100) või 1. 100 |get-random
Vähem kui 1% kummalistest käskudest [peab] toetuma [<] sümbolile, mida saab saavutada, kutsudes PowerShellis cmd või PowerShellis bash (PowerShell for Linux).
Näiteks $a = bash -x "käsk 1 < käsk 2" #linux
Näiteks $a = cmd -c "käsk 1 < käsk 2" #cmd




K: Kas PowerShellis on käsk expect? Kuidas ühendada Linuxi SSH serveriga Winist PowerShelli abil?
A:
1. Jah. Mõnede kummaliste ja osaliste uste reageerimise vajaduste jaoks on olemas kolmanda osapoole moodulid.
2 Ei. PowerShell ei kasuta käsku expect, vaid kasutab sessiooni.

Kasuta Powershelli + SSH klienditeeki + IP + port + kasutajanimi + parool, et ühendada ühendus ja saata käsud sellele ühendusele. Kood on järgmine:
$connection 1 = New-SSHSession -ComputerName 1.1.1.1 -Port 22 -Credential aaaa #将提示输入密码
$to return = Kutsu-SSHCommand -Käsk {cat /etc/issue} -SSHSession $Connection 1

See standardne funktsionaalsus nagu (MongoDB, mysql, ssh, ftp, http, telnet jne) sisaldab draivereid või mooduleid. PS ja. .netprogram, draiveriühenduse kaudu, saada käske ja aktsepteerida andmeid.
Moodulite või draiverite kasutamise eelised [andmete] saatmiseks ja vastuvõtmiseks on:
Andmed teisendatakse .net objektiks, mis omakorda muudetakse PS objektiks. Muidu on kõik niidid ja PS sekti [objektorienteeritud võitluskunstid] on kõik kasutud.


Võttes näiteks MongoDB, millised on moodulite või draiverite kasutamise eelised käskude saatmiseks? Kes räägib?
Tunnen, et eelised on järgmised:
1 Mitmelõimeline töö. Taustalõim jookseb ega hõiva praegust lõimi.
2. Me võime [poolel teel] sessioonist igal ajal lahti ühendada, käivitada muud PS-koodi, funktsioone ja [naasta sessiooni igal ajal]. Skripte on paindlikumad kirjutada ja neid on lihtne siluda.
3session toob kaasa mitu kasutajat ja erinevatel kasutajatel võivad olla erinevad serveriõigused.




K: Kas powershellis on su, runas käsk? Kuidas käivitada teise kasutaja käsku PowerShelliga?
A:
Ei.
PowerShellis on Linuxi natiivsete käskude ja torujuhtmete käivitamine lihtne. Näiteks:
Sshaaa@127.0.0.1"Täidetud kasutaja AAA õigustega, käsk xxx"  
sshpass -p user_password sshaaa@192.168.1.1



K: Kaks Linuxi masinat SSHD-ga? Kuidas ühendada ja saata käske powershelliga?
A:
Lisaks eeltoodud meetodile saad kasutada ka uue Linuxi sessiooni loomise meetodit. (Ühendatud Linuxist teise SSHD-ga)
Märkus: See meetod nõuab faili /etc/ssh/sshd_config muutmist. Lisa järgmine rida
Alamsüsteem powershell powershell -sshs -NoLogo -NoProfile
Pärast seda taaskäivita SSHD server.
Üksikasjalik juhend on siin:
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting

Käsk:
$connect 2 = New-PSSession -HostName 127.0.0.1 -UserName user006 #手动输入密码或用-KeyFilePath valik
invoke-command -session $connect 2 -scrip{filter}tBlock {new-item ~/ccc.txt}


Kokkuvõte:
Win'i klient, ühendatud Linuxi serveriga. Praegu on kolmanda osapoole moodulid kohustuslikud, muidugi on see moodul ametlikus teegis, kasuta lihtsalt installimoodulit PoshSSH.
Linuxi klient, ühendatud Linuxi serveriga. Pead faili /etc/ssh/sshd_config muutma.
Linuxi klient, ühendatud Win-serveriga. Pead teenuse serveris sisse lülitama. Usalda kliendi serverit.
Win-klient, ühendatud Win-serveriga. Pead teenuse serveris sisse lülitama. Usalda kliendi serverit.


K: Kas PowerShellis on [grep]?
A:
Select-string käsku kasutatakse powershellis.
Ainult kodeerimise vaatenurgast on select-string=smart, grep=stupid + tõsine viga :mrgreen:
Kui on olemas BOM-päis, tunneb select-string automaatselt ära failikodeerimise tüübi.
Kui BOM-päist pole, pole vaja muuta shelli keskkonda nagu linux+grep, ega faile salvestada vastavalt kindlale koodile. Sa pead määrama ainult -encoding parameetri vastavalt failikodeerimisele.
Ja grepil seda funktsiooni ei ole, see tähendab, et on kõva viga [faili kodeerimise tüüpi ei saa määrata].
Muidugi ei ole grep kasutu, grepil on mõned parameetrid, lisaks unikaalsed funktsioonid, select-stringil mitte, siin on grep tugevam kui select-string.



K: Kas PowerShellis on [hindamine]?
A:
Kasuta Invoke-Expressioni stringide täitmiseks PowerShellis.



K: Kas PowerShellis on saba -f? On võimalik faili äsja genereeritud read reaalajas välja anda.
A:
Rahulda D:\a.txt -Saba 10 -Lugemisarv 0 -Oota



K: Soovin kasutada väikest klaviatuuri ja ka 256-värvilist terminali, nii et kuidas peaks xshelli seadistama?
A:
Terminal --- Terminalitüüp --- [putty-256color] või [export TERM=putty-256color]
Terminal --- klaviatuur --- vaikimisi või Linux.

Eterm-256color võib
Gnome-256color ei tööta
konsole-256color ei tööta
Putty-256color
PowerShell Missionary Originaaljagamine 2017-02-15
RXVT-256COLOR ei tööta
screen-256color ei tööta
ST-256COLOR
VTE-256COLOR ei tööta
xterm-256color ei tööta
Sama põhimõte kehtib SecureCRT kohta




K: Kes on võimsam, shell või python?
A:
Igal neist on omad tugevused ja nad võivad üksteist täiendada. Kuid need ei täienda teineteist. Rohkem sellest allpool.


K: Miks sobib PowerShelli Linuxi versioon paremini operatsiooni- ja hoolduspersonalile skriptide kirjutamiseks? (Võrreldes Pythoni Linuxi versiooniga)
A:
1 Pythonil on objektorienteeritud funktsioonid ning saadaval on PowerShelli Linuxi versioon.

2 Pythonil puudub käsureda.
2.1 Python ei saa olla SSH vaikimisi terminal, kuid PowerShell Linuxi jaoks saab. Vaata peatükki: "Kaks Linuxi masinat SSHD-ga? Kuidas ühendada ja saata käske powershelliga? 》
2.2 Shell-käskude (awk, grep jne) kasutamine pythonis on väga tülikas. Pean lisama palju py süntaksit ja koodi. PowerShell Linuxile käivitab awk-käske täpselt nagu Bash.

3 Pythonil pole torusid. Väärtuste edastamine n [käsurea programmide] vahel on väga keeruline. Pean lisama palju py süntaksit ja koodi. PowerShelli Linuxi versioonil on torujuhtmed ja awk-käskude käivitamine on sama mis bash.

4 Pythonil on versioon 2, versioon 3 ei ühildu vähiga! Küsimus. PowerShellil Linuxis sellist probleemi ei ole.
4.1 Need küsimused sisaldavad kodeerimisülesandeid.

Kokkuvõte:
Shell-käsud nagu GREP ei ole kodeerimistoe jaoks head ega nii head kui PowerShelli kodus 4.1 koodiprobleemid. Pluss ülaltoodud 2,3 punkti.
See paneb Linuxi inimesed end ebamugavalt tundma, kuid väga vähesed kasutavad py-s väliseid käske. [py command library] ja [shell command] on surnud ega suuda teineteist täiendada. PS-i Linuxi versioon on teistsugune.




K: Miks öeldakse, et powershell on parem kui shell?
A:
1 PowerShell on objektorienteeritud ja omadused tagastavad otse kättesaadavaid andmeid. See on palju harvem kui tähemärgi skriptimise keeltes (bat, shell), mis nõuavad stringide lahutamist.
Sündinud vähem [sisuga, millest tuleb põgeneda].
2 Stringiotsingu asendus, PowerShellis on meetodeid, mis ei vaja põgenemist, .NET klassis. Näiteks:
[string]$a = 'abc\\def'
$b = $a.asendada('\\','millal')
#返回: [ABC nagu def]
Selleks, et kindlaks teha, kas IP on legitiimne, saate kasutada TryParse() meetodit IPAddress klassis.
Lühidalt, minu soovitus on kasutada võimalikult palju .net meetodeid, kasutada võimalikult vähe regexi või lihtsalt lihtsaid tavalisi meetodeid.
3 PowerShell kasutab ['] põgenemissümbolina. ['] on harvem kui [\] ja palju vähem põgenemissümbolina.
3.1 Andmebaasiskriptide kirjutamisel esineb rohkem konflikte ['].
Näiteks ['table'] on vastuolus ['t]-ga, näiteks ['biao'] on vastuolus ['b]-ga, ja hiljem lahendasin selle ['table']-ga.
4 ps stringi otsing ja asendamine, omab tavalist mootorit, ühildub Linuxiga ja kasutab ka [\] põgenemiseks.
Siiski on olemas spetsiaalne stringi põgenemisfunktsioon [[Regex]::Escape()], mis esmalt põgeneb, seejärel leitakse ja asendatakse ning kood on väga loetav.
$Original string enne escape'i = '\+\&*|]'
$escaped string = [regex]::escape($original string enne escapingut)
-------------
Stsenaariumi näited
[string]$a = 'abc\\def'
$Original string enne põgenemist = '\'
$Escaped string = [regex]::Escape($Original string enne escape'i) #[\]--->[\\]
$b = [Regex]::replace($a,$Escaped string, 'millal')
$b #返回 [ABC Dangdang DEF]
-------------
5 lööki ja torkimist, igal on oma põgenemisvõimalus. Kokkuvõttes on A-l lihtne mõjutada B-d ja A neelab B-d.
Samuti on lihtne tekkida probleeme ['], ["], [\] ja [*] kohtades.
See on nagu kanda kahte kihti pikki pükse, ühe kihi tõmbad ja teine kiht liigub samuti, pead muretsema nende sobivuse pärast.
See on vähk ja seda on raske lahendada.
Aga pigem saab seda probleemi mingil määral vältida. See nõuab, et kesta kirjutanud isik parandaks haisva probleemi.
[Pane awk-kood .awk-faili eraldi, mitte käsureale]
PowerShellil seda probleemi pole, pane see käsureale, pane skripti, aga see ei mõjuta.








Eelmine:.net/C# kasutab atribuute lihtsa AOP rakendamiseks
Järgmine:.net/c# Speedy IP Open Port Scanner v2.0 Ultimate Version
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com