Remove-AzDiagnosticsWebApps.ps1

# Set-AzDiagnosticSetting -ResourceId "Resource01" -Enabled $False -Category AppServiceAuditLogs,AppServiceFileAuditLogs
Function Remove-FileChangeAudit {
Param(
    [Parameter(Mandatory = $false)]
    [Switch] $Slot,
    [string] $subscriptionId,
    [string] $appServiceRG,
    [string] $aspName
)
    # Connect using a Managed Service Identity
    try {
        $AzureContext = (Connect-AzAccount -Identity).context
    }
    catch {
        Write-Output 'There is no system-assigned user identity. Aborting. Setup the same or try using RunAs account automation method.';
    }
    Try{
# $subscriptionId = 'e925f9e8-74d0-48a2-a05d-428ac3696c49'
Set-AzContext $subscriptionId
# $appServiceRG = 'weu-sc93-preprd-rg' #Resource Group Name"
# $aspName = 'weu-sc93-preprd-rg-365400-xc-basic-hp' #Name of App Service Plan
$asp = Get-AzAppServicePlan -ResourceGroupName $appServiceRG -Name $aspName -ErrorAction Stop
$web = Get-AzWebApp -AppServicePlan $asp -ErrorAction SilentlyContinue
foreach ($webApp in ($web | Where-Object { ($_.State -eq 'Running') })) {
    Write-Output ('*' * 75)
    Write-Output ('App Name : {0}' -F $webApp.Name)
    Write-Output ('*' * 75)
    # to handle production (not slots)
    if ($Slot -ne $true) {
        $config = Get-AzResource -ResourceGroupName $appServiceRG `
            -ResourceType 'Microsoft.Web/sites/config' `
            -ResourceName "$($webApp.Name)/web" `
            -ApiVersion 2016-08-01
    }
    # to handle the slots
    if ($Slot -eq $true) {
        # for app slots
        $appServiceName = "$($webApp.Name)/staging"
        $config = Get-AzResource -ResourceGroupName $appServiceRG `
            -ResourceType 'Microsoft.Web/sites/slots' `
            -ResourceName "$($appServiceName)" `
            -ApiVersion 2016-08-01 -ErrorAction SilentlyContinue
    }
    Write-Host " Current FILECHANGEAUDIT Status for the $($webApp.Name) : $($config.Properties.fileChangeAuditEnabled)"
    $config.Properties.fileChangeAuditEnabled = 'false'
    $config.Properties.PSObject.Properties.Remove('ReservedInstanceCount')

    $newCategories = @()

    ForEach ($entry in $config.Properties.azureMonitorLogCategories) {
        If ($entry -ne 'AppServiceFileAuditLogs') {
            $newCategories += $entry
        }
    }
    $config.Properties.azureMonitorLogCategories = $newCategories
    $config | Set-AzResource -Force
    }
}
    catch {
        Write-Output "Error: $($_.Exception.Message)"
    }
}