'A WMI object is uniquely defined by a set of properties
which constitute its keys. Lazily retrieves the keys for this
instance or class.
:returns: list of key property names'

def _get_keys(self):

    if (self._keys is None):
        _set(self, '_keys', [])
        for property in self.ole_object.Properties_:
            for qualifier in property.Qualifiers_:
                if ((qualifier.Name == 'key') and qualifier.Value):
                    self._keys.append(property.Name)
    return self._keys
