การสร้างผู้ให้บริการนำทาง Windows PowerShell
หัวข้อนี้อธิบายวิธีการสร้างผู้ให้บริการนำทาง Windows PowerShell ที่สามารถนำทางที่เก็บข้อมูลได้ ผู้ให้บริการประเภทนี้รองรับคำสั่งแบบเรียกซ้ำ คอนเทนเนอร์ที่ซ้อนกัน และเส้นทางสัมพัทธ์
บันทึก
คุณสามารถดาวน์โหลดไฟล์ต้นฉบับ C# (AccessDBSampleProvider05.cs) สำหรับผู้ให้บริการรายนี้โดยใช้ Microsoft Windows Software Development Kit สำหรับ Windows Vista และ .NET Framework 3.0 Runtime Components สำหรับคำแนะนำในการดาวน์โหลด โปรดดูวิธีการติดตั้ง Windows PowerShell และดาวน์โหลด Windows PowerShell SDK ไฟล์ต้นฉบับที่ดาวน์โหลดมีอยู่ในไดเร็กทอรี
ผู้ให้บริการที่อธิบายไว้ที่นี่ช่วยให้ผู้ใช้จัดการฐานข้อมูล Access เป็นไดรฟ์เพื่อให้ผู้ใช้สามารถนำทางไปยังตารางข้อมูลในฐานข้อมูลได้ เมื่อสร้างผู้ให้บริการการนำทางของคุณเอง คุณสามารถใช้วิธีการที่สามารถสร้างเส้นทางที่มีคุณสมบัติตามไดรฟ์ที่จำเป็นสำหรับการนำทาง ปรับเส้นทางสัมพัทธ์ให้เป็นมาตรฐาน ย้ายรายการของการจัดเก็บข้อมูล ตลอดจนวิธีการรับชื่อลูก รับเส้นทางหลักของรายการ และทดสอบเพื่อระบุว่ารายการนั้นเป็นคอนเทนเนอร์หรือไม่
คำเตือน
โปรดทราบว่าการออกแบบนี้จะถือว่าฐานข้อมูลที่มีเขตข้อมูลที่มีรหัสชื่อ และชนิดของเขตข้อมูลนั้นเป็น LongInteger
กำหนดผู้ให้บริการ Windows PowerShell
ผู้ให้บริการนำทาง Windows PowerShell ต้องสร้างคลาส .NET ที่ได้มาจากคลาสพื้นฐานของ System.Management.Automation.Provider.Navigationcmdletprovider นี่คือคำจำกัดความของคลาสสำหรับผู้ให้บริการนำทางที่อธิบายไว้ในส่วนนี้
[CmdletProvider("AccessDB", ProviderCapabilities.None)]
public class AccessDBProvider : NavigationCmdletProvider
โปรดทราบว่าในผู้ให้บริการนี้ แอ็ตทริบิวต์ System.Management.Automation.Provider.Cmdletproviderattribute ประกอบด้วยพารามิเตอร์สองตัว พารามิเตอร์แรกระบุชื่อที่เป็นมิตรต่อผู้ใช้สำหรับผู้ให้บริการที่ใช้โดย Windows PowerShell พารามิเตอร์ตัวที่สองระบุความสามารถเฉพาะของ Windows PowerShell ที่ผู้ให้บริการเปิดเผยต่อรันไทม์ของ Windows PowerShell ในระหว่างการประมวลผลคำสั่ง สำหรับผู้ให้บริการรายนี้ ไม่มีการเพิ่มความสามารถเฉพาะของ Windows PowerShell
การกำหนดฟังก์ชันพื้นฐาน
ตามที่อธิบายไว้ในการออกแบบผู้ให้บริการ PS ของคุณ คลาสพื้นฐานของผู้ให้บริการ System.Management.Automation.Provider.Navigationcmdlet มาจากคลาสอื่นๆ อีกหลายคลาสที่มีฟังก์ชันการทำงานของผู้ให้บริการที่แตกต่างกัน ดังนั้นผู้ให้บริการนำทาง Windows PowerShell จะต้องกำหนดฟังก์ชันการทำงานทั้งหมดที่คลาสเหล่านั้นมีให้
หากต้องการใช้ฟังก์ชันการทำงานสำหรับการเพิ่มข้อมูลการเริ่มต้นเฉพาะเซสชัน และสำหรับการปล่อยทรัพยากรที่ผู้ให้บริการใช้ โปรดดูที่การสร้างผู้ให้บริการ PS ขั้นพื้นฐาน อย่างไรก็ตาม ผู้ให้บริการส่วนใหญ่ (รวมถึงผู้ให้บริการที่อธิบายไว้ที่นี่) สามารถใช้การใช้งานเริ่มต้นของฟังก์ชันนี้ที่ได้รับจาก Windows PowerShell
ในการเข้าถึงที่เก็บข้อมูลผ่านไดรฟ์ Windows PowerShell คุณต้องใช้วิธีการของคลาสพื้นฐานของ System.Management.Automation.Provider.Drivecmdletprovider สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเหล่านี้ โปรดดูที่การสร้างผู้ให้บริการไดรฟ์ Windows PowerShell
เมื่อต้องการจัดการรายการต่างๆ ของที่เก็บข้อมูล เช่น การรับ การตั้งค่า และการล้างรายการ ผู้ให้บริการจะต้องใช้วิธีการที่มีให้โดยคลาสพื้นฐานของ System.Management.Automation.Provider.Itemcmdletprovider สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเหล่านี้ โปรดดูที่การสร้างตัวให้บริการรายการ Windows PowerShell
เมื่อต้องการเข้าถึงรายการลูกหรือชื่อของที่เก็บข้อมูล ตลอดจนวิธีการสร้าง คัดลอก เปลี่ยนชื่อ และลบรายการ คุณต้องใช้วิธีการที่คลาสฐาน System.Management.Automation.Provider.Containercmdletprovider จัดเตรียมไว้ . สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้วิธีการเหล่านี้ โปรดดูที่การสร้าง Windows PowerShell Container Provider
การสร้างเส้นทาง Windows PowerShell
ผู้ให้บริการการนำทาง Windows PowerShell ใช้เส้นทาง Windows PowerShell ภายในของผู้ให้บริการเพื่อนำทางรายการต่างๆ ของที่เก็บข้อมูล ในการสร้างเส้นทางภายในของผู้ให้บริการ ผู้ให้บริการต้องใช้เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Makepath* เพื่อรองรับการโทรจาก Combine-Path cmdlet วิธีนี้จะรวมพาธพาเรนต์และพาธรองเข้ากับพาธภายในของผู้ให้บริการ โดยใช้ตัวคั่นพาธเฉพาะของผู้ให้บริการระหว่างพาธพาเรนต์และพาธลูก
การใช้งานเริ่มต้นจะใช้พาธที่มี "/" หรือ "\" เป็นตัวคั่นพาธ ทำให้ตัวคั่นพาธเป็นมาตรฐานเป็น "\" รวมส่วนพาธพาเรนต์และพาธย่อยด้วยตัวคั่นระหว่างพาธเหล่านั้น และจากนั้นส่งคืนสตริงที่มีพาธแบบรวม .
ผู้ให้บริการนำทางรายนี้ไม่ได้ใช้วิธีนี้ อย่างไรก็ตาม รหัสต่อไปนี้เป็นการใช้งานเริ่มต้นของเมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Makepath*
สิ่งที่ต้องจำเกี่ยวกับการใช้ MakePath
เงื่อนไขต่อไปนี้อาจนำไปใช้กับการใช้งาน System.Management.Automation.Provider.Navigationcmdletprovider.Makepath* ของคุณ:
การใช้งานเมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Makepath* ของคุณไม่ควรตรวจสอบเส้นทางเป็นเส้นทางที่มีคุณสมบัติครบถ้วนตามกฎหมายในเนมสเปซของผู้ให้บริการ โปรดทราบว่าแต่ละพารามิเตอร์สามารถแสดงได้เพียงส่วนหนึ่งของเส้นทางเท่านั้น และส่วนที่รวมกันอาจไม่สร้างเส้นทางที่มีคุณสมบัติครบถ้วน ตัวอย่างเช่น เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Makepath* สำหรับผู้ให้บริการระบบไฟล์อาจได้รับ "windows\system32" ในพารามิเตอร์
parentและ "abc.dll" ในเด็กพารามิเตอร์ วิธีการรวมค่าเหล่านี้ด้วยตัวคั่น "\" และส่งกลับ "windows\system32\abc.dll" ซึ่งไม่ใช่เส้นทางระบบไฟล์ที่มีคุณสมบัติครบถ้วนมันเป็นสิ่งสำคัญ
ส่วนเส้นทางที่ให้ไว้ในการเรียก System.Management.Automation.Provider.Navigationcmdletprovider.Makepath* อาจมีอักขระที่ไม่ได้รับอนุญาตในเนมสเปซของผู้ให้บริการ อักขระเหล่านี้มักจะใช้สำหรับการขยายไวด์การ์ด และการนำวิธีนี้ไปใช้ไม่ควรลบออก
การดึงข้อมูลเส้นทางผู้ปกครอง
ผู้ให้บริการการนำทางของ Windows PowerShell ใช้เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Getparentpath* เพื่อดึงข้อมูลส่วนหลักของเส้นทางเฉพาะของผู้ให้บริการแบบเต็มหรือบางส่วนที่ระบุ วิธีการลบส่วนลูกของเส้นทางและส่งกลับส่วนเส้นทางหลัก พารามิเตอร์ root ระบุเส้นทางที่มีคุณสมบัติครบถ้วนไปยังรากของไดรฟ์ พารามิเตอร์นี้สามารถเป็นค่าว่างหรือว่างเปล่าได้หากไม่ได้ใช้ไดรฟ์ที่เมาท์สำหรับการดำเนินการดึงข้อมูล หากมีการระบุรูท วิธีการจะต้องส่งคืนเส้นทางไปยังคอนเทนเนอร์ในแผนผังเดียวกันกับรูท
ผู้ให้บริการนำทางตัวอย่างไม่ได้แทนที่วิธีนี้ แต่ใช้การใช้งานเริ่มต้น ยอมรับเส้นทางที่ใช้ทั้ง "/" และ "\" เป็นตัวคั่นเส้นทาง ขั้นแรกจะทำให้เส้นทางเป็นมาตรฐานเพื่อให้มีเพียงตัวคั่น "\" จากนั้นแยกเส้นทางหลักออกที่ "\" สุดท้ายและส่งกลับเส้นทางหลัก
สิ่งที่ต้องจำเกี่ยวกับการใช้ GetParentPath
การใช้งานเมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Getparentpath* ของคุณควรแบ่งเส้นทางแบบคำศัพท์บนตัวแยกเส้นทางสำหรับเนมสเปซของผู้ให้บริการ ตัวอย่างเช่น ผู้ให้บริการระบบไฟล์ใช้วิธีนี้เพื่อค้นหา "\" สุดท้าย และส่งคืนทุกอย่างทางด้านซ้ายของตัวคั่น
ดึงข้อมูลชื่อเส้นทางลูก
ผู้ให้บริการการนำทางของคุณใช้เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Getchildname* เพื่อดึงข้อมูลชื่อ (องค์ประกอบลีฟ) ของรายการย่อยที่อยู่ในเส้นทางเฉพาะของผู้ให้บริการแบบเต็มหรือบางส่วนที่ระบุ
ผู้ให้บริการการนำทางตัวอย่างไม่ได้แทนที่วิธีนี้ การใช้งานเริ่มต้นจะแสดงอยู่ด้านล่าง ยอมรับเส้นทางที่ใช้ทั้ง "/" และ "\" เป็นตัวคั่นเส้นทาง ขั้นแรกจะทำให้เส้นทางเป็นมาตรฐานเพื่อให้มีเพียงตัวคั่น "\" จากนั้นแยกเส้นทางหลักออกที่ส่วนสุดท้าย "\" และส่งกลับชื่อของส่วนเส้นทางลูก
สิ่งที่ต้องจำเกี่ยวกับการนำ GetChildName ไปใช้
การใช้งานเมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Getchildname* ของคุณควรแยกเส้นทางตามคำศัพท์ในตัวแยกเส้นทาง หากเส้นทางที่ให้มาไม่มีตัวคั่นเส้นทาง วิธีการควรส่งคืนเส้นทางที่ไม่มีการแก้ไข
มันเป็นสิ่งสำคัญ
เส้นทางที่ระบุในการเรียกเมธอดนี้อาจมีอักขระที่ผิดกฎหมายในเนมสเปซของผู้ให้บริการ อักขระเหล่านี้มักจะใช้สำหรับการขยายไวด์การ์ดหรือการจับคู่นิพจน์ทั่วไป และการนำวิธีนี้ไปใช้ไม่ควรลบอักขระเหล่านี้ออก
การพิจารณาว่ารายการนั้นเป็นคอนเทนเนอร์หรือไม่
ผู้ให้บริการการนำทางสามารถใช้เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Isitemcontainer* เพื่อตรวจสอบว่าพาธที่ระบุบ่งชี้ถึงคอนเทนเนอร์หรือไม่ หากเส้นทางแสดงถึงคอนเทนเนอร์ จะส่งคืนค่าจริง หากเป็นอย่างอื่นจะเป็นเท็จ ผู้ใช้ต้องการวิธีนี้เพื่อให้สามารถใช้ cmdlet Test-Path สำหรับเส้นทางที่ให้มา
รหัสต่อไปนี้แสดงการใช้งาน System.Management.Automation.Provider.Navigationcmdletprovider.Isitemcontainer* ในผู้ให้บริการการนำทางตัวอย่างของเรา วิธีการตรวจสอบว่าเส้นทางที่ระบุนั้นถูกต้องและมีตารางอยู่หรือไม่ และส่งคืนค่าจริงหากเส้นทางระบุคอนเทนเนอร์
protected override bool IsItemContainer(string path)
{
if (PathIsDrive(path))
{
return true;
}
string[] pathChunks = ChunkPath(path);
string tableName;
int rowNumber;
PathType type = GetNamesFromPath(path, out tableName, out rowNumber);
if (type == PathType.Table)
{
foreach (DatabaseTableInfo ti in GetTables())
{
if (string.Equals(ti.Name, tableName, StringComparison.OrdinalIgnoreCase))
{
return true;
}
} // foreach (DatabaseTableInfo...
} // if (pathChunks...
return false;
} // IsItemContainer
สิ่งที่ต้องจำเกี่ยวกับการใช้งาน IsItemContainer
คลาส .NET ของผู้ให้บริการนำทางของคุณอาจประกาศความสามารถของผู้ให้บริการของ ExpandWildcards, Filter, Included หรือ Exclude จากการแจงนับ System.Management.Automation.Provider.Providercapabilities ในกรณีนี้ การใช้งาน System.Management.Automation.Provider.Navigationcmdletprovider.Isitemcontainer* จำเป็นต้องตรวจสอบให้แน่ใจว่าเส้นทางที่ส่งผ่านนั้นตรงตามข้อกำหนด เมื่อต้องการทำเช่นนี้ วิธีการควรเข้าถึงคุณสมบัติที่เหมาะสม ตัวอย่างเช่น คุณสมบัติ System.Management.Automation.Provider.Cmdletprovider.Exclude*
การย้ายรายการ
เพื่อสนับสนุน Move-Item cmdlet ผู้ให้บริการการนำทางของคุณจะใช้เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Moveitem* วิธีนี้จะย้ายรายการที่ระบุโดยพารามิเตอร์ path ไปยังคอนเทนเนอร์ที่เส้นทางที่ระบุในพารามิเตอร์ destination
ผู้ให้บริการการนำทางตัวอย่างไม่ได้แทนที่เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Moveitem* ต่อไปนี้เป็นการใช้งานเริ่มต้น
สิ่งที่ต้องจำเกี่ยวกับการนำ MoveItem ไปใช้
คลาส .NET ของผู้ให้บริการนำทางของคุณอาจประกาศความสามารถของผู้ให้บริการของ ExpandWildcards, Filter, Included หรือ Exclude จากการแจงนับ System.Management.Automation.Provider.Providercapabilities ในกรณีนี้ การใช้งาน System.Management.Automation.Provider.Navigationcmdletprovider.Moveitem* ต้องแน่ใจว่าเส้นทางที่ส่งผ่านนั้นตรงตามข้อกำหนด เมื่อต้องการทำเช่นนี้ วิธีการควรเข้าถึงคุณสมบัติที่เหมาะสม ตัวอย่างเช่น คุณสมบัติ CmdletProvider.Exclude
ตามค่าเริ่มต้น การแทนที่ของวิธีนี้ไม่ควรย้ายวัตถุไปไว้เหนือวัตถุที่มีอยู่ เว้นแต่ว่าคุณสมบัติ System.Management.Automation.Provider.Cmdletprovider.Force* ถูกตั้งค่าเป็น true ตัวอย่างเช่น ผู้ให้บริการระบบไฟล์จะไม่คัดลอก c:\temp\abc.txt บนไฟล์ c:\bar.txt ที่มีอยู่ เว้นแต่คุณสมบัติ System.Management.Automation.Provider.Cmdletprovider.Force* จะถูกตั้งค่าเป็น true. หากเส้นทางที่ระบุในพารามิเตอร์ destination มีอยู่และเป็นคอนเทนเนอร์ ก็ไม่จำเป็นต้องมีคุณสมบัติ System.Management.Automation.Provider.Cmdletprovider.Force* ในกรณีนี้ System.Management.Automation.Provider.Navigationcmdletprovider.Moveitem* ควรย้ายรายการที่ระบุโดยพารามิเตอร์ path ไปยังคอนเทนเนอร์ที่ระบุโดยพารามิเตอร์ destination ในฐานะลูก .
การใช้งานเมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Moveitem* ของคุณควรเรียก System.Management.Automation.Provider.Cmdletprovider.ShouldProcess และตรวจสอบค่าที่ส่งคืนก่อนทำการเปลี่ยนแปลงใดๆ กับที่เก็บข้อมูล วิธีการนี้ใช้เพื่อยืนยันการดำเนินการเมื่อมีการเปลี่ยนแปลงสถานะระบบ เช่น การลบไฟล์ System.Management.Automation.Provider.Cmdletprovider.ShouldProcess ส่งชื่อของทรัพยากรที่จะเปลี่ยนให้กับผู้ใช้ โดยรันไทม์ของ Windows PowerShell จะคำนึงถึงการตั้งค่าบรรทัดคำสั่งหรือตัวแปรการกำหนดลักษณะในการกำหนดสิ่งที่ควรแสดงต่อผู้ใช้
หลังจากการเรียกไปยัง System.Management.Automation.Provider.Cmdletprovider.ShouldProcess ส่งกลับค่า true เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Moveitem* ควรเรียกเมธอด System.Management.Automation.Provider Cmdletprovider.ShouldContinue วิธีการ เมธอดนี้ส่งข้อความถึงผู้ใช้เพื่ออนุญาตให้มีข้อเสนอแนะเพื่อบอกว่าควรดำเนินการต่อไปหรือไม่ ผู้ให้บริการของคุณควรโทรติดต่อ System.Management.Automation.Provider.Cmdletprovider.ShouldContinue เพื่อตรวจสอบเพิ่มเติมสำหรับการแก้ไขระบบที่อาจเป็นอันตราย
การแนบพารามิเตอร์แบบไดนามิกเข้ากับ Move-Item Cmdlet
บางครั้ง cmdlet Move-Item จำเป็นต้องมีพารามิเตอร์เพิ่มเติมที่ให้ไว้แบบไดนามิก ณ รันไทม์ เพื่อจัดเตรียมพารามิเตอร์แบบไดนามิกเหล่านี้ ผู้ให้บริการการนำทางต้องใช้เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Moveitemdynamicparameters* เพื่อรับค่าพารามิเตอร์ที่ต้องการจากรายการที่เส้นทางที่ระบุ และส่งคืนออบเจ็กต์ที่มีคุณสมบัติและฟิลด์ที่มีการแยกวิเคราะห์ คุณลักษณะที่คล้ายกับคลาส cmdlet หรือวัตถุ System.Management.Automation.Runtimedesignparameterdictionary
ผู้ให้บริการนำทางรายนี้ไม่ได้ใช้วิธีนี้ อย่างไรก็ตาม รหัสต่อไปนี้เป็นการใช้งานเริ่มต้นของ System.Management.Automation.Provider.Navigationcmdletprovider.Moveitemdynamicparameters*
การทำให้เส้นทางสัมพัทธ์เป็นมาตรฐาน
ผู้ให้บริการนำทางของคุณใช้เมธอด System.Management.Automation.Provider.Navigationcmdletprovider.Normalizerelativepath* เพื่อทำให้พาธที่มีคุณสมบัติครบถ้วนที่ระบุในพารามิเตอร์ path เป็นมาตรฐานโดยสัมพันธ์กับพาธที่ระบุโดย basePath พารามิเตอร์ วิธีการส่งกลับการแสดงสตริงของเส้นทางปกติ จะเขียนข้อผิดพลาดหากพารามิเตอร์ path ระบุเส้นทางที่ไม่มีอยู่
ผู้ให้บริการการนำทางตัวอย่างไม่ได้แทนที่วิธีนี้ ต่อไปนี้เป็นการใช้งานเริ่มต้น
สิ่งที่ต้องจำเกี่ยวกับการนำ NormalizeRelativePath ไปใช้
การใช้งาน System.Management.Automation.Provider.Navigationcmdletprovider.Normalizerelativepath* ของคุณควรแยกวิเคราะห์พารามิเตอร์ path แต่ไม่จำเป็นต้องใช้การแยกวิเคราะห์ทางวากยสัมพันธ์เพียงอย่างเดียว ขอแนะนำให้คุณออกแบบวิธีนี้เพื่อใช้พาธเพื่อค้นหาข้อมูลพาธในที่เก็บข้อมูล และสร้างพาธที่ตรงกับรูปแบบตัวพิมพ์และไวยากรณ์พาธมาตรฐาน
ตัวอย่างโค้ด
สำหรับโค้ดตัวอย่างที่สมบูรณ์ โปรดดูตัวอย่างโค้ด AccessDbProviderSample05
การกำหนดประเภทวัตถุและการจัดรูปแบบ
เป็นไปได้ที่ผู้ให้บริการจะเพิ่มสมาชิกให้กับออบเจ็กต์ที่มีอยู่หรือกำหนดออบเจ็กต์ใหม่ สำหรับข้อมูลเพิ่มเติม โปรดดูการขยายประเภทออบเจ็กต์และการจัดรูปแบบ
การสร้างผู้ให้บริการ Windows PowerShell
สำหรับข้อมูลเพิ่มเติม โปรดดูวิธีการลงทะเบียน Cmdlets ผู้ให้บริการ และแอปพลิเคชันโฮสต์
การทดสอบผู้ให้บริการ Windows PowerShell
เมื่อผู้ให้บริการ Windows PowerShell ของคุณลงทะเบียนกับ Windows PowerShell แล้ว คุณสามารถทดสอบได้โดยการเรียกใช้ cmdlets ที่ได้รับการสนับสนุนบนบรรทัดคำสั่ง รวมถึง cmdlets ที่ทำให้พร้อมใช้งานโดยการสืบทอดมา ตัวอย่างนี้จะทดสอบผู้ให้บริการนำทางตัวอย่าง
เรียกใช้เชลล์ใหม่ของคุณและใช้
Set-Locationcmdlet เพื่อกำหนดเส้นทางเพื่อระบุฐานข้อมูล AccessSet-Location mydb:ตอนนี้ให้รัน cmdlet
Get-Childitemเพื่อดึงรายการของรายการฐานข้อมูล ซึ่งเป็นตารางฐานข้อมูลที่มีอยู่ สำหรับแต่ละตาราง cmdlet นี้จะดึงข้อมูลจำนวนแถวของตารางด้วยGet-ChildItem | Format-Table rowcount,name -AutoSizeRowCount Name -------- ---- 180 MSysAccessObjects 0 MSysACEs 1 MSysCmdbars 0 MSysIMEXColumns 0 MSysIMEXSpecs 0 MSysObjects 0 MSysQueries 7 MSysRelationships 8 Categories 91 Customers 9 Employees 2155 Order Details 830 Orders 77 Products 3 Shippers 29 Suppliersใช้ cmdlet
Set-Locationอีกครั้งเพื่อตั้งค่าตำแหน่งของตารางข้อมูลพนักงานSet-Location Employeesตอนนี้ลองใช้ cmdlet
Get-Locationเพื่อดึงข้อมูลเส้นทางไปยังตารางพนักงานGet-LocationPath ---- mydb:\Employeesตอนนี้ใช้ cmdlet
Get-Childitemที่ส่งไปยัง cmdletFormat-Tablecmdlets ชุดนี้จะดึงข้อมูลรายการสำหรับตารางข้อมูลพนักงานซึ่งเป็นแถวของตาราง มีการจัดรูปแบบตามที่ระบุโดยFormat-TablecmdletGet-ChildItem | Format-Table rownumber,psiscontainer,data -AutoSizeRowNumber PSIsContainer Data --------- -------------- ---- 0 False System.Data.DataRow 1 False System.Data.DataRow 2 False System.Data.DataRow 3 False System.Data.DataRow 4 False System.Data.DataRow 5 False System.Data.DataRow 6 False System.Data.DataRow 7 False System.Data.DataRow 8 False System.Data.DataRowตอนนี้คุณสามารถเรียกใช้ cmdlet
Get-Itemเพื่อดึงข้อมูลรายการสำหรับแถว 0 ของตารางข้อมูลพนักงานได้แล้วGet-Item 0PSPath : AccessDB::C:\PS\Northwind.mdb\Employees\0 PSParentPath : AccessDB::C:\PS\Northwind.mdb\Employees PSChildName : 0 PSDrive : mydb PSProvider : System.Management.Automation.ProviderInfo PSIsContainer : False Data : System.Data.DataRow RowNumber : 0ใช้ cmdlet
Get-Itemอีกครั้งเพื่อดึงข้อมูลพนักงานสำหรับรายการในแถว 0(Get-Item 0).dataEmployeeID : 1 LastName : Davis FirstName : Sara Title : Sales Representative TitleOfCourtesy : Ms. BirthDate : 12/8/1968 12:00:00 AM HireDate : 5/1/1992 12:00:00 AM Address : 4567 Main Street Apt. 2A City : Buffalo Region : NY PostalCode : 98052 Country : USA HomePhone : (206) 555-9857 Extension : 5467 Photo : EmpID1.bmp Notes : Education includes a BA in psychology from Colorado State University. She also completed "The Art of the Cold Call." Nancy is a member of Toastmasters International. ReportsTo : 2
ดูเพิ่มเติม
การสร้างผู้ให้บริการ Windows PowerShell
ออกแบบผู้ให้บริการ Windows PowerShell ของคุณ
การขยายประเภทวัตถุและการจัดรูปแบบ
ใช้ผู้ให้บริการคอนเทนเนอร์ Windows PowerShell
วิธีลงทะเบียน Cmdlets ผู้ให้บริการ และแอปพลิเคชันโฮสต์
คู่มือโปรแกรมเมอร์ Windows PowerShell
Windows PowerShell SDK