public/cbb/Set-MBSAgentSetting.ps1
function Set-MBSAgentSetting { <# .SYNOPSIS Change MBS backup agent options. .DESCRIPTION Change MBS backup agent options. .EXAMPLE PS C:\> Set-MBSAgentSetting -ThreadCount 10 Set thread count to 10. .EXAMPLE PS C:\> Set-MBSAgentSetting -Keep 5 -Logging high Change default retention policy to keep 5 versions and set logging level to high. .INPUTS None .OUTPUTS System.String[] .NOTES Author: Alex Volkov .LINK https://kb.msp360.com/managed-backup-service/powershell-module/cmdlets/set-mbsagentsettings #> [CmdletBinding()] param ( # [Parameter(Mandatory=$False, HelpMessage="Specify backup agent edition.")] [ValidateSet("desktop", "baremetal", "mssql", "msexchange", "mssqlexchange", "ultimate", "vmedition")] [String] $Edition, # [Parameter(Mandatory=$False, HelpMessage="Bandwidth for a plan. Possible values: u(unlimited), value in kB")] [String] $Bandwidth, # [Parameter(Mandatory=$False, HelpMessage="Proxy type. Possible values: no, auto, manual")] [ValidateSet("no", "auto","manual")] [String] $Proxy, # [Parameter(Mandatory=$False, HelpMessage="Proxy address")] [String] $ProxyAddress, # [Parameter(Mandatory=$False, HelpMessage="Proxy port")] [Int32][ValidateRange(1,65535)] $ProxyPort, # [Parameter(Mandatory=$False, HelpMessage="Proxy authentication.")] [Nullable[boolean]] $ProxyAuthentication, # [Parameter(Mandatory=$False, HelpMessage="Proxy domain")] [String] $ProxyDomain, # [Parameter(Mandatory=$False, HelpMessage="Proxy user")] [String] $ProxyUser, # [Parameter(Mandatory=$False, HelpMessage="Proxy password")] [String] $ProxyPassword, # [Parameter(Mandatory=$False, HelpMessage="Specify chunk size in KBs. Possible values: 1024-5242880")] [Int32][ValidateRange(1024,5242880)] $ChunkSize, # [Parameter(Mandatory=$False, HelpMessage="Thread count. Possible values: 1-99")] [Int32][ValidateRange(1,99)] $ThreadCount, # [Parameter(Mandatory=$False, HelpMessage="Purge versions that are older than period (except lastest version). Possible values: no, 1d(day), 1w(week), 1m(month)")] [String] $Purge, # [Parameter(Mandatory=$False, HelpMessage="Specify purge delay. Possible values: no, 1d(day), 1w(week), 1m(month)")] [String] $DelayPurge, # [Parameter(Mandatory=$False, HelpMessage="Keep limited number of versions. Possible values: all, number")] [String] $Keep, # [Parameter(Mandatory=$False, HelpMessage="Purge history records that are older than value. Possible values: no, 1d(day), 1w(week), 1m(month)")] [String] $HistoryPurge, # [Parameter(Mandatory=$False, HelpMessage="Keep limited number of records in history. Possible values: all, number")] [String] $HistoryLimit, # [Parameter(Mandatory=$False, HelpMessage="Logging level.")] [ValidateSet("no", "low","high","debug")] [String] $Logging, # [Parameter(Mandatory=$False, HelpMessage="Change database location. By default database is located in user profile. Database will be moved to specified directory for saving space on system drive or other reasons.")] [Alias("DatabaseLocation")] [String] $RepositoryLocation, # [Parameter(Mandatory=$False, HelpMessage="Ignore SSL validation.")] [Nullable[boolean]] $IgnoreSSLValidation, # [Parameter(Mandatory=$False, HelpMessage="Output format. Possible values: short, full(default)")] [ValidateSet("short", "full")] [String] $Output, # [Parameter(Mandatory=$False, HelpMessage="Master password. Should be specified if configuration is protected by master password. Use -MasterPassword (ConvertTo-SecureString -string ""Your_Password"" -AsPlainText -Force)")] [SecureString] $MasterPassword ) begin { } process { if (Get-MBSAgent -ErrorAction SilentlyContinue) { $CBB = Get-MBSAgent $Arguments = " option" if ($Edition){$Arguments += " -edition $Edition"} if ($Bandwidth){$Arguments += " -bandwidth $Bandwidth"} if ($Proxy){$Arguments += " -proxy $Proxy"} if ($ProxyAddress){$Arguments += " -pa $ProxyAddress"} if ($ProxyPort){$Arguments += " -pp $ProxyPort"} if ($ProxyAuthentication){$Arguments += " -pt $ProxyAuthentication"} if ($ProxyDomain){$Arguments += " -pd $ProxyDomain"} if ($ProxyUser){$Arguments += " -pu $ProxyUser"} if ($ProxyPassword){$Arguments += " -ps $ProxyPassword"} if ($ChunkSize){$Arguments += " -cs $ChunkSize"} if ($ThreadCount){$Arguments += " -threads $ThreadCount"} if ($Purge){$Arguments += " -purge $Purge"} if ($DelayPurge){$Arguments += " -delayPurge $DelayPurge"} if ($Keep){$Arguments += " -keep $Keep"} if ($HistoryPurge){$Arguments += " -hp $HistoryPurge"} if ($HistoryLimit){$Arguments += " -hk $HistoryLimit"} if ($Logging){$Arguments += " -logging $Logging"} if ($RepositoryLocation){$Arguments += " -repositoryLocation $RepositoryLocation"} if ($IgnoreSSLValidation -ne $null){ if ($IgnoreSSLValidation) { $Arguments += " -ignoreSSLValidation yes" }else{ $Arguments += " -ignoreSSLValidation no" } } if ($output){$Arguments += " -output $output"} if ($MasterPassword){$Arguments += " -mp """+([System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($MasterPassword)))+""""} Write-Verbose -Message "Arguments: $Arguments" Start-Process -FilePath $CBB.CBBCLIPath -ArgumentList $Arguments -NoNewWindow -Wait } } end { } } |