ค้นหาเว็บไซต์

การเรียนรู้ 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 /F

2. ถัดไป รันงานที่กำหนดเวลาไว้ ที่คุณเพิ่งสร้างขึ้น:

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:USERPROFILEDesktop

4. ก่อนที่จะรันสคริปต์ ตรวจสอบให้แน่ใจว่านโยบายการดำเนินการ 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:Scripts

3. รันสคริปต์ PowerShell ของคุณด้วยแฟล็กที่เหมาะสม หากต้องการเรียกใช้สคริปต์ใน PowerShell คุณต้องใช้สัญลักษณ์ & (เครื่องหมายและ) ตามด้วยเส้นทางแบบเต็มของสคริปต์ นอกจากนี้ คุณควรรวมแฟล็ก -ExecutionPolicy Bypass เพื่อข้ามนโยบายการดำเนินการเริ่มต้น

& .YourScript.ps1 -ExecutionPolicy Bypass

แทนที่ YourScript.ps1 ด้วยชื่อสคริปต์ของคุณ

หากต้องการสรุป ให้เรียกใช้สคริปต์ PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบผ่านทางบรรทัดคำสั่ง ให้ทำตามขั้นตอนเหล่านี้:

1. เปิดพรอมต์ PowerShell ที่ยกระดับ (เรียกใช้ในฐานะผู้ดูแลระบบ)
2. นำทางไปยังไดเร็กทอรีที่สคริปต์ของคุณตั้งอยู่โดยใช้ Set-Location (cd)
3. รันสคริปต์ของคุณโดยใช้ตัวดำเนินการ & และแฟล็ก -ExecutionPolicy Bypass

โปรดทราบว่าการเรียกใช้สคริปต์ด้วยสิทธิ์ของผู้ดูแลระบบอาจเป็นอันตรายได้หากคุณไม่แน่ใจในเนื้อหา ดังนั้นควรตรวจสอบสคริปต์อีกครั้งเพื่อให้แน่ใจว่าไม่มีโค้ดที่เป็นอันตราย

บทความที่เกี่ยวข้อง