Megosztás a következőn keresztül:


A központi telepítési csomag forrásának módosítása

A szoftverfrissítések központi telepítési csomagjának központi telepítési csomagjának forrását a Configuration Manager a SMS_SoftwareUpdatesPackage osztály egy példányának beszerzésével és a ValidateNewPackageSource metódussal módosíthatja.

Megjegyzés:

A legtöbb más csomagtípus csomagforrása módosítható a konzolon. Ez a lehetőség azonban nem érhető el szoftverfrissítési csomagokhoz.

Az üzembehelyezési csomag forrásának módosítása

  1. Állítson be egy kapcsolatot az SMS-szolgáltatóval.

  2. Szerezzen be egy meglévő csomagobjektumot a SMS_SoftwareUpdatesPackage osztály használatával.

  3. Ellenőrizze a csomag forrását a ValidateNewPackageSource metódussal.

  4. Meglévő szoftverfrissítések központi telepítési csomagjának csomagforrását a PkgSourcePath csomag tulajdonságának módosításával módosíthatja.

Példa

Az alábbi példametódus bemutatja, hogyan módosíthatja a szoftverfrissítések központi telepítési csomagjának forrását a osztály és a SMS_SoftwareUpdatesPackageValidateNewPackageSource metódus használatával.

Megjegyzés:

A régi csomagforrásban elérhető összes frissítésnek elérhetőnek kell lennie az új csomagforrásban (a tartalomforrás elérési útja, amely változóként lett átadva az newPackageSourceLocation alábbi szkriptekben).

A mintakód meghívásával kapcsolatos információkért lásd: Configuration Manager Kódrészletek hívása.

Példa a Visual Basicben a subroutine hívásra:


' PREWORK FOR ChangeDeploymentPackageSource  

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

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

Példa a metódushívásra a C#-ban:


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

A példametódus a következő paraméterekkel rendelkezik:

Paraméter Típus Leírás
connection -Kezelt: WqlConnectionManager
- VBScript: SWbemServices
Érvényes kapcsolat az SMS-szolgáltatóval.
existingSUMPackageID -Kezelt: String
-Vbscript: String
Meglévő szoftverfrissítések központi telepítési csomagjának csomagazonosítója.
validateNewPackageSource - Felügyelt: dictionary objektum A validateNewPackageSource egy szótárobjektum, amely a metódus által igényelt paramétereket ValidateNewPackageSource tartalmazza.

PackageSource
newPackageSourceLocation -Kezelt: String
-Vbscript: String
Az új üzembehelyezési csomag forráshelye. A forrásútvonalnak univerzális elnevezési konvenciós (UNC) elérési útnak kell lennie. A régi csomagforrásban elérhető összes frissítésnek elérhetőnek kell lennie az új csomagforrásban.

A kód fordítása

Ehhez a C#-példához a következőre van szükség:

Névterek

Rendszer

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Összeszerelés

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Robusztus programozás

A hibakezeléssel kapcsolatos további információkért lásd: A Configuration Manager hibák ismertetése.

.NET-keretrendszer Security

A Configuration Manager alkalmazások biztonságossá tételével kapcsolatos további információkért lásd: Configuration Manager szerepköralapú felügyelet.

Lásd még

Tudnivalók a szoftverfrissítések központi telepítésérőlSMS_SoftwareUpdatesPackage
ValidateNewPackageSource metódus a SMS_SoftwareUpdatesPackage osztályban