SSHを使用したPowerShellの例
Windowsスケジュールタスクの「Log on as」認証情報を更新するためのPAMスクリプト
最終更新
Windowsスケジュールタスクの「Log on as」認証情報を更新するためのPAMスクリプト
最終更新
以下のPowerShellコード例では、PowerShell 7を使用して確立したSSHセッションにおいてKeeper ローテーションでパスワードをローテーションした後、Windowsスケジュールタスクの「Log on as」認証情報を更新します。
この例では、確立された「SSH」セッションを介してWindowsベースのターゲットシステムに接続し、PowerShell 7のネイティブコマンドレットを使用してスケジュールタスクを管理します。この場合、「Microsoft.PowerShell.Management」とそのサブコマンド (「Get-Service」や「Set-Service」など) を使用して、ターゲット「Windowsスケジュールタスク」の「Log on as」認証情報を管理します。
以下は結果として得られるPAMスクリプト設定画面です。
以下のPowerShellスクリプトを開いてコピーし、任意のファイル名で「.ps1」として保存します。この例では、スクリプトのファイル名を「rotate_service_cred.ps1
」としました。このスクリプトをPAMユーザーレコードの「PAMスクリプト」セクションに添付します。
さらに、現在のPAMユーザーレコードを選択して、「ローテーションクレデンシャル」レコードを1つ含めます。「コマンドプレフィックスで実行」のチェックボックスをオンにし、PowerShell 7の実行ファイルのパスを指定してください (必須)。
このセットアップには、PowerShell 7とOpenSSHが必要です。Keeperゲートウェイホストシステムおよび対象のWindowsベースシステムにPowerShell 7をインストールしていない場合は、「Windows上のPowerShell 7」と「Windows上のOpenSSH」の手順をご確認ください。
このスクリプトを実行するには、Keeperゲートウェイホストシステムと対象システム間でSSH鍵ベースの認証を設定し、有効化する必要があります。鍵ペア認証をまだ設定していない場合は、以下のURLをご確認ください。
PAMユーザーレコードに「remotecomp
」と「taskname
」という2つのカスタムテキストフィールドを追加します。「remotecomp
」フィールドには、Windowsスケジュールタスクを実行しているターゲットシステムのDNS名を入力します。この例では、「dc1」がターゲットシステムの名前となります。管理しているWindowsスケジュールタスクがKeeperゲートウェイホストに対してローカルである場合は、「remotecomp
」フィールドに「localhost」を使用します。「taskname
」フィールドには、タスクの「Windows Scheduled Task」の名前を入力します (「Display Name」ではありません)。この例では、「Task Name」は「AutoSSH」となります。
以下は、結果として得られるボルト内のレコード設定となります。
手順に従うと、Keeperのパスワードローテーションと同様に、[ローテーションする]ボタンを使用して、スクリプトを「オンデマンド」で実行してテストできます。また、「パスワードローテーション設定」でスクリプトのスケジュールを設定することもできます。