Atalho para abrir o Gerenciador do IIS 7 para exibir "Sites" (status) por padrão?

2

Gostaria de poder verificar rapidamente se um site está on-line depois de fazer login na área de trabalho do Windows Server 2008 R2 (x64). Eu preferiria fazer isso com apenas um clique simples ou duplo (ou melhor, sem clicar) do que ter que navegar pela estrutura de árvore do Gerenciador do IIS.

Eu posso criar um atalho para o Gerenciador do IIS e colocá-lo na minha área de trabalho, mas como forçá-lo a abrir a exibição SERVERNAME / Sites em vez de clicar várias vezes para chegar lá?

Se não pode ser feito, existe alguma outra maneira sem fazer programação que eu posso colocar um indicador "online / offline" (de preferência na bandeja do sistema ou na área de trabalho) para cada site que eu quero colocar lá?

Se eu tiver que recorrer à programação para esse recurso aparentemente simples, como posso obter o status (iniciado ou interrompido) de um site específico do IIS a ser exibido em meu programa personalizado? Qual API, arquivo ou entrada de registro eu preciso ler para obter essas informações de status?

Atualizar

Eu descobri outra pessoa com um arquivo .bat que usava o utilitário IIS do appcmd.exe . Depois de algumas tentativas e erros depois de ler os documentos MSDN sobre o utilitário appcmd.exe, consegui juntar o seguinte arquivo .bat que faz o trabalho muito bem. A tarefa em mãos era simplesmente obter um estado de site (ou de vários sites) em dois cliques ou menos da área de trabalho.

@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
Infelizmente, o utilitário não está documentado muito bem - eu tive que mexer com ele um pouco para obter o resultado que eu queria.

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

Esta é a linha que obtém o status, mas executá-lo assim retorna um monte de outras coisas também. Então, para obter apenas o status e nada mais, outro parâmetro deve ser adicionado.

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

Seguindo o exemplo no link, também consegui criar um menu para iniciar e parar instantaneamente os sites, pressionando uma tecla e, em seguida, ENTER, e depois exibindo o status dos sites novamente - tudo de um .bat arquivo.

    
por NightOwl888 21.05.2011 / 15:30

3 respostas

1

Se você tiver os 'Scripts e ferramentas de gerenciamento do IIS' ativados, poderá usar o PowerShell para mostrar o status dos sites. Eu uso um script como este em uma janela dedicada do 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)

A linha

Get-ChildItem IIS:\sites | format-table state

faz o trabalho real, o resto está lá apenas para manter a saída de rolagem. Atualiza a cada cinco segundos.

    
por 28.09.2013 / 22:03
0

Lamento dizer, mas a resposta curta é não. Confira a referência de configuração aqui: link ou a referência do cmdlet aqui: link

Eu verifiquei o arquivo XML, mas não há nada que permita escolher onde você começa. Eles realmente deveriam acrescentar isso.

    
por 21.05.2011 / 16:47
0

Você tentou appcmd.exe list sites , a saída é algo como

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

Você pode consultar o artigo

    
por 24.05.2011 / 19:57