使用 PowerShell 永久停止 IIS 网站

使用 PowerShell 永久停止 IIS 网站

使用 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

相关内容