Partager via


Démarrer un processus sous un utilisateur

Description

Cet exemple montre comment utiliser la WindowsProcess ressource pour vous assurer qu’un processus s’exécute sous un compte spécifique.

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 La valeur s’il est défini Presentsur , le chemin d’accèsC:\Windows\System32\gpresult.exedéfini sur et les arguments définis /h C:\gp2.htmsur , la ressource commence gpresult.exe par les arguments spécifiés s’il n’est pas en cours d’exécution. Étant donné que la propriété Credential est définie, la ressource démarre 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 gpresult.exe qu’elle s’exécute avec les arguments /h C:\gp2.htm en tant que compte spécifié par l’utilisateur.

[CmdletBinding()]
param(
    [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  = '/h C:\gp2.htm'
            Credential = $Credential
            Ensure     = 'Present'
        }
    }

    $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 s’exécute avec les arguments /h C:\gp2.htm en tant que compte spécifié par l’utilisateur.

Configuration StartUnderUser {
    [CmdletBinding()]
    param(
       [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  = '/h C:\gp2.htm'
            Credential = $Credential
            Ensure     = 'Present'
        }
    }
}