functions/backup-d365webconfig.ps1
<# .SYNOPSIS Backup the web.config file .DESCRIPTION Will backup the web.config file located in the AOS / IIS folder .PARAMETER OutputPath Path to the folder where you want the web.config file to be persisted Default is: "C:\Temp\d365fo.tools\WebConfigBackup" .PARAMETER Force Instructs the cmdlet to overwrite the destination file if it already exists .EXAMPLE PS C:\> Backup-D365WebConfig Will locate the web.config file, and back it up. It will look for the file in the AOS / IIS folder. E.g. K:\AosService\WebRoot\web.config. It will save the file to the default location: "C:\Temp\d365fo.tools\WebConfigBackup". A result set example: Filename LastModified File -------- ------------ ---- web.config 6/29/2021 7:31:04 PM C:\temp\d365fo.tools\WebConfigBackup\web.config .EXAMPLE PS C:\> Backup-D365WebConfig -Force Will locate the web.config file, back it up, and overwrite if a previous backup file exists. It will look for the file in the AOS / IIS folder. E.g. K:\AosService\WebRoot\web.config. It will save the file to the default location: "C:\Temp\d365fo.tools\WebConfigBackup". It will overwrite any file named web.config in the destination folder. A result set example: Filename LastModified File -------- ------------ ---- web.config 6/29/2021 7:31:04 PM C:\temp\d365fo.tools\WebConfigBackup\web.config .NOTES Tags: DEV, Tier2, DB, Database, Debug, JIT, LCS, Azure DB Author: Mötz Jensen (@Splaxi) #> function Backup-D365WebConfig { [CmdletBinding()] [OutputType()] param ( [string] $OutputPath = $(Join-Path $Script:DefaultTempPath "WebConfigBackup"), [switch] $Force ) begin { if (-not (Test-PathExists -Path $OutputPath -Type Container -Create)) { return } $File = $(Join-Path -Path $Script:AOSPath -ChildPath $Script:WebConfig) } process { if (-not (Test-PathExists -Path $File -Type Leaf)) { return } if (Test-PSFFunctionInterrupt) { return } $fileName = Split-Path -Path $File -Leaf $destinationFile = $(Join-Path -Path $OutputPath -ChildPath $fileName) if (-not $Force) { if ((-not (Test-PathExists -Path $destinationFile -Type Leaf -ShouldNotExist -ErrorAction SilentlyContinue -WarningAction SilentlyContinue))) { Write-PSFMessage -Level Host -Message "The <c='em'>$destinationFile</c> already exists. Consider changing the <c='em'>destination</c> path or set the <c='em'>Force</c> parameter to overwrite the file." return } } Write-PSFMessage -Level Verbose -Message "Copying from: $File" -Target $item Copy-Item -Path $File -Destination $destinationFile -Force:$Force -PassThru | Select-PSFObject "Name as Filename", "LastWriteTime as LastModified", "Fullname as File" } } |