Detener un proceso en un usuario
Descripción
En este ejemplo se muestra cómo puede usar el WindowsProcess
recurso para asegurarse de que un proceso no se está ejecutando, usando una cuenta especificada para detenerlo si es necesario.
Se le pedirá una credencial si no pasa una explícitamente con el parámetro Credential . La propiedad Credential del recurso se establece en este valor.
Con Asegurar establecido en Absent
, Ruta de acceso establecida en C:\Windows\System32\gpresult.exe
y Argumentos establecido en una cadena vacía, el recurso detiene cualquier proceso en ejecución gpresult.exe
. Dado que se establece la propiedad Credential , el recurso detiene el proceso como esa cuenta.
Con Invoke-DscResource
Este script muestra cómo puede usar el WindowsProcess
recurso con el cmdlet para asegurarse gpresult.exe
de que no se está ejecutando, deteniendolo como una cuenta especificada por el Invoke-DscResource
usuario.
[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
}
}
Con una configuración
Este fragmento de código muestra cómo puede definir un Configuration
con un WindowsProcess
bloque de recursos para asegurarse gpresult.exe
de que no se está ejecutando, deteniendolo como una cuenta especificada por el usuario.
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'
}
}
}