Windows 7 - BAT を使用して HOSTS ファイルまたはローカル GPO を修正し、特定のユーザーの Web サイトをブロックする

Windows 7 - BAT を使用して HOSTS ファイルまたはローカル GPO を修正し、特定のユーザーの Web サイトをブロックする

私は、まだ Windows 7 SP2 を実行しているマシンが 1 台ある小さなホーム セットアップを持っています。

このコンピュータには 2 つのユーザー アカウントがあります。1 つのユーザー アカウントを特定の Web サイトからブロックし、他のユーザーには同じ Web サイトへのアクセスを許可する必要があります。両方が同時にログインすることも、一方だけがログインすることも、一方が他方より先にログインすることもできます。

ユーザーに応じてログイン時にトリガーするように設定されたタスク スケジューラを使用して、次の BAT ファイルを実行しようとしました。ブロック BAT ファイルは機能しますが、ログイン時に BAT タスクを許可するようにスケジュールされたユーザーとしてログインしようとすると、許可 BAT は機能しません。

BAT ファイルやそれを設定する最適な方法について何かアイデアはありますか? あるいは、代わりに何らかのローカル グループ ポリシーを使用する必要があるでしょうか?

BAT ファイルを許可:

@エコーオフ

c:\windows\system32\drivers\etc\hosts と入力 | findstr /v ウェブサイト名をここに入力 > c:\windows\system32\drivers\etc\hosts

BAT ファイルをブロック:

@エコーオフ

echo 0.0.0.0 ウェブサイト名をここに入力 >> c:\windows\system32\drivers\etc\hosts

答え1

皆さんの歓迎と提案のおかげで、最終的に自分の質問に答えることができました。このフォーラムの精神に則り、他の人が今後検索エンジンで偶然この情報にたどり着くことで、私たちの努力の恩恵を受けられるように、以下に私の解決策を投稿します。


将来、答えを探している人のために、私は答えを見つけました。

最善の方法は、そもそもブロックする必要のあるユーザー アカウントにのみブロックとブロック解除を適用することでした。説明しましょう:

タスク スケジューラを使用して、元の質問で示したブロック bat ファイルを次の設定で実行しました。

セキュリティオプション

  • タスクを実行するときは、次のアカウントを使用します: ユーザーアカウント 1
  • 「ユーザーがログオンしているときのみ実行する」のボックスにチェックを入れました
  • 「最高権限で実行する」のボックスにチェックを入れました

トリガーオプション

  • ユーザーセッションへの接続時
  • 特定のユーザー(ユーザーアカウント 1)
  • ローカルコンピュータからの接続

行動

  • プログラムを起動する (私の bat ファイル)

条件

  • ここですべてのチェックを外す

設定

  • タスクをオンデマンドで実行できるようにするにはチェックを入れます
  • タスクがすでに実行中の場合は、次のルールが適用されます。既存のインスタンスを停止します。

ブロック解除については、以下を除いて上記とまったく同じことを行いました。

トリガーオプション

  • ユーザーセッションから切断された場合
  • 特定のユーザー(ユーザーアカウント 1)
  • ローカルコンピュータからの接続

関連情報