Condividi tramite


Come impostare la modalità Restore-Only per un punto di migrazione stato

In Configuration Manager si configura il punto di migrazione dello stato di distribuzione del sistema operativo per rifiutare le nuove richieste di archiviazione dei dati utente impostando la proprietà incorporata SMPQuiesceState.

SMPQuiesceState ha due valori possibili.

Valore Definizione
0 La modalità di sola ripristino è disattivata.
1 La modalità di sola ripristino è attivata.

Per impostare la modalità solo di ripristino per un punto di migrazione dello stato

  1. Configurare una connessione al provider SMS. Per altre informazioni, vedere Nozioni fondamentali sul provider SMS.

  2. Stabilire una connessione alla sezione delle risorse del punto di migrazione dello stato del file di controllo del sito.

  3. Ottenere le proprietà incorporate.

  4. Aggiornare SMPQuiesceState.

  5. Eseguire il commit delle modifiche apportate al file di controllo del sito.

Esempio

Il metodo di esempio seguente imposta la modalità di sola ripristino in base al valore fornito.

Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice Configuration Manager.

Sub SetRestoreOnlyMode(connection,          _  
                       context,           _  
                       siteCode,               _  
                       enableRestoreOnlyMode)  

    ' Load site control file and get SMS State Migration Point section.  
    connection.ExecMethod "SMS_SiteControlFile.Filetype=1,Sitecode=""" & siteCode & """", "Refresh", , , context  

    Query = "SELECT * FROM SMS_SCI_SysResUse " & _  
            "WHERE RoleName = 'SMS State Migration Point' " & _  
            "AND SiteCode = '" & siteCode & "'"  

    Set SCIComponentSet = connection.ExecQuery(Query, , , context)  

    ' Only one instance is returned from the query.  
    For Each SCIComponent In SCIComponentSet  

         ' Display state migration point server name.  
         wscript.echo "SMS State Migration Point Server: " & SCIComponent.NetworkOSPath                                      

        ' Loop through the array of embedded property instances.  
        For Each vProperty In SCIComponent.Props  

            ' Setting: SMPQuiesceState  
            If vProperty.PropertyName = "SMPQuiesceState" Then  
                wscript.echo " "  
                wscript.echo vProperty.PropertyName  
                wscript.echo "Current value " &  vProperty.Value                 

                ' Modify the value.  
                vProperty.Value = enableRestoreOnlyMode  
                wscript.echo "New value " & enableRestoreOnlyMode  
            End If  

        Next     

             ' Update the component in your copy of the site control file. Get the path  
             ' to the updated object, which could be used later to retrieve the instance.  
             Set SCICompPath = SCIComponent.Put_( , context)  
    Next  

    ' Commit the change to the actual site control file.  
    Set InParams = connection.Get("SMS_SiteControlFile").Methods_("CommitSCF").InParameters.SpawnInstance_  
    InParams.SiteCode = siteCode  
    connection.ExecMethod "SMS_SiteControlFile", "CommitSCF", InParams, , context  
End Sub  
public void SetRestoreOnlyMode(  
    WqlConnectionManager connection,  
    string server,   
    string siteCode,   
    bool enableRestoreOnlyMode)  
{  
    try  
    {  
        // Get the site control file.  
        IResultObject ro = connection.GetInstance("SMS_SCI_SysResUse.FileType=2,ItemName='[\"Display=\\\\" + server + "\\\"]MSWNET:[\"SMS_SITE=" + siteCode + "\"]\\\\" + server + "\\,SMS State Migration Point',ItemType='System Resource Usage',SiteCode='" + siteCode + "'");  

        // Get the embedded properties.  
        Dictionary<string, IResultObject> embeddedProperties = ro.EmbeddedProperties;  

        // Set the restore only mode.  
        embeddedProperties["SMPQuiesceState"]["Value"].BooleanValue = enableRestoreOnlyMode;  

        ro.EmbeddedProperties = embeddedProperties;  

        // Commmit the changes.  
        ro.Put();  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to set restore only mode" + e.Message);  
        throw;  
    }  
}  

Il metodo di esempio include i parametri seguenti:

Parametro Tipo Descrizione
connection -Gestito: WqlConnectionManager
- VBScript: SWbemServices
Connessione valida al provider SMS.
context (VBScript) -Vbscript: SWbemContext Oggetto di contesto valido. Per altre informazioni, vedere Come aggiungere un qualificatore di contesto Configuration Manager usando WMI.
server -Gestito: String
-Vbscript: String
Il server Configuration Manager in cui è in esecuzione il punto di migrazione dello stato.
siteCode -Gestito: String
-Vbscript: String
Codice del sito Configuration Manager.
enableRestoreOnlyMode -Gestito: Boolean
-Vbscript: Integer
Imposta la modalità solo di ripristino.

- Gestito: true attiva solo la modalità di ripristino; in caso contrario false, .
- VBScript: 1 attiva la modalità di ripristino; in caso contrario 0, .

Compilazione del codice

L'esempio C# presenta i requisiti di compilazione seguenti:

Namespaces

Sistema

System.collections.generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programmazione efficiente

Per altre informazioni sulla gestione degli errori, vedere Informazioni sugli errori di Configuration Manager.

Sicurezza di .NET Framework

Per altre informazioni sulla protezione delle applicazioni Configuration Manager, vedere Configuration Manager'amministrazione basata sui ruoli.

Vedere anche

Informazioni sulla configurazione del ruolo del sito di distribuzione del sistema operativo Come leggere e scrivere nel file di controllo del sito Configuration Manager usando codice gestito
Come leggere e scrivere nel file di controllo del sito Configuration Manager tramite WMI