Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 11695|Svar: 1

PowerShell Komme I Gang Tutorial - v0.3 version

[Kopier link]
Opslået på 19/04/2017 16.48.30 | | |


---------- Kapitel 1 Windows scripthistorik --------------


1 Den første generation af script-flagermus. Det startede med win95, win98--------- og sluttede omkring 2008. Funktioner: Tegnorienterede kommandoer med kommandolinje og pipeline.
2 Anden generations script VBS. Funktioner: Kun funktioner, overleveringsværdier, kald.
3 Tredje generations script powershell. Fra 2012 har kommandoen udviklet sig fuldt ud til objektorienteret. For eksempel er tasklist og get-process gentagne hjulfunktioner: objektorienterede. At arve fordelene fra de to foregående generationer af skriftsystemer.



Q: Hvorfor lære PowerShell?
A:
Missionæren svarede, at han ville studere i et år og fem år for at BAT. Simpel syntaks og stærke biblioteksfunktioner!
Den eneste i verden, der understøtter objekter med kommandoer på begge sider af pipelinen. dvs. objektorienteret kommando 1 | Objektorienteret kommando 2

Windows og Linux er forskellige:
I PowerShell-scriptet på Win,
Støt CR, LF, CRLF kom ind. Understøttelse af multitråding og multi-process-samtidighed.
Det er nemt at indlejre [Text2-lyd], "Rapportér kaptajn, disken er fuld".
Det er nemt at indlejre en grafisk grænseflade. (Når pop-up-grænsefladen beder dig indtaste brugernavn, adgangskode, enkelt select, multiple select osv.) Det er misundelsen ved Linux-scripts.

PowerShell adskiller sig fra Python:
Det er nemt at bruge kinesisk i PowerShell. Kinesisk skriftnavn, variabelnavn, kommentar. Kinesiske enkeltanførselstegn, kinesiske dobbelte anførselstegn.
Genkender automatisk GBK, UTF8, Unicode-kodning. pipeline-understøttende objekter, som Python-scripts er misundelige på.



Simpelt syntakseksempel 1: Magien ved powershell enkelt- og dobbeltanførselstegn.
Enkeltstående citater kan citeres med dobbelte anførselstegn. Og omvendt.
Enkelt- og dobbelt anførselstegn kan @引用 med @''.
BAT virkede ikke.


Missionærfortæller:
Jeg har tænkt meget over designet af tutorialen. Læste du ikke historiedelen af det, jeg skrev, var meget [simpel og grov]? Historien bæres med ét slag.
Men nu hvor jeg siger det, er det ikke vrøvl, jeg vil bare have, at eleverne gør det klart, at siden win7-win2008 er [objektiviseringen] af scripts blevet populær. Fører til næste kapitel af objektorienteret forklaring.
Enhver introduktionstutorial til PS bør nævne forskellen mellem tegnorienteret og objektorienteret. Det er ganske enkelt passende at gnide dette emne ind i kommandolinjens historie.

---------- Kapitel 2 Den vidunderlige -------------- af objektorienteret
Hvad er et objekt, hvorfor er det objektorienteret, og hvorfor forstærker Microsoft hjulet?

Objektorienteret eksempel 1:
Spørgsmål: Jeg spiser 2,2 æbler om dagen, hvor mange æbler spiser jeg på 17 dage?
A:
2,2 x 17 er tilgængeligt. Det er også muligt at bruge i++, der understøttes af ethvert scriptsprog.
for ($i = 1; $i -LT 18; $i++)
{
        $Apple = 2,2 + $Apple
        Skrivevært $i,$Apple
}

--------------------------------------------
Så snart spørgsmålet ændrer sig, vil jeg ikke fortælle dig antallet af dage, kun fortælle dig,
Jeg spiser 2,2 æbler om dagen, hvor mange æbler spiser jeg fra 20. januar til 20. juni 2017?
$days = ((f.eks. '2017-06-20') - (f.eks. '2017-01-20')).dage #值151


Jeg spiser 2,2 æbler om dagen, hvor mange æbler spiser jeg fra 20. januar til 20. juni 2020?
$days = ((f.eks. '2020-06-20') - (f.eks. '2020-01-20')).dage #值152

for ($i=(startdato '2020-01-20'); $i -lt (f.eks. '2020-06-20'); $i=$i.adddays(1))
{
        $Apple = 2,2 + $Apple
        Skrivevært $i,$Apple
}

Konklusion: Med datoobjektet er det enkelt at tælle dage, timer osv. [for,,i++] er almindeligt, men jeg havde aldrig tænkt på, at tallet i kunne være date-type.

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



Hvad er fordelene ved objektorienteret?
Før objektorienteret har vi kun strenge og heltal.
1 Der er et objekt.
----- [Karaktertype]-----
Glyfen har system.string, som er den mest basale.
System.Text.StringBuilder hukommelse, ofte skiftende, store strenge

----- [Numerisk type]-----
system.int32, system.int64, system.decimal, system.double, System.Numerics.BigInteger uendeligt heltal.
Almindeligt brugt er int32, decimal.

Om 1/3*3 er lig med 1 eller 0,9999 afhænger af datatypen.
----- [Array]-----
system.array array
System.arraylist-arraylisten ændrer sig ofte, såsom altid at omskrive, tilføje eller slette det, du skal bruge dette. Hastigheden er relativt høj.
System.Collections.Generic.HashSet deduplikerer arrays. Samme som pythons set-objekt.

-----【Form】-----
1 kommando output. For eksempel dir, get-process.
2. Når vi skriver scripts, bruger vi objekter og attributter til at konstruere.

----- [Andre] -----
Hashtabeller, filer osv.



2 har attributter. Attributter er argumenter og er mindre end strenge. Før der ikke er nogen attributter, skal vi filtrere og filtrere strenge med [hjernebrændende regulær], kaldet [deduktionsstreng]. Hvis du har attributter, behøver du dem ikke.
3 Der er en vej. Metoden er programmet, koden. Du behøver ikke selv at omskrive det. Bat er bestemt ikke godt, der er ingen måde, der er også en personlig skrivning, upålidelig, du tør ikke bruge den.
Metoder kan være selvskrevne ps-funktioner, selvskrevne metoder i ps-klasser.
Den metode, du selv skriver, kan midlertidigt [sammenflettes] med en tredjepartsklasse.
Metoden, du selv skriver, kan midlertidigt [flettes] ind i .net-klassen.

Hvad er ulemperne ved objektorienteret?
Prædikanten underviser i powershell til folk, der bruger winxp. Personen sagde, at PowerShell ikke er godt, objektet kræver for meget hukommelse, og han har ret.
I cmd returnerer jeg 100 filnavne (strenge) med dir. I PowerShell bruger jeg filer til at returnere 100 filobjekter, og Powershell bruger meget hukommelse.
Men nu er det anderledes:
1. Unødvendigt indhold bør ikke eksistere i variabler. Eller ødelæg den straks efter brug for at reducere hukommelsesforbruget.
2. Hukommelsestabet er nok. Fordi CPU-ydelsen ikke længere kan stige, øger vi febrilsk hukommelsen i et forsøg på at bytte plads ud med tid.
3. Vi ønsker mere kraftfulde funktioner, og objektorientering er det mest grundlæggende i dag. Som ikke er objektorienteret, py, php, java, .net, c++?

Resumé:
1 Objekter er større og mere hukommelseskrævende end strenge.
2. Der findes flere metoder til objektorientering og stærkere funktioner.
3 attributter er mindre end strenggranularitet, hvilket er ekstremt praktisk at bruge. Undgik [vanvittigt brug af hjernebrændende almindelig til at filtrere] strengene!


=== Vanvittig brug af hjernebrændende regulars til at filtrere eksempler, flagermusversion af ping standard gateway ===
@echo off&setlokal aktivering af forsinket udvidelse
Echo leder efter standardgatewayen...

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

Echo's standardgateway er: !ipgate!
=========== ping standard gateway.ps1============
$default gateway = (get-netroute -DestinationPrefix 0.0.0.0/0). NextHop
& ping.exe $ Standardgateway

# test-forbindelse $ standard gateway
=======================






Q: Selv hvis objektorienteret er så godt, hvor kommer disse objekter så fra?
A: Fra .net-biblioteket.


---------- Kapitel 3 Introduktion til .NET --------------


Q: Hvor mange versionsgrene har .NET Core?
A:
Der findes i øjeblikket tre versioner.
.NET 2.0 Den nyeste version af .NET 3.51
.NET 4.0 Den nyeste version af .NET 4.70
.NET Core 1.x Den nyeste version af .NET 1.2 til Apple-systemer, Linux-systemer og indlejrede systemer.
.NET Core 2.x Den nyeste version af .NET 2.0 til Apple-systemer, Linux-systemer og indlejrede systemer.



Q: Hvor mange funktionelle grene har .net?
A:
Desktop-gren i .NET. WinForm. Til udvikling af skrivebordsvinduer.
Lydbibliotek
asp.net i .NET og .NET Core. Webserverfunktionsbibliotek. Plejede at åbne en B/S webserver.
F# i .NET og .NET Core. Indeholder matematikbiblioteker, trigonometriske funktionsbiblioteker osv.
PowerShell i .NET og .NET Core. Indeholder almindelige systemstyringsgrænseflader såsom scriptfiler.
Linux
◦Ubuntu 14.04 \ 16.04
◦CentOS/RHEL 7 og derover
◦åbn SUSE 42 og derover
◦Arch Linux (archl inux har ikke et versionsnummer)
◦LINUX docker-container
◦Linux AppImage-container (bærbar applikation enkelt binær) https://github.com/probonopd/AppImageKit



MAC OS X
◦OS X 10.11


Q: Hvordan forbinder et .NET-program (C#-program) til en MySQL-server?
A:
Gå til MySQLs officielle hjemmeside for at downloade connectoren til .NET-sproget.
mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll
Tilføj MySql.Data-klassen til .net og tilføj databasegrænsefladen.



Konklusion:
WinXP-maskinen installerer først .net 3.51, win7 og win2008-maskinen, installer først .net 4.62 eller nyere.

.net har eksisteret i mange år, og der findes ikke meget software, der understøtter .net end Java. Alle .net-grene, grænseflader (databaser, WeChat osv.). )
De DLL'er, de biblioteker, PowerShell kan kaldes. Det er præcis det samme som exe'en skrevet i C#.


Q: Ud over .NET-grengrænsefladen, hvad er PowerShells egne biblioteker (moduler)?
A:
Se venligst næste kapitel

---------- Kapitel 4 brugte ofte indbyggede biblioteker, eksterne biblioteker og tredjepartsbiblioteker i PowerShell --------------

Missionærhjælp:
Dette kapitel kan ikke diskuteres, men det er blot en liste over biblioteker og manualer. Bogmærk dette kapitel. Efter at have kigget på disse biblioteker, vil du vide, hvad PowerShell kan gøre.



Win2012 Manuel adresse: (Mest almindeligt anvendte annoncemodul)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx
AD brugergruppestyring, DHCP, DNS, printer, fildeling, IIS, disk, NIC,



Exchange2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx
Active Directory 12         
Anti-Spam og Anti-Malware 59  
Klientadgang 100
Udvidelsesagent 4
E-mailadresser og adressebøger 37
Føderation og hybridkonfiguration  
Høj tilgængelighed  
Poststrøm  
Postkasse  
Postkassedatabase  
Postkasseserver  
Flyt og migrer  
Organisation  
Tilladelser  
Politik og overholdelse  
Sikkerhed  
Serversundhed, overvågning og ydeevne  
Del og samarbejd  
Samlet budskab  
Brugere og grupper  



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 og virtuelle maskiner i enterprise-kvalitet.


Kunder:
Tjenester, processer, logfiler, registre, filmapper, fjernstyring. Tidsbestemte opgaver.



Internet:
FTP, mail, SSH-klient plug-in til Linux-serverforbindelse.


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


Tekst 2 stemme


Grafisk brugerflade.


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


PowerShell software source officielle hjemmeside --- officielt PowerShell-bibliotek.
https://www.powershellgallery.com


De andre Niu x-biblioteker ligger alle på github. Derudover udgiver missionærerne regelmæssigt [Niu x Magic Weapon] of [Hidden Foot Pavilion], som er et nyttigt tredjepartsbibliotek til PowerShell.


---------- Kapitel 5 Begyndere skal lære at hjælpe med brugen af kommandoer--------------


Q: Hvordan ved jeg, hvilken PowerShell-version der er?
A:
$PSVersionTable



Q: Jeg kender ikke modulet, hvordan finder man det?
A:
get-module -ListAvailable


Q: Hvordan finder jeg kommandoer, når jeg kun kender dele af dem?
A:
get-command *service*



Q: Jeg kender kommandoen, men jeg ved ikke, hvilke parametre der er i kommandoen, hvordan man lister parametrene?
A:
get-help write-host -Parameter *
show-kommando skrive-vært


Q: Jeg kender parameteren, men jeg ved ikke, hvilken kommando der har denne parameter, hvordan finder jeg kommandoen?
A:
get-command -ParameterName-kodning



Q: Hvordan får jeg hjælp til en kommando fra kommandolinjen?
A:
Hent-Hjælp Få-Date

-Eksempler på kommandoer
-online online manual




Q: Jeg kender ikke attributmetoden for kommandoen (jeg kender ikke objektet), hvordan finder man det?
A:
"ABC" | get-member
get-date | get-member



Q: Hvor er den kinesiske .NET-manual?
A:
msdn。 De mest grundlæggende strengegenskaber og metoder findes i manualen.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx



---------- Kapitel 6 Introduktion til almindelige kommandoer --------------

Den første kommando, du skal lære, er dir
Q: Hvorfor bruge PowerShell-filen [dvs. Get-ChildItem] i stedet for cmd-dir?
A:
Objektorienteret, stærk metode og mange egenskaber.
$file = dir a:\pscode\temp183\aaa.txt
$file. Fuldnavn #返回全路径属性
$file. BaseName #返回文件名属性
$file. Udvidelse #返回扩展名属性
$file. LastWriteTime #返回最后写入时间属性



Den første syntaks, man skal lære, er array-syntaks. $a = @(xxx kommando)
Q: Nogle gange er man nødt til at bruge [tegnbaserede eksterne kommandoer] til at opdele returværdierne i arrays efter adfærdsenheder.
A:
$a = @(ipconfig)
$a[8] #第9行


Get-childitem brug:
Tilføjede parametre i PowerShell 3.0 og senere

get-childitem d:\xxx -file #过滤, kun outputfiler
-Mappefiltrering, kun outputmapper
-Skjult filtrering, kun skjult output


Q: Åbner du en fil, segmenter efter adfærd, lægger den i et array?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -ReadCount 0



Q: Åbn en fil som en stor streng og gem hele variablen?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -raw


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


Q: Hvordan kører jeg kommandoer i baggrunden?
A:
Der findes en cmd /c "kommando" i oldtiden.
Nu findes der powershell /c "kommando" eller powershell -c "kommando",
PowerShell -file "script.ps1" -argument 1 aaaa -parameter 2 1234
start-process -path xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'


Q: Jeg vil gerne køre scriptet med en anden lokal bruger, men PowerShell har ikke runas. Ligner EXE-kommandoer?
A:
Der findes forskellige sessioner i PowerShell.
IP + port + brugernavn + adgangskode = en session, jeg skal bare ændre brugernavnet, ændre adgangskoden, og du kan ændre rettighederne. Fordi tilladelser er knyttet til brugeren.
På samme måde behøver jeg kun at oprette n sessioner til brug uden at skifte bruger.
Den vigtigste new-pssession har -Credential-parameteren, indtast brugeradgangskoden, som ikke er det samme som runas. Er exe det samme? Hvad er SmbSession ellers?
Så jeg synes ikke, det er nødvendigt at bruge runas i PowerShell. exe。
Du skal bare bruge de kommandoer med session og Credential, ikke?

Tjek kommandoerne med navnet [Credential] i parameternavnet:
get-command -ParameterName Credential

Vis kommandoer med [session]-tegnet i kommandoen:
Get-command *session*


Q: Hvordan sender jeg en e-mail med PowerShell?
A:
Send-MailMessage -Subjekt 'Emne'
-Fra "din hotmail-konto @hotmail.com" -Til "din QQ-mail @qq.com" '
-SmtpServer "smtp.live.com" -port 587 -useSsl -credential "din hotmail-konto @hotmail.com" '
-Vedhæftede filer $Attachments -BodyAsHTML -body $HTML indholdet af e-mailen

Seddel:
1 anvendelsexxx@QQ.com+ Din QQ-adgangskode + ovenstående kommando At sende en e-mail virker ikke. For at sikre QQ-adgangskoder kræver Tencent uafhængige e-mail-adgangskoder.  
2 Afsendelse fra QQ-postboks er ikke mulig som standard. Den er slået fra, og du skal slå SMTP til i indstillingerne.
3 PowerShell 3.0 og derover understøtter kun portparametre. For win7 skal du først installere den nyeste version af PS




Q: Overvåg Windows CPU, disk, netværk, IO osv.
A:
Performance Monitor eller
Get-Counter henter performance counter-data fra både lokale og eksterne computere.

Q: Hvordan kan jeg se, hvilke modgenstande der er tilgængelige?
A:
Det står alt sammen i manualen.
Tjek hvad de vigtigste kategorier af anvendelser er:
Get-Counter -ListSet * | Sort-Objekt CounterSetName | Format-Table CounterSetName


For eksempel ved jeg nu, at diskkategorien er (PhysicalDisk), og så tjekker jeg underkategorierne i disken, brug:
(Get-Counter -ListSet PhysicalDisk). Stier




Q: Hvordan ser jeg loggene?
A:
Event Viewer, eller
get-eventlog



Q: Hvordan udfører jeg strenge?
A:
$cmd 1 = 'xxxx'
Invoke-Expression $cmd 1


Nå, vi har lært meget om individuelle kommandoer, lad os se på udførelsen af Powershell-scripts.


---------- Kapitel 7 PS1 scripting, fejlfinding og kørsel --------------
Et script er en kombination og et overlay af kommando-sætninger. Manuskriptet er lim, gå rundt og find andre at ringe til, kig efter hjul til at samle bilen. I stedet for at lave hjul, til andre at bruge.



Cainiao spurgte: Hvordan skriver man et manuskript?
Den gamle fugl svarede:
1 Detaljerne i problemet skal præciseres. For eksempel: lav månekager.
2 Problemløsningsidéerne er også grundlæggende færdige. Mel og vand, kom fyldet i, damp.
3 Hvilke kommandoer og variabler skal bruges. Tilsæt fem kerner, sæt dem i en form, og klem dem.
4 Skriv groft først, skriv groft nok.
5 fejlfinding bestået.
6 Skriv i detaljer. Overvej fejlsituationen, plus fejlkoden, fejlmeddelelsen. Fjern fejlbehæftet kode, som ikke er let kompatibel. Omskriv kode, der ikke fungerer godt.
Indtil nu ser et godt script måske ikke godt ud, men det burde være meget nyttigt.
7 Fint udført. Refaktorering, at skrive genbrugte kodeuddrag ind i funktioner. Omskriv variabelnavne, så folk kan forstå dem med et hurtigt blik. Formater koden godt og lav indrykningen.


Q: Hvilket IDE bruges til at skrive PS1?
A:
Det mest anbefalede er at bruge Visual Studio Code plus PowerShell-plugin'et.
Funktioner: Kodeprompts, autofuldførelse, kodeformatering, indrykning for at vælge mellemrum eller tabulator, filkodningsindstillinger.
Der findes et plugin kaldet FTP-sync, som kan skrive PS1-scripts i Win's VSCode og automatisk synkronisere dem til Linux-mappen, når de gemmes.



Q: Hvilke værktøjer bruges til at fejlfinde PS1?
A:
Den mest anbefalede powergui life bruger ikke et lokomotiv, selv hvis det er en helt, vil PS-scriptet også hoppe og rapportere en fejl!
VScode er også fint



Q: Hvilke værktøjer bruger du til kodeformatering?
A:
Alt, der skal indrykkes, er indrykket, og lighedstegnene er justeret.

PowerShell ISE + ISE Plugin [ISESteroids]

Installation:
Install-Module -Navn ISESteroids

ISE kører:
Start-Steroider





Q: Hvilke værktøjer bruger du for at gøre kodens farve smuk?
A:
1 Brug ovenstående værktøjer til at formatere koden.
2 Brug PowerShellise + Missionary DIY Color Matching 2016 Edition.
3 Tag billedet. Verdens mest behagelige og smukt farvede PowerShell-kode produceres.

Alle ovenstående IDE'er er på kinesisk.




Q: Hvordan navngiver jeg et manuskript? xxx.ps1
A:
Det anbefales at starte med 1---2 bogstaver og bruge det kinesiske filnavn til resten. dvs. [BF tager backup af alle gamle files_ og sletter .ps1 fra for 10 dage siden]
På denne måde skriver du først [bf] og trykker derefter tab for at fuldføre scriptnavnet.




Q: Hvordan aktiverer jeg PowerShell-script-eksekveringstilladelsen?
A:
echo Følgende kode kan køres i cmd med administratorrettigheder eller i PowerShell med administratorrettigheder.
Echo hvis jeg bruger PowerShell fjernbetjening. Både den lokale maskine og den eksterne maskine skal køres med administratorrettigheder.
"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -kommando "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
"C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -kommando "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -kommando "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -kommando "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
pause



Q: Hvad er ulemperne ved lokomotivet (powergui)?
A:
Kan ikke sætte baggrundsfarven.




Q: Hvad er ulemperne ved vscode?
A:
$ og variabelnavnet har ikke samme farve.
Debugging-funktioner er langsomme og nogle gange fastlåste.




Q: Hvad er ulemperne ved ISE?
A:
Du kan ikke vælge at gemme eller konvertere kodningen.
Indryk til [mellemrum], [tab] begge. I andre tekstredigeringsprogrammer vises indrykning.




---------- Kapitel 8 Faktisk Kampøvelse --------------
Gruppen 6504748 og skrev denne del selv.

5. Eksempel 1: Tænd og sluk for tjenesten
6. Eksempel 2: Kontrol-firewall (Åben, Luk, Regel)
7. Eksempel 3: Sæt en politik (adgangskodepolitik som eksempel)



---------- Kapitel 9 Disse ekstra valgfag Er du interesseret? --------------
PowerShell-script, kommandolinjeargumenter sender værdier og binder variable-eksempler
http://www.cnblogs.com/piapia/p/5910255.html




Lad PowerShell kun køre ét script ad gangen (eksempel på proces-gensidig udelukkelse)
http://www.cnblogs.com/piapia/p/5647205.html



powershell-karakterinterface, powershell plus WPF-interface, 2048-spil
http://www.cnblogs.com/piapia/p/5531945.html


To crawlere i PowerShell
http://www.cnblogs.com/piapia/p/5367556.html



PowerShell-script: Tilfældig adgangskodegenerator
http://www.cnblogs.com/piapia/p/5184114.html



Eksempel på en PowerShell-rekursiv algoritme
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html



PowerShell Voice Calculator
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html



1 List alle EFS-krypterede filer. 2Dekrypter alle EFS-krypterede filer
http://www.cnblogs.com/piapia/p/4702514.html
Det er et værktøj skrevet til systemadministratorer og netværksadministratorer.
Efter en medarbejder forlader sit job, antager hans disk, at der er 10.000 filer (mapper), hvoraf der er 3 filmapper krypteret af EFS. I Explorer er disse tre filer grønne.
Men hvis du klikker på (10.000 kataloger) én efter én, uanset om det er grønt eller ej, vil du være udmattet.
På dette tidspunkt bruger netværksadministratoren medarbejderens WIN-konto, logger ind på medarbejderens PC og bruger dette script til at liste alle EFS-krypterede filer.


---------- Kapitel 10 Stil venligst et spørgsmål--------------
Mine damer og herrer, hvis der er noget at rapportere, så forlad retten uden noget.



----------Kapitel 11 Linux Kapitel--------------

Missionær: Så længe du kan installere Linux-versionen af PowerShell, behøver du kun ps1-scripts, ingen sh-scripts.
Fortolkning:
1 Kort sagt har bash kun syntaks, ingen kommandoer og biblioteker.
2 bash har kun 1% syntaksfunktioner, PowerShell kan ikke implementere det. Det er normalt, ingen to blade er helt ens i verden.
Det betyder, at du kun behøver PS1-scriptet, ingen SH.
3 bash er for gammelt, samme funktion, Powershell kan implementeres, og det kan også spare tid, såsom 10.000 tomme fors, Powershell skal spare 90% af tiden.
4 Lær at bruge /usr/bin/powershell i stedet for /usr/bin/bash. Andre Linux-kommandoer, pipelines, gammel kung fu osv. bruges præcis på samme måde som i bash.
5 Brug gradvist objektorienterede, simple og kraftfulde PowerShell-kommandoer og biblioteker i stedet for hjernebrændende Linux-kommandoer, eller begge dele. ---Dette er det generelle princip, den generelle disposition.


Q: Hvilke versioner af Linux kan installere PowerShell?
A:
◦Ubuntu 14.04 / 16.04
◦CentOS/RHEL 7 og derover
◦åbn SUSE 42 og derover
◦Arch Linux (archl inux har ikke et versionsnummer)
◦LINUX docker-container
◦Linux AppImage-container (bærbar applikation enkelt binær) https://github.com/probonopd/AppImageKit





Q: Hvorfor siges det, at kommandolinjen i win er stærkere end Linux?
A:
Kommandoer i 1 win har udviklet sig til objektorienteret PowerShell. Linux virker ikke endnu. Fra win7 til win2012r2 slutter udviklingen.

2 Jeg plejede at høre, at Unix har mange Linux-kommandoer og er meget kraftfuldt. Men nu siger jeg dig, at powershell-kommandoer er mindst ti gange dyrere end linux-kommandoer. Under alle omstændigheder har jeg ikke lært det hele mit liv.

3 Linux er mere graf-afhængig med for få kommandoer. Og win-kommandoen er meget mere end Linux.
3.1 På enhver linux er kommandoerne i mailserveren mere og mere komplette end i exchange? Mere bekvemt end udveksling?
3.2 DNS-serverbindingen i Linux er ikke lige så bekvem som DNS-kommandoen win. Har bind en [kommando] til at tilføje en IPv4 A-post til et domænenavn? Ikke afhængig af webgrafik endnu?
Nogle siger, at man skal bruge nsupdate. Det handler ikke om at lave en tekst og så køre den. Hvad er forskellen på at erstatte [DNS zone-filen] med sed og så genindlæse [DNS-zonen]?

4 I den nye version af win, eller i PowerShell, er det hele [kommando + parameter]. Og det meste af Linux er stadig [sed tekst].
4.1 Tag for eksempel IP-adressen, der er tildelt netværkskortet.
NMCLI Connection Add Type Ethernet CON-Name NEW_STATIC IFNAME ENO1234567 IP4 192.168.1.111 GW4 192.168.1.1,
Er det ikke mere bekvemt end at bruge sed til at scrape ifcfg-eth0-filen?

5 Ethvert sprog behandler data, og det gør scripting også. Med hjælp fra objekter er PowerShell mere bekvemt end awk. Shenma csv, excel, xml, json
SQL-tabel, NOSQL-tabel. html osv.




Q: Hvordan implementerer PowerShell [sed -i "s/what to look for/replace with /g" filnavn]?
A:
@(Get-Content filnavn) -erstat 'aaa','bbb' | Set-Content filnavn $aaa
Det vil sige, åbn filen, udskift den, gem filen.



Q: Hvorfor bruger færre og færre mennesker SED i Linux?
A:
Argument 1: AWK kan erstatte SED, men SED kan ikke erstatte AWK.
sed, det vil sige, find blot substitutionen. awk har for og lignende for at implementere kompleks behandling.

Argument 2: AWK bruger standard regular, og regular i sed er den samme som i sed, men delene er forskellige.
At lære SED betyder, at to sæt uforenelige regelmæssige standarder i hjernen kæmper mod hinanden.



Q: Så det er rigtigt at lære AWK?
A:
At lære PowerShell er nemmere end at lære AWK.
PowerShell bruger [split og then split], [if og if], where-object, string.substing(), string[-3] osv.
Bryd strengproblemet ned lag for lag. Enklere end awk almindelig.




Q: Kan pipelines og AWK bruges i PowerShell?
A:
Du kan kalde awk i PowerShell, præcis som i Bash. De gamle kampsportsgrene er fuldstændig Torino.



Q: Hvordan implementerer man funktionen [awk '{print $3}'] i PowerShell?
A:
($line -split "\s+|\t+") [0] #第一行
($line -split "\s+|\t+") [2] #第三行       

Get-Content /xxx/yyy.txt | foreach-objekt {$_.split()[2]} #awk '{print $3}'


Q: Hvordan implementerer man funktionen [awk -f a.awk file] ved hjælp af PowerShell?
A:
I bund og grund er dette en filtreringsfunktion, der bruger et rør. I PowerShell kaldes dette et filter eller filter.
PowerShell understøtter kombinationen af kommando + rør + filter. Som i Kommando 1 | Filter 1 | Kommando 2 | Filter 2 | Filter 3
filterfilter1
{
AWK-lignende funktionalitet
}





Q: Findes der [xargs] i PowerShell?
A:
Rørvariablen, der bruges i pipelinen, kaldes [$psitem], og dens alias er [$_].
PowerShell bruger foreach-object og $_ til at implementere funktionen xargs.





Q: Findes der et [<] [<<] nummer i PowerShell?
A:
Nej.
Måske er [<]-symbolet fra højre mod venstre anti-menneskelig tænkning. Mange kommandoer i PowerShell er blevet ændret fra venstre mod højre.
Hvis get-random < (1..100) ikke er lovligt i PowerShell, bør det lovlige være get-random -inputobject (1..100), eller 1. 100 |get-random
Mindre end 1% af mærkelige kommandoer [skal] stole på [<]-symbolet, hvilket kan opnås ved at kalde cmd i PowerShell eller bash (PowerShell for Linux) i PowerShell.
For eksempel $a = bash -x "kommando 1 < kommando 2" #linux
For eksempel $a = cmd -c "kommando 1 < kommando 2" #cmd




Q: Findes der en forventet kommando i PowerShell? Hvordan forbinder man til en Linux SSH-server fra Win med PowerShell?
A:
1. Ja. Til nogle mærkelige og delvise dørresponsbehov findes der tredjepartsmoduler.
2 Nej. PowerShell bruger ikke kommandoen expect, men bruger en session.

Brug Powershell + SSH klientbibliotek + IP + port + brugernavn + adgangskode til at kombinere til en forbindelse og sende kommandoer til denne forbindelse. Koden er som følger:
$connection 1 = New-SSHSession -ComputerName 1.1.1.1 -Port 22 -Credential aaaa #将提示输入密码
$to return = Invoke-SSHCommand -Kommando {cat /etc/issue} -SSHSession $Connection 1

Denne standardfunktionalitet såsom (MongoDB, mysql, ssh, ftp, http, telnet osv.) har drivere eller moduler. PS og. .netprogram, via driverforbindelsen, sender kommandoer og accepterer data.
Fordelene ved at bruge moduler eller drivere til at sende og modtage [data] er:
Dataene vil blive konverteret til et .net-objekt, som igen vil blive konverteret til et PS-objekt. Ellers er det kun strenge, og [objektorienterede kampsport] fra PS-sekten er ubrugelige.


Tag MongoDB som eksempel, hvad er fordelene ved at bruge moduler eller drivere til at sende kommandoer? Hvem taler?
Jeg føler, at fordelene er:
1 Multitrådning. Baggrundstråden kører og optager ikke den nuværende tråd.
2. Vi kan [afbryde halvvejs] fra sessionen når som helst, udføre anden PS-kode, funktioner og [vende tilbage til sessionen når som helst]. Scripts er mere fleksible at skrive og nemme at fejlfinde.
3session bringer flere brugere, og forskellige brugere kan have forskellige servertilladelser.




Q: Findes der su, runas-kommandoen i PowerShell? Hvordan kører man en anden brugers kommando med PowerShell?
A:
Nej.
I PowerShell er det nemt at køre Linux-native kommandoer og pipelines. For eksempel:
sshaaa@127.0.0.1"Udført med brugerens AAA-rettigheder, kommando xxx"  
sshpass -p user_password sshaaa@192.168.1.1



Q: To Linux-maskiner med SSHD? Hvordan forbinder og sender man kommandoer med PowerShell?
A:
Ud over ovenstående metode kan du også bruge metoden til at oprette en ny Linux-session. (Forbundet fra Linux til en anden SSHD)
Bemærk: Denne metode kræver redigering af /etc/ssh/sshd_config-filen. Tilføj følgende linje
Delsystem powershell powershell -sshs -NoLogo -NoProfile
Derefter genstarter du SSHD-serveren.
Den detaljerede manual findes her:
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting

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


Resumé:
Win-klient, forbundet til Linux-server. I øjeblikket kræves tredjepartsmoduler, selvfølgelig er dette et modul i det officielle bibliotek, brug bare installationsmodulet PoshSSH.
Linux-klient, forbundet til Linux-server. Du skal redigere filen /etc/ssh/sshd_config.
Linux-klient, forbundet til Win-server. Du skal tænde for tjenesten på serveren. Stol på serveren på klienten.
Win-klient, forbundet til Win-server. Du skal tænde for tjenesten på serveren. Stol på serveren på klienten.


Q: Findes der [grep] i PowerShell?
A:
Select-string-kommandoen bruges i PowerShell.
Fra et kodningsperspektiv alene har select-string=smart, grep=dum + en hård fejl :mrgreen:
Når der er en BOM-header, genkender select-string automatisk filkodningstypen.
Når der ikke er nogen BOM-header, er der ikke behov for at ændre shell-miljøet som linux+grep, og der er ikke behov for at gemme filer efter en bestemt kode. Du behøver kun at specificere -kodningsparameteren i henhold til filkodningen.
Og grep har ikke denne funktion, det vil sige, der er en hård fejl i [kan ikke specificere filkodningstype].
Selvfølgelig er grep ikke ubrugelig, grep har nogle parametre, har yderligere unikke funktioner, select-string har ikke, og det er her, grep er stærkere end select-string.



Q: Findes der en [evaluering] i PowerShell?
A:
Brug Invoke-Expression til at udføre strenge i PowerShell.



Q: Findes der en tail -f i PowerShell? Det er muligt at outputte de nyligt genererede linjer i en fil i realtid.
A:
Get-Content: D:\a.txt -Tail 10 -ReadCount 0 -Vent



Q: Jeg vil bruge et lille tastatur og vil også gerne have en terminal med 256 farver, så hvordan skal Xbox opsættes?
A:
Terminal --- Terminal Type --- [putty-256color] eller [eksport TERM=putty-256color]
Terminal --- tastatur --- standard eller Linux.

Eterm-256color kan
gnome-256color virker ikke
Konsole-256color virker ikke
Putty-256color
PowerShell Missionary Original Del 2017-02-15
RXVT-256COLOR virker ikke
Screen-256color virker ikke
ST-256COLOR
VTE-256COLOR virker ikke
xterm-256color virker ikke
Det samme princip gælder for SecureCRT




Q: Hvem er mest kraftfuld, shell eller python?
A:
Hver har sine egne styrker og kan supplere hinanden. Men de supplerer ikke hinanden. Mere om dette nedenfor.


Q: Hvorfor er Linux-versionen af PowerShell mere egnet til drifts- og vedligeholdelsespersonale til at skrive scripts? (Sammenlignet med Linux-versionen af Python)
A:
1 Python har objektorienterede funktioner, og Linux-versionen af PowerShell er tilgængelig.

2 Python har ikke en kommandolinje.
2.1 Python kan ikke være standardterminalen for SSH, men PowerShell for Linux kan. Se kapitlet: "To Linux-maskiner med SSHD? Hvordan forbinder og sender man kommandoer med PowerShell? 》
2.2 At bruge shell-kommandoer (awk, grep osv.) i python er meget besværligt. Der skal tilføjes en masse py-syntaks og kode. PowerShell til Linux kører awk-kommandoerne ligesom bash.

3 Python har ingen rør. Det er meget besværligt at overføre værdier mellem n [kommandolinjeprogrammer]. Der skal tilføjes en masse py-syntaks og kode. Linux-versionen af PowerShell har pipelines, og at køre awk-kommandoer er det samme som bash.

4 Python har version 2, version 3 er ikke kompatibel med Krebs! Spørgsmål. PowerShell til Linux har ikke sådan et problem.
4.1 Disse spørgsmål indeholder kodningsproblemer.

Konklusion:
Shell-kommandoer som grep er ikke gode til kodningsunderstøttelse, ikke så gode som kodningsproblemerne i 4.1 ovenfor i PowerShell derhjemme. Plus de ovennævnte 2,3 point.
Det gør Linux-brugere utilpasse, men meget få bruger eksterne kommandoer i py. [Py Command Library] og [Shell Command] er døde og kan stort set ikke supplere hinanden. Linux-versionen af PS er anderledes.




Q: Hvorfor siges det, at PowerShell er bedre end shell?
A:
1 PowerShell er objektorienteret, og egenskaber returnerer direkte tilgængelige data. Dette er meget mindre almindeligt end i tegnscriptsprog (bat, shell), der kræver strengdeduktion.
Født med mindre [indhold, der skal undslippes].
2 Strengsøgningssubstitution, der findes metoder i PowerShell, som ikke kræver escape, i .NET-klassen. For eksempel:
[streng]$a = 'abc\\def'
$b = $a.erstatte('\\','når')
#返回: [ABC som forsvar]
For at afgøre, om en IP er legitim, kan du bruge TryParse()-metoden i IPAddress-klassen.
Kort sagt er mit forslag at bruge så mange .net-metoder som muligt, bruge så lidt regex som muligt, eller bare bruge simple regulars.
3 PowerShell bruger ['] som et escape-symbol. ['] bruges mindre almindeligt end [\] og bruges langt mindre som et flugtsymbol.
3.1 Når man skriver databasescripts, er der flere konflikter med ['].
For eksempel vil ['table'] komme i konflikt med ['t], ligesom ['biao'] vil komme i konflikt med ['b], og jeg løste det senere med ['table'].
4 ps strengsøgning og -udskiftning, har en almindelig motor, er kompatibel med Linux og bruger også [\] som en flugtvej.
Der findes dog en særlig streng-escape-funktion [[Regex]::Escape()], som først escapes og derefter findes og erstattes, og koden er meget læsbar.
$Original streng før escape = '\+\&*|]'
$escaped streng = [regex]::escape($original streng før escape)
-------------
Skrifteksempler
[streng]$a = 'abc\\def'
$Original streng før flugt = '\'
$Escaped streng = [regex]::flugt($Original streng før flugt) #[\]--->[\\]
$b = [Regex]::replace($a,$Escaped String, 'When')
$b #返回 [ABC Dangdang DEF]
-------------
5 bash og awk, hver har sin egen for, hver har sin egen flugtvej. Tilsammen er det let for A at påvirke B, og A sluger B.
Det er også let at få problemer, når man støder på ['], ["], [\] og [*].
Det er som at have to lag lange bukser på, du trækker det ene lag af, og det andet lag bevæger sig også, du skal bekymre dig om deres kompatibilitet.
Det er kræft og svært at løse.
Men pinch, dette problem kan også undgås til en vis grad. Det kræver, at personen, der skrev skalleren, retter det ildelugtende problem.
[Læg awk-koden i .awk-filen separat, ikke på kommandolinjen]
PowerShell har ikke dette problem, læg det på kommandolinjen, læg det i scriptet, det har ingen effekt.








Tidligere:.net/C# bruger Attributter til at implementere simpel AOP
Næste:.net/c# Speedy IP Open Port Scanner v2.0 Ultimate-version
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com