从多次产生终止错误(新项目)的开始脚本命令生成的日志文件



我创建了一个脚本,用于根据保留期从 Azure 存储帐户中删除 Blob。我正在使用开始脚本生成日志文件。与脚本输出一起,它会多次捕获以下错误。

PS>TerminatingError(New-Item): "The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: Could not find a part of the path 'C:Windowssystem32configsystemprofile.AzureAzInstallationChecks.json'."

我已经验证了,没有.系统配置文件下的 Azure 文件夹。 请让我知道如何解决这个问题。

下面是脚本。

try {
$Logpath = "$PSScriptRootLogs"
$LogFileNameFormat = "Backup-Retention-$(Get-Date -Format "yyyy-MM-dd-HH-mm").log"
$LogFileName = "$Logpath$LogFileNameFormat"
If (Test-Path $LogFileName) {
Remove-Item $LogFileName -Force
New-Item $LogFileName -ItemType file -Force
}
Else {
New-Item $LogFileName -ItemType file
}
Start-Transcript $LogFileName
Import-Module AzureRM
$Params = Get-Content $PSScriptRootRetention.json | ConvertFrom-Json
$StorageAccount = $Params.StorageAccount
$StorageAccountKey = $Params.Key
$StorageAccountContext = New-AzureStorageContext -StorageAccountName $StorageAccount -StorageAccountKey $StorageAccountKey
$Blobs = Get-AzureStorageBlob -Container $Params.ContainerName -Context $StorageAccountContext | Select-Object -ExpandProperty Name
$splitstring = $Blobs | ForEach-Object { [regex]::Split($_, "/")[0]}
$datetimestring = $splitstring | ForEach-Object { [regex]::Split($_, "Backup-")[1]}
$datetimes = $datetimestring  | ForEach-Object {[datetime]::ParseExact($_, "yyyyMMdd-HHmm", $null)}
$retentiontimestamp = (Get-Date).AddDays(-$Params.RententionPeriod)
$old_blobs = @()
"Checking for db backups older than $($Params.RententionPeriod) days."
foreach ($datetime in $datetimes)
{
if ( $retentiontimestamp -gt $datetime)
{
$Blobs | foreach-object { 
if($_ -match $datetime.ToString("yyyyMMdd-HHmm")) 
{
$old_blobs += Get-AzureStorageBlob -Container $Params.ContainerName -Context $StorageAccountContext -Blob $_
}
} 
}
}
if ($old_blobs.Count -gt 0)
{
"below are the dumps exceed the retention period."
"================================================="
$old_blobs.Name
"================================================="
foreach($old_blob in $old_blobs)
{
"deleting $($old_blob.Name)"
Remove-AzureStorageBlob -Blob $old_blob.Name -Container $Params.ContainerName -Context $StorageAccountContext
}
"================================================="
}
else {
"No blobs crossed the retention period."
}
}
catch {
Write-Output "$($Params.ClientName) Prod DB backup retention script failed : $($_.Exception.Message)"
Stop-Transcript
Send-Email -Message '<h3 style="color:#FF0000;"> $($Params.ClientName) Prod DB backup script failed. Please refer the attached logs for more information.</h3>' -Highpriority
}
try{
Stop-Transcript
Send-Email -Message "<h3 style='color:#00A90A;'>$($Params.ClientName) Prod DB backup retention script successfully executed. Please refer the attached logs for more information.</h3>"
}
catch{
Write-Output "$($Params.ClientName) Prod DB backup retention script: Failed to send email. $($_.Exception.Message)"
Stop-Transcript
}

我发现AzInstallationChecks.json存在于我的本地用户配置文件中。 我已将相同的文件复制到上述路径,从而解决了该问题。

最新更新