Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 11695|Válasz: 1

PowerShell Kezdési Útmutató - v0.3 verzió

[Linket másol]
Közzétéve 2017. 04. 19. 16:48:30 | | |


---------- 1. fejezet Windows szkripttörténet --------------


1 A forgatókönyv detekvérek első generációja. A sorozat a win95-tel, win98-cal kezdődött--------- és körülbelül 2008-ban ért véget. Jellemzők: Karakterorientált parancsok, parancssorral és csővezetékkel.
2 Második generációs script VBS. Jellemzők: Csak függvények, értékek átadása, hívások.
3 Harmadik generációs script powershell. 2012-től kezdve a parancsnokság teljesen objektumorientált módra fejlődött. Például a feladatlista és a get-process ismétlődő kerékfunkciók: objektumorientáltak. Örökölve az előző két generáció írásainak előnyeit.



K: Miért tanulni a PowerShell-t?
A:
A misszionárius azt válaszolta, hogy egy évig és öt évig tanul a BAT-ig. Egyszerű szintaxis és erős könyvtári funkciók!
Ez az egyetlen a világon, amely támogatja azokat az objektumokat, amelyek parancsokat a csővezeték mindkét oldalán működtetnek. azaz objektumorientált parancs 1 | Objektumorientált parancs 2

A Windows és a Linux eltérő:
A Windows PowerShell szkriptében
Támogatás CR, LF, CRLF belép. Támogatják a többszálas és többfolyamatos párhuzamosságot.
Könnyű beágyazni [Text2 hang], "Jelentés kapitány, lemez telt".
Egy grafikus felület beágyazása egyszerű. (Amikor a felugró felület felhasználónevet, jelszót, egy-egy választást, többszörös kiválasztást stb. kér be.) Ezek a Linux szkriptek féltékenységei.

A PowerShell eltér a Pythontól:
A PowerShellben könnyű használni a kínai nyelvet. Kínai írás név, változó név, hozzászólás. Kínai idézőjelek, kínai kétidézőjelek.
Automatikusan felismeri a GBK, UTF8, Unicode kódolást. Pipeline objektumokat támogat, amire a python szkriptek irigyuksak.



Egyszerű szintaxispélda 1: A powershell egyetlen és dupla idézőjelek varázsa.
Az idézőjelek dupla idézőjelekkel is felidézhetők. És fordítva is.
Az idézőjeleket @'' jellel lehet @引用.
A BAT nem működött.


Misszionárius narrátor:
Sokat gondolkodtam a tutorial tervezésén. Nem olvastad, hogy a történet része nagyon [egyszerű és durva]? A történelmet egyetlen csapás hordozza.
De mivel mondtam, ez nem ostobaság, csak azt szeretném, ha a diákok világossá tennék, hogy a win7-win2008 óta a szkriptek [tárgyiasítása] népszerűvé vált. Ez vezet a következő tárgy-orientált magyarázat fejezetéhez.
Bármely PS bevezető oktatóanyagnak meg kell említenie a karakterorientált és az objektumorientált különbséget. Egyszerűen helyénvaló ezt a témát belekeverni a parancssor történetébe.

---------- 2. fejezet Az objektumorientált --------------
Mi az objektum, miért objektumorientált, és miért erősíti meg a Microsoft a kereket?

Objektumorientált példa 1:
Kérdés: Napi 2,2 almát eszem, hány almát eszem 17 nap alatt?
A:
2,2 x 17 méret elérhető. Lehetséges az i++ használata is, amelyet bármely szkriptnyelv támogat.
for ($i = 1; $i - 18. hadnagy; $i++)
{
        $Apple = 2,2 + $Apple
        Write-host $i,$Apple
}

--------------------------------------------
Amint a kérdés megváltozik, nem mondom el a napok számát, csak megmondom,
Naponta 2,2 almát eszem, hány almát eszem 2017. január 20-tól június 20-ig?
$days = ((érkezési dátum '2017-06-20') - (érkezési dátum '2017-01-20')).napok #值151


Naponta 2,2 almát eszem, hány almát eszem 2020. január 20. és június 20. között?
$days = ((érkezési dátum: '2020-06-20') - (érkezési dátum: '2020-01-20')). napok #值152

for ($i=(érkezési dátum: '2020-01-20'); $i -lt (érkezési dátum: '2020-06-20'); $i=$i.adddays(1))
{
        $Apple = 2,2 + $Apple
        Write-host $i,$Apple
}

Következtetés: A dátumobjektum esetében napok, órák stb. számolása egyszerű. [for,,i++] gyakori, de sosem gondoltam volna, hogy az i szám dátumtípus lehet.

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



Mik az objektumorientált élet előnyei?
Objektumorientált előtt csak stringek és egész számok léteznek.
1 Van egy tárgy.
----- [Karaktertípus]-----
A glifának system.stringje van, ami a legalapvetőbb.
System.Text.StringBuilder memória, gyakran változó, nagy stringek

----- [Numerikus típus]-----
system.int32, system.int64, system.decimális, system.double, System.Numerics.BigInteger végtelen egész szám.
Leggyakrabban az int32, a tizedes használat.

Az, hogy az 1/3*3 egyenlő-e 1-nek vagy 0,9999-nek, az adattípustól függ.
----- [Array]-----
system.array array
a system.arraylist tömbje gyakran változik, például mindig újraírja, hozzáadja vagy töröli – ezt kell használni. A sebesség viszonylag gyors.
System.Collections.Generic.HashSet dedduplikálja a tömböket. Ugyanez a python készletobjektumához.

-----【Form】-----
1 parancskimenet. Például: dir, get-process.
2. Szkriptek írása során objektumokat és attribútumokat használunk a felépítéshez.

----- [Mások] -----
hash táblák, fájlok stb.



2-nek vannak attribútumai. Az attribútumok argumentumok, és kisebbek, mint a húrok. Mielőtt nem lennének attribútumok, szűrnünk kell és szűrnünk a húrokat [agyégető reguláriskal], amit [dedukciós láncnak]-nak neveznek. Ha vannak attribútumaid, nincs rájuk szükséged.
3 Van mód. A módszer a program, a kód. Nem kell magadnak újraírnod. A denevér határozottan nem jó, nincs rá esély, személyes írás is van, megbízhatatlan, merj használni.
A metódok lehetnek önmaguk által írt ps függvények, illetve önírásos metódok a ps osztályokban.
A saját magad által írt módszert ideiglenesen [összevonhatod] egy harmadik fél osztályba.
A saját magad megírt módszert ideiglenesen [összevonhatod] a .net osztályba.

Mik a tárgyorientált problémák hátrányai?
A prédikátor a powershellet tanítja azoknak, akik Winxp-t használnak. A személy azt mondta, hogy a powershell nem jó, az objektum túl memóriaigényes, és igaza van.
A cmd-ben 100 fájlnevet (stringet) térek vissza dir-vel. PowerShellben dir-t használok 100 fájlobjektum visszaadására, és a PowerShell rengeteg memóriát foglal el.
De most más van:
1. A felesleges tartalomnak nem szabad változókban léteznie. Vagy azonnal a használat után megsemmisíteni, hogy csökkentsd a memóriahasználatot.
2. Az emlékezetek kiesése elég. Mivel a CPU teljesítménye már nem nőhet, kétségbeesetten növeljük a memóriát, hogy időt cseréljünk.
3. Erősebb funkciókat szeretnénk, és manapság az objektumorientáció a legalapvetőbb. Melyik nem objektumorientált, például py, php, java, .net, c++?

Összefoglalás:
1 Az objektumok nagyobbak és memóriaigényesebbek, mint a húrok.
2. Több módszer létezik objektumorientációra és erősebb függvényekre.
3 attribútum kisebb, mint a húr granularitása, ami rendkívül kényelmes használatra. Elkerültem a [őrült agyégető rendszeres szűrés] húrokat!


=== Őrült agyégető rendszeres alkalmazottak használata példák szűrésére, denevérverzió a ping alapértelmezett gateway ===
@echo off&setlocal enabledelayedexpansion
Echo az alapértelmezett kaput keresi...

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

Az echo alapértelmezett átjárója: !ipgate!
=========== pingelni az alapértelmezett gateway.ps1-et============
$default gateway = (get-netroute -DestinationPrefix 0.0.0.0/0). NextHop
& ping.exe $ Alapértelmezett átjáró

# test-kapcsolat $ alapértelmezett átjáró
=======================






K: Még ha az objektumorientált is ilyen jó, honnan származnak ezek az objektumok?
V: A .net könyvtárból.


---------- 3. fejezet Bevezetés a .NET --------------


K: Hány verziós ággal rendelkezik a .NET Core-nak?
A:
Jelenleg három verzió létezik.
.NET 2.0 A .NET 3.51 legújabb verziója
.NET 4.0 A .NET 4.70 legújabb verziója
.NET Core 1.x A .NET 1.2 legújabb verziója Apple rendszerekhez, Linux rendszerekhez és beágyazott rendszerekhez.
.NET Core 2.x A .NET 2.0 legújabb verziója Apple rendszerekhez, Linux rendszerekhez és beágyazott rendszerekhez.



K: Hány funkcionális ág van a .net-nek?
A:
Asztali ág .NET formátumban. WinForm. Asztali ablakok fejlesztéséhez.
Hangkönyvtár
asp.net .NET és .NET Core rendszerekben. Webszerver funkciókönyvtár. Régebben egy B/S webszerver megnyitására szolgált.
F# a .NET és .NET Core programokban. Tartalmaz matematikai könyvtárakat, trigonometrikus függvénykönyvtárakat stb.
PowerShell a .NET és .NET Core verzióban. Tartalmaz gyakori rendszerkezelő felületeket, például szkriptfájlokat.
Linux
◦Ubuntu 14.04 \ 16.04
◦CentOS/RHEL 7 és annál magasabb
◦nyisd meg a SUSE 42-t és annál magasabb
◦Arch Linux (az archl inuxnak nincs verziószáma)
◦LINUX docker konténer
◦Linux AppImage konténer (hordozható alkalmazás, egyetlen bináris) https://github.com/probonopd/AppImageKit



MAC OS X
◦OS X 10.11


K: Hogyan kapcsolódik egy .NET program (C# program) egy MySQL szerverhez?
A:
Látogass el a mysql hivatalos weboldalára, hogy letöltsd a .NET nyelv csatlakozóját.
mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll
Hozzáadjuk a MySql.Data osztályt a .net-hez, és hozzáadjuk az adatbázis interfészt.



Összegzés:
A WinXP gép először telepíti a .net 3.51-et, a win7 és a win2008 gépet, először telepítse a .net 4.62-t vagy annál magasabb.

A .net már évek óta létezik, és kevés olyan szoftver van, amely a .net-et támogatja, mint a Java. Minden .net ág, interfész (adatbázisok, WeChat stb.). )
Azok a DL-ek, azok a könyvtárak, powershell-nek nevezhetők. Pontosan ugyanaz, mint a C#-ban írt exe.


K: A .NET ág felületen kívül mik a PowerShell saját könyvtárai (moduljai)?
A:
Kérjük, lásd a következő fejezetet

---------- 4. fejezet Gyakran használt beépített könyvtárak, külső könyvtárak és harmadik féltől származó könyvtárak a PowerShell --------------

Misszionáriusi segítség:
Ez a fejezet nem tárgyalható, de csupán egy könyvtárak és kézikönyvek listája. Könyvjelzője ezt a fejezetet. Miután megnézed ezeket a könyvtárakat, tudni fogod, mire képes a PowerShell.



Win2012 kézi cím: (leggyakrabban használt AD modul)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx
AD Felhasználói Csoportmenedzsment, DHCP, DNS, Nyomtató, Fájlmegosztás, IIS, Lemez, NIC,



Exchange2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx
Active Directory 12         
Spam és rosszindulatú program 59  
Kliens-hozzáférés 100
Extension Agent 4
E-mail címek és címkönyvek 37
Föderációs és hibrid konfiguráció  
Magas elérhetőség  
Levéláramlás  
Postaláda  
Postaláda adatbázis  
Postafiók szerver  
Költözz és vándorolj  
Szervezet  
Engedélyek  
Szabályzat és megfelelőség  
Biztonság  
Szerver egészsége, megfigyelése és teljesítménye  
Megosztás és együttműködés  
Egységes üzenet  
Felhasználók és csoportok  



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 és vállalati szintű virtuális gépek.


Ügyfelek:
Szolgáltatások, folyamatok, naplók, nyilvántartások, fájlkönyvtárak, távoli menedzsment. Időzített feladatok.



Internet:
FTP, mail, SSH kliens bővítmény Linux szerver kapcsolathoz.


SMS:
XML, HTML, CVS, JSON, EXCEL, stb.


Text 2 hang


Grafikus felület.


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


PowerShell szoftverforrás hivatalos weboldala --- hivatalos PowerShell könyvtára.
https://www.powershellgallery.com


A többi Niu x könyvtár mind a githubon van. Emellett a misszionáriusok rendszeresen kiadják a [Niu x Magic Weapon]-ot a [Hidden Foot Pavilion]-ból, amely egy hasznos, harmadik féltől származó PowerShell-könyvtár.


---------- 5. fejezet A kezdőknek meg kell tanulniuk a parancsok használatát--------------


K: Hogyan tudom a PowerShell verziót?
A:
$PSVersionTable



K: Nem ismerem a modult, hogyan találjam meg?
A:
get-module -ListAvailable


K: Hogyan találhatok parancsokat, ha csak egy részét ismerem?
A:
get-command *service*



K: Ismerem a parancsot, de nem tudom, milyen paraméterek vannak benne, hogyan kell felsorolni a paramétereket?
A:
get-help write-host -Paraméter *
show-parancs write-host


K: Ismerem a paramétert, de nem tudom, melyik parancsnak van ez a paramétere, hogyan találom meg a parancsot?
A:
get-command -ParameterName kódolás



K: Hogyan kaphatok segítséget egy parancshoz a parancssorból?
A:
segítség – segítség, randi

-Parancspéldák
-Online online kézikönyv




K: Nem ismerem a parancs attribútum-módszerét (nem ismerem az objektumot), hogyan találjam meg?
A:
"ABC" | Tagolj
Találkozás-időpont | Tagolj



K: Hol van a kínai .NET kézikönyv?
A:
MSDN。 A legalapvetőbb string tulajdonságok és módszerek a kézikönyvben találhatók.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx



---------- 6. fejezet Bevezetés a gyakori parancsokhoz --------------

Az első parancs, amit meg kell tanulni, a dir
K: Miért használnánk powershell dir-t [azaz Get-ChildItem] a cmd dir-t helyett?
A:
Objektumorientált, erős módszerrel és sok tulajdonsággal.
$file = dir a:\pscode\temp183\aaa.txt
$file. Teljes név #返回全路径属性
$file. BaseName #返回文件名属性
$file. Kiterjesztés #返回扩展名属性
$file. LastWriteTime #返回最后写入时间属性



Az első szintaxis, amit meg kell tanulni, a tömb-szintaxis. $a = @(xxx parancs)
K: Néha [karakteralapú külső parancsokat] kell használni, hogy a visszatérő értékeket viselkedési egységek szerint tömbökre osztsuk.
A:
$a = @(ipconfig)
$a[8] #第9行


Gyermek Tárgy Használata:
Paraméterek hozzáadva a PowerShell 3.0-hoz és annál magasabb.

get-childitem d:\xxx -file #过滤, csak a fájlokat kimenetelnek
-Könyvtárszűrés, csak kimeneti könyvtárak
-Rejtett szűrés, csak rejtett kimenet


K: Megnyit egy fájlt, viselkedés szerint szegmenssel, és tömbbe helyezve?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -ReadCount 0



K: Megnyitni egy fájlt nagy stringként, és eltárolni az egész változót?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -raw


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


K: Hogyan futtathatom a parancsokat a háttérben?
A:
Az ókoriban volt egy cmd /c "parancs".
Most már van powershell /c "parancs", vagy powershell -c "parancs",
PowerShell -fájl "script.ps1" -argument 1 aaaa -paraméter 2 1234
start-process -path xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'


K: Szeretném futtatni a szkriptet, egy másik helyi felhasználóval, de a PowerShellben nincsenek runák. Exe hasonló parancsok?
A:
A PowerShellben különböző ülések vannak.
IP + port + felhasználónév + jelszó = egy alkalom, nekem csak a felhasználónevet kell megváltoztatnom, a jelszót cserélni, és te meg tudod változtatni a jogosultságokat. Mert a jogosultságok a felhasználóhoz kötöttek.
Hasonlóképpen, csak n ülést kell létrehoznom a használathoz, anélkül, hogy felhasználót váltanék.
A legfontosabb új pssession a -Credential paraméterrel rendelkezik, beírja a felhasználói jelszót, ami nem egyezik a runákkal. Az exe ugyanaz? Mi más az SmbSession?
Szóval szerintem nem szükséges a runákat használni a powershellben. exe。
Csak ezeket a parancsokat kell használni a session-hez és a Credential-hoz, igaz?

Nézd meg azokat a parancsokat, amelyeknek a [Credential] neve van a paraméter nevében:
get-command -ParameterName Credential

Tekintse meg a parancsokat a [session] karakterrel a parancsban:
get-command *ülés*


K: Hogyan küldjek e-mailt PowerShell segítségével?
A:
Send-MailMessage -Subject 'Subject'
-A "hotmail fiókodtól @hotmail.com" -A "QQ e-mail @qq.com" címedhez '
-SmtpServer "smtp.live.com" -port 587 -useSsl -credential "a hotmail fiókod @hotmail.com" '
-Mellékletek $Attachments -BodyAsHTML -body $HTML az e-mail tartalmára

Jegyzet:
1 felhasználásxxx@QQ.com+ A QQ jelszód + a fenti parancs Az e-mail küldése nem működik. Mert a QQ jelszavak biztonsága érdekében a Tencent független e-mail jelszavakat igényel.  
2 A QQ postaládából való küldés alapértelmezés szerint nem lehetséges. Ki van kapcsolva, és be kell kapcsolnod az SMTP-t a beállításokban.
A 3 PowerShell 3.0 és annál magasabb verziók csak port paramétereket támogatnak. Win7-hez először a PS legújabb verzióját kell telepítened




K: Figyeld a CPU-t, lemezt, hálózatot, IO-t stb.
A:
Teljesítménymonitor, vagy
A Get-Counter teljesítményszámláló adatokat hoz le mind helyi, mind távoli számítógépekről.

K: Hogyan láthatom, milyen ellentelem áll rendelkezésre?
A:
Minden benne van a kézikönyvben.
Nézd meg, mik a fő felhasználási kategóriák:
Get-Counter -ListSet * | Sort-object CounterSetName | Format-Table CounterSetName


Például most már tudom, hogy a lemezkategória (PhysicalDisk), majd ellenőrizem a lemezen lévő alkategóriákat, használva:
(Get-Counter -ListSet PhysicalDisk). Ösvények




K: Hogyan nézhetem meg a naplókat?
A:
Eseménymegnéző, vagy
get-eventlog



K: Hogyan hajtsam végre a sorozatokat?
A:
$cmd 1 = 'xxxx'
Invoke-Expression $cmd 1


Nos, sokat tanultunk az egyes parancsokról, nézzük meg a Powershell szkriptek végrehajtását.


---------- 7. fejezet PS1 szkriptelés, hibakeresés és futtatás --------------
A szkript parancsutasítások kombinációja és átfedése. A forgatókönyv a ragasztó: keress mást, akit hívhatsz, keress kerekeket az autó összeszereléséhez. Ahelyett, hogy kerekeket készítenének, mások számára.



Cainiao megkérdezte: Hogyan írjunk forgatókönyvet?
Az öreg madár válaszolt:
1 A probléma részleteit tisztázni kell. Például: készíts holdtortát.
2 A problémamegoldó ötletek is gyakorlatilag befejeződnek. Liszt és víz, tegyék a tölteléket, gőzölj.
3 Milyen parancsokat és változókat érdemes használni. Adj hozzá öt szemet, tedd formába, és nyomd össze.
4 Először nagyjából írj meg, írj nagyjából.
5 Hibakeresés ment.
6 Írj részletesen. Vegyük figyelembe a hibahelyzetet, plusz a hibakódot, a hibaüzenetet. Távolítsd el a hibázásra hajlamos kódot, amely nem könnyen kompatibilis. Írj át kódot, ami nem működik jól.
Eddig egy jó forgatókönyv talán nem néz ki jól, de nagyon hasznosnak kell lennie.
7 Finoman megmunkált. Refaktorálás, az újrahasznosított kódrészletek függvényekbe való írása. Írd át a változóneveket, hogy az emberek egy pillantással megértsék őket. Formázd jól a kódot, és végezd el a behúzást.


K: Milyen IDE-t használnak a PS1 megírásához?
A:
A legajánlottabb a Visual Studio Code használata, valamint a PowerShell bővítmény.
Funkciók: Kódkérések, automatikus kiegészítés, kódformázás, behúzás a szóköz vagy tabulátor kiválasztásához, fájlkódolási beállítások.
Van egy FTP-sync nevű bővítmény, amely képes PS1 szkripteket írni a Windows VSCode-jában, és automatikusan szinkronizálja őket a Linux könyvtárral, amikor elmented.



K: Milyen eszközöket használnak a PS1 hibakereséséhez?
A:
A leggyakrabban ajánlott powergui élet nem használ mozdonyt, még ha hős is, a PS szkript is ugrik és hibát jelent!
A VSCODE is rendben van



K: Milyen eszközöket használsz a kódformázáshoz?
A:
Minden, amit be kell húzni, behordva, és az egyenlő jelek is összehangolódnak.

PowerShell ISE + ISE Plugin [ISESteroids]

Telepítés:
Install-Module -Name ISESteroids

Az ISE fut:
Start-Steroids





K: Milyen eszközöket használtok a kód színének szépítésére?
A:
1 Használd a fenti eszközöket a kód formázására.
2 Használd PowerShellise + Missionary DIY Color Matching 2016 kiadást.
3 Fogd meg a képet. A világ legkellemesebb és legszebb színű PowerShell kódja készül.

Az összes fenti IDE kínai nyelven készült.




K: Hogyan nevezzek el egy forgatókönyvet? xxx.ps1
A:
Ajánlott 1---2 betűvel kezdeni, a többi részhez pedig a kínai fájlnevet használni. Pl. [a barátom készíti le az összes régi files_ biztonsági mentést és törölje a .ps1-et 10 nappal ezelőttről]
Így először írd be a [bf] betűt, majd nyomd meg a tabot a script név befejezéséhez.




K: Hogyan engedélyezhetem a PowerShell szkript végrehajtási engedélyt?
A:
echo A következő kód futtatható a cmd-ben adminisztrátori jogosultságokkal, vagy PowerShellben adminisztrátori jogosultságokkal.
echo, ha PowerShell-t használsz távoli remote-ot. Mind a helyi gépet, mind a távoli gépet rendszergazdái jogosultságokkal kell futtatni.
"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -parancs "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
"C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -parancs "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -parancs "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -parancs "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
Szünet



K: Mik a mozdony (powergui) hátrányai?
A:
Nem tudok háttérszínt beállítani.




K: Mik a vscode hátrányai?
A:
A $ és a változó név nem ugyanaz a szín.
A hibakeresési funkciók lassúak és néha holtpontba ütköznek.




K: Mik az ISE hátrányai?
A:
Nem választhatod el, hogy mented vagy konvertálod a kódolást.
Behúzás [szóközbe], [tab] mindkettőhöz. Más szövegszerkesztő szoftverekben behúzás jelenik meg.




---------- 8. fejezet Valódi harci gyakorlat--------------
A zenekar 6504748 és ezt a részt maguk írták meg.

5. Példa 1: Kapcsold be és kapcsold ki a szolgáltatást
6. Példa 2: Tűzfal irányítása (nyitás, zárás, szabály)
7. 3. példa: Szabályzat beállítása (jelszó politika például)



---------- 9. fejezet Ezek a további választható kurzusok érdekelnek? --------------
PowerShell szkript, parancssori argumentumok értékeket továbbítanak és változók kötése példák
http://www.cnblogs.com/piapia/p/5910255.html




Engedd, hogy a PowerShell egyszerre csak egy szkriptet futtasson (például a folyamat kölcsönös kizárása)
http://www.cnblogs.com/piapia/p/5647205.html



PowerShell karakter felület, PowerShell plusz WPF felület, 2048-as játék
http://www.cnblogs.com/piapia/p/5531945.html


Két crawler PowerShellben
http://www.cnblogs.com/piapia/p/5367556.html



PowerShell script: Random password generator
http://www.cnblogs.com/piapia/p/5184114.html



PowerShell rekurzív algoritmus példája
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html



PowerShell hangkalkulátor
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html



1 Listázd fel az összes EFS titkosított fájlt. 2Dekrekódj minden EFS titkosított fájlt
http://www.cnblogs.com/piapia/p/4702514.html
Ez egy olyan eszköz, amelyet rendszergazdák és hálózatadminisztrátorok számára írtak.
Miután egy alkalmazott elhagyja a munkáját, a lemeze feltételezi, hogy 10 000 fájl (könyvtár) van, ebből 3 fájlkönyvtár van EFS-szel titkosítva. Az Explorerben ezek a három fájl zöldek.
De ha egyesével rákattintasz (10 000 katalógusra), akár zöld, akár nem, kimerülni fogsz.
Ekkor a hálózati adminisztrátor a munkavállaló WIN fiókját használja, bejelentkezik az alkalmazott PC-jére, és ezzel a szkripttel listalázza az összes EFS titkosított fájlt.


---------- 10. fejezet Kérem, tegyen fel egy kérdést--------------
Hölgyeim és uraim, ha van valami jelentés, hagyják el a bíróságot semmi nélkül.



----------11. fejezet Linux fejezet--------------

Missionary: Amíg telepítheted a PowerShell Linux verzióját, csak PS1 szkriptekre van szükséged, sh-szkriptekre nincs szükséged.
Értelmezés:
1 Röviden: a bash-nak csak szintaxisa van, parancsai és könyvtárak.
A 2 Bash-nak csak 1%-a van szintaxisfunkció, a PowerShell nem tudja megvalósítani. Ez normális, nincs két levél teljesen egyforma a világon.
Ez azt jelenti, hogy csak a PS1 szkriptre van szükséged, semmi sh-re.
A 3 bash túl régi, ugyanaz a funkció, a Powershell is megvalósítható, és időt is spórolhat, például 10 000 üres fors, amit a Powershellnek 90%-ban kell megtakarítania.
4 Tanuld meg használni a /usr/bin/powershell helyett a /usr/bin/bash helyett. Más Linux parancsok, pipeline-ok, régi kung fu stb. pontosan ugyanúgy használják, mint a bash-ban.
5 Fokozatosan használj objektumorientált, egyszerű és hatékony PowerShell parancsokat és könyvtárakat a Linux parancsok helyett, vagy mindkettőt. ---Ez az általános elv, az általános vázlat.


K: Mely Linux verziók telepíthetik a PowerShell-t?
A:
◦Ubuntu 14.04 / 16.04
◦CentOS/RHEL 7 és annál magasabb
◦nyisd meg a SUSE 42-t és annál magasabb
◦Arch Linux (az archl inuxnak nincs verziószáma)
◦LINUX docker konténer
◦Linux AppImage konténer (hordozható alkalmazás, egyetlen bináris) https://github.com/probonopd/AppImageKit





K: Miért mondják, hogy a Win parancssora erősebb, mint a Linux?
A:
Az 1 win parancsai objektumorientált PowerShell-be fejlődtek. A Linux még nem működik. Win7-től win2012r2-ig véget ér az evolúció.

2 Régen hallottam, hogy a Unixnek sok Linux parancsa van, és nagyon erős. De most azt mondom, hogy a powershell parancsok legalább tízszer többek, mint a Linux parancsai. Amúgy is egész életemben nem tanultam.

3 A Linux inkább gráffüggő, túl kevés parancs van. A win command sokkal több, mint a Linux.
3.1 Bármelyik Linuxban a levelezőszerver parancsai egyre teljesebbek, mint az Exchange-ben? Kényelmesebb, mint a csere?
3.2 A Linux DNS szerver köteléke nem olyan kényelmes, mint a win DNS parancsa. Van a bindnek [parancsa] ahhoz, hogy egy ipv4 A rekordot adjon hozzá egy domain névhez? Még nem függsz a webes grafikától?
Néhányan azt mondják, hogy használd az nsupdate-et. Ez nem arról szól, hogy írj egy üzenetet, majd lefuttatod azt. Mi a különbség aközött, hogy a [DNS zóna fájlt] sed-re cseréljük, majd újratöltöd a [DNS zóna]-t?

4 Az új win-verzióban, vagy a powershellben minden [parancs + paraméter] van. És a Linux nagy része még mindig [sed szöveg].
4.1 Vegyük például a hálózati kártyához rendelt IP-címet.
NMCLI Connection Add type Ethernet con-name NEW_STATIC ifname ENO1234567 IP4 192.168.1.111 GW4 192.168.1.1,
Nem kényelmesebb, mint az SED-lel az ifcfg-eth0 fájl kaparásához?

5 Bármely nyelv feldolgozza az adatokat, ahogy a szkriptek is. Az objektumok segítségével a PowerShell kényelmesebb, mint az awk. Shenma csv, excel, xml, json
SQL tábla, nosql tábla. HTML, stb.




K: Hogyan valósítja meg a PowerShell a [sed -i "s/mit keressek/helyettesítsek /g" fájlnévrel]?
A:
@(Get-Content fájlnév) -helyettesítsd 'aaa','bbb' | Set-Content fájlnév $aaa
Vagyis megnyitod a fájlt, helyettesíted, elmented.



K: Miért egyre kevesebb ember használja SED-t Linuxban?
A:
1. érve: Az AWK helyettesítheti a SED-t, de a SED nem tudja helyettesíteni az AWK-t.
sed, vagyis egyszerűen megtalálja a helyettesítést. Az AWK összetett feldolgozás megvalósításához és hasonlókhoz is alkalmas.

2. érv: Az AWK a standard regulárist használja, és a sed regulálja ugyanaz, mint a sed, de a részek eltérnek.
Az SED tanulása azt jelenti, hogy két összeegyeztethetetlen rendszeres rendszer az agyban harcol egymással.



K: Tehát helyes az AWK-t megtanulni?
A:
A PowerShell megtanulása könnyebb, mint az AWK megtanulása.
A PowerShell a [split és then split], [if és if], where-object, string.substing(), string[-3] stb.
Bontsd le a húrproblémát rétegenként. Egyszerűbb, mint az ügyetlen hagyomány.




K: Használható-e a pipelines és az AWK PowerShellben?
A:
PowerShellben is hívhatod az awk-ot, pontosan ugyanúgy, mint a Bash-ben. A régi harcművészetek teljesen Torino.



K: Hogyan lehet megvalósítani az [awk '{print $3}'] funkciót PowerShellben?
A:
($line -split "\s+|\t+") [0] #第一行
($line -split "\s+|\t+") [2] #第三行       

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


K: Hogyan lehet megvalósítani a [awk -f a.awk fájl] funkciót PowerShell segítségével?
A:
Lényegében ez egy szűrő funkció, amely egy csőt használ. A PowerShellben ezt szűrőnek vagy szűrőnek hívják.
A PowerShell támogatja a parancs + cső + szűrő kombinációját. Mint a parancsnokság 1 | Szűrő 1 | Parancs 2 | Szűrő 2 | 3-as szűrő
szűrő1 szűrő
{
AWK-szerű funkció
}





K: Vannak [xargok] a PowerShell-ben?
A:
A csővezetékben használt csőváltozót [$psitem] néven hívják, és az álnév [$_].
A PowerShell foreach-object és $_ segítségével valósítja meg a xargok funkcióját.





K: Van [<] [<<] szám a PowerShellben?
A:
Nem.
Talán a [<] szimbólum jobbról balra az emberellenes gondolkodás. Sok PowerShell parancsot balról jobbra változtattak.
Ha a get-random < (1..100) nem legális a PowerShellben, akkor a legális lehet get-random -inputobject (1..100), vagy 1. 100 |véletlenszerű
A furcsa parancsok kevesebb mint 1%-a [<] szimbólumra támaszkodik, amit a PowerShellben cmd vagy PowerShell bash (PowerShell for Linux) hívásával lehet elérni.
Például $a = bash -x "parancs 1 < parancs 2" #linux
Például $a = cmd -c "parancs 1 < parancs 2" #cmd




K: Van várt parancs a PowerShell-ben? Hogyan lehet csatlakozni egy Linux SSH szerverhez a Win-ből PowerShell-lel?
A:
1. Igen. Néhány furcsa és részleges ajtóválasz igényre vannak harmadik féltől származó modulok.
2 Nem. A PowerShell nem a várt parancsot használja, hanem egy ülést használ.

Használd a Powershell + SSH klienskönyvtárat + IP + port + felhasználónevet + jelszót, hogy összekapcsold és parancsokat küldj erre a kapcsolatra. A kódex a következő:
$connection 1 = New-SSHSession -ComputerName 1.1.1.1 -Port 22 -Credential aaaa #将提示输入密码
$to return = Invoke-SSHCommand -Command {cat /etc/issue} -SSHSession $Connection 1

Ez a szabványos funkció, mint például (MongoDB, mysql, ssh, ftp, http, telnet stb.) illesztőprogramokat vagy modulokat tartalmaz. PS és. .netprogram a meghajtó kapcsolaton keresztül küld parancsokat és fogad el adatokat.
A modulok vagy illezőprogramok használatával [adatok] küldésére és fogadására az előnyök a következők:
Az adatokat .net objektummá alakítják át, amely pedig PS objektummá alakul. Egyébként csak zsinórokból áll, és a PS szekta [objektumorientált harcművészetei] mind haszontalanok.


Például a MongoDB-t vesszük, mik az előnyei annak, ha modulokat vagy drivereket használunk parancsok küldésére? Ki beszél?
Úgy érzem, az előnyök a következők:
1 Többszálas kezelés. A háttérszál fut, és nem foglalja el a jelenlegi szálat.
2. Bármikor [félúton leválaszthatjuk a szekciót], végrehajthatunk más PS kódot, funkciókat, és [bármikor visszatérhetünk az üléshez]. A szkriptek rugalmasabbak az íráshoz és könnyen hibakeresési lehetőségek.
A 3session több felhasználót hoz, és különböző felhasználóknak eltérő szerverjogosultsága lehet.




K: Van su, runas parancs a powershellben? Hogyan futtathatom egy másik felhasználó parancsát PowerShell-lel?
A:
Nem.
A PowerShellben Linux natív parancsok és pipeline futtatása könnyed. Például:
sshaaa@127.0.0.1"Végrehajtva AAA felhasználói jogosultságokkal, xxx parancs"  
sshpass -p user_password sshaaa@192.168.1.1



K: Két Linux gép SSHD-vel? Hogyan lehet csatlakozni és küldeni parancsokat PowerShell-lel?
A:
A fenti módszeren kívül használhatod az új Linux ülés létrehozásának módszerét is. (Linuxról csatlakoztatva egy másik SSHD-hez)
Megjegyzés: Ez a módszer az /etc/ssh/sshd_config fájl szerkesztését igényli. Add hozzá a következő sort
Subsystem powershell powershell -sshs -NoLogo -NoProfile
Ezután indítsd újra az SSHD szervert.
A részletes kézikönyv itt található:
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting

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


Összefoglalás:
Win kliens, Linux szerverhez csatlakoztatva. Jelenleg harmadik féltől származó modulokra van szükség, persze ez egy modul a hivatalos könyvtárban, csak használd a PoshSSH install-modult.
Linux kliens, Linux szerverhez csatlakoztatva. Szerkesztened kell az /etc/ssh/sshd_config fájlt.
Linux kliens, Win szerverhez csatlakozva. Be kell kapcsolnod a szolgáltatást a szerveren. Bízz a kliensben lévő szerverben.
Win kliens, csatlakozva a Win szerverhez. Be kell kapcsolnod a szolgáltatást a szerveren. Bízz a kliensben lévő szerverben.


K: Van [grep] a PowerShell-ben?
A:
A select-string parancsot a powershellben használják.
Csak kódolási szempontból is, a select-string=smart, grep=stupid + kemény hibával rendelkezik :mrgreen:
Ha van egy BOM fejléce, a select-string automatikusan felismeri a fájlkódolási típust.
Ha nincs BOM fejléce, nincs szükség a shell környezet megváltoztatására, mint a linux+grep, és nincs szükség fájlokra egy adott kód szerint menteni. Csak a -encoding paramétert kell megadni a fájlkódolás szerint.
És a grep nem rendelkezik ezzel a funkcióval, vagyis van egy kemény hiba a [nem lehet fájlkódolási típust megadni].
Természetesen a grep nem haszontalan, a grepnek vannak paraméterei, vannak további egyedi funkciói, a select-stringnek nincs, itt a grep erősebb, mint a select-string.



K: Van [értékelés] a PowerShell-ben?
A:
Használd az Invoke-Expression-t a stringek végrehajtásához a powershellben.



K: Van egy -f a PowerShell-ben? Lehetséges a fájl újonnan generált sorait valós időben kiadni.
A:
Elégedett D:\a.txt -Fark 10 -Olvasásszám 0 -Várj



K: Kis billentyűzetet szeretnék használni, és egy 256 színű terminált is, szóval hogyan kellene beállítani az xshell-et?
A:
Terminál --- Terminál típusa: --- [putty-256color] vagy [export TERM=putty-256color]
Terminal --- billentyűzet --- alapértelmezett vagy Linux.

Eterm-256color
Gnome-256color nem működik
konsole-256color nem működik
Putty-256color
PowerShell Missionary Eredeti megosztás 2017-02-15
RXVT-256COLOR nem működik
Screen-256color nem működik
ST-256COLOR
VTE-256COLOR nem működik
Xterm-256color nem működik
Ugyanez az elv érvényes a SecureCRT-re




K: Ki a erősebb, a shell vagy a python?
A:
Mindegyiknek megvannak a maga erősségei, és képesek kiegészíteni egymást. De nem állnak egymást kiegészítő pontokkal. Erről még többet lentebb.


K: Miért alkalmasabb a PowerShell Linux verziója az üzemeltetési és karbantartási személyzet számára szkriptek írására? (Összehasonlítva a Python Linux verziójával)
A:
1 Python objektumorientált funkciókkal rendelkezik, és elérhető a PowerShell Linux verziója.

A 2 Pythonnak nincs parancssora.
2.1 A Python nem lehet az SSH alapértelmezett terminálja, de a PowerShell a Linuxhoz igen. Lásd a fejezetet: "Két Linux gép SSHD-vel? Hogyan lehet csatlakozni és küldeni parancsokat PowerShell-lel? 》
2.2 Shell parancsok (awk, grep stb.) használata Pythonban nagyon nehézkes. Sok py szintaxist és kódot kell hozzáadni. A PowerShell for Linux futtatja az awk parancsokat, akárcsak a bash.

A 3 Pythonnak nincsenek csöveke. Nagyon problémás értékeket átadni n [parancssoros program] között. Sok py szintaxist és kódot kell hozzáadni. A PowerShell Linux verziója pipeline-ekkel rendelkezik, és az awk parancsok futtatása ugyanaz, mint a bash.

A 4 Pythonnak van 2-es verziója, a 3-as verzió nem kompatibilis a Cancer-szel! Kérdés. A PowerShell for Linuxnak nincs ilyen problémája.
4.1 Ezek a kérdések kódolási problémákat tartalmaznak.

Összegzés:
A shell parancsok, mint a GREP, nem jók a kódolás támogatására, nem olyan jók, mint a fent 4.1-es PowerShell otthoni kódolási problémái. Plusz a fenti 2,3 pont.
Ez kényelmetlenül érzi magát a Linux embereknek, de nagyon kevesen használnak külső parancsokat a py-ben. [py parancskönyvtár] és [shell parancs] halottak, és gyakorlatilag nem tudják kiegészíteni egymást. A PS Linux verziója más.




K: Miért mondják, hogy a powershell jobb, mint a shell?
A:
1 PowerShell objektumorientált, és a tulajdonságok közvetlenül elérhető adatokat adnak vissza. Ez sokkal ritkább, mint a karakter szkriptnyelvekben (bat, shell), ahol string levonásokat igényelnek.
Kevesebb [tartalommal, amit el kell kerülni] születve.
2 String keresés helyettesítés, a PowerShellben vannak olyan metódusok, amelyek nem igényelnek escapinget, a .NET osztályban. Például:
[string]$a = 'abc\\def'
$b = $a.replace('\\','haha')
#返回: [ABC mint def]
Az IP legitimségének megállapításához használhatod a TryParse() metódust az IPAddress osztályban.
Röviden, azt javaslom, hogy használj minél több .net módszert, minél kevesebb regexet, vagy egyszerűen csak használj egyszerű rendszereket.
3 PowerShell a ['] -t használja menekülési szimbólumként. A ['] ritkábban használatos, mint a [\] és sokkal kevésbé menekülési szimbólumként.
3.1 Adatbázis-szkriptek írásakor több ['] konfliktus jelentkezik.
Például a ['table'] ellentmond ['t]-vel, például ['biao'] ellentmond ['b]-vel, és később megoldottam ['table']-vel.
4 ps string keresés és csere, van egy normál motorja, kompatibilis Linux-szal, és [\] menekülésként is használ.
Azonban létezik egy speciális string escape függvény [[Regex]::Escape()], amely először escapol, majd megtalálja és lecseréli, és a kód nagyon olvasható.
$Original lánc az escape előtt = '\+\&*|]'
$escaped string = [regex]::escape($original string escape előtt)
-------------
Forgatókönyv példák
[string]$a = 'abc\\def'
$Original zsinór az escape előtt = '\'
$Escaped string = [regex]::Escape($Original string before escape) #[\]--->[\\]
$b = [Regex]::replace($a,$Escaped String, 'Mikor 'ha')
$b #返回 [ABC Dangdang DEF]
-------------
5 ütés és kín, mindegyiknek megvan a maga célja, mindegyiknek megvan a maga menekülése. Együtt könnyen befolyásolhatja B-t, míg A lenyeli B-t.
Könnyen előfordulhat, hogy problémák adódhatnak a ['], ["], [\] és [*] szavakkal.
Olyan, mintha két réteg hosszú nadrágot viselnél, az egyiket húzod, a másik réteg is mozog, aggódnod kell a kompatibilis képességük miatt.
Ez rák, és nehéz megoldani.
De a szűkség bizonyos mértékig elkerülhető ez a probléma. Ehhez az a személy, aki a héjat írta, ki kell javítania a büdös problémát.
[Tegyék az awk kódot külön a .awk fájlba, ne a parancssorra]
A PowerShell-nek nincs ilyen problémája, tedd a parancssorra, vagy a szkriptbe, nincs hatása.








Előző:A .net/C# az Attribútumokat használja az egyszerű AOP megvalósításához
Következő:.net/c# Speedy IP Open Port Scanner v2.0 Ultimate Version
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com