エンジニアのエンジニアによるエンジニアのためのサイト
Toggle navigation
TOP
技術
書籍
資格
業務
イベント・セミナー
ニュース・お知らせ
検索
News
07/25 おすすめ情報に 『 【案件】Azure AD関連の認証設計/azureの基本設計 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。
無料会員登録
メールアドレス
パスワード
パスワードを忘れた場合
Login
Tweet
TOP
投稿内容
【Powershell】Format-tableコマンドのcsv出力について
投稿者: ntanakaさん
投稿日:2021/07/13 18:49
更新日:2021/07/13 20:04
1
分類
技術
テクノロジー
全般
キャリア
運用・保守 / テクニカルサポート
投稿内容
以前、案件対応の際に起きた事象について、有益そうな情報を共有させていただきます。
【PowershellでADのユーザー一覧を表示し、csvファイルに出力する際、ただしく表示されない】
■環境
Windows Server 2016
機能 : Skype for Business Server 管理シェル(Windows Powershellでも同様の事象が起きます)
実施したコマンド
Get-CsADUser | Format-table -Property DisplayNane, SipAddress, Enabled, | Export-csv -Path C;\Users\testuser\test.csv -Encoding UTF8 -NoTypeInformation
■コマンド詳細
・Get-CsADUser
Active Directoryドメインサービスのすべてのユーザーアカウントに関する情報を表示します。”Cs”はSkype for Businessサーバに対して使うコマンドの頭につきます。Skype for Businessに関するユーザーの情報を確認できます。
・Format-table
Get-CsADUserコマンドで出力されるユーザー情報のうち、必要としている項目のみを抽出して一覧表示させるオプションです。
この例では、 -Propertyの後に続いているDisplayName, SipAddress, Enabled,のみが表示されるようになります。
DisplayName=ディスプレイ名
SipAddress=Sipアドレス
Enabled=Skype for Businessアカウントが有効か無効かを表示する
・Export-csv
Powershellで打ったコマンドの結果をcsv形式のファイルにエクスポートするコマンドです。
この例では、-Pathに続くC:\Users\testuser\Desktop\というパスにあるtest.csvファイルの中に結果がエクスポートされます。
・-Encoding
csvに出力する文字コードを任意のものにするオプションです。この例では出力される文字コードがUTF8になります。
・-NoTypeInformation
csvファイルに出力されるときに、上部に表示されるへっだーを非表示にするオプションです。
このオプションをつけない場合、csvに出力された結果に、デフォルトでヘッダーが付きます。
■事象
使用した上記コマンドは、Powershell上ではエラーも発生することなく処理されました。
しかし結果が出力されたcsvファイルを確認すると、想定されている結果と違う、謎の数列が表示されていました。
■原因
Format-tableコマンドのあとにパイプでExport-csvをつなぐと、Export-csv以降のコマンドもFormat-tableによる検索にかけられてしまい、上手く動作しないようです。
■解決策
Format-tableコマンドをSelect-Objectコマンドに置き換えて実行することで、結果が正しくcsvファイルに
エクスポートされました。
〈最終的に使用したコマンド〉
Get-CsADUser | Select-Oblect DisplayNane, SipAddress, Enabled, | Export-csv -Path C;\Users\testuser\test.csv -Encoding UTF8 -NoTypeInformation
(-Propertyを省略していますが、同様の動きをします)
もしFormat-tableコマンドを使って上手く結果を出力できない場合は参考にしてください。
コメント
コメントする
戻る