Skip to content

Commit c8c609d

Browse files
Fix
1 parent d1faf49 commit c8c609d

File tree

1 file changed

+49
-22
lines changed

1 file changed

+49
-22
lines changed

Citrix/Administration/New-CTXMachine.ps1

+49-22
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
This can be provided as a host name or an IP address
2727
[sr-de] Name oder IP Adresse des XenDesktop Controllers
2828
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+
2933
.Parameter MachineName
3034
[sr-en] Name of the machine to create (in the form 'domain\machine')
3135
[sr-de] Name der Maschine (Domäne\Maschinenname)
@@ -60,54 +64,77 @@
6064
#>
6165

6266
param(
63-
[Parameter(Mandatory = $true)]
67+
[Parameter(Mandatory = $true,ParameterSetName = 'Single')]
6468
[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')]
6673
[Int64]$CatalogUid,
74+
[Parameter(ParameterSetName = 'Single')]
6775
[string]$AssignedClientName,
76+
[Parameter(ParameterSetName = 'Single')]
6877
[string]$AssignedIPAddress,
78+
[Parameter(ParameterSetName = 'Single')]
6979
[string]$HostedMachineId,
80+
[Parameter(ParameterSetName = 'Single')]
7081
[int]$HypervisorConnectionUid,
82+
[Parameter(ParameterSetName = 'Single')]
7183
[bool]$InMaintenanceMode,
84+
[Parameter(ParameterSetName = 'Single')]
7285
[bool]$IsReserved,
86+
[Parameter(ParameterSetName = 'Single')]
87+
[Parameter(ParameterSetName = 'Multi')]
7388
[string]$SiteServer
7489
)
7590

7691
$LogID = $null
7792
[bool]$success = $false
93+
[string[]]$ret = @()
7894
try{
7995
[string[]]$Properties = @('MachineName','PowerState','FaultState','MaintenanceModeReason','SessionCount','SessionState','CatalogName','DesktopGroupName','IPAddress','ZoneName','Uid','SessionsEstablished','SessionsPending')
8096
StartCitrixSessionAdv -ServerName ([ref]$SiteServer)
81-
StartLogging -ServerAddress $SiteServer -LogText "Create machine $($MachineName)" -LoggingID ([ref]$LogID)
8297

8398
[hashtable]$cmdArgs = @{'ErrorAction' = 'Stop'
8499
'AdminAddress' = $SiteServer
85-
'MachineName' = $MachineName
86100
'CatalogUid' = $CatalogUid
87101
'LoggingID' = $LogID
88102
}
89103

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
98127
}
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+
}
107136
}
108137

109-
$ret = New-BrokerMachine @cmdArgs | Select-Object $Properties
110-
$success = $true
111138
if($SRXEnv) {
112139
$SRXEnv.ResultMessage = $ret
113140
}

0 commit comments

Comments
 (0)