Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

開発者のための最新グループポリシー活用講座

Windows Server 2008 R2 のグループポリシーは開発者のためにも有用なのです!

Related Books

Free with a 30 day trial from Scribd

See all
  • Login to see the comments

開発者のための最新グループポリシー活用講座

  1. 1. 開発者のための最新 Group Policy 活用講座<br />マイクロソフト株式会社<br />エバンジェリスト<br />安納 順一Anno Junichi<br />http://blogs.technet.com/junichia/<br />
  2. 2. 本日の内容<br />業務アプリケーションの環境設定をグループポリシーに委託することで、信頼性の向上と開発/管理コスト削減を図ることができます。<br />Windows Server 2008 R2では、<br />PowerShell 2.0 によるリモーティング<br />グループポリシー用コマンドレット<br />により、さらに「楽」ができます!<br />そんなお話をお送りします。<br />
  3. 3. 前提知識(おさらい)<br />
  4. 4. Group Policy ってなに?<br />環境を集中管理/制御する仕組み<br />OSの管理項目は標準で提供されている<br />独自の管理項目を拡張できる<br />Group Policy<br />Active Directory<br />ドメインコントローラ<br />
  5. 5. できること(例)<br />セキュリティ関連<br /> パスワードの複雑さ<br /> 通信の暗号化強度<br /> ログの保存期間 など<br />OSの環境<br /> コントロールパネル内の各種設定<br /> シェル(エクスプローラ)の動作設定 など<br /> インストールされているソフトウェアの環境構成<br />Office の環境設定<br />Internet Explorer の環境設定<br />Windows関連コンポーネントの環境設定<br /> レジストリ や ini ファイルの設定 など<br /> ユーザープロファイルの構成<br /> デスクトップの設定<br /> アプリケーション利用の許可と拒否<br /> プリンターの接続<br /> アプリケーションの動作設定<br />
  6. 6. 6種類のグループポリシー<br />ローカルポリシー<br />コンピュータポリシー<br />ポリシー<br />ユーザーポリシー<br />ポリシー<br />ドメインポリシー<br />今日の対象<br />コンピュータポリシー<br />ポリシー<br />基本設定<br />今日の対象<br />ユーザーポリシー<br />ポリシー<br />基本設定<br />
  7. 7. グループポリシーの構造<br />GPO<br />GPO Link<br />コンピュータポリシー<br />DomainROOT<br />ユーザーポリシー<br />OU<br />GPO Link<br />GPO<br />GPO Link<br />コンピュータポリシー<br />OU<br />ユーザーポリシー<br />OU<br />GPO<br />GPO Link<br />コンピュータポリシー<br />SITE<br />ユーザーポリシー<br />SITE<br />GPO:グループポリシーオブジェクト<br />
  8. 8. グループポリシーによるアプリケーション環境の実装<br />
  9. 9. 開発者の”役”にたつの?<br />YES!<br />何ができるの?<br />OSの機能でアプリの動作や環境を集中管理できる<br />適用に関するプロセスの大部分をOSに委託<br />業務アプリケーション<br />業務アプリケーション<br />環境<br />設定<br />機構<br />環境<br />設定<br />機構<br />Windows<br />Windows<br />
  10. 10. グループポリシーによる環境適用の流れ<br />環境設定は<br />ここで行う<br />ここに業務アプリの環境が保存される<br />業務アプリ<br />GPクライアント<br />Group Policy<br />GPO<br />GPO<br />・・・・・<br />読み込み<br />反映<br />レジストリ<br />Active Directory<br />OS<br />OS<br />クライアント<br />サーバー(ドメインコントローラ)<br />クライアント側を触る<br />必要はない<br />
  11. 11. 環境管理機構の要件とグループポリシー<br />
  12. 12. ADMXファイルによる実装<br />ADMXファイルで環境設定画面を定義<br /> 業務アプリをグループポリシーに組み込むのに必須!<br />GPMC のGUIとして組み込まれる<br />
  13. 13. ADMX に書けること<br />http://technet.microsoft.com/ja-jp/library/cc753471(WS.10).aspx<br />サンプルは C:WindowsPolicyDefinitions 配下に<br />なんと日本語!<br />ポリシー有効/無効/未定義 時の動作<br />設定に使用するコントロール<br />規定値、最大(小)文字列長、数値、必須かどうか<br />サポートされるOSのバージョン<br />複数言語対応<br />その他(リスト、コンボ、複数行文字列など)<br />
  14. 14. でもなぁ...ADMX作るの面倒くさいなぁ...<br />てか 、GUI いらないし<br />そんな貴兄に朗報!<br />
  15. 15. ADMXを使わずにグループポリシーに組み込み<br />Windows Server 2008 R2<br />Windows PowerShellを使用<br /> 設定値を作成/変更/無効 Set-GPRegistryValue<br /> 設定値を削除Remove-GPRegistryValue<br />2008R2<br />従来<br />PowerShell<br />ADMX<br />GPMC<br />Group Policy<br />GPO<br />GPO<br />・・・・・<br />Active Directory<br />OS<br />
  16. 16. PowerShell が使えるということは....<br />一括設定が可能<br />複数の設定を”PS1”ファイルとして保存しておき実行<br />環境の切り替えが容易に行える<br />タスクスケジューラーで自動化が可能<br />時間帯ごとに環境を変更<br />「夜間はメンテナンスのため特定の機能をオフにする」 とか<br />
  17. 17. PowerShell の 準備(Windows Server 2008 R2)<br />グループポリシー管理コンソールをインストール<br />[機能の追加] - [グループポリシーの管理]<br />PowerShellをインストール<br />[機能の追加] - [Windows PowerShell ISE]<br />PowerShellの起動<br />PowerShell.exe または powershell_ise.exe<br />グループポリシーモジュールの読み込み<br />読み込まれたコマンドレットの確認<br />PS&gt;Import-ModuleGroupPolicy<br />PS&gt;Get-Command *GP* |<br />Where-Object {$_.CommandType–eq &quot;Cmdlet&quot;}<br />Windows 7 や Vista の場合には RSAT をインストール<br />
  18. 18. powershell_ise(integrated Scripting Environment)<br /><ul><li>PowerShell2.0 からサポートされた グラフィカルホスト
  19. 19. エディタ付</li></ul>エディタ<br />実行結果<br />コンソール<br />
  20. 20. (参考)グループポリシー関連コマンドレット<br />
  21. 21. 環境をグループポリシーに組み込む<br />GPOを作成する<br />作成されたGPOを確認<br />GPOをリンクする<br />GPOにレジストリ設定を書き込む<br />PS&gt; New-GPO -Name “DemoPolicy”<br />PS&gt;get-gpo -all |Select-Object displayname<br />PS&gt;new-gplink -Name DemoPolicy -target &quot;dc=demodomain,dc=com&quot;<br />PS &gt; Set-GPRegistryValue-Name DemoPolicy<br /> -Key &quot;HKLMSoftwareMyApplication&quot;<br />-ValueName &quot;Installpath“<br /> -Value “C:Program FilesMyApplication” <br />-Type String<br />GPO<br />コンピュータポリシー<br />GPO Link<br />DomainROOT<br />ユーザーポリシー<br />OU<br />
  22. 22. 設定値が有効になるタイミング<br />PowerShellを実行した瞬間に変わるわけではない<br />適用のタイミング<br />HKLM 配下は 起動時(コンピュータポリシー)<br />HLCU 配下はログオン時(ユーザーポリシー)<br />バックグラウンド更新時(規定では90分に1回)<br />強制更新の実行後<br />ローカルコンピュータ :GPUpdate.exe /force<br />リモートコンピュータ<br />単一コンピュータとの対話モード:Enter-PSSessionコマンドレット<br />複数コンピュータ:Invoke-Commandコマンドレット<br />DCでは5分に1回<br />単体ではリモートで実行できない<br />これが噂の PowerShell リモーティング<br />
  23. 23. バックグラウンド更新間隔を変更するには<br />[コンピュータの構成]<br /> - [ポリシー]<br /> - [管理用テンプレート] <br /> - [システム]<br /> - [グループポリシー]<br /> - [コンピューターのグループポリシーの更新間隔]<br />更新間隔 0分 ~ 64800分<br />オフセット 0分 ~ 1440分<br />[ユーザーの構成]<br /> - [ポリシー]<br /> - [管理用テンプレート] <br /> - [システム]<br /> - [グループポリシー]<br /> - [ユーザーのグループポリシーの更新間隔]<br />更新間隔 0分 ~ 64800分<br />オフセット 0分 ~ 1440分<br />
  24. 24. PowerShell リモーティングとは<br />3種類のリモーティング<br />-ComputerNameパラメタ<br />30種類のコマンドレットが対応<br />複数のコンピュータを指定可能<br />対話モード(Enter-PSSession コマンドレット)<br />SSHのような使い方<br />Invokeモード(Invoke-Command コマンドレット)<br />-ComputerNameに対応していないコマンドで使用<br />複数のコンピュータに対して一括実行<br />コマンド単体(-scriptblock)、PS1スクリプト(-filepath)の指定が可能<br />送受信双方でリモーティングの準備が必要<br />
  25. 25. 30 ComputerNamecmdlets<br />TROUBLESHOOTING<br />Restart-Computer<br />Stop-Computer<br />Test-Connection<br />Get-Counter<br />EVENTLOG<br />Show-EventLog<br />Write-EventLog<br />Limit-EventLog<br />Get-EventLog<br />Remove-EventLog<br />New-EventLog<br />Clear-EventLog<br />Get-WinEvent<br />GENERAL<br />Get-HotFix<br />Receive-Job<br />Get-Process<br />Set-Service<br />Get-Service<br />WMI<br />Register-WmiEvent<br />Set-WmiInstnace<br />Invoke-WmiMethod<br />Get-WmiObject<br />Remove-WmiObject<br />WSMAN<br />Disconnect-WSMan<br />Test-WSMan<br />Connect-WSMan<br />Invoke-WSManAction<br />Get-WSManInstance<br />Remove-WSManInstance<br />Set-WSManInstance<br />New-WSManInstance<br />REMOTING<br />Remove-PSSession<br />Get-PSSession<br />New-PSSession<br />Enter-PSSession<br />Invoke-Command<br />
  26. 26. PowerShell リモーティングの準備<br />要件<br />Windows PowerShell 2.0 or later<br />The Microsoft .NET Framework 2.0 or later<br />Windows Remote Management 2.0<br />対応OS<br />Windows Vista/ 2008 以降<br />管理者権限でPowerShellを起動<br />リモーティングを有効にするには(送受信双方で実行)<br />enable-psremoting を実行<br />WinRMサービスを起動<br />WinRMサービスを「自動」に設定<br />WinRM リスナを作成<br />WS-Management(HTTP)のFirewall例外を有効にする<br />PowerShell セッション構成を有効にする(Microsoft.PowerShell/ Microsoft.PowerShell32)<br />有効化の確認方法<br />Get-PSSessionConfiguration | Format-Listでセッション構成を確認<br />new-pssession コマンドレットでセッションが作成できること<br />Set-WSManQuickConfig<br />
  27. 27. PowerShell セッション(PSSessions)<br />コマンドの実行空間<br />セッション内ではデータの共有が可能<br />通常はテンポラリセッションが作成され、コマンド終了後に削除される<br />PS C:&gt; $A = 1<br />PS C:&gt; $B = 2<br />PS C:&gt; $C = $A + $B<br />これをリモートコンピュータで実行する場合<br />Enter-PSSessionを使用<br />Invoke-Command を使用<br />PS&gt;Enter-PSSession........<br />[CL1]: PS &gt; $A = 1<br />[CL1]: PS &gt; $B = 2<br />[CL1]: PS &gt; $C = $A + $B<br />PS&gt;Exit-PSSession<br />PS&gt;Invoke-Command .......-ScriptBlock {$A=1}<br />PS&gt;Invoke-Command .......-ScriptBlock {$B=2}<br />PS&gt;Invoke-Command .......-ScriptBlock {$C=...}<br />1つのセッション<br />
  28. 28. PSSessionを維持するには<br />セッションの作成:New-PSSession<br />セッションの削除:Remove-PSSession<br />セッション一覧:Get-PSSession<br />PS C:&gt; $A = 1<br />PS C:&gt; $B = 2<br />PS C:&gt; $C = $A + $B<br />これをInvoke-Commandで実行する場合<br />CL01上にセッションを作成<br />PS &gt; $S = New-PSSession-ComputerName CL01<br />PS &gt;Invoke-Command -session $S -ScriptBlock {$A=1}<br />PS &gt; Invoke-Command-session $S -ScriptBlock{$B=2}<br />PS &gt; Invoke-Command-session $S -ScriptBlock{$C=$A+$B}<br />PS &gt; Remove-Session $S<br />
  29. 29. PowerShell リモーティングを有効にする<br />GPUpdate/force をリモーティングで実行<br />Enter-PSSessionの場合<br />Enter-PSSession–ComputerName&lt;ComputerName&gt;;<br />gpupdate /force;<br />Exit-PSSession;<br />Invoke-Command の場合<br />リモートからの強制更新を行うには<br />Hogehoge.ps1<br />PS&gt; .hogehoge.ps1<br />PS &gt; Invoke-Command -computername &lt;ComputerName&gt; -scriptblock {cmd /c gpupdate /force}<br />※今回はコマンドが1つなのでセッションは気にしなくてもよい<br />
  30. 30. 複数のコンピュータを強制更新<br />方法1:コンピュータ名を並べる<br />Invoke-Command -computernameCL01,CL02,CL03<br />-scriptblock {cmd /c gpupdate /force}<br />方法2:コンピュータ名一覧をテキストファイルで用意する<br />Invoke-Command -computername(Get-Contentc: mphosts.txt)<br /> -scriptblock {cmd /c gpupdate /force}<br />c: mphosts.txt<br />CL01<br />CL02<br />CL03<br />・<br />・<br />
  31. 31. 適用されたグループポリシーの確認<br />適用された結果が、「グループポリシー結果セット」に格納されている<br />GPO<br />RSOP<br />グループポリシー結果セット<br />複数のコンピュータを指定することはできない<br />コンピュータポリシーのみ<br />PS &gt;Get-GPResultantSettoPolicy -Computer CL01<br />-ReportType HTML-Path C: mpCL01.html<br />指定したユーザー+コンピュータポリシー<br />PS &gt;Get-GPResultantSettoPolicy -Computer CL01<br />-ReportType HTML-User user01 -Path C: mpCL01.html<br />XMLも可能<br />
  32. 32. グループポリシーの信頼性①<br />グループポリシーはドメインコントローラ間で複製される(マルチマスター)<br />ドメインコントローラ<br />クライアント(ドメインメンバー)<br />GPO<br />この中の<br />どれか から<br />適用<br />複製<br />GPO<br />GPO<br />
  33. 33. グループポリシーの信頼性②<br />起動時/ログオン時に必ず適用<br />バックグラウンド適用(規定で90分に1回)<br />時間軸<br />コンピュータポリシー適用<br />起動<br />GPO<br />ユーザーポリシー適用<br />ログオン<br />GPO<br />90分<br />適用<br />GPO<br />90分<br />適用<br />GPO<br />
  34. 34. グループポリシーによるロール管理<br />サイトやOU単位に異なる設定を適用<br />保存ボタン無効<br />DomainROOT<br />GPO<br />OU:業務部<br />OU:総務課<br />ボタンは無効になる<br />OU:経理課<br />保存ボタン有効<br />OU:システム部<br />GPO<br />
  35. 35. 環境設定レポート<br />GPO<br />RSOP<br /> グループポリシーのレポート機能を使用する<br /> HTML形式 かXML形式<br />PS &gt; Get-GPOReport-Name “DempPolicy”<br />-ReportType HTML -Path C: moDemoPolicy.html<br />
  36. 36. グループポリシーのバックアップと復元<br />作成したGPOはバックアップが可能<br />GPOは他のサーバーにリストアが可能<br />配布パッケージ<br />GPO<br />顧客A<br />GPO<br />顧客B<br />GPO<br />バックアップ<br />PS &gt;Backup-GPO -Name “DemoPolicy” -Path C: mp<br />フォルダのパス<br />リストア<br />PS &gt;Restore-GPO -Name “DemoPolicy” -Path C: mp<br />
  37. 37. まとめ<br />グループポリシーに任せることによって<br />環境設定の信頼性を高められます<br />環境設定の柔軟性を高められます<br />開発コストを確実に低減できます<br />Windows Server 20008 R2 によって<br />グループポリシーの敷居が下がります<br />グループポリシーがprogrammable になります<br />使わないと損です!<br />
  38. 38. http://www.microsoft.com/japan/powerpro/TF/<br />

×