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