ใครไม่ต้องการที่พวกเขาจะเป็นพ่อมดและเอ่ยกี่คำเพื่อให้สิ่งมหัศจรรย์เกิดขึ้น เราไม่สามารถแสดงให้คุณเห็นถึงวิธีการเป็นพ่อมดได้ แต่เราสามารถแสดงให้คุณเห็นถึงวิธีการใช้เวทมนตร์คอมพิวเตอร์เพียงเล็กน้อย
หากคุณมีคอมพิวเตอร์ Windows ที่ใช้ Windows 7 แสดงว่าคุณมี PowerShell นอกจากนี้หากคุณมีคอมพิวเตอร์ที่ใช้ Windows 7 โปรดอัปเดตเพื่อความปลอดภัย
แต่บทความนี้ไม่ได้มีไว้สำหรับคนที่ใช้ Windows เท่านั้น PowerShell เวอร์ชันล่าสุดฟรีและสามารถติดตั้งและใช้งานได้บนคอมพิวเตอร์ Mac และ Linux
สิ่งสำคัญเนื่องจากสิ่งที่คุณเรียนรู้เกี่ยวกับ PowerShell สามารถใช้ได้กับคอมพิวเตอร์เกือบทุกเครื่องในตอนนี้ ใครจะรู้? คุณอาจยกระดับทักษะนี้ไปสู่อีกระดับหนึ่งและร่วมทำอาชีพในด้านเทคโนโลยีสารสนเทศ
PowerShell คืออะไร
คำตอบไฮเทคจาก Microsoft คือมันคือ " …เชลล์บรรทัดคำสั่งที่ออกแบบมาโดยเฉพาะสำหรับผู้ดูแลระบบ” ฟังดูน่ากลัว แต่มันไม่ใช่ คุณดูแลคอมพิวเตอร์ของคุณหรือไม่? ใช่คุณเป็นผู้ดูแลระบบในบ้านของคุณ
คุณบอกคอมพิวเตอร์ว่าจะทำอย่างไรกับการคลิกและการกดแป้นพิมพ์? ใช่คิดว่าเชลล์บรรทัดคำสั่งเป็นเพียงหน้าต่างอื่นที่คุณพิมพ์สิ่งต่าง ๆ เพื่อบอกคอมพิวเตอร์ว่าจะทำอย่างไร คุณสามารถทำได้
In_content_1 ทั้งหมด: [300x250] / dfp: [640x360]->PowerShell เป็นเหมือนภาษาการเขียนโปรแกรม แต่ไม่เป็นความลับมากที่สุด มันอ่านมากเหมือนภาษาอังกฤษทั่วไปซึ่งเป็นสิ่งที่ Microsoft พยายามอย่างมากเพื่อให้ผู้ที่ไม่ใช่โปรแกรมเมอร์สามารถรับมันได้
เป็นวิธีการเขียนคำสั่งสองสามบรรทัดเรียกว่าสคริปต์เพื่อให้ระบบปฏิบัติการ Windows ทำสิ่งที่คุณต้องการให้ทำ จากนั้นคุณสามารถบันทึกบรรทัดเหล่านั้นในไฟล์และเรียกใช้ด้วยการคลิกหรือกำหนดเวลาให้เรียกใช้เป็นระยะ
คุณสามารถทำอะไรกับ PowerShell ได้บ้าง
จุดระดับสูงของ PowerShell สามารถทำงานอัตโนมัติได้ดังนั้นคุณไม่ต้องเสียเวลาทำสิ่งต่าง ๆ ซ้ำซาก สำหรับผู้ดูแลระบบมืออาชีพอาจเป็นสิ่งที่สร้างผู้ใช้ใหม่สร้างรหัสผ่านสำหรับพวกเขาและส่งอีเมลพร้อมรายละเอียดไปยังหัวหน้างานใหม่
ดำเนินการด้วยตนเองด้วยการคลิกและการพิมพ์กระบวนการนั้นอาจใช้เวลา 5 นาทีหรือมากถึงชั่วโมง ด้วยสคริปต์ที่ถูกต้องผู้ดูแลระบบอาจไม่ต้องทำส่วนใดส่วนหนึ่งของสิ่งนั้น
แต่คุณต้องการทราบว่าคุณสามารถทำอะไรกับ PowerShell ได้ที่บ้าน ทุกอย่างที่คุณไม่ต้องการทำซ้ำ ๆ ใช้เพื่อเพิ่มพื้นที่ว่างในฮาร์ดไดรฟ์ของคุณโดยการลบชั่วคราวและไฟล์บันทึกที่คุณไม่ต้องการ
วางเคอร์ฟิวบนคอมพิวเตอร์ของเด็ก เปลี่ยนชื่อหรือจัดระเบียบไฟล์จำนวนมาก นั่นคือความงามของ PowerShell เกือบทุกอย่างที่คุณสามารถทำได้บนคอมพิวเตอร์ของคุณคุณสามารถสร้างสคริปต์ PowerShell เพื่อทำงานอัตโนมัติและทำงานด้วยการคลิกหรือตามกำหนดเวลา
ฉันจะใช้ PowerShell ได้อย่างไร
วิธีที่ง่ายที่สุดในการทำงานกับ PowerShell คือใน สภาพแวดล้อมการสคริปต์รวมของ PowerShell (ISE)คุณสามารถค้นหาได้โดยคลิกที่เริ่มและพิมพ์ powershell iseลงในแถบค้นหาใน Windows 10 คุณควรเห็นดังภาพด้านล่าง
เป็นครั้งแรกที่เราใช้งานเราจะเรียกใช้ในฐานะผู้ดูแลระบบ ในการทำเช่นนี้คุณต้องมีสิทธิ์ของผู้ดูแลระบบในคอมพิวเตอร์ของคุณก่อน ใน เมนูเริ่มคลิกขวาที่ PowerShell ISEจากนั้นคลิก เรียกใช้ในฐานะผู้ดูแลระบบ
คุณอาจได้รับ การควบคุม UserAccess(UAC) เตือนป๊อปอัปถามว่าคุณแน่ใจหรือไม่ว่าต้องการรับ คลิก ใช่
ตอนนี้คุณกำลังดู PowerShell IDE บานหน้าต่างด้านบนของหน้าต่าง (1)เป็นบานหน้าต่างการเขียนสคริปต์ นี่คือที่ที่คุณจะเขียนสคริปต์ของคุณ บานหน้าต่างด้านล่างของหน้าต่าง (2)เป็นพื้นที่คอนโซล เมื่อคุณทดสอบสคริปต์คุณจะเห็นผลลัพธ์ในบานหน้าต่างนี้
ที่นี่คุณจะเห็นข้อความแสดงข้อผิดพลาดและสิ่งนั้นจะช่วยให้คุณแก้ไขและปรับปรุงสคริปต์ของคุณให้ดีขึ้น บานหน้าต่างทางด้านขวาของหน้าต่าง (3)เป็นส่วนเสริมของคำสั่ง คิดว่ามันเป็นพจนานุกรมของคำสั่ง PowerShell ทั้งหมดที่มีให้คุณ
PowerShell ได้รับการตั้งค่าให้ไม่เรียกใช้สคริปต์อื่นนอกเหนือจากที่เป็นส่วนหนึ่งของ Windows คุณจะต้องเปลี่ยนเพื่อให้สามารถเรียกใช้สคริปต์ที่คุณกำหนดไว้
ในหน้าต่างสคริปต์ให้คัดลอกและวางต่อไปนี้:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
The Set-ExecutionPolicyส่วนหนึ่งเรียกว่า cmdlet (commandlet เด่นชัด) cmdlet เป็นสิ่งที่ทรงพลัง คิดว่าพวกเขาเป็นคำสั่งสั้น ๆ ที่คุณสามารถให้ Windows และ Windows จะทำสิ่งต่าง ๆ ที่ซับซ้อนมากขึ้นเพื่อตอบสนองคำสั่งของคุณ
การเปรียบเทียบจะบอกให้ลูกของคุณทำความสะอาดห้องของพวกเขา สั้นและตรงประเด็น หากบุตรหลานของคุณมีความรอบรู้ในการทำความสะอาดห้องพวกเขาจะไปทำเตียงใส่ซักรีดใส่ตะกร้าเก็บของเล่นและหนังสือของพวกเขาไว้และอาจดูดฝุ่นพื้น พวกเขาเข้าใจว่า cmdlet Clean-YourRoom มีความหมายทั้งหมดนั่นคือ
ที่ด้านบนของหน้าต่างคุณจะเห็นหัวลูกศรสีเขียวคลิกเพื่อเรียกใช้คำสั่ง
The - ExecutionPolicyส่วนหนึ่งกำลังบอก ตั้งค่า ExecutionPolicyนโยบายที่จะตั้งค่า มันเป็นพารามิเตอร์ มีการกล่าวว่า“ ฉันต้องการให้คุณทำงานภายในหลักเกณฑ์เหล่านี้และทำสิ่งนี้โดยเฉพาะ มันบอกให้ใช้นโยบายเฉพาะของ RemoteSigned
นโยบาย RemoteSignedระบุว่า PowerShell อาจไม่สามารถเรียกใช้หรือเรียกใช้สคริปต์ใด ๆ ที่ดาวน์โหลดจากอินเทอร์เน็ตเว้นแต่ว่าลงนามโดยผู้เผยแพร่ที่เชื่อถือได้
ในทางอ้อมมันแจ้งให้ PowerShell ทราบว่าการรันสคริปต์ใด ๆ ที่สร้างขึ้นในเครื่องนั้นเป็นสิ่งที่ดีเพราะไม่จำเป็นต้องลงนามโดยผู้เผยแพร่ที่เชื่อถือได้จากระยะไกล ตอนนี้สคริปต์ PowerShell ของคุณจะสามารถเรียกใช้สคริปต์ที่คุณเขียนบนคอมพิวเตอร์ของคุณ
ลองดูที่สคริปต์เพื่อลบไฟล์ชั่วคราว มันไม่ได้มีประสิทธิภาพหรือละเอียดเหมือน CCleaner แต่ CCleaner มาพร้อมกับชุดของปัญหา
ใช้ PowerShell เพื่อสร้างพื้นที่บนฮาร์ดไดรฟ์ของคุณ
เราจะทำลายสคริปต์นี้ ทีละบรรทัดเพื่อให้คุณสามารถดูว่ามันทำงานอย่างไร ในตอนท้ายสคริปต์จะแสดงอย่างสมบูรณ์เพื่อให้คุณสามารถคัดลอกและวางได้หากต้องการ
$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"
สิ่งใดก็ตามที่มีเครื่องหมายดอลลาร์อยู่ข้างหน้าจะเป็นชื่อตัวแปร . ลองคิดว่ามันเป็นเหมือนกระเป๋าเงินที่จะนำของมีค่าเข้ามา Wallet จะเตือนเราเกี่ยวกับสัญลักษณ์ดอลลาร์สิ่งมีค่าฟังดูเหมือนตัวแปร เรากำลังสร้างกระเป๋าเงินหรือตัวแปรชื่อ $ TempFileLocationเครื่องหมายเท่ากับบอก PowerShell ว่าจะใส่อะไรลงในตัวแปรนั้น
ในกรณีนี้เราจะใส่ตำแหน่งของตำแหน่งไฟล์ชั่วคราวของ Windows - C: \ Users \ ชื่อผู้ใช้ \ AppData \ \ Temp ท้องถิ่น \ *เรากำลังทำสิ่งนี้ด้วยเหตุผลสองประการ เป็นตำแหน่งที่ปลอดภัยในการลบไฟล์และเราจะใช้เพื่อบอก PowerShell ว่าจะต้องไปที่ไหนเพื่อลบไฟล์
ตำแหน่งที่ระบุว่าชื่อผู้ใช้ในการจัดสรรนั้นให้สลับกับผู้ใช้ของคุณ ชื่อ. นั่นคือชื่อผู้ใช้ที่คุณใช้ในการเข้าสู่ระบบคอมพิวเตอร์ของคุณ เครื่องหมายดอกจัน (*) ที่ท้าย ofit เป็น wild card สิ่งที่แสดงคือทุกอย่างในโฟลเดอร์ Temp เนื่องจากทุกอย่างในโฟลเดอร์ชั่วคราวนั้นเป็นชั่วคราวและเราต้องการลบ
เครื่องหมายคำพูดคู่รอบสถานที่มีความสำคัญเช่นกัน Thattells PowerShell ว่ามีอะไรอยู่ในสตริง คิดว่าสตริงเป็นตัวอักษรและตัวอักษรสตริง หากเป็นตัวเลขปกติเราจะไม่ใช้โควต
$TempFile = Get-ChildItem $TempFileLocation -Recurse
เรากำลังสร้างตัวแปรอื่น คราวนี้เราจะใช้คำสั่งเพื่อหาสิ่งที่จะใส่ในตัวแปร $ TempFile
Get-ChildItem
อีกสิ่งหนึ่งที่คุณจะได้รับ แจ้งให้ทราบเกี่ยวกับ cmdlets เช่น Get-ChildItemคือสามารถอ่านได้ทั้งหมด มาดูกันว่าคำแรกคำกริยาคืออะไร? Cmdlets ทั้งหมดเริ่มต้นด้วยคำพูดการกระทำเพื่อให้คุณรู้ได้ทันทีว่ากำลังทำอะไรอยู่ ChildItem เป็นคำนามสองคำ
ส่วนที่สองของ cmdlet จะบอกเราเสมอว่า PowerShell จะใช้การกระทำแบบใด ChildItem หมายถึงเด็กทุกคนในที่ตั้งหลัก นี่เหมือนกับการบอกว่ารับไฟล์ทั้งหมดที่อยู่ในโฟลเดอร์โดยไฟล์เป็นไฟล์ย่อยและโฟลเดอร์เป็นพาเรนต์
cmdlet คืออะไรที่ได้รับไอเท็มลูก ทุกอย่างในตัวแปร $ TempFileLocationPowerShell กำลังจะไปยังตำแหน่งที่เราใส่ใน $ TempFileLocation ก่อนหน้านี้และรับรายการย่อยทั้งหมดที่มี จากนั้นจะใส่ลงในตัวแปร $ TempFile
ดังนั้นส่วน - ถอนเงินคืออะไร นั่นคือการบอกให้ รับ ChildItemเพื่อผ่านทุกอย่างในสถานที่นั้น อย่าเพิ่งไปรับไฟล์ภายในโฟลเดอร์หลักทันที หากมีโฟลเดอร์ในโฟลเดอร์นั้นให้พาลูก ๆ ของพวกเขามาด้วยและลูก ๆ ของพวกเขาและอื่น ๆ เราจะได้รับทั้งหมด
$TempFileCount = ($TempFile).count
ใช่เรากำลังสร้างตัวแปรตัวที่สามชื่อว่า $ TempFileCountและเราจะใส่ตัวเลขในตัวแปรนั้น หมายเลขนั้นอยู่ที่ไหน ดี ($ TempFile) .countจะได้หมายเลขนั้นมาให้เรา คุณอาจจะคิดได้ว่าส่วนที่นับนั้นจะทำการนับไฟล์ทั้งหมดที่เราเพิ่งเก็บไว้ใน $ TempFile
ทำไมเราถึงทำเช่นนี้ ส่วนใหญ่เป็นเรื่องดีเพราะเรารู้ว่าไฟล์ที่ไร้ประโยชน์ทั้งหมดที่เราทำความสะอาดพร้อมกับสคริปต์อื่น ๆ เพื่อให้เราสามารถบอกได้ว่ามันมีประสิทธิภาพแค่ไหน
if($TempFileCount -eq 0)
ตอนนี้เรากำลังตั้งค่า คำสั่งแบบมีเงื่อนไข คุณจะเห็นว่ามันกำลังถาม "หาก" ถ้าอะไร หากสิ่งที่อยู่ในวงเล็บเป็นจริงหรือเท็จ วงเล็บมีความสำคัญมิฉะนั้นถ้าไม่รู้จะเปรียบเทียบอย่างไร ที่นี่มีการถามว่าหมายเลขที่เราเก็บไว้ใน $ TempFileCountเท่ากับศูนย์หรือไม่
-eqคือการจดชวเลขสำหรับเท่ากับ เป็นตัวดำเนินการเปรียบเทียบชนิดหนึ่ง มันเหมือนกับบอกลูก ๆ ของคุณว่า“ ถ้าห้องของคุณสะอาดเยี่ยมเราจะทำอะไรซักอย่าง…” คำสั่งนี้บอกว่าถ้าจำนวนที่เก็บไว้ใน $ TempFileCount นั้นเท่ากับเท่ากับศูนย์ทำสิ่งต่อไป
{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}
นั่นคือสิ่งที่จะเกิดขึ้นหาก $ TempFileCountเป็นศูนย์ วงเล็บปีกกามีความสำคัญ พวกเขาบอก PowerShell ให้ทำเฉพาะสิ่งที่อยู่ในนั้นถ้า $ TempFileCount เท่ากับศูนย์
มันจะเขียนไปยังโฮสต์หรือหน้าจอ“ ไม่มีไฟล์ในโฟลเดอร์ C: \ Users \ ชื่อผู้ใช้ \ Appdata \ Local \ Temp \ * " พารามิเตอร์ในตอนท้าย - ForegroundColorจะบอก PowerShell เพื่อทำให้ข้อความเป็นสีเขียว ซึ่งทำให้แยกความแตกต่างจากข้อความแสดงข้อผิดพลาดซึ่งโดยปกติแล้วจะเป็นสีแดง
Else
คุณรู้ว่ามีความหมายอื่น นี่คือ“ ห้องของคุณควรสะอาดกว่านี้หรืออย่างอื่น…” ส่วนหนึ่งของการตรวจสอบว่าลูกของคุณทำความสะอาดห้อง มันจะเกิดอะไรขึ้นถ้า $ TempFileCountไม่ใช่ศูนย์
{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}
สิ่งนี้จะบอกว่าไปยังตำแหน่งปัจจุบันที่เก็บไว้ใน $ TempFileเส้นแนวตั้งหลังจากนั้นเรียกว่าท่อ มันทำหน้าที่เหมือนกับท่อในชีวิตจริงเพราะมันบอกให้ PowerShell กรวยเนื้อหาของ $ TempFile ลงใน cmdlet ราวกับว่ามีน้ำถูกส่งเข้าไปในเครื่องซักผ้า จากนั้น cmdlet ลบรายการทำตามที่กล่าวไว้ มันลบสิ่งที่อยู่ในตำแหน่งนั้น
พารามิเตอร์ -What Ifมีความสำคัญมากในขั้นตอนนี้ มันบอกให้ PowerShell รันคำสั่ง แต่ลองใช้ได้อย่าลบอะไรเลย เพียงแสดงให้เราเห็นว่าจะเกิดอะไรขึ้นถ้าเราทำสิ่งนี้จริงๆ
สิ่งนี้ช่วยให้คุณทดสอบคำสั่งโดยไม่ต้องเปลี่ยนแปลงอะไรในคอมพิวเตอร์ของคุณ ปล่อยให้ - ถ้าอยู่ตรงนั้นจนกว่าคุณจะพอใจว่าสคริปต์กำลังจะทำสิ่งที่คุณต้องการให้ทำและไม่มีอะไรอื่น จากนั้นให้ลบออกและสคริปต์จะทำงาน
พารามิเตอร์ - ยืนยัน: $ falseหยุดสคริปต์ไม่ให้ถามว่าคุณต้องการลบไฟล์จริงๆหรือไม่ คุณรู้ว่าสิ่งที่ - เรียกเก็บเงินทำอะไร - บังคับใช้หมายถึงลบสิ่งนั้นไม่ว่าจะเกิดอะไรขึ้น -WarningActionถูกตั้งค่าเป็น เงียบ ๆ ต่อไป
นี่เป็นการป้องกันสคริปต์จากการเตือนคุณเกี่ยวกับสิ่งที่คุณกำลังลบ -ErrorActionถูกตั้งค่าเป็น เงียบ ๆ ดำเนินการต่อเพื่อที่ว่าหากเกิดข้อผิดพลาดใด ๆ ในกระบวนการมันก็จะยังคงดำเนินต่อไป
ตอนนี้เราอยู่ที่ บรรทัดสุดท้าย
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}
เช่นเดียวกับ โฮสต์การเขียนทำครั้งแรกมันจะเอาท์พุทประโยคต่อไปนี้เพื่อให้เรารู้ว่าเกิดอะไรขึ้น . มันจะบอกเราว่ามีกี่ไฟล์ที่ถูกลบออกจากโฟลเดอร์ที่เพิ่งประมวลผลและทำเป็นสีเขียวเพื่อให้มองเห็นได้ง่าย
ลองดูสคริปต์ทั้งหมด:
$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count
if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}
คุณสามารถคัดลอกและวางสิ่งนี้ลงใน PowerShell ISE ของคุณและบันทึกเป็นอย่างเช่น delete-TemporaryFiles.ps1คุณอาจยึดหลักการตั้งชื่อของ cmdlets ในตอนนี้ที่คุณเข้าใจแล้ว
หากรหัสไม่ทำงานสำหรับคุณด้วยเหตุผลบางประการคุณสามารถ ดาวน์โหลดสคริปต์ PowerShell ที่เราสร้างขึ้นและ เพียงแค่เรียกใช้ เพียงเปิดเครื่องรูดมันก่อนเพื่อดูไฟล์สคริปต์
เมื่อใดก็ตามที่คุณต้องการเรียกใช้สคริปต์นี้เพียงคลิกขวาแล้วเลือก เรียกใช้ด้วย PowerShellคอนโซล PowerShell จะปรากฏขึ้นหนึ่งหรือสองวินาทีในขณะที่สคริปต์ของคุณทำสิ่งนั้นแล้วจะหายไปหากไม่มีข้อผิดพลาด
ฉันจะเรียนรู้ PowerShell เพิ่มเติมได้ที่ไหน
ที่ดูเหมือนจะเยอะมาก! สำหรับสคริปต์ PowerShell แรกของคุณมันค่อนข้างยุติธรรม ถ้าคุณทำมาไกลขนาดนี้จงปรบมือ คุณได้เรียนรู้มากวันนี้ แต่ตอนนี้คุณต้องการเรียนรู้เพิ่มเติม เยี่ยมมาก!
มีทรัพยากรมากมายบนอินเทอร์เน็ตสำหรับการเรียนรู้เพิ่มเติมเกี่ยวกับ PowerShell จุดเริ่มต้นที่ดีคือบทความของเรา“ สร้างรายชื่อโปรแกรมเริ่มต้นผ่าน Command Line หรือ PowerShell ” จากนั้นตรวจสอบแหล่งข้อมูลอื่น ๆ เหล่านี้: