Compartilhar via


Como definir o modo de Restore-Only para um ponto de migração de estado

Em Configuration Manager, você configura o ponto de migração de estado de implantação do sistema operacional para rejeitar novas solicitações para armazenar dados do usuário definindo a propriedade inserida SMPQuiesceState.

SMPQuiesceState tem dois valores possíveis.

Valor Definição
0 O modo somente restauração está desativado.
1 O modo somente restauração está ativado.

Para definir o modo somente de restauração para um ponto de migração de estado

  1. Configure uma conexão com o Provedor de SMS. Para obter mais informações, confira Os fundamentos do Provedor de SMS.

  2. Faça uma conexão com a seção de recursos de ponto de migração de estado do arquivo de controle do site.

  3. Obtenha as propriedades inseridas.

  4. Atualizar sMPQuiesceState.

  5. Confirme as alterações no arquivo de controle do site.

Exemplo

O método de exemplo a seguir define o modo somente restauração com base no valor fornecido.

Para obter informações sobre como chamar o código de exemplo, consulte Chamando Configuration Manager Snippets de Código.

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;  
    }  
}  

O método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
connection -Gerenciado: WqlConnectionManager
- VBScript: SWbemServices
Uma conexão válida com o provedor de SMS.
context (VBScript) -Vbscript: SWbemContext Um objeto de contexto válido. Para obter mais informações, consulte Como adicionar um qualificador de contexto de Configuration Manager usando o WMI.
server -Gerenciado: String
-Vbscript: String
O servidor Configuration Manager em que o ponto de migração de estado está em execução.
siteCode -Gerenciado: String
-Vbscript: String
O código do site Configuration Manager.
enableRestoreOnlyMode -Gerenciado: Boolean
-Vbscript: Integer
Define o modo somente restauração.

– Gerenciado: true ativa o modo somente restauração; caso contrário false, .
- VBScript: ativa o 1 modo de restauração; caso contrário 0, .

Compilando o código

O exemplo C# tem os seguintes requisitos de compilação:

Namespaces

System

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros de Configuration Manager.

Segurança do .NET Framework

Para obter mais informações sobre como proteger aplicativos Configuration Manager, consulte Configuration Manager administração baseada em função.

Confira também

Sobre a configuração de função do site de implantação do sistema operacionalComo ler e gravar no arquivo de controle de site Configuration Manager usando código gerenciado
Como ler e gravar no arquivo de controle de site Configuration Manager usando o WMI