トレンドマイクロのパスワードマネージャが EOL を迎えるので、パスワードとセキュアメモをどうしようかと検討していました
後継製品は ID プロテクションなのですが、イマイチ使い勝手が馴染めず、別ベンダへの製品も視野に入れようと ChatGPT さん僕の用途を聞くと、1Password をオススメされたので、1Password にパスワードマネージャに登録している内容を食わせて評価開始しようとしたら...
パスワードのセットは簡単にできたのですが、セキュアメモのセットが Web UI だとツライしんですよ
セキュアメモが600以上あるのですが、Web UI に CSV を食わせても、1レコードずつセキュアノートに設定する必要ある感じなんですね
600以上リスト選択するのは現実的ではないので、サポートに問い合わせしようとしたら、試用版はサポート対象外みたいで、問い合わせ窓口へのアクセスが開かない orz
自力でなんとかするしかないなと、API とかで一括登録できないかと調べていたら、1Password CLI なるものが存在するらしい
試してみると、試用期間でも使えそうなので、1Password CLI でセキュアメモ一括登録をする事にしました
1Password CLI の認証には、1Password アプリ(これを書いている段階で 1Password 8)をセットアップして、1Password CLI との連携設定をします
まず、各モジュールのダウンロードとインストールです
インストーラーは以下からダウンロード & インストールします
1Password 8
https://1password.com/jp/product/
1Password CLI は以下からダウンロードします
https://1password.com/jp/downloads/command-line
ダウンロードボタンを押すと、GitHub に飛ばされ、Windows 環境では winget でインストールしろ言われます
winget install 1password-cli |
1Password アプリと 1Password CLI をインストールしたら、1Password アプリにログインし、[自分の名前]-[設定」を開き、「開発者」で「1Passwprd CLI と連携」を ON にします
Windows Hello が使える環境であれば、Windows Hello で認証できるように設定できます
認証動作の確認は、以下コマンドで保管庫表示すると良いでしょう
op vault list |
1Password へアイテムを登録するには「op item create」コマンドを使用します
op item create コマンドは、1Password の様々なアイテムを登録できる汎用コマンドなので、「セキュアノート」を指定する必要があります
登録するアイテム種類を 1Password では「カテゴリ」と呼んでおり、その実態はテンプレートとして登録されています
セキュアノートのカテゴリは「Secure Note」です
どのようなカテゴリがあるのか確認する場合は「op item template list」コマンドで確認できます
カテゴリで定義されている属性に対して、セキュアメモの内容をセットします
対象となる属性は「notesPlain」になっています
カテゴリがどのようなテンプレートで作られているかも確認できるので、興味がある方は「op item template get 'Secure Note'」コマンドで確認して下さい
これでセキュアメモのセット先が判明しました
カテゴリ | Secure Note |
セット先の属性 | notesPlain |
セキュアノートを登録するには、セット先にセキュアメモのタイトルとメモの値を渡せば良い事になります
コマンドは以下のようになります
op item create --category [カテゴリ] --title [メモのタイトル] [セット先の属性]=[メモの値] |
複数の保管庫を作っている場合は、--vault オプションに保管庫名を渡します
保管庫名は「op vault list」で確認できます
登録コマンドがわかったので、あとは PowerShell でトレンドマイクロ パスワードマネージャから吐き出したセキュアメモの CSV データを順次渡せば良い事になります
コードとしてはこんな感じの実装になります
ImportSecMemo.ps1
|
Github に実装コードを置いていますので、必要であれば以下でダウンロードしてください
$ModuleName = "Import-SecMemo-for-1Password" $GitHubName = "MuraAtVwnet" $ScliptName = "ImportSecMemo.ps1" Invoke-WebRequest -Uri https://raw.githubusercontent.com/$GitHubName/$ModuleName/master/$ScliptName -OutFile ~/$ScliptName |
以下で CSV から一括登録できます
~/ImportSecMemo.ps1 CSVフルパス |
CSV の列名や、保管庫名は、以下オプションで指定できます
-MemoTitol | タイトル列の名前 |
-MemoValue | メモ内容列の名前 |
-Vault | 保存先の保管庫名 |
実測した感じでは、1件あたり3秒程度かかりました
スクリプト動作確認環境
PowerShell 7.5.2 (Windows)
Windows PowerShell 5.1
Github
https://github.com/MuraAtVwnet/Import-SecMemo-for-1Password
git@github.com:MuraAtVwnet/Import-SecMemo-for-1Password.git
Copyright © MURA All rights reserved.