using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Net;
using
System.IO;
using
System.DirectoryServices;
using
System.Collections;
using
System.Diagnostics;
using
System.Management;
namespace
GrantUserWritableFile
...
{ public class GrantUser ...{ private string directoryInstr = ""; private string directoryPrtfl = ""; private string hostName = ""; public string DomainName = "localhost"; private string userName = ""; private string syspath = ""; private string DriverName = ""; public static void Main(string[] args) ...{ GrantUser gu = new GrantUser(); gu.getInfo(); Console.WriteLine("Grant folder to user complited!"); } public void getInfo() ...{ DirectoryEntry de = new DirectoryEntry("IIS://Localhost/W3SVC/1/ROOT/RPA"); this.directoryInstr = (string)de.Properties["Path"].Value + "/InstrumentInfo/ChartImages"; this.directoryPrtfl = (string)de.Properties["Path"].Value + "/PortfolioView/ChartImages"; //this.directoryInstr = "C:/1"; DriverName = de.Properties["Path"].Value.ToString().Substring(0, 2); this.hostName = Dns.GetHostName().ToString(); this.userName = "IUSR_" + hostName; this.syspath = Environment.SystemDirectory + "/"; ManagementObjectSearcher DiskSearch = new ManagementObjectSearcher(new SelectQuery("Select * from Win32_LogicalDisk")); ManagementObjectCollection moDiskCollection = DiskSearch.Get(); foreach (ManagementObject mo in moDiskCollection) ...{ if ((mo.SystemProperties["FileSystem"].Value.ToString().ToUpper() == "NTFS") && (DriverName == mo.SystemProperties["name"].Value.ToString())) ...{ this.SetFolder(directoryInstr, userName); this.SetFolder(directoryPrtfl, userName); } } } public void SetFolder(string PathName,string userName) ...{ //if (Directory.Exists(PathName) == true) //{ // Directory.Delete(PathName, true); //} //Directory.CreateDirectory(PathName); Process process = new Process(); process.StartInfo.FileName = syspath + "cmd.exe"; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.CreateNoWindow = false; process.Start(); process.StandardInput.WriteLine(String.Format("cacls {0} /t /e /g {1}:f", PathName, userName)); process.StandardInput.WriteLine("exit"); process.WaitForExit(); process.Close(); } }}
转载请注明原文地址: https://ibbs.8miu.com/read-21084.html