Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 11695|Atbildi: 1

PowerShell darba sākšanas apmācība - v0.3 versija

[Kopēt saiti]
Publicēts 19.04.2017 16:48:30 | | |


---------- 1. nodaļa Windows skriptēšanas vēsture --------------


1 Pirmā skriptu sikspārņu paaudze. Tas sākās ar win95, win98--------- un beidzās ap 2008. gadu. Līdzekļi: Uz rakstzīmēm orientētas komandas ar komandrindu un konveijeru.
2 Otrās paaudzes skripts VBS. Funkcijas: Tikai funkcijas, nodošanas vērtības, zvani.
3 Trešās paaudzes skripta powershell. Sākot ar 2012. gadu, komanda ir pilnībā attīstījusies uz objektu. Piemēram, tasklist un get-process ir atkārtotas riteņa funkcijas: objektorientētas. Mantojot iepriekšējo divu paaudžu skriptu priekšrocības.



J: Kāpēc mācīties PowerShell?
A:
Misionārs atbildēja, ka viņš mācīsies vienu gadu un piecus gadus BAT. Vienkārša sintakse un spēcīgas bibliotēkas funkcijas!
Vienīgais pasaulē, kas atbalsta objektus ar komandām abās cauruļvada pusēs. t.i., objektorientēta komanda 1 | Objektorientēta komanda 2

Windows un Linux ir atšķirīgi:
PowerShell skriptā uz Win,
Atbalsta CR, LF, CRLF ievadi. Atbalstiet vairāku pavedienu un vairāku procesu vienlaicīgumu.
Ir viegli iegult [Text2 skaņa], "Ziņot kapteinim, disks ir pilns".
Grafiskā interfeisa iegulšana ir vienkārša. (Kad uznirstošajā saskarnē tiek lūgts ievadīt lietotājvārdu, paroli, vienu atlasi, vairākkārtēju atlasi utt.) Tās ir Linux skriptu greizsirdība.

PowerShell atšķiras no Python:
PowerShell ir viegli izmantot ķīniešu valodu. Ķīniešu skripta nosaukums, mainīgā nosaukums, komentārs. Ķīniešu vienpēdiņas, ķīniešu dubultpēdiņas.
Automātiski atpazīst GBK, UTF8, Unicode kodējumu. Cauruļvadu atbalsta objekti, par kuriem Python skripti ir greizsirdīgi.



Vienkārša sintakse 1. piemērs: Powershell vienpēdiņas un dubultpēdiņas burvība.
Vienpēdiņas var citēt ar dubultpēdiņām. Un otrādi.
Vienpēdiņas un dubultās pēdiņas var @引用 ar @''.
BAT nedarbojās.


Misionāru stāstītājs:
Es daudz domāju par apmācības dizainu. Vai jūs neizlasījāt vēstures daļu, ko es uzrakstīju, bija ļoti [vienkārša un raupja]? Vēsture tiek veikta ar vienu insultu.
Bet, tā kā es to teicu, tas nav muļķības, es tikai vēlos, lai studenti skaidri pateiktu, ka kopš win7-win2008 skriptu [objektifikācija] ir kļuvusi populāra. Ved uz nākamo objektorientētā skaidrojuma nodaļu.
Jebkurā PS ievadapmācībā jāpiemin atšķirība starp raksturu un objektorientētu. Vienkārši ir lietderīgi berzēt šo tēmu komandrindas vēsturē.

---------- 2. nodaļa Objektorientētās brīnišķīgās --------------
Kas ir objekts, kāpēc tas ir orientēts uz objektu un kāpēc Microsoft pastiprina riteni?

Objektorientēts piemērs 1:
Jautājums: Es ēdu 2,2 ābolus dienā, cik ābolu es ēdu 17 dienās?
A:
Pieejams 2.2 x 17. Ir iespējams izmantot arī i++, ko atbalsta jebkura skriptēšanas valoda.
par ($i = 1; $i -LT 18; $i++)
{
        $Apple = 2,2 + $Apple
        rakstīšana-resursdators $i,$Apple
}

--------------------------------------------
Tiklīdz jautājums mainīsies, es jums nepateikšu dienu skaitu, tikai pateikšu,
Es ēdu 2,2 ābolus dienā, cik ābolu es ēdu no 2017. gada 20. janvāra līdz 20. jūnijam?
$days = ((saņemšanas datums '2017-06-20') - (saņemšanas datums '2017-01-20')).dienas #值151


Es ēdu 2,2 ābolus dienā, cik ābolu es ēdu no 2020. gada 20. janvāra līdz 20. jūnijam?
$days = ((saņemšanas datums '2020-06-20') - (saņemšanas datums '2020-01-20')).dienas #值152

for ($i=(saņemšanas datums '2020-01-20'); $i -lt (saņemšanas datums '2020-06-20'); $i=$i.adddays(1))
{
        $Apple = 2,2 + $Apple
        rakstīšana-resursdators $i,$Apple
}

Secinājums: Ar datuma objektu dienu, stundu utt. skaitīšana ir vienkārša. [for,,i++] ir izplatīts, bet es nekad nedomāju, ka skaitlis i varētu būt datuma tipa.

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



Kādas ir objektorientētas priekšrocības?
Pirms objektorientēšanās mums ir tikai virknes un veseli skaitļi.
1 Ir objekts.
----- [Rakstzīmju tips]-----
Glifam ir system.string, kas ir visvienkāršākais.
System.Text.StringBuilder atmiņa, bieži mainās, lielas virknes

----- [Ciparu tips]-----
system.int32, system.int64, system.decimal, system.double, System.Numerics.BigInteger bezgalīgs vesels skaitlis.
Parasti tiek izmantots int32, decimāldaļa.

Tas, vai 1/3*3 ir vienāds ar 1 vai 0,9999, ir atkarīgs no datu tipa.
----- [Masīvs]-----
sistēmas.masīva masīvs
system.arraylist masīvs bieži mainās, piemēram, vienmēr pārrakstot, pievienojot vai dzēšot, jums tas ir jāizmanto. Ātrums ir salīdzinoši ātrs.
System.Collections.Generic.HashSet dedublē masīvus. Tas pats kā python iestatītais objekts.

-----【Forma】-----
1 komandas izvade. Piemēram, dir, get-process.
2. Rakstot skriptus, mēs izmantojam objektus un atribūtus, lai konstruētu.

----- [Citi] -----
jaukšanas tabulas, faili utt.



2 ir atribūti. Atribūti ir argumenti, un tie ir mazāki par virknēm. Pirms nav atribūtu, mums ir jāfiltrē un jāfiltrē virknes ar [smadzeņu dedzināšanas regulāri], ko sauc par [dedukcijas virkni]. Ja jums ir atribūti, jums tas nav vajadzīgs.
3 Ir veids. Metode ir programma, kods. Nav nepieciešams to pārrakstīt pats. Sikspārnis noteikti nav labs, nav nekādas iespējas, ir arī personisks raksts, neuzticams, neuzdrošinieties to izmantot.
Metodes var būt pašrakstītas ps funkcijas, pašrakstītas metodes ps klasēs.
Metodi, ko jūs rakstāt pats, var īslaicīgi [apvienot] trešās puses klasē.
Metodi, ko jūs rakstāt pats, var īslaicīgi [apvienot] .net klasē.

Kādi ir objektorientētā trūkumi?
Sludinātājs māca powershell cilvēkiem, kas izmanto winxp. Persona teica, ka powershell nav labs, objekts ir pārāk atmiņas ietilpīgs, un viņam ir taisnība.
Cmd es atgriežu 100 failu nosaukumus (virknes) ar dir. PowerShell es izmantoju dir, lai atgrieztu 100 failu objektus, un Powershell aizņem daudz atmiņas.
Bet tagad ir citādi:
1. Nevajadzīgs saturs nedrīkst pastāvēt mainīgajos lielumos. Vai arī iznīciniet to tūlīt pēc lietošanas, lai samazinātu atmiņas lietojumu.
2. Pietiek ar atmiņas kritumu. Tā kā CPU veiktspēja vairs nevar pieaugt, mēs izmisīgi palielinām atmiņu, mēģinot apmainīties ar telpu pret laiku.
3. Mēs vēlamies jaudīgākas funkcijas, un objektorientācija mūsdienās ir visvienkāršākā. Kas nav objektorientēts, py, php, java, .net, c++?

Kopsavilkuma:
1 Objekti ir lielāki un atmiņas ietilpīgāki nekā virknes.
2. Ir vairāk objektu orientācijas metožu un spēcīgāku funkciju.
3 atribūti ir mazāki par virknes granularitāti, kas ir ļoti ērti lietojama. Izvairījāmies no [traka smadzeņu dedzināšanas regulāras izmantošanas, lai filtrētu] stīgas!


=== Traka smadzeņu dedzināšanas regulāro lietotāju izmantošana, lai filtrētu piemērus, ping noklusējuma vārtejas sikspārņu versija ===
@echo nobīde vietējā līmenī nodrošina aizkavētu paplašināšanos
Echo meklē noklusējuma vārteju...

/f "usebackq delims=" %%i in ('ipconfig /all') do (
echo %%i|find /i "gateway">nul|| echo %%i|atrast "noklusējuma vārteja" >nul
if "!errorlevel!" =="0" (
for /f "tokens=2 delims=:" %%a in ("%%i") do for /f "delims= " %%m in ("%%a") do set ipgate=%%m
)
)

Atbalss noklusējuma vārteja ir: !ipgate!
=========== ping noklusējuma vārteja.ps1============
$default vārteja = (get-netroute -DestinationPrefix 0.0.0.0/0). Nākamais Hop
& ping.exe $ Noklusējuma vārteja

# testa savienojums $ noklusējuma vārteja
=======================






J: Pat ja objektorientēts ir tik labs, no kurienes šie objekti nāk?
A: No .net bibliotēkas.


---------- 3. nodaļa Ievads .NET --------------


J: Cik versiju filiāļu ir .NET Core?
A:
Pašlaik ir trīs versijas.
.NET 2.0 jaunākā .NET 3.51 versija
.NET 4.0 jaunākā .NET 4.70 versija
.NET Core 1.x Jaunākā .NET 1.2 versija Apple sistēmām, Linux sistēmām un iegultajām sistēmām.
.NET Core 2.x Jaunākā .NET 2.0 versija Apple sistēmām, Linux sistēmām un iegultajām sistēmām.



J: Cik funkcionālo filiāļu ir .net?
A:
Darbvirsmas filiāle .NET. WinForm. Darbvirsmas logu izstrādei.
Skaņu bibliotēka
asp.net .NET un .NET Core. Tīmekļa servera funkciju bibliotēka. Izmanto, lai atvērtu B/S tīmekļa serveri.
F# .NET un .NET Core. Satur matemātikas bibliotēkas, trigonometrisko funkciju bibliotēkas utt.
PowerShell .NET un .NET Core. Satur kopīgus sistēmas pārvaldības interfeisus, piemēram, skriptu failus.
Linux
◦Ubuntu 14.04 \ 16.04
◦CentOS/RHEL 7 un jaunāka versija
◦atvērts SUSE 42 un jaunāks
◦Arch Linux (archl inux nav versijas numura)
◦LINUX doku konteiners
◦Linux AppImage konteiners (pārnēsājama lietojumprogramma viena binārā) https://github.com/probonopd/AppImageKit



MAC OS X
◦OS X 10.11


J: Kā .NET programma (C# programma) izveido savienojumu ar MySQL serveri?
A:
Dodieties uz mysql oficiālo vietni, lai lejupielādētu .NET valodas savienotāju.
mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll
Pievienojiet MySql.Data klasi .net un pievienojiet datu bāzes interfeisu.



Secinājums:
WinXP mašīna vispirms instalējiet .net 3.51, win7 un win2008 mašīnu, vispirms instalējiet .net 4.62 vai jaunāku.

.net pastāv jau daudzus gadus, un nav daudz programmatūras, kas atbalsta .net nekā Java. Visas .net filiāles, saskarnes (datu bāzes, WeChat utt.). )
Šīs dlls, šīs bibliotēkas, powershell var saukt. Tas ir tieši tāds pats kā exe, kas rakstīts C#.


J: Kādas ir PowerShell bibliotēkas (moduļi) papildus .NET filiāles interfeisam?
A:
Lūdzu, skatiet nākamo nodaļu

---------- 4. nodaļa Bieži izmantotās iebūvētās bibliotēkas, ārējās bibliotēkas un trešo pušu bibliotēkas programmā PowerShell --------------

Misionāru palīdzība:
Šo nodaļu nevar apspriest, bet tas ir tikai bibliotēku un rokasgrāmatu saraksts. Atzīmējiet šo nodaļu ar grāmatzīmi. Apskatot šīs bibliotēkas, jūs zināt, ko PowerShell var darīt.



Win2012 manuālā adrese: (visbiežāk izmantotais reklāmas modulis)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx
AD lietotāju grupu pārvaldība, DHCP, DNS, printeris, failu koplietošana, IIS, disks, NIC,



Apmaiņa 2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx
Active Directory 12         
Surogātpasta un ļaunprātīgas programmatūras novēršana 59  
Klientu piekļuve 100
Paplašinājuma aģents 4
E-pasta adreses un adrešu grāmatas 37
Federācija un hibrīda konfigurācija  
Augsta pieejamība  
Pasta plūsma  
Pastkastīte  
Pastkastu datu bāze  
Pastkastes serveris  
Pārvietošana un migrēšana  
Organizācija  
Atļaujas  
Politika un atbilstība  
Drošība  
Servera darbspēja, pārraudzība un veiktspēja  
Koplietošana un sadarbība  
Vienotais ziņojums  
Lietotāji un grupas  



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 virtuālās mašīnas, AWS, Microsoft virtuālās mašīnas, Azure, Hyper-V, VMware vSphere un uzņēmuma līmeņa virtuālās mašīnas.


Klienti:
Pakalpojumi, procesi, žurnāli, reģistri, failu katalogi, attālināta pārvaldība. Uzdevumi ar laiku.



Internets:
FTP, pasts, SSH klienta spraudnis Linux servera savienojumam.


Teksts:
XML, HTML, CVS, JSON, EXCEL utt.


Teksts 2 balss


Grafiskais interfeiss.


Microsoft skriptēšanas centrs
https://gallery.technet.microsoft.com/scrip{过滤}tcenter/


PowerShell programmatūras avots oficiālā vietne --- oficiālā PowerShell bibliotēka.
https://www.powershellgallery.com


Pārējās Niu x bibliotēkas ir visas github. Turklāt misionāri regulāri publicē [Hidden Foot Pavilion] [Niu x Magic Weapon], kas ir noderīga PowerShell trešās puses bibliotēka.


---------- 5. nodaļa Iesācējiem jāiemācās palīdzēt izmantot komandas--------------


J: Kā uzzināt PowerShell versiju?
A:
$PSVersionTable



J: Es nezinu moduli, kā to atrast?
A:
get-module -SarakstsPieejams


J: Kā es varu atrast komandas, ja es zinu tikai daļu no tām?
A:
saņemt komandu *serviss*



J: Es zinu komandu, bet nezinu, kādi parametri ir komandā, kā uzskaitīt parametrus?
A:
saņemt palīdzību rakstīt-resursdators -Parametrs *
show-command write-host


J: Es zinu parametru, bet nezinu, kurai komandai ir šis parametrs, kā es varu atrast komandu?
A:
get-command -ParameterName kodējums



J: Kā saņemt palīdzību ar komandu no komandrindas?
A:
Palīdzības saņemšanas datums

-Piemēri komandu piemēri
-tiešsaistes tiešsaistes rokasgrāmata




J: Es nezinu komandas atribūta metodi (es nezinu objektu), kā to atrast?
A:
"ABC" | iegūt biedru
datums | iegūt biedru



J: Kur ir ķīniešu .NET rokasgrāmata?
A:
msdn。 Visvienkāršākie virknes rekvizīti un metodes ir atrodamas rokasgrāmatā.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx



---------- 6. nodaļa Ievads kopīgajās komandās --------------

Pirmā komanda, kas jāapgūst, ir dir
J: Kāpēc izmantot powershell dir [t.i., Get-ChildItem] cmd dir vietā?
A:
Objektorientēta, spēcīga metode un daudzi atribūti.
$file = dir a:\pscode\temp183\aaa.txt
$file. Pilns vārds #返回全路径属性
$file. BaseName #返回文件名属性
$file. Pagarinājuma #返回扩展名属性
$file. LastWriteTime #返回最后写入时间属性



Pirmā sintakse, kas jāapgūst, ir masīva sintakse. $a = @(xxx komanda)
J: Dažreiz jums ir jāizmanto [rakstzīmju ārējās komandas], lai sadalītu atgrieztās vērtības masīvos pēc uzvedības vienībām.
A:
$a = @(ipconfig)
$a[8] #第9行


Iegūt bērnupriekšmeta lietošana:
Pievienotie parametri PowerShell 3.0 un jaunākās versijās

get-childitem d:\xxx -faila #过滤, tikai izvades faili
-Direktoriju filtrēšana, izvade tikai direktoriji
-Slēpta filtrēšana, tikai izvade slēpta


J: Atvērt failu, segmentēt pēc uzvedības, ievietot masīvā?
A:
$a = Iegūt saturu a:\pscode\temp183\aaa.txt -ReadCount 0



J: Atveriet failu kā lielu virkni un saglabājiet visu mainīgo?
A:
$a = Iegūt saturu a:\pscode\temp183\aaa.txt -raw


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


J: Kā palaist komandas fonā?
A:
Senos laikos ir cmd / c "komanda".
Tagad ir powershell /c "komanda" vai powershell -c "komanda",
powershell -fails "script.ps1" -arguments 1 aaaa -parametrs 2 1234
start-process -ceļš xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'


J: Es vēlos palaist skriptu ar citu lokālo lietotāju, bet powershell nav runas. exe līdzīgas komandas?
A:
PowerShell ir dažādas sesijas.
ip + ports + lietotājvārds + parole = sesija, man tikai jāmaina lietotājvārds, jāmaina parole, un jūs varat mainīt atļaujas. Jo atļaujas ir saistītas ar lietotāju.
Tāpat man ir jāizveido tikai n sesijas, lai izmantotu, nepārslēdzot lietotājus.
Vissvarīgākajai jaunajai pssesijai ir parametrs -Credential, ievadiet lietotāja paroli, kas nav tāda pati kā runas. Vai exe ir tas pats? Kas vēl ir SmbSession?
Tāpēc es nedomāju, ka ir nepieciešams izmantot runas powershell. exe。
Jums vienkārši jāizmanto šīs komandas ar sesiju un akreditācijas datiem, vai ne?

Pārbaudiet komandas ar nosaukumu [Credential] parametra nosaukumā:
get-command -ParameterName akreditācijas dati

Skatīt komandas ar rakstzīmi [session] komandā:
saņemt komandu *sesija*


J: Kā nosūtīt e-pastu, izmantojot PowerShell?
A:
Sūtīšanas pasta ziņojums -Tēma 'Tēma'
-No "jūsu hotmail konta @hotmail.com" -Uz "jūsu QQ e-pastu @qq.com" '
-SmtpServer "smtp.live.com" -ports 587 -useSsl -credential "jūsu Hotmail konts @hotmail.com" '
-Pielikumi $Attachments -BodyAsHTML -ķermenis $HTML e-pasta saturu

Piezīme:
1 lietošanaxxx@QQ.com+ Jūsu QQ parole + iepriekš minētā komanda E-pasta nosūtīšana nedarbojas. Jo QQ paroļu drošībai Tencent prasa neatkarīgas e-pasta paroles.  
2 Sūtīšana no QQ pastkastes pēc noklusējuma nav iespējama. Tas ir izslēgts, un iestatījumos ir jāieslēdz SMTP.
3 PowerShell 3.0 un jaunākas versijas atbalsta tikai porta parametrus. Lai iegūtu win7, vispirms jāinstalē jaunākā PS versija




J: Monitora uzvarētājs CPU, disks, tīkls, IO utt.
A:
Veiktspējas pārraugs vai
Get-Counter iegūst veiktspējas skaitītāja datus gan no lokāliem, gan attāliem datoriem.

J: Kā es varu redzēt, kādas skaitītājas preces ir pieejamas?
A:
Tas viss ir rokasgrāmatā.
Pārbaudiet, kādas ir galvenās lietošanas kategorijas:
Get-Counter -ListSet * | Kārtot objektu CounterSetName | Formatēšanas tabulas CounterSetName


Piemēram, es tagad zinu, ka diska kategorija ir (PhysicalDisk), un pēc tam pārbaudiet diska apakškategorijas, izmantojiet:
(Get-Counter -ListSet PhysicalDisk). Ceļi




J: Kā es varu apskatīt žurnālus?
A:
Notikumu skatītājs vai
iegūt notikumu žurnālu



J: Kā izpildīt virknes?
A:
$cmd 1 = 'xxxx'
Izsaukuma izteiksme $cmd 1


Nu, mēs esam daudz uzzinājuši par atsevišķām komandām, apskatīsim Powershell skriptu izpildi.


---------- 7. nodaļa PS1 skriptēšana, atkļūdošana un palaišana --------------
Skripts ir komandu paziņojumu kombinācija un pārklājums. Skripts ir līme, dodieties apkārt, meklējot citus, lai zvanītu, meklējiet riteņus, lai saliktu automašīnu. Tā vietā, lai izgatavotu riteņus, lai citi to izmantotu.



Cainiao jautāja: Kā uzrakstīt scenāriju?
Vecais putns atbildēja:
1 Jānoskaidro problēmas detaļas. Piemēram: pagatavojiet mēness kūkas.
2 Problēmu risināšanas idejas arī būtībā ir pabeigtas. Milti un ūdens, ielieciet pildījumu, tvaiku.
3 Kādas komandas un mainīgie izmantojami. Pievienojiet piecus kodolus, ielieciet tos veidnē un izspiediet.
4 Vispirms rakstiet aptuveni, rakstiet aptuveni.
5 Atkļūdošana pagāja.
6 Rakstiet detalizēti. Apsveriet kļūdas situāciju, kā arī kļūdas kodu, kļūdas ziņojumu. Noņemiet kļūdu pakļauto kodu, kas nav viegli saderīgs. Pārrakstiet kodu, kas nedarbojas labi.
Līdz šim labs skripts var neizskatīties labi, bet tam vajadzētu būt ļoti noderīgam.
7 Smalki izstrādāts. Pārveidošana, atkārtoti izmantoto koda fragmentu rakstīšana funkcijās. Pārrakstiet mainīgo nosaukumus, lai lietotāji tos varētu saprast uzreiz. Labi formatējiet kodu un veiciet atkāpi.


J: Kāds IDE tiek izmantots, lai rakstītu PS1?
A:
Visieteicamākais ir izmantot Visual Studio Code, kā arī PowerShell spraudni.
Funkcijas: Koda uzvednes, automātiskā pabeigšana, koda formatēšana, atkāpe, lai izvēlētos atstarpi vai cilni, failu kodēšanas iestatījumi.
Ir spraudnis ar nosaukumu FTP-sync, kas var rakstīt PS1 skriptus Win VSCode un automātiski sinhronizēt tos ar Linux direktoriju, kad tie tiek saglabāti.



J: Kādi rīki tiek izmantoti PS1 atkļūdošanai?
A:
Visieteicamākais powergui life neizmanto lokomotīvi, pat ja tas ir varonis, PS skripts arī lēks un ziņos par kļūdu!
vscode ir arī labi



J: Kādus rīkus izmantojat koda formatēšanai?
A:
Viss, kas būtu jāievelk, ir ievilkts, un vienādības zīmes ir izlīdzinātas.

PowerShell ISE + ISE spraudnis [ISESteroids]

Uzstādīšana:
Install-Module -Name ISESteroids

ISE darbojas:
Sākuma steroīdi





J: Kādus rīkus jūs izmantojat, lai padarītu koda krāsu skaistu?
A:
1 Izmantojiet iepriekš minētos rīkus, lai formatētu kodu.
2 Izmantojiet PowerShellise + Missionary DIY krāsu saskaņošana 2016. gada izdevums.
3 Paņemiet attēlu. Tiek ražots pasaulē patīkamākais un skaistākais PowerShell kods.

Visi iepriekš minētie IDE ir ķīniešu valodā.




J: Kā nosaukt skriptu? xxx.ps1
A:
Ieteicams sākt ar 1---2 burtiem un pārējiem izmantot ķīniešu faila nosaukumu. t.i. [bf dublē visus vecos files_ un izdzēš .ps1 no 10 dienām]
Tādā veidā vispirms ierakstiet [bf] un pēc tam nospiediet tab, lai pabeigtu skripta nosaukumu.




J: Kā iespējot PowerShell skripta izpildes atļauju?
A:
atbalss Šo kodu var palaist cmd ar administratora tiesībām vai PowerShell ar administratora tiesībām.
atbalss, ja izmantojat PowerShell Remoting tālvadības pulti. Gan lokālajam datoram, gan attālajam datoram ir jābūt palaistam ar administratora tiesībām.
"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -komanda "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
"C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -komanda "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -komanda "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
Pauze



J: Kādi ir lokomotīves (powergui) trūkumi?
A:
Nevar iestatīt fona krāsu.




J: Kādi ir vscode trūkumi?
A:
$ un mainīgā nosaukums nav vienādas krāsas.
Atkļūdošanas funkcijas ir lēnas un dažreiz strupceļā.




J: Kādi ir ISE trūkumi?
A:
Kodējumu nevar saglabāt vai konvertēt.
Atkāpe uz [atstarpe], [tabulators] abiem. Citā teksta rediģēšanas programmatūrā tiek parādīts atkāpe.




---------- 8. nodaļa Faktiskais kaujas treniņš --------------
Grupa 6504748 un uzrakstīja šo daļu pati.

5. 1. piemērs: pakalpojuma ieslēgšana un izslēgšana
6. 2. piemērs: kontrolēt ugunsmūri (atvērt, aizvērt, kārtot)
7. 3. piemērs: iestatiet politiku (piemēram, paroļu politika)



---------- 9. nodaļa Šie papildu izvēles kursi jūs interesē? --------------
PowerShell skripta, komandrindas argumentu nodošanas vērtību un saistīšanas mainīgo piemēri
http://www.cnblogs.com/piapia/p/5910255.html




Ļaujiet powershell vienlaikus palaist tikai vienu skriptu (procesa savstarpējās izslēgšanas piemērs)
http://www.cnblogs.com/piapia/p/5647205.html



powershell rakstzīmju interfeiss, powershell plus WPF interfeiss, 2048 spēle
http://www.cnblogs.com/piapia/p/5531945.html


Divas rāpuļprogrammas programmā PowerShell
http://www.cnblogs.com/piapia/p/5367556.html



PowerShell skripts: nejaušs paroļu ģenerators
http://www.cnblogs.com/piapia/p/5184114.html



PowerShell rekursīvā algoritma piemērs
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html



PowerShell balss kalkulators
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html



1 Uzskaitiet visus EFS šifrētos failus. 2Atšifrējiet visus EFS šifrētos failus
http://www.cnblogs.com/piapia/p/4702514.html
Tas ir rīks, kas rakstīts sistēmas administratoriem un tīkla administratoriem.
Pēc tam, kad darbinieks atstāj darbu, viņa disks pieņem, ka ir 10 000 failu (direktoriju), no kuriem ir 3 failu direktoriji, kurus šifrē EFS. Pārlūkprogrammā Explorer šie trīs faili ir zaļi.
Bet, ja jūs noklikšķināsiet uz (10 000 katalogu) pa vienam, neatkarīgi no tā, vai tas ir zaļš vai nē, jūs būsiet izsmelts.
Šobrīd tīkla administrators izmanto darbinieka WIN kontu, piesakās darbinieka datorā un izmanto šo skriptu, lai uzskaitītu visus EFS šifrētos failus.


---------- 10. nodaļu, lūdzu, uzdodiet jautājumu--------------
Dāmas un kungi, ja ir kaut kas, par ko ziņot, atstājiet tiesu bez nekā.



----------11. nodaļa Linux nodaļa--------------

Misionārs: Kamēr jūs varat instalēt PowerShell Linux versiju, jums ir nepieciešami tikai ps1 skripti, bez sh skriptiem.
Interpretācija:
1 Īsāk sakot, bash ir tikai sintakse, bez komandām un bibliotēkām.
2 bash ir tikai 1% sintakses funkcijas, PowerShell to nevar īstenot. Tas ir normāli, pasaulē nav divu vienādu lapu.
Tas nozīmē, ka jums ir nepieciešams tikai ps1 skripts, bez sh.
3 bash ir pārāk vecs, to pašu funkciju, var ieviest Powershell, un tas var arī ietaupīt laiku, piemēram, 10,000 tukšas vietas, Powershell ir jāietaupa 90% laika.
4 Iemācieties lietot /usr/bin/powershell, nevis /usr/bin/bash. Citas Linux komandas, cauruļvadi, vecais kung fu utt., tiek izmantoti tieši tāpat kā bash.
5 Pakāpeniski izmantojiet objektorientētas, vienkāršas un jaudīgas PowerShell komandas un bibliotēkas, nevis smadzeņu dedzināšanas Linux komandas. ---Tas ir vispārējais princips, vispārējais izklāsts.


J: Kuras Linux versijas var instalēt PowerShell?
A:
◦Ubuntu 14.04 / 16.04
◦CentOS/RHEL 7 un jaunāka versija
◦atvērts SUSE 42 un jaunāks
◦Arch Linux (archl inux nav versijas numura)
◦LINUX doku konteiners
◦Linux AppImage konteiners (pārnēsājama lietojumprogramma viena binārā) https://github.com/probonopd/AppImageKit





J: Kāpēc tiek teikts, ka uzvaras komandrinda ir spēcīgāka par linux?
A:
Komandas 1 uzvarā ir attīstījušās par objektorientētu PowerShell. Linux vēl nedarbojas. No win7 līdz win2012r2 evolūcija beidzas.

2 Es mēdzu dzirdēt, ka Unix ir daudz Linux komandu un tas ir ļoti jaudīgs. Bet tagad es jums saku, ka powershell komandas ir vismaz desmit reizes vairāk nekā linux komandas. Jebkurā gadījumā es neesmu mācījies visu savu dzīvi.

3 Linux ir vairāk atkarīgs no grafika, ar pārāk maz komandu. Un uzvaras komanda ir daudz vairāk nekā linux.
3.1 Jebkurā Linux komandās pasta serverī ir arvien pilnīgākas nekā apmaiņa? Ērtāk nekā apmaiņa?
3.2 Linux DNS servera saistīšana nav tik ērta kā DNS komanda win. Vai bind ir [komanda], lai domēna nosaukumam pievienotu ipv4 A ierakstu? Vēl neesat atkarīgs no tīmekļa grafikas?
Daži cilvēki saka, ka jāizmanto nsupdate. Tas nav par teksta izveidi un pēc tam teksta palaišanu. Kāda ir atšķirība starp [DNS zonas faila] aizstāšanu ar sed un pēc tam [DNS zonas] atkārtotu ielādi?

4 Jaunajā win versijā vai powershell tas viss ir [komanda + parametrs]. Un lielākā daļa Linux joprojām ir [sed teksts].
4.1 Kā piemēru ņemiet tīkla kartei piešķirto IP adresi.
nmcli savienojums pievienot tipu ethernet con-name NEW_STATIC ifname eno1234567 ip4 192.168.1.111 gw4 192.168.1.1,
Vai tas nav ērtāk nekā izmantot sed, lai nokasītu ifcfg-eth0 failu?

5 Jebkura valoda apstrādā datus, tāpat arī skriptēšana. Ar objektu palīdzību PowerShell ir ērtāk nekā awk. Shenma csv, excel, xml, json
SQL tabula, nosql tabula. HTML utt.




J: Kā PowerShell ievieš [sed -i "s/ko meklēt/aizstāt ar /g" faila nosaukumu]?
A:
@(Get-Content faila nosaukums) -aizstāt 'aaa','bbb' | Set-Content faila nosaukums $aaa
Tas ir, atveriet failu, nomainiet to, saglabājiet failu.



J: Kāpēc arvien mazāk cilvēku izmanto SED operētājsistēmā Linux?
A:
1. arguments: AWK var aizstāt SED, bet SED nevar aizstāt AWK.
sed, tas ir, vienkārši atrodiet aizstāšanu. AWK ir un tamlīdzīgi, lai īstenotu sarežģītu apstrādi.

2. arguments: AWK izmanto standarta regulāro, un sed regulārais ir tāds pats kā sed, bet daļas ir atšķirīgas.
SED mācīšanās nozīmē, ka divi nesaderīgu regulāru standartu komplekti smadzenēs cīnās viens ar otru.



J: Tātad ir pareizi mācīties AWK?
A:
PowerShell apguve ir vieglāka nekā AWK apguve.
PowerShell izmanto [sadalīt un pēc tam sadalīt], [ja un ja], where-object, string.substing(), string[-3] utt.
Sadaliet virknes problēmu slāni pa slānim. Vienkāršāk nekā neērti parasti.




J: Vai cauruļvadus un AWK var izmantot PowerShell?
A:
Jūs varat izsaukt awk PowerShell, tieši tāpat kā Bash. Vecās cīņas mākslas ir pilnīgi Turīna.



J: Kā ieviest funkciju [awk '{print $3}'] programmā PowerShell?
A:
($line -split "\s+|\t+") [0] #第一行
($line -split "\s+|\t+") [2] #第三行       

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


J: Kā īstenot funkciju [awk -f a.awk file], izmantojot PowerShell?
A:
Būtībā tā ir filtrēšanas funkcija, kas izmanto cauruli. Programmā PowerShell to sauc par filtru vai filtru.
PowerShell atbalsta komandas + caurules + filtra kombināciju. Kā komandā 1 | Filtrs 1 | 2. komanda | Filtrs 2 | 3. filtrs
filtra filtrs1
{
AWK līdzīga funkcionalitāte
}





J: Vai PowerShell ir [xargs]?
A:
Cauruļvadā izmantoto cauruļu mainīgo sauc par [$psitem], un tā aizstājvārds ir [$_].
PowerShell izmanto foreach-object un $_, lai īstenotu xargs funkciju.





J: Vai PowerShell ir [<] [<<] numurs?
A:
Nē.
Varbūt [<] simbols no labās uz kreiso pusi ir anticilvēciska domāšana. Daudzas PowerShell komandas ir mainītas no kreisās uz labo pusi.
Ja get-random < (1..100) nav likumīgs programmā PowerShell, juridiskajam jābūt get-random -inputobject (1..100) vai 1. 100 |iegūt nejauši
Mazāk nekā 1% dīvainu komandu [jāpaļaujas] uz simbolu [<], ko var panākt, izsaucot cmd PowerShell vai bash (PowerShell for Linux) PowerShell.
Piemēram, $a = bash -x "komanda 1 < komanda 2" #linux
Piemēram, $a = cmd -c "komanda 1 < komanda 2" #cmd




J: Vai PowerShell ir gaidāma komanda? Kā izveidot savienojumu ar Linux SSH serveri no Win ar PowerShell?
A:
1. Jā. Dažām dīvainām un daļējām durvju reakcijas vajadzībām ir trešo pušu moduļi.
2 Nē. PowerShell neizmanto komandu expect, bet izmanto sesiju.

Izmantojiet Powershell + SSH klienta bibliotēku + IP + portu + lietotājvārdu + paroli, lai apvienotu savienojumu un nosūtītu komandas šim savienojumam. Kods ir šāds:
$connection 1 = New-SSHSession -ComputerName 1.1.1.1 -Port 22 -Credential aaaa #将提示输入密码
$to return = Invoke-SSHCommand -Command {cat /etc/issue} -SSHSession $Connection 1

Šai standarta funkcionalitātei, piemēram, (MongoDB, mysql, ssh, ftp, http, telnet utt.), ir draiveri vai moduļi. ps un. .netprogram, izmantojot draivera savienojumu, sūtiet komandas un pieņemiet datus.
Moduļu vai draiveru izmantošanas priekšrocības [datu] sūtīšanai un saņemšanai ir šādas:
Dati tiks pārveidoti par .net objektu, kas savukārt tiks pārveidots par PS objektu. Pretējā gadījumā tas viss ir stīgas, un PS sektas [objektorientētās cīņas mākslas] ir bezjēdzīgas.


Ņemot MongoDB kā piemēru, kādas ir moduļu vai draiveru izmantošanas priekšrocības komandu nosūtīšanai? Kas runā?
Es uzskatu, ka ieguvumi ir:
1 Daudzpavedieni. Fona pavediens darbojas un neaizņem pašreizējo pavedienu.
2. Mēs jebkurā laikā varam [atvienoties pusceļā] no sesijas, izpildīt citu PS kodu, funkcijas un [jebkurā laikā atgriezties sesijā]. Skripti ir elastīgāki rakstāmi un viegli atkļūdojami.
3session piesaista vairākus lietotājus, un dažādiem lietotājiem var būt dažādas servera atļaujas.




J: Vai powershell ir su, runas komanda? Kā palaist cita lietotāja komandu ar PowerShell?
A:
Nē.
PowerShell Linux vietējo komandu un cauruļvadu palaišana ir vienkārša. Piemēram:
sshaaa@127.0.0.1"Izpildīts ar lietotāja AAA privilēģijām, komanda xxx"  
sshpass -p user_password sshaaa@192.168.1.1



J: Divas Linux mašīnas ar SSHD? Kā izveidot savienojumu un nosūtīt komandas ar powershell?
A:
Papildus iepriekš minētajai metodei varat izmantot arī jaunas Linux sesijas izveides metodi. (Savienots no Linux ar citu SSHD)
Piezīmes: Šī metode prasa rediģēt failu /etc/ssh/sshd_config. Pievienot šādu rindu
Apakšsistēma powershell powershell -sshs -NoLogo -NoProfile
Pēc tam restartējiet SSHD serveri.
Detalizēta rokasgrāmata ir šeit:
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting

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


Kopsavilkuma:
Win klients, savienots ar Linux serveri. Pašlaik ir nepieciešami trešo pušu moduļi, protams, tas ir modulis oficiālajā bibliotēkā, vienkārši izmantojiet instalēšanas moduli PoshSSH.
Linux klients, savienots ar Linux serveri. Jums ir jārediģē fails /etc/ssh/sshd_config.
Linux klients, savienots ar Win serveri. Jums ir jāieslēdz pakalpojums serverī. Uzticieties klienta serverim.
Win klients, savienots ar Win serveri. Jums ir jāieslēdz pakalpojums serverī. Uzticieties klienta serverim.


J: Vai PowerShell ir [grep]?
A:
Select-string komanda tiek izmantota powershell.
Tikai no kodēšanas viedokļa select-string=smart, grep=stupid + ir smags trūkums :mrgreen:
Ja ir MK galvene, atlases virkne automātiski atpazīst faila kodējuma tipu.
Ja nav MK galvenes, nav nepieciešams mainīt čaulas vidi, piemēram, linux+grep, un nav nepieciešams saglabāt failus saskaņā ar noteiktu kodu. Jums ir jānorāda tikai parametrs -encoding atbilstoši faila kodējumam.
Un grep nav šīs funkcijas, tas ir, ir smags trūkums [nevar norādīt faila kodējuma tipu].
Protams, grep nav bezjēdzīgi, grep ir daži parametri, tam ir papildu unikālas funkcijas, select-string nav, šeit grep ir spēcīgāks par select-string.



J: Vai PowerShell ir [eval]?
A:
Izmantojiet Invoke-Expression, lai izpildītu virknes programmā PowerShell.



J: Vai PowerShell ir astes -f? Ir iespējams izvadīt jaunģenerētās faila rindas reāllaikā.
A:
Iegūt saturu D:\a.txt -Astes 10 -ReadCount 0 -Gaidīt



J: Es vēlos izmantot nelielu tastatūru un arī 256 krāsu termināli, tad kā būtu jāiestata xshell?
A:
Termināļa --- termināļa tips --- [putty-256color] vai [export TERM=putty-256color]
Terminālis --- tastatūra --- noklusējuma vai Linux.

Eterm-256color var
gnome-256color nedarbojas
konsole-256color nedarbojas
Špaktele-256krāsa
PowerShell misionārs Oriģināls Dalīties 2017-02-15
RXVT-256COLOR nedarbojas
screen-256color nedarbojas
ST-256KRĀSA
VTE-256COLOR nedarbojas
xterm-256color nedarbojas
Tas pats princips attiecas uz SecureCRT




J: Kurš ir spēcīgāks, čaula vai pitons?
A:
Katram ir savas stiprās puses un tas var papildināt viens otru. Bet tie nav savstarpēji papildinoši. Vairāk par to zemāk.


J: Kāpēc PowerShell Linux versija ir piemērotāka ekspluatācijas un apkopes personālam, lai rakstītu skriptus? (Salīdzinot ar Python Linux versiju)
A:
1 Python ir objektorientētas funkcijas, un ir pieejama PowerShell Linux versija.

2 Python nav komandrindas.
2.1 Python nevar būt SSH noklusējuma terminālis, bet PowerShell for Linux var. Skatiet nodaļu: "Divas Linux mašīnas ar SSHD? Kā izveidot savienojumu un nosūtīt komandas ar powershell? 》
2.2 Čaulas komandu (awk, grep utt.) izmantošana python ir ļoti apgrūtinoša. Nepieciešams pievienot daudz py sintakses un koda. PowerShell for Linux palaiž awk komandas tāpat kā bash.

3 python nav cauruļu. Ir ļoti apgrūtinoši nodot vērtības starp n [komandrindas programmām]. Nepieciešams pievienot daudz py sintakses un koda. PowerShell Linux versijai ir cauruļvadi, un awk komandu palaišana ir tāda pati kā bash.

4 Python ir 2. versija, 3. versija nav saderīga ar vēzi! Jautājums. PowerShell for Linux šādas problēmas nav.
4.1 Šie jautājumi satur kodēšanas problēmas.

Secinājums:
Čaulas komandas, piemēram, GREP, nav piemērotas kodēšanas atbalstam, nav tik labas kā 4.1 kodēšanas problēmas iepriekš PowerShell mājās. Plus iepriekš minētie 2,3 punkti.
Tas liek Linux cilvēkiem justies neērti, bet ļoti maz cilvēku izmanto ārējās komandas py. [py komandu bibliotēka] un [čaulas komanda] ir miruši un būtībā nevar papildināt viens otru. PS Linux versija ir atšķirīga.




J: Kāpēc tiek teikts, ka powershell ir labāks par čaulu?
A:
1 PowerShell ir objektorientēts, un rekvizīti atgriež tieši pieejamos datus. Tas ir daudz retāk nekā rakstzīmju skriptēšanas valodās (sikspārnis, čaula), kurās nepieciešami virknes atskaitījumi.
Dzimis ar mazāk [satura, no kura jāizvairās].
2 Virknes meklēšanas aizstāšana, PowerShell ir metodes, kurām nav nepieciešama aizbēgšana, .NET klasē. Piemēram:
[virkne]$a = 'abc\\def'
$b = $a.replace('\\','kad')
#返回: [ABC kā def]
Lai noteiktu, vai IP ir likumīgs, varat izmantot TryParse() metodi IPAddress klasē.
Īsāk sakot, mans ieteikums ir izmantot pēc iespējas vairāk .net metožu, izmantot pēc iespējas mazāk regex vai vienkārši izmantot vienkāršus regulāros failus.
3 PowerShell izmanto ['] kā bēgšanas simbolu. ['] tiek izmantots retāk nekā [\] un daudz retāk tiek izmantots kā bēgšanas simbols.
3.1 Rakstot datu bāzes skriptus, ir vairāk ['] konfliktu.
Piemēram, ['table'] būs pretrunā ar ['t], piemēram, ['biao'] konfliktēs ar ['b], un es vēlāk to atrisināju ar ['table'].
4 ps virkņu meklēšana un nomaiņa, ir regulārs dzinējs, ir saderīgs ar Linux, kā arī izmanto [\] kā aizbēgšanu.
Tomēr ir īpaša virknes aizbēgšanas funkcija [[Regex]::Escape()], kas vispirms tiek aizbēgta, pēc tam atrasta un aizstāta, un kods ir labi salasāms.
$Original virkne pirms aizbēgšanas = '\+\&*|]'
$escaped virkne = [regex]::escape($original virkne pirms aizbēgšanas)
-------------
Skriptu piemēri
[virkne]$a = 'abc\\def'
$Original virkne pirms aizbēgšanas = '\'
$Escaped virkne = [regex]::escape($Original virkne pirms aizbēgšanas) #[\]--->[\\]
$b = [regex]::replace($a,$Escaped virkne, 'kad')
$b #返回 [ABC Dangdang DEF]
-------------
5 bash un awk, katram ir savs, katram ir sava aizbēgšana. Kopā A ir viegli ietekmēt B, un A norij B.
Ir arī viegli rasties problēmas, saskaroties ar ['], ["], [\] un [*].
Tas ir tāpat kā valkāt divus garu bikses slāņus, jūs velkat vienu slāni, un otrs slānis arī kustas, jums jāuztraucas par to saderību.
Tas ir vēzis un grūti atrisināms.
Bet šķipsna, šo problēmu zināmā mērā var arī novērst. Tas prasa, lai persona, kas uzrakstīja čaumalu, labotu smirdošo problēmu.
[Ievietojiet awk kodu .awk failā atsevišķi, nevis komandrindā]
PowerShell nav šīs problēmas, ievietojiet to komandrindā, ievietojiet to skriptā, tam nav nekādas ietekmes.








Iepriekšējo:.net/C# izmanto atribūtus, lai ieviestu vienkāršu AOP
Nākamo:.net/c# Speedy IP Open Port Scanner v2.0 Ultimate versija
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com