wrapper around a subset of the NetGroup* APIs. nothing Chef specific, but not complete enough to be its own gem, so util for now.
# File lib/chef/util/windows/net_group.rb, line 80 def local_add rc = NetLocalGroupAdd.call(nil, 0, pack_str(@name), nil) if rc != NERR_Success raise ArgumentError, get_last_error(rc) end end
# File lib/chef/util/windows/net_group.rb, line 91 def local_add_members(members) modify_members(members, NetLocalGroupAddMembers) end
# File lib/chef/util/windows/net_group.rb, line 95 def local_delete rc = NetLocalGroupDel.call(nil, @name) if rc != NERR_Success raise ArgumentError, get_last_error(rc) end end
# File lib/chef/util/windows/net_group.rb, line 48 def local_get_members group_members = [] handle = 0.chr * PTR_SIZE rc = ERROR_MORE_DATA while rc == ERROR_MORE_DATA ptr = 0.chr * PTR_SIZE nread = 0.chr * PTR_SIZE total = 0.chr * PTR_SIZE rc = NetLocalGroupGetMembers.call(nil, @name, 1, ptr, -1, nread, total, handle) if (rc == NERR_Success) || (rc == ERROR_MORE_DATA) ptr = ptr.unpack('L')[0] nread = nread.unpack('i')[0] members = 0.chr * (nread * (PTR_SIZE * 3)) #nread * sizeof(LOCALGROUP_MEMBERS_INFO_1) memcpy(members, ptr, members.size) #3 pointer fields in LOCALGROUP_MEMBERS_INFO_1, offset 2*PTR_SIZE is lgrmi1_name nread.times do |i| offset = (i * 3) + 2 member = lpwstr_to_s(members, offset) group_members << member end NetApiBufferFree(ptr) else raise ArgumentError, get_last_error(rc) end end group_members end
Generated with the Darkfish Rdoc Generator 2.