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

7,653 views

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,653
On SlideShare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
43
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • 開発者のための最新グループポリシー活用講座

    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 />

    ×