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

ภาพรวมผู้ให้บริการ 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

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