Inicie um processo sob um utilizador
Description
Este exemplo mostra como pode utilizar o WindowsProcess
recurso para garantir que um processo está a decorrer sob uma conta específica.
É solicitado para uma credencial se não passar uma explicitamente com o parâmetro credencial . A propriedade credencial do recurso está definida para este valor.
Com a Garantia definida para Present
, Caminho definido para C:\Windows\System32\gpresult.exe
, e Argumentos definidos para /h C:\gp2.htm
, o recurso começa gpresult.exe
com os argumentos especificados se não estiver em execução. Como a propriedade credencial está definida, o recurso inicia o processo como tal conta.
Com Invoke-DscResource
Este script mostra como pode utilizar o WindowsProcess
recurso com o Invoke-DscResource
cmdlet para garantir que gpresult.exe
está a funcionar com os argumentos /h C:\gp2.htm
como uma conta especificada pelo utilizador.
[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
}
}
Com uma configuração
Este corte mostra como pode definir um Configuration
com um WindowsProcess
bloco de recursos para garantir que gpresult.exe
está a funcionar com os argumentos /h C:\gp2.htm
como uma conta especificada pelo utilizador.
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'
}
}
}