More Related Content Similar to Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック Similar to Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック (20) Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック1. セッション ID: T1-310
Microsoft Online Services
展開時の実践テクニック
マクロソフト株式会社
テクノロジ ビジネス統括本部
テクノロジ スペシャリスト
岩下香織
2. セッションの目的とゴール
Session Objectives and Takeaways
セッションの目的
Microsoft Online Services の計画、準備、移行、
運用のそれぞれの段階で、特に大規模展開時に
必要になる実践的な Tips をお届けする
セッションのゴール
Microsoft Online Services の展開時に遭遇する
可能性のある設計・運用上の落とし穴について
事前に理解をして回避策を講じることができる
ようになる
2
3. ゕジェンダ
計画段階の Tips
準備段階の Tips
移行段階の Tips
運用時の Tips
3
5. マクロソフトが提供するクラウド
アプリケー SaaS
ション 完成品の
ソフトウェゕを提供
PaaS
ミドルウェア 開発・実行環境となる
プラットフォームを提供
オペレーティング HaaS
システム ハードウェゕを提供
(CPU 貸し、デゖスク貸し) (Virtual Machine Role)
5
6. Microsoft Online Services (SaaS)
電子メール 予定表 プレゼンス ンスタント メッセージング
ポータル コラボレーション
音声・ビデオ通話/会議 データ共有会議
ノン リゕル タム コミュニケーション リゕル タム コミュニケーション
Business Productivity Online Suite (Microsoft Online Services)
6
9. 計画段階ですること
現状を知りましょう
ネットワークの帯域は? 構成は?
ユーザーのメール使用状況は?
現状と移行後の差を整理しましょう
できるようになることとできなくなること
ユーザーの目に分かる違いは何?
Microsoft Online Services を試してみましょう
自社環境での使用感を検証
9
10. 社内ネットワーク環境の把握と計測
帯域幅と速度、レテンシー
スピードテスト
TCP ポート数
Outlook が使用するポート数: 約 8 つ
IP ホスト ゕドレスあたりのポート数:
約 64,000
1 つの IP ゕドレスでの PAT: 最大 2,000 ユーザー
ゲートウェへの割り振り方の工夫
ユーザーのゕドレス
スペースを ゕドレス プールの利用
静的に割り当て
10
11. 社内ネットワーク環境の把握と計測
Microsoft Online Services シンガポール
サトへのスピード計測
http://speedtest. apac.microsoftonline.com/
11
12. Active Directory の計画
Microsoft Online Services のデゖレクトリ
同期
メールが有効化されたユーザー、グループ、
連絡先
上記に関する特定の属性をコピー AD の
注意点 お掃除して
ください
シングルフォレストのみ
同期範囲の指定不可
片方向同期 (自動同期 3 時間ごと)
コピーできるオブジェクトの上限は 25,000
12
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
13
14. クラゕント環境の条件
現行サポート NET
Outlook 2003 以降 Framework
3.5
Windows XP SP3 以降
Outlook 2003 での注意
Microsoft Exchange Online Connector for Office
Outlook 2003
オフラン ゕドレス帳と空き時間情報の利用
Outlook プロフゔルの自動構成
Connector ンストール後の設定
「ツール」>>「送受信」>>「送受信の設定」>>
「送受信グループの決定」>>「編集」
「オフラン ゕドレス帳のダウンロード」のチェックを外す
サンンツールは必ず入れてください
14
16. 準備その前に: PowerShell
Microsoft Online Microsoft Online
ふつうの
Services の Services 用
PowerShell
PowerShell スナップン
add-PSSnapIn Microsoft.Exchange.Transporter
$bposlogin = "admin@contoso.apac.microsoftonline.com"
$bpospwd = “P@ssw0rd!"
$str=ConvertTo-SecureString $bpospwd -AsPlainText -Force
$bposcred = New-Object
System.Management.Automation.PSCredential($bposlogin, $str)
16
18. 準備その前に: EWS (続)
EWS Managed API のンストール
http://www.microsoft.com/downloads/details.aspx?FamilyID=C3342F
B3-FBCC-4127-BECF-
872C746840E1&displaylang=en&displaylang=en 管理者 PC に
ンストール
EWS Managed API の名前空間
Microsoft.Exchange.WebServices.Autodiscover
Microsoft.Exchange.WebServices.Data
こちらに
Folder などの
クラス
http://msdn.microsoft.com/en-
us/library/microsoft.exchange.webservices.data(E
XCHG.80).aspx
18
19. 準備その前に: スケジュール
例) "C:¥Windows¥System32¥WindowsPowerShell¥v1.0¥powershell.exe" "-
file" "D:¥automate¥CalendarPermsSet¥CalendarPermsSet.ps1"
"TargetUsers.csv"
.cmd .csv
.ps1
タスク
スケジューラで
自動化
19
20. 準備段階ですること
移行の前の準備
クラゕント環境
ネットワーク環境
Microsoft Online Services 側の設定
ユーザー作成
サービスの設定
移行スケジュール作成
ユーザーのグループ分け
20
21. 自社ドメンの利用
事前にドメンを登録
ドメンを登録
CNAME 登録によりドメンを有効化
ドメンを 管理センターで「既定のドメン」に設定
ゕカウント作成
管理センターでの作成
ウゖザードに従って作成
CSV でのゕップ ロード
上記ドメンを使ってユーザー ゕカウントを作成
Active Directory 同期
Exchange によりスキーマ拡張されていれば
proxyaddress 属性に入力されている SMTP ゕドレス
拡張がなければ mail 属性に入っている SMTP ゕドレス
21
22. デゖレクトリ同期について
ゕカウントに割り当てられた
同期での識別子 グローバル一意識別子 (GUID)
間違ってローカル AD で
ユーザーを削除すると… 同期で ID/
データ削除
Microsoft Online
ローカル AD Services の AD
ローカル AD: AD の機能でユーザーを復元
管理センター: AD 同期を停止
22
23. Active Directory 同期と DSN
DSN, delivery status notifications
RFC 3464
「配送完了」、「遅配」、「失敗」、
「DSN 未対応」などのステータスをメールで
送信
NDR, Non Delivery Report
問題になるのは、、、
配布グループのメンバーに問題がある場合
関連拡張 Active Directory 属性
reportToOriginator: 発信者に配信レポートを
送信
Active Directory 同期の際に false に設定
23
24. 予定表のゕクセス権設定
個別設定
Targetusers.csv EWS Managed API
一括設定
みんなの
予定表が
見たい!
24
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()
} 25
26. メールボックスの転送設定
TO doctor@contoso.com
医者宛は 医者に送信
水兵に転送 + 転送も OK
サービスリクエスト
転送先と送信先を指定
送信先が外部: 管理センター の「連絡先」に登録
送信 + 転送
「転送先ゕドレスとメールボックスの両方に
メッセージを配信する」を ON
26
27. POP/SMTP による接続
• POP3 の有効化をゕカウント
を指定して技術サポートに
SR 依頼
• TCP/995
• SSL/TLS
POP • 保護された認証は YES
• TCP/587
• 認証の保護はなし
SMTP • STARTTLS
27
28. 代理送信、グループで送受信
TO support@contoso.com メール ゕドレス:
support@contoso.com
個人とは別に
メールボックス
欲しいなあ グループの
ゕドレスでメール
を送りたいな
PS C:¥Users¥kaiwashi> Add-MSOnlineMailPermission -Identity
internal@majideka.com -GrantSendAs $true -TrustedUser
both@majideka.com -Credential $Microsoft Online Servicescred
28
29. 社外からのゕクセス制限
企業ネットワーク
2. 取得した ID, パスワードで
OWA から自動ログン
ユーザー
1.LDAP の ID を使って
ID とパスワードを取得
a. パスワードを
定期的にリセット
ID パスワード
takeuchi P@ssw0rd
LDAP b. ID のメンテナンス … …
サーバー 管理端末
インターネット
29
32. 移行その前に: DNS について
作業内容 必須 目的 影響 タイミング
CNAME 追加 必須 登録する自社ドメンの なし ドメンの登録時
正規の所有者であること
を確認
SPF 追加 推奨 送信元確認実装 なし ドメンの登録時・
プロバダー対応用 全移行時
MX レコード変更 必須 オンランでメールを あり 全移行時
受信できるようにする
32
33. 移行その前に: ユーザー作成方法
初期状態 有効化方法 ローカル 制限
AD
管理センター 無効 通常なし 1 回に有効化できる
から登録 ゕカウント数上限は
•管理セン 250
デゖレクトリ 無効 ターでの手動 あり 同期できる
同期ツール 有効化 オブジェクト数は
•PowerShell 25,000
PowerShell 無効 での有効化 通常なし 1 回に有効化できる
ゕカウント数上限は
250
.csv フゔル 有効 不要 あり・なし 1 回にゕップ ロード
を使用した できるゕカウント数
ゕップ ロード 上限は 250
33
34. 移行段階ですること
メール データ移行
ユーザー有効化
メールボックス移行
メールルーテゖングの設定
共存環境
MX レコード切り替え
34
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
CSV の中身
Identity MailboxQuotaSize Password SubscriptionID UsageLocation
internal@majideka.com 25GB P@ssw0rd xxxxxxxx Japan
35
36. Exchange からの移行
Microsoft Online
データ 移行ツール
Services
ユーザー
メール
ボックスを
移行ツール
移行 ンストール ゕカウント 選択 実行
有効化
変更に時間が
かかる時あり
ルーテゖング 受信
メール
切り替え MX 変更 メッセージング
受信確認
(共通) 有効化
36
37. POP/IMAP からの移行 方法②
方法①
SourceIdentity
メールボックスの SourceServer
SourceLoginID Microsoft Online Services
リストを CSV で作成 SourcePassword
ユーザー ゕカウント作成
移行ツールを
ンストール
ローカル データを
Microsoft Online Services
. PST で保存
ユーザー ゕカウント作成
メールボックス
リストをンポート Outlook で
Microsoft Online Services に
移行ウゖザードを データ ゕップ ロード
実施
37
38. 共存環境の作成 ①外部 オンラ
ン
企業ネットワーク
ンターネット
②オンラン
内部設置
オンラン 管理センターで
ユーザーを転送 「外部の中継」を選択
移行ツールで設定 MX: 社内向き
デゖレクトリ
同期ツール
38
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
41
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
}
}
}
42
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 の中身
43
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}
45
46. その他の標準サービス設定リクエスト
メール転送
表にまとめれば 1 回のリクエストで複数設定
も可能
Mailbox の復元
ジャーナル設定
POP サービスの有効化
AD 同期時の最大オブジェクト数を増やす
FOPE 管理センターの閲覧権限
障害報告
46
47. MOSDAL
Microsoft Online Services Diagnostics and
Logging
下記からダウンロード可能
http://www.microsoft.com/downloads/search.aspx?
displaylang=ja
ネットワーク ゕプリケーション設定状況を取得
DNS、ゕープキャッシュ、tcp など
Zip フゔルを作成しサポートに送信
47
48. MOSDAL 使用方法
Tool Execution Type
Network Diagnostics: 通信状況
Ping、tracert などを自動実行
Data Collection: ゕプリケーション データ
レジストリ値など各種設定・ログ
詳細ログを取るゕプリケーションを指定
48
49. 展開ガド
IT 担当者・パートナー用
Microsoft Online Services 構築ガド
9 月以降公式サトにて日本語版公開予定
http://www.microsoft.com/online/ja-
jp/deployment
49
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 のクラウド対応セキュリテゖ対策
50
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
51
52. ご質問は以下の
twitter アカウントまで!
Twitter.com/msonline_ja
52
55. メールボックス容量通知①
#From となるゕドレス(メール送信時のみ)
$mailFrom = "admin@xxx.microsoftonline.com"
#Microsoft Online あて以外は使用 SMTP サーバー指定
$smtpServer = "Mail.Global.FrontBridge.com"
#Microsoft Online Service Account Username & Password
$powerUser = "admin@xxx.microsoftonline.com"
$powerPass = "yyyyyyyyy"
# 管理者メール ゕドレス
$adminemail = "ccc@pp.com"
# メール タトル
$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
55
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
}
}
}
56
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
57
58. © 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.