Sdílet prostřednictvím


Změna zdroje balíčku pro nasazení

Zdroj balíčku nasazení pro balíček pro nasazení aktualizací softwaru změníte v Configuration Manager získáním instance třídy SMS_SoftwareUpdatesPackage a pomocí metody ValidateNewPackageSource.

Poznámka

Zdroj balíčku pro většinu ostatních typů balíčků lze změnit v konzole nástroje . Tato možnost však není k dispozici pro balíčky aktualizací softwaru.

Změna zdroje balíčku nasazení

  1. Nastavte připojení k poskytovateli serveru SMS.

  2. Získejte existující objekt balíčku pomocí SMS_SoftwareUpdatesPackage třídy .

  3. Ověřte zdroj balíčku pomocí metody .ValidateNewPackageSource

  4. Změňte zdroj balíčku pro existující balíček pro nasazení aktualizací softwaru změnou PkgSourcePath vlastnosti balíčku.

Příklad

Následující příklad metody ukazuje, jak změnit zdroj balíčku nasazení pro balíček pro nasazení aktualizací softwaru pomocí SMS_SoftwareUpdatesPackage třídy a ValidateNewPackageSource metody .

Poznámka

Všechny aktualizace dostupné ve starém zdroji balíčku musí být dostupné v novém zdroji balíčku (cesta ke zdroji obsahu, předaná jako newPackageSourceLocation proměnná v následujících skriptech).

Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.

Příklad volání podprogramu v jazyce Visual Basic:


' PREWORK FOR ChangeDeploymentPackageSource  

' Define the new package location to validate (package location must be UNC).  
newPackageSourceLocation = "\\SMSSERVER\source1"  

Call ChangeDeploymentPackageSource(swbemServices,             _  
                                   "ABC00003",                _  
                                   newPackageSourceLocation)  

Příklad volání metody v jazyce C#:


//PREWORK FOR ChangeDeploymentPackageSource.  

// Define the new package location to validate (package location must be UNC).  
string newPackageSourceLocation = "\\\\SMSSERVER\\source1";  

// Load the validateNewPackageSource parameters into an object to pass to the method.  
Dictionary<string, object> validateNewPackageSourceParameters = new Dictionary<string, object>();  
validateNewPackageSourceParameters.Add("PackageSource", newPackageSourceLocation);  

//The method call.  
SUMSnippets.ChangeDeploymentPackageSource(WMIConnection,  
                                          "ABC00003",  
                                          validateNewPackageSourceParameters,  
                                          newPackageSourceLocation);  


Sub ChangeDeploymentPackageSource(connection,                   _  
                                  existingSUMPackageID,         _  
                                  newDeploymentPackageLocation)   

    On Error Resume Next  

    ' Get an existing SUM Deployment Package to change.  
    Set existingSUMDeploymentPackage = connection.Get("SMS_SoftwareUpdatesPackage.PackageID='" & existingSUMPackageID & "'")    

    ' Check the package source for the existing SUM Deployment Package using the ValidateNewPackageSource method.  
    existingSUMDeploymentPackage.ValidateNewPackageSource(newDeploymentPackageLocation)  

    ' Check the error information from the SWBemLasError object to determine success or failure of the ValidateNewPackageSource method.  
    If Err.Number = 0 Then  

        ' Output a success message if the new package location is valid.  
        Wscript.Echo "The new location of the SUM deployment package validated. "  
        Wscript.Echo "Updating the SUM deployment package with the new package location.  "  

       ' Update the StoredPkgPath property of the existing deployment package   
       ' with the new source location if the package location is valid.  
       existingSUMDeploymentPackage.PkgSourcePath = newDeploymentPackageLocation  

       ' Save the updated package deployment package.  
       existingSUMDeploymentPackage.Put_  

    Else  

        ' Output a failure message if the new deployment package location is not valid.  
        Wscript.Echo "The new location of the SUM deployment package failed to validate. "  

    End If       

 End Sub  


public void ChangeDeploymentPackageSource(WqlConnectionManager connection,  
                                          string existingSUMPackageId,  
                                          Dictionary<string, object> validateNewPackageSourceParameters,  
                                          string newPackageSource)  
{  
    try  
    {  
        // Get the specific SUM Deployment Package to change.  
        IResultObject existingSUMDeploymentPackage = connection.GetInstance(@"SMS_SoftwareUpdatesPackage.PackageId='" + existingSUMPackageId + "'");  

        // Validate the existing SUM Deployment Package content using the ValidateContent method.  
        // Note: The method will throw an exception, if the package source does not validate.   
        existingSUMDeploymentPackage.ExecuteMethod("ValidateNewPackageSource", validateNewPackageSourceParameters);  

        // Output a success message if the new package location is valid.  
        Console.WriteLine("The new location of the SUM deployment package validated.  ");  

        // Update the PkgSourcePath property of the existing deployment package with the new source location.  
        existingSUMDeploymentPackage["PkgSourcePath"].StringValue = newPackageSource;  

        // Save the package properties.  
        existingSUMDeploymentPackage.Put();  

        // Output a success message that the package location was updated.  
        Console.WriteLine("Updated the SUM deployment package with the new package location.  ");  
    }  
    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed to validate the new package source.");  
        Console.WriteLine("Failed to update the SUM deployment package.");   
        Console.WriteLine("Error: " + ex.Message);         
        throw;  
    }  
}  

Ukázková metoda má následující parametry:

Parametr Typ Popis
connection -Spravované: WqlConnectionManager
- VBScript: SWbemServices
Platné připojení k poskytovateli serveru SMS.
existingSUMPackageID -Spravované: String
-Vbscript: String
ID balíčku pro existující balíček pro nasazení aktualizací softwaru.
validateNewPackageSource - Spravované: dictionary objekt Je validateNewPackageSource objekt slovníku obsahující parametry, které ValidateNewPackageSource metoda vyžaduje.

PackageSource
newPackageSourceLocation -Spravované: String
-Vbscript: String
Umístění zdroje nového balíčku nasazení Zdrojová cesta musí být cesta UNC (Universal Naming Convention). Všechny aktualizace dostupné ve starém zdroji balíčku musí být dostupné v novém zdroji balíčku.

Kompilace kódu

Tento příklad jazyka C# vyžaduje:

Obory názvů

Systému

System.collections.generic

System.text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Sestavení

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Robustní programování

Další informace o zpracování chyb najdete v tématu Informace o chybách Configuration Manager.

Zabezpečení rozhraní .NET Framework

Další informace o zabezpečení Configuration Manager aplikací najdete v tématu Configuration Manager správa na základě rolí.

Viz taky

Informace o nasazeních aktualizací softwaruSMS_SoftwareUpdatesPackage
Metoda ValidateNewPackageSource ve třídě SMS_SoftwareUpdatesPackage