using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp30
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
IntPtr admin_token = default(IntPtr);
WindowsIdentity wid_admin = null;
WindowsImpersonationContext wic = null;
//在程序中模拟域帐户登录
if (WinLogonHelper.LogonUser("gtang", "pcspecialties.com", "eric", 9, 0, ref admin_token) != 0)
{
using (wid_admin = new WindowsIdentity(admin_token))
{
using (wic = wid_admin.Impersonate())
{
//假定要操作的文件路径是10.0.250.11上的d:\txt.txt文件可以这样操作
//FileInfo file = new FileInfo(@"\\10.0.250.11\d$\txt.txt");
string indate = DateTime.Now.ToString("yy-MM-dd");
//string pnl_avi_path = @"//192.168.1.20/group/Engineering/Gerber/" + indate;
string pnl_avi_path = @"//192.168.1.20/group/Engineering/AutoMI/文件一键上传/" + indate;
//想做什么操作就可以做了
System.IO.Directory.CreateDirectory(pnl_avi_path);
//System.IO.Directory.Delete(pnl_avi_path);
}
}
}
}
public class WinLogonHelper
{
/// <summary>
/// 模拟windows登录域
/// </summary>
[DllImport("advapi32.DLL", SetLastError = true)]
public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
public static int LogonUser(ref IntPtr phToken)
{
return WinLogonHelper.LogonUser("gtang", "pcspecialties.com", "eric", 2, 0, ref phToken);
}
}
private void button2_Click(object sender, EventArgs e)
{
string info = "";
try
{
IntPtr admin_token = IntPtr.Zero;
if (WinLogonHelper.LogonUser(ref admin_token) != 0)
{
using (WindowsIdentity wid_admin = new WindowsIdentity(admin_token))
{
using (WindowsImpersonationContext wic = wid_admin.Impersonate())
{
//string[] files = Directory.GetFiles(@"\\192.168.11.11\ShareFiles", "*.tgz"); //获取网盘tgz文件清单
//File.Copy(@"\\192.168.11.11\aa.zip", @"e:\a.zip");//将网络盘ZIP拷贝
string indate = DateTime.Now.ToString("yy-MM-dd");
string pnl_avi_path = @"//192.168.1.20/group/Engineering/Gerber/" + indate;
//System.IO.Directory.CreateDirectory(pnl_avi_path);
System.IO.Directory.Delete(pnl_avi_path);
}
}
}
else
{
info = $"无文件访问权限";
}
}
catch (Exception ex)
{
info = $"异常:\n\r{ex.Message}";
}
}
}
}