1

ユーザー/全員に自分のサービスへのアクセス許可を付与したい。subinaclを使用してそのようなアクセス許可を付与することはできますが、Installerクラスでコーディングする方法を使用していませんか?

また、コンプのすべてのユーザーに権限を付与したい場合、「Everyone」をユーザーとして使用できますか?

システムにはユーザーがいません。つまり、ユーザーがいないXPでは、同じように処理する方法です。

できるだけ早く助けてください。どんな助けでも大歓迎です。

編集: 許可を与えるために私はこれを見つけました:http ://ss64.com/nt/subinacl.html そしてこれ 。cmdを試してみましたが、うまくいきました。私はそれを実現するために次のように書いた:

        WshShell shell = new WshShellClass();
        object wf = IWshRuntimeLibrary.WshWindowStyle.WshHide;
        //object ws = IWshRuntimeLibrary.
        if (allusers)
            shell.Run("subinacl /SERVICE \"OpenVPNService\" /Grant=Everyone=TO", ref wf, true);
        else
            shell.Run("subinacl /SERVICE \"OpenVPNService\" /Grant="+ Environment.UserName +"=TO", ref wf, true);
        shell = null;

最後のパラメータは問題を与えています。refobjのみを渡す必要があります。そして、それはウィンドウを表示するかどうかを表します。ここをチェックしてくださいエラー「引数3:「bool」から「refobject」に変換できません。3番目のパラメータで何を指定するかはわかりません。

4

2 に答える 2

0

ユーザー名とパスワードをnullに設定すると、「ユーザー」(つまり、LocaSystem、LocalService、NetworkService)を除くすべてのアカウントの場合、「すべてのユーザー」を意味します。またはそうMSDNは言う:

http://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceprocessinstaller.account.aspx

http://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceaccount.aspx

例えば:

namespace WindowsService
{
    [RunInstaller(true)]
    public class WindowsServiceInstaller : Installer
    {
        public WindowsServiceInstaller()
        {
            ServiceProcessInstaller serviceProcessInstaller = 
                               new ServiceProcessInstaller();
            ServiceInstaller serviceInstaller = new ServiceInstaller();

            serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
            serviceProcessInstaller.Username = null;
            serviceProcessInstaller.Password = null;

            serviceInstaller.DisplayName = "My New C# Windows Service";
            serviceInstaller.StartType = ServiceStartMode.Automatic;

            serviceInstaller.ServiceName = "My Windows Service";

            this.Installers.Add(serviceProcessInstaller);
            this.Installers.Add(serviceInstaller);
        }
    }
}
于 2011-10-21T09:57:01.713 に答える
0

私はプロセスを使用して、物事をうまくやり遂げました。ありがとうございます。

于 2011-10-21T14:24:51.470 に答える