LoginSignup
65

More than 5 years have passed since last update.

PowerShellからデータを出力するパターンまとめ

Last updated at Posted at 2018-10-31

PowerShell上に表示させた情報を別の形式やファイルに出力する方法をまとめます。

環境

  • PowerShell Version:5.1.17134.228

テキストファイル(.txt)に出力

Start-Transcript

コマンドの入出力を全てテキストファイルに記録するコマンドです。
入力したコマンドがそのまま記録されるので、作業のログに適してます。

記録の開始

Start-Transcript

既定の保存先C:\User\%UserName%\Documentsに記録される。

保存先を指定して記録を開始

Start-Transcript C:\Temp\Transcript.txt

ファイルを絶対パスで指定する。

既存のテキストファイルに追記して記録を開始

Start-Transcript C:\Temp\Transcript.txt -Append

指定したテキストファイルの一番下に追加して記録を開始する。

(-Appendを指定しない場合、同じ名前のファイルがあると上書きして記録を開始してしまう)

記録の終了

Stop-Transcript

Out-File

1つのコマンドや変数をテキストファイルに出力するコマンドです。

実行例

Get-Mailbox -Identity User01 |Out-File C:\temp\User01.txt

リダイレクト演算子で実行

Get-Mailbox -Identity User01 > C:\temp\User01.txt

Out-File>でも代替できる。

あっ、この出力、テキストで欲しいな、なんてときは、
キーで直前のコマンドを呼びだして、これを書き足してあげましょう。

CSVファイル(.csv)に出力

Export-Csv

コマンドの結果をCSVファイルで出力します。

メールの配信ログなど情報量が多いときによく使います。

Excelで再編集もしやすいです。

実行例

Get-Mailbox -Identity User01 | Export-Csv -Path C:\temp\User01.csv -Encoding UTF8 -NoTypeInformation

-Encodingパラメーターで文字化けを防ぎ、

-NoTypeInformationパラメーターで先頭行に型の情報を入れないようにします。

実行例(応用)

$Output = Get-Mailbox -Identity User01
$Output += Get-Mailbox -Identity User02
$Output | Export-Csv -Path C:\temp\User.csv -Encoding UTF8 -NoTypeInformation

変数からパイプ処理が可能なので、
こうして、まとめて1つのファイルに出力することができます。便利。

XMLファイル(.xml)に出力

Export-CliXml

コマンドの結果をXMLファイルに出力します。

ひとつのオブジェクトの情報を出力するときによく使います。

実行例

Get-Mailbox -Identity User01 | Export-CliXml -Path C:\temp\User01.xml

実行例(応用)

あとからファイルをPowerShellにインポートして、オブジェクトとして扱うことができます。

まず、変数にインポートします。

$File = Import-CliXml -Path C:\temp\User01.xml

この$Fileを以下のようにPowerShellのコマンドで操作できます。

$File | fl
$File | ?{$_.Alias -eq "User01"}
$File | Set-Mailbox -UseDatabaseQuotaDefaults $False

設定変更する前の状態をXmlファイルに出力しておけば、
変更前の値を簡単に参照したり、そこから簡単に戻したりできます。

クリップボードにコピー

| Clip

ファイルではなく、コマンドの出力をクリップボードにコピーします。

実行例

Get-Mailbox -Identity User01 | Clip

入力したコマンドの出力がそのままコピーされます。

以下のように出力を整形するとキレイです。

Get-Mailbox -Identity User01 | fl | Clip
Get-Mailbox -Identity User01 | fl Alias,SamAccountName -AutoSize | Clip

参考

自身の過去記事を加筆修正しました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65