ความแตกต่างที่ชัดเจนที่ฉันทราบคือความสามารถในการเชื่อมต่อกับผลิตภัณฑ์ MS บางตัวเช่น Exchange แต่สำหรับคนที่ไม่ต้องบริหารผลิตภัณฑ์เหล่านี้ข้อดีของ Powershell คืออะไร? อะไรคือเหตุผลในการเรียนรู้ Powershell เลย (สมมติว่าฉันคล่องแคล่วกับทุบตีและ cygwin)
ความแตกต่างที่ชัดเจนที่ฉันทราบคือความสามารถในการเชื่อมต่อกับผลิตภัณฑ์ MS บางตัวเช่น Exchange แต่สำหรับคนที่ไม่ต้องบริหารผลิตภัณฑ์เหล่านี้ข้อดีของ Powershell คืออะไร? อะไรคือเหตุผลในการเรียนรู้ Powershell เลย (สมมติว่าฉันคล่องแคล่วกับทุบตีและ cygwin)
คำตอบ:
มีคำตอบที่ยอดเยี่ยมจาก Jeffrey Snover (นักออกแบบ PowerShell) ใน StackOverflow:
ข้อได้เปรียบที่ชัดเจนที่สุด: ตราบใดที่ไม่มีข้อความ (หรือคำสั่งดั้งเดิม) เกี่ยวข้องกับไปป์ไลน์คุณไม่ได้ย้ายข้อความผ่านไปป์ แต่อินสแตนซ์ของวัตถุกรอบงาน. NET พร้อมคุณสมบัติและวิธีการทั้งหมด
วิธีนี้ช่วยให้การจัดการไปป์ไลน์มีความชัดเจนและไม่ชัดเจนซึ่งยังไม่ได้รับผลกระทบอย่างสมบูรณ์จากการตั้งค่าภาษาและสถานที่ (ตัวอย่างเช่นคิดว่าวันที่หรือรูปแบบตัวเลข
นี่ก็หมายความว่าคุณสามารถเข้าถึงความสามารถของกรอบงาน. NET ในสภาพแวดล้อมการเขียนสคริปต์ได้อย่างมาก
ข้อได้เปรียบที่สำคัญของ PowerShell คือการรวม. Net และภาระหน้าที่ - จากเซิร์ฟเวอร์ Windows 2008 เป็นต้นไปจะถูกรวมเป็นค่าเริ่มต้นและจะถูกโหลดในเซอร์วิสแพ็คในปี 2003 และ 2003 R2
เพื่อความเป็นธรรมมีตัวเลือกอื่น ๆ สำหรับการเขียนสคริปต์เช่น Perl และ Python Python ยังให้คุณเลือกใช้ IronPython หากคุณต้องการการรวม. net แบบเนทีฟ อันที่จริง IronPython จะติดตั้งได้อย่างน่าพอใจโดยเพียงแค่วางลงในไดเรกทอรี คุณสามารถรวมกลุ่มในแอปพลิเคชันโดยไม่จำเป็นต้องมีขั้นตอนการติดตั้งแยกต่างหาก
จุดแข็งที่สำคัญของ Powershell คือดาบสองคม ในขณะที่การสตรีมวัตถุ. net นั้นค่อนข้างมีประโยชน์และมีข้อได้เปรียบ แต่ก็มีข้อสันนิษฐานเพิ่มเติมเกี่ยวกับความสามารถของส่วนประกอบในการเล่นกับเฟรมเวิร์ก สำหรับการทำงานจริง ๆ คุณจำเป็นต้องล้อมสิ่งต่าง ๆ ด้วย cmdlets ในขณะที่เอาท์พุทต้นฉบับเดิมค่อนข้างต่ำกว่าและต้องแยกวิเคราะห์มันวางภาระน้อยลงในองค์ประกอบที่จะเล่นอย่างดีกับกรอบ
เมื่อเวลาผ่านไปฉันคาดว่าจะเห็นระบบนิเวศของ Windows มากขึ้น (ทั้ง MS และส่วนประกอบบุคคลที่สาม) มาพร้อมกับชุดเครื่องมือ cmdlet เพื่อให้ทำงานกับ Powershell เมื่อเกิดกรณีเช่นนี้ขึ้นสำหรับ Powershell จะแข็งแกร่งขึ้นมาก
ในอดีตหนึ่งในจุดอ่อนดั้งเดิมที่สำคัญของ Windows จากมุมมองของผู้ดูแลคือการสนับสนุนการเขียนสคริปต์ที่ไม่ดี MS จำได้ว่าเป็นเวลาหลายปีที่ผ่านมาและหลังจากความพยายามน้อย (เช่น WSH) Powershell เป็นความพยายามที่น่าเชื่อถือที่สุดของ MS ในการแก้ไขข้อบกพร่องนั้น
ฉันคิดว่าชัยชนะที่ยิ่งใหญ่ที่สุดสำหรับ PowerShell ก็คือคุณสามารถไปป์อะไรกับอะไรก็ได้โดยไม่ต้องแยกวิเคราะห์ข้อความและ / หรือ grok sed และ awk โดยไม่ต้องนำวัตถุที่น่ารังเกียจเหล่านั้นเข้ามาใน equasion ลองคิดว่า PowerShell นั้นมีระบบอัตโนมัติและ awk สำหรับการเชื่อมคำสั่งในไปป์ไลน์
ข้อดี: -
ระบบอัตโนมัติของงาน: - งานเช่นการเพิ่มผู้ใช้ไปยังเครื่อง 1,000 เครื่องเป็นงานที่น่าเบื่อด้วยตนเอง แต่ด้วยความช่วยเหลือของ powershell คุณต้องเขียนสคริปต์ง่ายๆและสคริปต์นั้นทำงานมันจะกำหนดค่าไคลเอนต์ทั้งหมดโดยอัตโนมัติ ดังนั้นจึงช่วยประหยัดเวลาโดยทำซ้ำขั้นตอนโดยอัตโนมัติ สคริปต์ backup \ restore ของ Windows PowerShell สามารถพัฒนาและกำหนดเวลา (ด้วย Windows Task Scheduler) ในขณะที่การดูแลจากศูนย์กลางใช้สำหรับการสำรองและกู้คืนแบบใช้ครั้งเดียว Windows PowerShell มีข้อได้เปรียบในการทำงานกับ SQL snapshots แทนที่จะเป็นฐานข้อมูลการผลิต หนึ่งในพารามิเตอร์ของคำสั่ง Windows PowerShell จะทำให้ SQL snapshot ถูกสร้างขึ้นจากนั้น Windows PowerShell จะทำการดำเนินการกับ snapshot แทนที่จะเป็นฐานข้อมูลการผลิต สิ่งนี้จะลดผลกระทบด้านทรัพยากรของการดำเนินการสำรองข้อมูลในสภาพแวดล้อมการผลิต ด้วย Windows PowerShell ผู้ดูแลระบบ SharePoint จะมีการควบคุมตัวเลือกที่ละเอียดยิ่งขึ้นสำหรับการสำรองหรือกู้คืน
การปรับปรุงความสามารถในการควบคุมระยะไกล: - ความสำคัญคือทวีคูณประการแรกเดสก์ท็อป Windows 7 สามารถสื่อสารกับเซิร์ฟเวอร์โดยใช้คำสั่ง PowerShell ดังนั้นเทคโนโลยีที่ใช้แล็ปท็อป Windows 7 สามารถกำหนดค่าเซิร์ฟเวอร์ของตนจากระยะไกลโดยใช้สคริปต์ PowerShell ประการที่สองสคริปต์การเข้าสู่ระบบไคลเอ็นต์ที่เขียนใน PowerShell ซึ่งอยู่บนเซิร์ฟเวอร์สามารถเรียกใช้บน Windows 7 ได้ง่ายขึ้น ด้วยการใช้ powershell เราสามารถควบคุมเครื่องจักรระยะไกลได้อย่างง่ายดายสามารถทำงานที่สำคัญกับพวกเขาและสามารถนำการเปลี่ยนแปลงเหล่านี้มาใช้อย่างง่ายดาย Remoting ใช้ทรัพยากรเครือข่าย ดังนั้นเมื่อเราจะทำงานกับ powershell เราไม่ได้ใช้ GUI ดังนั้นแบนด์วิดท์ที่จำเป็นสำหรับงานบางอย่างลดลงและปัญหาการโอเวอร์โหลดเครือข่ายได้รับการแก้ไข
ความสอดคล้อง: - หากคุณมีขั้นตอนการตั้งค่าสำหรับการทำงานให้เสร็จสิ้นการใช้ Windows Powershell จะทำให้แน่ใจว่าคุณจะไม่พลาดขั้นตอนอัตโนมัติให้มากที่สุดเท่าที่จะทำได้และให้ Powershell แจ้งให้คุณทราบถึงสิ่งที่ไม่อัตโนมัติ
. NET Support: - Powershell รองรับ. NET Framework ดังนั้นฟังก์ชั่นระบบทั้งหมดสามารถเพิ่มได้อย่างง่ายดายในสคริปต์ PowerShell และจึงเป็นความช่วยเหลือแก่โปรแกรมเมอร์ในการพัฒนาสคริปต์ ดังนั้นการทำงานอัตโนมัติของ VDI จึงง่ายขึ้นง่ายขึ้นและมีประสิทธิภาพมากขึ้น
ทำงานด้วยตนเองน้อยลง: - ผู้ดูแลระบบสามารถสร้างลบหรือแก้ไขการตั้งค่าของเครื่องเสมือนจากระยะไกลโดยเพียงแค่เขียนสคริปต์ เขาไม่จำเป็นต้องไปที่พีซีส่วนบุคคลและทำงานให้เสร็จ นอกจากนี้สคริปต์ที่เขียนนั้นสามารถใช้ได้กับคอมพิวเตอร์ทุกเครื่อง ดังนั้นผู้ดูแลระบบจึงไม่จำเป็นต้องเขียนซ้ำอีกครั้ง
ความสามารถนำกลับมาใช้ใหม่: - สคริปต์ที่เขียนครั้งเดียวเพื่อทำงานที่เฉพาะเจาะจงสามารถจัดเก็บเพื่อวัตถุประสงค์ในภายหลังและสามารถใช้ร่วมกับสคริปต์อื่นเพื่อทำงานที่แตกต่างกัน ดังนั้นการทำซ้ำ ๆ สามารถทำได้ง่ายกว่ามากเพียงแค่เรียกใช้สคริปต์ สิ่งนี้ช่วยประหยัดเวลาและเงินของผู้ดูแลระบบในการกำหนดค่าเครื่อง
การสนับสนุนการวางท่อ: - ชัยชนะที่ยิ่งใหญ่ที่สุดสำหรับ PowerShell คือคุณสามารถไปป์อะไรก็ได้โดยไม่ต้องแยกวิเคราะห์ข้อความ คุณสามารถจัดเตรียมเอาต์พุตของหนึ่งคำสั่งเป็นอินพุตให้กับชุดใหม่และดังนั้นจึงสามารถแก้ไขงานที่ซับซ้อนได้
Cygwin ไม่รับประกันว่าจะสามารถใช้งานได้กับ Windows ทุกรุ่น ล่าสุดฉันตรวจสอบว่ามันน่าสงสัยในเครื่อง 64 บิต Powershell กำลังกลายเป็นเชลล์คำสั่งเริ่มต้นสำหรับ windows และจะเสนอการเข้าถึง "ดั้งเดิม" ไปยังทรัพยากรทั้งหมดบนเครื่อง Windows