@@ -29,6 +29,19 @@ function Check-BcContainerHelperPermissions {
29
29
)
30
30
31
31
if (! $isAdministrator -or $Fix ) {
32
+
33
+ $startProcessParams = @ {
34
+ " Verb" = " RunAs"
35
+ " Wait" = $true
36
+ " WindowStyle" = " Hidden"
37
+ " PassThru" = $true
38
+ }
39
+ if ($isPsCore ) {
40
+ $startProcessParams += @ { " FilePath" = " pwsh" }
41
+ }
42
+ else {
43
+ $startProcessParams += @ { " FilePath" = " powershell" }
44
+ }
32
45
if (! $silent ) {
33
46
if ($isAdministrator ) {
34
47
Write-Host " Running as administrator"
@@ -58,15 +71,15 @@ function Check-BcContainerHelperPermissions {
58
71
Param ($myUsername , $hostHelperFolder )
59
72
try {
60
73
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($myUsername , ' FullControl' , 3 , ' InheritOnly' , ' Allow' )
61
- $acl = [ System.IO.Directory ]::GetAccessControl( $hostHelperFolder )
74
+ $acl = Get-Acl - Path $hostHelperFolder
62
75
$acl.AddAccessRule ($rule )
63
- [ System.IO.Directory ]::SetAccessControl( $hostHelperFolder , $acl )
76
+ Set-Acl - Path $hostHelperFolder - AclObject $acl
64
77
EXIT 0
65
78
} catch {
66
79
EXIT 1
67
80
}
68
81
}
69
- $exitCode = (Start-Process powershell - ArgumentList " -command & {$scriptblock } -myUsername '$myUsername ' -hostHelperFolder '$ ( $bcContainerHelperConfig.hostHelperFolder ) '" - Verb RunAs - wait - WindowStyle Hidden - PassThru ).ExitCode
82
+ $exitCode = (Start-Process @startProcessParams - ArgumentList " -command & {$scriptblock } -myUsername '$myUsername ' -hostHelperFolder '$ ( $bcContainerHelperConfig.hostHelperFolder ) '" ).ExitCode
70
83
if ($exitcode -eq 0 ) {
71
84
Write-Host - ForegroundColor Green " Permissions successfully added"
72
85
} else {
@@ -98,15 +111,15 @@ function Check-BcContainerHelperPermissions {
98
111
Param ($myUsername , $hostsFile )
99
112
try {
100
113
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($myUsername , ' Modify' , ' Allow' )
101
- $acl = [ System.IO.Directory ]::GetAccessControl( $hostsFile )
114
+ $acl = Get-Acl - Path $hostsFile
102
115
$acl.AddAccessRule ($rule )
103
- [ System.IO.Directory ]::SetAccessControl( $hostsFile , $acl )
116
+ Set-Acl - Path $hostsFile - AclObject $acl
104
117
EXIT 0
105
118
} catch {
106
119
EXIT 1
107
120
}
108
121
}
109
- $exitcode = (Start-Process powershell - ArgumentList " -command & {$scriptblock } -myUsername '$myUsername ' -hostsFile '$hostsFile '" - Verb RunAs - wait - PassThru - WindowStyle Hidden ).ExitCode
122
+ $exitcode = (Start-Process @startProcessParams - ArgumentList " -command & {$scriptblock } -myUsername '$myUsername ' -hostsFile '$hostsFile '" ).ExitCode
110
123
if ($exitcode -eq 0 ) {
111
124
Write-Host - ForegroundColor Green " Permissions successfully added"
112
125
} else {
@@ -166,16 +179,16 @@ function Check-BcContainerHelperPermissions {
166
179
Param ($myUsername , $npipe )
167
180
try {
168
181
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($myUsername , ' FullControl' , ' Allow' )
169
- $acl = [ System.IO.Directory ]::GetAccessControl( $npipe )
182
+ $acl = Get-Acl - Path $npipe
170
183
$acl.AddAccessRule ($rule )
171
- [ System.IO.Directory ]::SetAccessControl( $npipe , $acl )
184
+ Set-Acl - Path $npipe - AclObject $acl
172
185
exit 0
173
186
} catch {
174
187
exit 1
175
188
}
176
189
}
177
190
178
- $exitcode = (Start-Process powershell - ArgumentList " -command & {$scriptblock } -myUsername '$myUsername ' -npipe '$npipe '" - Verb RunAs - wait - PassThru ).ExitCode
191
+ $exitcode = (Start-Process @startProcessParams - ArgumentList " -command & {$scriptblock } -myUsername '$myUsername ' -npipe '$npipe '" ).ExitCode
179
192
if ($exitcode -eq 0 ) {
180
193
Write-Host - ForegroundColor Green " Permissions successfully added"
181
194
} else {
0 commit comments