Azure Powershell Runbook에서 매개 변수를 입력 형식으로 만들기

소개



투고가 오랜만이 되어 버렸기 때문에 재활에, Automation Runbook의 편리한 기본 기능을 소개하면서, 자신이 이상한 곳에서 망설인 수치를 비망록이 테라 기사에 일으켜 둡니다. (2020/03/30 시점의 기사입니다.)
참고 문헌 : MS : Runbook 입력 매개 변수

런북을 입력 형식으로 만들기



Runbook에서 스크립트를 작성한 후, 기동시에 일자나 파일 패스등 기동 파라미터를 설정하고 싶을 때에는 이하와 같이 스크립트 선두로 파라미터의 선언을 넣습니다. 여러 매개 변수를 만들 때는 (쉼표)를 잊지 않도록!
※현 단계에서는 더 이상의 옵션은 붙일 수 없는 것 같습니다.

imputparameter.ps1
Param
(
   # 必須入力の場合は$ture/省略可能な場合は$false
   [Parameter(Mandatory = $true)]
    [datetime] $date1,
  # 次に繋ぐ時はカンマ
    [Parameter(Mandatory = $false)]
    [datetime] $date2 = "2020/04/01 12:13:14"
)

datetime형의 때는 실행시, 아래와 같이 캘린더로 선택할 수 있게 되기 때문에 편리했습니다. 또한 선택 사항인지 여부, 기본값은 일부 등이 화면에 표시됩니다. 게다가 필수 입력으로 해 두면 입력하지 않는 경우, 입력 체크로 걸리므로 입력 체크를 스크립트내에 쓰지 않아도 좋고 좋다.





주의점



다음이 내가 망설인 곳입니다. 위 화면에서의 필수, 생략은 기본적으로는 Mandatory의 플래그치에 의해 결정됩니다만 그 이외에도 결정되는 경우가 있어, 그것이 「기본값」이 설정되어 있는 경우입니다. 예를 들어 위의 구문을 아래와 같이 변경하면, 입력 필수로 하고 있는데 「선택가능」이라고 표시됩니다.

imputparameterF.ps1
Param
(
   [Parameter(Mandatory = $true)]
    [datetime] $date1,
  #初期値を設定したまま入力必須にしてみる
    [Parameter(Mandatory = $true)]
    [datetime] $date2 = "2020/04/01 12:13:14"
)

입력하지 않아도 기본값이 들어가면 필수 입력이라고 해도 생략 가능잖아! 라고 말하면 그대로입니다만, 나는 처음 이하와 같이 입력하고 있었기 때문에, 필수 입력이 되지 않고, 입력 없이 그대로 스크립트가 움직임 에러로 실행 실패가 되었습니다.

imputparameterF2.ps1
Param
(
   [Parameter(Mandatory = $true)]
    # 値を初期化したかった。。。
    [datetime] $date1="",
    [Parameter(Mandatory = $true)]
    [datetime] $date2 = "2020/04/01 12:13:14"
)

덧붙여서 $null을 투입해도 결과는 변함이 없기 때문에, 입력치를 지정하는 경우는 「아무것도 입력하지 않는다」가 정답입니다.



매뉴얼대로 하면 움직인 것인데 생각 부족한 탓으로 밟지 않아서 좋은 곳을 밟아 버렸다. . .

좋은 웹페이지 즐겨찾기