Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En el ejemplo siguiente se muestra cómo modificar un programa, en Configuration Manager, mediante las SMS_Package
clases y propiedades y SMS_Program
.
Importante
Cualquier programa anunciado no se puede ejecutar cuando las ventanas de mantenimiento definidas en el equipo cliente se establecen durante un período menor que el de Maximum allowed run time setting
ese programa. Consulte el tema "Escenario de ejecución del programa mediante ventanas de mantenimiento" en la documentación de Configuration Manager para obtener más información.
Para cambiar el tiempo máximo de ejecución de un programa
Configure una conexión con el proveedor de SMS.
Consulte los programas asociados al identificador de paquete existente proporcionado.
Enumere los programas hasta que se encuentre una coincidencia con el nombre del programa.
Reemplace la propiedad de tiempo de ejecución máximo del programa por la que se pasa al método .
Guarde el objeto y las propiedades del programa.
Ejemplo
El método de ejemplo siguiente cambia el tiempo máximo de ejecución de un programa existente.
Nota:
Una ligera variación de este ejemplo podría cambiar los valores de propiedad de todos los programas asociados a un paquete específico. Para obtener un ejemplo, vea el ejemplo de código How to List All Programs and Their Maximum Run Time Value (Cómo enumerar todos los programas y su valor máximo de tiempo de ejecución ). Sin embargo, para obtener un método más eficaz para acceder a un programa específico, use y PackageID
ProgramName
, vea el ejemplo de código How to Modify Program Properties (Cómo modificar propiedades del programa ).
Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de Configuration Manager.
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;
}
}
El método de ejemplo tiene los parámetros siguientes:
Parámetro | Tipo | Descripción |
---|---|---|
connection swbemServices |
-Administrado: WqlConnectionManager - VBScript: SWbemServices |
Una conexión válida al proveedor de SMS. |
existingPackageID |
-Administrado: String -Vbscript: String |
Identificador de un paquete existente con el que asociar el programa. |
existingProgramNameToModify |
-Administrado: String -Vbscript: String |
Nombre del programa que se va a modificar. |
newMaxRunTime |
-Administrado: Integer -Vbscript: Integer |
Nueva duración aproximada, en minutos, de la ejecución del programa en el equipo cliente. |
Compilar el código
El ejemplo de C# requiere:
Espacios de nombres
Sistema
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Ensamblado
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
mscorlib
Programación sólida
Para obtener más información sobre el control de errores, consulte Acerca de los errores de Configuration Manager.