PowershellとOutlookVBAを使ってRedmineAPIで既存のチケットにファイルを(ほぼ)自動添付する#003

概要

 定期的にOutlookメールで通知されてくる業務カレンダーを、Redmineのチケットにアップロードして開発ベンダーに連携する作業が手作業で煩わしく、自動化したい欲求にかられたため着手した。幸いにもメールタイトルが正規表現可能(正し性善説仕様のため、送信者が表現の範疇を超えて誤字るとコケるw)

Qiitaに掲載しようと思った経緯は、Powershellでチケットの起票方法はあったがファイル添付のやり方が意外とGoogle先生に聞いてもヒットしなかったので、備忘録も兼ねて記事を書く事にしました(^q^)

(3/5回)

※この業務は2年前の物と古くRedmineのVersionは2.5

第一回 課題概要とAPI使用のための事前準備
第二回 OutlookVBAでメールトリガーを作成する
第三回 Powershellでプロキシを通過する ←今ここ
第四回 PowershellでRedmineチケットにファイルを添付する(前半)
第五回 PowershellでRedmineチケットにファイルを添付する(後半)


3.Powershellのプロキシを通す

 さて、社内ネットワークを経由するとほぼ必ずと言っていいほど最初の壁となるのがプロキシ突破。下記の通りパスワードとユーザIDとURLを渡す。注意すべき点は、パスワードを定期的に変更しなければならない場合(が、ほとんどだと思うが、、、)定期的なパスワード管理が必要。

function Set-CustomCredentials {
    $password = ★password★
    $userId = ★userId★
    $proxy_URL = ★URL★

    $password = ConvertTo-SecureString $password -AsPlainText -Force                   # 平文をSecureStringに変換
    $cred = New-Object System.Management.Automation.PSCredential $userId, $password    # Credentialの生成
    $proxy = New-Object System.Net.WebProxy $proxy_URL                                 # プロキシ情報の設定
    $proxy.Credentials = $cred                                                         # 定義したCredを適用する
    [System.Net.WebRequest]::DefaultWebProxy = $proxy                                  # デフォルトのプロキシに、上で作成したWebProxyを設定
}

 上記を.psm1ファイルとして%USERPROFILE%\Documents\WindowsPowerShell\Modules[親ディレクトリ]配下に保存すると、Powershellスクリプト開始時に自動的にロードしてくれるので、あとは好きなタイミングでSet-CustomCredentialsをCallすればプロキシ通してくれて楽チン(^q^)

※%userprofile%はWindowsの環境変数で、現在ログイン中のユーザーディレクトリがセットされる

 なお、[親ディレクトリ]は.psm1のファイル名と同じ名前にしないとロードしてくれません。Javaのクラス名とクラスファイル名みたいなもんだな…(´・ω・`)

(例)hoge.psm1ファイルであれば、%USERPROFILE%\Documents\WindowsPowerShell\Modules\hoge\hoge.psm1

ここまでがプロキシ通過儀式。
次回はようやくRedmineAPIを叩きます。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.