Ultimamente tenho trabalhado bastante com Powerhell Powershell devido a uma consultoria no módulo de Build do TFS. O legal desse módulo é que você pode interagir com scripts Powershell e variáveis do Work Flow que o TFS utiliza durante um build.
O Powershell é muito poderoso, isso se deve ao fato dele usufruir das classes .NET, utilizar o Windows Remote Management (WinRM) para execução remota de scripts, e comandos nativos das versões mais atuais do prompt, como o ROBOCOPY.
Assim como no .NET, nós podemos instalar módulos adicionais, e até mesmo importar os já instalados. No caso do IIS devemos importar o módulo “WebAdministration” . Então segue alguns scripts para manipulação do IIS.
Import-Module WebAdministration;
#region Manipulação do IIS
function PararPool([string] $poolName)
{
Stop-WebAppPool -Name $poolName;
}
function IniciarPool([string] $poolName)
{
Start-WebAppPool -Name $poolName;
}
function PararSite([string] $siteName)
{
$site = GetSite $siteName;
$site.Stop();
}
function IniciarSite([string] $siteName)
{
$site = GetSite $siteName;
$site.Start();
}
function GetSite($siteName)
{
$site = Get-Item IIS://Sites/$siteName -ErrorAction SilentlyContinue;
return $site;
}
function GetDirectorySite($site)
{
(Get-Item IIS://Sites/$site).PhysicalPath;
}
function GetPoolSite($site)
{
$objSite = Get-Item IIS://Sites/$site;
return $objSite.ApplicationPool;
}
function CriarSite([string] $siteName, [string] $caminho)
{
New-Item IIS:\AppPools\$siteName;
New-Item IIS:\Sites\$siteName -bindings @{protocol="http";bindingInformation=":80:$siteName"} -physicalPath $caminho;
Set-ItemProperty IIS:\Sites\$siteName -name applicationPool -value $siteName;
}
#endregion
Os scripts foram testados no IIS 7 e 7.5.
É lógico que existem mil e uma maneiras de preparar neston atingir um objetivo.
É possível utilizar o Active Directory Service Interfaces (ADSI), ou até mesmo o Windows Management Instrumentation (WMI). Acompanhe como reciclaríamos um determinado pool do IIS com o ADSI:
function ReciclarPool([string] $server, [string] $poolName)
{
([adsi]"IIS://$server/W3SVC/AppPools/$poolName").Recycle();
}
Uma última dica por hora, para editar e depurar scripts powershell, estou usando o programa PowerGUI.
É isso daí pessoal. Por hora é só, espero que tenham gostado! ![]()

0 comentários:
Postar um comentário