Esempio: Script RemoveCacheHost
In questa sezione viene fornito uno script di esempio di Windows PowerShell: RemoveCacheHost.ps1. Lo script rimuove automaticamente un host della cache da un cluster di cache. Per una descrizione dei comandi utilizzati nello script, vedere Installazione e configurazione automatizzate. Lo script di esempio RemoveCacheHost.ps1 esegue le seguenti azioni:
Tenta di arrestare l'host della cache per prepararne la rimozione.
Annulla la registrazione dell'host della cache dal cluster di cache.
Rimuove la configurazione del servizio di memorizzazione nella cache.
Rimuove la configurazione della funzionalità Amministrazione cache.
Disabilita i criteri di Windows Firewall predefiniti per memorizzazione nella cache di AppFabric.
Esempio: Script RemoveCacheHost
Per utilizzare lo script RemoveCacheHost, copiare prima i contenuti del seguente script di Windows PowerShell in un file di testo, quindi salvare il file con il nome RemoveCacheHost.ps1. Riesaminare quindi le informazioni che seguono lo script per comprendere come personalizzare ed eseguire lo 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
}
Personalizzazione dello script AddCacheHost
Per personalizzare lo script sono disponibili due opzioni. La prima opzione consiste nel modificare i valori delle variabili nella sezione "Customizable Variables" dello script. Ad esempio, se si utilizza il provider XML, impostare la variabile $provider
su "XML"
, quindi impostare $share_location
sulla condivisione di rete da utilizzare per l'archivio di configurazione. Personalizzare le altre variabili in base alle impostazioni specifiche. Si noti che le variabili $database_name
e $database_server
sono necessarie soltanto se si utilizza il provider System.Data.SqlClient. La variabile $share_location
è richiesta solo quando si specifica il provider XML.
L'opzione alternativa consiste nell'utilizzare i parametri Pvd
e ConnStr
dello script per specificare manualmente la stringa del provider e di connessione dalla riga di comando. Questi parametri hanno priorità sulle impostazioni interne delle variabili.
Esecuzione dello script RemoveCacheHost
Il comando seguente rimuove il server locale dal cluster di cache.
RemoveCacheHost
Il comando seguente rimuove il server locale dal cluster di cache oltre al cluster di cache stesso. È possibile eseguire questa operazione quando si rimuove l'ultimo host della cache da un cluster di cache.
RemoveCacheHost -RemoveCacheCluster
Nell'esempio seguente viene descritto come specificare manualmente la stringa del provider e di connessione dalla riga di comando.
RemoveCacheHost.ps1 -Pvd System.Data.SqlClient -ConnStr "DataSource=SQLServer1;Initial Catalog=CustomConfigDB;Integrated Security=True"
Si noti che talvolta lo script non sarà in grado di arrestare l'host della cache specificato. In casi simili, sarà necessario arrestare il cluster di cache mediante il comando Stop-CacheCluster
prima di rimuovere l'host della cache con lo script.
Vedere anche
Concetti
Installazione e configurazione automatizzate
2012-03-05