2017-10-19 166 views
0

所有參數,PowerShell的功能在功能

我工作的一個功能,並且在功能我想用我曾作爲一個參數創建的另一個功能。對於下面的內容,我想在運行Add-TempLocalAdmin函數之後調出一個日曆選擇器(Select-Date)作爲提示。有一個更好的方法嗎?我應該從參數中選擇日期選擇,並在Begin塊的下面調用它(未顯示)?如果這是正確的方法,我如何使Select-Date參數可用?

function Add-TempLocalAdmin { 
[CmdletBinding()] 
param(
    [Parameter(Position=0, ValueFromPipeline=$true, Mandatory=$true)] 
    [string[]]$ComputerName, 
    [Parameter(Position=1, Mandatory=$true)] 
    [string]$Trustee, 
    [Parameter(Mandatory=$true)] 
    [string]$Requester, 
    [Parameter(Mandatory=$true)] 
    [string]$ServiceNowCR, 
    [Parameter(Mandatory=$true)] 
    [datetime]$StartDate = Select-Date, 
    [Parameter(Mandatory=$true)] 
    [datetime]$EndDate = Select-Date, 
    [Parameter(Mandatory=$true)] 
    [string]$Grantor = $env:USERNAME 
    ) 
Write-Host $ComputerName $Trustee $Requester $ServiceNowCR $StartDate $EndDate $grantor 
} 

回答

1

如果你說的參數是強制性的,那麼PowerShell的會,如果用戶忽略它提示用戶輸入參數的值。

您可以調用一個函數作爲參數的默認值。如果用戶省略參數值,則可以運行該功能。你可以是這樣做的:

[DateTime] $MyDate=$(Select-Date) 

(?如果用戶取消選擇獲取返回什麼樣的價值,你將不得不面對在你的代碼,應急)不要聲明其在這種情況下,強制性的。

您真的需要Select-Date功能嗎?如果您需要某個參數的日期,則聲明爲強制[DateTime] - 用戶需要提供該參數的日期,否則該功能將不會運行。

+0

選擇日期功能是我爲創建日曆而創建的一個小GUI。我剛剛嘗試使用[日期時間],似乎工作正常。我不確定該參數如何驗證日期,但看起來我可以只鍵入「11/7」,並將其呈現在11/7的午夜日期時間。謝謝你的幫助!這是一個更簡單的實現。 – Acerbity