locked
予定表のアクセス権を CSV ファイルからインポートするスクリプト RRS feed

  • 全般的な情報交換

  • 日本語環境のせいかどうかわかりませんが、ExFolders がどうにも動かないので、

    Exchange, meet ExFolders
    http://msexchangeteam.com/archive/2009/12/04/453399.aspx

    メールボックス内の [予定表] フォルダのアクセス権を CSV ファイルからインポートするスクリプトを作ってみました。

    スクリプトや動作環境はここから

    Import Calendar Permission from CSV
    http://gallery.technet.microsoft.com/ScriptCenter/en-us/939a87ab-60ca-4ba4-b80f-050f06f6c162

    日本語環境で使用する場合は、10行目あたりからを次のように変えてください。

    # Localized Names
    $FOLDERPERMISSIONLEVEL_OWNER_NAME_L = "所有者"
    $FOLDERPERMISSIONLEVEL_PUBLISHINGEDITOR_NAME_L = "発行編集者"
    $FOLDERPERMISSIONLEVEL_EDITOR_NAME_L = "編集者"
    $FOLDERPERMISSIONLEVEL_PUBLISHINGAUTHOR_NAME_L = "発行作成者"
    $FOLDERPERMISSIONLEVEL_AUTHOR_NAME_L = "作成者"
    $FOLDERPERMISSIONLEVEL_NONEDITINGAUTHOR_NAME_L = "非編集作成者"
    $FOLDERPERMISSIONLEVEL_REVIEWER_NAME_L = "参照者"
    $FOLDERPERMISSIONLEVEL_CONTRIBUTOR_NAME_L = "寄稿者"
    $FOLDERPERMISSIONLEVEL_FREEBUSYTIMEANDSUBJECTANDLOCATION_NAME_L = "空き時間情報, 件名, 場所"
    $FOLDERPERMISSIONLEVEL_FREEBUSYTIMEONLY_NAME_L = "空き時間情報"
    $FOLDERPERMISSIONLEVEL_NONE_NAME_L = "なし"
    $FOLDERPERMISSIONLEVEL_CUSTOM_NAME_L = "カスタム"
    $STANDARDUSER_ANONYMOUS_NAME_L = "匿名"
    $STANDARDUSER_DEFAULT_NAME_L = "既定"

    CSV ファイルは Unicode(UTF-16) で作成し、例えばこんなのを書きます。
    ======================================================================
    Target,Accessor,Permission
    targetuser@example.local,user01@example.local,発行編集者
    targetuser@example.local,user02@example.local,"空き時間情報, 件名, 場所"
    targetuser@example.local,group01@example.local,参照者
    ======================================================================
    ※"空き時間情報, 件名, 場所" だけはカンマが入ってるのでダブルコーテーションで囲います。

    設定対象およびアクセスするユーザー (またはメールが有効なグループ) はメールアドレスで指定するということにしてますが、名前解決を使ってるので表示名やエイリアスでもかまいません。

    ただし、名前解決で複数の候補が出る場合 (例えば user1, user10, user11... がある場合に user1 を入れたとき) は、中断します。
    ※これに限らず、例外が発生した時は中断して継続するかどうか選ぶようになってます。継続した場合は CSV の次の行から再開します。

    例ではアクセス権を日本語 (Outlook で表示される名前) で書きましたが、こうやって書いても構いません。

    Owner
    PublishingEditor
    Editor
    PublishingAuthor
    Author
    NoneditingAuthor
    Reviewer
    Contributor
    FreeBusyTimeAndSubjectAndLocation
    FreeBusyTimeOnly


    【注意点】
    ・実行するユーザーは偽装ができるようにしておく。
    Administrator とかの Exchange 管理者や Domain Admins のメンバーではなく、普通のユーザーに設定します。設定方法は次のページを参照。

    Configuring Exchange Impersonation
    http://msdn.microsoft.com/en-us/library/bb204095.aspx
    ※ Exchange Server 2010 の場合

    Configuring Exchange Impersonation (Exchange Web Services)
    http://msdn.microsoft.com/en-us/library/bb204095(EXCHG.80).aspx
    ※ Exchange Server 2007 の場合

    ・Autodiscover が使える環境で実行する。
    ドメインのメンバーコンピュータで、上で偽装ができるように設定したユーザーにログオンしておくといいです。

    ・証明書エラーが出ないようにする。
    自己発行証明書の場合は、OWA を表示して証明書を信頼するルート証明機関にインポートしておいてください。

    2010年6月15日 22:33