Stop-Websiteを使用してWebサイトを停止することは、IIS Managerを使用してWebサイトを停止することとは明らかに異なります。
Stop-Website 'Some site'
iisreset.exe
# site is started again
IIS Managerを使用すると、リセット/再起動後の状態は同じです。IIS Managerを使用してサイトを停止すると、永続的な構成(レジストリ?)。
PowerShellを使用してサイトを完全に停止し、リセット/再起動によってサイトが再びオンラインにならないようにする方法を誰かに教えてもらえますか?
(Stop-WebAppPoolはまったく同じ動作を示します。)
ジョセフの答えは完全に理にかなっていますが、うまくいかないようです。
applicationHost.config
のサイトノードの属性 'serverAutoStart'は変更されません。
変更する1つの方法は次のとおりです。
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='Default Web Site']" -name "serverAutoStart" -value "False"
しかし、それは一口です。
別の方法は:
Set-ItemProperty "IIS:\Sites\Default Web Site" serverAutoStart False
この属性は、IIS Managerでは直接編集できないため、Configuration Editor
に移動して変更する必要があることも興味深い点です。
はい、IIS Managerでサイトを開始または停止すると、属性が変更されますが、ユーザーにはわかりません。
これを試してみましょう:
$site = Get-Item 'IIS:\sites\Default Web Site'
$site.serverAutoStart = $False
$site.Stop()
明らかに、Default Web Site
を置き換える必要があります。 ;-)
このためのテストラボの設定はありません。問題なく機能するかどうかお知らせください。
IIS PSProvider ...にはたくさんのオプションがあります...次のコマンドを実行して、もう少し詳しく調べます。
$site = Get-Item 'IIS:\sites\Default Web Site'
$site | get-member
まだコメントする担当者がいないので、これを回答として投稿します...
ジョセフの提案を機能させるにはSet-Item
は、変更を永続化するために必要です。
$site = Set-Item
デフォルトのサイトを停止したままにする完全な4行。
$site = Get-Item 'IIS:\sites\Default Web Site'
$site.serverAutoStart = $False
$site.Stop()
$site = Set-Item