Partager via


Guide pratique pour définir le mode Restore-Only pour un point de migration d’état

Dans Configuration Manager, vous configurez le point de migration de l’état de déploiement du système d’exploitation pour rejeter les nouvelles demandes de stockage des données utilisateur en définissant la propriété incorporée SMPQuiesceState.

SMPQuiesceState a deux valeurs possibles.

Valeur Définition
0 Le mode restauration uniquement est désactivé.
1 Le mode Restauration seule est activé.

Pour définir le mode de restauration uniquement pour un point de migration d’état

  1. Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.

  2. Établir une connexion à la section ressources du point de migration d’état du fichier de contrôle de site.

  3. Obtient les propriétés incorporées.

  4. Mettez à jour SMPQuiesceState.

  5. Validez les modifications apportées au fichier de contrôle de site.

Exemple

L’exemple de méthode suivant définit le mode de restauration uniquement en fonction de la valeur fournie.

Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code 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;  
    }  
}  

L’exemple de méthode a les paramètres suivants :

Paramètre Type Description
connection -Géré: WqlConnectionManager
- VBScript : SWbemServices
Connexion valide au fournisseur SMS.
context (VBScript) -Vbscript: SWbemContext Objet de contexte valide. Pour plus d’informations, consultez Comment ajouter un qualificateur de contexte Configuration Manager à l’aide de WMI.
server -Géré: String
-Vbscript: String
Serveur Configuration Manager sur lequel le point de migration d’état s’exécute.
siteCode -Géré: String
-Vbscript: String
Code de site Configuration Manager.
enableRestoreOnlyMode -Géré: Boolean
-Vbscript: Integer
Définit le mode de restauration uniquement.

- Géré : true active le mode restauration uniquement ; sinon false, .
- VBScript : 1 active le mode de restauration ; sinon 0.

Compilation du code

L’exemple C# présente les exigences de compilation suivantes :

Espaces de noms

Système

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programmation robuste

Pour plus d’informations sur la gestion des erreurs, consultez À propos des erreurs Configuration Manager.

Sécurité de .NET Framework

Pour plus d’informations sur la sécurisation des applications Configuration Manager, consultez Configuration Manager’administration basée sur les rôles.

Voir aussi

À propos de la configuration du rôle de site de déploiement de système d’exploitation Guide pratique pour lire et écrire dans le fichier de contrôle de site Configuration Manager à l’aide de code managé
Guide pratique pour lire et écrire dans le fichier de contrôle de site Configuration Manager à l’aide de WMI