PowerShell选择三个选项之一

时间:2016-06-14 12:25:07

标签: powershell exchange-server

目前我有一个用户输入用户名的“脚本”,然后脚本会在用户交换帐户中设置一个月的特定离开办公室消息。

我想添加一个功能,通过启动标志或用户可以从三个不同选项(Office A,Office B和Office C)中选择的弹出菜单。根据他们选择的那个,不同的消息被称为离开办公室。

    #### Connect to exchange ####
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://sto-ms-03/PowerShell -Credential $UserCredential
Import-PSSession $Session 
#### User Info ###
$Username = Read-Host -Prompt 'Input your username'
$StartDate = Get-Date (Get-Date).AddDays(-2) -f yyyy/MM/dd
$EndDate = Get-Date (Get-Date).AddMonths(+1) -f yyyy/MM/dd
$Dummymessage1 = "This is dummy number 1"


Set-MailboxAutoReplyConfiguration -Identity "DOMAIN\$Username" -StartTime "$StartDate" -EndTime "$EndDate" -ExternalMessage "$Dummymessage1" -InternalMessage "$Dummymessage1"

因此,如果可能的话,我想添加一个允许选择A,B或C的弹出按钮.A,B和C将绑定到3个不同的变量,只替换$Dummymessage

编辑:使用以下解决方案结束:

Param
(
    [Parameter(Mandatory=$true)]
    [ValidateSet("A", "B", "C")]
    [string]$Office
)
if($Office -eq 'A') {$Message = "Dummy 1"}
if($Office -eq 'B') {$Message = "Dummy 2"}
if($Office -eq 'C') {$Message = "Dummy 3"}

像魅力一样。

1 个答案:

答案 0 :(得分:2)

我会在您脚本的第一行添加Param部分:

Param
(
    [Parameter(Mandatory=$true)]
    [ValidateSet("Office A", "Office B", "Office C")]
    [string]$Office
)

现在,调用脚本的用户必须通过Office AOffice BOffice C,并在控制台中进行选择:

enter image description here

我还允许用户将Credential和Username传递给脚本(只需将其添加到Param块)。