Partilhar via


Exemplo: Script RemoveCacheHost (Cache do Windows Server Appfabric)

Esta seção fornece um exemplo de script do Windows PowerShell, RemoveCacheHost.ps1. Esse script remove automaticamente um host de cache de um cluster de cache. Para obter uma explicação dos comandos usados nesse script, consulte Instalação e configuração automatizadas. O script de exemplo RemoveCacheHost executa as seguintes ações:

  • Tentativas de parar o host de cache para preparar para removê-lo.

  • Cancela o registro do host de cache do cluster de cache.

  • Remove a configuração do Serviço de Cache.

  • Remove a configuração do recurso Administração de Cache.

  • Desabilita a política interna de firewall do Windows para armazenamento em cache do AppFabric.

Exemplo: Script RemoveCacheHost

Para usar o script RemoveCacheHost, primeiro copie o conteúdo do script do Windows PowerShell a seguir para um arquivo de texto e salve o arquivo como RemoveCacheHost.ps1. Em seguida, verifique as informações seguindo o script para compreender como personalizar e executar o script.

param([switch]$RemoveCacheCluster, [string]$Pvd, [string]$ConnStr)

##########################
# Customizable Variables #
##########################
$provider = "System.Data.SqlClient"
#$provider = "XML"
$host_name = $env:COMPUTERNAME
$cache_port = 22233

# If System.Data.SqlClient:
$database_name = "CacheClusterConfigurationDB"
$database_server = "SQLServer1"
# If XML Provider:
$share_location = "\\Server1\CacheConfigShare"

##############
# Initialize #
##############

Import-Module DistributedCacheAdministration
Import-Module DistributedCacheConfiguration

$connection_string = ""

if ($provider -eq "System.Data.SqlClient")
{
   $connection_string = "Data Source=" + $database_server + `
      ";Initial Catalog=" + $database_name + `
      ";Integrated Security=True"
}

if ($provider -eq "XML")
{
   $connection_string = $share_location
}

# If provided, command-line parameters override 
# internal script variables:
if ($Pvd)
{
   $provider = $Pvd
}
if ($ConnStr)
{
   $connection_string = $ConnStr
}

#####################
# Remove Cache Host #
#####################

Write-Host "`nUse-CacheCluster -Provider $provider -ConnectionString"`
   "`"$connection_string`"" -ForegroundColor Green
Use-CacheCluster -Provider $provider -ConnectionString $connection_string

#Make sure the cache host is stopped
$Get_CacheHost_Command = Get-CacheHost -HostName $host_name -CachePort $cache_port

if ($Get_CacheHost_Command.Status -eq "Up")
{
   Write-Host "`nStop-CacheHost -HostName $host_name -CachePort $cache_port" -ForegroundColor Green
   Stop-CacheHost -HostName $host_name -CachePort $cache_port
}

$Get_CacheHost_Command = Get-CacheHost -HostName $host_name -CachePort $cache_port

if ($Get_CacheHost_Command.Status -eq "Down")
{
   Write-Host "`nUnregister-CacheHost -Provider $provider -ConnectionString `"$connection_string`" " `
      "-HostName $host_name -RemoveServicePermissions" -ForegroundColor Green
   Unregister-CacheHost -Provider $provider -ConnectionString $connection_string `
      -HostName $host_name -RemoveServicePermissions
   
   Write-Host "`nRemove-CacheHost" -ForegroundColor Green
   Remove-CacheHost
   
   Write-Host "`nRemove-CacheAdmin" -ForegroundColor Green
   Remove-CacheAdmin
   
   ########################
   # Remove Cache Cluster #
   ########################
   
   # Look for a parameter that specifies this is a new cache cluster
   if ($RemoveCacheCluster)
   {
      Write-Host "`nRemove_CacheCluster -Provider $provider -ConnectionString "`
         "`"$connection_string`" -Force" -ForegroundColor Green
      Remove-CacheCluster -Provider $provider -ConnectionString $connection_string -Force
   }
   
   ##########################
   # Configure the Firewall #
   ##########################
   Write-Host "`nConfigure the firewall..." -ForegroundColor Green
   netsh advfirewall firewall set rule `
      group="Windows Server AppFabric: AppFabric Caching Service" new enable=No | Out-Null
   
   # Uncomment the following lines only if other services do not need Remote Service Management.
   #netsh advfirewall firewall set rule `
   #   name=\"Remote Service Management (RPC)\" profile=domain new enable=No | Out-Null
   #netsh advfirewall firewall set rule `
   #   name=\"Remote Service Management (RPC-EPMAP)\" profile=domain new enable=No | Out-Null
   #netsh advfirewall firewall set rule `
   #   name=\"Remote Service Management (NP-In)\" profile=domain new enable=No | Out-Null 
}
else
{
   Write-Host "`nUnable to stop the host $host_name (Port:$cache_port)`n`n" -ForegroundColor Red
}

Personalizando o script RemoveCacheHost

Para personalizar esse script para uso, você tem duas opções. Primeiro, pode alterar os valores das variáveis na seção "Variáveis personalizáveis" do script. Por exemplo, se você estiver usando o provedor XML, defina a variável $provider como "XML" e defina $share_location como o compartilhamento de rede que deve ser usado para o repositório de configuração. Personalize as outras variáveis com base em suas configurações específicas. Observe que as variáveis $database_name e $database_server são necessárias somente quando você está usando o provedor System.Data.SqlClient. A variável $share_location é necessária somente quando você especifica o provedor XML.

Outra opção é usar os parâmetros de script Pvd and ConnStr para especificar manualmente o provedor e a cadeia de conexão na linha de comando. Esses parâmetros substituem as configurações de variável interna.

Executando o script RemoveCacheHost

O comando a seguir remove o servidor local do cluster de cache.

RemoveCacheHost

O comando a seguir remove o servidor local do cluster de cache e também remove o cluster de cache. Esta ação poderá ser tomada quando o último host de cache for removido de um cluster de cache.

RemoveCacheHost -RemoveCacheCluster

O exemplo a seguir mostra como especificar manualmente o provedor e a cadeia de conexão na linha de comando.

RemoveCacheHost.ps1 -Pvd System.Data.SqlClient -ConnStr "DataSource=SQLServer1;Initial Catalog=CustomConfigDB;Integrated Security=True"

Observe que, geralmente, o script não poderá parar o host de cache especificado. Nestes exemplos, você precisará parar o cluster de cache com o comando Stop-CacheCluster antes de remover o host de cache com o script.

Consulte também

Conceitos

Instalação e configuração automatizadas

  2011-12-05