0

次のコードは私の開発用コンピューターで機能し、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);

ただし、ターゲット コンピューターでは、例外を発生させずに実行され、登録されません。ここで何が欠けていますか?

プロセスが完了するまで待つ必要がありますか?

両方のコンピューターが管理者としてログインされ、昇格された権限でコードが実行されます。

4

1 に答える 1

0

問題は、ターゲット コンピューターがドイツ語で、全員が「Jeder」であることです。以下のコードで使用する前に、Everyone の名前を動的に見つける必要がありました。

var sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
var account = (NTAccount) sid.Translate(typeof(NTAccount)); 
string everyoneName = account.ToString();
于 2013-08-16T11:07:09.870 に答える