Windows資格情報の仕様について
質問
2019年10月15日火曜日 2:25
非ドメイン環境のWindows10 PCにおいて、バッチで
①管理者IDのWindows資;情報を保存(runas /savecred /user:別のユーザID)
②保存した資;情報を使用し、別ユーザで処理を実行
③保存した資;情報を削除する
という処理を行っています。
社内ルール(システム的な制限ではなく、あくまでルール)で資;情報の保存は認められていないため、
③の資;情報削除時、①で指定したユーザ以外のWindows資;情報があれば合わせて削除しているのですが、
この処理の影響について知りたく、下記内容についてご教示いただけますでしょうか。
(1) Windows資;情報で自分自身の資;情報が保存されるケースについて
自分自身のWindows資;情報が以下のように保存されるケースはあるのでしょうか?
(以下はcmdkey /listの結果です)
ターゲット: Domain:interactive=自分のPC名\自分のID
種類: ドメイン パスワード
ユーザー: 自分のPC名\自分のID
思いつくのは
・明示的に資;情報マネージャで登録した
・明示的にcmdkey /addコマンドで登録した
・runas /savecred /user:自分のID を実行した
くらいなのですが、それ以外に自分自身の資;情報が保存されるケースがあれば教えてください。
なお、ネットワーク接続時に「資;情報を記憶する」のチェックをONにした場合は、ターゲットが接続先IP等で表示されるため、該当しないと考えています。
(2) Windows資;情報によってできること
上記(1)の内容と重複しますが、下記内容のWindows資;情報で具体的に何ができるのでしょうか?
既存の資;情報を削除したときの影響(今まで出来ていたことで何が出来なくなるか)と、
余計な資;情報が残ったままになった場合の影響(何が出来てしまうか)を知りたいです。
ターゲット: Domain:interactive=自分のPC名\ユーザID
種類: ドメイン パスワード
ユーザー: 自分のPC名\ユーザID
(3) Windows資;情報の有効期限について
資;情報マネージャに登録された資;情報の有効期限について教えてください。
有効期限はあるのでしょうか?
(有効期限があると仮定して)有効期限が切れた場合、保存された資;情報は自動的に削除されるのか、期限切れの資;情報として残るのか、どちらでしょうか?
どうぞよろしくお願いいたします。
すべての返信 (9)
2019年10月15日火曜日 2:44 ✅回答済み
(1) についてですが、以下の資料によれば「記憶する対象のユーザー名が、現在デスクトップにログオンしているユーザーと同一であり、ターミナル サーバーへの接続ではない場合」は資;情報マネージャーでの「常設」の種類が「ログオン セッション」となり、そのユーザーがサインアウトするまでの間しか記憶されない動作になります。そのためこの条件の資;情報が永続的に保持されることはないはずです。
(2) について、リモートの Windows リソース(共有リソースやリモート サービス - リモートデスクトップのような -、RPC など)に接続する際、接続先から資;情報の提示を求められた際に自動的に提示されます。ユーザーが保存した(手動であれ、資;情報のダイアログで「保存する」を選択した場合であれ)資;情報はそのユーザーだけが復号できる形で暗号化されますので、他のユーザーからは利用できません。意図しない資;情報が登録されていた場合は、リモートのリソースに意図しないユーザーで自動的に接続してしまう(接続先によっては何らかの自動的な処理が行われてしまう)ことでしょう。
(3) については、「ログオン セッション」以外の常設の資;情報は永続的で、上書きされるか手動で削除されるまでそのまま残るようです。
参考:https://support.microsoft.com/ja-jp/help/2557023
Hebikuzure aka Murachi Akira
2019年10月16日水曜日 13:59 ✅回答済み
チャブーンです。
この件ですが、率直に申し上げて「事実上の質問内容=心配事」は何になりますか?もし「Windows資;情報」UIの全仕様を文章にせよ、というなら、おそらく書籍の1章分(関連技術の解説も必要なので)、このようなコミュニティで求めることは要求過多かと思います。
当初の質問である、設定内容からどんな操作を行ったのか、完全な○×表を作れ、というのはマイクロソフトにもムリかと思います。ユースケースを完全掌握して、操作と設定を1対1対応させてつくっているはずはないので、そういう想定自体がないからです。どうしても必要な場合、MS有償サポートに「事例を尋ねる」ような問い合わせをするしかないと思います。
cmdkey /addで資;情報を保存しても、以降のrunas /savecredではその資;情報を再利用できません。
おそらくこれは仕様でしょう。runasコマンドのデザインは「使用者が(ヒトの責任で)他者になりすます」ことを意味しますので、プログラムがこれを「代行」することは許されません。したがってどのようなプログラム入力も「拒否・無視」する設定になっているのはうなずけます。これはWindows 2000からの設計思想かと思います。
一度runas /savecredでパスワードを入力すると、cmdkey /addで保存した資;情報は「対話型ログオン」の資;情報として上書きされ、以降のrunas /savecredではパスワードを要求されなくなります。
私であればですが、runasで設定したユーザーの「ユーザープロファイル」がどうなっているのか、調べるかもしれません。ユーザーが「保存する」パスワード情報はDPAPIと呼ばれる保護領域に保存され、ユーザープロファイル情報に含まれています。今まで存在しなかった(runas先の)ユーザープロファイルが、「runas /savecred」コマンドで生成されたなら、実際のパスワード情報はDPAPIの仕様により指定先のプロファイルにあり、コマンドでの表示結果は(理由はわかりませんが)仮想的な表示になっている可能性があります。逆にプロファイルが作られないのであれば、コマンドのパスワード情報が「指定元のプロファイル」に保存されていて、コマンドの仕様上の動作の可能性が高い、可能性があります。
こういった話しは明示的な資料があるわけでなく、OSの他の仕様を学んだ状況で「類推する」ことで切り分けていくしかないことです。これをはしょって一足飛びに「理解」しようとしたり、他者に丸投げするといった尋ね方ですと、コミュニケーションが難しくなってしまうように、個人的には思います。
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
2019年10月17日木曜日 5:50 ✅回答済み
> 不要なWindows資;情報が残っていることによって、本来許可されていない
> 操作を一般ユーザが出来てしまうことを防ぐため、不要なWindows資;情報
> を削除したい。
それが主;であるなら、そもそも資;情報マネージャーに保存されている情報はユーザー プロファイルとして保存され保護されているので、誰かが他のユーザーが保存した資;情報を利用するということはできません。
資;情報マネージャーに登録されているということはそのユーザーが自ら知りえた資;情報を自分自身で入力して登録/記憶させたものですから、仮にそれを削除しても何の意味もありません。
唯一考えられるのは、管理者がそのユーザーアカウントで(代理で)サインインして作業し、その時に管理者しか知りえない資;情報を(うっかり)保存してしまったような場合でしょう。
Hebikuzure aka Murachi Akira
2019年10月15日火曜日 4:35
ご回答どうもありがとうございます。
(1)、(3)について、ログオンユーザと同一ユーザの場合に「常設」が「ログオン セッション」となること、
ログオフ→再ログオンした際に「ログオン セッション」の資;情報が削除されることを確認できました。
ありがとうございました。
(2)については、リモートリソースへの接続で使用される資;情報の場合「ターゲット」が接続先ホスト名やアドレスになると思うのですが、
「ターゲット」が「自分のPC名\ユーザID」の資;情報の場合、どういったことに使用されるのでしょうか?
GUIでアプリケーション等を右クリック→「別のユーザとして実行」した場合はユーザ名/パスワードの入力を要求されますし、
runasコマンド以外で使用されるケースが思い浮かばないのですが、他にもあるのでしょうか。
よろしくお願いいたします。
2019年10月15日火曜日 6:49
runas with the /savecred switch does not accept a credential stored by the cmdkey command
の話を見てると、runas の /savecred での資;情報マネージャーへの登録は (Interactive Logon) はが付くという話もでてますね。実際に cmdkey や資;情報マネージャーの UI ではどのような表示になっているのでしょう?
Hebikuzure aka Murachi Akira
2019年10月16日水曜日 1:43
ご返答ありがとうございます。
runas /savecredで資;情報を保存した場合と、cmdkey /addで資;情報を保存した場合で、資;情報マネージャ上の表示は異なります。
runas /savecred でパスワードを入力して資;情報を保存すると、資;情報マネージャで「対話型ログオン」として表示されます。
cmdkey/addで資;情報を保存すると、「対話型ログオン」の表示は付きません。
cmdkey /listの結果では、上記2つはどちらも同じ表示となります。
具体的には以下の通りです。(ログオンユーザとは別ユーザの資;情報を登録した例です)
■runas /savecred /user:ユーザID ・・・ で資;情報を保存した場合
<cmdkey /listの結果>
ターゲット: Domain:interactive=PC名\ユーザID
種類: ドメイン パスワード
ユーザー: PC名\ユーザID
<資;情報マネージャでの表示>
インターネットまたはネットワークのアドレス: PC名\ユーザID (対話型ログオン)
ユーザー名: PC名\ユーザID
パスワード: ●●●●●●●●
常設: エンタープライズ
■cmdkey /add:Domain:interactive=PC名\ユーザID /user:PC名\ユーザID /pass で資;情報を保存した場合
<cmdkey /listの結果>
ターゲット: Domain:interactive=PC名\ユーザID
種類: ドメイン パスワード
ユーザー: PC名\ユーザID
<資;情報マネージャでの表示>
インターネットまたはネットワークのアドレス: PC名\ユーザID
ユーザー名: PC名\ユーザID
パスワード: ●●●●●●●●
常設: エンタープライズ
添付いただいたリンク先にも記載されている通り、cmdkey /addで資;情報を保存しても、
以降のrunas /savecredではその資;情報を再利用できません。
(ターゲットに「interactive」とあるにもかかわらず対話型で利用できないのも妙な話ですが・・・)
一度runas /savecredでパスワードを入力すると、cmdkey /addで保存した資;情報は「対話型ログオン」の資;情報として上書きされ、以降のrunas /savecredではパスワードを要求されなくなります。
2019年10月17日木曜日 3:02
チャブーン様
お世話になります。
言葉が足らず申し訳ございません、cmdkey /add、runas /savecred云々については、Hebikuzure aka Murachi Akira様の下記投稿への返答として記載したものでした。
> runas の /savecred での資;情報マネージャーへの登録は (Interactive Logon) はが付くという話もでてますね。
> 実際に cmdkey や資;情報マネージャーの UI ではどのような表示になっているのでしょう?
runasで再利用可能な資;情報を保存するにはcmdkey /addでなくrunas /savecredで一度パスワードを入力する必要があることはOSの仕様として受け止めておりまして、この部分を掘り下げようとは思っておりません。
当方で作成しているバッチもこの仕様を前提とした作りにしています。
今回の質問で知りたいことは、最初の投稿の(1)(2)(3)の内容です。
(1) Windows資;情報で自分自身の資;情報が保存されるケースについて
(2) Windows資;情報によってできること
(3) Windows資;情報の有効期限について ・・・Hebikuzure aka Murachi Akira様に回答いただき、解決済みです。
(1)(2)は最初の投稿で分かりづらい書き方をしてしまいましたので、以下に書き直します。
■ 知りたいこと
① Windows資;情報のうち、以下の資;情報の用途は何か?
色々自身で検;したが、runas /savecred以外の用途が見つからない。他の用途はあるのか?
【対象】
資;情報マネージャで「インターネットまたはネットワークのアドレス: PC名\ユーザID」と表示される資;情報
(cmdkey /listで照会した場合は「ターゲット: Domain:interactive=PC名\ユーザID」と表示される)
② 上記【対象】の資;情報で、自ユーザの資;情報(ローカルPC名\ログオン中のユーザID)も保存できるが、
自ユーザの資;情報の用途は何かあるか?
(普通に考えればrunas /savecredでわざわざ自ユーザに切り替える必要も無く、用途が思い浮かばない)
■ 目的
不要なWindows資;情報が残っていることによって、本来許可されていない操作を一般ユーザが出来てしまうことを防ぐため、不要なWindows資;情報を削除したい。
また、必要なWindows資;情報は削除せず残しておきたい。
必要/不要を判断するために、削除対象の資;情報(上記【対象】)がどういうときに使用されるものかを知りたい。
■ 補足
① 対象の資;情報について
Windows資;情報は、共有フォルダやネットワークドライブ等のネットワークリソース接続で使用されるものと、
runas /savecredで保存されるもので登録形式が異なります。
今回の対象はrunas /savecredで保存される形式のもののみで、ネットワークリソース接続用のものは対象外としています。
・ネットワークリソース接続用:
インターネットまたはネットワークのアドレス: 接続先ホスト名またはアドレス
・runas /savecredで保存されるもの:
インターネットまたはネットワークのアドレス: PC名\ユーザID
② 自身で検;した内容
「インターネットまたはネットワークのアドレス: PC名\ユーザID」形式の資;情報がどのような操作で保存・再利用されるか、
以下の操作を検;しました。
<保存・再利用された操作>
a) runas /savecred /user:管理者ID コマンドを使用した管理者IDへの切り替え
⇒ 保存された資;情報を利用して、パスワードを入力せずに管理者IDへ切り替えが可能。
<保存・再利用されなかった操作>
b) プログラム右クリック→[管理者として実行]
⇒ 管理者IDの選択とパスワードの入力を要求される。
入力した内容で資;情報の保存は出来ず、保存済み資;情報の再利用も不可。
c) プログラム[Shift];右クリック→[別のユーザとして実行]
⇒ 対象ユーザIDとパスワードの入力を要求される。
入力した内容で資;情報の保存は出来ず、保存済み資;情報の再利用も不可。
d) タスクスケジューラにて、実行ユーザに他ユーザIDを指定したタスクの作成・実行
⇒ タスク保存時に他ユーザIDのパスワードの入力を要求される。
入力した内容で資;情報の保存は出来ず、保存済み資;情報の再利用も不可。
e) タスクスケジューラにて、作成者・実行ユーザともに他ユーザIDのタスクの実行
⇒ 一般ユーザの場合、作成者が他ユーザのタスクへアクセス権がなく、実行不可。
(タスクスケジューラ、schtasksでの参照も不可)
長々とすみません。よろしくお願いいたします。
2019年10月22日火曜日 8:18
kk1515さん、こんにちは。フォーラムオペレーターのFarenaです。
TechNetフォーラムにご投稿くださいましてありがとうございます。
Hebikuzure aka Murachi Akiraさんとチャブーンさんから寄せられた情報はお役に立ちましたか。
参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、ご協力くださいますようお願いいたします。
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.
2019年10月23日水曜日 2:52
Hebikuzure aka Murachi Akira 様
ご返答ありがとうございます。
返答が遅くなりまして申し訳ございません。
> 資;情報マネージャーに登録されているということはそのユーザーが自ら知りえた資;情報を自分自身で入力して登録/記憶させたものですから、仮にそれを削除しても何の意味もありません。
> 唯一考えられるのは、管理者がそのユーザーアカウントで(代理で)サインインして作業し、その時に管理者しか知りえない資;情報を(うっかり)保存してしまったような場合でしょう。
確かに仰る通りですね。
1点目については、削除後にもし必要であれば再度ユーザに登録してもらえば良く、2点目については逆に削除しなければならないものなので、今現在登録されている対話形式の資;情報は全て削除しようと思います。
どうもありがとうございました。