Beispiel: RemoveCacheHost-Skript
In diesem Abschnitt wird ein Windows PowerShell-Beispielskript (RemoveCacheHost.ps1) zur Verfügung gestellt. Dieses Skript entfernt einen Cachehost automatisch aus einem Cachecluster. Eine Erläuterung der in diesem Skript verwendeten Befehle finden Sie unter Automatisierte Installation und Konfiguration. Das Beispielskript RemoveCacheHost führt die folgenden Aktionen aus:
Es versucht den Cachehost als Vorbereitung des Entfernungsvorgangs zu beenden.
Es hebt die Registrierung des Cachehosts im Cachecluster auf.
Es entfernt die Konfiguration des Cachediensts.
Es entfernt die Konfiguration der Cacheverwaltungsfunktion.
Es deaktiviert die integrierte Windows-Firewallrichtlinie für AppFabric-Cache.
Beispiel: Skript "RemoveCacheHost"
Kopieren Sie zum Verwenden des RemoveCacheHost-Skripts zuerst den Inhalt des folgenden Windows PowerShell-Skripts in einer Textdatei, und speichern Sie die Datei anschließend als RemoveCacheHost.ps1. Lesen Sie dann die Informationen in der Skriptdatei, damit Sie verstehen, wie das Skript angepasst und ausgeführt wird.
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
}
Anpassen des Skripts "RemoveCacheHost"
Es stehen zwei Optionen zur Verfügung, um das Skript für Ihren Verwendungszweck anzupassen. Sie können die Werte für die Variablen im Abschnitt "Customizable Variables" des Skripts anpassen. Wenn Sie z. B. den Anbieter XML verwenden, legen Sie die Variable $provider
auf "XML"
fest, und legen Sie dann $share_location
auf die Netzwerkfreigabe fest, die für den Konfigurationsspeicher verwendet werden soll. Passen Sie die anderen Variablen gemäß Ihren besonderen Anforderungen an. Beachten Sie, dass die Variablen $database_name
und $database_server
nur erforderlich sind, wenn Sie den Anbieter System.Data.SqlClient verwenden. Die Variable $share_location
ist nur erforderlich, wenn Sie den Anbieter XML angeben.
Die andere Option besteht im Verwenden der Skriptparameter Pvd
und ConnStr
, um den Anbieter und die Verbindungszeichenfolge manuell über die Befehlszeile anzugeben. Diese Parameter setzen die internen Variableneinstellungen außer Kraft.
Ausführen des Skripts "RemoveCacheHost"
Der folgende Befehl entfernt den lokalen Server aus dem Cachecluster.
RemoveCacheHost
Der folgende Befehl entfernt den lokalen Server aus dem Cachecluster und entfernt außerdem den Cachecluster. Diese Aktion kann ausgeführt werden, wenn der letzte Cachehost aus einem Cachecluster entfernt wird.
RemoveCacheHost -RemoveCacheCluster
Das folgende Beispiel zeigt, wie der Anbieter und die Verbindungszeichenfolge manuell über die Befehlszeile angegeben werden.
RemoveCacheHost.ps1 -Pvd System.Data.SqlClient -ConnStr "DataSource=SQLServer1;Initial Catalog=CustomConfigDB;Integrated Security=True"
Beachten Sie, dass das Skript manchmal nicht in der Lage ist, den angegebenen Cachehost zu beenden. Unter diesen Umständen müssen Sie den Cachecluster mithilfe des Befehls Stop-CacheCluster
beenden, bevor Sie den Cachehost mit dem Skript entfernen.
Siehe auch
Konzepte
Automatisierte Installation und Konfiguration
2012-03-05