summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Mundrawala <jdmundrawala@gmail.com>2015-05-08 09:28:27 -0700
committerJay Mundrawala <jdmundrawala@gmail.com>2015-05-15 08:51:19 -0700
commite6c9fd4f30a66fc6e4cfc1b1c32937fa40124988 (patch)
tree53f72d6431227d392739034a28adfd3bb6697194
parent1990732da929e288b5f4ff309a5273a606dfa3bc (diff)
downloadchef-e6c9fd4f30a66fc6e4cfc1b1c32937fa40124988.tar.gz
NetUserDel uses ffi instead in win32-api
-rw-r--r--lib/chef/util/windows/net_user.rb7
-rw-r--r--lib/chef/win32/api/net.rb6
-rw-r--r--lib/chef/win32/user.rb14
3 files changed, 24 insertions, 3 deletions
diff --git a/lib/chef/util/windows/net_user.rb b/lib/chef/util/windows/net_user.rb
index 5da0fc3835..648871b1f3 100644
--- a/lib/chef/util/windows/net_user.rb
+++ b/lib/chef/util/windows/net_user.rb
@@ -213,9 +213,10 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
end
def delete
- rc = NetUserDel.call(nil, @name)
- if rc != NERR_Success
- raise ArgumentError, get_last_error(rc)
+ begin
+ Chef::ReservedNames::Win32::NetUser::net_user_del(nil, @username)
+ rescue Chef::Exceptions::Win32APIError => e
+ raise ArgumentError, e
end
end
diff --git a/lib/chef/win32/api/net.rb b/lib/chef/win32/api/net.rb
index 91d665c49e..72caf46628 100644
--- a/lib/chef/win32/api/net.rb
+++ b/lib/chef/win32/api/net.rb
@@ -192,6 +192,12 @@ class Chef
#);
safe_attach_function :NetUserSetInfo, [:LPCWSTR, :LPCWSTR, :DWORD, :LPBYTE, :LPDWORD], :DWORD
+#NET_API_STATUS NetUserDel(
+# _In_ LPCWSTR servername,
+# _In_ LPCWSTR username
+#);
+ safe_attach_function :NetUserDel, [:LPCWSTR, :LPCWSTR], :DWORD
+
end
end
end
diff --git a/lib/chef/win32/user.rb b/lib/chef/win32/user.rb
index 8b28bf8b29..41a8517952 100644
--- a/lib/chef/win32/user.rb
+++ b/lib/chef/win32/user.rb
@@ -173,6 +173,20 @@ END
end
end
+ def self.net_user_del(server_name, user_name)
+ server_name = wstring(server_name)
+ user_name = wstring(user_name)
+
+ rc = NetUserDel(server_name, user_name)
+ if rc != NERR_Success
+ if Chef::ReservedNames::Win32::Error.get_last_error != 0
+ Chef::ReservedNames::Win32::Error.raise!
+ else
+ net_api_error!(rc)
+ end
+ end
+ end
+
def self.net_local_group_add_member(server_name, group_name, domain_user)
server_name = server_name.to_wstring if server_name
group_name = group_name.to_wstring