我的代码有问题,我找不到(由于不同的服务器问题,我无法调试)。我正在尝试运行一个设置文件夹权限的命令,但我也想以不同的用户身份运行它。因此,当我启动我的程序并到达这一点时,它要么继续(打开命令控制台)并且没有授予权限,要么冻结我的表单并且没有打开控制台或授予权限。
因此,在第一种情况下,我使用以下代码:
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();
有人可以告诉我为什么它不起作用吗?