Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 11695|Jawab: 1

Tutorial Memulai PowerShell - versi v0.3

[Salin tautan]
Diposting pada 19/04/2017 16.48.30 | | |


---------- Bab 1 Riwayat Skrip Windows --------------


1 Kelelawar skrip generasi pertama. Dimulai dengan win95, win98--------- dan berakhir sekitar tahun 2008. Fitur: Perintah berorientasi karakter, dengan baris perintah dan alur.
2 Skrip generasi kedua VBS. Fitur: Hanya fungsi, meneruskan nilai, panggilan.
3 Powershell skrip generasi ketiga. Mulai tahun 2012, komando telah sepenuhnya berkembang menjadi berorientasi objek. Misalnya, daftar tugas dan get-process adalah fitur roda berulang: berorientasi objek. Mewarisi keunggulan dari dua generasi skrip sebelumnya.



T: Mengapa belajar PowerShell?
A:
Misionaris itu menjawab bahwa dia akan belajar selama satu tahun lima tahun untuk BAT. Sintaks sederhana dan fungsi perpustakaan yang kuat!
Satu-satunya di dunia yang mendukung objek dengan perintah di kedua sisi pipa. yaitu perintah berorientasi objek 1 | Perintah berorientasi objek 2

Windows dan Linux berbeda:
Dalam skrip PowerShell di Win,
Mendukung CR, LF, CRLF masuk. Mendukung konkurensi multi-threading dan multi-proses.
Sangat mudah untuk menyematkan [suara Text2], "Laporkan Kapten, disk penuh".
Menyematkan antarmuka grafis itu mudah. (Ketika, antarmuka pop-up meminta Anda untuk memasukkan nama pengguna, kata sandi, pilihan tunggal, pilihan ganda, dll.) Ini adalah kecemburuan skrip Linux.

PowerShell berbeda dari Python:
Sangat mudah untuk menggunakan bahasa Mandarin di PowerShell. Nama skrip Cina, nama variabel, komentar. Tanda kutip tunggal Cina, tanda kutip ganda Cina.
Secara otomatis mengenali pengkodean GBK, UTF8, Unicode. Objek dukungan alur, yang membuat skrip Python cemburu.



Contoh sintaks sederhana 1: Keajaiban tanda kutip tunggal dan ganda powershell.
Kutipan tunggal, dapat dikutip dengan tanda kutip ganda. Dan sebaliknya.
Tanda kutip tunggal dan ganda dapat @引用 dengan @''.
BAT tidak berhasil.


Narator Misionaris:
Saya banyak memikirkan desain tutorial. Bukankah Anda membaca bagian sejarah dari apa yang saya tulis sangat [sederhana dan kasar]? Sejarah dibawa dengan satu pukulan.
Tapi karena saya mengatakannya, itu bukan omong kosong, saya hanya ingin siswa menjelaskan bahwa sejak win7-win2008, [objektifikasi] skrip menjadi populer. Mengarah ke bab berikutnya dari penjelasan berorientasi objek.
Setiap tutorial pengantar PS harus menyebutkan perbedaan antara berorientasi karakter dan berorientasi objek. Sangat tepat untuk menggosok topik ini ke dalam sejarah baris perintah.

---------- Bab 2 -------------- Indah Berorientasi Objek
Apa itu objek, mengapa berorientasi objek, dan mengapa Microsoft memperkuat roda?

Contoh berorientasi objek 1:
Pertanyaan: Saya makan 2,2 apel sehari, berapa banyak apel yang saya makan dalam 17 hari?
A:
2.2 x 17 tersedia. Dimungkinkan juga untuk menggunakan i++ yang didukung oleh bahasa skrip apa pun.
untuk ($i = 1; $i -lt 18; $i++)
{
        $Apple = 2,2 + $Apple
        $i,$Apple host tulis
}

--------------------------------------------
Segera setelah pertanyaan berubah, saya tidak akan memberi tahu Anda jumlah hari, hanya memberi tahu Anda,
Saya makan 2,2 apel sehari, berapa banyak apel yang saya makan dari 20 Januari hingga 20 Juni 2017?
$days = ((tanggal dapatkan '20-06-2017') - (tanggal dapatkan '20-01-2017')).hari #值151


Saya makan 2,2 apel sehari, berapa banyak apel yang saya makan dari 20 Januari hingga 20 Juni 2020?
$days = ((tanggal dapatkan '20-06-2020') - (tanggal dapatkan '20-01-2020')).hari #值152

untuk ($i=(tanggal-dapatkan '2020-01-20'); $i -lt (tanggal dapatkan '2020-06-20'); $i=$i.adddays(1))
{
        $Apple = 2,2 + $Apple
        $i,$Apple host tulis
}

Kesimpulan: Dengan objek tanggal, menghitung hari, jam, dll., Sederhana. [for,,i++] adalah hal yang umum, tetapi saya tidak pernah berpikir bahwa angka saya bisa menjadi tipe tanggal.

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



Apa keuntungan dari berorientasi objek?
Sebelum berorientasi objek, kita hanya memiliki string dan bilangan bulat.
1 Ada objek.
----- [Jenis Karakter]-----
Mesin terbang memiliki system.string, yang merupakan yang paling mendasar.
System.Text.StringBuilder, sering berubah, string besar

----- [Tipe numerik]-----
system.int32, system.int64, system.decimal, system.double, System.Numerics.BigInteger bilangan bulat tak terbatas.
Yang biasa digunakan adalah int32, desimal.

Apakah 1/3*3 sama dengan 1 atau 0,9999 tergantung pada jenis data.
----- [Array]-----
system.array array
system.arraylist sering berubah, seperti selalu menulis ulang, menghapus, atau menghapus, Anda perlu menggunakan ini. Kecepatannya relatif cepat.
System.Collections.Generic.HashSet deduplikasi array. Sama seperti objek set python.

-----【Formulir】-----
1 keluaran perintah. Misalnya, dir, get-process.
2. Saat menulis skrip, kita menggunakan objek dan atribut untuk membangun.

----- [Lainnya] -----
tabel hash, file, dll.



2 memiliki atribut. Atribut adalah argumen dan lebih kecil dari string. Sebelum tidak ada atribut, kita perlu memfilter dan memfilter string dengan [brain-burning regular], yang disebut sebagai [string deduksi]. Jika Anda memiliki atribut, Anda tidak membutuhkannya.
3 Ada jalan. Metodenya adalah program, kode. Tidak perlu menulis ulang sendiri. Kelelawar jelas tidak bagus, tidak mungkin, ada juga tulisan pribadi, tidak dapat diandalkan, tidak berani menggunakannya.
Metode dapat berupa fungsi ps yang ditulis sendiri, metode yang ditulis sendiri di kelas ps.
Metode yang Anda tulis sendiri dapat [digabungkan] sementara ke dalam kelas pihak ketiga.
Metode yang Anda tulis sendiri dapat [digabungkan] sementara ke dalam kelas .net.

Apa kerugian dari berorientasi objek?
Pengkhotbah mengajarkan powershell kepada orang-orang yang menggunakan winxp. Orang itu mengatakan bahwa powershell tidak bagus, objeknya terlalu intensif memori, dan dia benar.
Dalam cmd saya mengembalikan 100 nama file (string) dengan dir. Di PowerShell, saya menggunakan dir untuk mengembalikan 100 objek file, dan Powershell menghabiskan banyak memori.
Tapi sekarang berbeda:
1. Konten yang tidak perlu tidak boleh ada dalam variabel. Atau hancurkan segera setelah digunakan untuk mengurangi penggunaan memori.
2. Penurunan memori sudah cukup. Karena kinerja CPU tidak dapat lagi naik, kami dengan panik meningkatkan memori dalam upaya untuk menukar ruang dengan waktu.
3. Kami menginginkan fitur yang lebih kuat, dan orientasi objek adalah yang paling mendasar akhir-akhir ini. Mana yang tidak berorientasi objek, py, php, java, .net, c++?

Ringkasan:
1 Objek lebih besar dan lebih intensif memori daripada string.
2. Ada lebih banyak metode untuk orientasi objek dan fungsi yang lebih kuat.
3 atribut lebih kecil dari granularitas string, yang sangat nyaman digunakan. Hindari senar [penggunaan reguler pembakaran otak yang gila untuk menyaring]!


=== Penggunaan reguler pembakaran otak yang gila untuk memfilter contoh, versi kelelawar dari gateway default ping ===
@echo mengimbangi &menetapkan lokal memungkinkan ekspansi tertunda
echo sedang mencari gateway default...

untuk /f "usebackq delims=" %%i di ('ipconfig /all') do (
echo %%i|find /i "gateway">nul|| echo %%i|temukan "gateway default" >nul
jika "!level!" =="0" (
untuk /f "tokens=2 delims=:" %%a di ("%%i") lakukan untuk /f "delims= " %%m di ("%%a") do atur ipgate=%%m
)
)

Gerbang default echo adalah: !ipgate!
=========== ping gateway.ps1 default============
$default gateway = (get-netroute -DestinationPrefix 0.0.0.0/0). Lompat Berikutnya
& ping.exe $ Gerbang Default

# uji-koneksi $ gateway default
=======================






T: Bahkan jika berorientasi objek sangat bagus, dari mana benda-benda ini berasal?
J: Dari perpustakaan .net.


---------- Bab 3 Pengantar .NET --------------


T: Berapa banyak cabang versi yang dimiliki .NET Core?
A:
Saat ini ada tiga versi.
.NET 2.0 Versi terbaru .NET 3.51
.NET 4.0 Versi terbaru .NET 4.70
.NET Core 1.x Versi terbaru .NET 1.2 untuk sistem Apple, sistem Linux, dan sistem tertanam.
.NET Core 2.x Versi terbaru .NET 2.0 untuk sistem Apple, sistem Linux, dan sistem tertanam.



T: Berapa banyak cabang fungsional yang dimiliki .net?
A:
Cabang desktop di .NET. Formulir Menang. Untuk mengembangkan jendela desktop.
Perpustakaan suara
asp.net di .NET dan .NET Core. Perpustakaan fungsi server web. Digunakan untuk membuka server web B/S.
F# di .NET dan .NET Core. Berisi pustaka matematika, pustaka fungsi trigonometri, dll.
PowerShell di .NET dan .NET Core. Berisi antarmuka manajemen sistem umum seperti file skrip.
Linux
◦Ubuntu 14.04 \ 16.04
◦CentOS/RHEL 7 ke atas
◦buka SUSE 42 ke atas
◦Arch Linux (archl inux tidak memiliki nomor versi)
◦ Kontainer buruh pelabuhan LINUX
◦Linux AppImage wadah (aplikasi portabel biner tunggal) https://github.com/probonopd/AppImageKit



MAC OS X
◦OS X 10.11


T: Bagaimana program .NET (program C#) terhubung ke server MySQL?
A:
Buka situs web resmi mysql untuk mengunduh konektor untuk bahasa .NET.
mysql-connector-net-6.9.9-noinstall.zip--->v4.5--->MySql.Data.dll
Tambahkan kelas MySql.Data ke .net dan tambahkan antarmuka database.



Kesimpulan:
Mesin WinXP pertama kali instal mesin .net 3.51, win7 dan win2008, instal .net 4.62 atau lebih tinggi terlebih dahulu.

.net telah ada selama bertahun-tahun, dan tidak banyak perangkat lunak yang mendukung .net selain java. Semua cabang, antarmuka .net (database, WeChat, dll.). )
DLL itu, pustaka itu, powershell dapat dipanggil. Ini persis sama dengan exe yang ditulis dalam C#.


T: Selain antarmuka cabang .NET, apa saja pustaka (modul) PowerShell sendiri?
A:
Silakan lihat bab berikutnya

---------- Bab 4 Pustaka bawaan yang umum digunakan, pustaka eksternal, dan pustaka pihak ketiga di PowerShell --------------

Bantuan misionaris:
Bab ini tidak dapat dibahas, tetapi hanya daftar perpustakaan dan manual. Tandai bab ini. Setelah melihat perpustakaan ini, Anda akan tahu apa yang dapat dilakukan PowerShell.



Alamat manual win2012: (modul iklan yang paling umum digunakan)
https://technet.microsoft.com/zh-cn/library/dn249523(v=wps.630).aspx
Manajemen Grup Pengguna AD, DHCP, DNS, Printer, Berbagi File, IIS, Disk, NIC,



pertukaran2016
https://technet.microsoft.com/zh-cn/library/bb124413.aspx
Direktori Aktif 12         
Anti-Spam dan Anti-Malware 59  
Akses klien 100
Agen Ekstensi 4
Alamat Email dan Buku Alamat 37
Federasi dan konfigurasi hibrid  
Ketersediaan tinggi  
Alur email  
Kotak surat  
Database kotak surat  
Server kotak surat  
Pindah dan bermigrasi  
Organisasi  
Izin  
Kebijakan dan kepatuhan  
Keamanan  
Kesehatan, pemantauan, dan performa server  
Berbagi dan berkolaborasi  
Pesan Terpadu  
Pengguna dan grup  



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



Mesin Virtual Amazon, AWS, Mesin Virtual Microsoft, Azure, Hyper-V, VMware vSphere, dan mesin virtual tingkat perusahaan.


Klien:
Layanan, proses, log, registri, direktori file, manajemen jarak jauh. Tugas berwaktu.



Internet:
Plug-in klien FTP, mail, SSH untuk koneksi server Linux.


Teks:
XML, HTML, CVS, JSON, EXCEL, dll.


Teks 2 suara


Antarmuka grafis.


Pusat Skrip Microsoft
https://gallery.technet.microsoft.com/scrip{过滤}tcenter/


Sumber perangkat lunak PowerShell situs web resmi --- perpustakaan PowerShell resmi.
https://www.powershellgallery.com


Perpustakaan Niu x lainnya semuanya ada di github. Selain itu, para misionaris secara teratur menerbitkan [Niu x Magic Weapon] dari [Paviliun Kaki Tersembunyi], yang merupakan perpustakaan pihak ketiga PowerShell yang berguna.


---------- Bab 5 Pemula harus belajar bagaimana membantu penggunaan perintah--------------


T: Bagaimana cara mengetahui versi PowerShell?
A:
$PSVersionTable



T: Saya tidak tahu modulnya, bagaimana cara menemukannya?
A:
dapatkan-modul -DaftarTersedia


T: Bagaimana cara menemukan perintah ketika saya hanya mengetahui sebagian darinya?
A:
get-command *layanan*



T: Saya tahu perintahnya, tetapi saya tidak tahu parameter apa yang ada di perintah, bagaimana cara mencantumkan parameternya?
A:
get-help write-host -Parameter *
show-command write-host


T: Saya tahu parameternya, tetapi saya tidak tahu perintah mana yang memiliki parameter ini, bagaimana cara menemukan perintahnya?
A:
get-command -ParameterName pengkodean



T: Bagaimana cara mendapatkan bantuan dengan perintah dari baris perintah?
A:
dapatkan bantuan mendapatkan kencan

-Contoh contoh perintah
-manual online online




T: Saya tidak tahu metode atribut perintah (saya tidak tahu objeknya), bagaimana cara menemukannya?
A:
"abc" | dapatkan-anggota
kencan | dapatkan-anggota



T: Di mana manual .NET Cina?
A:
msdn。 Properti dan metode string paling dasar ada di manual.
https://msdn.microsoft.com/zh-cn/library/system.string.aspx



---------- Bab 6 Pengantar Perintah Umum --------------

Perintah pertama yang harus dipelajari adalah dir
T: Mengapa menggunakan powershell dir [yaitu, Get-ChildItem] alih-alih cmd dir?
A:
Berorientasi objek, metode yang kuat, dan banyak atribut.
$file = dir a:\pscode\temp183\aaa.txt
$file. Nama Lengkap #返回全路径属性
$file. Nama Dasar #返回文件名属性
$file. Ekstensi #返回扩展名属性
$file. LastWriteTime #返回最后写入时间属性



Sintaks pertama yang harus dipelajari adalah sintaks array. $a = @(perintah xxx)
T: Terkadang Anda harus menggunakan [perintah eksternal berbasis karakter] untuk membagi nilai yang dikembalikan menjadi array berdasarkan unit perilaku.
A:
$a = @(ipconfig)
$a[8] #第9行


Penggunaan get-childItem:
Menambahkan parameter di PowerShell 3.0 dan yang lebih baru

get-childitem d:\xxx -file #过滤, hanya file keluaran
-Pemfilteran direktori, hanya direktori output
-Pemfilteran tersembunyi, hanya output yang tersembunyi


T: Buka file, segmen berdasarkan perilaku, dimasukkan ke dalam array?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -ReadCount 0



T: Buka file, sebagai string besar, dan simpan seluruh variabel?
A:
$a = Get-Content a:\pscode\temp183\aaa.txt -raw


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


T: Bagaimana cara menjalankan perintah di latar belakang?
A:
Ada cmd /c "perintah" di zaman kuno.
Sekarang ada powershell /c "perintah", atau powershell -c "perintah",
powershell -file "script.ps1" -argumen 1 aaaa -parameter 2 1234
start-process -path xxx.exe -ArgumentList '-parameter1 aaaa -parameter2 1234'


T: Saya ingin menjalankan skrip dengan pengguna lokal lain, tetapi powershell tidak memiliki runas. exe perintah serupa?
A:
Ada berbagai sesi di PowerShell.
ip + port + nama pengguna + kata sandi = sesi, saya hanya perlu mengubah nama pengguna, mengubah kata sandi, dan Anda dapat mengubah izin. Karena izin terkait dengan pengguna.
Demikian pula, saya hanya perlu membuat n sesi untuk digunakan, tanpa beralih pengguna.
New-pssession yang paling penting memiliki parameter -Credential, masukkan kata sandi pengguna, yang tidak sama dengan runas. Apakah exe sama? Apa lagi SmbSession?
Jadi menurut saya tidak perlu menggunakan runas di powershell. exe。
Anda hanya perlu menggunakan perintah tersebut dengan sesi dan Kredensial, bukan?

Periksa perintah dengan nama [Kredensial] di nama parameter:
get-command -ParameterName Kredensial

Lihat perintah dengan karakter [session] dalam perintah:
get-command *session*


T: Bagaimana cara mengirim email menggunakan PowerShell?
A:
Send-MailMessage -Subjek 'Subjek'
-Dari "akun hotmail Anda @hotmail.com" -Ke "email QQ Anda @qq.com" '
-SmtpServer "smtp.live.com" -port 587 -useSsl -credential "akun hotmail Anda @hotmail.com" '
-Lampiran $Attachments -BodyAsHTML -body $HTML konten email

Nota:
1 penggunaanxxx@QQ.com+ Kata sandi QQ Anda + perintah di atas Mengirim email tidak berfungsi. Karena untuk keamanan kata sandi QQ, Tencent membutuhkan kata sandi email independen.  
2 Mengirim dari kotak surat QQ tidak dimungkinkan secara default. Ini dimatikan, dan Anda perlu mengaktifkan SMTP di pengaturan.
3 PowerShell 3.0 dan yang lebih tinggi hanya mendukung parameter port. Untuk win7, Anda perlu menginstal PS versi terbaru terlebih dahulu




T: Pantau menang CPU, disk, jaringan, IO, dll.
A:
Monitor Kinerja atau
Get-Counter mengambil data penghitung performa dari komputer lokal dan jarak jauh.

T: Bagaimana saya bisa melihat item penghitung apa yang tersedia?
A:
Semuanya ada di manual.
Periksa apa saja kategori penggunaan utama:
Get-Counter -ListSet * | Sort-Object CounterSetName | Format-Table CounterSetName


Misalnya, saya sekarang tahu bahwa kategori disk adalah (PhysicalDisk), dan kemudian memeriksa subkategori di disk, menggunakan:
(Get-Counter -ListSet PhysicalDisk). Jalur




T: Bagaimana cara melihat log?
A:
Penampil Peristiwa, atau
get-eventlog



T: Bagaimana cara mengeksekusi string?
A:
$cmd 1 = 'xxxx'
Invoke-Expression $cmd 1


Nah, kita telah belajar banyak tentang perintah individu, mari kita lihat eksekusi skrip Powershell.


---------- Bab 7 Skrip PS1, Debugging, dan Menjalankan --------------
Skrip adalah kombinasi dan overlay pernyataan perintah. Naskahnya adalah lem, berkeliling mencari orang lain untuk dipanggil, mencari roda untuk merakit mobil. Alih-alih membuat roda, untuk digunakan orang lain.



Cainiao bertanya: Bagaimana cara menulis naskah?
Burung tua itu menjawab:
1 Rincian masalah harus diklarifikasi. Misalnya: membuat kue bulan.
2 Ide-ide pemecahan masalah juga pada dasarnya selesai. Tepung dan air, masukkan isian, kukus.
3 Perintah dan variabel apa yang akan digunakan. Tambahkan lima biji, masukkan ke dalam cetakan, dan peras.
4 Tulis secara kasar terlebih dahulu, tulis secara kasar.
5 Debugging lulus.
6 Tulis secara rinci. Pertimbangkan situasi kesalahan, ditambah kode kesalahan, pesan kesalahan. Hapus kode rawan kesalahan yang tidak mudah kompatibel. Tulis ulang kode yang tidak berkinerja baik.
Sampai saat ini, skrip yang bagus mungkin tidak terlihat bagus, tetapi seharusnya sangat berguna.
7 Dibuat dengan baik. Pemfaktoran ulang, menulis cuplikan kode yang digunakan kembali ke dalam fungsi. Tulis ulang nama variabel sehingga orang dapat memahaminya secara sekilas. Format kode dengan baik dan lakukan indentasi.


T: IDE apa yang digunakan untuk menulis PS1?
A:
Yang paling direkomendasikan adalah menggunakan Visual Studio Code, ditambah plug-in PowerShell.
Fitur: Permintaan kode, pelengkapan otomatis, pemformatan kode, lekukan untuk memilih spasi atau tab, pengaturan pengkodean file.
Ada plugin bernama FTP-sync, yang dapat menulis skrip PS1 di VSCode Win dan secara otomatis menyinkronkannya ke direktori Linux saat disimpan.



T: Alat apa yang digunakan untuk men-debug PS1?
A:
Powergui life yang paling direkomendasikan tidak menggunakan lokomotif, bahkan jika itu adalah pahlawan, skrip PS juga akan melompat dan melaporkan kesalahan!
vscode juga baik-baik saja



T: Alat apa yang Anda gunakan untuk pemformatan kode?
A:
Segala sesuatu yang harus diindentasi diindentasi, dan tanda-tanda yang sama disejajarkan.

Plugin PowerShell ISE + ISE [ISESteroids]

Instalasi:
Instal-Modul -Nama ISESteroids

ISE berjalan:
Mulai-Steroid





T: Alat apa yang Anda gunakan untuk membuat warna kode menjadi indah?
A:
1 Gunakan alat di atas untuk memformat kode.
2 Gunakan PowerShellise + Missionary DIY Color Matching Edisi 2016.
3 Ambil gambarnya. Kode PowerShell yang paling menyenangkan dan berwarna indah di dunia diproduksi.

Semua IDE di atas dalam bahasa Cina.




T: Bagaimana cara memberi nama skrip? xxx.ps1
A:
Disarankan untuk memulai dengan 1---2 huruf, dan menggunakan nama file Cina untuk sisanya. yaitu [bf mencadangkan semua files_ lama dan menghapus .ps1 dari 10 hari yang lalu]
Dengan cara ini, ketik [bf] terlebih dahulu, lalu tekan tab untuk melengkapi nama skrip.




T: Bagaimana cara mengaktifkan izin eksekusi skrip PowerShell?
A:
echo Kode berikut dapat dijalankan dalam cmd dengan hak istimewa administrator atau di PowerShell dengan hak istimewa administrator.
gema jika menggunakan remote jarak jauh PowerShell. Baik komputer lokal maupun komputer jarak jauh harus dijalankan dengan hak administrator.
"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
"C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
& "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -command "Set-ExecutionPolicy -ExecutionPolicy Unrestricted"
jeda



Q: Apa kerugian dari lokomotif (powergui)?
A:
Tidak dapat mengatur warna latar belakang.




T: Apa kerugian dari vscode?
A:
$ dan nama variabel tidak memiliki warna yang sama.
Fungsi debugging lambat dan terkadang menemui jalan buntu.




T: Apa kerugian dari ISE?
A:
Anda tidak dapat memilih untuk menyimpan atau mengonversi pengodean.
Indentasi ke [spasi], [tab] keduanya. Dalam perangkat lunak pengeditan teks lainnya, lekukan ditampilkan.




---------- Bab 8 Latihan Tempur Aktual --------------
Kelompok 6504748 dan menulis bagian ini sendiri.

5. Contoh 1: Nyalakan dan matikan layanan
6. Contoh 2: Kontrol Firewall (Buka, Tutup, Aturan)
7. Contoh 3: Tetapkan kebijakan (kebijakan kata sandi sebagai contoh)



---------- Bab 9 Mata Kuliah Pilihan Tambahan Ini Apakah Anda Tertarik? --------------
Contoh skrip PowerShell, argumen baris perintah luluskan nilai, dan mengikat variabel
http://www.cnblogs.com/piapia/p/5910255.html




Biarkan powershell menjalankan hanya satu skrip pada satu waktu (contoh pengecualian bersama proses)
http://www.cnblogs.com/piapia/p/5647205.html



antarmuka karakter powershell, antarmuka powershell plus WPF, game 2048
http://www.cnblogs.com/piapia/p/5531945.html


Dua crawler di PowerShell
http://www.cnblogs.com/piapia/p/5367556.html



Skrip PowerShell: Pembuat kata sandi acak
http://www.cnblogs.com/piapia/p/5184114.html



Contoh algoritma rekursif PowerShell
http://www.cnblogs.com/piapia/archive/2013/01/29/2881011.html



Kalkulator Suara PowerShell
http://www.cnblogs.com/piapia/archive/2012/10/20/2731506.html



1 Cantumkan semua file terenkripsi EFS. 2Dekripsi semua file terenkripsi EFS
http://www.cnblogs.com/piapia/p/4702514.html
Ini adalah alat yang ditulis untuk administrator sistem dan administrator jaringan.
Setelah seorang karyawan meninggalkan pekerjaannya, disknya mengasumsikan bahwa ada 10.000 file (direktori), di mana ada 3 direktori file yang dienkripsi oleh EFS. Di Explorer, ketiga file ini berwarna hijau.
Tetapi jika Anda mengklik (10.000 katalog) satu per satu, apakah itu hijau atau tidak, Anda akan kelelahan.
Pada saat ini, administrator jaringan menggunakan akun WIN karyawan, masuk ke PC karyawan, dan menggunakan skrip ini untuk mencantumkan semua file terenkripsi EFS.


---------- Bab 10 Silakan Ajukan Pertanyaan--------------
Hadirin sekalian, jika ada sesuatu untuk dilaporkan, tinggalkan pengadilan tanpa apa-apa.



----------Bab 11 Bab Linux--------------

Misionaris: Selama Anda dapat menginstal PowerShell versi Linux, Anda hanya memerlukan skrip ps1, tidak ada skrip sh.
Interpretasi:
1 Singkatnya, bash hanya memiliki sintaks, tidak ada perintah dan pustaka.
2 bash hanya memiliki fungsi sintaks 1%, powershell tidak dapat mengimplementasikannya. Ini normal, tidak ada dua daun yang persis sama di dunia.
Ini berarti Anda hanya membutuhkan skrip ps1, tidak sesah.
3 bash terlalu tua, fungsi yang sama, Powershell dapat diimplementasikan, dan juga dapat menghemat waktu, seperti 10.000 kosong for, Powershell perlu menghemat 90% waktu.
4 Pelajari cara menggunakan /usr/bin/powershell alih-alih /usr/bin/bash. Perintah Linux lainnya, pipeline, kung fu lama, dll., digunakan persis sama seperti di bash.
5 Secara bertahap gunakan perintah dan pustaka PowerShell yang berorientasi objek, sederhana, dan kuat alih-alih perintah Linux yang membakar otak, atau keduanya. ---Ini adalah prinsip umum, garis besar.


T: Versi Linux mana yang dapat menginstal PowerShell?
A:
◦Ubuntu 14.04 / 16.04
◦CentOS/RHEL 7 ke atas
◦buka SUSE 42 ke atas
◦Arch Linux (archl inux tidak memiliki nomor versi)
◦ Kontainer buruh pelabuhan LINUX
◦Linux AppImage wadah (aplikasi portabel biner tunggal) https://github.com/probonopd/AppImageKit





T: Mengapa dikatakan bahwa baris perintah win lebih kuat dari linux?
A:
Perintah dalam 1 kemenangan telah berevolusi menjadi PowerShell berorientasi objek. Linux belum berfungsi. Dari win7 menjadi win2012r2, evolusi berakhir.

2 Saya dulu mendengar bahwa Unix memiliki banyak perintah Linux dan sangat kuat. Tapi sekarang saya memberi tahu Anda bahwa perintah powershell setidaknya sepuluh kali lebih banyak daripada perintah linux. Bagaimanapun, saya belum belajar sepanjang hidup saya.

3 Linux lebih bergantung pada grafik, dengan terlalu sedikit perintah. Dan perintah win jauh lebih dari linux.
3.1 Di linux apa pun, perintah di server email semakin lengkap daripada exchange? Lebih nyaman daripada pertukaran?
3.2 Pengikatan server DNS Linux tidak senyaman perintah DNS win. Apakah bind memiliki [perintah] untuk menambahkan catatan ipv4 A ke nama domain? Belum bergantung pada grafik web?
Beberapa orang mengatakan untuk menggunakan nsupdate. Itu bukan tentang membuat teks dan kemudian menjalankan teks. Apa perbedaan antara mengganti [file zona DNS] dengan sed dan kemudian memuat ulang [zona dns]?

4 Dalam versi baru win, atau di powershell, semuanya [perintah + parameter]. Dan sebagian besar Linux masih [teks sed].
4.1 Ambil alamat IP yang ditetapkan ke kartu jaringan sebagai contoh.
koneksi nmcli menambahkan jenis ethernet con-name NEW_STATIC ifname eno1234567 ip4 192.168.1.111 gw4 192.168.1.1,
Bukankah lebih nyaman daripada menggunakan sed untuk mengikis file ifcfg-eth0?

5 Bahasa apa pun memproses data, begitu pula skrip. Dengan bantuan objek, PowerShell lebih nyaman daripada awk. Shenma csv, excel, xml, json
tabel SQL, tabel NoSQL. html, dll.




T: Bagaimana PowerShell mengimplementasikan [sed -i "s/apa yang harus dicari/ganti dengan nama file /g"]?
A:
@(Get-Content filename) -ganti 'aaa','bbb' | Set-Content filename $aaa
Artinya, buka file, ganti, simpan file.



T: Mengapa semakin sedikit orang yang menggunakan SED di Linux?
A:
Argumen 1: AWK dapat menggantikan SED, tetapi SED tidak dapat menggantikan AWK.
sed, yaitu, cukup temukan substitusi. awk memiliki untuk dan sejenisnya untuk menerapkan pemrosesan yang kompleks.

Argumen 2: AWK menggunakan reguler standar, dan reguler sed sama dengan sed, tetapi bagian-bagiannya berbeda.
Mempelajari SED berarti bahwa dua set standar reguler yang tidak kompatibel di otak saling bertarung.



T: Jadi benar untuk belajar AWK?
A:
Mempelajari PowerShell lebih mudah daripada mempelajari AWK.
PowerShell menggunakan [split and then split], [if and if], where-object, string.substing(), string[-3], dll.
Pecahkan masalah string lapis demi lapisan. Lebih sederhana dari awk biasa.




T: Dapatkah alur dan AWK digunakan di PowerShell?
A:
Anda dapat memanggil awk di PowerShell, persis sama seperti di Bash. Seni bela diri lama benar-benar Turin.



T: Bagaimana cara mengimplementasikan fungsi [awk '{print $3}'] di PowerShell?
A:
($line -split "\s+|\t+") [0] #第一行
($line -split "\s+|\t+") [2] #第三行       

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


T: Bagaimana cara mengimplementasikan fungsi [awk -f a.awk file] menggunakan PowerShell?
A:
Pada dasarnya, ini adalah fungsi penyaringan yang menggunakan pipa. Di PowerShell, ini disebut filter atau filter.
PowerShell mendukung kombinasi perintah + pipa + filter. Seperti dalam Komando 1 | Filter 1 | Perintah 2 | Filter 2 | Filter 3
filter filter1
{
Fungsionalitas seperti AWK
}





T: Apakah ada [xarg] di PowerShell?
A:
Variabel pipa yang digunakan dalam alur disebut [$psitem], dan aliasnya adalah [$_].
PowerShell menggunakan foreach-object dan $_ untuk mengimplementasikan fungsi xargs.





T: Apakah ada nomor [<] [<<] di PowerShell?
A:
Tidak.
Mungkin simbol [<] dari kanan ke kiri adalah pemikiran anti-manusia. Banyak perintah di PowerShell telah diubah ke kiri ke kanan.
Jika get-random < (1..100) tidak legal di PowerShell, yang legal harus berupa get-random -inputobject (1..100), atau 1. 100 |get-random
Kurang dari 1% perintah aneh [harus] mengandalkan simbol [<], yang dapat dicapai dengan memanggil cmd di PowerShell atau bash (PowerShell untuk Linux) di PowerShell.
Misalnya, $a = bash -x "perintah 1 < perintah 2" #linux
Misalnya, $a = cmd -c "perintah 1 < perintah 2" #cmd




T: Apakah ada perintah ekspektasi di PowerShell? Bagaimana cara terhubung ke server SSH Linux dari Win dengan PowerShell?
A:
1. Iya. Untuk beberapa kebutuhan respons pintu yang aneh dan parsial, ada modul pihak ketiga.
2 Tidak. PowerShell tidak menggunakan perintah expect, tetapi menggunakan sesi.

Gunakan perpustakaan klien Powershell + SSH + IP + port + nama pengguna + kata sandi untuk menggabungkan ke dalam koneksi dan mengirim perintah ke koneksi ini. Kodenya adalah sebagai berikut:
$connection 1 = New-SSHSession -ComputerName 1.1.1.1 -Port 22 -Credential aaaa #将提示输入密码
$to return = Invoke-SSHCommand -Command {cat /etc/issue} -SSHSession $Connection 1

Fungsionalitas standar ini seperti (MongoDB, mysql, ssh, ftp, http, telnet, dll.) memiliki driver atau modul. ps dan. .net, melalui koneksi driver, kirim perintah, dan terima data.
Manfaat menggunakan modul atau driver untuk mengirim dan menerima [data] adalah:
Data akan dikonversi menjadi objek .net, yang pada gilirannya akan diubah menjadi objek PS. Jika tidak, itu semua adalah tali, dan [seni bela diri berorientasi objek] dari sekte PS semuanya tidak berguna.


Mengambil MongoDB sebagai contoh, apa keuntungan menggunakan modul atau driver untuk mengirim perintah? Siapa yang berbicara?
Saya merasa manfaatnya adalah:
1 Multithreading. Utas latar belakang berjalan dan tidak menempati utas saat ini.
2. Kita dapat [memutuskan sambungan di tengah jalan] dari sesi kapan saja, menjalankan kode PS lainnya, fungsi, dan [kembali ke sesi kapan saja]. Skrip lebih fleksibel untuk ditulis dan mudah di-debug.
3session membawa banyak pengguna, dan pengguna yang berbeda dapat memiliki izin server yang berbeda.




T: Apakah ada perintah su, runas di powershell? Bagaimana cara menjalankan perintah pengguna lain dengan PowerShell?
A:
Tidak.
Di PowerShell, menjalankan perintah dan alur asli Linux sangat mudah. Sebagai contoh:
sshaaa@127.0.0.1"Dieksekusi dengan hak istimewa AAA pengguna, perintah xxx"  
sshpass -p user_password sshaaa@192.168.1.1



T: Dua mesin Linux dengan SSHD? Bagaimana cara menghubungkan dan mengirim perintah dengan powershell?
A:
Selain metode di atas, Anda juga dapat menggunakan metode membuat sesi Linux baru. (Terhubung dari linux ke SSHD lain)
Catatan: Metode ini memerlukan pengeditan file /etc/ssh/sshd_config. Tambahkan baris berikut
Subsistem powershell powershell -sshs -NoLogo -NoProfile
Setelah itu, restart server SSHD.
Manual terperincinya ada di sini:
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting

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


Ringkasan:
Klien Win, terhubung ke server Linux. Saat ini, modul pihak ketiga diperlukan, tentu saja ini adalah modul di perpustakaan resmi, cukup gunakan modul instal PoshSSH.
Klien Linux, terhubung ke server Linux. Anda perlu mengedit file /etc/ssh/sshd_config.
Klien Linux, terhubung ke server Win. Anda perlu mengaktifkan layanan di server. Percayai server di klien.
Klien Win, terhubung ke server Win. Anda perlu mengaktifkan layanan di server. Percayai server di klien.


T: Apakah ada [grep] di PowerShell?
A:
Perintah select-string digunakan di powershell.
Dari sudut pandang pengkodean saja, select-string=smart, grep=stupid + memiliki cacat keras :mrgreen:
Saat ada header BOM, select-string secara otomatis mengenali jenis pengkodean file.
Ketika tidak ada header BOM, tidak perlu mengubah lingkungan shell seperti linux+grep, dan tidak perlu menyimpan file sesuai dengan kode tertentu. Anda hanya perlu menentukan parameter -encoding sesuai dengan pengkodean file.
Dan grep tidak memiliki fungsi ini, yaitu ada cacat keras [tidak dapat menentukan jenis pengkodean file].
Tentu saja, grep tidak berguna, grep memiliki beberapa parameter, memiliki fungsi unik tambahan, select-string tidak, di sinilah grep lebih kuat daripada select-string.



T: Apakah ada [eval] di PowerShell?
A:
Gunakan Invoke-Expression untuk mengeksekusi string di powershell.



T: Apakah ada ekor -f di PowerShell? Dimungkinkan untuk mengeluarkan baris file yang baru dihasilkan secara real time.
A:
Get-Content D:\a.txt -Tail 10 -ReadCount 0 -Wait



T: Saya ingin menggunakan keyboard kecil dan juga menginginkan terminal 256 warna, jadi bagaimana cara pengaturan xshell?
A:
Terminal --- Tipe Terminal --- [dempul-256warna] atau [ekspor TERM=dempul-256warna]
Terminal --- Keyboard --- default atau Linux.

Eterm-256 kaleng warna
gnome-256color tidak berfungsi
Konsole-256Color tidak berfungsi
dempul-256warna
Bagian Asli Misionaris PowerShell 2017-02-15
RXVT-256COLOR tidak berfungsi
layar-256warna tidak berfungsi
ST-256WARNA
VTE-256COLOR tidak berfungsi
xterm-256color tidak berfungsi
Prinsip yang sama berlaku untuk SecureCRT




T: Siapa yang lebih kuat, cangkang atau python?
A:
Masing-masing memiliki kekuatannya sendiri dan dapat saling melengkapi. Tapi mereka tidak saling melengkapi. Lebih lanjut tentang ini di bawah ini.


T: Mengapa PowerShell versi Linux lebih cocok untuk personel operasi dan pemeliharaan untuk menulis skrip? (Dibandingkan dengan Python versi Linux)
A:
1 Python memiliki fungsi berorientasi objek, dan PowerShell versi Linux tersedia.

2 Python tidak memiliki baris perintah.
2.1 Python tidak dapat menjadi terminal default untuk SSH, tetapi PowerShell untuk Linux bisa. Lihat bab: "Dua Mesin Linux dengan SSHD? Bagaimana cara menghubungkan dan mengirim perintah dengan powershell? 》
2.2 Menggunakan perintah shell (awk, grep, dll.) dalam python sangat rumit. Perlu menambahkan banyak sintaks dan kode py. PowerShell untuk Linux menjalankan perintah awk seperti bash.

3 python tidak memiliki pipa. Sangat merepotkan untuk meneruskan nilai antara n [program baris perintah]. Perlu menambahkan banyak sintaks dan kode py. PowerShell versi Linux memiliki alur, dan menjalankan perintah awk sama dengan bash.

4 Python memiliki versi 2, versi 3 tidak kompatibel dengan kanker! Pertanyaan. PowerShell untuk Linux tidak memiliki masalah seperti itu.
4.1 Pertanyaan-pertanyaan ini mengandung masalah pengkodean.

Kesimpulan:
Perintah shell seperti grep tidak baik untuk dukungan pengkodean, tidak sebaik masalah pengkodean 4.1 di atas di PowerShell di rumah. Ditambah 2,3 poin di atas.
Itu membuat orang Linux merasa tidak nyaman, tetapi sangat sedikit orang yang menggunakan perintah eksternal di py. [Perpustakaan Perintah Py] dan [Komando Shell] mati dan pada dasarnya tidak dapat saling melengkapi. PS versi Linux berbeda.




T: Mengapa dikatakan bahwa powershell lebih baik daripada shell?
A:
1 PowerShell berorientasi objek, dan properti mengembalikan data yang tersedia secara langsung. Ini jauh lebih jarang daripada dalam bahasa skrip karakter (kelelawar, cangkang) yang memerlukan pengurangan string.
Terlahir dengan lebih sedikit [konten yang perlu dihindari].
2 Substitusi pencarian string, ada metode di PowerShell yang tidak memerlukan pelepasan, di kelas .NET. Sebagai contoh:
[string]$a = 'abc\\def'
$b = $a.replace('\\','when')
#返回: [ABC sebagai def]
Untuk menentukan apakah IP itu sah, Anda dapat menggunakan metode TryParse() di kelas IPAddress.
Singkatnya, saran saya adalah menggunakan metode .net sebanyak mungkin, menggunakan regex sesedikit mungkin, atau hanya menggunakan reguler sederhana.
3 PowerShell menggunakan ['] sebagai simbol pelarian. ['] lebih jarang digunakan daripada [\] dan jauh lebih sedikit digunakan sebagai simbol pelarian.
3.1 Saat menulis skrip database, ada lebih banyak konflik ['].
Misalnya, ['table'] akan bertentangan dengan ['t], seperti ['biao'] akan bertentangan dengan ['b], dan saya kemudian menyelesaikannya dengan ['table'].
Pencarian dan penggantian string 4 ps, memiliki mesin biasa, kompatibel dengan Linux, dan juga menggunakan [\] sebagai escape.
Namun, ada fungsi escape string khusus [[Regex]::Escape()], yang diloloskan terlebih dahulu dan kemudian ditemukan dan diganti, dan kode tersebut sangat mudah dibaca.
$Original string sebelum escape = '\+\&*|]'
$escaped string = [regex]::escape(string $original sebelum melarikan diri)
-------------
Contoh skrip
[string]$a = 'abc\\def'
$Original string sebelum escape = '\'
$Escaped string = [Regex]::escape($Original string sebelum escape) #[\]--->[\\]
$b = [Regex]::replace($a,$Escaped string, 'kapan')
$b #返回 [ABC Dangdang DEF]
-------------
5 Bash dan Awk, masing-masing memiliki miliknya sendiri, masing-masing memiliki pelariannya sendiri. Digabungkan, mudah bagi A untuk mempengaruhi B, dan A menelan B.
Juga mudah untuk mengalami masalah saat menghadapi ['], ["], [\], dan [*].
Ini seperti mengenakan dua lapis celana panjang, Anda menarik satu lapisan, dan lapisan lainnya juga bergerak, Anda perlu khawatir tentang kompatibilitasnya.
Ini adalah kanker dan sulit dipecahkan.
Tapi cubit, masalah ini juga bisa dihindari sampai batas tertentu. Ini mengharuskan orang yang menulis cangkang untuk memperbaiki masalah bau.
[Masukkan kode awk di file .awk secara terpisah, bukan pada baris perintah]
PowerShell tidak memiliki masalah ini, letakkan di baris perintah, masukkan ke dalam skrip, tidak berpengaruh.








Mantan:.net/C# menggunakan Atribut untuk mengimplementasikan AOP sederhana
Depan:.net/c# Speedy IP Open Port Scanner v2.0 Versi Ultimate
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com