汎用PowerShellスクリプト

# 以下のように実行されます
# ECHO "BASE64STRING==" | .\script.ps1; Clear-History

Begin {
    # パイプラインの最初の項目が処理される前に1回実行
}

Process {
    # エラーの場合は停止します。設定しない場合、結果値はTrueとなり
    # 問題がないと見なされます。
    $ErrorActionPreference = "Stop"

    # パイプラインオブジェクトごとに1回実行    
    $JSON = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($_))
    $Params=($JSON | ConvertFrom-Json)

    Write-Output "providerRecordUid=$($Params.providerRecordUid)"
    Write-Output "resourceRecordUid=$($Params.resourceRecordUid)"
    Write-Output "userRecordUid=$($Params.userRecordUid)"
    Write-Output "newPassword=$($Params.newPassword)"
    Write-Output "oldPassword=$($Params.oldPassword)"
    Write-Output "user=$($Params.user)"

    $recordsJSON = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Params.records))
    $records = ($recordsJSON | ConvertFrom-Json)
    $title = ($records | Where-Object {$_.uid -eq $Params.providerRecordUid}).title
    Write-Output "Provider Title=$title"
}

End {
    # 最後のパイプラインオブジェクトが処理された後に1回実行
}

最終更新