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 Present
sur , le chemin d’accèsC:\Windows\System32\gpresult.exe
défini sur et les arguments définis /h C:\gp2.htm
sur , 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 Configuration
WindowsProcess
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'
}
}
}