Files
winutil/functions/private/Copy-Files.ps1
T

48 lines
1.9 KiB
PowerShell
Raw Normal View History

+12
2023-11-28 16:11:11 -06:00
function Copy-Files {
<#
+12
2023-11-28 16:11:11 -06:00
.DESCRIPTION
This function will make all modifications to the registry
.EXAMPLE
Set-WinUtilRegistry -Name "PublishUserActivities" -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Type "DWord" -Value "0"
#>
+12
2023-11-28 16:11:11 -06:00
param (
[string]$Path,
[string]$Destination,
[switch]$Recurse = $false,
[switch]$Force = $false
+12
2023-11-28 16:11:11 -06:00
)
try {
+12
2023-11-28 16:11:11 -06:00
$files = Get-ChildItem -Path $path -Recurse:$recurse
Write-Host "Copy $($files.Count) file(s) from $path to $destination"
+12
2023-11-28 16:11:11 -06:00
foreach ($file in $files) {
$status = "Copying file {0} of {1}: {2}" -f $counter, $files.Count, $file.Name
+12
2023-11-28 16:11:11 -06:00
Write-Progress -Activity "Copy Windows files" -Status $status -PercentComplete ($counter++/$files.count*100)
$restpath = $file.FullName -Replace $path, ''
if ($file.PSIsContainer -eq $true) {
+12
2023-11-28 16:11:11 -06:00
Write-Debug "Creating $($destination + $restpath)"
New-Item ($destination+$restpath) -Force:$force -Type Directory -ErrorAction SilentlyContinue
} else {
+12
2023-11-28 16:11:11 -06:00
Write-Debug "Copy from $($file.FullName) to $($destination+$restpath)"
Copy-Item $file.FullName ($destination+$restpath) -ErrorAction SilentlyContinue -Force:$force
+12
2023-11-28 16:11:11 -06:00
Set-ItemProperty -Path ($destination+$restpath) -Name IsReadOnly -Value $false
}
+12
2023-11-28 16:11:11 -06:00
}
Write-Progress -Activity "Copy Windows files" -Status "Ready" -Completed
} catch {
Write-Host "Unable to Copy all the files due to an unhandled exception" -ForegroundColor Yellow
Write-Host "Error information: $($_.Exception.Message)`n" -ForegroundColor Yellow
Write-Host "Additional information:" -ForegroundColor Yellow
Write-Host $PSItem.Exception.StackTrace
# Write possible suggestions
Write-Host "`nIf you are using an antivirus, try configuring exclusions"
+12
2023-11-28 16:11:11 -06:00
}
}