在用户下启动进程
说明
此示例演示如何使用 WindowsProcess
资源来确保进程在特定帐户下运行。
如果未使用 Credential 参数显式传递凭据,系统会提示输入 凭据 。 资源的 Credential 属性设置为此值。
将“确保”设置为Present
“路径”C:\Windows\System32\gpresult.exe
和“参数”设置为/h C:\gp2.htm
“时,如果资源未运行,则资源以指定的参数开头gpresult.exe
。 由于设置了 Credential 属性,因此资源将启动进程作为该帐户。
使用 Invoke-DscResource
此脚本演示如何 WindowsProcess
将资源与 cmdlet 配合使用 Invoke-DscResource
,以确保 gpresult.exe
以参数 /h C:\gp2.htm
作为用户指定的帐户运行。
[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
}
}
使用配置
此代码片段演示如何使用资源块定义一个Configuration
WindowsProcess
,以确保gpresult.exe
使用参数/h C:\gp2.htm
作为用户指定的帐户运行。
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'
}
}
}