• Like
開発者のための最新グループポリシー活用講座
Upcoming SlideShare
Loading in...5
×

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

  • 6,624 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,624
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
32
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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


  • 31. 適用されたグループポリシーの確認
    適用された結果が、「グループポリシー結果セット」に格納されている
    GPO
    RSOP
    グループポリシー結果セット
    複数のコンピュータを指定することはできない
    コンピュータポリシーのみ
    PS >Get-GPResultantSettoPolicy -Computer CL01
    -ReportType HTML-Path C: mpCL01.html
    指定したユーザー+コンピュータポリシー
    PS >Get-GPResultantSettoPolicy -Computer CL01
    -ReportType HTML-User user01 -Path C: mpCL01.html
    XMLも可能
  • 32. グループポリシーの信頼性①
    グループポリシーはドメインコントローラ間で複製される(マルチマスター)
    ドメインコントローラ
    クライアント(ドメインメンバー)
    GPO
    この中の
    どれか から
    適用
    複製
    GPO
    GPO
  • 33. グループポリシーの信頼性②
    起動時/ログオン時に必ず適用
    バックグラウンド適用(規定で90分に1回)
    時間軸
    コンピュータポリシー適用
    起動
    GPO
    ユーザーポリシー適用
    ログオン
    GPO
    90分
    適用
    GPO
    90分
    適用
    GPO
  • 34. グループポリシーによるロール管理
    サイトやOU単位に異なる設定を適用
    保存ボタン無効
    DomainROOT
    GPO
    OU:業務部
    OU:総務課
    ボタンは無効になる
    OU:経理課
    保存ボタン有効
    OU:システム部
    GPO
  • 35. 環境設定レポート
    GPO
    RSOP
    グループポリシーのレポート機能を使用する
    HTML形式 かXML形式
    PS > Get-GPOReport-Name “DempPolicy”
    -ReportType HTML -Path C: moDemoPolicy.html
  • 36. グループポリシーのバックアップと復元
    作成したGPOはバックアップが可能
    GPOは他のサーバーにリストアが可能
    配布パッケージ
    GPO
    顧客A
    GPO
    顧客B
    GPO
    バックアップ
    PS >Backup-GPO -Name “DemoPolicy” -Path C: mp
    フォルダのパス
    リストア
    PS >Restore-GPO -Name “DemoPolicy” -Path C: mp
  • 37. まとめ
    グループポリシーに任せることによって
    環境設定の信頼性を高められます
    環境設定の柔軟性を高められます
    開発コストを確実に低減できます
    Windows Server 20008 R2 によって
    グループポリシーの敷居が下がります
    グループポリシーがprogrammable になります
    使わないと損です!
  • 38. http://www.microsoft.com/japan/powerpro/TF/