AADのユーザー一覧をCSVに出力

AADのユーザー一覧をCSVに出力…。 いや、もうこの手のユーザー一覧を出力するスクリプトって何回書いたかもう覚えていないほど何度も何度も書いてます。でも、また今日も書いちゃいました…。 でも、Azure Active Directoryからユーザー情報を抽出してCSVに出力するのは、PowerShellだとすごく簡単に書けますね。別に書いておく必要も感じないくらいに簡単です。VBScriptでゴリゴリ書いていた時代が懐かしいです。 - https://github.com/ebibibi/AzureManagement/blob/master/AAD/ExportAllAADUsersToCSV.ps1

September 3, 2018 · 1 min · 胡田昌彦

PowerShellを使ってExcelできちんと開けるCSVファイルを作成する方法

PowerShellからCSVファイルを作成し、それをExcelで開いて…という操作は結構需要があり、頻繁に行われるのではないかと思います。ちょっとしたはまりポイントがありますので、そのあたりのTipsを紹介しようと思います。 Export-Csv PowerShellの素敵な点の1つはオブジェクトを簡単にCSVに出力できるコマンドレットが標準で用意されているところだと思います。 ただし、日本語が含まれている場合に、そのまま何も考えずにExport-Csvを実行すると文字化けが発生してしまいます。 これは、Excelで読み込むときにエンコーディングの判定に失敗して文字化けしている…という事ではなく、PowerShellでファイルを吐き出した時に????に変換されてしまっています。なので、出力時にきちんとエンコーディングを指定してあげる必要があります。 どのエンコーディングを使うか、というのは人によって意見が違うかもしれませんが、私はいつもUTF-8を使います。これであればきちんと日本語も出力され、Excelで開いた時にも文字化けもなく意図した通りに開きます。 ExcelでShift-JIS以外の文字コードでは文字化けが発生する問題 実は先ほどの例ではうまくいっていますが、ExcelはCSVファイルはShift-JISにしておかないと文字化けすることが多い困ったやつです。回避策はいくつかあります。以下のあたりが参考になります。 ExcelでUTF-8のCSVを開く方法 (CodeZine編集部ブログ) ExcelでUTF-8エンコーディングされたCSVファイルを開く方法 - 大人になったら肺呼吸 先ほどの例ではBOM付きのUTF-8であったためうまく表示されたわけです。Stirlingでファイルを確認するとファイルの先頭に「EFBBBF」が不可されていることがわかります。 スクリプト内でファイルに出力する場合 Export-Csvを使う場合には-Encodingオプションを付ければよいことはわかりましたが、foreachの中などで、自分で文字列をファイルに出力したいようなときには残念ながら別の問題が発生します。 このようにA列にすべて表示されてしまいます。(※文字化けをしていないのはExcel2010だからなのではないかと思います。) これも回避策としてはいくつかあると思いますがShift-JISで出力するにはAdd-Contentコマンドレットで-EncodingにStringを指定することができます。 UTF-8でBOM付きにしようと思ったら、先にファイルを作成しておくと良いようです。

October 2, 2012 · 1 min · 胡田昌彦

PowerShell Tips

今回は自分で使うようにPowerShellのよく使うコマンドレットやTipsをまとめてみます。随時更新する予定! Get-Command Get-Commandでコマンドレットの一覧を取得できます。 P S C : \ > G e t - C o m m a n d C o m m a n d T y p e N a m e D e f i n i t i o n ...

March 5, 2012 · 174 min · 胡田昌彦