การเรียนรู้ PowerShell: วิธีเรียกใช้สคริปต์อย่างมีประสิทธิภาพในฐานะผู้ดูแลระบบ
5 ขั้นตอนสำคัญในการเรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบ
ลองนึกภาพสิ่งนี้: คุณใช้เวลานับไม่ถ้วนในการสร้างสคริปต์ PowerShell ที่สมบูรณ์แบบที่จะปฏิวัติการจัดการโครงสร้างพื้นฐานด้านไอทีของบริษัทของคุณ คุณตื่นเต้นที่จะนำเสนอสิ่งนี้ให้ทีมของคุณในระหว่างการประชุม และทุกคนแทบอดใจรอไม่ไหวที่จะเห็นมันใช้งานจริง อย่างไรก็ตาม เมื่อคุณลองเรียกใช้สคริปต์ คุณจะได้รับการต้อนรับด้วยข้อความแสดงข้อผิดพลาด Access Denied ฝันร้ายจริงๆ!
อย่ากลัวเลย เพราะนี่เป็นปัญหาทั่วไปเมื่อต้องเรียกใช้สคริปต์ PowerShell ข่าวดีก็คือสามารถแก้ไขได้ง่ายด้วยการเรียกใช้สคริปต์ของคุณด้วยสิทธิ์ของผู้ดูแลระบบ ในคู่มือที่ครอบคลุมนี้ เราจะแสดงห้าขั้นตอนสำคัญในการเรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบ เพื่อให้มั่นใจว่าการทำงานหนักของคุณจะไม่ทำให้เสียเปล่า หลังจากอ่านบทความนี้ คุณจะมีความรู้ที่จำเป็นในการยกระดับเกมการเรียกใช้สคริปต์ของคุณไปอีกระดับ
1. ทำความเข้าใจความต้องการสิทธิ์ของผู้ดูแลระบบ
ก่อนที่จะเจาะลึกถึงวิธีต่างๆ ในการเรียกใช้สคริปต์ PowerShell ด้วยสิทธิ์ผู้ดูแลระบบ เรามาพูดคุยกันสั้นๆ ว่าเหตุใดสิทธิ์เหล่านี้จึงมีความจำเป็น มีบางครั้งที่สคริปต์ต้องการสิทธิ์ระดับสูงเพื่อดำเนินการคำสั่งบางอย่างหรือแก้ไขการตั้งค่าระบบเฉพาะ การเรียกใช้สคริปต์โดยไม่มีสิทธิ์ของผู้ดูแลระบบอาจทำให้เกิดข้อผิดพลาด ลักษณะการทำงานที่ไม่คาดคิด หรือฟังก์ชันการทำงานที่จำกัด ซึ่งไม่เหมาะ ดังนั้นการรู้วิธีเรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบจึงเป็นสิ่งสำคัญสำหรับวิศวกรซอฟต์แวร์ที่เกี่ยวข้องกับ PowerShell
2. คลิกขวาที่วิธี 'เรียกใช้ในฐานะผู้ดูแลระบบ'
วิธีที่ง่ายที่สุดในการเปิดใช้สคริปต์ PowerShell ที่มีสิทธิ์ระดับสูงคือการใช้เมนูบริบทของ Windows ทำตามขั้นตอนง่ายๆ เหล่านี้:
1. ค้นหาสคริปต์ PowerShell (ไฟล์ .ps1) ที่คุณต้องการดำเนินการ
2. คลิกขวาที่ไฟล์สคริปต์
3. เลือก เรียกใช้ด้วย PowerShell จากเมนูบริบท
4. หากได้รับแจ้งจากการควบคุมบัญชีผู้ใช้ (UAC) ให้คลิก ใช่ เพื่อให้สิทธิ์ผู้ดูแลระบบแก่สคริปต์
วิธีการนี้ทำงานได้ดีสำหรับการเรียกใช้สคริปต์อย่างรวดเร็วด้วยสิทธิ์ของผู้ดูแลระบบ แต่อาจไม่เหมาะสำหรับสถานการณ์ขั้นสูงหรือระบบอัตโนมัติ
3. การใช้ PowerShell เพื่อเรียกใช้สคริปต์ในฐานะผู้ดูแลระบบ
คุณยังสามารถยกระดับสิทธิ์ของคุณได้จากภายในคอนโซล PowerShell เอง โดยมีวิธีการดังนี้:
1. เปิด PowerShell (กด Win + X และเลือก Windows PowerShell (Admin) หรือค้นหา PowerShell ในเมนู Start คลิกขวาที่ และเลือก Run as administrator).
2. หากได้รับแจ้งจาก UAC ให้คลิก ใช่ เพื่อให้สิทธิ์ผู้ดูแลระบบ
3. ไปที่ โฟลเดอร์ที่สคริปต์ของคุณตั้งอยู่โดยใช้ Set-Location cmdlet: Set-Location C:pathtoyourscript
4. รันสคริปต์ของคุณโดยใช้ & ตามด้วยชื่อสคริปต์: & .YourScript.ps1
วิธีนี้ช่วยให้คุณสามารถเรียกใช้คำสั่งหรือสคริปต์ PowerShell ใด ๆ ที่มีสิทธิ์ยกระดับได้โดยตรงจากคอนโซล
4. ใช้ Command Prompt เพื่อเรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบ
นอกจากนี้ยังสามารถรันสคริปต์ PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบโดยใช้ Command Prompt นี่คือขั้นตอน:
1. เปิด Command Prompt ด้วยสิทธิ์ของผู้ดูแลระบบ (ค้นหา Command Prompt ในเมนู Start คลิกขวาที่เมนูนั้น และเลือก Run as administrator)
2 หากได้รับแจ้งจาก UAC ให้คลิก ใช่ เพื่อให้สิทธิ์ผู้ดูแลระบบ
3. หากต้องการเปิดสคริปต์ PowerShell ให้ใช้คำสั่งต่อไปนี้: powershell.exe -ExecutionPolicy Bypass -File C: pathtoyourscriptYourScript.ps1
โดยการระบุ -ExecutionPolicy Bypass คุณจะแจ้งให้ PowerShell ละเว้นนโยบายการดำเนินการของระบบชั่วคราว และเรียกใช้สคริปต์โดยไม่มีข้อจำกัด
5. การเรียกใช้สคริปต์ PowerShell ด้วยสิทธิ์ผู้ดูแลระบบผ่าน Task Scheduler
อีกทางเลือกหนึ่งคือการกำหนดเวลางานที่เรียกใช้งานสคริปต์ PowerShell ของคุณด้วยสิทธิ์ของผู้ดูแลระบบ สิ่งนี้มีประโยชน์หากคุณต้องการให้สคริปต์ทำงานโดยอัตโนมัติในเวลาหรือเหตุการณ์ที่ระบุ โดยมีวิธีการดังนี้:
1. เปิด Task Scheduler (ค้นหา Task Scheduler ในเมนู Start)
2. ในหน้าต่าง Actions คลิก Create Task
3. ตั้งชื่อและคำอธิบายให้กับงานของคุณ
4. เลือกช่องทำเครื่องหมาย เรียกใช้ด้วยสิทธิ์สูงสุด
5. บน ทริกเกอร์ แท็บ กำหนดเวลาและความถี่ที่คุณต้องการให้งานรัน
6. บนแท็บ การกระทำ คลิก ใหม่… และตั้งค่าต่อไปนี้ :
- การดำเนินการ: เริ่มโปรแกรม
- โปรแกรม/สคริปต์: powershell.exe
- เพิ่มอาร์กิวเมนต์: -ExecutionPolicy บายพาส - ไฟล์ C:pathtoyourscriptYourScript.ps1
7. คลิก ตกลง เพื่อบันทึกงานใหม่ของคุณ
ตอนนี้สคริปต์ของคุณจะถูกดำเนินการด้วยสิทธิ์ของผู้ดูแลระบบตามกำหนดเวลาหรือทริกเกอร์ที่คุณกำหนดไว้
คุณจะไม่ต้องถูกรบกวนด้วยข้อผิดพลาด Access Denied ที่น่าหวาดกลัวอีกต่อไป เมื่อรันสคริปต์ PowerShell ที่สร้างขึ้นอย่างพิถีพิถัน ด้วยขั้นตอนสำคัญห้าขั้นตอนเหล่านี้ คุณสามารถรับมือกับความท้าทายใดๆ ที่ต้องใช้สิทธิ์ของผู้ดูแลระบบในสคริปต์ของคุณ อย่าลืมใช้ความรู้อันทรงพลังนี้อย่างมีความรับผิดชอบ และปลดล็อกศักยภาพสูงสุดของ PowerShell
Windows Powershell กับ Command Prompt: อะไรคือความแตกต่าง?
หลักสูตรเต็มของเครื่องมือขั้นสูงและการเขียนสคริปต์ Powershell
ฉันจะรันสคริปต์ PowerShell ในฐานะผู้ดูแลระบบโดยไม่ต้องแจ้งให้ทราบได้อย่างไร
ในการรันสคริปต์ PowerShell ในฐานะผู้ดูแลระบบโดยไม่ต้องแจ้งให้ทราบ คุณสามารถใช้วิธีการต่อไปนี้:
1. ขั้นแรก สร้างงานที่กำหนดเวลาใหม่ด้วย Task Scheduler โดยใช้เครื่องมือบรรทัดคำสั่ง schtasks.exe ซึ่งจะช่วยให้คุณสามารถเรียกใช้สคริปต์ PowerShell ด้วยสิทธิ์ระดับสูงโดยไม่ต้องแจ้งให้ทราบ
หมายเหตุ: คุณต้องแทนที่ตัวยึดตำแหน่งด้วยเส้นทางสคริปต์ ชื่องาน และข้อมูลรับรองผู้ใช้ของคุณ
schtasks.exe /Create /TN “YourTaskName” /TR “powershell.exe -ExecutionPolicy Bypass -File C:pathtoyourscript.ps1” /SC ONCE /ST 00:00 /RU “SYSTEM” /RL HIGHEST /F2. ถัดไป รันงานที่กำหนดเวลาไว้ ที่คุณเพิ่งสร้างขึ้น:
schtasks.exe /Run /TN “YourTaskName”3. สุดท้าย ลบงานที่กำหนดเวลาไว้ หลังจากที่ดำเนินการแล้ว ขั้นตอนนี้เป็นทางเลือก แต่แนะนำให้จัดระเบียบ Task Scheduler ของคุณ:
schtasks.exe /Delete /TN “YourTaskName” /Fโดยสรุป คุณสามารถรันสคริปต์ PowerShell ในฐานะผู้ดูแลระบบโดยไม่ต้องแจ้งให้ทราบโดยการสร้างงานที่กำหนดเวลาไว้ใหม่ด้วย Task Scheduler รันงาน จากนั้นจึงลบออก
ฉันจะรันสคริปต์ PowerShell จากระยะไกลด้วยสิทธิ์ผู้ดูแลระบบได้อย่างไร
หากต้องการรันสคริปต์ PowerShell จากระยะไกลด้วยสิทธิ์ของผู้ดูแลระบบ คุณสามารถใช้ cmdlet Invoke-Command พร้อมด้วยพารามิเตอร์ -Credential เพื่อระบุข้อมูลรับรองการดูแลระบบที่จำเป็น นอกจากนี้ คุณอาจต้องการใช้พารามิเตอร์ -ComputerName เพื่อระบุคอมพิวเตอร์ระยะไกลเป้าหมาย
นี่คือตัวอย่างเกี่ยวกับวิธีการทำงานนี้:
1. ขั้นแรก เก็บข้อมูลประจำตัวของผู้ดูแลระบบไว้ในตัวแปรโดยใช้ Get-Credential cmdlet:
$AdminCredentials = Get-Credential -UserName “Administrator” -Message “Enter the administrator password”
2. จากนั้น ใช้ Inrigger-Command cmdlet กับ -ComputerName, -FilePath (เพื่อระบุเส้นทางของไฟล์สคริปต์) และ -ข้อมูลรับรอง พารามิเตอร์:
Invoke-Command -ComputerName “RemoteComputerName” -FilePath “C:PathToYourScript.ps1” -Credential $AdminCredentialsแทนที่ ”RemoteComputerName” ด้วยชื่อจริงหรือที่อยู่ IP ของคอมพิวเตอร์ระยะไกล และแทนที่ ”C:PathToYourScript.ps1″ ด้วยเส้นทางไปยังสคริปต์ PowerShell ของคุณ
คำสั่งนี้จะรันสคริปต์ PowerShell ที่ระบุบนคอมพิวเตอร์ระยะไกลโดยใช้ข้อมูลประจำตัวของผู้ดูแลระบบที่ให้ไว้
หมายเหตุ: ก่อนที่จะรันคำสั่ง ตรวจสอบให้แน่ใจว่าคอมพิวเตอร์ระยะไกลได้รับการกำหนดค่าสำหรับ PowerShell ระยะไกล โดยการรันคำสั่งต่อไปนี้บนเครื่องระยะไกล:
Enable-PSRemoting -Forceฉันจะรัน PowerShell ในฐานะผู้ใช้รายอื่นที่มีสิทธิ์ของผู้ดูแลระบบได้อย่างไร
หากต้องการเรียกใช้ PowerShell ในฐานะผู้ใช้รายอื่นที่มีสิทธิ์ของผู้ดูแลระบบ คุณควรใช้ cmdlet Start-Process พร้อมด้วยสวิตช์และพารามิเตอร์ที่ผสมผสานกันอย่างเหมาะสม ทำตามขั้นตอนเหล่านี้:
1. กด Win + X และคลิกที่ Windows PowerShell (Admin) เพื่อเปิด PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบ
2. ดำเนินการคำสั่งต่อไปนี้เพื่อเรียกใช้ PowerShell ในฐานะผู้ใช้อื่นที่มีสิทธิ์ของผู้ดูแลระบบ:
Start-Process -FilePath “powershell.exe” -Credential (Get-Credential) -ArgumentList “Start-Process powershell.exe -Verb RunAs”3. หลังจากรันคำสั่งแล้ว กล่องโต้ตอบ คำขอข้อมูลรับรอง Windows PowerShell จะปรากฏขึ้น
4. ป้อนชื่อผู้ใช้และรหัสผ่านของผู้ใช้ที่มีสิทธิ์ของผู้ดูแลระบบ จากนั้นคลิก ตกลง
5. หน้าต่าง PowerShell ใหม่จะเปิดขึ้นโดยทำงานภายใต้ข้อมูลประจำตัวของผู้ใช้ที่ระบุและมีสิทธิ์ระดับผู้ดูแลระบบ
โปรดจำไว้ว่า จำเป็นต้องดำเนินการหน้าต่าง PowerShell เริ่มต้นในฐานะผู้ดูแลระบบ เนื่องจากจะทำให้คุณสามารถเปิดเซสชันใหม่ในฐานะผู้ใช้รายอื่นที่มีสิทธิ์ระดับสูงได้
ฉันจะรัน PowerShell ด้วยสิทธิ์ผู้ดูแลระบบได้อย่างไร
หากต้องการดำเนินการ PowerShell ด้วยสิทธิ์ผู้ดูแลระบบ ให้ทำตามขั้นตอนเหล่านี้:
1. กด Windows Key + X เพื่อเปิดเมนู *Quick Link*
2. คลิกที่ตัวเลือก Windows PowerShell (Admin)
3. หากได้รับแจ้งจากบัญชีผู้ใช้ ควบคุม (UAC) คลิกใช่เพื่ออนุญาตให้ PowerShell ทำงานด้วยสิทธิ์ผู้ดูแลระบบ
หรือคุณสามารถทำตามขั้นตอนเหล่านี้:
1. กด Windows Key + S เพื่อเปิดแผง *ค้นหา*
2. พิมพ์ PowerShell ในแถบค้นหา
3. คลิกขวาที่ Windows ผลลัพธ์ PowerShell และเลือก เรียกใช้ในฐานะผู้ดูแลระบบ.
4. หากได้รับแจ้งจาก UAC ให้คลิกใช่เพื่ออนุญาตให้ PowerShell ทำงานด้วยสิทธิ์ผู้ดูแลระบบ
หลังจากดำเนินการวิธีใดวิธีหนึ่งข้างต้น คุณจะมีเซสชันบรรทัดคำสั่ง PowerShell ที่ทำงานด้วยสิทธิ์ผู้ดูแลระบบ
ฉันจะรันสคริปต์ PowerShell ด้วยสิทธิ์ผู้ดูแลระบบโดยใช้บรรทัดคำสั่งได้อย่างไร
หากต้องการรันสคริปต์ PowerShell ด้วยสิทธิ์ผู้ดูแลระบบโดยใช้บรรทัดคำสั่ง ให้ทำตามขั้นตอนเหล่านี้:
1. ขั้นแรก สร้างสคริปต์ PowerShell ของคุณ (เช่น MyScript.ps1) และบันทึกไว้ในตำแหน่งเฉพาะ เช่น เดสก์ท็อปของคุณหรือโฟลเดอร์สคริปต์เฉพาะ
2. กด Win + X เพื่อเปิดเมนู Power User และเลือก Windows PowerShell (Admin) ซึ่งจะเป็นการเปิดเซสชัน PowerShell ที่ยกระดับ
3. ในหน้าต่าง PowerShell ที่ยกระดับ ให้นำทางไปยังตำแหน่งที่คุณบันทึกไฟล์ MyScript.ps1 ของคุณ เช่น ถ้าอยู่บนเดสก์ท็อป ให้พิมพ์:
cd $env:USERPROFILEDesktop4. ก่อนที่จะรันสคริปต์ ตรวจสอบให้แน่ใจว่านโยบายการดำเนินการ PowerShell ของคุณอนุญาตให้เรียกใช้สคริปต์ได้ เมื่อต้องการทำเช่นนี้ ให้พิมพ์คำสั่งต่อไปนี้แล้วกด Enter:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Forceนี่เป็นการตั้งค่านโยบายการดำเนินการสำหรับผู้ใช้ปัจจุบันเป็น RemoteSigned ทำให้คุณสามารถเรียกใช้สคริปต์ที่สร้างขึ้นในเครื่องได้
5. สุดท้าย รันสคริปต์ PowerShell ของคุณด้วยสิทธิ์ผู้ดูแลระบบโดยพิมพ์ชื่อสคริปต์ รวมถึงส่วนขยาย .ps1 แล้วกด Enter:
.MyScript.ps1สคริปต์ของคุณจะทำงานด้วยสิทธิ์ผู้ดูแลระบบในบรรทัดคำสั่ง
วิธีการเรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบจากพรอมต์คำสั่งคืออะไร
เมื่อต้องการเรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบจากพร้อมท์คำสั่ง ให้ทำตามขั้นตอนเหล่านี้:
1. เปิด Command Prompt ที่ยกระดับขึ้นโดยคลิกขวาที่ไอคอน Command Prompt และเลือก Run as Administrator
2. เปลี่ยนเป็นไดเร็กทอรีที่สคริปต์ PowerShell ของคุณตั้งอยู่โดยใช้คำสั่ง cd ตามด้วยเส้นทางโฟลเดอร์ ตัวอย่างเช่น: cd C:Scripts
3. ตอนนี้ให้พิมพ์คำสั่งต่อไปนี้แล้วกด Enter:
powershell.exe -บายพาส ExecutionPolicy - ไฟล์ your_script_name.ps1
แทนที่ your_script_name.ps1 ด้วยชื่อจริงของสคริปต์ PowerShell ที่คุณต้องการเรียกใช้ในฐานะผู้ดูแลระบบ
ในคำสั่งนี้ -ExecutionPolicy Bypass อนุญาตให้สคริปต์ PowerShell ทำงานโดยไม่มีข้อจำกัดนโยบายการดำเนินการใดๆ และ -ไฟล์ ระบุเส้นทางของสคริปต์ที่จะดำเนินการ
คุณช่วยระบุขั้นตอนในการยกระดับสคริปต์ PowerShell ให้ทำงานด้วยสิทธิ์ของผู้ดูแลระบบผ่านทางบรรทัดคำสั่งได้หรือไม่
หากต้องการยกระดับสคริปต์ PowerShell ให้ทำงานด้วยสิทธิ์ผู้ดูแลระบบผ่านบรรทัดคำสั่ง ให้ทำตามขั้นตอนเหล่านี้:
1. ขั้นแรก เปิดหน้าต่าง PowerShell ใหม่พร้อมสิทธิ์ของผู้ดูแลระบบ คุณสามารถทำได้โดยค้นหา PowerShell ในเมนู Start คลิกขวาที่ไอคอน PowerShell และเลือก Run as Administrator
2. เมื่อคุณเปิดหน้าต่าง PowerShell ที่ยกระดับแล้ว ให้นำทางไปยังไดเรกทอรีที่มีสคริปต์ PowerShell ของคุณโดยใช้คำสั่ง Set-Location (หรือ cd) ตัวอย่างเช่น:
Set-Location C:Scripts3. รันสคริปต์ PowerShell ของคุณด้วยแฟล็กที่เหมาะสม หากต้องการเรียกใช้สคริปต์ใน PowerShell คุณต้องใช้สัญลักษณ์ & (เครื่องหมายและ) ตามด้วยเส้นทางแบบเต็มของสคริปต์ นอกจากนี้ คุณควรรวมแฟล็ก -ExecutionPolicy Bypass เพื่อข้ามนโยบายการดำเนินการเริ่มต้น
& .YourScript.ps1 -ExecutionPolicy Bypassแทนที่ YourScript.ps1 ด้วยชื่อสคริปต์ของคุณ
หากต้องการสรุป ให้เรียกใช้สคริปต์ PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบผ่านทางบรรทัดคำสั่ง ให้ทำตามขั้นตอนเหล่านี้:
1. เปิดพรอมต์ PowerShell ที่ยกระดับ (เรียกใช้ในฐานะผู้ดูแลระบบ)
2. นำทางไปยังไดเร็กทอรีที่สคริปต์ของคุณตั้งอยู่โดยใช้ Set-Location (cd)
3. รันสคริปต์ของคุณโดยใช้ตัวดำเนินการ & และแฟล็ก -ExecutionPolicy Bypass
โปรดทราบว่าการเรียกใช้สคริปต์ด้วยสิทธิ์ของผู้ดูแลระบบอาจเป็นอันตรายได้หากคุณไม่แน่ใจในเนื้อหา ดังนั้นควรตรวจสอบสคริปต์อีกครั้งเพื่อให้แน่ใจว่าไม่มีโค้ดที่เป็นอันตราย