forked from pspete/psPAS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSet-PASPlatformPSMConfig.ps1
64 lines (45 loc) · 1.27 KB
/
Set-PASPlatformPSMConfig.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# .ExternalHelp psPAS-help.xml
Function Set-PASPlatformPSMConfig {
[CmdletBinding(SupportsShouldProcess)]
param(
[parameter(
Mandatory = $true,
ValueFromPipelinebyPropertyName = $true
)]
[int]$ID,
[parameter(
Mandatory = $false,
ValueFromPipelinebyPropertyName = $true
)]
[AllowEmptyString()]
[string]$PSMServerID,
[parameter(
Mandatory = $false,
ValueFromPipelinebyPropertyName = $true
)]
[AllowEmptyCollection()]
[PSObject[]]$PSMConnectors
)
BEGIN {
Assert-VersionRequirement -RequiredVersion 11.5
}#begin
PROCESS {
#Create URL for request
$URI = "$($psPASSession.BaseURI)/API/Platforms/Targets/$ID/PrivilegedSessionManagement"
$BoundParameters = $PSBoundParameters | Get-PASParameter -ParametersToRemove ID
$PlatformPSMConfig = Get-PASPlatformPSMConfig -ID $ID
if ($null -ne $PlatformPSMConfig) {
Format-PutRequestObject -InputObject $PlatformPSMConfig -boundParameters $BoundParameters -ParametersToKeep PSMServerID
}
#Request body
$Body = $BoundParameters | ConvertTo-Json
if ($PSCmdlet.ShouldProcess($ID, 'Update Platform PSM Config')) {
#send request to web service
$result = Invoke-PASRestMethod -Uri $URI -Method PUT -Body $Body
}
If ($null -ne $result) {
$result
}
}#process
END { }#end
}