Functions/Generic/UserInterface.ps1
function Find-AvmUserInterfaceUpdate { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Find-AvmUserInterfaceUpdate .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Find-AvmUserInterfaceUpdate .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewLaborVersion ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:UserInterface:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/userif" $AvmWebrequestBody.Action = "X_AVM-DE_CheckUpdate" $AvmWebrequestBody.InnerBody = "<s:NewX_AVM-DE_LaborVersion>{0}</s:NewX_AVM-DE_LaborVersion>" -f $NewLaborVersion [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath Body = $AvmWebrequestBody.GenerateBody() XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } function Get-AvmUserInterfaceInfo { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmUserInterfaceInfo .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmUserInterfaceInfo .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:UserInterface:1#GetInfo" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/userif" XmlResponse = "GetInfoResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmUserInterfaceIntlConfig { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmUserInterfaceIntlConfig .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmUserInterfaceIntlConfig .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:UserInterface:1#X_AVM-DE_GetInternationalConfig" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/userif" XmlResponse = "X_AVM-DE_GetInternationalConfigResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmUserInterfaceUpdateInfo { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmUserInterfaceUpdateInfo .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmUserInterfaceUpdateInfo .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:UserInterface:1#X_AVM-DE_GetInfo" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/userif" XmlResponse = "X_AVM-DE_GetInfoResponse" } Connect-AvmDevice @SplatParameters } function Initialize-AvmUserInterfaceCgi { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Initialize-AvmUserInterfaceCgi .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Initialize-AvmUserInterfaceCgi .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:UserInterface:1#X_AVM-DE_DoPrepareCGI" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/userif" XmlResponse = "X_AVM-DE_DoPrepareCGIResponse" } Connect-AvmDevice @SplatParameters } function Set-AvmUserInterfaceConfig { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmUserInterfaceConfig .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmUserInterfaceConfig .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateSet("off","all","important","check")] [System.String]$NewAutoUpdateMode ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:UserInterface:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/userif" $AvmWebrequestBody.Action = "X_AVM-DE_SetConfig" $AvmWebrequestBody.InnerBody = "<s:NewX_AVM-DE_AutoUpdateMode>{0}</s:NewX_AVM-DE_AutoUpdateMode>" -f $NewAutoUpdateMode [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath Body = $AvmWebrequestBody.GenerateBody() XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } function Set-AvmUserInterfaceIntlConfig { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmUserInterfaceIntlConfig .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmUserInterfaceIntlConfig .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewLanguage, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewCountry, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewAnnex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:UserInterface:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/userif" $AvmWebrequestBody.Action = "X_AVM-DE_SetInternationalConfig" $AvmWebrequestBody.InnerBody = @" <s:NewX_AVM-DE_Language>{0}</s:NewX_AVM-DE_Language> <s:NewX_AVM-DE_Country>{1}</s:NewX_AVM-DE_Country> <s:NewX_AVM-DE_Annex>{2}</s:NewX_AVM-DE_Annex> "@ -f $NewLanguage, $NewCountry, $NewAnnex [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath Body = $AvmWebrequestBody.GenerateBody() XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } function Initialize-AvmUserInterfaceCgi { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Initialize-AvmUserInterfaceCgi .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Initialize-AvmUserInterfaceCgi .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:UserInterface:1#X_AVM-DE_DoUpdate" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/userif" XmlResponse = "X_AVM-DE_DoUpdateResponse" } Connect-AvmDevice @SplatParameters } function Update-AvmUserInterfaceManually { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Update-AvmUserInterfaceManually .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Update-AvmUserInterfaceManually .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewDownloadURL, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Byte][System.Boolean]$NewAllowDowngrade ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:UserInterface:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/userif" $AvmWebrequestBody.Action = "X_AVM-DE_DoManualUpdate" $AvmWebrequestBody.InnerBody = @" <s:NewX_AVM-DE_DownloadURL>{0}</s:NewX_AVM-DE_DownloadURL> <s:NewX_AVM-DE_AllowDowngrade>{1}</s:NewX_AVM-DE_AllowDowngrade> "@ -f $NewDownloadURL, $NewAllowDowngrade [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath Body = $AvmWebrequestBody.GenerateBody() XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } |