Partage via


Exemple : script RemoveCacheHost

Cette section décrit l'exemple de script Windows PowerShell RemoveCacheHost.ps1. Ce script supprime automatiquement un hôte de cache d'un cluster de cache. Pour plus d'informations sur les commandes utilisées dans le script, consultez la rubrique Installation et configuration automatisées. L'exemple de script RemoveCacheHost effectue les opérations suivantes :

  • Tente d'arrêter l'hôte de cache pour préparer sa suppression.

  • Annule l'enregistrement de l'hôte de cache dans le cluster de cache.

  • Supprime la configuration du service de mise en cache.

  • Supprime la configuration de la fonctionnalité d'administration du cache.

  • désactivation de la stratégie de Pare-feu Windows intégrée pour la Mise en cache d'AppFabric ;

Exemple : script RemoveCacheHost

Pour utiliser le script RemoveCacheHost, copiez le contenu du script Windows PowerShell suivant dans un fichier texte, puis enregistrez le fichier sous le nom RemoveCacheHost.ps1. Consultez ensuite les informations qui apparaissent après le script pour savoir comment personnaliser et exécuter le 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
}

Personnalisation du script RemoveCacheHost

Deux options permettent d'adapter ce script à vos besoins. La première option consiste à modifier la valeur des variables dans la section « Customizable Variables » du script. Par exemple, si vous utilisez le fournisseur XML, configurez la variable $provider sur "XML" et la variable $share_location sur le partage réseau qui doit être utilisé pour le magasin de configuration. Personnalisez les autres variables selon vos paramètres spécifiques. Les variables $database_name et $database_server ne sont requises que si le fournisseur System.Data.SqlClient est utilisé. La variable $share_location n'est requise que si le fournisseur XML est spécifié.

La seconde option consiste à utiliser les paramètres de script Pvd et ConnStr pour spécifier manuellement le fournisseur et la chaîne de connexion dans la ligne de commande. Ces paramètres remplacent les paramètres internes des variables.

Exécution du script RemoveCacheHost

La commande suivante supprime le serveur local du cluster de cache.

RemoveCacheHost

La commande suivante supprime le serveur local du cluster de cache, ainsi que le cluster de cache. Cette opération peut être effectuée lorsque le dernier hôte de cache est supprimé d'un cluster de cache.

RemoveCacheHost -RemoveCacheCluster

L'exemple suivant montre comment spécifier manuellement le fournisseur et la chaîne de connexion dans la ligne de commande.

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

Il peut arriver que le script ne parvienne pas à arrêter l'hôte de cache spécifié. Dans ce cas, vous devez arrêter le cluster de cache à l'aide de la commande Stop-CacheCluster, puis supprimer l'hôte de cache à l'aide du script.

Voir aussi

Concepts

Installation et configuration automatisées

  2012-03-05