NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
TH

การจัดการเซิร์ฟเวอร์ Windows

PowerShell: ภาษาสำหรับผู้ดูแล Windows ที่รันบน Linux ได้ด้วย

PowerShell คือภาษาอัตโนมัติของระบบ Windows: cmdlet ที่ทำงานกับออบเจกต์แทนการแยกวิเคราะห์ข้อความ remoting ที่เข้าถึงเครื่องเป็นกลุ่มแบบที่ SSH เข้าถึงโฮสต์ Linux และแกลเลอรีโมดูลที่ครอบคลุมทุกอย่างตั้งแต่ Azure ถึง Exchange ตั้งแต่เวอร์ชัน 7 มันรันบน Linux และ macOS ได้ด้วย ซึ่งสำคัญสำหรับทีมที่ใช้ระบบผสม แต่บ้านของมันยังคือการดูแลเซิร์ฟเวอร์ Windows และนั่นคือที่ที่ความคล่องแคล่วให้ผลตอบแทน

ประเด็นสำคัญ

  1. ความต่างเชิงออกแบบคือออบเจกต์: Get-Process คืนออบเจกต์โปรเซสที่มีโครงสร้าง ซึ่งกรองด้วย Where-Object และเลือกด้วย Select-Object ดังนั้นไปป์ไลน์จึงแปลงข้อมูลแทนที่จะแยกวิเคราะห์ข้อความ นั่นกำจัดการแยกวิเคราะห์คอลัมน์แบบเปราะบางที่กัดกินงานอัตโนมัติด้วย bash
  2. สองรุ่นอยู่ร่วมกัน: Windows PowerShell 5.1 (มากับ Windows และถูกหยุดพัฒนา) กับ PowerShell 7+ (ข้ามแพลตฟอร์ม โอเพนซอร์ส พัฒนาต่อเนื่องพร้อมรุ่น LTS) โมดูลใหม่ ๆ ต้องการ 7+ มากขึ้นเรื่อย ๆ และการรันสคริปต์ที่ชื่อคุ้นเคยแต่ผิดรุ่นคือกับดักเวลาคลาสสิก
  3. Remoting คือคันโยกสำหรับทั้งฝูงเครื่อง: PowerShell Remoting บน WinRM แทนการกระโดดเข้าเซิร์ฟเวอร์ทีละเครื่อง และ Enter-PSSession / Invoke-Command สั่งงานบนโฮสต์หลายสิบเครื่องแบบที่ลูป ssh ทำบน Linux ส่วน PowerShell 7 เพิ่มการขนส่งผ่าน SSH สำหรับปลายทางที่ไม่ใช่ Windows
  4. โมดูลคือระบบนิเวศ: PowerShellGet ติดตั้งจาก PSGallery และมี Az (Azure), Exchange Online, MicrosoftTeams กับโมดูลชุมชนอีกหลายพันตัว ปักเวอร์ชันโมดูลตามแต่ละสภาพแวดล้อมแบบที่คุณปักแพ็กเกจ Python เพราะการอัปเดตโมดูลเปลี่ยนพฤติกรรมของคำสั่งได้
  5. วินัยในการเขียนสคริปต์ยืมมาจากภาษาอื่นได้: Set-StrictMode, $ErrorActionPreference = 'Stop', บล็อก param พร้อมการตรวจสอบค่า และ PSScriptAnalyzer เป็นชั้น lint ถ้าไม่มีสิ่งเหล่านี้ สคริปต์ PowerShell จะกลายเป็นสคริปต์ที่ดูผ่อนปรนที่สุดและเปราะที่สุดในรีโป
  6. รูปแบบการเริ่มใช้ที่ตรงไปตรงมาสำหรับงานอัตโนมัติใหม่: เรียนงานจริงหนึ่งงานให้ลึก (สร้างรายงาน, อัปเดตเป็นชุด) แปลงมันให้ครบวงจรด้วย remoting และโมดูล แล้วค่อยขยาย พื้นผิวของ PowerShell กว้างมากและการเรียนแบบกว้างแต่ตื้นไม่ได้สร้างอะไรที่ใช้งานได้จริง

บันทึกจากหน้างาน

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

คำถามที่พบบ่อย

ทีมที่เน้น Linux ควรเรียน PowerShell ไหม

เรียนส่วนที่แตะระบบ Windows (remoting ตระกูลคำสั่ง Get-AD-* และ cmdlet ที่เกี่ยวกับ GPO) และทำงานอัตโนมัติจริงให้สำเร็จหนึ่งงาน PowerShell 7 รันบน Linux ได้ เครื่องมือจึงไม่ใช่เหตุผลให้หลีกเลี่ยงอีกต่อไป

PowerShell เป็นเชลล์หรือภาษา

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

Remoting เทียบกับ SSH ต่างกันอย่างไร

PowerShell Remoting ส่งออบเจกต์ที่มีโครงสร้างผ่าน WinRM โดยปริยาย ซึ่งสมบูรณ์กว่าสตรีมข้อความ บน Linux มันวิ่งบน SSH เหมือนไคลเอนต์อื่น ๆ ไม่ว่าทางไหนก็ต้องเสริมความปลอดภัย และใช้ constrained language mode สำหรับเซสชันที่มีความเสี่ยงสูง

ทำไม cmdlet บางตัวมีคำเชื่อมแบบ Get-AdUser

ธรรมเนียม Verb-Noun (รายการ Approved Verbs) ทำให้คำสั่งอธิบายตัวเองและค้นพบได้ผ่าน Get-Command เมื่อรับธรรมเนียมนี้ได้ ชื่อ cmdlet จะเลิกดูแปลกและเริ่มทำหน้าที่เป็นเอกสารประกอบ

Kinetikatech ช่วยเรื่อง การจัดการเซิร์ฟเวอร์ windows ได้อย่างไร

เราเคยรับเรื่องแบบนี้มาเป็นร้อยครั้ง: เร็วๆ นี้: การตรวจสอบ แพตช์ และการป้องกันแบบ brute-force สำหรับ Windows Server, ระเบียบวินัยเดียวกันตลอด 24 ชั่วโมงทุกวัน, เครื่องมือแบบเนทีฟ กับ การเฝ้าระวัง Windows Serverและการจัดการเซิร์ฟเวอร์ คุณได้วงจรครบ ตั้งแต่เราประเมิน ลงมือทำ เฝ้าดูตลอดเวลา และรับเรื่องภายใน 30 นาทีเมื่อจำเป็น

คุยกับช่างเทคนิค

เซิร์ฟเวอร์มีปัญหา? เว็บถูกแฮก? โหลดช้า?

ตอบสนองเหตุกรณ์ฉุกเฉินใน 30 นาที — ตลอด 24 ชั่วโมง ทุกวัน

ขอความช่วยเหลือฉุกเฉิน support@kinetikatech.com