한정자는 WMI 개체, 메서드 또는 속성에 대한 자세한 정보를 제공하는 태그입니다. 경우에 따라 한정자에서 저장된 데이터에 액세스해야 할 수 있습니다. 예를 들어 일반적인 작업은 공급자가 해당 메서드에 대한 Implemented 한정자를 검색하여 메서드를 구현하는지 확인하는 것입니다. 자세한 내용은 WMI 한정자 및 한정자 추가을 참조하세요.
먼저 개체를 검색한 다음 다른 속성과 마찬가지로 한정자를 검사하여 PowerShell의 WMI 개체에서 한정자를 검색할 수 있습니다.
PowerShell을 사용하여 한정자를 검색하는 방법
Get-WmiObject를 사용하여 한정자를 보려는 개체를 검색하고, 그 후 한정자 속성을 통해 한정자에 액세스하십시오.
$myDisk = get-wmiObject Win32_LogicalDisk $myDisk.qualifiers #or get-wmiObject Win32_LogicalDisk | format-list qualifiers #or $myDisk = get-wmiObject Win32_LogicalDisk foreach ($qual in $myDisk.Qualifiers) { $qual }자세한 내용은 WMI 인스턴스을 검색하는 방법을 참조하세요.
먼저 개체를 검색한 다음 컬렉션으로 한정자를 검사하여 C#의 WMI 인스턴스에서 한정자를 검색할 수 있습니다.
C#(Microsoft.System.Management) 사용하여 한정자를 검색하려면
지정된 클래스 이름 및 네임스페이스를 사용하여 CimInstance 개체를 만들어 한정자를 보려는 클래스를 검색합니다.
using Microsoft.Management.Infrastructure; ... CimSession mySession = CimSession.Create("localhost"); CimInstance diskDrive = new CimInstance(className, Namespace); diskDrive.CimInstanceProperties.Add(CimProperty.Create("DeviceID", "C:", CimFlags.Key)); CimInstance myDrive = mySession.GetInstance(Namespace, diskDrive);자세한 내용은 WMI 인스턴스 검색을 참조하세요.
클래스 한정자는 CimInstance.CimClass.CimClassQualifiers에서 검색할 수 있으며, 속성 한정자는 CimInstance.CimClass.CimClassProperties에서, 메서드 한정자는 CimInstance.CimClass.CimClassMethods에서 검색할 수 있습니다.
Console.WriteLine("Class: " + myDrive.ToString()); foreach (CimQualifier qualifier in myDrive.CimClass.CimClassQualifiers) { Console.WriteLine(" " + qualifier.Name.ToString() + ": " + qualifier.Value.ToString()); } foreach (CimPropertyDeclaration property in myDrive.CimClass.CimClassProperties) { Console.WriteLine(property.Name.ToString()); foreach (CimQualifier qualifier in property.Qualifiers) { Console.WriteLine(" " + qualifier.Name.ToString() + ": " + qualifier.Value.ToString()); } } foreach (CimMethodDeclaration method in myDrive.CimClass.CimClassMethods) { Console.WriteLine(method.Name.ToString()); foreach (CimQualifier qualifier in method.Qualifiers) { Console.WriteLine(" " + qualifier.Name.ToString() + ": " + qualifier.Value.ToString()); } }자세한 내용은 WMI 인스턴스검색 방법을 참조하세요.
먼저 개체를 검색한 다음 컬렉션으로 한정자를 검사하여 C#에서 WMI 개체의 한정자를 검색할 수 있습니다.
메모
System.Management는 WMI에 액세스하는 데 사용된 원래 .NET 네임스페이스였습니다. 그러나 이 네임스페이스의 API는 일반적으로 느리며, 상대적으로 더 현대적인 Microsoft.Management.Infrastructure 네임스페이스의 API에 비해 성능이 떨어지고 확장성이 좋지 않습니다.
C#(System.Management)을 사용하여 한정자를 검색하는 방법
ManagementObject사용하여 한정자를 보려는 개체를 검색합니다.
using System.Management; ... ManagementObject myDisk = new ManagementObject("Win32_LogicalDisk.DeviceID='C:'");자세한 내용은 WMI 인스턴스 검색을 참조하세요.
한정자를 QualifierDataCollection에 추가하고 QualifierData 값을 순회합니다.
QualifierDataCollection myQualifiers = myDisk.Qualifiers; foreach (QualifierData qd in myQualifiers) { Console.WriteLine(qd.Name + ": " + qd.Value); } Console.ReadLine();WMI 인스턴스 검색에 대한 자세한 내용은 참조하세요.
다음 절차에서는 VBScript를 사용하여 한정자를 검색하는 방법을 설명합니다.
VBScript 사용하여 한정자를 검색하려면
다음 예제와 같이 한정자를 확인하려는 개체를 가져옵니다.
Set Process = GetObject("winmgmts:Win32_Process")개체를 검색하는 가장 일반적인 방법은 GetObject 메서드를 사용하는 것입니다. 자세한 내용은 WMI 인스턴스를 검색하는 방법에 대해을 참조하세요.
다음 예제와 같이 SWbemObject.Qualifiers_ 속성을 통해 개체의 한정자 액세스:
for each Qualifier in Process.Qualifiers_ WScript.Echo " " & Qualifier.Name next
다음 코드 예제에서는 Win32_Process 개체의 모든 한정자에 액세스하는 방법을 설명합니다.
On Error Resume Next
Set Process = GetObject("winmgmts:Win32_Process")
WScript.Echo ""
WScript.Echo "Class name is", Process.Path_.Class
'Get the qualifiers
WScript.Echo ""
WScript.Echo "Qualifiers:"
WScript.Echo ""
for each Qualifier in Process.Qualifiers_
WScript.Echo " " & Qualifier.Name
next
if Err <> 0 Then
WScript.Echo Err.Description
Err.Clear
End if
다음 절차에서는 C++를 사용하여 한정자를 검색하는 방법을 설명합니다.
C++를 사용하여 한정자를 검색하려면
한정자를 보려는 개체를 검색합니다.
개체를 검색하는 가장 일반적인 방법은 GetObject또는 getObjectAsync호출을 사용하는 것입니다. 자세한 내용은 WMI 클래스 또는 인스턴스 데이터검색을 참조하세요.
IWbemClassObject::GetPropertyQualifierSet 또는 IWbemClassObject::GetMethodQualifierSet 메서드를 호출하여 지정된 속성에 대한 한정자 집합을 검색합니다.
반환된 IWbemQualifierSet 인터페이스를 통해 개체의 한정자에 액세스할 수 있습니다.