11function Set-TeamViewerManagedDevice {
22 [CmdletBinding (SupportsShouldProcess = $true )]
33 param (
4- [Parameter (Mandatory = $true )]
4+ [Parameter (Mandatory = $true , ParameterSetName = ' Default' )]
5+ [Parameter (Mandatory = $true , ParameterSetName = ' ByPolicyId' )]
6+ [Parameter (Mandatory = $true , ParameterSetName = ' ByManagedGroupId' )]
7+ [Parameter (Mandatory = $true , ParameterSetName = ' UpdateDescription' )]
58 [securestring ]
69 $ApiToken ,
710
8- [Parameter (Mandatory = $true , ValueFromPipeline = $true )]
11+ [Parameter (Mandatory = $true , ParameterSetName = ' Default' , ValueFromPipeline = $true )]
12+ [Parameter (Mandatory = $true , ParameterSetName = ' ByPolicyId' , ValueFromPipeline = $true )]
13+ [Parameter (Mandatory = $true , ParameterSetName = ' ByManagedGroupId' , ValueFromPipeline = $true )]
14+ [Parameter (Mandatory = $true , ParameterSetName = ' UpdateDescription' , ValueFromPipeline = $true )]
915 [ValidateScript ( { $_ | Resolve-TeamViewerManagedDeviceId } )]
1016 [Alias (' DeviceId' )]
1117 [object ]
1218 $Device ,
1319
20+ [Parameter (Mandatory = $false , ParameterSetName = ' Default' )]
21+ [Parameter (Mandatory = $false , ParameterSetName = ' ByPolicyId' )]
22+ [Parameter (Mandatory = $false , ParameterSetName = ' ByManagedGroupId' )]
23+ [Parameter (Mandatory = $false , ParameterSetName = ' UpdateDescription' )]
1424 [Alias (' Alias' )]
1525 [string ]
1626 $Name ,
1727
28+ [Parameter (Mandatory = $true , ParameterSetName = ' ByPolicyId' )]
1829 [ValidateScript ( { $_ | Resolve-TeamViewerPolicyId } )]
1930 [Alias (' PolicyId' )]
2031 [object ]
2132 $Policy ,
2233
34+ [Parameter (Mandatory = $true , ParameterSetName = ' ByManagedGroupId' )]
2335 [ValidateScript ( { $_ | Resolve-TeamViewerManagedGroupId } )]
2436 [Alias (' ManagedGroupId' )]
2537 [object ]
26- $ManagedGroup
38+ $ManagedGroup ,
39+
40+ [Parameter (Mandatory = $true , ParameterSetName = ' UpdateDescription' )]
41+ [Alias (' DeviceDescription' )]
42+ [string ]
43+ $Description
2744 )
2845 Begin {
2946 $body = @ {}
3047
3148 if ($Name ) {
3249 $body [' name' ] = $Name
3350 }
34- if ($Policy ) {
35- $body [' teamviewerPolicyId' ] = $Policy | Resolve-TeamViewerPolicyId
36- }
37- elseif ($ManagedGroup ) {
38- $body [' managedGroupId' ] = $ManagedGroup | Resolve-TeamViewerManagedGroupId
39- }
4051
41- if ($Policy -And $ManagedGroup ) {
42- $PSCmdlet.ThrowTerminatingError (
43- (' The combination of parameters -Policy and -ManagedGroup is not allowed.' | `
44- ConvertTo-ErrorRecord - ErrorCategory InvalidArgument))
52+ switch ($PsCmdlet.ParameterSetName ) {
53+ ' ByPolicyId' {
54+ $body [' teamviewerPolicyId' ] = $Policy | Resolve-TeamViewerPolicyId
55+ }
56+ ' ByManagedGroupId' {
57+ $body [' managedGroupId' ] = $ManagedGroup | Resolve-TeamViewerManagedGroupId
58+ }
59+ ' UpdateDescription' {
60+ $body [' deviceDescription' ] = $Description
61+ }
4562 }
4663
4764 if ($body.Count -eq 0 ) {
@@ -54,6 +71,12 @@ function Set-TeamViewerManagedDevice {
5471 $deviceId = $Device | Resolve-TeamViewerManagedDeviceId
5572 $resourceUri = " $ ( Get-TeamViewerApiUri ) /managed/devices/$deviceId "
5673
74+ switch ($PsCmdlet.ParameterSetName ) {
75+ ' UpdateDescription' {
76+ $resourceUri += ' /description'
77+ }
78+ }
79+
5780 if ($PSCmdlet.ShouldProcess ($Device.ToString (), ' Change managed device entry' )) {
5881 Invoke-TeamViewerRestMethod `
5982 - ApiToken $ApiToken `
0 commit comments