Copy file to remote computer using remote admin credentials

Correct me if I’m wrong, but you can use LogonUser to impersonate a local group also not only domain accounts.
by: Shay Erlichmen

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Security.Permissions;
public class Form1
	[DllImport("advapi32.DLL", SetLastError = true)]
	public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
	private void Button1_Click(System.Object sender, System.EventArgs e)
		IntPtr admin_token = default(IntPtr);
		WindowsIdentity wid_current = WindowsIdentity.GetCurrent();
		WindowsIdentity wid_admin = null;
		WindowsImpersonationContext wic = null;
		try {
			MessageBox.Show("Copying file...");
			if (LogonUser("Local Admin name", "Local computer name", "pwd", 9, 0, ref admin_token) != 0) {
				wid_admin = new WindowsIdentity(admin_token);
				wic = wid_admin.Impersonate();
				System.IO.File.Copy("C:\\right.bmp", "\\\\\\testnew\\right.bmp", true);
				MessageBox.Show("Copy succeeded");
			} else {
				MessageBox.Show("Copy Failed");
		} catch (System.Exception se) {
			int ret = Marshal.GetLastWin32Error();
			MessageBox.Show(ret.ToString(), "Error code: " + ret.ToString());
		} finally {
			if (wic != null) {

Referenced by:

3 thoughts on “Copy file to remote computer using remote admin credentials

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s