打开 IIS 7 管理器的快捷方式是否默认显示“站点”视图(状态)?

打开 IIS 7 管理器的快捷方式是否默认显示“站点”视图(状态)?

我希望能够在登录 Windows Server 2008 R2 (x64) 桌面后快速检查网站是否在线。我希望只需单击或双击一次(或者更好的是,根本不需要单击)即可完成此操作,而不必浏览 IIS 管理器的树结构。

我可以创建 IIS 管理器的快捷方式并将其放在我的桌面上,但如何强制它打开到 SERVERNAME/Sites 视图,而不是单击几次才能到达那里?

如果无法做到这一点,是否有其他方法可以不进行编程,为我想要放置的每个站点放置一个“在线/离线”指示器(最好在系统托盘或桌面上)?

如果我不得不通过编程来实现这个看似简单的功能,那么如何才能让特定 IIS 网站的状态(启动或停止)显示在我的自定义程序中?我需要读取哪些 API、文件或注册表项才能获取此状态信息?

更新

我发现有人使用 appcmd.exe IIS 实用程序的 .bat 文件。在阅读了有关 appcmd.exe 实用程序的 MSDN 文档后,经过反复尝试,我终于能够拼凑出以下可以完美完成这项工作的 .bat 文件。手头的任务只是从桌面上单击 2 次或更少的次数即可获取一个站点(或多个站点)的状态。

@echo off

:Status
Set STATUS1=MAINTENANCE
FOR /F "tokens=*" %%A IN ('%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite1.com /text:state ^| FIND "Started"') DO SET STATUS1=STARTED

Set STATUS2=MAINTENANCE
FOR /F "tokens=*" %%A IN ('%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite2.com /text:state ^| FIND "Started"') DO SET STATUS2=STARTED

echo www.mysite1.com: %STATUS1%
echo www.mysite2.com: %STATUS2%

pause

不幸的是,该实用程序没有很好的记录 - 我不得不对其进行大量修改才能获得我想要的结果。

%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite1.com

这行代码用于获取状态,但这样运行还会返回一堆其他内容。因此,为了只获取状态而不获取其他内容,必须添加另一个参数。

%SystemRoot%\System32\inetsrv\appcmd list site /site.name:www.mysite1.com /text:state

按照链接中的示例,我还可以组合一个菜单,通过按下一个键然后按 ENTER 键立即启动和停止站点,然后再次显示站点的状态 - 所有这些都来自一个 .bat 文件。

答案1

如果您启用了“IIS 管理脚本和工具”,则可以使用 PowerShell 显示站点的状态。我在专用的 PowerShell 窗口中使用了如下脚本:

do
{
     clear-host
     Get-ChildItem IIS:\sites | format-table state, name
     $curPos = $Host.UI.RawUI.CursorPosition
     $ou = (Get-Date).ToString("HH:mm:ss")
     $ou = "  " +  $ou + " - Press CRTL+C to terminate"
     $Host.UI.Write($ou)
     $Host.UI.RawUI.CursorPosition=$curPos 
     Start-Sleep -Seconds 5
} until ($false)

线路

Get-ChildItem IIS:\sites | 格式表状态

做真正的工作,其余的只是让输出不滚动。它每五秒更新一次。

答案2

很抱歉,答案是否定的。请查看此处的配置参考:http://www.iis.net/configreference或此处的 cmdlet 参考:http://technet.microsoft.com/en-us/library/ee790599.aspx

我查看了 XML 文件,但没有任何内容允许您选择从哪里开始。他们确实应该添加这个。

答案3

你试过吗appcmd.exe list sites,输出是这样的

SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)

您可以参考文章

相关内容