共有使用するWindowsOSでWebDAVファイルサーバーをマウントしてローカルディスクのように扱えるようにしたい時、詰みかけましたが無事に?解決したので内容をまとめました。
1台のPCを複数人で使用し、そのPCは常に起動していて自由に使えるものもあれば、各利用者のID/パスワードでログインするPCもある。利用者はすべて一般利用者アカウント。
【問題点】
WebDAVファイルサーバーをマウントしてローカル上でファイルを開くと、基本認証でID/パスワード入力画面が表示された時に共有PCであるにも関わらず少なからず「資格情報を記憶する」にチェックを入れる利用者が発生する。その資格情報が残ったままの場合、接続先WebDAVファイルサーバーのアドレスが同一のため次の利用者が異なるID/パスワードを入力してもドライブマウントできない、またはマウントしても資格情報を保存した利用者のフォルダが開いてしまうことがある。
⇒UI上でマウントの切断ボタンを押した時には必ず資格情報を削除したい
【資格情報について】
管理者アカウントで登録した資格情報は管理者アカウントで、一般利用者アカウントで登録した資格情報は一般利用者アカウントで削除しなければならない。
⇒コマンドプロンプトで、cmdkeyで削除しようにもログイン中の一般利用者アカウントまたは各利用者アカウントで資格情報の削除処理が必要となる
⇒管理者権限でコマンドプロンプトを起動するもrunasによる一般利用者アカウントの切り替えはパスワードを求められるので利便性低下や周知困難のため不可。
【解決策】
PowerShellでタスクスケジューラに管理者権限でJOB登録し、JOB実行は "Domain Users" を指定することで解決しました。
JOB登録後にすぐに実行して、JOB削除するので時間は00:00:00でよい
#タスクスケジューラにJOB登録
schtasks.exe /CREATE /RU "Domain Users" /SC DAILY /TN "hogeCmdkeyDelete" /TR "cmdkey /delete hogehoge.aa.com" /ST "00:00:00" /F
(hogehoge.aa.comはサーバーアドレス)
#タスクスケジューラのJOB実行
schtasks.exe /RUN /TN "hogeCmdkeyDelete"
#タスクスケジューラのJOB削除
schtasks.exe /DELETE /TN "hogeCmdkeyDelete" /F
【参考】schtasks commands
オプション
/RU 指定したユーザー アカウントのアクセス許可で、タスクを実行します
/TN タスクの名前
/TR プログラムまたはタスクを実行するコマンドを指定します
/ST 24 時間形式、HH:mm を使用して、タスクの開始時刻を指定します
/F タスクを作成し、指定したタスクが既に存在する場合に警告を抑制するように指定します