Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> การบำรุงรักษาคอมพิวเตอร์

15 งานขั้นสูงที่ PowerShell ทำได้ใน Windows 10

PowerShell อาจดูน่ากลัวสำหรับผู้ใช้ใหม่ ในปี 2016 มีบางอย่างที่ archaic และเก่าแก่เกี่ยวกับ text-based interface — แตการเชี่ยวชาญช่วยควบคุมคอมพิวเตอร์ได้แบบที่คิดไม่ถึง

ผู้เชี่ยวชาญใช้ PowerShell ทำงานทุกด้านของระบบ แต mastery นั้นมาจากการเข้าใจ basics และ practice มากพอ โดยเข้าใจ 15 งานนี้ คุณเริ่มเข้าใจ PowerShell คืออะไร และเห็นว่าความสามารถของมันไปได้ไกลแค่ไหน

เปิด Elevated PowerShell Prompt

เพื่อเริ่มงานเหล่านี้ ต้องเปิด elevated PowerShell prompt พิมพ์ Powershell ใน Windows search bar right-click ผลลัพธ์ที่ถูกต้อง เลือก Run as Administrator

15 งานขั้นสูงที่ PowerShell ทำได้ใน Windows 10

หรือพิมพ์ PowerShell ใน search bar กด CTRL + SHIFT + ENTER ได้ผลเดียวกัน

ตั้งค่าวันที่และเวลา

มีหลายวิธีตั้งวันที่ในคอมพิวเตอร์ แต่ความเรียบง่ายของคำสั่ง PowerShell ต่อไปนี้ทำให้เหมาะสำหรับฝึกฝนมือใหม่ อย่างไรก็ตาม ควรระวังขณะปรับพารามิเตอร์เหล่านี้บนคอมพิวเตอร์ที่ไม่ใช่ของตัวเอง — system clocks ที่ไม่ aligned อาจทำลาย Active Directory environment

เริ่มต้นด้วยการเปิด elevated PowerShell prompt และป้อนคำสั่ง:

Set-Date -date "12/25/2016 7:30 AM"

กด enter คอมพิวเตอร์จะคิดว่าวันนี้คือวันคริสต์มาส คุณสามารถทดสอบโดยใช้คำสั่งเดียวกันตั้งเวลา/วันที่กลับมาถูกต้อง หรือบอก PC ให้ตั้งเวลา/วันที่อัตโนมัติอีกครั้งผ่าน Settings app

ปรับวันที่และเวลา

บางกรณีอาจต้องการปรับวันที่/เวลา แทนที่จะเปลี่ยนทั้งหมด เพื่อทำงานนี้ เราใช้ Set-Date cmdlet เดิมแต่วิธีต่างออกไป:

Set-Date (Get-Date).AddDays(2)

ด้านบนคือคำสั่งดึงวันที่ปัจจุบันในคอมพิวเตอร์ แล้ว trigger process เพิ่มวันขึ้น 2 วัน เราสามารถใช้ AddHours, AddMinutes หรือ AddSeconds ปรับละเอียด หรือใช้เครื่องหมายลบหน้าตัวเลขเพื่อย้อนกลับไปในอดีต

ตรวจสอบไฟล์และโฟลเดอร์

คำสั่ง PowerShell ทำให้ตรวจสอบง่ายว่าไฟล์/โฟลเดอร์มีอยู่จริงหรือไม่ โดยไม่ต้องใช้เวลาขุดหาใน File Explorer ใช้ Test-Path cmdlet ตรวจสอบว่ามีอะไรที่ path ที่ระบุ ตัวอย่าง หาไฟล์ PowerShell.xls ในโฟลเดอร์ Documents:

Test-Path c:\Users\Brad\Documents\PowerShell.xls

แตคุณไม่ต้องรู้ชื่อไฟล์แน่ชัด * ใช้เป็น wildcard ได้ หากต้องการหา file type เฉพาะ:

Test-Path c:\Users\Brad\Documents\*.xls

เปลี่ยนชื่อไฟล์และโฟลเดอร์

เมื่อคุ้นเคยกับการพิมพ์ file paths PowerShell ใช้ rename ไฟล์/โฟลเดอร์ได้เร็วและมีประสิทธิภาพ จำได้ว่า ใช้ Rename-Item cmdlet ให้ path ปัจจุบัน แล้วชื่อที่ต้องการ:

Rename-Item c:\Users\Brad\Documents\PowerShellisDifficult.xls PowerShellisEasy.xls

ย้ายไฟล์และโฟลเดอร์

ย้ายไฟล์/โฟลเดอร์ด้วย PowerShell ง่ายเมื่อเคยใช้ Rename-Item แทนส่วนที่ระบุชื่อใหม่ด้วย location ใหม่:

Move-Item c:\Users\Brad\Documents\PowerShellisEasy.xls c:\Users\Brad\Important Documents

รวมกับ wildcard ที่ใช้ก่อนหน้า ย้ายไฟล์ประเภทเฉพาะจากโฟลเดอร์หนึ่งไปอีกโฟลเดอร์ได้เร็ว:

Move-Item c:\Users\Brad\Documents\*.xls c:\Users\Brad\Important Documents

เปิดโปรแกรม

Invoke-Item cmdlet เปิดแอปพลิเคชันหรือไฟล์โดยตรงจาก PowerShell prompt:

Invoke-Item c:\Windows\System32\notepad.exe

อย่างไรก็ตาม ถ้าแอปพลิเคชันอยู่ใน Windows path คุณสามารถพิมพ์ชื่อมันใน PowerShell ได้เลย:

notepad

เปิดไฟล์ด้วยโปรแกรมเริ่มต้น

Cmdlet นี้ใช้เปิดไฟล์ได้ดีกว่า แตมีข้อแม้เล็กน้อย: Invoke-Item เปิดไฟล์ในโปรแกรมที่ตั้งเป็น default ตรวจสอบให้แน่ใจว่าตั้งค่าแล้ว:

Invoke-Item c:\MakeUseOf\Hello.txt

เปิดไฟล์เป็นชุด (batch)

Invoke-Item ส่องสว่างเมื่อรวมกับ wildcard asterisk ด้วยคำสั่งนี้ คุณเปิดโฟลเดอร์เต็มของไฟล์ได้ในทันที:

Invoke-Item c:\MakeUseOf\*.txt

อ่านไฟล์ข้อความ

Text-based interface ของ PowerShell ไม่มีวันแข่งขันกับ VLC ในจำนวน file types ที่แสดงได้ แตเหมาะสำหรับแสดงเนื้อหา .txt files ด้วยคำสั่ง Get-Content:

Get-Content c:\MakeUseOf\Hello.txt
15 งานขั้นสูงที่ PowerShell ทำได้ใน Windows 10

อย่างไรก็ตาม คุณอาจต้องการ preview แทนการแสดงทั้งหมด โดยเฉพาะถ้าไฟล์ใหญ่ ใช้ parameter -totalcount:

Get-Content c:\MakeUseOf\Hello.txt -totalcount 5
15 งานขั้นสูงที่ PowerShell ทำได้ใน Windows 10

เห็นได้ว่ามีแค่ 5 บรรทัดแรกแสดงผล

เพิ่มข้อความในไฟล์ข้อความ

คุณสามารถทำได้มากกว่าการอ่าน โดยใช้ Add-Content cmdlet:

Add-Content c:\MakeUseOf\Hello.txt "written by Brad Jones"

แต่นี่จะเพิ่มข้อความท้ายเอกสารเท่านั้น อาจไม่ใช่ที่คุณต้องการ

15 งานขั้นสูงที่ PowerShell ทำได้ใน Windows 10

ใช้ special character เพื่อระบุว่าเพิ่มในบรรทัดใหม่:

Add-Content c:\MakeUseOf\Hello.txt "`nwritten by Brad Jones"
15 งานขั้นสูงที่ PowerShell ทำได้ใน Windows 10

คุณอาจต้องจด special characters อื่นๆ ไว้ขณะทำงานกับ PowerShell: `b = backspace, `t = horizontal tab, `'' = single quote, `"" = double quote

วัดไฟล์ข้อความ

ไม่ว่าจะหาไฟล์ที่ชื่อไม่รู้จัก หรืออยากรู้ว่าเขียนโค้ดได้กี่บรรทัดในวันหนึ่ง PowerShell มีวิธีวัดจำนวนบรรทัดใน text file ได้มีประสิทธิภาพ ใช้คำสั่ง:

Get-Content c:\MakeUseOf\Hello.txt | Measure-Object
15 งานขั้นสูงที่ PowerShell ทำได้ใน Windows 10

ตอนนี้เราใช้สอง cmdlets ร่วมกัน — และนี่จะสำคัญขึ้นเรื่อยๆ ยิ่งลึกเข้าไปใน PowerShell

Security and System Admin (ความปลอดภัยและระบบจัดการ)

หากคอมพิวเตอร์มีพฤติกรรมผิดปกติ คุณอาจไม่เข้าถึงช่องทางปกติในการวินิจฉัย ในเวลาเช่นนี้ การรู้วิธีดึงข้อมูลเดียวกันด้วย PowerShell มีประโยชน์มาก

Get-Service เป็น cmdlet ที่คุ้มค่าที่จะจดไว้ เรียกมันจะแสดง services ทั้งหมดที่ติดตั้งพร้อมสถานะปัจจุบัน:

Get-Service

แต่เราสามารถใช้คำสั่งซับซ้อนกว่าเพื่อระบุประเภท services ที่อยากเห็น:

Get-Service | Where-Object {$_.status -eq "stopped"}

คำสั่งนี้แสดงเฉพาะ services ที่หยุดอยู่ โดยตรวจสอบ status ของแต่ละ object (แทนด้วย $_ ในคำสั่ง) เราสามารถแทน stopped ด้วย running เพื่อได้ services ที่ทำงานอยู่

Restart a Service (รีสตาร์ทบริการ)

เมื่อทราบว่า service ไหนก่อปัญหา เราสามารถ restart โดยตรงจาก PowerShell:

Restart-Service dbupdate

เรายังใช้ parameter เรียก service โดย display name แทนชื่อที่ระบบใช้ซับซ้อน:

Restart-Service -displayname "Dropbox Update Service"

Modify a Service (ปรับเปลี่ยนบริการ)

ปัญหาบางอย่างแก้ไม่ได้ด้วย restart แบบง่าย หากปัญหามาจาก service ที่ติดตัวเปิดตอน startup ใช้ PowerShell เปลี่ยนตั้งค่า:

Set-Service dbupdate -startuptype "manual"

ขึ้นอยู่กับเป้าหมาย สามารถใช้ "automatic" และ "disabled" แทน "manual" ได้

Refresh Stuck Apps (รีเฟรชแอปที่ค้าง)

หากแอปค้างที่ splash screen หรือ initialize ไม่ได้ มันรบกวนมาก Windows 10 เน้น apps มากกว่า traditional programs และซอฟต์แวร์ประเภทนี้มักไม่ให้โอกาส troubleshoot มาก

แต PowerShell ใช้เสนอ workaround สำหรับปัญหานี้ได้ — ขอบคุณ MakeUseOf reader Gary Beaty สำหรับเคล็ดลับนี้:

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

นี่คือคำสั่งซับซ้อนที่สุดที่เราทำงานมาจนถึงตอนนี้ อย่า discouraged หากไม่เข้าใจทุกส่วน แตจากสิ่งที่เรียนรู้เกี่ยวกับ cmdlets, parameters และเทคนิคอื่นๆ ในบทความนี้ คุณควรพยายาม unpack บางส่วนของสิ่งที่เกิดขึ้นได้

Next Steps (ขั้นตอนต่อไป)

15 เทคนิคนี้แค่ introduction ของสิ่งที่ PowerShell ทำได้ การขุดลึกต้องการ coding knowledge เล็กน้อย หรือความพร้อมที่จะเรียน — แตการลงเวลาจะคุ้มค่า

Microsoft's Windows PowerShell Owner's Manual เป็นจุดเริ่มต้นที่ดี ต่อมา ดู PowerShell subreddit เตือนไว้ว่าผู้ใช้ส่วนใหญ่เป็น experts อาจรู้สึก out of depth ตอนแรก แตเป็นที่ดีที่จะดูว่า experienced users ทำได้อะไร และได้แรงบันดาลใจพัฒนาทักษะ

มองหาช่วยเหลือ PowerShell? หรือพร้อมแชร์ความรู้? เข้าร่วมสนทนาในความคิดเห็นด้านล่าง!