This page contains Windows bias

About This Page

This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.

Bias Analysis

Bias Types:
⚠️ powershell_heavy
⚠️ windows_tools
⚠️ missing_linux_example
⚠️ windows_first
Summary:
The documentation exclusively provides a PowerShell script sample for managing backup policies, referencing Windows-specific tools (such as the MARS agent and PowerShell modules like MSOnlineBackup). There are no Linux or cross-platform examples, nor any mention of equivalent Linux tools or scripting approaches. The instructions and context are entirely Windows-centric.
Recommendations:
  • Add equivalent script samples for Linux environments, using Bash or Python and relevant Linux backup tools (e.g., rsync, cron, or third-party backup agents).
  • Clearly indicate in the introduction whether the procedure is Windows-only, and provide links or references to Linux-compatible solutions if available.
  • If the MARS agent or the described backup policy management is not supported on Linux, explicitly state this and suggest alternative approaches for Linux systems.
  • Ensure future documentation includes parity between Windows and Linux by providing side-by-side examples or a dedicated section for each platform.
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-07-12 23:44 #41 in_progress ❌ Biased
2025-07-12 00:58 #8 cancelled ✅ Clean
2025-07-10 05:06 #7 processing ✅ Clean

Flagged Code Snippets

<# .SYNOPSIS Modify file folder policy .DESCRIPTION Modify file folder policy .ROLE Administrators #> param ( [Parameter(Mandatory = $true)] [string[]] $filePath, [Parameter(Mandatory = $true)] [string[]] $daysOfWeek, [Parameter(Mandatory = $true)] [string[]] $timesOfDay, [Parameter(Mandatory = $true)] [int] $weeklyFrequency, [Parameter(Mandatory = $false)] [int] $retentionDays, [Parameter(Mandatory = $false)] [Boolean] $retentionWeeklyPolicy, [Parameter(Mandatory = $false)] [int] $retentionWeeks, [Parameter(Mandatory = $false)] [Boolean] $retentionMonthlyPolicy, [Parameter(Mandatory = $false)] [int] $retentionMonths, [Parameter(Mandatory = $false)] [Boolean] $retentionYearlyPolicy, [Parameter(Mandatory = $false)] [int] $retentionYears ) Set-StrictMode -Version 5.0 $env:PSModulePath = (Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name PSModulePath).PSModulePath Import-Module MSOnlineBackup $ErrorActionPreference = "Stop" Try { $timesOfDaySchedule = @() foreach ($time in $timesOfDay) { $timesOfDaySchedule += ([TimeSpan]$time) } $daysOfWeekSchedule = @() foreach ($day in $daysOfWeek) { $daysOfWeekSchedule += ([System.DayOfWeek]$day) } $schedule = New-OBSchedule -DaysOfWeek $daysOfWeekSchedule -TimesOfDay $timesOfDaySchedule -WeeklyFrequency $weeklyFrequency if ($daysOfWeekSchedule.Count -eq 7) { if ($retentionWeeklyPolicy -and $retentionMonthlyPolicy -and $retentionYearlyPolicy) { $retention = New-OBRetentionPolicy -RetentionDays $retentionDays -RetentionWeeklyPolicy:$true -WeekDaysOfWeek $daysOfWeekSchedule -WeekTimesOfDay $timesOfDaySchedule -RetentionWeeks $retentionWeeks -RetentionMonthlyPolicy:$true -MonthDaysOfWeek $daysOfWeekSchedule -MonthTimesOfDay $timesOfDaySchedule -RetentionMonths $retentionMonths -RetentionYearlyPolicy:$true -YearDaysOfWeek $daysOfWeekSchedule -YearTimesOfDay $timesOfDaySchedule -RetentionYears $retentionYears } elseif ($retentionWeeklyPolicy -and $retentionMonthlyPolicy) { $retention = New-OBRetentionPolicy -RetentionDays $retentionDays -RetentionWeeklyPolicy:$true -WeekDaysOfWeek $daysOfWeekSchedule -WeekTimesOfDay $timesOfDaySchedule -RetentionWeeks $retentionWeeks -RetentionMonthlyPolicy:$true -MonthDaysOfWeek $daysOfWeekSchedule -MonthTimesOfDay $timesOfDaySchedule -RetentionMonths $retentionMonths } elseif ($retentionWeeklyPolicy -and $retentionYearlyPolicy) { $retention = New-OBRetentionPolicy -RetentionDays $retentionDays -RetentionWeeklyPolicy:$true -WeekDaysOfWeek $daysOfWeekSchedule -WeekTimesOfDay $timesOfDaySchedule -RetentionWeeks $retentionWeeks -RetentionYearlyPolicy:$true -YearDaysOfWeek $daysOfWeekSchedule -YearTimesOfDay $timesOfDaySchedule -RetentionYears $retentionYears } elseif ($retentionYearlyPolicy -and $retentionMonthlyPolicy) { $retention = New-OBRetentionPolicy -RetentionDays $retentionDays -RetentionMonthlyPolicy:$true -MonthDaysOfWeek $daysOfWeekSchedule -MonthTimesOfDay $timesOfDaySchedule -RetentionMonths $retentionMonths -RetentionYearlyPolicy:$true -YearDaysOfWeek $daysOfWeekSchedule -YearTimesOfDay $timesOfDaySchedule -RetentionYears $retentionYears } elseif ($retentionWeeklyPolicy) { $retention = New-OBRetentionPolicy -RetentionDays $retentionDays -RetentionWeeklyPolicy:$true -WeekDaysOfWeek $daysOfWeekSchedule -WeekTimesOfDay $timesOfDaySchedule -RetentionWeeks $retentionWeeks } elseif ($retentionMonthlyPolicy) { $retention = New-OBRetentionPolicy -RetentionDays $retentionDays -RetentionMonthlyPolicy:$true -MonthDaysOfWeek $daysOfWeekSchedule -MonthTimesOfDay $timesOfDaySchedule -RetentionMonths $retentionMonths } elseif ($retentionYearlyPolicy) { $retention = New-OBRetentionPolicy -RetentionDays $retentionDays -RetentionYearlyPolicy:$true -YearDaysOfWeek $daysOfWeekSchedule -YearTimesOfDay $timesOfDaySchedule -RetentionYears $retentionYears } else { $retention = New-OBRetentionPolicy -RetentionDays $retentionDays } } else { if ($retentionWeeklyPolicy -and $retentionMonthlyPolicy -and $retentionYearlyPolicy) { $retention = New-OBRetentionPolicy -RetentionWeeklyPolicy:$true -WeekDaysOfWeek $daysOfWeekSchedule -WeekTimesOfDay $timesOfDaySchedule -RetentionWeeks $retentionWeeks -RetentionMonthlyPolicy:$true -MonthDaysOfWeek $daysOfWeekSchedule -MonthTimesOfDay $timesOfDaySchedule -RetentionMonths $retentionMonths -RetentionYearlyPolicy:$true -YearDaysOfWeek $daysOfWeekSchedule -YearTimesOfDay $timesOfDaySchedule -RetentionYears $retentionYears } elseif ($retentionWeeklyPolicy -and $retentionMonthlyPolicy) { $retention = New-OBRetentionPolicy -RetentionWeeklyPolicy:$true -WeekDaysOfWeek $daysOfWeekSchedule -WeekTimesOfDay $timesOfDaySchedule -RetentionWeeks $retentionWeeks -RetentionMonthlyPolicy:$true -MonthDaysOfWeek $daysOfWeekSchedule -MonthTimesOfDay $timesOfDaySchedule -RetentionMonths $retentionMonths } elseif ($retentionWeeklyPolicy -and $retentionYearlyPolicy) { $retention = New-OBRetentionPolicy -RetentionWeeklyPolicy:$true -WeekDaysOfWeek $daysOfWeekSchedule -WeekTimesOfDay $timesOfDaySchedule -RetentionWeeks $retentionWeeks -RetentionYearlyPolicy:$true -YearDaysOfWeek $daysOfWeekSchedule -YearTimesOfDay $timesOfDaySchedule -RetentionYears $retentionYears } elseif ($retentionYearlyPolicy -and $retentionMonthlyPolicy) { $retention = New-OBRetentionPolicy -RetentionMonthlyPolicy:$true -MonthDaysOfWeek $daysOfWeekSchedule -MonthTimesOfDay $timesOfDaySchedule -RetentionMonths $retentionMonths -RetentionYearlyPolicy:$true -YearDaysOfWeek $daysOfWeekSchedule -YearTimesOfDay $timesOfDaySchedule -RetentionYears $retentionYears } elseif ($retentionWeeklyPolicy) { $retention = New-OBRetentionPolicy -RetentionWeeklyPolicy:$true -WeekDaysOfWeek $daysOfWeekSchedule -WeekTimesOfDay $timesOfDaySchedule -RetentionWeeks $retentionWeeks } elseif ($retentionMonthlyPolicy) { $retention = New-OBRetentionPolicy -RetentionMonthlyPolicy:$true -MonthDaysOfWeek $daysOfWeekSchedule -MonthTimesOfDay $timesOfDaySchedule -RetentionMonths $retentionMonths } elseif ($retentionYearlyPolicy) { $retention = New-OBRetentionPolicy -RetentionYearlyPolicy:$true -YearDaysOfWeek $daysOfWeekSchedule -YearTimesOfDay $timesOfDaySchedule -RetentionYears $retentionYears } } $oldPolicy = Get-OBPolicy if ($oldPolicy) { $ospec = Get-OBFileSpec $oldPolicy $p = Remove-OBFileSpec -FileSpec $ospec -Policy $oldPolicy -Confirm:$false $fileSpec = New-OBFileSpec -FileSpec $filePath Add-OBFileSpec -Policy $p -FileSpec $fileSpec -Confirm:$false Set-OBSchedule -Policy $p -Schedule $schedule -Confirm:$false Set-OBRetentionPolicy -Policy $p -RetentionPolicy $retention -Confirm:$false Set-OBPolicy -Policy $p -Confirm:$false $p } else { $policy = New-OBPolicy $fileSpec = New-OBFileSpec -FileSpec $filePath Add-OBFileSpec -Policy $policy -FileSpec $fileSpec Set-OBSchedule -Policy $policy -Schedule $schedule Set-OBRetentionPolicy -Policy $policy -RetentionPolicy $retention Set-OBPolicy -Policy $policy -Confirm:$false } } Catch { if ($error[0].ErrorDetails) { throw $error[0].ErrorDetails } throw $error[0] }