PowerShellで一括処理を

派遣先の大学では、これまでオンプレミスで運営していたEメールを、去年の8月からOffice265のメールに移行しました。それで、新規作成時にPowerShellを使って、
一部の設定が必要となっています。

以前、バッチ処理のスクリプトを作っていたのですが、3月に教職員の入替があるので、一括処理のバッチの検討を始めました。

PowerShellは、去年から使い始めたばかりで、知らないことだらけですが、いろいろとできますね。配列が使えて、ループも可能なので、複数のアカウントを一括処理が可能です。さらに、CSVファイルからリストを取り込むことの可能でした。

ということで、EmailのリストをCSVとして読み込んで、ループで処理する、なんてスクリプトが簡単に組めます。なお、Emailのリストは、ヘッダが無いことを想定して、CSVファイルの取り込みで-Header オプションを使ってみました。それと、数値を文字列にするには、[string]count としないとエラーになります。これくらいで使えるのは便利かも。

#
# list.txtに格納されたEmailアドレスを読み込む
#
$array_emails = Import-Csv list.txt -Header "Email_Address"

#
# foreachによりループ処理
#
$count = 0
foreach( $view in $array_emails) {

  $Email = $view.Email_Address
  .... (ここに、設定のコマンド)
  Write-Host "$Email を設定"
  $count = $count +1
}


$message = [string]$count + "件、設定しました。"
Write-Host $message

JavaScriptで失敗ー反省文

しばらく前に改造したJavaScriptで動作するWebページに、プログラムの間違いがあり、急いで修正しました。自分としては、簡単な改造のつもりで書いたコードだったのですが、大きな勘違いをしており、慌てて修正させてもらいました。勘違いしてチェックしていたので、全く気が付きませんでした。

しかも、ろくにネットで調べもしないで書いたようで、なんでこんな関数使っているんだろう、と自分でも恥ずかしいレベルの低い間違い。いや、年齢のせいにはしたくないですが、「手を抜く」とこうなってしまうのでしょうね。反省しています。