Starten eines Prozesses unter einem Benutzer
Beschreibung
In diesem Beispiel wird gezeigt, wie Sie die WindowsProcess
Ressource verwenden können, um sicherzustellen, dass ein Prozess unter einem bestimmten Konto ausgeführt wird.
Sie werden zur Eingabe einer Anmeldeinformationen aufgefordert, wenn Sie einen nicht explizit mit dem Parameter "Anmeldeinformationen " übergeben. Die Credential-Eigenschaft der Ressource wird auf diesen Wert festgelegt.
Stellen Sie sicher, dass "Present
Pfad" auf " und "Argumente" festgelegt /h C:\gp2.htm
C:\Windows\System32\gpresult.exe
ist, beginnt gpresult.exe
die Ressource mit den angegebenen Argumenten, wenn sie nicht ausgeführt wird. Da die Credential-Eigenschaft festgelegt ist, startet die Ressource den Prozess als dieses Konto.
Mit Invoke-DscResource
Dieses Skript zeigt, wie Sie die WindowsProcess
Ressource mit dem Invoke-DscResource
Cmdlet verwenden können, um sicherzustellen gpresult.exe
, dass die Argumente /h C:\gp2.htm
als benutzerdefiniertes Konto ausgeführt werden.
[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
}
}
Mit einer Konfiguration
Dieser Codeausschnitt zeigt, wie Sie einen Configuration
WindowsProcess
Ressourcenblock definieren können, um sicherzustellen gpresult.exe
, dass die Argumente /h C:\gp2.htm
als benutzerdefiniertes Konto ausgeführt werden.
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'
}
}
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für