การรันโปรแกรมจาก PowerShell วิธีเปิด PowerShell วิธีการทั้งหมด การดำเนินการสคริปต์ PowerShell

การเรียกใช้สคริปต์ PowerShell

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

ไฟล์ ไม่สามารถโหลดได้ ไฟล์ ไม่มีลายเซ็นดิจิทัล สคริปต์จะไม่ถูกดำเนินการบนระบบ สำหรับข้อมูลเพิ่มเติม ให้ป้อนคำสั่ง "Get-Help about_signing"
ไฟล์ ไม่สามารถโหลดได้ ไฟล์ ไม่ได้เซ็นชื่อแบบดิจิทัล สคริปต์จะไม่ทำงานบนระบบ โปรดดู “รับความช่วยเหลือเกี่ยวกับการลงนาม” สำหรับรายละเอียดเพิ่มเติม

เปิดตัวโปรแกรมจากผู้เผยแพร่ที่ไม่น่าเชื่อถือใช่ไหม ไฟล์ เผยแพร่โดย CN= ผู้เผยแพร่รายนี้ไม่ได้ถูกทำเครื่องหมายว่าเชื่อถือได้โดยระบบนี้ คุณควรเรียกใช้สคริปต์จากผู้เผยแพร่ที่เชื่อถือได้เท่านั้น
[V] ไม่เคยดำเนินการ [D] อย่าดำเนินการ [R] ดำเนินการครั้งเดียว [A] ดำเนินการเสมอ [?] ความช่วยเหลือ (ค่าเริ่มต้น "D"):
คุณต้องการเรียกใช้ซอฟต์แวร์จากผู้เผยแพร่ที่ไม่น่าเชื่อถือรายนี้หรือไม่? ไฟล์ เผยแพร่โดย CN= ผู้เผยแพร่รายนี้ไม่น่าเชื่อถือในระบบของคุณ เรียกใช้สคริปต์จากผู้เผยแพร่ที่เชื่อถือได้เท่านั้น
[V] ไม่เคยรัน [D] อย่ารัน [R] รันครั้งเดียว [A] รันเสมอ [?] ความช่วยเหลือ (ค่าเริ่มต้นคือ “D”):

ข้อผิดพลาดและข้อความเหล่านี้เกิดจากการตั้งค่านโยบายการดำเนินการของ Windows พาวเวอร์เชลล์- อย่างไรก็ตาม คุณไม่ควรคิดว่าพารามิเตอร์เหล่านี้เพิ่มความปลอดภัยของระบบปฏิบัติการจริง ๆ เนื่องจากโค้ดจะยังคงใช้งานได้หากคุณคัดลอกลงในคอนโซล PowerShell ดังนั้นจึงสามารถปิดใช้งานการตั้งค่าความปลอดภัยได้ - ป้องกันเฉพาะการกระทำโดยไม่ตั้งใจเท่านั้น ดังนั้นโดยปกติแล้ว ปัญหานี้ได้รับการแก้ไขโดยทีมงาน:

ตั้งค่า ExecutionPolicy LocalMachine ไม่จำกัด

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

รับนโยบายการดำเนินการ -list

ขอบเขต นโยบายการดำเนินการ
—— —————
นโยบายเครื่องจักร ไม่จำกัด
นโยบายผู้ใช้ ไม่ได้กำหนด
กระบวนการ ลงนามระยะไกล
ผู้ใช้ปัจจุบัน ลงนามทั้งหมด
เครื่องท้องถิ่น ถูกจำกัด

นโยบายนี้สามารถรับได้ 6 ค่า:

ถูกจำกัด(นโยบายจะดำเนินการตามค่าเริ่มต้น เช่น หากพื้นที่แอปพลิเคชันทั้งหมดตั้งค่าเป็น Undefinition)
- อนุญาตแต่ละคำสั่ง แต่สคริปต์ไม่สามารถดำเนินการได้
- ป้องกันการทำงานของไฟล์สคริปต์ทั้งหมด รวมถึงไฟล์รูปแบบและการกำหนดค่า (PS1XML) ไฟล์สคริปต์โมดูล (PSM1) และโปรไฟล์ Windows PowerShell (PS1)

ลงนามทั้งหมด

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

ลงนามระยะไกล
— อนุญาตให้ดำเนินการสคริปต์ได้
- ต้องมีสคริปต์และไฟล์การกำหนดค่าที่ดาวน์โหลดจากอินเทอร์เน็ต (รวมถึงอีเมลและโปรแกรมส่งข้อความโต้ตอบแบบทันที) ที่ต้องลงนามแบบดิจิทัลโดยผู้เผยแพร่ที่เชื่อถือได้
— ไม่ต้องใช้ลายเซ็นดิจิทัลสำหรับสคริปต์ที่ดำเนินการและเขียนบนเครื่องคอมพิวเตอร์ (ไม่ได้ดาวน์โหลดจากอินเทอร์เน็ต)
— มีความเสี่ยงในการรันสคริปต์ที่เซ็นชื่อแต่เป็นอันตราย

ไม่จำกัด
- สคริปต์ที่ไม่ได้ลงนามสามารถดำเนินการได้ (มีความเสี่ยงในการรันสคริปต์ที่เป็นอันตราย)
- เตือนผู้ใช้ก่อนที่จะรันสคริปต์และไฟล์การกำหนดค่าที่ดาวน์โหลดจากอินเทอร์เน็ต

บายพาส
— ไม่มีอะไรถูกบล็อก และไม่มีคำเตือนหรือคำขอปรากฏขึ้น
- นโยบายการดำเนินการนี้มีไว้สำหรับการกำหนดค่าที่สคริปต์ Windows PowerShell ถูกฝังอยู่ภายในแอปพลิเคชันขนาดใหญ่ หรือสำหรับการกำหนดค่าที่ Windows PowerShell เป็นแพลตฟอร์มสำหรับโปรแกรมที่มีรูปแบบความปลอดภัยของตัวเอง

ไม่ได้กำหนด
— ขอบเขตปัจจุบันไม่มีการกำหนดนโยบายการดำเนินการ
- หากนโยบายการดำเนินการในขอบเขตทั้งหมดไม่ได้กำหนดไว้ นโยบายการดำเนินการจะถูกจำกัด ซึ่งเป็นนโยบายการดำเนินการเริ่มต้น

มีห้าด้านที่นโยบายและการตั้งค่านี้มีผล:

นโยบายเครื่องจักรและ นโยบายผู้ใช้ถูกกำหนดโดยนโยบาย AD หรือนโยบายท้องถิ่นของคอมพิวเตอร์ที่กำหนด
กระบวนการ— ขอบเขตการใช้งาน: เซสชันปัจจุบัน วิธีใช้บอกว่าค่าของมันถูกเก็บไว้ในตัวแปร $PSExecutionPolicyPreference อย่างไรก็ตาม ไม่สามารถรับ/เปลี่ยนแปลงค่าของนโยบายนี้ผ่านตัวแปรได้ การเปลี่ยนแปลงที่เกิดขึ้นกับพื้นที่แอปพลิเคชันนี้จะไม่ส่งผลกระทบต่อเซสชันอื่น
ผู้ใช้ปัจจุบัน— ขอบเขตของผู้ใช้ปัจจุบัน ค่าของมันถูกเก็บไว้ในคีย์รีจิสทรี HKEY_CURRENT_USER (“HKEY_CURRENT_USER\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy”)
เครื่องท้องถิ่น— ขอบเขตการใช้งานสำหรับผู้ใช้คอมพิวเตอร์ปัจจุบันทุกคน มันถูกเก็บไว้ในคีย์รีจิสทรี HKEY_LOCAL_MACHINE("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics\ExecutionPolicy")

ทีมงาน รับนโยบายการดำเนินการมีพารามิเตอร์ -Scope การใช้พารามิเตอร์นี้ คุณสามารถเลือกขอบเขตที่จะแสดงค่านโยบายได้

รับ ExecutionPolicy - กระบวนการขอบเขต

ผลลัพธ์ของการรัน cmdlet: ลงนามระยะไกล

ในเวลาเดียวกัน Areas of Application มีลำดับความสำคัญ MachinePolicy มีลำดับความสำคัญสูงสุด จากนั้น UserPolicy, Process, CurrentUser และ LocalMachine มีลำดับความสำคัญต่ำที่สุด
ดังนั้นในตัวอย่างนี้:

ขอบเขต นโยบายการดำเนินการ
—— —————
นโยบายเครื่องจักร ไม่จำกัด
นโยบายผู้ใช้ ไม่ได้กำหนด
กระบวนการ ลงนามระยะไกล
ผู้ใช้ปัจจุบัน ลงนามทั้งหมด
เครื่องท้องถิ่น ถูกจำกัด

ในเซสชันปัจจุบัน นโยบายผลลัพธ์จะเป็นแบบไม่จำกัด

ในการค้นหาค่าของนโยบายการดำเนินการสคริปต์สำหรับเซสชันที่กำหนด คุณต้องใช้ Get-ExecutionPolicy cmdlet โดยไม่มีพารามิเตอร์

สรุป: ไม่จำกัด

การเปลี่ยนแปลงนโยบายการดำเนินการสคริปต์ พาวเวอร์เชลล์:

หากต้องการเปลี่ยนค่าของนโยบายการดำเนินการสคริปต์ PowerShell จะมี Set-ExecutionPolicy cmdlet
cmdlet นี้มีพารามิเตอร์ต่อไปนี้:

-นโยบายการดำเนินการ
ระบุมูลค่าของนโยบาย สามารถมีค่าต่อไปนี้: ถูกจำกัด, AllSigned, RemoteSigned, ไม่ถูกจำกัด, บายพาส, ไม่ได้กำหนด จำเป็นต้องมีพารามิเตอร์นี้ หากไม่ได้ระบุ comadlet จะถามค่า ณ รันไทม์

บทสรุป:
ระบุค่าสำหรับพารามิเตอร์ต่อไปนี้:
นโยบายการดำเนินการ:

-ขอบเขต
กำหนดขอบเขตของนโยบายนี้ สามารถมีค่าต่อไปนี้: LocalMachine, Process, CurrentUser หากไม่ได้ระบุพารามิเตอร์ขอบเขต ค่าเริ่มต้นคือ LocalMachine

ตั้งค่า ExecutionPolicy - ExecutionPolicy ไม่ จำกัด - กระบวนการขอบเขต

ตั้งค่า ExecutionPolicy กระบวนการที่ไม่จำกัด

-บังคับ
ด้วยพารามิเตอร์นี้ cmdlet จะไม่ต้องการการยืนยันจากผู้ใช้ ตัวอย่างเช่น:

ตั้งค่า ExecutionPolicy กระบวนการที่ไม่ จำกัด -Force

cmdlet จะไม่แสดงสิ่งใดๆ และจะใช้ค่านโยบาย

-ยืนยัน
ในทางกลับกัน หากการยืนยันเพียงครั้งเดียวไม่เพียงพอสำหรับคุณ คุณสามารถระบุพารามิเตอร์ยืนยันได้ และคุณจะมีคำขอเพิ่มเติมเพื่อยืนยันการกระทำของคุณ:

ตั้งค่า ExecutionPolicy - ExecutionPolicy ไม่ จำกัด - กระบวนการขอบเขต - ยืนยัน

ผลการดำเนินการ:

การยืนยัน
คุณแน่ใจหรือไม่ว่าต้องการดำเนินการนี้
ดำเนินการ "Set-ExecutionPolicy" บนวัตถุเป้าหมาย "ไม่จำกัด"
[Y] ใช่ - Y [A] ใช่สำหรับทุกคน - A [N] ไม่ใช่ - N [L] ไม่ใช่สำหรับทุกคน - L [S] ระงับ - S [?] ช่วยเหลือ (ค่าเริ่มต้นคือ "Y"):

การเปลี่ยนแปลงนโยบายการดำเนินการ
นโยบายการดำเนินการปกป้องคอมพิวเตอร์ของคุณจากสคริปต์ที่ไม่น่าเชื่อถือ การเปลี่ยนแปลงนโยบายการดำเนินการอาจทำให้ความปลอดภัยของระบบลดลง ตามที่อธิบายไว้ในหัวข้อวิธีใช้สำหรับคำสั่ง about_Execution_Policies คุณต้องการเปลี่ยนแปลงนโยบายการดำเนินการหรือไม่?
[Y] ใช่ - Y [N] ไม่ใช่ - N [S] ระงับ - S [?] ช่วยเหลือ (ค่าเริ่มต้นคือ "Y"):- exe -executionpolicy ไม่ จำกัด

รับ ExecutionPolicy -list

ผลการดำเนินการ:

ขอบเขต นโยบายการดำเนินการ
—— —————
นโยบายเครื่องจักร ไม่จำกัด
นโยบายผู้ใช้ ไม่ได้กำหนด
กระบวนการ ลงนามระยะไกล
ผู้ใช้ปัจจุบัน ลงนามทั้งหมด
เครื่องท้องถิ่น ถูกจำกัด

การเปลี่ยนการตั้งค่านโยบายการเรียกใช้สคริปต์โดยใช้นโยบายกลุ่ม

ในนโยบายกลุ่ม พารามิเตอร์ที่ควบคุมการเรียกใช้สคริปต์จะอยู่ที่เส้นทาง:

สำหรับ นโยบายเครื่องจักร:

การกำหนดค่าคอมพิวเตอร์/นโยบาย/เทมเพลตการดูแลระบบ/ส่วนประกอบของ Windows/Windows PowerShell

การกำหนดค่าคอมพิวเตอร์/เทมเพลตการดูแลระบบ/ส่วนประกอบของ Windows/Windows PowerShell

สำหรับ นโยบายผู้ใช้:
การกำหนดค่าผู้ใช้/นโยบาย/เทมเพลตการดูแลระบบ/ส่วนประกอบของ Windows/Windows PowerShell

การกำหนดค่าผู้ใช้/เทมเพลตการดูแลระบบ/ส่วนประกอบของ Windows/Windows PowerShell

พารามิเตอร์ Execution Policy สามารถรับได้ 3 ค่า

การเรียกใช้สคริปต์ PowerShell ตามกำหนดเวลา

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

สมมติว่าฉันมีสคริปต์ start.ps1 ที่ฉันต้องเรียกใช้ทุกวันเป็นเวลา 10 วัน มีสองวิธีในการแก้ปัญหานี้

วิธีที่ 1

ในการเรียกใช้สคริปต์ เราจะใช้สแน็ปอิน Task Scheduler หรือที่เรียกว่า Task Scheduler คุณสามารถค้นหาได้ในส่วนเครื่องมือการดูแลระบบหรือคลิก วิน+อาร์และเข้าสู่คำสั่ง งานschd.msc- เปิดตัวกำหนดตารางเวลาและในส่วนการดำเนินการ เลือกสร้างงาน

บนแท็บ ทั่วไป ระบุชื่อและคำอธิบายของงาน รวมถึง (หากจำเป็น) ผู้ใช้ภายใต้ชื่อที่จะเปิดตัวงาน เพื่อให้งานดำเนินการไม่ว่าผู้ใช้จะเข้าสู่ระบบหรือไม่ ให้เลือกตัวเลือก “เรียกใช้ว่าผู้ใช้เข้าสู่ระบบหรือไม่” หากจำเป็นต้องมีการยกระดับสิทธิ์ในการทำงาน ให้ทำเครื่องหมายที่ตัวเลือก "เรียกใช้ด้วยสิทธิ์สูงสุด"

จากนั้น ไปที่แท็บทริกเกอร์และสร้างทริกเกอร์ใหม่ ซึ่งจะจัดเก็บกำหนดการเปิดตัวสำหรับงานของเรา ในฟิลด์เริ่มต้น เราระบุวันที่และเวลาเริ่มต้น และในฟิลด์หมดอายุ เราระบุวันที่และเวลาที่งานเสร็จสมบูรณ์ เรากำหนดให้ดำเนินการรายวัน (รายวัน) และกำหนดระยะเวลาทำซ้ำ (เกิดขึ้นทุก ๆ ครั้ง) เป็น 1 วัน

บันทึก.หากคุณต้องการรันงานบ่อยกว่าวันละครั้ง คุณต้องเลือก หนึ่งครั้ง และในส่วน การตั้งค่าขั้นสูง ให้เลือก ทำซ้ำงานทุกๆ รายการ และระบุเวลาทำซ้ำ ขั้นต่ำ 5 นาที สูงสุด 1 ชั่วโมง หากยังไม่เพียงพอ คุณสามารถระบุการหน่วงเวลาเพิ่มเติมในงานหน่วงเวลาได้สูงสุดในฟิลด์

และสิ่งสำคัญคือ ไปที่แท็บการดำเนินการ และระบุการดำเนินการสำหรับงานที่กำหนดเวลาไว้ ฉันขอเตือนคุณว่าด้วยเหตุผลด้านความปลอดภัยของ PowerShell สคริปต์สามารถดำเนินการแบบโต้ตอบได้เท่านั้น นั่นคือคุณต้องเปิดเชลล์ PowerShell ก่อนและระบุเส้นทางไปยังสคริปต์ในนั้น ดังนั้นในฟิลด์ "การกระทำ" เราจึงระบุการเปิดตัว powershell.exe และในฟิลด์ "เพิ่มอาร์กิวเมนต์" พารามิเตอร์ -File และเส้นทางไปยังสคริปต์ของเราดังนี้:

ไฟล์ ″C:\Scripts\start.ps1″

คุณยังสามารถระบุในฟิลด์อาร์กิวเมนต์:

คำสั่ง - ดำเนินการคำสั่งที่ระบุและพารามิเตอร์อื่น ๆ พารามิเตอร์นี้ยังสามารถใช้เพื่อรันสคริปต์ได้ เช่น: -คำสั่ง ″& (C:\Scripts\start.ps1)″- นอกจากนี้ยังสามารถใช้เพื่อส่งพารามิเตอร์ไปยังสคริปต์: -คำสั่ง ″& (C:\Scripts\start.ps1 -a 1 -b 3)″;
-ExecutionPolicy — ตั้งค่านโยบายการดำเนินการสคริปต์สำหรับเซสชันปัจจุบัน สามารถใช้ค่า Unrestricted, RemoteSigned, AllSigned และ Restricted นโยบายที่ระบุจะมีผลบังคับใช้ เฉพาะในเซสชันปัจจุบันเท่านั้นและมีความสำคัญเหนือกว่านโยบายที่สร้างขึ้นก่อนหน้านี้
-NonInteractive — ปิดการใช้งานเอาต์พุตของการร้องขอเชิงโต้ตอบไปยังผู้ใช้;
-WindowStyle Hidden - เปิดหน้าต่าง PowerShell ในโหมดซ่อนซึ่งผู้ใช้จะมองไม่เห็น
-NoProfile - ป้องกันการโหลดโปรไฟล์ซึ่งสามารถเร่งการทำงานของสคริปต์ได้บ้าง
-NoExit — เปิดเชลล์ทิ้งไว้หลังจากรันสคริปต์ อาจจำเป็นเมื่อตรวจสอบและแก้ไขสคริปต์

หลังจากกรอกข้อมูลในช่องที่ต้องกรอกแล้ว คลิกตกลง และบันทึกงาน ตอนนี้สคริปต์จะทำงานตามกำหนดเวลาทุกวันตามเวลาที่กำหนดเป็นเวลา 10 วัน

วิธีที่ 2

PowerShell 3.0 นำเสนอฟังก์ชันการทำงานตามกำหนดเวลาใหม่ ซึ่งช่วยให้สามารถสร้างงานที่กำหนดเวลาไว้ได้โดยตรงจากคอนโซล โดยไม่ต้องใช้สแน็ปอินตัวจัดกำหนดการ เราจะใช้สำหรับการเปิดตัวสคริปต์ของเราตามกำหนดเวลา

ขั้นแรก เราสร้างกำหนดการเปิดตัว (ทุกวันเวลาตีห้าครึ่งเป็นเวลา 10 วัน):

$t = New-JobTrigger -รายวัน -เวลา 16:30 น. -DaysInterval 10

จากนั้นเราจะบันทึกข้อมูลรับรองลงในตัวแปร:

$cred = รับข้อมูลประจำตัว contoso\administrator

เป็นทางเลือก เราจะระบุการรันงานด้วยสิทธิ์ระดับสูง:

$o = New-ScheduledJobOption -RunElevated

และลงทะเบียนงานด้วยชื่อ Start:

Register-ScheduledJob - ชื่อเริ่มต้น - FilePath C:\Scripts\start.ps1 -Trigger $t -ข้อมูลรับรอง $cred -ScheduledJobOption $o

เพื่อให้แน่ใจว่างานถูกสร้างขึ้น คุณสามารถเปิดตัวจัดกำหนดการและค้นหางานของเราได้ในส่วน Microsoft\Windows\PowerShell\SheduledJobs

บันทึก.สำหรับงาน PowerShell ที่กำหนดเวลาไว้แต่ละงาน โฟลเดอร์ที่มีชื่อเดียวกันจะถูกสร้างขึ้นในไดเรกทอรี %systemdrive%\Users\%username%\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs โฟลเดอร์นี้ประกอบด้วยงานในไฟล์ XML และโฟลเดอร์ Output ซึ่งในโฟลเดอร์ย่อยตามเวลาดำเนินการ ประวัติการดำเนินการจะถูกจัดเก็บ - ผลลัพธ์การดำเนินการ (ไฟล์ Result.xml) และสถานะของงาน (Status.xml) ไฟล์เหล่านี้มีประโยชน์สำหรับการดีบักและการวินิจฉัยหากงานทำงานไม่ถูกต้อง

นโยบายการดำเนินการ

โดยสรุป ฉันขอเตือนคุณถึงประเด็นสำคัญประการหนึ่ง นั่นคือนโยบายการดำเนินการ คุณสามารถดูค่านโยบายปัจจุบันได้โดยใช้คำสั่ง Get-ExecutionPolicy นโยบายการดำเนินการสามารถมีค่าต่อไปนี้:

จำกัด - การทำงานของสคริปต์ใด ๆ จะถูกบล็อก ค่าเริ่มต้น;
AllSigned - อนุญาตให้เรียกใช้สคริปต์ด้วยลายเซ็นดิจิทัล
RemoteSigned - สคริปต์ที่จัดเตรียมบนคอมพิวเตอร์เฉพาะที่สามารถทำงานได้โดยไม่มีข้อจำกัด สคริปต์ที่ดาวน์โหลดจากอินเทอร์เน็ต - ด้วยลายเซ็นดิจิทัลเท่านั้น
ไม่จำกัด - อนุญาตให้เรียกใช้สคริปต์ใดก็ได้ เมื่อเรียกใช้สคริปต์ที่ไม่ได้ลงนามซึ่งดาวน์โหลดจากอินเทอร์เน็ต โปรแกรมอาจต้องมีการยืนยัน
บายพาส - ไม่มีอะไรถูกบล็อก ไม่มีคำเตือนหรือคำขอปรากฏขึ้น

โดยปกติแล้ว เพื่อการเรียกใช้สคริปต์โดยปราศจากปัญหา ตั้งค่าเป็น RemoteSigned ก็เพียงพอแล้ว คุณสามารถเปลี่ยนค่าปัจจุบันได้โดยใช้คำสั่ง Set-ExecutionPolicy เช่น:

ตั้งค่า ExecutionPolicy RemoteSigned -force

บันทึก.หากนโยบายการดำเนินการที่ระบุในคำสั่งขัดแย้งกับนโยบายกลุ่ม พารามิเตอร์จะถูกเขียนลงในรีจิสทรี แต่จะไม่มีผล

สวัสดีทุกคน! วันนี้มีบันทึกสั้น ๆ ในหัวข้อ วิธีเปิด PowerShell ในฐานะผู้ดูแลระบบ- ฉันขอเตือนคุณว่า PowerShell เป็นภาษาการเขียนโปรแกรมและการดูแลระบบที่ทรงพลังจาก Microsoft ทุกปีจะมี cmdlets และฟังก์ชันการทำงานเพิ่มมากขึ้น โดยพื้นฐานแล้วมันเป็นการแทนที่ Windows Command Prompt ด้านล่างนี้เราจะพิจารณาวิธีการที่ช่วยให้คุณสามารถเปิดและกำหนดค่าได้
.

วิธีการเปิดสแน็ปอิน PowerShell

Powershell กำลังพัฒนาเป็นอย่างดีและด้วยการเปิดตัว Windows 10 ก็ได้รับเวอร์ชัน 5 แล้ว แต่หัวข้อของเราแตกต่างออกไป ดังนั้นวิธีการเปิด PowerShell? ทุกอย่างเป็นเรื่องง่ายถ้าใน Windows XP ก็ไม่มีอะไรเลย เนื่องจากมีการจัดส่งแยกต่างหาก ในรุ่นต่อๆ ไปทั้งหมดจึงมาเป็นส่วนประกอบในตัว วิธีที่เป็นสากลที่สุดในการเปิด PowerShell คือการคลิก

Win + R และเข้าสู่ PowerShell

เมื่อกด Enter คอนโซล PowerShell จะเปิดตัว ปัญหาเดียวคือจะไม่เปิดในฐานะผู้ดูแลระบบ และด้วยเหตุนี้ คำสั่งต่างๆ จะไม่ถูกดำเนินการ ด้านล่างนี้เราจะดูวิธีดำเนินการในนามของผู้ดูแลระบบ

วิธีเรียกใช้ windows PowerShell ในฐานะผู้ดูแลระบบใน Windows 8.1 และ Windows 7

คุณสามารถเปิด Windows Powershell ได้ผ่านทาง Start ใน Windows 8.1, Windows 2012 R2 ให้ไปที่เครื่องมือระบบ - Windows แล้วคลิกขวาแล้วเลือก Run as administrator

ใน Windows 7 และ Windows 2008 R2 ดูเหมือนว่า Start > Accessories > Windows PowerShell

คุณยังสามารถสร้างทางลัดในรายการงานและคลิกขวาที่มันแล้วเลือกรายการที่เหมาะสม

คงจะสะดวกกว่าถ้า PowerShell เปิดในฐานะผู้ดูแลระบบเสมอมาลองใช้ดู ซึ่งทำในลักษณะเดียวกันใน Windows ทุกรุ่น การเปิดแผงควบคุม

คลิกขวาที่มันแล้วเลือกคุณสมบัติ คุณสามารถดูเส้นทางไปยังไฟล์ที่อยู่ในระบบได้ทันที

คลิกปุ่ม "ขั้นสูง" คุณจะเห็นคุณสมบัติเพิ่มเติม โดยที่คุณต้องทำเครื่องหมายที่ช่อง Run as administrator

มันง่ายมาก ฉันแน่ใจว่าตอนนี้คุณจะไม่มีคำถามเกี่ยวกับวิธีเปิด Windows Powershell สิ่งที่มีประโยชน์อีกอย่างคือการเปลี่ยนแบบอักษรในหน้าต่าง PowerShell

วิธีเปิด PowerShell จากเมนูบริบทของปุ่มเริ่มใน Windows 10

Microsoft ให้ความสำคัญกับภาษาที่แข็งแกร่ง (PowerShell) จากบรรทัดคำสั่งมากขึ้นเรื่อย ๆ และนี่ก็สมเหตุสมผลเนื่องจากความสามารถในการจัดการระบบปฏิบัติการของตระกูล Windows นั้นแทบจะไร้ขีดจำกัดหากไม่มากไปกว่าอินเทอร์เฟซแบบกราฟิก เริ่มต้นด้วย Windows 10 เวอร์ชัน 1709 ในเมนูบริบท PowerShell แทนที่ cmd ปกติ คลิกขวาที่ปุ่มเริ่มต้นใน Windows 10 และจากเมนูบริบทเลือกรายการที่เหมาะสม:

  1. วินโดว์ PowerShell
  2. Windows PowerShell (ผู้ดูแลระบบ) เป็นโหมดที่มีสิทธิ์สูงสุดใน Windows 10

เปิดใช้ Windows PowerShell โดยใช้การค้นหาใน Windows 10

ใน Windows 10 และเวอร์ชันเก่ากว่า คุณสามารถค้นหา PowerShell เชลล์ได้โดยใช้การค้นหาปกติ มีส่วนพิเศษสำหรับสิ่งนี้ คลิกถัดจากปุ่มเริ่ม ไอคอนรูปแว่นขยาย ในแบบฟอร์มการค้นหาที่เปิดขึ้น ให้ป้อนคำว่า PowerShell คุณจะถูกค้นหาตัวเลือกทั้งหมดซึ่งคุณจะพบเชลล์ หากคุณคลิกขวาคุณสามารถเปิดได้ในฐานะผู้ดูแลระบบ

การเปิดตัว Windows PowerShell จากเมนู Start ใน Windows 10

หากต้องการเปิด PowerShell จากเมนู Start ให้เปิดและค้นหารายการ Windows PowerShell ซึ่งจะอยู่ในรูปแบบของโฟลเดอร์เปิดและเรียกใช้เวอร์ชันที่เหมาะสม

หากคุณคลิกขวา คุณสามารถเรียกใช้ Vershel Shell ในฐานะผู้ดูแลระบบที่มีสิทธิ์ผู้ดูแลระบบได้

วิธีการเปิดใช้เชลล์เพิ่มเติมและทั่วไป

นอกจากนี้ยังมีวิธีการเฉพาะในการเปิดเชลล์ด้วยภาษาอันทรงพลังจาก Microsoft สิ่งที่งุ่มง่ามที่สุดคือการค้นหาไฟล์ปฏิบัติการและเรียกใช้โดยตรงจากตำแหน่งบนระบบ ไปที่ Windows 10 ของคุณตามเส้นทางต่อไปนี้:

C:\Users\ชื่อผู้ใช้\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

ด้วยเหตุนี้คุณจะเห็นโฟลเดอร์พร้อมทางลัดที่มีอยู่ในเมนู Start คุณสามารถเปิดใช้งานได้

คุณยังสามารถเรียกใช้ไฟล์ปฏิบัติการต้นฉบับซึ่งตั้งอยู่ตามเส้นทาง:

C:\Windows\System32\WindowsPowerShell\v1.0

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

คุณยังสามารถเปิด Windows PowerShell ได้จากหน้าต่างบรรทัดคำสั่ง ในการดำเนินการนี้ เพียงป้อนคำวิเศษลงไปแล้วกด Enter

ฉันขอเตือนคุณถึงวิธีการเปิดตัวงานใหม่จากสแน็ปอิน "ตัวจัดการงาน" เปิด "ตัวจัดการงาน" เลือกรายการเมนู "ไฟล์ - เรียกใช้งานใหม่"

ในหน้าต่างที่ปรากฏขึ้น ให้ป้อน PowerShell

วิธีสุดท้ายที่ฉันรู้จักคือการเปิด PowerShell ผ่าน Windows 10 Explorer โดยเปิด Explorer เลือกรายการเมนู "ไฟล์ - เรียกใช้ Windows PowerShell" จะมีทั้งสองโหมด

PowerShell ISE คืออะไร

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

Powershell การเปลี่ยนแบบอักษรนั้นง่ายมาก ไปที่แท็บแบบอักษรในคุณสมบัติ ซึ่งคุณสามารถกำหนดขนาดได้ตั้งแต่ 5 ถึง 72

คุณยังสามารถเข้าถึงคุณสมบัติได้จากหน้าต่างยูทิลิตี้ โดยคลิกที่ไอคอนที่มุมซ้ายบนแล้วเลือกคุณสมบัติ

ที่นี่การตั้งค่าแบบอักษรจะแตกต่างกันเล็กน้อย และเมื่อมีการเปลี่ยนแปลง ขนาดของคอนโซลก็จะเปลี่ยนไปด้วย

บนแท็บสี คุณสามารถตั้งค่าสีแบบอักษรใน Powershell และหน้าต่างได้ โดยทำให้เป็นสีดำ เช่น เหมือนกับบรรทัดคำสั่ง

ฉันขอแนะนำด้วยว่าหากคุณเป็นผู้ใช้คอนโซลที่ใช้งานอยู่ ให้ตั้งค่าขนาดบัฟเฟอร์ไม่ใช่ 50 คำสั่ง แต่อย่างน้อยเป็น 100

ขอบคุณสำหรับความสนใจของคุณ นี่คือวิธีการเปิดคอนโซล Power Shell ใน Windows วัสดุของไซต์

PowerShell เป็นบรรทัดคำสั่งทางเลือกที่มีฟังก์ชันการทำงานมากมาย เจ้าของคอมพิวเตอร์จำนวนมากที่เชี่ยวชาญกระบวนการของระบบมีความสนใจในความเป็นไปได้ในการใช้งานบน Windows 10 และซอฟต์แวร์เวอร์ชันก่อนหน้าเพื่อเปลี่ยนกระบวนการเฉพาะและการตั้งค่าพีซีด้วยตนเอง

ไม่มีอะไรซับซ้อนเกี่ยวกับการใช้ PowerShell เพียงทำตามคำแนะนำทั้งหมดในบทความนี้แล้วคุณจะประสบความสำเร็จ

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

วิธีการเปิด PowerShell?

ซึ่งสามารถทำได้หลายวิธีดังต่อไปนี้:

  • - คุณจะพบแอปพลิเคชันในรายการส่วนประกอบทั่วไปภายใต้ตัวอักษร W
  • ใช้การค้นหาในทาสก์บาร์ - เปิดแล้วป้อนคำว่า PowerShell เพื่อค้นหา
  • ใช้เมนู "Run" เรียกใช้ผ่านชุดค่าผสม Win + R แล้วเขียนชื่อของยูทิลิตี้หลังจากนั้นจะพบได้ในระบบ
  • ใน Commander ให้ตั้งค่าการกระทำของ PowerShell แต่คุณควรรู้ว่าคุณจะทำงานกับแอปพลิเคชันผ่านบรรทัดที่รันอยู่แล้ว ไม่ใช่ในหน้าต่างแยกต่างหาก
  • ในการตั้งค่า Windows ให้เลือกคุณสมบัติของแถบงานและเมนูเริ่ม ในแท็บ "การนำทาง" ให้ทำเครื่องหมายในช่องถัดจาก "แทนที่บรรทัดคำสั่งด้วย PowerShell..." ตอนนี้คุณสามารถเปิดใช้งานยูทิลิตี้ได้โดยใช้ชุดค่าผสม Win + X

จะเขียนและรันสคริปต์ได้อย่างไร?

จะสร้างสคริปต์ PowerShell และรันได้อย่างไร ซึ่งสามารถทำได้ง่ายๆ ในแผ่นจดบันทึก - ใช้มันระบุคำสั่งที่คุณต้องการในเอกสารใหม่ จากนั้นบันทึก แต่เปลี่ยนรูปแบบเป็น .ps1 - นี่คือส่วนขยายที่ไฟล์ของยูทิลิตี้ระบบนี้มี

คุณสามารถเขียนสคริปต์ในแอปพลิเคชันได้ดังนี้:

  • เปิดตัวมัน
  • คลิกที่รายการ "สร้าง"
  • หรือคลิกที่ "ไฟล์" และเลือก "สร้าง" จากรายการที่ปรากฏขึ้น
  • เขียนคำสั่งทั้งหมดที่ต้องดำเนินการ บันทึกไฟล์

สคริปต์ยังคงสามารถเขียนและแก้ไขใน FAR Manager ได้ แต่ไม่สามารถใช้โดยตรงในแอปพลิเคชันดังกล่าวได้ เนื่องจากสคริปต์จะแสดงไฟล์ประเภทนี้ผ่านบรรทัด cmd มาตรฐาน อย่างไรก็ตาม การดำเนินการอื่นๆ จะดำเนินการในลักษณะเดียวกับในยูทิลิตี้ "เนทิฟ"

คุณสามารถรันสคริปต์ด้วยวิธีนี้:

  1. เข้าสู่ระบบ PowerShell ในฐานะผู้ดูแลระบบ
  2. ใช้คำสั่ง cd เพื่อระบุตำแหน่งของไฟล์ที่ต้องการ ตัวอย่างเช่น e: cd\ cd work .\ filename Ps1 หรือ e: \work\filename.ps1
  3. ในกรณีนี้ e: คือชื่อของฮาร์ดไดรฟ์ที่มีไฟล์อยู่
  4. กด Enter

โปรแกรมจะแสดงข้อความพร้อมข้อความ "ไฟล์ ___ .Ps1 ไม่สามารถโหลดได้เนื่องจากห้ามใช้สคริปต์ในระบบนี้ ... " เมื่อคุณรันคำสั่งเป็นครั้งแรก ความจริงก็คือว่า Windows ได้รับการป้องกันการรบกวนโดยนักพัฒนาดังนั้นจึงไม่มีผู้ใช้รายใดโดยค่าเริ่มต้นที่สามารถเข้าถึงเพื่อดำเนินการดังกล่าวได้ แต่ข้อจำกัดนี้สามารถหลีกเลี่ยงได้ง่ายมาก

ยังไง? ข้อความที่ปรากฏพร้อมกับข้อผิดพลาดจะแนะนำให้คุณป้อนคำสั่ง get-help about_signing เพื่อรับข้อมูลเพิ่มเติม คุณสามารถทำตามคำแนะนำเหล่านี้ หรือใช้ชุดค่าผสมที่ลงนามระยะไกล Set-ExecutionPolicy - หลังจากป้อนแล้ว จะต้องมีการยืนยันและข้อจำกัดจะถูกลบออก

คำถามอื่นๆ เกี่ยวกับการใช้งาน

หลายคนมีคำถาม: จะหาเวอร์ชันของ PowerShell ได้อย่างไร? เมื่อต้องการทำเช่นนี้ ให้ทำดังต่อไปนี้:

  1. ป้อน $PSVersionTable
  2. หากสิ่งนี้ไม่นำไปสู่สิ่งใด ๆ แสดงว่าคุณมีเวอร์ชัน 1.0 - มีคำสั่ง $host.version
  3. มิฉะนั้นข้อมูลโดยละเอียดจะปรากฏขึ้นเกี่ยวกับเวอร์ชันของแอปพลิเคชันที่ติดตั้งบนพีซี

คำถามอื่นที่ควรตอบคือจะลบ PowerShell ได้อย่างไร ซึ่งจะต้องมีการดำเนินการดังต่อไปนี้:

  • ไปที่แผงควบคุมไปที่เมนูเพิ่ม/เอาโปรแกรมออก
  • ค้นหาสาขา Microsoft Windows
  • ถอนการติดตั้งการอัปเดตสำหรับคอมโพเนนต์ WindowsPowerShell(TM) และทำตามคำแนะนำของระบบ

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

เวลาผ่านไปกว่าหนึ่งปีนับตั้งแต่การเปิดตัว Windows 7 และ Server 2008

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

ผู้ใช้มือใหม่ส่วนใหญ่ไม่รู้ด้วยซ้ำว่า PowerShell (PS) คืออะไร

แต่สคริปต์สำหรับ PowerShell ช่วยให้คุณสามารถดำเนินการและสคริปต์ที่ทำงานในระบบปฏิบัติการได้เกือบ 100% โดยอัตโนมัติผ่านทางบรรทัดคำสั่งและอินเทอร์เฟซแบบกราฟิก

มาทำความคุ้นเคยกับความสามารถหลักของโปรแกรมนี้โดยให้ความสำคัญกับฟังก์ชั่นการสร้างและเรียกใช้สคริปต์ (เฟิร์มแวร์) มากขึ้น

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

Windows PowerShell คืออะไร

พาวเวอร์เชลล์– ล่ามที่ใช้ .NET Framework พร้อมด้วยภาษาสคริปต์ของตัวเอง

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

เช่นเดียวกับใน MS-DOS และ UNIX เวอร์ชันเก่า

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

เมื่อเทียบกับล่ามอื่นๆ ป.ล. แตกต่าง:

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

PowerShell เวอร์ชัน 2มีความสามารถดังต่อไปนี้ มาดูรายละเอียดเพิ่มเติมบางส่วน:

  • ความสามารถในการแสดงคำสั่งเป็น cmdlets– คำสั่งเหล่านี้จะถูกเรียกใช้ภายในล่าม มิฉะนั้น คำสั่งจะถูกดำเนินการในกระบวนการที่แยกจากกัน
  • การใช้สายพานลำเลียง– ได้รับการออกแบบมาเพื่อถ่ายโอนข้อมูลจากคำสั่งหนึ่งไปยังอีกคำสั่งหนึ่งโดยยังคงรักษาโครงสร้างและประเภทไว้
  • การถ่ายโอนข้อมูลแบบหลายสตรีมแบบรวมผ่านเครือข่ายพร้อมการจัดลำดับความสำคัญและการเริ่มการเชื่อมต่ออีกครั้ง
  • รองรับพารามิเตอร์ตำแหน่งและชื่อ
  • งานเบื้องหลัง– การเรียกคำสั่งแบบอะซิงโครนัสและการเรียกใช้สคริปต์บนเครื่องระยะไกล
  • การตั้งค่าเซสชันที่จำกัดด้วยไคลเอนต์ระยะไกลและเรียกใช้สคริปต์กับพวกเขา
  • โมดูล– วิธีการจัดระเบียบสคริปต์เมื่อสคริปต์สามารถพึ่งพาตนเองได้และดำเนินการในคอนเทนเนอร์ของตนเองโดยไม่กระทบต่อสภาพแวดล้อมของโมดูล
  • ความพร้อมใช้งานของตัวจัดการข้อผิดพลาด
  • สภาพแวดล้อมแบบกราฟิกสำหรับภาษา: ไวยากรณ์, ดีบักเกอร์, การเน้น, การเติมคำสั่งอัตโนมัติด้วยการสนับสนุน Unicode และบุ๊กมาร์ก
  • การเพิ่มเบรกพอยต์ให้กับบรรทัดคำสั่ง การดำเนินการ และตัวแปรสำหรับการดีบักสคริปต์
  • บล็อกและแสดงความคิดเห็นแบบอินไลน์
  • รองรับการสร้างนามแฝงสำหรับ cmdlets บางตัวซึ่งจะถูกแปลงเป็นคำสั่งธรรมดาในขณะที่ดำเนินการ
  • การสร้างเซสชันที่จำกัดโดยที่คุณสามารถรันรายการคำสั่งที่กำหนดไว้อย่างเคร่งครัดและอีกมากมาย

ซอร์สโค้ด PowerShell เปิดให้ทุกคนใช้งานได้: สมาชิกชุมชนสามารถสร้างส่วนขยายของตนเองได้อย่างอิสระเพื่อเพิ่มฟังก์ชันการทำงานของล่ามบรรทัดคำสั่ง

คุณสามารถเริ่มต้นการเรียนรู้ภาษาสคริปต์แบบรวมได้โดยไม่ต้องมีทักษะการเขียนโปรแกรมใดๆ

ไม่น่าเป็นไปได้ที่คุณจะสามารถสร้างสถานการณ์ที่ซับซ้อนได้ แต่เกือบทุกคนจะสามารถดำเนินการตามลำดับของการกระทำดั้งเดิมได้

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

Cmdlet

Cmdlet– คำสั่ง PS แปลก ๆ ซึ่งซ่อนฟังก์ชันต่างๆ ไว้เบื้องหลัง คำสั่งที่สร้างไว้ในล่ามจะถูกนำมาใช้ตามหลักการคำกริยา-คำนาม เช่น Get-Process (การรับรายการกระบวนการ) โซลูชันนี้ช่วยให้คุณเข้าใจสาระสำคัญของคำสั่งได้จากชื่อ (เป็นภาษาอังกฤษ)

cmdlet บางตัวรองรับการรับ/ถ่ายโอนข้อมูลและอาร์เรย์ของข้อมูลในขณะที่ยังคงรักษาโครงสร้างและประเภทไว้ ซึ่งทำงานบนหลักการของสายพานลำเลียง (ซึ่งจะกล่าวถึงในหัวข้อถัดไป) โดยไม่คำนึงว่า cmdlet ของการทำงานและประมวลผลวัตถุตามลำดับ

หากต้องการใช้ cmdlets คุณสามารถใช้ .NET API ใดๆ ที่รองรับซึ่งสร้างด้วยภาษา .NET ใดก็ได้

ดังนั้นผู้ใช้จึงสามารถเข้าถึงฟังก์ชันเฉพาะของโปรแกรมได้

Cmdlet สามารถเข้าถึงข้อมูลที่ต้องการได้โดยตรงหรือผ่านเส้นทางเฉพาะ (อักษรระบุไดรฟ์และเส้นทางไดเรกทอรี)

เมื่อใช้ cmdlets คุณสามารถทำงานกับระบบไฟล์และออบเจ็กต์ที่เก็บใบรับรอง แอปพลิเคชันและบริการที่ติดตั้ง

สายพานลำเลียง

เมื่อสร้างสคริปต์ที่ไม่ธรรมดามากนักหรือดำเนินการใด ๆ กับข้อมูลที่ได้รับจากสคริปต์ บางครั้งคุณต้องดำเนินการบางอย่างด้วย

มีสายพานลำเลียงสำหรับสิ่งนี้ เช่นเดียวกับใน UNIX มันจะรวมคำสั่งโดยส่งเอาต์พุตของ cmdlet หนึ่งไปยังอินพุตของอีกอันหนึ่งโดยไม่มีการเปลี่ยนแปลง โดยคงประเภทไว้

ในกรณีนี้ ไม่จำเป็นต้องมีการแยกวิเคราะห์ข้อมูลคอนเทนเนอร์หรืออักขระต่ออักขระ

ข้อมูลที่ส่งอาจรวมถึงฟังก์ชันด้วยหลังจากเสร็จสิ้นการทำงานของคำสั่งรวมแล้ว ฟังก์ชันการแปลงข้อมูลเป็นรูปแบบข้อความ (การแปลงข้อมูลเป็นสตริง) เรียกว่าการใช้การจัดรูปแบบข้อความ

สคริปต์

แม้ว่าเชลล์จะอนุญาตให้คุณดำเนินการหลายอย่างโดยอัตโนมัติ แต่คุณต้องป้อนคำสั่งด้วยตนเองซึ่งไม่สะดวกนัก

โดยเฉพาะอย่างยิ่งเมื่อต้องดำเนินการเดิมซ้ำแล้วซ้ำเล่า

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

ในการดำเนินการต่อเนื่องที่ซ้ำซากจำเจ PS จะใช้สคริปต์ - ไฟล์ข้อความที่มีลำดับคำสั่งภายในซึ่งล่ามสามารถเข้าใจได้

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

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

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

หากต้องการทำงานบน Windows PS คุณต้องผ่านการควบคุมการเปิดตัว

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

ก่อนที่จะใช้สคริปต์

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

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

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

การเรียกใช้มาโครโดยเจตนาเกิดขึ้นหลังจากเปลี่ยนระดับความปลอดภัย หากผู้ใช้ดำเนินการต่อไป ตระหนักว่ากำลังทำอะไรอยู่ และทราบแน่ชัดว่ามีอะไรอยู่ในไฟล์ *.ps1

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

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

เชลล์มีการรักษาความปลอดภัยสามระดับ:

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

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

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

  • จำกัด –ติดตั้งตามค่าเริ่มต้นเฉพาะสคริปต์ที่ลงนามโดย Microsoft เท่านั้นที่จะดำเนินการเพื่อให้คุณได้รับข้อมูลเกี่ยวกับฮาร์ดแวร์และซอฟต์แวร์เชลล์ของคอมพิวเตอร์
  • มีการลบไฟล์ลายเซ็น– คุณสามารถเรียกใช้แมโครทั้งหมดได้ แต่ไฟล์ที่ส่งทางไปรษณีย์จะต้องลงนาม
  • ลงนามแบบดิจิทัลโดยแหล่งที่เชื่อถือได้– สคริปต์ที่ลงนามทั้งหมดจะถูกดำเนินการ
  • ไม่จำกัด– เปิดมาโครใด ๆ
  • บายพาส– มีไว้สำหรับโปรแกรมเมอร์ที่สร้างระบบความปลอดภัยของตนเอง แทนที่จะใช้ระบบที่นำเสนอในเชลล์

คุณสามารถตรวจสอบสถานะปัจจุบันของนโยบายการดำเนินการได้โดยใช้คำสั่ง “Get-ExecutionPolicy”ไม่ว่านโยบายความปลอดภัยจะเป็นเช่นไร ผู้ใช้จะไม่สามารถเรียกใช้สคริปต์ที่มีคำสั่งที่เขาไม่มีสิทธิ์เพียงพอที่จะดำเนินการได้

เปิดตัว PowerShell

ถึงเวลาเปลี่ยนจากทฤษฎีไปสู่การปฏิบัติแล้ว ดังนั้นในการรันสคริปต์คุณต้องได้รับลายเซ็นดิจิทัลหรือ (ตัวเลือกที่สองง่ายกว่า)

มีหลายวิธีในการเปิดหน้าต่าง PowerShell

นำเสนอเป็น 2 รูปแบบ คือ

  • คอนโซลคลาสสิก

  • พาวเวอร์เชลล์ ISE - เพิ่มการรองรับแท็บ ไวยากรณ์ วิธีใช้ตามบริบท เมนูตามบริบทและหลัก ซึ่งอำนวยความสะดวกอย่างมากในการทำงานกับล่าม

เริ่ม

วิธีที่ง่ายที่สุดในการโทรหา PS คือผ่านทาง Start

  1. เปิดเมนู(ใน Windows 7 คลิก “โปรแกรมทั้งหมด”)
  2. ไปที่ไดเรกทอรี Windows PowerShellและคลิกที่ไอคอนที่ต้องการ

ข้าว. 4 – เปิด PS ผ่านทาง Start

คุณสามารถโทรหา PS ผ่านทาง ระบบค้นหาแบบบูรณาการ

ล่ามคำสั่ง

สำหรับผู้ที่ชอบวิธีการเปิดใช้ที่ไม่ได้มาตรฐานและรวดเร็ว ให้ใช้หน้าต่าง Run จะเปิดขึ้นด้วยปุ่มชื่อเดียวกันใน Start และคีย์ผสม Win + R

ในกล่องโต้ตอบที่เราเขียน "พาวเวอร์เชลล์"และกด "Enter"

วิน+เอ็กซ์

ใน Windows 10 สามารถเรียก PS ได้จากเมนู WinX ความจริงก็คือโดยค่าเริ่มต้นโดยการคลิกที่คำสั่ง "บรรทัดคำสั่ง"เปิด CMD สามารถแทนที่ด้วย PowerShell ได้

เปิด "คุณสมบัติ" ของแถบงานในแท็บ "การนำทาง" ใส่เครื่องหมายถูกถัดจากตัวเลือกเดียวแล้วบันทึกการตั้งค่า

คุณสามารถเรียก PowerShell ผ่านทางบรรทัดคำสั่งโดยเขียน "powershell" ไว้หรือโดยการเรียกใช้ไฟล์ปฏิบัติการตามเส้นทาง: %WINDIR%\ System32\ WindowsPowerShell\v1.0 สำหรับระบบ 32 บิตและที่ %WINDIR%\ syswow64\ WindowsPowerShell\v1.0 สำหรับ Windows 64 บิตของทุกรุ่น

ข้าว. 8 – เรียกใช้ PS จากไดเร็กทอรีที่เก็บไฟล์ปฏิบัติการไว้

การตั้งค่านโยบายความปลอดภัย

เหลือไม่มากแล้ว– อนุญาตให้ PowerShell รันสคริปต์ ป้อนคำสั่ง “Set-ExecutionPolicy RemoteSigned” แล้วกด “Y”

นั่นคือทั้งหมดที่ ตอนนี้คุณสามารถเรียกใช้ cmdlets และสคริปต์ใดก็ได้ ตัวอย่างเช่น ลองแสดงรายการกระบวนการที่ใช้งานอยู่โดยดำเนินการ "Get-Process"

กำลังเรียกใช้สคริปต์

คุณสามารถสร้างสคริปต์ในรูปแบบใดก็ได้ (ควรใช้ Win หรือสิ่งที่คล้ายกัน โดยมีการสนับสนุนไวยากรณ์หรือการตรวจสอบความถูกต้อง) หรือในโปรแกรม PowerShell ISE

ส่วนหลังให้การเข้าถึง cmdlets ที่สะดวก ความสามารถในการเรียกใช้ ดีบัก และบันทึกสคริปต์

สมมติว่าคุณเขียนสคริปต์แรกของคุณ (เพื่อรับรายการกระบวนการที่กำลังทำงานอยู่) บันทึกผ่านเมนู "ไฟล์" และคุณต้องเรียกใช้ ทำได้สามวิธี:

1 เราเขียนเส้นทางแบบเต็มไปยังสคริปต์ใน PowerShell (หรือ ISE);

ข้าว. 13 – การเรียกใช้สคริปต์จากหน้าต่าง PowerShell ISE

สำคัญเพื่อไม่ให้มีช่องว่างในเส้นทางไปยังไฟล์!

พาวเวอร์เชลล์– เครื่องมืออันทรงพลังเพื่อลดความซับซ้อนของการดำเนินงานประจำใน Server 2008 และใหม่กว่า ข้อได้เปรียบที่สำคัญของ PowerShell คือสคริปต์และความพร้อมใช้งาน เวอร์ชันของโปรแกรมพร้อมอินเทอร์เฟซแบบกราฟิก PS ISE- คำสั่งในนั้นจะแสดงในรูปแบบของ cmdlets ซึ่งจะทำให้สามารถทำความคุ้นเคยกับเชลล์และเข้าใจความหมายของแต่ละคำสั่งได้ นโยบายความปลอดภัยจะไม่อนุญาตให้ผู้เริ่มต้นทำอันตรายคอมพิวเตอร์ของเขาสคริปต์ที่ได้รับจากแหล่งที่ไม่รู้จักและโหมดการแก้ไขข้อบกพร่อง การสร้าง cmdlets ฟังก์ชันและกลไกการจัดการข้อผิดพลาดของคุณเองเปิดโอกาสให้โปรแกรมเมอร์และผู้ดูแลระบบมีความเป็นไปได้ไม่ จำกัด