前回の記事では、safeguard-ps モジュールのコマンドレットを使用して、SPP に管理対象システム(=資産) とそのアカウントを登録する方法を紹介しました。
今回は、SPP に複数の管理対象システム(=資産) とそのアカウントを CSV ファイルから一括インポートする方法を紹介します。CSV ファイルからの一括インポートは safeguard-ps モジュールのコマンドレットを介して行います。
safeguard-ps モジュールは、One Identity のオープンソースプロジェクトでサポートされます。
※参照:OneIdentity/safeguard-ps(https://github.com/OneIdentity/safeguard-ps)
はじめに(事前作業)
CSV ファイルからの一括インポートを行う前に、次を行います。
safeguard-ps 最新モジュールのインストール
はじめに、次のいずれかの手順で、お使いのコンピューターに safeguard-ps 7.1 以降をインストールしてください。
CSV ファイルからの一括インポート機能は safeguard-ps release-7.1 で追加されました。
この記事で紹介する CSV インポート機能をご使用いただくためには、release-7.1 以降が必要です。
PowerShell Gallery からインストールする
ここでは、Windows マシンに PowerShell Gallery から safeguard-ps モジュールをインストールする手順を紹介します。
Windows PowerShell を 管理者として実行 します。
次のコマンドを実行します。
Install-Module safeguard-ps -Force
今回は、安定版の最新バージョンを(上書き)インストールするため、-Force パラメーターを使用します。
管理者として PowerShell を実行することができない場合は、通常の PowerShell プロンプトを開き、次のように入力してください。現在のユーザーに対してのみ safeguard-ps モジュールをインストールすることができます。
Install-Module safeguard-ps -Force -Scope CurrentUser
次のコマンドを実行し、safeguard-ps モジュールがインストールされたことを確認します。
Get-Module safeguard-ps -ListAvailable
この例の場合は、version 7.4 のモジュールがインストールされました。
実際のバージョンは、インストールした時期により異なります。ここでは、7.1 以降のバージョンがインストールされていることを確認してください。
GitHub から zip ファイルをダウンロードしてインストールする
Install-Module を使用して safeguard-ps モジュールをインストールできない場合は、GitHub から zip ファイルをダウンロードして手動でインストールしてください。
Web ブラウザーを開き、github.com/oneidentity/safeguard-ps にアクセスします。master ボタンをクリックし、Branches から release-7.1 以降を選択します。ここでは、release-7.4 を選択しています。
Code ボタンをクリックし、Download ZIP をクリックします。
zip ファイルを保存し、任意の場所に展開します。
Windows PowerShell を 管理者として実行 します。
cd コマンドで展開したフォルダの場所(この例の場合は、safeguard-ps-release-7.4 フォルダ)に移動し、次のコマンドを実行します。
.\install-local.ps1
「このシステムではスクリプトの実行が無効になっているため、ファイル xxxxxxx\safeguard-ps-release-7.4\install-local.ps1 を読み込むことができません。」というメッセージが表示された場合は、次のコマンドを実行して実行ポリシー(ExecutionPolicy)を変更したあとで、上記のコマンドを再度実行してください。
Set-ExecutionPolicy Bypass -Scope Process
この例の場合は以下の場所にインストールされました:
C:\Users\<現在のログインユーザー>\Documents\WindowsPowerShell\Modules\safeguard-ps
(任意) safeguard-ps ソースコードの編集
safeguard-ps モジュールをインポートする前に、assets.psm1 ファイルを編集します。
ここではエラーメッセージの文字化けを回避するために UTF-8 エンコードを追加します。この作業は任意です。
インストールした safeguard-ps モジュールの保存ディレクトリ下から assets.psm1 ファイルを見つけます。
assets.psm1 ファイルを任意のエディタで開き、Export-Csv を検索して見つけます。
Export-Csv が含まれる行の末尾に -Encoding UTF8 を追加します(4か所あります)。
Export-Csv が含まれる行は 4か所あります。すべて同様に変更してください。
ファイルを保存して閉じます。
safeguard-ps モジュールのインポート
次のコマンドを実行し safeguard-ps モジュールをインポートします。
Import-Module safeguard-ps
「このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\WindowsPowerShell\Modules\safeguard-ps\xxxxxx\xxxxx.psm1 を読み込むことができません。」というメッセージが表示された場合は、次のコマンドを実行して実行ポリシー(ExecutionPolicy)を変更したあとで、上記のコマンドを再度実行してください。
Set-ExecutionPolicy Bypass -Scope Process
次のコマンドを実行し、safeguard-ps モジュールがインポートされたことを確認します。
Get-Module safeguard-ps
下のような応答があれば、safeguard-ps モジュールがインポートされています。次に進んでください。
Version が 7.1 以降であることを確認してください。
SPP API への接続
safeguard-ps モジュールのインポートが完了したら、Connect-Safeguard コマンドを実行して、SPP API へ接続します。
ここでは、アクセストークンをセッションに保持する方法で SPP API を使用していきます。
次のコマンドを実行します。
Connect-Safeguard -Insecure
アクセストークンをセッションに保持したくない場合は、-NoSessionVariable パラメータを使用してください。詳しくは こちらの記事 を参照してください。
ご利用の環境に合わせて、プロンプトに応答してください。
Username プロンプトで、(少なくとも)資産アクセス許可権限を持つユーザー名を入力してください。以降の作業で、資産を追加します。
この例では、 local プロバイダー(= SPP内蔵データベース) に存在する Admin01 という名前の SPP 管理ユーザーで SPPDEMO という名前の SPP アプライアンスに接続しています。実際のご利用環境に合わせて読み替えてください。
これで SPP API を PowerShell から利用する準備ができました。
テンプレートファイルの作成
管理対象システム(=資産) とそのアカウントを SPP に一括インポートするために、次の 3つのテンプレートファイルを作成します。
資産インポート用テンプレートの作成
資産をインポートするためのテンプレートファイルを作成します。
次のコマンドを実行します(1行で入力してください)。
New-SafeguardAssetImportTemplate 'C:\tmp\asset_template.csv' -All
上の例の場合は、C:\tmp フォルダに asset_template.csv という名前のファイルが作成されます。任意の場所およびファイル名を指定してください。
-All パラメータを使用すると、すべてのオプションがテンプレートファイルに出力されます。テンプレートファイルに出力するオプションを指定することもできます。
アカウントインポート用テンプレートの作成
次に、アカウントをインポートするためのテンプレートファイルを作成します。
次のコマンドを実行します(1行で入力してください)。
New-SafeguardAssetAccountImportTemplate 'C:\tmp\asset_account_template.csv' -All
上の例の場合は、C:\tmp フォルダに asset_account_template.csv という名前のファイルが作成されます。任意の場所およびファイル名を指定してください。
-All パラメータを使用すると、すべてのオプションがテンプレートファイルに出力されます。テンプレートファイルに出力するオプションを指定することもできます。
アカウントパスワードインポート用テンプレートの作成
さいごに、アカウントパスワードをインポートするためのテンプレートファイルを作成します。
次のコマンドを実行します(1行で入力してください)。
New-SafeguardAssetAccountPasswordImportTemplate 'C:\tmp\asset_account_password_template.csv'
上の例の場合は、C:\tmp フォルダに asset_account_password_template.csv という名前のファイルが作成されます。任意の場所およびファイル名を指定してください。
ここまでの作業で、インポートに使用するテンプレートファイルの作成が完了しました。
CSV ファイルの編集と保存
前の作業で作成したテンプレートファイルをもとに、SPP にインポートする管理対象システム、アカウント、パスワードの情報を CSV ファイルに記入します。
資産インポート用 CSV ファイルの編集と保存
資産インポート用 テンプレートファイルを開き、SPP にインポートしたい管理対象システムの情報を記入します。
プラットフォーム ID の調査
このテンプレートファイルには Platform 列があります。Platform 列には、SPP にインポートする管理対象システムのプラットフォーム ID(または プラットフォーム名)を入力する必要があります。
ここでは、プラットフォーム ID を調査する方法を説明します。
次のコマンドを実行します。
Get-SafeguardPlatform -Fields ID, PlatformType, DisplayName
PlatformType 列と DisplayName 列 を確認し、インポートしたいシステムのプラットフォーム ID を特定します。
特定のプラットフォーム名で結果をフィルタしたい場合は、-Platform パラメータのあとにプラットフォーム名を入力します。例:Get-SafeguardPlatform -Fields ID, PlatformType, DisplayName -Platform "CentOS"
テンプレートファイルに SPP にインポートしたいシステムの情報を1行ずつ記入します。
Platform ごとにサポートされるパラメータ(列)が異なります。Platform でサポートされるパラメータ(列)のみに値を入力してください。サポートされていないパラメータ(列)に値を入力すると、インポートに失敗します。
記入が完了したら、ファイルを CSV 形式で名前を変えて保存します。
日本語などのマルチバイト文字を含む場合は、文字コードを UTF8 として保存してください。
文字コードを指定できない場合は、一度メモ帳などの文字コードを変換できるテキストエディタで CSV ファイルを開き、UTF8で名前を変えて保存してください。
アカウントインポート用 CSV ファイルの編集と保存
次に、アカウントインポート用テンプレートファイルを開き、管理対象システムのアカウント情報を記入します。
記入が完了したら、ファイルを CSV 形式で名前を変えて保存します。
日本語などのマルチバイト文字を含む場合は、文字コードを UTF8 として保存してください。
アカウントパスワードインポート用 CSV ファイルの編集と保存
最後に、アカウントパスワードインポート用テンプレートファイルを開き、管理対象システムのアカウントのパスワード情報を記入します。
記入が完了したら、ファイルを CSV 形式で名前を変えて保存します。
日本語などのマルチバイト文字を含む場合は、文字コードを UTF8 として保存してください。
ここまでで、インポートするファイルの準備が整いました。
CSV ファイルのインポート
管理対象システム(=資産)、アカウント、パスワードを CSV ファイルから SPP にインポートします。
資産のインポート
次のコマンドを実行し、管理対象システムを SPP にインポートします。
Import-SafeguardAsset -Path '<CSVファイルへのパス>'
処理が完了するまでしばらく待ちます。
インポートに成功したことを確認します。
アカウントのインポート
次のコマンドを実行し、管理対象システムのアカウントを SPP に追加します。
Import-SafeguardAssetAccount -Path '<CSVファイルへのパス>'
処理が完了するまでしばらく待ちます。
インポートが成功したことを確認します。
アカウントパスワードのインポート
最後に、次のコマンドを実行し、管理対象システムのアカウントのパスワードを SPP に追加します。
Import-SafeguardAssetAccountPassword -Path '<CSVファイルへのパス>'
処理が完了するまでしばらく待ちます。
インポートが成功したことを確認します。
ここまでの作業で、インポート作業が完了しました。
確認
インポートしたシステム(=資産)、アカウント、パスワードが SPP に存在することを確認します。
safeguard-ps コマンドレットを使用して確認する場合
次のようなコマンドを実行して、資産およびアカウントを検索してください。
資産の検索例:Name に 「テスト」 を含む資産を検索
Invoke-SafeguardMethod core GET Assets -Parameters @{ filter = "Name contains 'テスト'"; fields = "Name,NetworkAddress,AssetPartitionName,Platform.DisplayName"}
アカウントの検索例:Description に「テスト」を含むアカウントを検索
Invoke-SafeguardMethod core GET AssetAccounts -Parameters @{ filter = "Description contains 'テスト'"; fields = "Name,Description, Asset.Name,HasPassword"}
SPP Web GUI から確認する場合
「資産」アクセス許可権限を持つユーザーで SPP Web GUI にログインします。
[資産管理] > [資産] を選択します。
資産画面に、インポートしたシステム(=資産)が表示されていることを確認します。
[資産管理] > [アカウント] を選択します。
アカウント画面に、インポートしたアカウントが表示されていることを確認します。

パスワード列に ✔ マークが表示されていることを確認します。パスワード列の ✔ マークは、パスワードが設定されていることを意味します。なお、パスワードの値は、申請/承認ワークフローを介してのみ取得することができます(※ワークフローポリシーの定義に依存します)。
CSV ファイルからインポートしたシステム(=資産)とそのアカウントが SPP に追加されていることを確認できました。
さいごに
今回は、safeguard-ps モジュールを使用して、SPP に複数の管理対象システム(=資産)とそのアカウントを CSV ファイルから一括インポートする方法を紹介しました。
ご利用環境に合わせてお試しください。
SPP 製品紹介ページ
SPP には、この記事で紹介した以外にも機能があります。
その他の特長や機能については、それぞれの製品紹介ページをご参照ください。
SPP 評価版
SPP の評価版は、仮想アプライアンス(OVAまたはVHDXファイル)で提供いたします。
SPP の評価版では、すべての機能を 90日間無料でご利用いただけます。
評価版の利用をご希望いただく場合は、下記お問い合わせフォームから評価ライセンスをお申し込みください。
お問い合わせ
購入前の SPP に関するお問い合わせは、下記お問い合わせフォームからお問い合わせください。






















