Dela via


Så här ändrar du den maximala körningstiden för ett program

I följande exempel visas hur du ändrar ett program i Configuration Manager med hjälp SMS_Package av klasserna och SMS_Program egenskaperna och .

Viktigt

Annonserade program kan inte köras när underhållsperioderna som definierats på klientdatorn har angetts för en period som är mindre än programmets Maximum allowed run time setting. Mer information finns i avsnittet "Programkörningsscenario med underhållsperioder" i Configuration Manager-dokumentationen.

Ändra den maximala körningstiden för ett program

  1. Konfigurera en anslutning till SMS-providern.

  2. Fråga efter de program som är associerade med det befintliga paket-ID som tillhandahålls.

  3. Räkna upp genom programmen tills en matchning för programnamnet hittas.

  4. Ersätt den maximala körningstidsegenskapen för programmet med den som skickas till metoden .

  5. Spara programobjektet och egenskaperna.

Exempel

Följande exempelmetod ändrar den maximala körningstiden för ett befintligt program.

Obs!

En liten variant av det här exemplet kan ändra egenskapsvärden för alla program som är associerade med ett specifikt paket. Ett exempel finns i kodexemplet How to List All Programs and Their Maximum Run Time Value (Visa alla program och deras högsta körningstid). En effektivare metod för att komma åt ett visst program finns dock i PackageIDProgramNamekodexemplet Så här ändrar du programegenskaper .

Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.


Sub ModifyProgram(connection, existingpackageID, existingProgramNameToModify, newMaxRunTime)  

    Const wbemFlagReturnImmediately = 16  
    Const wbemFlagForwardOnly = 32  
    Dim query  
    Dim programsForPackage  
    Dim program  

    ' Build a query to get the programs for the package.   
    query = "SELECT * FROM SMS_Program WHERE PackageID='" & existingPackageID & "'"  

    ' Run the query.  
    Set programsForPackage = connection.ExecQuery(query, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)  

    ' The query returns a collection that needs to be enumerated.  
    For Each program In programsForPackage       

        ' If a match for the program name is found, make the change(s).  
        If program.ProgramName=existingProgramNameToModify Then  

            ' Replace the existing package property (in this case the package description).  
            program.Duration = newMaxRunTime  

            ' Save the program with the modified properties.  
            program.Put_  

            ' Output program name.  
            wscript.echo "Modified program: "  & program.ProgramName  

            Exit For  
        End If  
    Next  

End Sub  
public void ModifyProgram(WqlConnectionManager connection, string existingPackageID, string existingProgramNameToModify, int newMaxRunTime)  
{  

    try  
    {  
        // Build query to get the programs for the package.  
        string query = "SELECT * FROM SMS_Program WHERE PackageID='" + existingPackageID + "'";  

        // Load the specific program to change (programname is a key value and must be unique).  
        IResultObject programsForPackage = connection.QueryProcessor.ExecuteQuery(query);  

        // The query returns a collection that needs to be enumerated.  
        foreach(IResultObject program in programsForPackage)       
        {  
            // If a match for the program name is found, make the change(s).  
            if (program["ProgramName"].StringValue == existingProgramNameToModify)  
            {                      
                 // Replace the existing package property (in this case the package description).  
                 program["Duration"].IntegerValue = newMaxRunTime;  

                 // Save the program with the modified properties.  
                 program.Put();  

                 // Output program name.  
                 Console.WriteLine("Modified program: "  + program["ProgramName"].StringValue);  
            }  
        }  

    }  

    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed to modify the program. Error: " + ex.Message);  
        throw;  
    }  
}  

Exempelmetoden har följande parametrar:

Parameter Typ Beskrivning
connection

swbemServices
-Hanterade: WqlConnectionManager
– VBScript: SWbemServices
En giltig anslutning till SMS-providern.
existingPackageID -Hanterade: String
-Vbscript: String
ID:t för ett befintligt paket som programmet ska associeras med.
existingProgramNameToModify -Hanterade: String
-Vbscript: String
Namnet på programmet som ska ändras.
newMaxRunTime -Hanterade: Integer
-Vbscript: Integer
Ny ungefärlig varaktighet, i minuter, för programkörning på klientdatorn.

Kompilera koden

C#-exemplet kräver:

Namnområden

System

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Församlingen

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

mscorlib

Robust programmering

Mer information om felhantering finns i Om Configuration Manager fel.

Se även

Översikt över programvarudistribution