次のコードは私の開発用コンピューターで機能し、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);
ただし、ターゲット コンピューターでは、例外を発生させずに実行され、登録されません。ここで何が欠けていますか?
プロセスが完了するまで待つ必要がありますか?
両方のコンピューターが管理者としてログインされ、昇格された権限でコードが実行されます。