1

次の問題があります。リモート マシンの IIS にアプリケーション プールを作成しようとしています。このマシンは、MS Windows Server 2012 と IIS 7.5 を実行しており、ローカル アカウントおよび管理者であるユーザー「LocalAdmin」を持っています。Run As Administrator の問題を防ぐために、UAC をオフにしました。だから、今私はできる:

  1. IIS に接続する
  2. 仮想ディレクトリを作成する
  3. また、Impersonalisation を使用して、リモート マシンにディレクトリを作成できます
  4. アプリ プールにアクセスします。詳細:

    var service = new DirectoryEntry(string.Format(@"IIS://{0}/W3SVC/AppPools", settings.Server), settings.FullUserName, settings.Password);
    DirectoryEntry pool = service.Children.Cast<DirectoryEntry>().FirstOrDefault(x => x.Name == originalAppPoolName);
    

    これにより、既存のアプリケーション プールが返されます。電話すればpool.CommitChanges()大丈夫。次に、新しいアプリケーション プールを作成しようとします。

    DirectoryEntry appPool = service.Children.Add(newAppPoolName, "IIsApplicationPool");
    appPool.CommitChanges()
    

    しかし、私は受け取りますUnauthorizedAccessException:アクセスが拒否されました。

この例外の問題を解決するにはどうすればよいですか? さらに、同じコードをローカルで実行しても問題はありません。アプリケーション プールが作成されて実行されます。したがって、問題はセキュリティと承認にあると思います。「LocalAdmin」管理者資格情報を使用してリモート サーバーにアプリケーション プールを追加するために、ローカル マシンで実行されるコードを許可するには、何をする必要がありますか?

PSまた、リモートサーバーのSecurityLogに、ローカルの資格情報でログインしようとしていることが表示されます。なぜそれが起こるのですか?擬人化を使用しても何も変わりません...

PPS ローカル マシンと同じ資格情報を持つユーザーをリモート サーバーに追加することで問題を解決しました。別の方法はありますか?

4

0 に答える 0