|
26 | 26 | This can be provided as a host name or an IP address
|
27 | 27 | [sr-de] Name oder IP Adresse des XenDesktop Controllers
|
28 | 28 |
|
| 29 | + .Parameter MachineNames |
| 30 | + [sr-en] Name of the machines to create (in the form 'domain\machine') |
| 31 | + [sr-de] Namen der Maschinen (Domäne\Maschinenname) |
| 32 | +
|
29 | 33 | .Parameter MachineName
|
30 | 34 | [sr-en] Name of the machine to create (in the form 'domain\machine')
|
31 | 35 | [sr-de] Name der Maschine (Domäne\Maschinenname)
|
|
60 | 64 | #>
|
61 | 65 |
|
62 | 66 | param(
|
63 |
| - [Parameter(Mandatory = $true)] |
| 67 | + [Parameter(Mandatory = $true,ParameterSetName = 'Single')] |
64 | 68 | [string]$MachineName,
|
65 |
| - [Parameter(Mandatory = $true)] |
| 69 | + [Parameter(Mandatory = $true,ParameterSetName = 'Multi')] |
| 70 | + [string[]]$MachineNames, |
| 71 | + [Parameter(Mandatory = $true,ParameterSetName = 'Single')] |
| 72 | + [Parameter(Mandatory = $true,ParameterSetName = 'Multi')] |
66 | 73 | [Int64]$CatalogUid,
|
| 74 | + [Parameter(ParameterSetName = 'Single')] |
67 | 75 | [string]$AssignedClientName,
|
| 76 | + [Parameter(ParameterSetName = 'Single')] |
68 | 77 | [string]$AssignedIPAddress,
|
| 78 | + [Parameter(ParameterSetName = 'Single')] |
69 | 79 | [string]$HostedMachineId,
|
| 80 | + [Parameter(ParameterSetName = 'Single')] |
70 | 81 | [int]$HypervisorConnectionUid,
|
| 82 | + [Parameter(ParameterSetName = 'Single')] |
71 | 83 | [bool]$InMaintenanceMode,
|
| 84 | + [Parameter(ParameterSetName = 'Single')] |
72 | 85 | [bool]$IsReserved,
|
| 86 | + [Parameter(ParameterSetName = 'Single')] |
| 87 | + [Parameter(ParameterSetName = 'Multi')] |
73 | 88 | [string]$SiteServer
|
74 | 89 | )
|
75 | 90 |
|
76 | 91 | $LogID = $null
|
77 | 92 | [bool]$success = $false
|
| 93 | +[string[]]$ret = @() |
78 | 94 | try{
|
79 | 95 | [string[]]$Properties = @('MachineName','PowerState','FaultState','MaintenanceModeReason','SessionCount','SessionState','CatalogName','DesktopGroupName','IPAddress','ZoneName','Uid','SessionsEstablished','SessionsPending')
|
80 | 96 | StartCitrixSessionAdv -ServerName ([ref]$SiteServer)
|
81 |
| - StartLogging -ServerAddress $SiteServer -LogText "Create machine $($MachineName)" -LoggingID ([ref]$LogID) |
82 | 97 |
|
83 | 98 | [hashtable]$cmdArgs = @{'ErrorAction' = 'Stop'
|
84 | 99 | 'AdminAddress' = $SiteServer
|
85 |
| - 'MachineName' = $MachineName |
86 | 100 | 'CatalogUid' = $CatalogUid
|
87 | 101 | 'LoggingID' = $LogID
|
88 | 102 | }
|
89 | 103 |
|
90 |
| - if($PSBoundParameters.ContainsKey('AssignedClientName') -eq $true){ |
91 |
| - $cmdArgs.Add('AssignedClientName',$AssignedClientName) |
92 |
| - } |
93 |
| - if($PSBoundParameters.ContainsKey('AssignedIPAddress') -eq $true){ |
94 |
| - $cmdArgs.Add('AssignedIPAddress',$AssignedIPAddress) |
95 |
| - } |
96 |
| - if($PSBoundParameters.ContainsKey('HostedMachineId') -eq $true){ |
97 |
| - $cmdArgs.Add('HostedMachineId',$HostedMachineId) |
| 104 | + if($PSCmdlet.ParameterSetName -eq 'Single'){ |
| 105 | + StartLogging -ServerAddress $SiteServer -LogText "Create machine $($MachineName)" -LoggingID ([ref]$LogID) |
| 106 | + $cmdArgs.Add('MachineName' , $MachineName) |
| 107 | + if($PSBoundParameters.ContainsKey('AssignedClientName') -eq $true){ |
| 108 | + $cmdArgs.Add('AssignedClientName',$AssignedClientName) |
| 109 | + } |
| 110 | + if($PSBoundParameters.ContainsKey('AssignedIPAddress') -eq $true){ |
| 111 | + $cmdArgs.Add('AssignedIPAddress',$AssignedIPAddress) |
| 112 | + } |
| 113 | + if($PSBoundParameters.ContainsKey('HostedMachineId') -eq $true){ |
| 114 | + $cmdArgs.Add('HostedMachineId',$HostedMachineId) |
| 115 | + } |
| 116 | + if($PSBoundParameters.ContainsKey('InMaintenanceMode') -eq $true){ |
| 117 | + $cmdArgs.Add('InMaintenanceMode',$InMaintenanceMode) |
| 118 | + } |
| 119 | + if($PSBoundParameters.ContainsKey('HypervisorConnectionUid') -eq $true){ |
| 120 | + $cmdArgs.Add('HypervisorConnectionUid',$HypervisorConnectionUid) |
| 121 | + } |
| 122 | + if($PSBoundParameters.ContainsKey('IsReserved') -eq $true){ |
| 123 | + $cmdArgs.Add('IsReserved',$IsReserved) |
| 124 | + } |
| 125 | + $ret += New-BrokerMachine @cmdArgs | Select-Object $Properties |
| 126 | + $success = $true |
98 | 127 | }
|
99 |
| - if($PSBoundParameters.ContainsKey('InMaintenanceMode') -eq $true){ |
100 |
| - $cmdArgs.Add('InMaintenanceMode',$InMaintenanceMode) |
101 |
| - } |
102 |
| - if($PSBoundParameters.ContainsKey('HypervisorConnectionUid') -eq $true){ |
103 |
| - $cmdArgs.Add('HypervisorConnectionUid',$HypervisorConnectionUid) |
104 |
| - } |
105 |
| - if($PSBoundParameters.ContainsKey('IsReserved') -eq $true){ |
106 |
| - $cmdArgs.Add('IsReserved',$IsReserved) |
| 128 | + else{ |
| 129 | + foreach($machine in $MachineNames){ |
| 130 | + StartLogging -ServerAddress $SiteServer -LogText "Create machine $($machine)" -LoggingID ([ref]$LogID) |
| 131 | + $ret += New-BrokerMachine @cmdArgs -MachineName $machine | Select-Object $Properties |
| 132 | + $success = $true |
| 133 | + StopLogging -LoggingID $LogID -ServerAddress $SiteServer -IsSuccessful $success |
| 134 | + $LogID = $null |
| 135 | + } |
107 | 136 | }
|
108 | 137 |
|
109 |
| - $ret = New-BrokerMachine @cmdArgs | Select-Object $Properties |
110 |
| - $success = $true |
111 | 138 | if($SRXEnv) {
|
112 | 139 | $SRXEnv.ResultMessage = $ret
|
113 | 140 | }
|
|
0 commit comments