다음을 통해 공유


SWbemObject.Delete_ 메서드

SWbemObject 개체의 Delete_ 메서드는 현재 클래스 또는 현재 인스턴스를 삭제합니다. 동적 공급자가 클래스 또는 인스턴스를 제공하는 경우 공급자가 클래스 또는 인스턴스 삭제를 지원하지 않는 한 이 개체를 삭제할 수 없는 경우가 있습니다. 이 구문에 대한 설명은 스크립팅 API의 문서 규칙을 참조하세요.

구문

SWbemObject.Delete_( _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ] _
)

매개 변수

iFlags [in, optional]

예약되어 있으며 지정된 경우 0이어야 합니다.

objwbemNamedValueSet [in, optional]

이 매개 변수는 일반적으로 정의되지 않습니다. 그렇지 않으면 요청을 서비스하는 공급자가 사용할 수 있는 컨텍스트 정보를 나타내는 요소가 있는 SWbemNamedValueSet 개체입니다. 그러한 정보를 지원하거나 요구하는 공급자는 인식된 값 이름, 값의 데이터 형식, 허용된 값 및 의미 체계를 문서화해야 합니다.

반환 값

이 메서드는 값을 반환하지 않습니다.

오류 코드

Delete_ 메서드가 완료되면 Err 개체에 다음 목록의 오류 코드 중 하나가 포함될 수 있습니다.

wbemErrAccessDenied - 2147749891(0x80041003)

현재 컨텍스트에는 개체를 삭제할 수 있는 적절한 보안 권한이 없습니다.

wbemErrFailed - 2147749889(0x80041001)

알 수 없는 오류입니다.

wbemErrInvalidClass - 2147749904(0x80041010)

지정된 클래스가 없습니다.

wbemErrInvalidOperation - 2147749910(0x80041016)

개체를 삭제할 수 없습니다.

wbemErrNotFound - 2147749890(0x80041002)

개체가 없습니다.

wbemErrOutOfMemory - 2147749894(0x80041006)

메모리가 부족하여 작업을 완료할 수 없습니다.

설명

SWbemObject의 새 인스턴스가 만들어졌지만 키 속성에 대한 값이 제공되지 않으면 Delete_ 메서드가 실패합니다. WMI(Windows Management Instrumentation)는 GUID(Globally Unique Identifier) 값을 자동으로 생성하지만 GUID 값은 SWbemObject.Delete_에서 허용되지 않습니다. 이 경우 개체 경로를 사용하는 SWbemServices.Delete가 작동합니다. SWbemObjectPath 개체는 개체가 WMI에 커밋된 후 SWbemObject.Put_ 메서드에 의해 반환됩니다.

예제

다음 예제에서는 새 클래스를 만들고 키 속성을 추가하고 리포지토리에 새 클래스를 쓰며 새 클래스 개체의 경로를 표시합니다. 그런 다음 스크립트는 새 클래스의 인스턴스를 생성하고 이를 쓰며 경로를 표시합니다. 스크립트는 단순히 클래스를 삭제하여 리포지토리에서 클래스와 해당 인스턴스를 모두 삭제합니다.

On Error Resume Next
wbemCimtypeString = 8             ' String datatype
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"

' Add a property
' String property
objClass.Properties_.add "PropertyName", wbemCimtypeString 
' Make the property a key property 
objClass.Properties_("PropertyName").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.PropertyName = "My Instance"

' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
wscript.echo objInstancePath.Path

' Remove the new class and instance from the repository
objClass.Delete_()
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
헤더
Wbemdisp.h
유형 라이브러리
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject