我的代码有问题,我找不到(由于服务器问题不同,我无法调试)。我试图运行一个设置文件夹权限的命令,但我也想以不同的用户身份运行它。因此,当我启动我的程序并且它到达这一点时,它继续(打开一个命令控制台)并且没有授予任何权限,或者它冻结了我的表单,没有打开控制台或授予了权限。
所以在第一种情况下我使用这段代码:
string grantAccess = @"runas /savecred /user:domain\user1 ""icacls \\ext.kfg\dfs\GroupFTP\Data_Exchange\" + login + @" /grant: GFK\D-RE-AP-RT-GIM-USER:(OI)(CI)(RC,RD,WD,AD,REA,WEA,X,DC,RA,WA)""";
Process.Start("cmd.exe", grantAccess);
和我使用的第二种情况:
string grantAccess = @"/savecred ""icacls \\ext.gfk\dfs\GroupFTP\Data_Exchange\" + login + @" /grant: GFK\D-RE-AP-RT-GIM-USER:(OI)(CI)(RC,RD,WD,AD,REA,WEA,X,DC,RA,WA)""";
Process processGrant = new Process();
ProcessStartInfo startInfoGrant = new ProcessStartInfo();
startInfoGrant.Domain = "domain";
startInfoGrant.UserName = "user1";
startInfoGrant.Password = userPassword; // this is a SecureString
startInfoGrant.FileName = "cmd.exe";
startInfoGrant.Verb = "runas"; // I've tried it with or without this line
startInfoGrant.Arguments = grantAccess;
startInfoGrant.CreateNoWindow = true;
startInfoGrant.UseShellExecute = false;
processGrant.StartInfo = startInfoGrant;
processGrant.Start();
processGrant.WaitForExit();
有人可以告诉我它为什么不起作用吗?