Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
黒宮 浩介
2015/02/21
1
 黒宮 浩介 (くろみや こうすけ) ※名古屋人です
SPeed LAND 365
https://www.facebook.com/kosuke.kuromiya
 名古屋の某SIer に勤務
 現在のお仕事
- SharePoint ...
SharePoint Online(≒クラウドサービス)を、
PowerShell と C# を使ってどのように管理が
できるのかを知っていただく。
3
 以下の内容は、2015年9月時点で、私個人が調査および動
作確認をした結果に基づく見解であり、製品およびサービス
の技術的な保証をするものではありません。
 私が属する組織・団体とも無関係です。
 SharePoint Online(O...
1. SharePoint Online とは
2. SharePoint Online の管理方法
3. 「SharePoint Online Management Shell」とは
4. PowerShell を C# から実行する
5. ...
 MSの情報共有基盤製品「SharePoint」のSaaS版
◦ ポータルサイト(チームサイト)
 お知らせ投稿、掲示板、予定表 etc…
◦ ドキュメント管理(ファイル共有)
◦ コラボレーション
◦ エンタープライズ検索
6
7
8
 Web画面:SharePoint管理センター
9
 Web画面:Office 365 管理センター
10
 PowerShell
◦ 「SharePoint Online Management Shell」
 SharePoint Online 専用の PowerShell モジュール
※参考サイト【SharePoint Online 管理シェ...
 テナント内のサイトコレクション一覧を取得する
https://technet.microsoft.com/ja-jp/library/fp161380.aspx
Connect-SPOService -Url “https://xxx-ad...
13
14
15
 自社テナント外のユーザー(メールアドレス)を
SharePoint Onlineのサイトに招待(登録)して、
サイトへアクセスできるようにする機能
◦ Online のみの機能(追加料金 不要)
◦ 登録可能ユーザー数= 無制限!
◦ 標準...
1. 登録できるメールアドレスがフリーアカウント
◦ 誰でも自由に作れるユーザーアカウントが(SaaSとはいえ)“社内”サ
イトにアクセスすることになる。
◦ 漏えいリスク、機密保持をどう確保するか
2. 外部ユーザーの「利用状況」管理する機能...
 テナント内の外部ユーザーを取得する。
https://technet.microsoft.com/ja-jp/library/jj730438.aspx
Get-SPOExternalUser [-Position X] [-PageSiz...
23
 実運用には課題が…
◦ 一度に取得できる最大ユーザー数が 50 …
◦ MSDN等には書いてない(実行してみて初めて…orz)
24
 「テナントの全ての外部ユーザーを取得する」には
Get-SPOExternalUser -Position 0 -PageSize 50
↓ if (50人取得してたら) ⇒ 50番目の外部ユーザーから50人分取る
Get-SPOExter...
 PS ISEでスクリプトを書いて .ps1 ファイルにする
◦ インフラ周り(ADやExchange) の技術者の方が得意?
 (個人的に)元々がプログラマーなんで、C#で書け
れば手っ取り早いんだけどなぁ…
26
 PowerShell クラス
◦ 「Windows Management Framework」配下の
System.Management.Automation.DLL を参照追加する
(C:¥Program Files (x86)¥Refe...
29
30
31
32
33
+ 50
34
 今回のプログラムはこの公開コードを参考にしました
◦ “Run SharePoint Online Management PowerShell command
programmatically”
https://code.msdn.micr...
37
1. PowerShell & C# で管理用データを取得する
2. SPO のリストに取得したデータを保存する
◦ 保存用のサイトとリストは事前に作成しておく
◦ CSOM* によるSPOデータへのアクセス
*クライアントサイドオブジェ...
 PowerShell や プログラムによる管理の利点
◦ 管理処理(業務)をバッチ(ジョブ)で自動化できる
 人力による管理の削減 ←ある程度の大規模向け?
 注意点
◦ NWの状況などの問題でテナントに接続できないケースが
ままあるの...
【SharePoint Online 管理シェルの概要】
http://office.microsoft.com/ja-jp/sharepoint-help/HA102915057.aspx
【SharePoint Online PowerSh...
ご清聴ありがとうございました
40
PowerShell と .Net 使った SharePoint Online の管理手法
PowerShell と .Net 使った SharePoint Online の管理手法
PowerShell と .Net 使った SharePoint Online の管理手法
PowerShell と .Net 使った SharePoint Online の管理手法
PowerShell と .Net 使った SharePoint Online の管理手法
PowerShell と .Net 使った SharePoint Online の管理手法
Nächste SlideShare
Wird geladen in …5
×

PowerShell と .Net 使った SharePoint Online の管理手法

3.284 Aufrufe

Veröffentlicht am

2015年2月21日:技術ひろば.net 勉強会 ~Azure 利用を改めて考える回~

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

PowerShell と .Net 使った SharePoint Online の管理手法

  1. 1. 黒宮 浩介 2015/02/21 1
  2. 2.  黒宮 浩介 (くろみや こうすけ) ※名古屋人です SPeed LAND 365 https://www.facebook.com/kosuke.kuromiya  名古屋の某SIer に勤務  現在のお仕事 - SharePoint について色々やるエンジニア(導入・開発・保守 etc…)  好きなもの - 映画、サブカル色々幅広く、SKE48! 2
  3. 3. SharePoint Online(≒クラウドサービス)を、 PowerShell と C# を使ってどのように管理が できるのかを知っていただく。 3
  4. 4.  以下の内容は、2015年9月時点で、私個人が調査および動 作確認をした結果に基づく見解であり、製品およびサービス の技術的な保証をするものではありません。  私が属する組織・団体とも無関係です。  SharePoint Online(Office365)の機能・サービスは日々 アップデートされるため、以降で説明する仕様などが今後変 更される可能性があります。  また、本内容の操作等を実施された場合に発生したいかなる 問題等に関しても、一切の責任を負いません。
  5. 5. 1. SharePoint Online とは 2. SharePoint Online の管理方法 3. 「SharePoint Online Management Shell」とは 4. PowerShell を C# から実行する 5. PowerShell と .Net を組み合わせた開発例 6. まとめ 5
  6. 6.  MSの情報共有基盤製品「SharePoint」のSaaS版 ◦ ポータルサイト(チームサイト)  お知らせ投稿、掲示板、予定表 etc… ◦ ドキュメント管理(ファイル共有) ◦ コラボレーション ◦ エンタープライズ検索 6
  7. 7. 7
  8. 8. 8
  9. 9.  Web画面:SharePoint管理センター 9
  10. 10.  Web画面:Office 365 管理センター 10
  11. 11.  PowerShell ◦ 「SharePoint Online Management Shell」  SharePoint Online 専用の PowerShell モジュール ※参考サイト【SharePoint Online 管理シェルの概要】 http://office.microsoft.com/ja-jp/sharepoint-help/HA102915057.aspx C:¥Windows¥System32¥WindowsPowerShell¥v1.0¥powershell.exe -NoExit -Command "Import- Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking;“  コマンドラインからSharePoint Online を管理できる  インストーラーをDLして、インストールするだけで使える  SharePoint Online グローバル管理者のユーザー権限で接続する 11
  12. 12.  テナント内のサイトコレクション一覧を取得する https://technet.microsoft.com/ja-jp/library/fp161380.aspx Connect-SPOService -Url “https://xxx-admin.sharepoint.com” - Credential “UserID@xxx.onmicrosoft.com” Get-SPOSite Disconnect-SPOService ※出力結果をCSVファイルに出力する Get-SPOSite -Detailed | Export-Csv C:¥Dev¥Get-SPOSite_Detailed.csv 12
  13. 13. 13
  14. 14. 14
  15. 15. 15
  16. 16.  自社テナント外のユーザー(メールアドレス)を SharePoint Onlineのサイトに招待(登録)して、 サイトへアクセスできるようにする機能 ◦ Online のみの機能(追加料金 不要) ◦ 登録可能ユーザー数= 無制限! ◦ 標準的な操作は通常ユーザーとほぼ同程度できる ◦ 使用例:  プロジェクト用のポータルサイトにそこに他社のユーザーを「外部 ユーザー」として招待して、情報共有やファイル共有ができる
  17. 17. 1. 登録できるメールアドレスがフリーアカウント ◦ 誰でも自由に作れるユーザーアカウントが(SaaSとはいえ)“社内”サ イトにアクセスすることになる。 ◦ 漏えいリスク、機密保持をどう確保するか 2. 外部ユーザーの「利用状況」管理する機能が不十分 ◦ 管理者的には 「どんなユーザー (信用)」が、 「どれだけ(人数・規模)」で 「どこのサイト(情報種類)」 にアクセスしているのか、 を把握したい ◦ 管理センターでは「個々のサイトコレクションごと」の確認画面だけ =「自社テナント内の全ての外部ユーザー」を一括確認する画面が無い。
  18. 18.  テナント内の外部ユーザーを取得する。 https://technet.microsoft.com/ja-jp/library/jj730438.aspx Get-SPOExternalUser [-Position X] [-PageSize XX] [-SiteUrl] ◦ 引数  -Position:開始番号(何番目の外部ユーザーを取得するか)  -PageSize:何人分の外部ユーザーを取得するか  [注意] 指定無し=最初(0番目)の一人だけ取得 22
  19. 19. 23
  20. 20.  実運用には課題が… ◦ 一度に取得できる最大ユーザー数が 50 … ◦ MSDN等には書いてない(実行してみて初めて…orz) 24
  21. 21.  「テナントの全ての外部ユーザーを取得する」には Get-SPOExternalUser -Position 0 -PageSize 50 ↓ if (50人取得してたら) ⇒ 50番目の外部ユーザーから50人分取る Get-SPOExternalUser -Position 50 -PageSize 50 ↓ if (50人取得してたら) ⇒ 100番目の外部ユーザーから50人分取る Get-SPOExternalUser -Position 100 –PageSize 50 ↓ if (50人取得してたら) ⇒ 150番目の外部ユーザーから50人分取る …という条件判断(処理)が必要?!…(汗) 25
  22. 22.  PS ISEでスクリプトを書いて .ps1 ファイルにする ◦ インフラ周り(ADやExchange) の技術者の方が得意?  (個人的に)元々がプログラマーなんで、C#で書け れば手っ取り早いんだけどなぁ… 26
  23. 23.  PowerShell クラス ◦ 「Windows Management Framework」配下の System.Management.Automation.DLL を参照追加する (C:¥Program Files (x86)¥Reference Assemblies¥Microsoft¥WindowsPowerShell¥3.0) ◦ [注意] ビルドの「構成マネージャー」でプラットフォームを、デフォルトの 「Any CPU」から「64bit」に変更する。 28
  24. 24. 29
  25. 25. 30
  26. 26. 31
  27. 27. 32
  28. 28. 33 + 50
  29. 29. 34
  30. 30.  今回のプログラムはこの公開コードを参考にしました ◦ “Run SharePoint Online Management PowerShell command programmatically” https://code.msdn.microsoft.com/office/Run-SharePoint-Online-8d1d0a3b 35
  31. 31. 37 1. PowerShell & C# で管理用データを取得する 2. SPO のリストに取得したデータを保存する ◦ 保存用のサイトとリストは事前に作成しておく ◦ CSOM* によるSPOデータへのアクセス *クライアントサイドオブジェクトモデル  管理者権限の無いユーザーにデーターを見せられる ◦ サイトコレクション管理者にサイトの利用状況等を見せられる ※参考サイト 【SharePoint 2013 での適切な API セットの選択】 https://msdn.microsoft.com/ja-jp/library/jj164060(v=office.15).aspx 【SharePoint 2013 .NET Server, CSOM, … index】 https://msdn.microsoft.com/en-us/library/office/dn268594.aspx
  32. 32.  PowerShell や プログラムによる管理の利点 ◦ 管理処理(業務)をバッチ(ジョブ)で自動化できる  人力による管理の削減 ←ある程度の大規模向け?  注意点 ◦ NWの状況などの問題でテナントに接続できないケースが ままあるので、エラー時処理などの考慮は必要。 ◦ コマンドの仕様がいつの間にか変わる可能性あり? 38
  33. 33. 【SharePoint Online 管理シェルの概要】 http://office.microsoft.com/ja-jp/sharepoint-help/HA102915057.aspx 【SharePoint Online PowerShell コマンドレット の インデックス】 http://technet.microsoft.com/ja-jp/library/fp161364(v=office.15).aspx 【PowerShell Class System.Management.Automation】 https://msdn.microsoft.com/en-us/library/system.management.automation.powershell(v=vs.85).aspx 【PowerShell を C# から実行する】(MVP田中さんのブログ) http://tech.tanaka733.net/entry/2013/12/10/powershell-from-csharp 【Windows PowerShell を使用して Office 365 を管理する利点】 https://technet.microsoft.com/ja-jp/library/dn567998.aspx 【Office 365 の最新環境で PowerShell を使うための知識】 http://community.office365.com/ja-jp/b/office_365_community_blog/archive/2014/05/09/using- powershell-in-the-new-office-365.aspx 39
  34. 34. ご清聴ありがとうございました 40

×