Compartir a través de


Detener un proceso en un usuario

Descripción

En este ejemplo se muestra cómo puede usar el WindowsProcess recurso para asegurarse de que un proceso no se está ejecutando, usando una cuenta especificada para detenerlo si es necesario.

Se le pedirá una credencial si no pasa una explícitamente con el parámetro Credential . La propiedad Credential del recurso se establece en este valor.

Con Asegurar establecido en Absent, Ruta de acceso establecida en C:\Windows\System32\gpresult.exey Argumentos establecido en una cadena vacía, el recurso detiene cualquier proceso en ejecución gpresult.exe . Dado que se establece la propiedad Credential , el recurso detiene el proceso como esa cuenta.

Con Invoke-DscResource

Este script muestra cómo puede usar el WindowsProcess recurso con el cmdlet para asegurarse gpresult.exe de que no se está ejecutando, deteniendolo como una cuenta especificada por el Invoke-DscResource usuario.

[CmdletBinding()]
param(
    [ValidateNotNullOrEmpty()]
    [System.Management.Automation.PSCredential]
    [System.Management.Automation.Credential()]
$Credential = (Get-Credential)
)

begin {
    $SharedParameters = @{
        Name       = 'WindowsFeatureSet'
        ModuleName = 'PSDscResource'
        Properties = @{
            Path       = 'C:\Windows\System32\gpresult.exe'
            Arguments  = ''
            Credential = $Credential
            Ensure     = 'Absent'
        }
    }

    $NonGetProperties = @(
        'Ensure'
    )
}

process {
    $TestResult = Invoke-DscResource -Method Test @SharedParameters

    if ($TestResult.InDesiredState) {
        $QueryParameters = $SharedParameters.Clone()

        foreach ($Property in $NonGetProperties) {
            $QueryParameters.Properties.Remove($Property)
        }

        Invoke-DscResource -Method Get @QueryParameters
    } else {
        Invoke-DscResource -Method Set @SharedParameters
    }
}

Con una configuración

Este fragmento de código muestra cómo puede definir un Configuration con un WindowsProcess bloque de recursos para asegurarse gpresult.exe de que no se está ejecutando, deteniendolo como una cuenta especificada por el usuario.

Configuration StopUnderUser {
    [CmdletBinding()]
    param(
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        [System.Management.Automation.Credential()]
        $Credential = (Get-Credential)
    )

    Import-DSCResource -ModuleName 'PSDscResources'

    Node localhost {
        WindowsProcess ExampleWindowsProcess {
            Path       = 'C:\Windows\System32\gpresult.exe'
            Arguments  = ''
            Credential = $Credential
            Ensure     = 'Absent'
        }
    }
}