Starta en process under en användare
Description
Det här exemplet visar hur du kan använda resursen WindowsProcess
för att säkerställa att en process körs under ett visst konto.
Du uppmanas att ange en autentiseringsuppgift om du inte uttryckligen skickar en med parametern Credential . Egenskapen Credential för resursen är inställd på det här värdet.
Med Se till inställd på Present
, Sökväg inställd på C:\Windows\System32\gpresult.exe
och Argument inställd på /h C:\gp2.htm
börjar gpresult.exe
resursen med de angivna argumenten om den inte körs. Eftersom egenskapen Credential har angetts startar resursen processen som det kontot.
Med Invoke-DscResource
Det här skriptet visar hur du kan använda resursen WindowsProcess
med cmdleten Invoke-DscResource
för att säkerställa gpresult.exe
att den körs med argumenten /h C:\gp2.htm
som ett användardefinerat konto.
[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
}
}
Med en konfiguration
Det här kodfragmentet visar hur du kan definiera ett Configuration
med ett WindowsProcess
resursblock för att säkerställa gpresult.exe
att körs med argumenten /h C:\gp2.htm
som ett användardefinieringskonto.
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'
}
}
}