Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jika Anda mencoba menghapus lebih dari satu item dalam koleksi, Anda mungkin menemukan bahwa beberapa item tidak dihapus. Anda tidak dapat mengulangi koleksi saat menghapus item, karena ketika Anda menghapus elemen dari koleksi, penunjuk koleksi dipindahkan ke elemen berikutnya. Misalnya, upaya untuk menghapus semua item dari koleksi menghasilkan penghapusan setiap item lainnya. Anda mungkin melihat masalah ini saat menghapus item dengan metode SWbemQualifierSet.Remove atau metode SWbemPropertySet.Remove. Anda dapat menghindari masalah ini dengan melakukan iterasi pada koleksi dan memasukkan nama-nama item yang akan dihapus dalam sebuah array. Anda kemudian dapat melakukan iterasi pada array dan menghapus item yang disebutkan dalam array. Koleksi, seperti SWbemNamedValueSet, SWbemPrivilegeSet, dan SWbemRefresher, juga memiliki metode yang menghapus semua item dalam kontainer penyegaran.
Skrip berikut ini menggambarkan cara menghapus beberapa item dari koleksi.
Const WBEM_CIMTYPE_STRING = 8 ' Value for string data type
Dim names()
Redim names (0)
set objSWbemService = GetObject("winmgmts:root\default")
set objClass = ObjSWbemService.Get()
Wscript.Echo "Creating class NewClass"
objClass.Path_.Class = "NewClass"
For i = 1 to 5
objClass.Properties_.Add "Prop" & i, WBEM_CIMTYPE_STRING
Next
objClass.Put_
Getprops()
' Get all the property names in an array
For Each oprop in objClass.properties_
Redim Preserve names(Ubound(names)+1)
names(Ubound(names)-1) = oprop.name
Next
Wscript.Echo "Remove first 3 properties using array of names:"
For i = Lbound(names) to Ubound(names)-1
If (i < 3) Then
Wscript.Echo "Removing " & names(i)
objClass.Properties_.Remove names(i)
End If
Next
objClass.Put_
Wscript.Echo "Result:"
Getprops()
Sub Getprops()
Wscript.Echo "Number of properties = " _
& objClass.Properties_.Count
For Each oprop in objClass.Properties_
Wscript.Echo oprop.name
Next
End Sub
Anda tidak dapat menghapus properti dan kualifikasi dalam instans kelas atau kelas turunan yang memiliki properti yang diwariskan. Upaya penghapusan semacam itu menimbulkan kesalahan dan properti atau kualifikasi tidak dihapus; sebagai gantinya, WMI mengatur ulang properti atau kualifikasi ke nilai default. Dalam kasus kelas turunan dengan properti yang diwariskan, WMI mengatur ulang properti yang diwariskan ke nilai default properti di kelas induk.
Untuk informasi selengkapnya, lihat Memanipulasi Informasi Kelas dan Instansi, Mengakses Koleksi, dan Menghapus Satu Item dari Koleksi.