@@ -41,6 +41,7 @@ function IncludePath([string[]] $pathParts) {
4141
4242function ProcessDirectory ([System.Text.StringBuilder ] $DirectoryBuilder ,
4343 [System.Text.StringBuilder ] $CopyBuilder ,
44+ [System.Text.StringBuilder ] $AclBuilder ,
4445 [string ] $SourcePath ,
4546 [bool ] $FirstDirectory ) {
4647 Write-Verbose " Processing source directory: $SourcePath "
@@ -56,6 +57,12 @@ function ProcessDirectory([System.Text.StringBuilder] $DirectoryBuilder,
5657 $copy = ' COPY ["{0}", "{1}"]' -f (Split-Path $SourcePath - Leaf), ($targetPath -Replace " \\" , " /" )
5758 $null = $CopyBuilder.AppendLine ($copy )
5859
60+ $null = $AclBuilder.AppendLine (' RUN $path=' + " 'C:$targetPath '; `` " )
61+ $null = $AclBuilder.AppendLine (' $acl = Get-Acl $path; `' )
62+ $null = $AclBuilder.AppendLine (' $newOwner = [System.Security.Principal.NTAccount]('' BUILTIN\IIS_IUSRS'' ); `' )
63+ $null = $AclBuilder.AppendLine (' $acl.SetOwner($newOwner); `' )
64+ $null = $AclBuilder.AppendLine (' dir -r $path | Set-Acl -aclobject $acl' )
65+
5966 $fullSourcePath = $SourcePath
6067 if ($global :SourceType -eq [SourceType ]::Image -or
6168 $global :SourceType -eq [SourceType ]::Remote) {
@@ -127,7 +134,8 @@ if ($Artifact.Status -eq 'Present') {
127134 # process the main site path
128135 $DirectoryBuilder = New-Object System.Text.StringBuilder
129136 $CopyBuilder = New-Object System.Text.StringBuilder
130- ProcessDirectory - DirectoryBuilder $DirectoryBuilder - CopyBuilder $CopyBuilder - SourcePath $mainVirtualDir.PhysicalPath - FirstDirectory $true
137+ $AclBuilder = New-Object System.Text.StringBuilder
138+ ProcessDirectory - DirectoryBuilder $DirectoryBuilder - CopyBuilder $CopyBuilder - AclBuilder $AclBuilder - SourcePath $mainVirtualDir.PhysicalPath - FirstDirectory $true
131139
132140 # creating the website creates the default app & vdir underneath it
133141 $sourcePath = $mainVirtualDir.PhysicalPath
@@ -200,6 +208,9 @@ if ($Artifact.Status -eq 'Present') {
200208
201209 $null = $ResultBuilder.AppendLine ($CopyBuilder.ToString ().Trim().TrimEnd(' ``' ))
202210 $null = $ResultBuilder.AppendLine (' ' )
211+
212+ $null = $ResultBuilder.AppendLine ($AclBuilder.ToString ().Trim().TrimEnd(' ``' ))
213+ $null = $ResultBuilder.AppendLine (' ' )
203214 }
204215}
205216
0 commit comments