• 検索結果がありません。

スクリプトを展開する

ドキュメント内 IT Pro のための PowerShell スクリプティング (ページ 56-68)

スクリプトの実行許可

• スクリプトの実行やコンフィグレーションのロード

• 実行ポリシー (Execution Policy) によって制御される

• 既定値では、スクリプトの実行が禁止されている

Windows Server 2012 R2 以外

• 実行ポリシーの確認と変更

• Get-ExecutionPolicy / Set-ExecutionPolicy

• グループポリシーによる設定

コンピューターポリシー / ユーザーポリシー

• PowerShell 起動時のオプションで指定

powershell.exe -ExecutionPolicy <Policy>

実行ポリシー

• 実行ポリシーは以下の 6 種類 (5 段階 + “未定義”)

• Restricted : スクリプトの実行を禁止する

• AllSigned : 有効な署名付きのスクリプトのみ実行可能

• RemoteSigned : ローカルのスクリプトは無条件に実行可能

リモートから取得したスクリプトには署名が必要

• Unrestricted : スクリプトは実行可能 (一部警告表示あり)

• Bypass : スクリプトは実行可能 (警告表示なし)

• Undefined : 未定義

• 規定値は Undefined

• Windows Server 2012 R2 のみ RemoteSigned (LocalMachine Scope)

• 全てのスコープで Undefined の場合、Restricted とみなされる

実行ポリシーのスコープ

• 実行ポリシーはスコープごとに設定可能

• MachinePolicy : グループポリシーによる設定 (Computer)

• UserPolicy : グループポリシーによる設定 (User)

• Process : 実行中の PowerShell セッション内のみ有効

• CurrentUser : ログインユーザーの設定 (レジストリに格納)

• LocalMachine : ローカルコンピューターの設定 (レジストリに格納)

• 上位スコープの設定が優先される

• 基本的には管理者権限で設定を行う

• Process / CurrentUser スコープは一般ユーザー権限で設定変更可能

• LocalMachine スコープでスクリプト実行を禁止していても、Process ス コープで実行を許可することで、一時的なスクリプトの実行が可能

リモート接続の構成

• リモート コンピューターへ接続して操作を行う

• WS-Management を使用してリモートコンピューターの WinRM (Windows Remote Management) サービスへ接続する

• 事前にリモート接続の構成が必要

Windows Server 2012 R2 では、同一セグメントからのリモート接続が デフォルトで許可されている

• とりあえず接続したい場合は以下を実行 (検証環境向け)

接続先 : Enable-PSRemoting -Force

接続元 : Set-Item WSMan:¥localhost¥Client¥TrustedHosts -Value * 本番環境へ適用する際は、設定の意味を理解してセキュリティを考慮する

• Get-Help about_Remote

http://technet.microsoft.com/en-us/library/hh847900.aspx

リモート接続の要件

• リモート接続の要件を満たすようコンピューターを構成する

• WinRM サービスが起動している

• WinRM のエンドポイントが適切に構成されている

• Windows Firewall やその他の Firewall 製品で通信が許可されている

ネットワークロケーションがパブリック ネットワークの場合、PowerShell の バージョン / OS によって Enable-PSRemoting の挙動が異なるので注意

• 接続先コンピューターの Administrators グループに所属しているか、

権限が適切に構成されている

• 接続先に対する資格情報の送信が許可されている

ドメインに参加しているか、TrustedHosts が適切に構成されている

• Get-Help about_Remote_Requirements

http://technet.microsoft.com/en-us/library/hh847859.aspx

リモート接続時の注意点

• PowerShell のバージョンによりセッションの扱いが異なる

• PowerShell 2.0 / WinRM 2.0 では接続元側でセッション情報を保持

• PowerShell 3.0 / WinRM 3.0 以降は接続先側でセッション情報を保持

セッションを切断し、別の接続元から同一のセッションへ再接続が可能

• トラブルが少ない構成

• ドメイン環境

• Domain Admins グループのユーザーを使用

• WMF (Windows Management Framework) 3.0 (PowerShell 3.0 / WinRM 3.0) 以降を使用

実行方法

• ユーザーが任意に実行

• スクリプトファイルを powershell.exe から実行

• 登録されたタスクを手動実行

• 決められた時刻に自動実行(スケジュールタスク)

• タスクスケジューラに登録

• 特定の状態に変化したら実行(イベント)

• イベントトリガーで実行

タスクスケジューラからスクリプトを実行

• タスクスケジューラにタスクを登録

• 実行するコマンド(実行ファイル)は powershell.exe

• -Command “<script path>” を指定

• 実行ユーザーに注意する

• スクリプト内の処理を実行する権限があるか

特権モード、所属グループ、NTFS ACL、委任、etc...

• 保存された Credential を使用する場合は、実行ユーザーで Credential が 保存されているか

• 実行環境(プロファイル)に問題はないか

プロファイル、UAC、etc...

Azure の操作を自動化

• Azure サービスのコントロール

• Azure PowerShell を使用

• 仮想マシン内の OS のコントロールは、通常の OS と同様

• サービスコントロール用の認証情報

• Add-AzureAccount ではなく、Get-AzurePublishSettingsFile を使う

Azure Active Directory 認証ではなく、証明書認証 Azure AD の認証は 12 時間で Expire するので注意

証明書であれば、証明書の有効期限(かつ、サブスクリプションの有効期限)

まで利用可能

Azure の操作を自動化

• Azure AD で認証されている状態

Azure の操作を自動化

• 証明書が登録されている状態

ドキュメント内 IT Pro のための PowerShell スクリプティング (ページ 56-68)

関連したドキュメント