Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows資格情報マネージャーで保存されたパスワードを管理する方法

Windows資格情報マネージャー(Windows Credential Manager)は、ネットワークリソース、Webサイト、アプリケーションにアクセスするための資格情報(ユーザー名とパスワード)を保存できる機能です。この機能を利用すれば、リモートリソースへの接続時に毎回パスワードを入力することなく、自動的に認証を行えます。また、アプリケーション自身が資格情報マネージャーにアクセスし、保存されたパスワードを利用することも可能です。

目次

  • Windowsで資格情報マネージャーを使ってパスワードを保存する
  • PowerShellからWindows資格情報マネージャーにアクセスする

Windowsで資格情報マネージャーを使ってパスワードを保存する

資格情報マネージャーはWindows 7から搭載された機能で、パスワードを保管しておく場所として比較的安全性の高い環境とされています。

Windows 10の資格情報マネージャーでは、以下の種類のアカウント情報を保存できます。

  • Windows資格情報 – Windowsへのログオンやリモートコンピューターへのアクセスに使用する資格情報、RDP接続用の保存済みパスワード、統合Windows認証に対応したWebサイトのパスワードなど。なお、Windowsへの自動ログオン用の資格情報やドメインのキャッシュされた資格情報は保存されません。
  • 証明書ベースの資格情報 – スマートカードを使用した認証用の資格情報。
  • 汎用の資格情報 – 資格情報マネージャーに対応したサードパーティ製アプリケーションが使用する資格情報。
  • Web資格情報 – EdgeやInternet Explorer、Microsoft製アプリ(MS Office、Teams、Outlook、Skypeなど)で保存されたパスワード。

例えば、共有ネットワークフォルダーへアクセスする際に「パスワードを記憶する」オプションを有効にすると、入力したパスワードが資格情報マネージャーに保存されます。

同様に、リモートデスクトップ接続(mstsc.exe)クライアントでRDP/RDSホストに接続する際のパスワードも保存されます。

また、runas /savecredコマンドで保存されたユーザーパスワードも、資格情報マネージャーに保持されます。

Windows 10で資格情報マネージャーにアクセスするには、従来のコントロールパネルから「コントロールパネル\ユーザーアカウント\資格情報マネージャー」を開きます。

ここには、先ほど保存した資格情報が一覧表示されます。RDP接続用に保存されたパスワードは、TERMSRV\ホスト名という形式で表示されます。

この画面では、新しい資格情報の追加、既存エントリの編集・削除が行えます。なお、GUI上で保存済みのパスワードそのものを表示することはできません。

また、従来型の「保存されているユーザー名とパスワード」画面を使ってパスワードを管理することもできます。呼び出すには、以下のコマンドを実行します。

rundll32.exe keymgr.dll,KRShowKeyMgr

この画面でも保存済み資格情報の管理が可能で、さらに資格情報マネージャーのバックアップと復元機能も備えています(これらの機能を使えば、資格情報マネージャーのデータベースを別のコンピューターへ移行できます)。

vaultcmdコマンドで管理する

コマンドプロンプトから資格情報マネージャーを操作するには、vaultcmdツールを使用します。例えば、保存されているWindows資格情報の一覧を表示するには、次のコマンドを実行します。

vaultcmd /listcreds:"Windows Credentials"

Credential schema: Windows Domain Password Credential
Resource: Domain:target=mun-dc01
Identity: RESDOM\j.brion
Hidden: No
Roaming: No
Property (schema element id,value): (100,3)
Property (schema element id,value): (101,SspiPfAc)

次のコマンドを実行すると、資格情報マネージャーから保存済みのRDPパスワードをすべて削除できます。

For /F "tokens=1,2 delims= " %G in ('cmdkey /list ^| findstr "target=TERMSRV"') do cmdkey /delete %H

Windows Vaultとパスワードの保存場所

保存されたすべてのパスワードはWindows Vaultに格納されます。Windows Vaultは、シークレット、パスワード、その他の機密性の高いユーザー情報を保護して保管するためのセキュリティで保護されたストアです。Vault内のデータは構造化されており、Vaultスキーマに属するエントリの集合として管理されています。Windows Vaultエントリの暗号化キーのセットは、Policy.vpolファイルに保存されています。

ドメインユーザーの場合、保存場所は以下の通りです。

%userprofile%\AppData\Roaming\Microsoft\Vault

ローカルユーザーの場合は、こちらにあります。

%userprofile%\AppData\Local\Microsoft\Vault

資格情報マネージャーを使用する際には、VaultSvcサービスが実行されている必要があります。

Get-Service VaultSvc

このサービスが無効になっている場合、資格情報マネージャーにアクセスしようとすると次のようなエラーが表示されます。

Credential Manager Error
The Credential Manager Service is not running. You can start the service manually using the Services snap-in or restart your computer to start the service.
Error code: 0x800706B5
Error Message: The interface is unknown.

GPOでパスワードの保存を禁止する方法

ユーザーがネットワークパスワードを資格情報マネージャーに保存できないようにしたい場合は、グループポリシーで「ネットワークアクセス: ネットワーク認証のためのパスワードと資格情報の保存を許可しない」オプションを有効にします。設定場所は「コンピューターの構成 → Windowsの設定 → セキュリティの設定 → ローカルポリシー → セキュリティオプション」です。

このポリシー適用後、ユーザーがWindows Vaultにパスワードを保存しようとすると、次のようなエラーが表示されます。

Credential Manager Error
Unable to save credentials. To save credentials in this vault, check your computer configuration.
Error code: 0x80070520
Error Message: A specified logon session does not exist. It may already have been terminated.

PowerShellからWindows資格情報マネージャーにアクセスする

Windowsには、PowerShellからPasswordVaultストアにアクセスするための組み込みコマンドレットは用意されていません。しかし、PowerShellギャラリーで公開されているCredentialManagerモジュールを利用すれば、これを実現できます。

まず、モジュールをインストールします。

Install-Module CredentialManager

CredentialManagerモジュールに含まれるコマンドレットの一覧は、次のコマンドで確認できます。

Get-Command -module CredentialManager

このモジュールには、わずか4つのコマンドレットが含まれています。

  • Get-StoredCredential – Windows Vaultから資格情報を取得する
  • Get-StrongPassword – ランダムなパスワードを生成する
  • New-StoredCredential – 資格情報を追加する
  • Remove-StoredCredential – 資格情報を削除する

Windows資格情報マネージャーに新しい資格情報を追加するには、次のコマンドを実行します。

New-StoredCredential -Target 'woshub' -Type Generic -UserName 'maxbak@woshub.com' -Password 'Pass321-b' -Persist 'LocalMachine'

資格情報マネージャーに特定の資格情報が保存されているかどうかを確認するには、次のようにします。

Get-StoredCredential -Target woshub

保存されたパスワードは、PowerShellスクリプト内で活用できます。例えば、Windows Vaultから保存済みのユーザー名とパスワードをPSCredentialオブジェクトとして取得し、PowerShellからExchange Onlineに接続することができます。

$psCred = Get-StoredCredential -Target "woshub"
Connect-MSolService -Credential $psCred

なお、Windowsでパスワードを安全に保管するために使用できる、新しいPowerShell Secret Managementモジュールにも注目してください。KeePass、LastPass、HashiCorp Vault、Azure Key Vault、Bitwardenなど、複数のパスワードボールトに対応しています。

Windows Vaultから資格情報を削除するには、次のコマンドを実行します。

Remove-StoredCredential -Target woshub

組み込みのCLIツールでは、パスワードを平文で表示することはできません。ただし、Mimikatzのようなユーティリティを使用すれば、credmanから保存されたパスワードを平文として取得できる場合があります(セキュリティリスクに注意してください)。

  1. Windowsの資格情報マネージャー(Credential Manager)の使い方を徹底解説

    資格情報マネージャー(Credential Manager)は、Windowsアプリに関連するユーザー名やパスワードを保存しておける、Windows標準の便利なツールです。保存できる情報には、Webサイトやアプリに関するログイン情報も含まれます。 Windows 7で初めて搭載されて以来、資格情報マネージャーはWindowsオペレーティングシステムの体験に欠かせない機能となっています。長年Windowsを使っているのに、まだ資格情報マネージャーを活用していないのであれば、この記事はまさにうってつけです。 以下では、Windows PCで資格情報マネージャーを設定し、最大限に活用するために知って

  2. Windows 10/8/7対応!2022年版おすすめパスワード管理ソフト10選

    大切なものを安全に保管したいとき、私たちは金庫にしまいます。重要なファイルやフォルダをパスワードで保護するのも有効な手段ですが、万が一パスワードを忘れてアクセスできなくなったらどうでしょう。銀行口座やメールアカウントのパスワードを、いちばん必要な瞬間に思い出せなかったら?イライラしてしまいますよね。 しかし、「パスワードを失うこともなく、覚える必要すらない」方法があるとしたら?この提案に魅力を感じたなら、まさにうってつけの記事です。本記事では、Windows 10・8・7で使えるおすすめのパスワード管理ソフト(パスワードマネージャー)を厳選してご紹介します。 まずは、トップ3の注目ポイントから