Partager via


Arrêter un processus sous un utilisateur

Description

Cet exemple montre comment utiliser la WindowsProcess ressource pour vous assurer qu’un processus n’est pas en cours d’exécution, en utilisant un compte spécifié pour l’arrêter si nécessaire.

Vous êtes invité à entrer des informations d’identification si vous n’en transmettez pas explicitement un avec le paramètre Credential . La propriété Credential de la ressource est définie sur cette valeur.

Avec l’optionAbsentGarantir définie sur , Chemin d’accèsC:\Windows\System32\gpresult.exedéfini sur et Arguments définis sur une chaîne vide, la ressource arrête tout processus en cours d’exécution gpresult.exe . Étant donné que la propriété Credential est définie, la ressource arrête le processus en tant que compte.

Avec Invoke-DscResource

Ce script montre comment utiliser la WindowsProcess ressource avec l’applet Invoke-DscResource de commande pour vous assurer qu’elle gpresult.exe n’est pas en cours d’exécution, l’arrêtant en tant que compte spécifié par l’utilisateur.

[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
    }
}

Avec une configuration

Cet extrait de code montre comment définir un ConfigurationWindowsProcess bloc de ressources pour vous assurer gpresult.exe qu’il n’est pas en cours d’exécution, l’arrêtant en tant que compte spécifié par l’utilisateur.

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'
        }
    }
}