public/api/Remove-MBSAPIComputerData.ps1
function Remove-MBSAPIComputerData { <# .SYNOPSIS Deletes specified user computer data from cloud. Data will be deleted during the day. .DESCRIPTION Calls DELETE request to api/Users/{userId}/Computers. .PARAMETER UserID Backup user ID. .PARAMETER DestinationId Cloud destination ID. Use Get-MBSApiStorageAccountDestination to list backup storage destinations. .PARAMETER ComputerName Computer name .PARAMETER Force Force delete. Confirmation is disabled. .PARAMETER ProfileName Profile name used with MSP360 PowerShell for MBS API (set via Set-MBSApiCredential) .EXAMPLE Remove-MBSAPIComputerData -UserID 7c7044bb-313b-4b1b-900e-76d652246f4d -DestinationId 1f342fb4-0775-4ae8-9c63-a2d5955752b6 -ComputerName MyComputer -Force -ProfileName MyProfile Delete backed up to cloud data for specified user ID, Destination and ComputerName .INPUTS System.Management.Automation.PSCustomObject .OUTPUTS String .NOTES Author: Alex Volkov .LINK #> [CmdletBinding()] param ( # [Parameter(Mandatory=$true, HelpMessage="User ID", ValueFromPipelineByPropertyName)] [string]$UserID, # [Parameter(Mandatory=$true, HelpMessage="Destination Id", ValueFromPipelineByPropertyName)] [string]$DestinationId, # [Parameter(Mandatory=$true, HelpMessage="Computer Name", ValueFromPipelineByPropertyName)] [string]$ComputerName, # [Parameter(Mandatory=$false, HelpMessage="Force delete")] [switch]$Force, # [Parameter(Mandatory=$false, HelpMessage="The profile name, which must be unique.")] [string] $ProfileName ) begin { $headers = Get-MBSAPIHeader -ProfileName $ProfileName } process { $ComputerDelete = @( @{ DestinationId = $DestinationId ComputerName = $ComputerName } ) if ($Force){ Write-Verbose -Message ("$($PSCmdlet.MyInvocation.MyCommand.Name): URL: " + ((Get-MBSApiUrl).Users+"/"+$UserID+"/Computers")) Write-Verbose -Message ("$($PSCmdlet.MyInvocation.MyCommand.Name): DELETE Request: " + ($ComputerDelete | ConvertTo-Json)) $ComputerData = Invoke-RestMethod -Uri ((Get-MBSApiUrl).Users+"/"+$UserID+"/Computers") -Method DELETE -Headers $headers -Body (ConvertTo-Json -InputObject $ComputerDelete) -ContentType 'application/json' return $ComputerData }else{ if (Confirm-MBSAction -Operation "Remove-ComputerData" -Target "Remove computer data for the user with ID: $UserID"){ Write-Verbose -Message ("$($PSCmdlet.MyInvocation.MyCommand.Name): URL: " + ((Get-MBSApiUrl).Users+"/"+$UserID+"/Computers")) Write-Verbose -Message ("$($PSCmdlet.MyInvocation.MyCommand.Name): DELETE Request: " + ($ComputerDelete | ConvertTo-Json)) $ComputerData = Invoke-RestMethod -Uri ((Get-MBSApiUrl).Users+"/"+$UserID+"/Computers") -Method DELETE -Headers $headers -Body (ConvertTo-Json -InputObject $ComputerDelete) -ContentType 'application/json' return $ComputerData } } } end { } } |