SWbemServices.Delete 메서드
SWbemServices 개체의 Delete 메서드는 개체 경로에 지정된 클래스 또는 인스턴스를 삭제합니다. 현재 네임스페이스에서만 개체를 삭제할 수 있습니다.
동적 공급자가 클래스 또는 인스턴스를 제공하는 경우 공급자가 클래스 또는 인스턴스 삭제를 지원하지 않는 한 이 개체를 삭제할 수 없습니다.
이 메서드는 동기 모드에서 호출됩니다. 자세한 내용은 메서드 호출을 참조하세요.
이 구문에 대한 설명은 스크립팅 API의 문서 규칙을 참조하세요.
구문
SWbemServices.Delete( _
ByVal strObjectPath, _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ] _
)
매개 변수
-
strObjectPath
-
필수 요소. 삭제하려는 개체의 개체 경로를 포함하는 문자열입니다. 자세한 내용은 WMI 개체의 위치 설명을 참조하세요.
-
iFlags [선택 사항]
-
예약되어 있습니다. 이 값은 0이어야 합니다.
-
objWbemNamedValueSet [optional]
-
일반적으로 이는 정의되지 않습니다. 그렇지 않으면 요청을 서비스하는 공급자가 사용할 수 있는 컨텍스트 정보를 나타내는 요소가 있는 SWbemNamedValueSet 개체입니다. 그러한 정보를 지원하거나 요구하는 공급자는 인식된 값 이름, 값의 데이터 형식, 허용된 값 및 의미 체계를 문서화해야 합니다.
반환 값
이 메서드는 값을 반환하지 않습니다.
오류 코드
Delete 메서드가 완료되면 Err 개체에 다음 목록의 오류 코드 중 하나가 포함될 수 있습니다.
-
wbemErrAccessDenied - 2147749891(0x80041003)
-
현재 컨텍스트에는 개체를 삭제할 수 있는 적절한 보안 권한이 없습니다.
-
wbemErrFailed - 2147749889(0x80041001)
-
알 수 없는 오류입니다.
-
wbemErrInvalidClass - 2147749904(0x80041010)
-
지정된 클래스가 없습니다.
-
wbemErrInvalidOperation - 2147749910(0x80041016)
-
개체를 삭제할 수 없습니다.
-
wbemErrNotFound - 2147749890(0x80041002)
-
개체가 없습니다.
-
wbemErrOutOfMemory - 2147749894(0x80041006)
-
메모리가 부족하여 작업을 완료할 수 없습니다.
설명
SWbemServices.Delete 메서드는 개체의 키 속성에 값이 지정되지 않은 경우 사용할 수 있습니다. 이 메서드는 입력으로 개체 경로만 필요하기 때문입니다. 이 메서드는 키 값이 부족하여 SWbemObject.Delete_가 실패하는 경우에 사용할 수 있습니다. 개체가 SWbemObject.Put_을 통해 WMI에 커밋된 경우 호출을 통해 SWbemObjectPath 개체를 가져옵니다.
예제
다음 예제에서는 새 클래스를 만들고 키가 아닌 속성을 추가하고 리포지토리에 새 클래스를 쓰며 새 클래스 개체의 경로를 표시합니다. 그런 다음 스크립트는 새 클래스의 인스턴스를 생성하고 인스턴스를 쓰며 경로를 표시합니다. 스크립트는 클래스를 삭제하여 리포지토리에서 클래스와 해당 인스턴스를 모두 삭제합니다. WMI 클래스 및 인스턴스에 대한 자세한 내용은 클래스 및 인스턴스 정보 조작 및 일반 정보 모델을 참조하세요.
wbemCimtypeSint32 = 3
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"
' Add a property
' Integer property
objClass.Properties_.Add "iProperty", wbemCimtypeSint32
objClass.Properties_("iProperty").Qualifiers_.Add "key", TRUE
' Write the new class to the root\default namespace in the repository
Set objClassPath = objClass.Put_
wscript.echo objClassPath.Path
'Create an instance of the new class using SWbemObject.SpawnInstance
Set objNewInst = GetObject( _
"Winmgmts:root\default:NewClass").SpawnInstance_
objNewInst.iProperty = 1000
' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
wscript.echo objInstancePath.Path
' Remove the new class and instance from the repository
objSWbemService.Delete("NewClass")
If Err <> 0 Then
WScript.Echo Err.Number & " " & Err.Description
Else
WScript.Echo "Delete succeeded"
End If
' Release SwbemServices object
Set objSWbemService = Nothing
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista |
지원되는 최소 서버 |
Windows Server 2008 |
헤더 |
|
유형 라이브러리 |
|
DLL |
|
CLSID |
CLSID_SWbemServices |
IID |
IID_ISWbemServices |