ファイルサーバーへのログインには必ずパスワードを要求<-自動ログインさせたくない<-バッチファイルで解決


Windows で、NAS や ファイルサーバーに接続するとき、パスワードなしで自動接続したくない、というケースがあります。 ファイルサーバーは確かに便利なのですが、ローカルPC のバックアップだと考えると、常時接続するのはあまり好ましくありません。特にオンラインで常時接続していると、誤操作で大事なファイルを削除してしまったり、ランサムウェアやウィルスなどでストレージの内容をゴッソリ壊されてしまうというケースもあります。

そこで、Windows から NAS や samba に接続する際に、必ずパスワードを要求するようにできないかな、ということです。

ファイルサーバーへのログインには必ずパスワードを要求<-自動ログインさせたくない<-バッチファイルで解決_a0056607_15395609.jpeg



資格情報を記憶させない

Samba/NAS などのファイルサーバーに自動でログインしないよう、ログイン情報を記憶させないようにグループポリシーで資格情報のキャッシュを禁止します。

C:\ > gpedit

コンピューターの構成 > Windows の設定 > セキュリティの設定 > ローカルポリシー > セキュリティオプション

「ネットワークアクセス:ネットワーク認証のためにパスワードおよび資格情報を保存することを許可しない」−−−>>> 有効にセット

ファイルサーバーへのログインには必ずパスワードを要求<-自動ログインさせたくない<-バッチファイルで解決_a0056607_15405132.jpg


レジストリの値

資格情報の記憶禁止は、次のレジストリを変更することでも設定できます。

レジストリエディタ

C:¥ > regedit

1. キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
2. 名前: DisableDomainCreds
3. データ: 1

ファイルサーバーへのログインには必ずパスワードを要求<-自動ログインさせたくない<-バッチファイルで解決_a0056607_15413583.png


バッチ処理やログオンスクリプトを使って変更したい場合、次の内容をメモ帳などで作って、 xxxx.reg などの reg 拡張子で保存して、 regedit で読み込ませます。

-- DisableDomainCreds.reg --

"
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"disabledomaincreds"=dword:00000001
"

C: > regedit DisableDomainCreds.reg /s

 これで、たとえエクスプローラから、ネットワーク共有をマウントしようとして、ログインダイアログからログインする際に「資格情報を記憶する」チェックボックスをオンにしても、次回はパスワードなしではログオンできなくなります。このダイアログのチェックボックスがグレーアウトしてくれると嬉しいのですが、残念ながらそうは動いてくれないようです。

ファイルサーバーへのログインには必ずパスワードを要求<-自動ログインさせたくない<-バッチファイルで解決_a0056607_15421949.png

資格情報を既に保持してしまっている場合

資格情報を保持してある場合

コントロールパネルのユーザ > 資格情報マネージャーから、Windows の資格情報を削除しておきます。

ファイルサーバーへのログインには必ずパスワードを要求<-自動ログインさせたくない<-バッチファイルで解決_a0056607_15425022.png

ユーザー名とパスワード

 Linux + Samba や UNIX 系 OS の NAS の場合、後に説明しているバッチファイルがかなり有効ですが、 Windows サーバーの場合、ユーザ名とパスワードが、クライアントとサーバーで同じモノをつかっているようだと、どうも上手く行かないようです。もっとも、そういう場合はドメインを使ってシングルサインオンをしているわけですから仕方がないのですけどね。

 ユーザー名とパスワードは、Windows ログオンと、ファイルサーバーの ID パスワードと異なるものを使うと良いようです。Windows サーバーがドメインに所属していない場合は上手くいくかも知れません。シングルサインオンは時としてセキュリティ上のウィークポイントになりかねないので、大事なサーバーはドメインから切り離して運用した方がいい、と考えることもできます。



ファイルサーバーへのログイン、ログアウトのバッチファイル

以下の事例は、NAS や samba へのログイン、ログアウトに使えるバッチファイルの一例です。

・¥¥server_name¥share に接続する場合、ドライブレター(Z:)を指定して、DNS 名で server_name に接続しています。
・ログオフするときは Z: の接続を /Delete しています。
・ cmdkey で server_name の Netbios 名、DNS名、IP アドレスに資格情報が残っている場合、削除しています。
・ ログオフのプロセスを >> Text ファイルにリダイレクトします。

これらのバッチファイルをスタートボタンやタスクバーにショートカットを置いてユーザは必要な時に実行します。

-- Logon.bat

echo off
cls
net use \\mynas.int.mylan.com
echo Error code : %ERRORLEVEL%

cls
net use z: \\mynas.int.mylan.com\share
net use
pause
exit
---

-- Logoff.bat

#echo off
ECHO "ByeBye! World" > C:\logoff.txt
DATE /T >>C:\logoff.txt
TIME /T >>C:\logoff.txt

cls
net use z: /delete /y >> C:\logoff.txt
cmdkey /delete:mynas.int.mylan.com >> C:\logoff.txt
cmdkey /delete:mynas >> C:\logoff.txt
cmdkey /delete:192.168.1.240 >> C:\logoff.txt

cls
net use * /delete /y >> C:\logoff.txt
net use >> C:\logoff.txt

echo Logoff> >C:\logoff.txt
exit

ログイン時にログインさせたい、ログオフ時にマップを削除させたい


ログイン時に、ユーザにこのバッチファイルを使ってログインさせるには、スタートアップフォルダにこのバッチファイルへのリンクを作成する方法と、タスクスケジューラから、ユーザが Windows にログインするタイミングで強制実行させる方法の2つがあります。

スタートアップフォルダは次のフォルダです。

C:\Users\[USER_NAME]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

スタートアップフォルダを使う場合、タイミングによっては遅延する場合があるようです。本格的に強制させたい場合は、タスクスケジューラを使って「ユーザのログオン時」をトリガに強制実行させるのが良さそうです。タスクスケジューラを使うと、PIN でサインインするとすぐにドライブマップを実行してくれます。


ファイルサーバーへのログインには必ずパスワードを要求<-自動ログインさせたくない<-バッチファイルで解決_a0056607_15433054.png




 ユーザがPCをログオフする際に、同時にファイルサーバーからログオフさせるには、グループポリシーの「ユーザの構成」 >「スクリプト」の中にある「ログオフ」にログオフのバッチファイルを記述しておきます。

ファイルサーバーへのログインには必ずパスワードを要求<-自動ログインさせたくない<-バッチファイルで解決_a0056607_15435987.png



ユーザが離席してアイドリング中になったら強制ログアウト

 このロファイルサーバーからログアウトするバッチファイルを、タスクスケジューラーを使ってデスクトップがアイドリング状態となることをトリガーとして設定します。これによりユーザが長時間離席していたり、ログオグしてコンピューターの電源を切らずに外出するような状態で、強制的にサーバーからログアウトさせることができます。

オペレータのシステムから、重要なシステムに接続しっぱなしでランサムウェアなどのパンデミックによる被害は怖いですよね。



注目の NAS キット







by islandcenter | 2025-09-25 16:28 | Windows | Comments(0)