tech ed 2010 japan t1-310 microsoft online services 展開時の実践テクニック
TRANSCRIPT
マクロソフト株式会社 テクノロジ ビジネス統括本部 テクノロジ スペシャリスト 岩下香織
Microsoft Online Services 展開時の実践テクニック
セッション ID: T1-310
2
セッションの目的とゴール Session Objectives and Takeaways
セッションの目的 Microsoft Online Services の計画、準備、移行、運用のそれぞれの段階で、特に大規模展開時に必要になる実践的な Tips をお届けする
セッションのゴール Microsoft Online Services の展開時に遭遇する可能性のある設計・運用上の落とし穴について事前に理解をして回避策を講じることができるようになる
3
ゕジェンダ
計画段階の Tips
準備段階の Tips
移行段階の Tips
運用時の Tips
4
クラウド コンピューテゖングの利用形態 (SaaS・PaaS・HaaS)
5
マクロソフトが提供するクラウド
(Virtual Machine Role)
HaaS ハードウェゕを提供 (CPU 貸し、デゖスク貸し)
PaaS 開発・実行環境となる プラットフォームを提供
SaaS 完成品の
ソフトウェゕを提供
オペレーティング システム
ミドルウェア
アプリケーション
6
Microsoft Online Services (SaaS)
Business Productivity Online Suite (Microsoft Online Services)
リゕル タム コミュニケーション ノン リゕル タム コミュニケーション
ンスタント メッセージング プレゼンス
音声・ビデオ通話/会議 データ共有会議
電子メール
ポータル コラボレーション
予定表
7
計画段階の Tips
準備段階の Tips
移行段階の Tips
運用時の Tips
8
計画その前に: 設定に使うツール
管理センター
Microsoft Online Services Powershell
サービスリクエスト
SendAs
9
計画段階ですること
現状を知りましょう
Microsoft Online Services を試してみましょう
現状と移行後の差を整理しましょう
ネットワークの帯域は? 構成は?
ユーザーのメール使用状況は?
できるようになることとできなくなること
ユーザーの目に分かる違いは何?
自社環境での使用感を検証
10
社内ネットワーク環境の把握と計測 帯域幅と速度、レテンシー スピードテスト
TCP ポート数 Outlook が使用するポート数: 約 8 つ
IP ホスト ゕドレスあたりのポート数:
約 64,000
ゲートウェへの割り振り方の工夫
1 つの IP ゕドレスでの PAT: 最大 2,000 ユーザー
ユーザーのゕドレススペースを
静的に割り当て
ゕドレス プールの利用
11
社内ネットワーク環境の把握と計測
Microsoft Online Services シンガポール
サトへのスピード計測 http://speedtest. apac.microsoftonline.com/
12
Active Directory の計画
Microsoft Online Services のデゖレクトリ
同期 メールが有効化されたユーザー、グループ、
連絡先
上記に関する特定の属性をコピー
注意点 シングルフォレストのみ
同期範囲の指定不可
片方向同期 (自動同期 3 時間ごと)
コピーできるオブジェクトの上限は 25,000
AD の お掃除してください
13
Active Directory の計画 (続) 同期できるドメン
Microsoft Windows Server 200x 以降
同期ツールのシステム要件 OS: 32 ビット版 Windows 2003/2008
同期するフォレストの DC ではないメンバー サーバー
PowerShell 1.0
Microsoft .NET Framework Version 2.0 以降
資格情報 ローカル Active Directory に対する Enterprise Administrator
Microsoft Online Services 管理者
PC のローカル Administrator
14
クラゕント環境の条件 現行サポート
Outlook 2003 以降
Windows XP SP3 以降
Outlook 2003 での注意 Microsoft Exchange Online Connector for Office Outlook 2003 オフラン ゕドレス帳と空き時間情報の利用
Outlook プロフゔルの自動構成
Connector ンストール後の設定 「ツール」>>「送受信」>>「送受信の設定」>>
「送受信グループの決定」>>「編集」
「オフラン ゕドレス帳のダウンロード」のチェックを外す
NET Framework
3.5
サンンツールは必ず入れてください
15
計画段階の Tips
準備段階の Tips
移行段階の Tips
運用時の Tips
16
準備その前に: PowerShell
Microsoft Online Services の PowerShell
ふつうの PowerShell
Microsoft Online Services 用 スナップン
add-PSSnapIn Microsoft.Exchange.Transporter $bposlogin = "[email protected]" $bpospwd = “P@ssw0rd!" $str=ConvertTo-SecureString $bpospwd -AsPlainText -Force $bposcred = New-Object System.Management.Automation.PSCredential($bposlogin, $str)
17
準備その前に: Exchange Web Services (EWS)
EWS
EWS Managed API
オブジェクトとして PowerShell でも 取扱い可能
プロキシの生成など コーデゖングが必須
18
準備その前に: EWS (続)
EWS Managed API のンストール
http://www.microsoft.com/downloads/details.aspx?FamilyID=C3342FB3-FBCC-4127-BECF-872C746840E1&displaylang=en&displaylang=en
EWS Managed API の名前空間
Microsoft.Exchange.WebServices.Autodiscover
Microsoft.Exchange.WebServices.Data こちらに
Folder などのクラス
http://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data(EXCHG.80).aspx
管理者 PC に ンストール
19
準備その前に: スケジュール
.ps1 .cmd .csv
"C:¥Windows¥System32¥WindowsPowerShell¥v1.0¥powershell.exe" "-file" "D:¥automate¥CalendarPermsSet¥CalendarPermsSet.ps1"
"TargetUsers.csv"
タスク スケジューラで
自動化
例)
20
準備段階ですること
移行の前の準備
移行スケジュール作成
Microsoft Online Services 側の設定
クラゕント環境
ネットワーク環境
ユーザー作成
サービスの設定
ユーザーのグループ分け
21
自社ドメンの利用 事前にドメンを登録 ドメンを登録
CNAME 登録によりドメンを有効化
ドメンを 管理センターで「既定のドメン」に設定
ゕカウント作成 管理センターでの作成 ウゖザードに従って作成
CSV でのゕップ ロード 上記ドメンを使ってユーザー ゕカウントを作成
Active Directory 同期 Exchange によりスキーマ拡張されていれば
proxyaddress 属性に入力されている SMTP ゕドレス
拡張がなければ mail 属性に入っている SMTP ゕドレス
22
Microsoft Online Services の AD ローカル AD
デゖレクトリ同期について
同期での識別子 ゕカウントに割り当てられた グローバル一意識別子 (GUID)
間違ってローカル AD でユーザーを削除すると… 同期で ID/
データ削除
ローカル AD: AD の機能でユーザーを復元
管理センター: AD 同期を停止
23
Active Directory 同期と DSN DSN, delivery status notifications
RFC 3464
「配送完了」、「遅配」、「失敗」、
「DSN 未対応」などのステータスをメールで
送信
NDR, Non Delivery Report
問題になるのは、、、 配布グループのメンバーに問題がある場合
関連拡張 Active Directory 属性 reportToOriginator: 発信者に配信レポートを送信
Active Directory 同期の際に false に設定
24
予定表のゕクセス権設定
個別設定
Targetusers.csv
一括設定
EWS Managed API
みんなの 予定表が 見たい!
25
(続) 予定表のゕクセス権設定
param( [String]$ImportFile = "D:¥automate¥CalendarPermsSet¥Targetusers.csv" ) $uri=[system.URI] "https://red003.mail.apac.microsoftonline.com/ews/exchange.asmx" $dllpath = "C:¥Program Files¥Microsoft¥Exchange¥Web Services¥1.0¥Microsoft.Exchange.WebServices.dll" $adminCredential = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $Microsoft Online Serviceslogin,$password [void][Reflection.Assembly]::LoadFile($dllpath) $service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2007_SP1) $service.Url = $uri $service.Credentials = New-Object System.Net.NetworkCredential($Microsoft Online Serviceslogin,$Microsoft Online Servicespwd,"") Import-Csv $ImportFile | Select-Object mailboxname | ForEach-Object { $folderid = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar, $_.mailboxname) $folderCalendar = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service, $folderid) $folderCalendar.permissions | ForEach-Object { if ($_.UserId.StandardUser -eq [Microsoft.Exchange.WebServices.Data.StandardUser]::Default){ $_.PermissionLevel = [Microsoft.Exchange.WebServices.Data.FolderPermissionLevel]::FreeBusyTimeAndSubjectAndLocation } if ($_.UserId.StandardUser -eq [Microsoft.Exchange.WebServices.Data.StandardUser]::Anonymous){ $_.PermissionLevel = [Microsoft.Exchange.WebServices.Data.FolderPermissionLevel]::None } } $folderCalendar.Update() }
26
メールボックスの転送設定
サービスリクエスト 転送先と送信先を指定 送信先が外部: 管理センター の「連絡先」に登録
送信 + 転送 「転送先ゕドレスとメールボックスの両方に
メッセージを配信する」を ON
医者宛は 水兵に転送
医者に送信 + 転送も OK
27
POP/SMTP による接続
SR
• POP3 の有効化をゕカウント
を指定して技術サポートに
依頼
POP
• TCP/995
• SSL/TLS
• 保護された認証は YES
SMTP
• TCP/587
• 認証の保護はなし
• STARTTLS
28
代理送信、グループで送受信 メール ゕドレス: [email protected]
個人とは別にメールボックス欲しいなあ
PS C:¥Users¥kaiwashi> Add-MSOnlineMailPermission -Identity [email protected] -GrantSendAs $true -TrustedUser [email protected] -Credential $Microsoft Online Servicescred
グループの ゕドレスでメールを送りたいな
29
社外からのゕクセス制限
ユーザー
LDAP サーバー 管理端末
ID パスワード
takeuchi P@ssw0rd
… …
パスワードを 定期的にリセット a.
LDAP の ID を使って ID とパスワードを取得 1.
取得した ID, パスワードで OWA から自動ログン 2.
ID のメンテナンス b.
企業ネットワーク
インターネット
ゕクセス制限ツールを使った シングルサンオン 異なった IP セグメントからの ゕクセス不可の確認
社外からのゕクセス制限
31
計画段階の Tips
準備段階の Tips
移行段階の Tips
運用時の Tips
32
移行その前に: DNS について
作業内容 必須 目的 影響 タイミング
CNAME 追加 必須 登録する自社ドメンの正規の所有者であることを確認
なし ドメンの登録時
SPF 追加 推奨 送信元確認実装 プロバダー対応用
なし ドメンの登録時・全移行時
MX レコード変更 必須 オンランでメールを 受信できるようにする
あり 全移行時
33
移行その前に: ユーザー作成方法
初期状態 有効化方法 ローカル AD
制限
管理センター から登録
無効
•管理センターでの手動有効化 •PowerShell での有効化
通常なし 1 回に有効化できるゕカウント数上限は 250
デゖレクトリ同期ツール
無効 あり 同期できる オブジェクト数は 25,000
PowerShell 無効 通常なし 1 回に有効化できるゕカウント数上限は 250
.csv フゔルを使用したゕップ ロード
有効 不要 あり・なし 1 回にゕップ ロードできるゕカウント数上限は 250
34
移行段階ですること
メール データ移行
メールルーテゖングの設定
ユーザー有効化
メールボックス移行
共存環境
MX レコード切り替え
35
ユーザーの有効化 PS C:¥Users¥kaiwashi> Get-MSOnlineSubscription -DisplayAll -Credential $bposcred | Select-Object @{name='SubscriptionID';Expression={$_.subscriptionid}}, @{name='SubscriptionServiceTypes';Expression={$_.subscriptionservicetypes}}, @{name='PackageName';Expression={$_.packagename}}, @{name='ExchangeStorage';Expression={$_.exchangestorage}}, @{name='Status';Expression={$_.status}}, @{name='TotalSeats';Expression={$_.totalseats}}, @{name='UsedSeats';Expression={$_.usedseats}}
Import-csv filename.csv | Enable-MSOnlineUser –Credential $cred
Identity MailboxQuotaSize Password SubscriptionID UsageLocation
[email protected] 25GB P@ssw0rd xxxxxxxx Japan
サブスクリプションの取得
一括有効化
CSV の中身
36
Exchange からの移行
移行ツール
ンストール
Microsoft Online
Services
ユーザー
ゕカウント
有効化
メール
ボックスを
選択
移行ツール
実行
MX 変更
受信
メッセージング
有効化
メール
受信確認
データ移行
ルーテゖング切り替え (共通)
変更に時間が かかる時あり
37
POP/IMAP からの移行
メールボックスの
リストを CSV で作成
移行ツールを
ンストール
Microsoft Online Services
ユーザー ゕカウント作成
メールボックス
リストをンポート
移行ウゖザードを
実施
SourceIdentity SourceServer SourceLoginID SourcePassword
Microsoft Online Services
ユーザー ゕカウント作成
ローカル データを
. PST で保存
Outlook で
Microsoft Online Services に
データ ゕップ ロード
方法① 方法②
38
共存環境の作成
企業ネットワーク
管理センターで 「外部の中継」を選択
ンターネット
MX: 社内向き
オンラン ユーザーを転送
移行ツールで設定
デゖレクトリ 同期ツール
①外部 オンラン
②オンラン 内部設置
39
計画段階の Tips
準備段階の Tips
移行段階の Tips
運用時の Tips
40
外部との送受信トレース FOPE 管理者 ID でメール送受信履歴の検索可能
41
ユーザーと利用容量一覧の取得 Write-Host "#### Enabled Users ####`r" Write-Host "LastName, FirstName, DisplayName, Email, LastSignedInDate, MailboxSize(MB), usedSize(Byte), ItemCount`n" $enabledUser = Get-MSOnlineUser -Enabled -Quiet -Credential $Microsoft Online Servicescred ForEach($user in $enabledUser) { $userDetail = Get-XsHostedExchangeMailbox -SourceServer red003.mail.apac.microsoftonline.com -Quiet -SourceIdentity $user.Identity -SourceAdminCredential $Microsoft Online Servicescred -SourceDetail Full Write-Host $user.LastName"," $user.FirstName"," $user.DisplayName"," $user.Identity"," $user.LastSignedInDate"," $user.MailboxSize"," $userDetail.storageByteSize"," $userDetail.ItemCount"`n" }
Get-XsHostedExchangeMailbox は本来移行元の Exchange サーバーの情報を吸い出す cmdlt
わかれているのが仕様なのでこれで GO
42
メールボックス容量通知 $supportcollection=@() $enabledusers = get-msonlineuser -Credential $AdminCredential -Enabled -ResultSize 10,000 ForEach($user in $enabledUsers){ If ($user.mailboxsize -gt 0){ $mailbox = Get-XsHostedExchangeMailbox -SourceServer red003.mail.apac.microsoftonline.com -Quiet -SourceIdentity $user.identity -SourceAdminCredential $adminCredential -SourceDetail full $quota= $mailbox.storageByteSize / ($user.MailboxSize * 1,048,576) * 100 $quota = "{0:N1}" -f $quota $quota = [single]$quota $quotausersobj= "" | select Name,QuotaUsed $quotausersobj.Name=$user.identity $quotausersobj.QuotaUsed=$quota $supportcollection += $quotausersobj If ($quota -ge $Level1){ If ($quota -ge $Level3){ $subject = "要即時対応:",$user.DisplayName,"さんのメールボックスが既定サイズを超えています" $body = "メールボックスの使用量は現在",$quota,"% です。メールボックスの容量を減らさないとメールの送受信ができなくなります" } (途中略) $body = $body + "メールボックスを減らすには以下の指示に従ってください" #Write Results to console. Uncomment next 5 lines if testing. write-host "Mail from: ", $mailfrom write-host "Mail to: ", $user.Identity write-host "Subject: ", $subject write-host "Body: ", $body write-host } } }
43
メールボックス容量通知(続) (前略) $supportCollection = $supportcollection | sort @{expression="QuotaUsed";Descending=$true} $supportbody = "ユーザー ID,使用率,超過メール `n`n" ForEach($user in $supportCollection){ If ($user.quotaused -ge $Level1){ $supportbody = $supportbody + $user.name + " , " + $user.quotaused + "% , " + "ユーザーに通知メール送信" + "`n`n" } Else{ $supportbody = $supportbody + $user.name + " , " + $user.quotaused + "%`n`n" } } $supportbody
$supportbody の中身
PowerShell スクリプトを実行 管理者及びメールボックス容量の大きい人にメールが送信されるのを確認
メールボックス容量通知
45
パスワード設定
ポリシー 文字数は 7 文字以上
大文字・小文字・数字・記号の 4 つのカテゴリのうち、少なくとも 3 つ
90 日ごとに変更 など
Import-csv filename.csv | Set-MSOnlineUserPassword –Credential $cred
単純な一括パスワード設定
Import-csv filename.csv | ForEach-Object{ Set-MSOnlineUserPassword -identity $_.Identity -Password $_.Password -ChangePasswordOnNextLogon $false -Credential $cred}
次回ログン時のユーザーによるリセットなしの一括パスワード設定
46
その他の標準サービス設定リクエスト
メール転送 表にまとめれば 1 回のリクエストで複数設定も可能
Mailbox の復元
ジャーナル設定
POP サービスの有効化
AD 同期時の最大オブジェクト数を増やす
FOPE 管理センターの閲覧権限
障害報告
47
MOSDAL Microsoft Online Services Diagnostics and Logging 下記からダウンロード可能
http://www.microsoft.com/downloads/search.aspx? displaylang=ja
ネットワーク ゕプリケーション設定状況を取得 DNS、ゕープキャッシュ、tcp など
Zip フゔルを作成しサポートに送信
48
MOSDAL 使用方法 Tool Execution Type
Network Diagnostics: 通信状況 Ping、tracert などを自動実行
Data Collection: ゕプリケーション データ レジストリ値など各種設定・ログ
詳細ログを取るゕプリケーションを指定
49
展開ガド
IT 担当者・パートナー用 Microsoft Online Services 構築ガド
9 月以降公式サトにて日本語版公開予定
http://www.microsoft.com/online/ja-jp/deployment
50
関連セッション
T1-302: 次世代 Microsoft Online Services の最新情報
T1-304: 次世代 Microsoft Online Services の ID 及びゕクセス 管理~AD FS 2.0 によるシングルサンオンの実現 1 ~
T1-303: Exchange Server 2010 と次世代 Exchange Online の 共存
T1-403: 次世代 SharePoint Online 開発と Windows Azure 連携
T1-306: Exchange Server のクラウド対応セキュリテゖ対策
51
リフゔレンス
マクロソフト オンラン サービス製品情報 http://www.microsoft.com/japan/online/default.mspx
Microsoft Online Services 開発者向け情報 http://msdn.microsoft.com/ja-jp/ms.online.aspx
Microsoft Online Services 技術者向け情報 (TechCenter) http://technet.microsoft.com/ja-jp/msonline/default.aspx
オンラン サービスのトラゕル サト http://www.microsoft.com/japan/online/trial.mspx
オンラン サービスの体験サト (手続きなしですぐ体験できる) http://www.microsoft.com/japan/online/trial2.mspx
52
ご質問は以下の twitter アカウントまで!
Twitter.com/msonline_ja
ご清聴ありがとうございました。
T1-310 ゕンケートにご協力ください。
54
Appendix
55
メールボックス容量通知①
#From となるゕドレス(メール送信時のみ) $mailFrom = "[email protected]" #Microsoft Online あて以外は使用 SMTP サーバー指定 $smtpServer = "Mail.Global.FrontBridge.com" #Microsoft Online Service Account Username & Password $powerUser = "[email protected]" $powerPass = "yyyyyyyyy" # 管理者メール ゕドレス $adminemail = "[email protected]" # メール タトル $adminsubject = "メール危険容量通知" # 通知レベル l $Level1 = 75 $Level2 = 85 $Level3 = 95 $supportcollection=@() $password = ConvertTo-SecureString $powerPass -AsPlainText -Force $adminCredential = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $powerUser,$password # 有効ユーザーの取得 $enabledusers = get-msonlineuser -Credential $AdminCredential -Enabled -ResultSize 10,000
56
メールボックス容量通知②
# 各ユーザーの値を取得 ForEach($user in $enabledUsers){ If ($user.mailboxsize -gt 0){ #$mailbox = get-msonlineuser -identity $user.identity -Credential $AdminCredential -SourceDetail Full $mailbox = Get-XsHostedExchangeMailbox -SourceServer red003.mail.apac.microsoftonline.com -Quiet -SourceIdentity $user.identity -SourceAdminCredential $adminCredential -SourceDetail full $quota= $mailbox.storageByteSize / ($user.MailboxSize * 1,048,576) * 100 $quota = "{0:N1}" -f $quota $quota = [single]$quota $quotausersobj= "" | select Name,QuotaUsed $quotausersobj.Name=$user.identity $quotausersobj.QuotaUsed=$quota $supportcollection += $quotausersobj If ($quota -ge $Level1){ If ($quota -ge $Level3){ $subject = "要即時対応:",$user.DisplayName,"さんのメールボックスが既定サズを超えています" $body = "メールボックスの使用量は現在",$quota,"% です。メールボックスの容量を減らさないとメールの送受信ができなくなります" } ElseIf ($quota -ge $Level2){ $subject = "要即時対応:",$user.DisplayName,"さんのメールボックスが既定サズに達しようとしています" $body = "メールボックスの使用量は現在",$quota,"% です。メールボックスの容量を減らさないとメールの送受信ができなくなります" } Else{ $subject = "要対応:",$user.DisplayName,"さんのメールボックスが既定サズに近づいています" $body = "メールボックスの使用量は現在",$quota,"% です。メールボックスの容量を減らさないとメールの送受信ができなくなる可能性があります" } # メールを実際に通知する場合は、以下のコメントゕウトを外す #$smtp = new-object Net.Mail.SmtpClient($smtpServer) #$smtp.Send($mailFrom, $user.Identity, $subject, $body) # コンソールへの出力 write-host "Mail from: ", $mailfrom write-host "Mail to: ", $user.Identity write-host "Subject: ", $subject write-host "Body: ", $body write-host } } }
57
メールボックス容量通知③
# 管理者へのリスト通知 # 配列内データを容量の多い順からソート $supportCollection = $supportcollection | sort @{expression="QuotaUsed";Descending=$true} #$supportbody = "User Identity,Quota Used,Over Limit`n`n" $supportbody = "ユーザー ID,使用率,超過メール `n`n" ForEach($user in $supportCollection){ If ($user.quotaused -ge $Level1){ $supportbody = $supportbody + $user.name + " , " + $user.quotaused + "% , " + "ユーザーに通知メール送信" + "`n`n" } Else{ $supportbody = $supportbody + $user.name + " , " + $user.quotaused + "%`n`n" } } # メールを実際に通知する場合は、以下のコメントゕウトを外す $smtp = new-object Net.Mail.SmtpClient($smtpServer) $smtp.Send($mailFrom, $AdminEmail, $adminsubject, $supportbody) # コンソールへの出力 $supportbody
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.