forked from dsccommunity/xPSDesiredStateConfiguration
-
Notifications
You must be signed in to change notification settings - Fork 0
/
xWindowsProcess_StartProcessUnderUserConfig.ps1
88 lines (74 loc) · 2.56 KB
/
xWindowsProcess_StartProcessUnderUserConfig.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<#PSScriptInfo
.VERSION 1.0.1
.GUID 1bea33c0-38a6-4332-82b9-e1a1d40b56dc
.AUTHOR Microsoft Corporation
.COMPANYNAME Microsoft Corporation
.COPYRIGHT
.TAGS DSCConfiguration
.LICENSEURI https://github.com/dsccommunity/xPSDesiredStateConfiguration/blob/main/LICENSE
.PROJECTURI https://github.com/dsccommunity/xPSDesiredStateConfiguration
.ICONURI
.EXTERNALMODULEDEPENDENCIES
.REQUIREDSCRIPTS
.EXTERNALSCRIPTDEPENDENCIES
.RELEASENOTES First version.
.PRIVATEDATA 2016-Datacenter,2016-Datacenter-Server-Core
#>
#Requires -module 'xPSDesiredStateConfiguration'
<#
.SYNOPSIS
Configuration that starts a process under the given credential.
.DESCRIPTION
Configuration that starts a process under the given credential, that is
provided in the given file path with the specified arguments.
.PARAMETER FilePath
The path to the executable file to start.
.PARAMETER Argument
The arguments for the process to start. Defaults to no argument.
.PARAMETER Credential
Credential to start the process under.
.NOTES
To use the sample(s) with credentials, see blog at:
http://blogs.msdn.com/b/powershell/archive/2014/01/31/want-to-secure-credentials-in-windows-powershell-desired-state-configuration.aspx
.EXAMPLE
xWindowsProcess_StartProcessUnderUserConfig -FilePath 'C:\WINDOWS\system32\PING.EXE' -Argument '-t localhost' -Credential (Get-Credential)
Compiles a configuration that starts a 'ping' process under the given
credential, that continuously ping localhost, and monitors that the
process 'ping' is always started.
#>
Configuration xWindowsProcess_StartProcessUnderUserConfig
{
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[System.String]
$FilePath,
[Parameter()]
[ValidateNotNullOrEmpty()]
[System.String]
$Argument,
[Parameter(Mandatory = $true)]
[System.Management.Automation.PSCredential]
[System.Management.Automation.Credential()]
$Credential
)
Import-DSCResource -ModuleName 'xPSDesiredStateConfiguration'
Node localhost
{
xUser 'CreateUserAccount'
{
Ensure = 'Present'
UserName = Split-Path -Path $Credential.UserName -Leaf
Password = $Credential
}
xWindowsProcess 'StartProcessUnderUser'
{
Path = $FilePath
Arguments = $Argument
Credential = $Credential
Ensure = 'Present'
}
}
}