WinRMを使用したPowerShellの例

Windowsスケジュールタスクの「Log on as」認証情報を更新するためのPAMスクリプト

概要

以降のページに掲載のPowerShellコード例では、Keeperローテーションでパスワードをローテーションした後、Windowsスケジュールタスクの「Log on as」認証情報を更新します。これらのスクリプトは、ローカルのKeeperゲートウェイホストまたはターゲットのWindowsベースシステムで「Log on as」認証情報の更新を行う際に推奨される方法となります。

この例では、確立された「PSSession」を介してWindowsベースのターゲットシステムに「Invoke-Method」を使用し、Windowsスケジュールタスク管理にネイティブPowerShellコマンドレットを利用します。この場合、ターゲットのWindowsスケジュールタスクの「Log on as」認証情報を管理するために、「Microsoft.PowerShell.Management」およびそのサブコマンド (「Get-Service」や「Set-Service」など) を使用しています。

手順 1

以下のPowerShellスクリプトを開いてコピーし、任意のファイル名で「.ps1」として保存します。この例では、スクリプトのファイル名を「rotate_service_cred.ps1」としました。このスクリプトをPAMユーザーレコードの「PAMスクリプト」セクションに添付します。

さらに、「ローテーションクレデンシャル」レコードを2つ追加します。現在のPAMユーザーレコードと、このスクリプトを実行する管理者認証情報レコードを選択します。管理者認証情報は「パスワードローテーション設定」に使用されるものと同じものでも、スクリプトおよびそのアクションを実行するための正しい管理権限を持つ別のレコードでも構いません。

Invoke-Commandを使用したPowerShellスクリプト (PSSessionとMicrosoft.PowerShell.Managementを利用)

以下は結果として得られるPAMスクリプト設定画面です。

PAMスクリプト設定

手順 2

PAMユーザーレコードに「remotecomp」と「taskname」という2つのカスタムテキストフィールドを追加します。「remotecomp」フィールドには、Windowsスケジュールタスクを実行しているターゲットシステムのDNS名を入力します。この例では、「dc1」がターゲットシステムの名前となります。管理しているWindowsスケジュールタスクがKeeperゲートウェイホストに対してローカルである場合は、「remotecomp」フィールドに「localhost」を使用します。「taskname」フィールドには、タスクの「Windows Scheduled Task」の名前を入力します (「Display Name」ではありません)。この例では、「Task Name」は「AutoSSH」となります。

以下は、結果として得られるボルト内のレコード設定となります。

スクリプトを実行

手順に従うと、Keeperのパスワードローテーションと同様に、[ローテーションする]ボタンを使用して、スクリプトを「オンデマンド」で実行してテストできます。また、「パスワードローテーション設定」でスクリプトのスケジュールを設定することもできます。

最終更新