Public/Sites/Remove-RMMSiteProxy.ps1
|
<#
Copyright (c) 2025-2026 Robert Faddes SPDX-License-Identifier: MPL-2.0 #> function Remove-RMMSiteProxy { <# .SYNOPSIS Removes proxy settings from a Datto RMM site. .DESCRIPTION The Remove-RMMSiteProxy function deletes the proxy server configuration from a specified site. After removal, devices at the site will connect directly to the Datto RMM service without going through a proxy. The site can be specified by passing a DRMMSite object from the pipeline or by providing the SiteUid parameter directly. .PARAMETER Site A DRMMSite object to configure. Accepts pipeline input from Get-RMMSite. .PARAMETER SiteUid The unique identifier (GUID) of the site from which to remove proxy settings. .PARAMETER Force Suppress the confirmation prompt. .EXAMPLE Remove-RMMSiteProxy -SiteUid "a1b2c3d4-e5f6-7890-abcd-ef1234567890" Removes proxy settings from the specified site (with confirmation prompt). .EXAMPLE Get-RMMSite -SiteName "Branch Office" | Remove-RMMSiteProxy -Force Removes proxy settings from the site via pipeline without confirmation. .EXAMPLE Get-RMMSite | Where-Object {$_.Name -like "Test*"} | Remove-RMMSiteProxy Removes proxy settings from all sites with names starting with "Test". .INPUTS DRMMSite. You can pipe site objects from Get-RMMSite. You can also pipe objects with SiteUid or Uid properties. .OUTPUTS None. This function does not return any output. .NOTES This function requires an active connection to the Datto RMM API. Use Connect-DattoRMM to authenticate before calling this function. After removing proxy settings, devices will need to be able to connect directly to the Datto RMM service. Ensure network connectivity is available before removing proxy configuration. .LINK https://github.com/TheShadowTek/DattoRMM.Core/blob/main/docs/commands/Sites/Remove-RMMSiteProxy.md .LINK about_DRMMSite .LINK Get-RMMSite .LINK Set-RMMSiteProxy #> [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] param ( [Parameter( ParameterSetName = 'BySiteObject', Mandatory = $true, ValueFromPipeline = $true )] [DRMMSite] $Site, [Parameter( ParameterSetName = 'ByUid', Mandatory = $true )] [guid] $SiteUid, [Parameter()] [switch] $Force ) process { if ($Site) { $SiteUid = $Site.Uid } if (-not $Force -and -not $PSCmdlet.ShouldProcess("Site $SiteUid", "Remove proxy settings")) { return } Write-Debug "Removing proxy settings for site: $SiteUid" $APIMethod = @{ Path = "site/$SiteUid/settings/proxy" Method = 'Delete' } Invoke-ApiMethod @APIMethod | Out-Null Write-Verbose "Proxy settings removed from site $SiteUid" } } # SIG # Begin signature block # MIIF+wYJKoZIhvcNAQcCoIIF7DCCBegCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBiEN+fUU5hbI7N # PZSiNrOrBCI151QHCRdLejS0Rx/ZwKCCA04wggNKMIICMqADAgECAhB464iXHfI6 # gksEkDDTyrNsMA0GCSqGSIb3DQEBCwUAMD0xFjAUBgNVBAoMDVJvYmVydCBGYWRk # ZXMxIzAhBgNVBAMMGkRhdHRvUk1NLkNvcmUgQ29kZSBTaWduaW5nMB4XDTI2MDMz # MTAwMTMzMFoXDTI4MDMzMTAwMjMzMFowPTEWMBQGA1UECgwNUm9iZXJ0IEZhZGRl # czEjMCEGA1UEAwwaRGF0dG9STU0uQ29yZSBDb2RlIFNpZ25pbmcwggEiMA0GCSqG # SIb3DQEBAQUAA4IBDwAwggEKAoIBAQChn1EpMYQgl1RgWzQj2+wp2mvdfb3UsaBS # nxEVGoQ0gj96tJ2MHAF7zsITdUjwaflKS1vE6wAlOg5EI1V79tJCMxzM0bFpOdR1 # L5F2HE/ovIAKNkHxFUF5qWU8vVeAsOViFQ4yhHpzLen0WLF6vhmc9eH23dLQy5fy # tELZQEc2WbQFa4HMAitP/P9kHAu6CUx5s4woLIOyyR06jkr3l9vk0sxcbCxx7+dF # RrsSLyPYPH+bUAB8+a0hs+6qCeteBuUfLvGzpMhpzKAsY82WZ3Rd9X38i32dYj+y # dYx+nx+UEMDLjDJrZgnVa8as4RojqVLcEns5yb/XTjLxDc58VatdAgMBAAGjRjBE # MA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU # H+B0vf97dYXqdUX1YMcWhFsY6fcwDQYJKoZIhvcNAQELBQADggEBAJmD4EEGNmcD # 1JtFoRGxuLJaTHxDwBsjqcRQRE1VPZNGaiwIm8oSQdHVjQg0oIyK7SEb02cs6n6Y # NZbwf7B7WZJ4aKYbcoLug1k1x9SoqwBmfElECeJTKXf6dkRRNmrAodpGCixR4wMH # KXqwqP5F+5j7bdnQPiIVXuMesxc4tktz362ysph1bqKjDQSCBpwi0glEIH7bv5Ms # Ey9Gl3fe+vYC5W06d2LYVebEfm9+7766hsOgpdDVgdtnN+e6uwIJjG/6PTG6TMDP # y+pr5K6LyUVYJYcWWUTZRBqqwBHiLGekPbxrjEVfxUY32Pq4QfLzUH5hhUCAk4HN # XpF9pOzFLMUxggIDMIIB/wIBATBRMD0xFjAUBgNVBAoMDVJvYmVydCBGYWRkZXMx # IzAhBgNVBAMMGkRhdHRvUk1NLkNvcmUgQ29kZSBTaWduaW5nAhB464iXHfI6gksE # kDDTyrNsMA0GCWCGSAFlAwQCAQUAoIGEMBgGCisGAQQBgjcCAQwxCjAIoAKAAKEC # gAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwG # CisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEILPdEKp3R5QRUIFtCL8EGsF+yTcl # 2Ue3vEnkVSpIkOjiMA0GCSqGSIb3DQEBAQUABIIBAAeRWBd8fHf5bx+Z2/2lRXrr # 9rahqFT2/hNUo+VKlD7P56Ps2F5K8mCIYXbgVI2xyFz6XfGYPW56ILYW+Vk8SYxz # oSfGhofrVllDMoNO93t1JSp86lGCkIPggFyXXjcYaCPJ46Ol3eHGzP6SMtd753xZ # ghbyTIQMSJtePp0vXnNcbRrfHMd9kJMUM5HviNRvHfDwN8HZKMblSBMzrv2bFs// # jzaty4q+M331oH8X4n2ZWSTyOaIEu4bULFljUJkg6PIxBJ3nLNYgnPk2QWRJJVAV # KiEzGwoVC9zZOifHpGMb8q+44BWXYW6kbGJe8IhxKAxakR3pAKhYLHNheg1hpUs= # SIG # End signature block |