リモートマシンでIISをリセットするには、次のコマンドを実行しようとしています。
IISReset <remoteMachine>
ドメインファイアウォールを無効にすると、すべて正常に機能します。ファイアウォールを有効にすると、
RPCサーバーは利用できません。
最初は、リモート管理(RPC-EPMAP)や、関連性が低いと思われるその他のルールを有効にしてみました。次に、事前定義されたすべてのルールを有効にしようとしましたが、成功しませんでした。
次のコマンドラインを試して、Webサーバーのファイアウォールにインバウンドルールを追加してください。
netsh advfirewall firewall add rule name="Remote IIS inetinfo" dir=in action=allow description="Remote IIS Service Managment" program="%systemroot%\System32\inetsrv\inetinfo.exe" enable=yes
netsh advfirewall firewall add rule name="COM+ Remote Administration (All Programs)" dir=in action=allow description="" program="%windir%\system32\dllhost.exe" enable=yes localport=RPC protocol=tcp
IISサービスにアクセスしようとすると、WMI/RPCの問題を解決するために、これらを使用する必要がありました。次のようなエラーが発生します。
Creating an instance of the COM component with CLSID {2B72133B-3F5B-4602-8952-803546CE3344} from the IClassFactory failed due to the following error: 800706ba.
他の人が特定した根本的な原因は、IISResetがRPCを必要とし、Windowsの新しいバージョンではデフォルトで必要なポートがデフォルトでブロックされていることです(これは良いことです)。
2セットのポートを開く必要があります。
135/tcp
-これは、他の人が言及しているように、ポートマッパーです。 RPC Dynamic Port Range
のポートをネゴシエートして通信しますRPC Dynamic Port Range
-これは、タスクを実行するために使用される、上記でネゴシエートされたポートの範囲です。この範囲でまだアクティブなドキュメントは見つかりませんでした。 @Ansgar Wiechersが言及しているように、これはハイポートであり、Windows Server 2008で変更されました。この動作の変更がドキュメントの理由であると思われます( https://support.Microsoft.com/en-us/help/217351 正式にはMicrosoft KB217351 DCOMポート範囲構成の問題)は削除されました。Windowsファイアウォールを使用している場合は、ポート範囲を開くためのニーモニックが提供されます。@ Greg Brayの回答はほぼ正解ですが、inetinfo.exeへの通信が開かれます。これは、私が知る限り、必要ありませんでした。
以下は私たちのために働きます:
netsh advfirewall firewall add rule name="COM+ (DCOM-In) Port Mapper" dir=in action=allow description="Allow Communication to the DCOM Service Control Manager" enable=yes localport=135 protocol=tcp remoteip=x.x.x.x
netsh advfirewall firewall add rule name="COM+ (DCOM-In) Dynamic Port Range" dir=in action=allow description="Allow DCOM Communication" enable=yes localport=RPC protocol=tcp remoteip=x.x.x.x
上記のコマンドの各セクションについて説明します。
netsh advfirewall firewall add rule
name="xxx"
dir=in
action=allow
description="xxx"
enable=yes
localport=135
localport=RPC
RPC
に設定します。これにより、Windowsファイアウォールが動的ポート範囲内にあるかどうかを通知して、各ポートを個別に指定しなくても許可できるようにします。protocol=tcp
TCP
を使用するため、これをプロトコルとして指定しますremoteip=x.x.x.x