-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSystemctl.psm1
187 lines (158 loc) · 4.97 KB
/
Systemctl.psm1
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
function Get-Service {
<#
.SYNOPSIS
Gets the services on the computer.
.DESCRIPTION
Retreives services on a computer, including running and stopped services. By default, without parameters, all local services will be returned.
.INPUTS
System.String
.OUTPUTS
Output of systemctl.
.EXAMPLE
Get-Service -Name sshd.service
Get-Service -DisplayName default-kernel.path
#>
#Requires -Version 6.0
[CmdletBinding()]
param(
[Parameter(Mandatory = $false,ValueFromPipeline = $true)]
[string[]]$Name,
[Parameter(Mandatory = $false)]
[string[]]$DisplayName,
[Parameter(Mandatory = $false)]
[string[]]$Include,
[Parameter(Mandatory = $false)]
[string[]]$Exclude
)
$Output = (/usr/bin/env systemctl status $Name $Include $DisplayName)
$Output
}
function Start-Service {
<#
.SYNOPSIS
Starts one or more stopped services.
.DESCRIPTION
Sends a start message to systemctl for each of the specified services. If a service is already running, the message is ignored without error. You can specify the services by their service names or display names that represent the services that you want to start.
.INPUTS
System.String
.OUTPUTS
If no error is generated, then nothing.
.EXAMPLE
Start-Service -Name sshd.service
Start-Service -Confirm -DisplayName default-kernel.path
#>
#Requires -Version 6.0
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[switch]$Confirm,
[Parameter(Mandatory = $false,ValueFromPipeline = $true)]
[string[]]$Name,
[Parameter(Mandatory = $false)]
[string[]]$DisplayName,
[Parameter(Mandatory = $false)]
[string[]]$Include,
[Parameter(Mandatory = $false)]
[string[]]$Exclude
)
$Question = 'Are you sure you want to perform this action?'
$Choices = '&Yes', '&No'
if ($Confirm) {
$Decide = $Host.UI.PromptForChoice('Confirm', $Question, $Choices, 1)
if ($Decide -ne 0) {
return
}
}
$Output = (/usr/bin/env systemctl start $Name $Include $DisplayName)
$Output
}
function Stop-Service {
<#
.SYNOPSIS
Stops one or more running services.
.DESCRIPTION
Sends a stop message to systemctl for each of the specified services. You can specify the services by their service names or display names that represent the services that you want to stop.
.INPUTS
System.String
.OUTPUTS
If no error is generated, then nothing.
.EXAMPLE
Stop-Service -Name sshd.service
Stop-Service -Confirm -DisplayName default-kernel.path
#>
#Requires -Version 6.0
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[switch]$Confirm,
[Parameter(Mandatory = $false)]
[switch]$Force,
[Parameter(Mandatory = $false,ValueFromPipeline = $true)]
[string[]]$Name,
[Parameter(Mandatory = $false)]
[string[]]$DisplayName,
[Parameter(Mandatory = $false)]
[string[]]$Include,
[Parameter(Mandatory = $false)]
[string[]]$Exclude
)
$Question = 'Are you sure you want to perform this action?'
$Choices = '&Yes', '&No'
if ($Confirm) {
$Decide = $Host.UI.PromptForChoice('Confirm', $Question, $Choices, 1)
if ($Decide -ne 0) {
return
}
}
$IsForced = ""
if ($Force) {
$IsForced = "--force"
}
$Output = (/usr/bin/env systemctl stop $IsForced $Name $Include $DisplayName)
$Output
}
function Restart-Service {
<#
.SYNOPSIS
Stops and then starts one or more services.
.DESCRIPTION
Sends a stop message to systemctl for each of the specified services, then sends a start message for each of the specified services. You can specify the services by their service names or display names that represent the services that you want to restart.
.INPUTS
System.String
.OUTPUTS
If no error is generated, then nothing.
.EXAMPLE
Restart-Service -Name sshd.service
Restart-Service -Confirm -DisplayName default-kernel.path
#>
#Requires -Version 6.0
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[switch]$Confirm,
[Parameter(Mandatory = $false)]
[switch]$Force,
[Parameter(Mandatory = $false,ValueFromPipeline = $true)]
[string[]]$Name,
[Parameter(Mandatory = $false)]
[string[]]$DisplayName,
[Parameter(Mandatory = $false)]
[string[]]$Include,
[Parameter(Mandatory = $false)]
[string[]]$Exclude
)
$Question = 'Are you sure you want to perform this action?'
$Choices = '&Yes', '&No'
if ($Confirm) {
$Decide = $Host.UI.PromptForChoice('Confirm', $Question, $Choices, 1)
if ($Decide -ne 0) {
return
}
}
$IsForced = ""
if ($Force) {
$IsForced = "--force"
}
$Output = (/usr/bin/env systemctl restart $IsForced $Name $Include $DisplayName)
$Output
}