質問者
ExFoldersに代わるPowershellは?

質問
-
EX2007までは、Workstation環境でPFDAVAdminを使って、
各ユーザーのメールボックスのフォルダ構成や各フォルダにつけられている権限を確認しておりましたが、
ご存じのとおりEX2010環境ではExchangeサーバー上で直接ExFoldersを使う仕様となってしまいました。
残念ながらWorkstation上でしかメンテナンスができないので、
PowershellでPFDAVAdminで取得していた情報を取得する方法はないでしょうか?取得したい情報は、PFDAVAdminのExport Permissionsで取得していたTop of Informationの下のすべてフォルダ名と、
各フォルダに付加されている権限です。ユーザーの誤操作や、故意による情報取得目的などで、本人が意図しない不要な権限をチェックするために、
定期的にPFDAVAdminを利用していましたが、2010になってからはこの作業ができずに非常に困っています。どなたかお知恵を拝借できればと思います。どうぞよろしくお願いいたします。
2011年5月6日 8:32
すべての返信
-
mygn1022 さん、こんにちは
フォーラム オペレーターの星 睦美です。TechNet ライブラリのExchange Server 2010 管理 シェルに関する情報が参考になるのではないかと思います。
参考までにご紹介します。・ユーザーのリモート Exchange 管理シェルを有効にする:
http://64.4.11.252/ja-jp/library/dd298084.aspx・パブリック フォルダーのアクセス許可の管理:
http://64.4.11.252/ja-jp/library/bb310789.aspx・Exchange 2010 コマンドレット: Get-PublicFolder
http://64.4.11.252/ja-jp/library/bb124413.aspx・パブリック フォルダー クライアントのアクセス許可の設定を表示する
http://64.4.11.252/ja-jp/library/bb123881.aspxこちらの情報がお役にたちましたら幸いです。
日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美2011年5月12日 4:10 -
Exchange Web Services を利用すれば、CAS 経由でいろいろできます。
サーバー上ではなくても動作するので、がんばれば実現できると思います。わたしはこういうスクリプトを作ってみました。
ほかのユーザーに偽装するとか、Wellknown Folder フォルダを取得してサブフォルダーを検索するとか、フォルダのアクセス権を取得 (予定表だけですが) しているとか、参考になるかと思います。
予定表のアクセス権を CSV ファイルからインポートするスクリプト
http://social.technet.microsoft.com/Forums/ja-JP/exchangeserver2010ja/thread/4fb4442c-6ad2-4465-8bbc-295032617b30※EWS Managed API は、現在 1.1 のみダウンロード可能になっているので、スクリプト中でアセンブリをロードしているところのパス名を 1.1 と変更してください。
2011年5月23日 12:58 -
ご回答くださいましてありがとうございました。
私のレベルではちょっと難しすぎまして、もう少し簡易的にできないものかと知人に相談したところ、以下はどうかと言われました。ForEach ($f in (Get-MailboxFolderStatistics <alias>)) { $fName = "<alias>:" + $f.FolderPath.Replace("/","\"); Get-MailboxFolderPermission -identity $fname}
しかしながら、フォルダー名が英語(Inbox etc.)の場合はいいのですが、日本語(受信トレイ etc.)の場合は文字化けしてしまい何のフォルダか判別がつきません。
また、どういうわけか内容をCSVにExportできませんでした。単純にGet-mailboxfolderpermission -identity <alias>:\受信トレイ | export-csv filename.csv
を実行するときちんとExportされるのですが・・・。超初心者なので大変申し訳ありませんが、英語でも日本語でも対応可能にするにはどうしたらいいでしょうか?
2011年5月27日 11:28 -
日本語のフォルダ名でも別段文字化けすることはなかったですよ。
Export しようと思ったら、相当強引ですがこんな感じでしょうか。
$alias = "user01"; $arr = $(); foreach ($f in (Get-MailboxFolderStatistics $alias)) { switch -w ($f.FolderType) { "Root" {} "RecoverableItems*" {} default { $fName = $alias + ":" + $f.FolderPath.Replace("/","\"); $arr+= Get-MailboxFolderPermission -identity $fname } } }; $arr | select -Property FolderName,User,@{n="AccessRight";e={ (($_.AccessRights | select -index 0).ToString()) } } | Export-CSV -Path ($alias + ".csv") -Encoding UTF8 -NoTypeInformation
2011年5月31日 13:13