ภาพรวมผู้ให้บริการ Windows PowerShell
ผู้ให้บริการ Windows PowerShell อนุญาตให้พื้นที่เก็บข้อมูลใดๆ ถูกเปิดเผยได้เหมือนกับระบบไฟล์เหมือนกับว่าเป็นไดรฟ์ที่ติดตั้งอยู่ ตัวอย่างเช่น ผู้ให้บริการรีจิสทรีในตัวช่วยให้คุณสามารถนำทางไปยังรีจิสทรีได้เหมือนกับที่คุณนำทางในไดรฟ์ c ของคอมพิวเตอร์ของคุณ ผู้ให้บริการยังสามารถแทนที่ cmdlets Item (เช่น Get-Item, Set-Item ฯลฯ) เพื่อให้ข้อมูลใน ที่เก็บข้อมูลสามารถปฏิบัติได้เหมือนกับไฟล์และไดเร็กทอรีที่ได้รับการปฏิบัติเมื่อนำทางระบบไฟล์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับผู้ให้บริการและไดรฟ์ และผู้ให้บริการในตัวใน Windows PowerShell โปรดดูที่ about_Providers
ผู้ให้บริการและไดรฟ์
ผู้ให้บริการจะกำหนดตรรกะที่ใช้ในการเข้าถึง นำทาง และแก้ไขที่เก็บข้อมูล ในขณะที่ไดรฟ์จะระบุจุดเริ่มต้นเฉพาะไปยังที่เก็บข้อมูล (หรือส่วนหนึ่งของที่เก็บข้อมูล) ที่เป็นประเภทที่กำหนดโดยผู้ให้บริการ ตัวอย่างเช่น ผู้ให้บริการรีจิสทรีอนุญาตให้คุณเข้าถึงกลุ่มและคีย์ในรีจิสทรี และไดรฟ์ HKLM และ HKCU จะระบุกลุ่มที่เกี่ยวข้องภายในรีจิสทรี ไดรฟ์ HKLM และ HKCU ต่างก็ใช้ผู้ให้บริการรีจิสทรี
เมื่อคุณเขียนผู้ให้บริการ คุณสามารถระบุไดรฟ์เริ่มต้นที่ถูกสร้างขึ้นโดยอัตโนมัติเมื่อผู้ให้บริการพร้อมใช้งาน คุณยังกำหนดวิธีการสร้างไดรฟ์ใหม่ที่ใช้ผู้ให้บริการรายนั้นด้วย
ประเภทของผู้ให้บริการ
มีผู้ให้บริการหลายประเภท ซึ่งแต่ละประเภทมีระดับการทำงานที่แตกต่างกัน ตัวให้บริการถูกนำไปใช้เป็นคลาสที่สืบทอดมาจากคลาส System.Management.Automation.SessionStateCategory CmdletProvider อย่างใดอย่างหนึ่ง สำหรับข้อมูลเกี่ยวกับผู้ให้บริการประเภทต่างๆ โปรดดูประเภทผู้ให้บริการ
cmdlet ของผู้ให้บริการ
ผู้ให้บริการสามารถใช้วิธีการที่สอดคล้องกับ cmdlet ของการสร้างลักษณะการทำงานแบบกำหนดเองสำหรับ cmdlet เหล่านั้นเมื่อใช้ในไดรฟ์สำหรับผู้ให้บริการรายนั้น ชุด cmdlet ต่างๆ จะพร้อมใช้งาน ทั้งนี้ขึ้นอยู่กับประเภทของผู้ให้บริการ สำหรับรายการ cmdlets ทั้งหมดที่พร้อมใช้งานสำหรับการปรับแต่งในผู้ให้บริการ โปรดดูที่ cmdlets ของผู้ให้บริการ
เส้นทางของผู้ให้บริการ
ผู้ใช้นำทางไดรฟ์ของผู้ให้บริการเช่นเดียวกับระบบไฟล์ ด้วยเหตุนี้ พวกเขาจึงคาดหวังให้ไวยากรณ์ของเส้นทางสอดคล้องกับเส้นทางที่ใช้ในการนำทางระบบไฟล์ เมื่อผู้ใช้เรียกใช้ cmdlet ของผู้ให้บริการ ผู้ใช้จะระบุเส้นทางไปยังรายการที่จะเข้าถึง เส้นทางที่ระบุสามารถตีความได้หลายวิธี ผู้ให้บริการควรสนับสนุนประเภทเส้นทางต่อไปนี้อย่างน้อยหนึ่งประเภท
เส้นทางที่มีคุณสมบัติเหมาะสมสำหรับการขับขี่
เส้นทางที่ผ่านการรับรองของไดรฟ์คือการรวมกันของชื่อสินค้า คอนเทนเนอร์และคอนเทนเนอร์ย่อยที่มีสินค้าอยู่ และไดรฟ์ Windows PowerShell ที่มีการเข้าถึงสินค้า (ไดรฟ์ถูกกำหนดโดยผู้ให้บริการที่ใช้ในการเข้าถึงที่เก็บข้อมูล พาธนี้เริ่มต้นด้วยชื่อไดรฟ์ตามด้วยเครื่องหมายทวิภาค (:) ตัวอย่างเช่น: get-childitem C:
เส้นทางที่ผ่านการรับรองจากผู้ให้บริการ
เพื่ออนุญาตให้กลไกจัดการ Windows PowerShell เตรียมใช้งานและเตรียมใช้งานผู้ให้บริการของคุณ ผู้ให้บริการต้องสนับสนุนเส้นทางที่มีคุณสมบัติตามที่กำหนดของผู้ให้บริการ ตัวอย่างเช่น ผู้ใช้สามารถเตรียมใช้งานและยกเลิกการเตรียมใช้งานผู้ให้บริการ FileSystem ได้เนื่องจากจะกำหนดเส้นทางที่มีคุณสมบัติตามผู้ให้บริการต่อไปนี้: FileSystem::\\uncshare\abc\bar
เส้นทางตรงของผู้ให้บริการ
หากต้องการอนุญาตการเข้าถึงระยะไกลไปยังผู้ให้บริการ Windows PowerShell ของคุณ ควรสนับสนุนเส้นทางตรงของผู้ให้บริการเพื่อส่งผ่านโดยตรงไปยังผู้ให้บริการ Windows PowerShell สำหรับตำแหน่งที่ตั้งปัจจุบัน ตัวอย่างเช่น ผู้ให้บริการรีจิสทรี Windows PowerShell สามารถใช้ \\server\regkeypath เป็นเส้นทางผู้ให้บริการโดยตรง
เส้นทางภายในของผู้ให้บริการ
หากต้องการอนุญาตให้ผู้ให้บริการ cmdlet เข้าถึงข้อมูลโดยใช้อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่ไม่ใช่ Windows PowerShell ผู้ให้บริการ Windows PowerShell ของคุณควรสนับสนุนเส้นทางภายในของผู้ให้บริการ เส้นทางนี้จะถูกระบุหลัง "::" ในเส้นทางที่ผ่านการรับรองของผู้ให้บริการ ตัวอย่างเช่น เส้นทางภายในของผู้ให้บริการสำหรับผู้ให้บริการระบบไฟล์ Windows PowerShell คือ \\uncshare\abc\bar
เอาชนะพารามิเตอร์ cmdlet
ลักษณะการทำงานของ cmdlet ของผู้ให้บริการบางรายสามารถถูกแทนที่โดยผู้ให้บริการได้ สำหรับรายการพารามิเตอร์ที่สามารถแทนที่ได้ และวิธีแทนที่พารามิเตอร์เหล่านั้นในคลาสผู้ให้บริการของคุณ โปรดดูพารามิเตอร์ cmdlet ของผู้ให้บริการ
พารามิเตอร์แบบไดนามิก
ผู้ให้บริการสามารถกำหนดพารามิเตอร์แบบไดนามิกที่เพิ่มลงใน cmdlet ของผู้ให้บริการเมื่อผู้ใช้ระบุค่าที่แน่นอนสำหรับพารามิเตอร์คงที่ตัวใดตัวหนึ่งของ cmdlet ผู้ให้บริการทำได้โดยใช้วิธีพารามิเตอร์ไดนามิกตั้งแต่หนึ่งวิธีขึ้นไป สำหรับรายการพารามิเตอร์ cmdlet ที่สามารถใช้เพื่อเพิ่มพารามิเตอร์ไดนามิก และวิธีการที่ใช้ในการนำไปใช้ โปรดดูพารามิเตอร์ไดนามิก cmdlet ของผู้ให้บริการ
ความสามารถของผู้ให้บริการ
การแจงนับ System.Management.Automation.Provider.Providercapabilities กำหนดความสามารถจำนวนหนึ่งที่ผู้ให้บริการสามารถรองรับได้ ซึ่งรวมถึงความสามารถในการใช้ไวด์การ์ด กรองรายการ และรองรับธุรกรรม เมื่อต้องการระบุความสามารถสำหรับผู้ให้บริการ ให้เพิ่มรายการค่าของการแจงนับ System.Management.Automation.Provider.Providercapabilities รวมกับการดำเนินการ OR แบบลอจิคัล เป็น System.Management.Automation.Provider.Cmdletproviderattribute คุณสมบัติ .Providercapabilities* (พารามิเตอร์ที่สองของแอตทริบิวต์) ของแอตทริบิวต์ System.Management.Automation.Provider.Cmdletproviderattribute สำหรับคลาสผู้ให้บริการของคุณ ตัวอย่างเช่น แอ็ตทริบิวต์ต่อไปนี้ระบุว่าผู้ให้บริการสนับสนุนความสามารถ System.Management.Automation.Provider.Providercapabilities ShouldProcess และ System.Management.Automation.Provider.ProviderCapabilities Transactions
[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]
ความช่วยเหลือ cmdlet ของผู้ให้บริการ
เมื่อเขียนผู้ให้บริการ คุณสามารถใช้วิธีใช้ของคุณเองสำหรับ cmdlets ของผู้ให้บริการที่คุณสนับสนุนได้ ซึ่งรวมถึงหัวข้อวิธีใช้เดียวสำหรับ cmdlet ของผู้ให้บริการแต่ละรายหรือหัวข้อวิธีใช้หลายเวอร์ชันสำหรับกรณีที่ cmdlet ของผู้ให้บริการทำหน้าที่แตกต่างกันตามการใช้พารามิเตอร์แบบไดนามิก เพื่อสนับสนุนความช่วยเหลือเฉพาะของผู้ให้บริการ cmdlet ผู้ให้บริการของคุณต้องใช้อินเทอร์เฟซ System.Management.Automation.Provider.Icmdletprovidersupportshelp
กลไกจัดการ Windows PowerShell เรียกเมธอด System.Management.Automation.Provider.Icmdletprovidersupportshelp.Gethelpmaml* เพื่อแสดงหัวข้อวิธีใช้สำหรับ cmdlet ของผู้ให้บริการของคุณ กลไกจัดการให้ชื่อของ cmdlet ที่ผู้ใช้ระบุเมื่อเรียกใช้ cmdlet Get-Help และเส้นทางปัจจุบันของผู้ใช้ จำเป็นต้องมีเส้นทางปัจจุบันหากผู้ให้บริการของคุณใช้ cmdlet ผู้ให้บริการเดียวกันเวอร์ชันที่แตกต่างกันสำหรับไดรฟ์ที่แตกต่างกัน วิธีการต้องส่งคืนสตริงที่ประกอบด้วย XML สำหรับวิธีใช้ cmdlet
เนื้อหาสำหรับไฟล์วิธีใช้ถูกเขียนโดยใช้ PSMAML XML นี่คือ XML schema เดียวกับที่ใช้สำหรับการเขียนเนื้อหาวิธีใช้สำหรับ cmdlets แบบสแตนด์อโลน เพิ่มเนื้อหาสำหรับวิธีใช้ cmdlet แบบกำหนดเองของคุณไปยังไฟล์วิธีใช้สำหรับผู้ให้บริการของคุณภายใต้องค์ประกอบ CmdletHelpPaths ตัวอย่างต่อไปนี้แสดงองค์ประกอบ command สำหรับ cmdlet ของผู้ให้บริการรายเดียว และแสดงวิธีที่คุณระบุชื่อของ cmdlet ของผู้ให้บริการที่ผู้ให้บริการของคุณ รองรับ
<CmdletHelpPaths>
<command:command>
<command:details>
<command:name>ProviderCmdletName</command:name>
<command:verb>Verb</command:verb>
<command:noun>Noun</command:noun>
<command:details>
</command:command>
<CmdletHelpPath>
ดูเพิ่มเติม
ฟังก์ชันการทำงานของผู้ให้บริการ Windows PowerShell
Cmdlet ของผู้ให้บริการ
การเขียนผู้ให้บริการ Windows PowerShell