Stoppa 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 inte körs, med hjälp av ett angivet konto för att stoppa den om det behövs.
Du uppmanas att ange en autentiseringsuppgift om du inte uttryckligen skickar en med parametern Credential . Egenskapen Autentiseringsuppgifter för resursen är inställd på det här värdet.
Med Kontrollera inställt på Absent
, Sökväg inställd på C:\Windows\System32\gpresult.exe
och Argument inställt på en tom sträng stoppar resursen alla processer som körs gpresult.exe
. Eftersom egenskapen Credential har angetts stoppar 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 inte körs och stoppar den som ett användardefinerat konto.
[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
}
}
Med en konfiguration
Det här kodfragmentet visar hur du kan definiera en Configuration
med ett WindowsProcess
resursblock för att säkerställa gpresult.exe
att den inte körs, vilket stoppar den som ett användardefinieringskonto.
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'
}
}
}