[IIS] IISRESETを管理者権限でコマンド実行する

Node.js で Web 開発していると、たまに IIS との何かで固まることがあります。そんなときに役立つのが IIS のリセットコマンド「IISRESET」。わざわざ IIS のサービス再起動を行わなくても、コマンドレベルで実行できます。ただし、このコマンドは管理者権限を必要とします。サービス状態を操作するので当たり前ですが。

C:\inetpub>iisreset

アクセスが拒否されました。このコマンドを使用するには、リモート コンピューターの管理者である必要があります。
アカウントを、リモート コンピューターの管理者ローカル グループに
追加するか、ドメイン管理者グローバル グループに追加してください。

コマンドラインで管理者権限を付ける方法があります。PowerShell の「start-process」で「verb runas」をつけて実行することです。ことわっておきますが、管理者認証をバイパスできるわけではないので管理者アカウントは必要です。

以下のコマンドファイルを作成します。名前は「iisreset.cmd」にします。

powershell start-process iisreset.exe -verb runas

実行後の画面がこちら、

C:\inetpub>iisreset

C:\inetpub>powershell start-process iisreset.exe -verb runas

UAC「本当に管理者で実行していい?」の確認画面の後、無事、リセット完了されました。

なお、上記のように実行中に「powershell~」を表示しないで、あたかもコマンドから直接実行したようにみせたい場合は、コマンドの先頭に「@」を付けます。

@powershell start-process iisreset.exe -verb runas