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

เรียกใช้ PowerShell ในฐานะผู้ใช้รายอื่น [4 วิธี]


การใช้คำสั่ง runas

คำสั่ง runas ใน PowerShell เรียกใช้โปรแกรมโดยใช้ข้อมูลรับรองที่แตกต่างจากผู้ใช้ปัจจุบัน ให้สิทธิ์แก่ผู้ใช้ในการรันคำสั่งหรือเข้าถึงทรัพยากรที่มีให้เฉพาะกับบัญชีที่มีสิทธิ์มากกว่าเท่านั้น

ไวยากรณ์ของคำสั่งคือ runas /user:UserName ProgramName โดยที่ UserName เป็นบัญชีที่ได้รับอนุญาต และ ProgramName เป็นชื่อของแอปพลิเคชัน สคริปต์ เอกสาร ฯลฯ ที่สามารถเปิดหรือเรียกใช้โดยบัญชีนี้ได้

หากต้องการเรียกใช้ PowerShell ในฐานะผู้ใช้รายอื่นโดยใช้คำสั่ง runas เราต้องมีคุณสมบัติตรงตามข้อกำหนดด้านล่าง

  • เปิด PowerShell ในฐานะ ผู้ดูแลระบบ
  • จากนั้นให้รันคำสั่ง runas

เปิด PowerShell ในฐานะ ผู้ดูแลระบบ

หากต้องการเปิด PowerShell ในฐานะ ผู้ดูแลระบบ:

  • กด ปุ่ม Windows + R เพื่อเปิดหน้าต่าง Run
  • พิมพ์ powershell แล้วกด Ctrl + Shift + Enter เพื่อเปิด PowerShell ในฐานะผู้ดูแลระบบ

เรียกใช้คำสั่ง runas

ในหน้าต่าง PowerShell ให้ใช้คำสั่ง runas เพื่อเปิด PowerShell

ทำงานเหมือนกับผู้ใช้รายอื่น:

runas /user:UserName "powershell.exe"

แทนที่ ชื่อผู้ใช้ ด้วยชื่อของบัญชีที่ต้องการ คำสั่งดังกล่าวจะแจ้งให้ผู้ใช้ป้อนรหัสผ่านสำหรับบัญชีผู้ใช้ หลังจากป้อนรหัสผ่านที่ถูกต้อง หน้าต่าง PowerShell ใหม่จะเปิดขึ้น โดยทำงานภายใต้บัญชีผู้ใช้ที่ระบุ

หลังจากเปิดหน้าต่าง PowerShell สำเร็จแล้ว ให้ใช้คำสั่ง whoami ในหน้าต่าง PowerShell เพื่อตรวจสอบว่าหน้าต่างทำงานภายใต้บัญชีผู้ใช้ที่ระบุหรือไม่

โฮอามิ :

whoami

การใช้ cmdlet Start-Process พร้อมด้วยพารามิเตอร์ Credential

Start-Process คือ cmdlet ที่เริ่มกระบวนการตั้งแต่หนึ่งกระบวนการขึ้นไปบนเครื่องคอมพิวเตอร์ ในทางตรงกันข้าม พารามิเตอร์ Credential อนุญาตให้ผู้ใช้จัดเตรียมหนังสือรับรองสำรองให้กับกระบวนการที่ต้องมีการรับรองความถูกต้อง

โซลูชันที่ใช้ UI

วิธีแก้ไขคือการให้ข้อมูลประจำตัวผ่านกล่องโต้ตอบ UI เราได้พูดคุยถึงการเปิด PowerShell ในฐานะ ผู้ดูแลระบบ ในการอธิบายการใช้คำสั่ง runas ในส่วนนี้ เราต้องปฏิบัติตามข้อกำหนดด้านล่าง

  • เรียกใช้ cmdlet Start-Process
  • ปิดหน้าต่าง PowerShell หลัก

เรียกใช้ cmdlet Start-Process

ในหน้าต่าง PowerShell ให้ใช้คำสั่ง Start-Process เพื่อเปิด PowerShell

cmdlet เริ่มต้นกระบวนการ:

Start-Process powershell.exe -Credential ''

คำสั่งดังกล่าวจะแจ้งให้ผู้ใช้ป้อนชื่อผู้ใช้และรหัสผ่านสำหรับบัญชีผู้ใช้

หลังจากป้อนรหัสผ่านที่ถูกต้อง หน้าต่าง PowerShell ใหม่จะเปิดขึ้น โดยทำงานภายใต้บัญชีผู้ใช้ที่ระบุ

ปิดหน้าต่าง PowerShell หลัก

ตามค่าเริ่มต้น ระบบปฏิบัติการ Windows จะไม่อนุญาตให้เราพิมพ์สิ่งใดลงในหน้าต่าง PowerShell ที่เพิ่งเปิดใหม่จนกว่าเราจะปิดหน้าต่าง PowerShell หลัก ดังนั้นให้ปิดหน้าต่างหลักและใช้คำสั่ง whoami สำหรับกระบวนการตรวจสอบ

โซลูชันที่ใช้สคริปต์

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

  • แจ้งชื่อผู้ใช้และรหัสผ่าน
  • สร้างวัตถุ ข้อมูลรับรอง
  • เรียกใช้ cmdlet Start-Process

แจ้งชื่อผู้ใช้และรหัสผ่าน

ในหน้าต่าง PowerShell ให้ประกาศ ชื่อผู้ใช้ และ รหัสผ่าน โดยใช้คำสั่งต่อไปนี้

ประกาศชื่อผู้ใช้และรหัสผ่าน:

$username = 'UserName'
$password = 'Password'
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force

แทนที่ ชื่อผู้ใช้ และ รหัสผ่าน ด้วยของบัญชีผู้ใช้

เราใช้ ConvertTo-SecureString cmdlet เพื่อแปลง รหัสผ่าน เป็น securePassword ConvertTo-SecureString cmdlet (เครื่องมือบรรทัดคำสั่ง) แปลงสตริงหรือรหัสผ่านข้อความธรรมดาเป็นสตริงที่ปลอดภัย เช่น การแสดงที่เข้ารหัสเพื่อจัดเก็บข้อมูลละเอียดอ่อน เช่น รหัสผ่านหรือข้อมูลที่ละเอียดอ่อนอื่นๆ

สร้างวัตถุ ข้อมูลรับรอง

สร้างวัตถุ หนังสือรับรอง โดยใช้คำสั่งด้านล่าง:

สร้างวัตถุหนังสือรับรอง:

$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword

เราใช้ New-Object cmdlet เพื่อสร้างอินสแตนซ์ใหม่ ข้อมูลรับรอง ประเภท System.Management.Automation.PSCredential ด้วย ชื่อผู้ใช้ และ SecurePassword เป็นอาร์กิวเมนต์ มักใช้ในสคริปต์และกระบวนการอัตโนมัติอื่นๆ เพื่อสร้างออบเจ็กต์ประเภทเฉพาะและจัดการตามความจำเป็น

เรียกใช้ cmdlet Start-Process

หากต้องการเริ่มต้นอินสแตนซ์ใหม่ของ PowerShell กับผู้ใช้อื่น ให้ใช้ Start-Process cmdlet เป็น:

เรียกใช้ cmdlet เริ่มต้นกระบวนการ:

Start-Process powershell.exe -Credential $credential

การใช้ cmdlet Start-Process เราเริ่มต้นอินสแตนซ์ใหม่ของ PowerShell โดยที่พารามิเตอร์ Credential มาพร้อมกับอ็อบเจ็กต์ credential ที่สร้างขึ้น

มันจะเปิดหน้าต่าง PowerShell ใหม่ ถัดไป ปิดหน้าต่างก่อนหน้าและใช้คำสั่ง whoami บนหน้าต่างใหม่เพื่อตรวจสอบว่าหน้าต่าง PowerShell ทำงานภายใต้ผู้ใช้ใหม่หรือไม่

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