-
Notifications
You must be signed in to change notification settings - Fork 61
/
RegisterServer.ps1
54 lines (47 loc) · 1.7 KB
/
RegisterServer.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
<#
.Synopsis
Registers RabbitMQ server.
.DESCRIPTION
Register-RabbitMQ server cmdlet allows to add RabbitMQ server to the tab completition list for ComputerName.
.EXAMPLE
Register-RabbitMQServer '127.0.0.1'
Adds server 127.0.0.1 to auto completition list for ComputerName parameter.
.EXAMPLE
Register-RabbitMQServer '127.0.0.1' 'My local PC'
Adds server 127.0.0.1 to auto completition list for ComputerName parameter. The text 'My local PC' will be used as a tooltip.
#>
function Register-RabbitMQServer
{
[CmdletBinding()]
Param
(
# Name of the RabbitMQ server to be registered.
[Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true, Position=0)]
$ComputerName,
# Description to be used in tooltip. If not provided then computer name will be used.
[Parameter(Mandatory=$false, ValueFromPipelineByPropertyName=$true, Position=1)]
$Description
)
Begin
{
if (-not $global:RabbitMQServers)
{
$global:RabbitMQServers = @()
}
}
Process
{
$obj += $global:RabbitMQServers | ? ListItemText -eq $ComputerName
if (-not $obj)
{
if (-not $Description) { $Description = $ComputerName }
$escapedComputerName = $ComputerName -replace '\[', '``[' -replace '\]', '``]'
$global:RabbitMQServers += New-Object System.Management.Automation.CompletionResult $escapedComputerName, $ComputerName, 'ParameterValue', $Description
} else {
Write-Warning "Server $ComputerName is already registered. If you want to update the entry you need to unregister the server and register it again"
}
}
End
{
}
}