2017-10-19 3 views
0

모두,함수의 매개 변수로 PowerShell 함수가 있습니다.

저는 함수에서 작업 중이며 함수에서 매개 변수로 만든 다른 함수를 사용하고 싶습니다. 아래에서 Add-TempLocalAdmin 함수를 실행 한 후 프롬프트 (Create-Date)를 만든 캘린더 선택기를 표시하고 싶습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 필자는 매개 변수에서 날짜 선택을 가져와 시작 블록 (아래에 표시되지 않음)에서 아래로 호출해야합니까? 이것이 올바른 방법이라면 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

Select-Date 기능은 캘린더를 가져 오기 위해 만든 GUI입니다. 방금 [DateTime] 사용하여 시도하고 잘 작동하는 것. 그 매개 변수가 어떻게 날짜를 확인했는지는 확실하지 않았지만 "11/7"을 입력하고 11/7 자정의 datetime으로 렌더링하는 것처럼 보입니다. 당신의 도움을 주셔서 감사합니다! 그것은 훨씬 간단한 구현입니다. – Acerbity

관련 문제