```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
}
}
}
```