使用 Stop-Website 停止网站显然与使用 IIS 管理器停止网站不同。
Stop-Website 'Some site'
iisreset.exe
# site is started again
使用 IIS 管理器,重置/重启后状态相同。我猜使用 IIS 管理器停止网站会修改某种持久配置(注册表?)。
谁能告诉我如何使用 PowerShell 永久停止一个网站,以便重置/重新启动不会使该网站再次上线?
(Stop-WebAppPool 表现出完全相同的行为。)
答案1
约瑟夫的回答很有道理,但似乎不起作用。
站点节点上的属性“serverAutoStart”applicationHost.config
未改变。
改变的一个方法是:
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 管理器中直接编辑,您必须进入才能Configuration Editor
更改它。
是的,在 IIS 管理器中启动或停止网站会改变该属性,但这对用户来说并不明显。
答案2
我们来试试这个:
$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
答案3
我还没有评论的代表,因此将其作为答案发布......
为了使约瑟夫的建议发挥作用,Set-Item
需要坚持改变。
$site = Set-Item
整整 4 行使默认站点保持停止状态。
$site = Get-Item 'IIS:\sites\Default Web Site'
$site.serverAutoStart = $False
$site.Stop()
$site = Set-Item