```powershell $RG = 'RESOURCE GROUP' $WSID = '/subscriptions/SUB ID/resourcegroups/RESOURCE GROUP NAME/providers/microsoft.operationalinsights/workspaces/WORKSPACE NAME' $StorageAccounts = Get-AzStorageAccount -ResourceGroupName $RG $StorageShares = $StorageAccounts | Get-AzStorageShare # Function to re-add any locks post remve. function AddLock { param ( $LockObject ) $LockName = $LockObject.Name $LockLevel = $LockObject.Properties.level $LockResourceType = $LockObject.ResourceType $LockResourceName = $LockObject.ResourceName $LockResourceGroupName = $LockObject.ResourceGroupName Set-AzResourceLock -LockName $LockName -LockLevel $LockLevel -ResourceGroupName $LockResourceGroupName -ResourceName $LockResourceName -ResourceType $LockResourceType -Force } foreach ($StorageAccount in $StorageAccounts) { Write-Host $StorageAccount.StorageAccountName $Locks = Get-AzResourceLock -ResourceGroupName $StorageAccount.ResourceGroupName -ResourceType $(Get-AzResource -ResourceId $StorageAccount.Id).ResourceType -ResourceName $StorageAccount.StorageAccountName $LockRemoved = $false $DiagnostSettings = Get-AzDiagnosticSetting -ResourceId $StorageAccount.Id $StorageTypes = @( "/blobServices/default" "/fileServices/default" "/queueServices/default" "/tableServices/default" ) foreach ($StorageType in $StorageTypes) { $RID = $StorageAccount.Id + $StorageType $SubDiagnostSettings = Get-AzDiagnosticSetting -ResourceId $RID foreach ($SubDiagnostSetting in $SubDiagnostSettings) { if ($LockRemoved -eq $false) { foreach ($Lock in $Locks) { $Lock | Remove-AzResourceLock -Force } $LockRemoved = $true } if ($SubDiagnostSetting.WorkspaceId -eq $WSID) { Remove-AzDiagnosticSetting -ResourceId $RID -Name $SubDiagnostSetting.Name Write-Host 'Removed a sub diagnostic setting' } } } foreach ($DiagnostSetting in $DiagnostSettings) { if ($DiagnostSetting.WorkspaceId -eq $WSID) { if ($LockRemoved -eq $false) { foreach ($Lock in $Locks) { $Lock | Remove-AzResourceLock } $LockRemoved = $true } Remove-AzDiagnosticSetting -ResourceId $StorageAccount.Id -Name $DiagnostSetting.Name Write-Host 'Removed a diagnostic setting' } } if ($LockRemoved -eq $true) { foreach ($Lock in $Locks) { AddLock -LockObject $Lock } } } ```