以下代码在我的开发计算机中工作,我可以看到该服务是使用netsh show urlacl注册的。
ProcessStartInfo netshPSI = new ProcessStartInfo();
// Windows XP SP3, Vista SP2, 7 SP1 or 8
netshPSI.FileName = "netsh.exe";
netshPSI.Arguments = "http add urlacl url=http://+:8731/Service1 user=Everyone";
netshPSI.CreateNoWindow = true;
Process.Start(netshPSI);
但是,在目标计算机中,它执行时不会引发异常,也不会注册。我在这里错过了什么?
我应该等待流程完成吗?
这两台计算机都以管理员身份登录,并且代码是以提升的权限执行的。
问题是目标计算机是德国人,每个人都是"Jeder"。在使用以下代码之前,我必须动态地找到Everyone的名称:
var sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
var account = (NTAccount) sid.Translate(typeof(NTAccount));
string everyoneName = account.ToString();