Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
黒宮 浩介
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 の管理手法
Próxima SlideShare
Cargando en…5
×

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

3.258 visualizaciones

Publicado el

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

Publicado en: Tecnología
  • Sé el primero en comentar

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

×