Windowsサービスとセットアッププロジェクトがあります。セットアッププロジェクトを右クリックして[インストール]をクリックすると、プロンプトが表示されます
私は以下の組み合わせを試しました
。\ MyUserName MyDomain\MyUserName
しかし、それは次のエラーで戻ってきます
アカウント名とセキュリティIDの間のマッピングは行われませんでした
ServiceProcessInstaller
namespace TestService
{
[RunInstaller(true)]
public partial class ProjectInstaller : System.Configuration.Install.Installer
{
public ProjectInstaller()
{
InitializeComponent();
this.serviceProcessInstaller1.Account = ServiceAccount.User;
this.serviceProcessInstaller1.Username = @".\MyUserName"; //username;
this.serviceProcessInstaller1.Password = "123456"; // password;
// Add installers to collection. Order is not important.
}
private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
{
}
private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
{
}
}
}
正直なところ、コードで設定した場合、なぜユーザー名とパスワードの入力を求められるのかさえわかりません...
次の手順(特に手順5)を実行したかどうかをクロスチェックしてください。
Windowsサービスプロジェクトを作成したら、サービスクラスのデザインビューに移動します(service1.csクラスをダブルクリックするだけです)。
デザインビューで右クリックし、[インストーラーの追加]を選択します。これにより、ProjectInstaller.csという名前のインストーラークラスが作成されます。 ProjectInstaller.csがない場合、またはProjectInstaller.csの構成でエラーが発生した場合、サービスコンソールにサービスが表示されない可能性があります。
ProjectInstaller.csのデザインビューに移動すると、そこに2つのインストーラーがあります->
a .ServiceInstaller1
b .ServiceProcessInstaller1
ServiceInstaller1を右クリックして、[プロパティ]タブに移動します
a。サービスコンソールにサービスを表示する名前でServiceNameを編集します。
b .StartTypeを自動に変更します。
ServiceProcessInstaller1を右クリックして、[プロパティ]タブに移動します
a。アカウントをLocalServiceに変更します
保存してお試しください。
DOMAIN\USERNAMEの形式はドメインに対して正しいですが、ローカルユーザー名を使用している場合は、ドメイン名にコンピューター名を使用してください。ホスト名がFOOで、ユーザー名がBARの場合、FOO\BARを使用します。
ユーザーアカウントのエスカレーションが許可されていると確信していますよね?ネットワークとローカルセキュリティポリシーを介してそれを禁止することは可能です。
それが機能しない場合は、管理者アカウントで試してみてください。
この状況の解決策を見つけました----ただし、VM WARE cloned 2008r2'sを使用しています。
次の手順を使用して、問題のServer 2008R2のSIDを変更します。
これは私がエラーを取り除くのを助けました。
InitializeComponentメソッドインストーラーに以下の構成コードを追加するだけです。
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
ServiceProcessInstaller1を右クリックして、[プロパティ]タブに移動します
Change the account to **LocalService**
これは私のために働いた