Windowsでyoutubeの視聴時間を制限する為の4つのステップ
前回、以下の記事にて、タスクスケジューラーにhostsファイルに
youtubeのアクセスを禁止する文字列を追記するプログラムを定期実行する方法で、
youtubeのアクセスをできなくする方法を書きました。
色々な方から反響やコメントを頂き、
ありがとうございます!
その中で、子供の視聴制限の為に
一定の時刻になると禁止して、一定の時刻になると解除できないか?とお問い合わせを頂きました。
(例:毎日15時~21時まではyoutubeにアクセスできる)
今回は、一定の時刻にPCを起動している最中、シャットダウンしていた場合でも、
起動後にプログラムが実行され、youtubeの視聴時間を制限をする方法をまとめました。
前回と重複する部分もありますが、最後までお付き合いください。
目次
事前準備
hostsファイルのバックアップ
今回、以下のファイルは、何度も内容を書き込む為、念のために必ずバックアップを取っておいてください。
C:\Windows\System32\drivers\etc\hosts
hostsファイルをコピペしたファイルを「hosts_bk」とかバックアップと分かるような名前にしておきます。
youtubeのアクセスを禁止するプログラムを作成
まずは前回と同じく、hostsファイルにアクセスを禁止する文字列を追記するバッチファイルを作成します。
(1). 以下のソースコードをメモ帳などのテキストエディターでコピー&ペーストします。
1 2 3 4 5 6 7 8 9 |
@echo off set HOST_PASS=%SystemRoot%\System32\drivers\etc\hosts findstr "youtube" %HOST_PASS% if "%ERRORLEVEL%"=="1" ( echo;>> %HOST_PASS% echo 127.0.0.1 www.youtube.com>> %HOST_PASS% ) |
(2). コピー&ペースト後、名前を付けて保存します。
※保存の拡張子はバッチファイルにする為、.bat にします。
このバッチはhostファイル内にyoutubeという文字列が存在するかを確認して、
存在しない場合のみ、改行して以下の文字列を書き込みます。
127.0.0.1 www.youtube.com
この文字列がhostsファイル内にあることで、youtubeのアクセスができなくなります。
youtubeのアクセス禁止を解除するプログラムを作成
次にhostsファイルに追記したアクセスを禁止する文字列「127.0.0.1 www.youtube.com」を削除するためのスクリプトファイル(VBScript)を作成します。
(1). 以下のソースコードをメモ帳などのテキストエディターでコピー&ペーストします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
Option Explicit Dim objFSO ' ファイルシステムオブジェクト Dim objShell ' WScriptオブジェクト Dim objFile ' 対象ファイル Dim strOldText ' 置換前テキスト Dim strNewText ' 置換後テキスト Dim strRepText ' 置換後文字列 Dim strSystemRoot ' Windowsフォルダのパス Dim strSearch ' 置換対象文字列 Dim strFilePath ' 対象ファイルパス ' hostsファイルのパスを設定 Set objShell = WScript.CreateObject("WScript.Shell") strSystemRoot = objShell. ExpandEnvironmentStrings("%SystemRoot%") strFilePath = strSystemRoot + "\System32\drivers\etc\hosts" ' 置換対象文字列を設定 strSearch = "127.0.0.1 www.youtube.com" ' 置換後文字列に空を設定 strRepText = "" ' テキストデータ読込 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(strFilePath) strOldText = objFile.ReadAll ' ファイルを閉じる objFile.Close ' 対象の文字列がファイル内に存在する場合のみ、置換処理を実行 If InStr(strOldText, strSearch) > 0 Then ' 対象文字列を空白に置換 strNewText = Replace(strOldText, strSearch, strRepText) ' 改行が残ってしまう為、最後の4文字を削除して調整 strNewText = Left(strNewText, Len(strNewText) - 4) ' 書き込み Set objFile = objFSO.CreateTextFile(strFilePath) objFile.Write (strNewText) objFile.Close End If ' WScriptオブジェクトは最後に初期化する ' ※初期化しないと、タスクが「実行中」のままになる Set objShell = Nothing |
(2). コピー&ペースト後、名前を付けて保存します。
※こちらに関して、保存の拡張子はスクリプトファイルにする為、.vbs にします。
このスクリプトファイルは、hostsファイル内に以下の文字列があった場合、
空文字に置換処理(変換)をして、文字列を削除しています。
127.0.0.1 www.youtube.com
対象文字列がhostsファイルから削除される事で、youtubeのアクセスが可能になります。
タスクスケジューラーにプログラムを起動するタスクを設定
Windowsの標準機能で入っているタスクスケジューラーを利用して、
作成したプログラムを一定の時間になったら、実行されるようにします。
虫眼鏡のアイコンをクリックして、
taskとかタスクと入力すると、タスクスケジューラーと出てくるので、起動します。
youtube視聴制限解除のタスクを作成
まずは視聴制限を解除するプログラムを実行するタスクを作成します。
(1). タスクスケジューラーの画面から「新しいタスクの追加」をクリックする。
(2). タスク名とタスクの詳細を入力する。
名前や説明は、何のタスクなのか?を書く欄なので、
名前は「youtube視聴制限解除」とか自分が後から見て分かるタスク名にしましょう。
(3). タスクを起動するタイミングを指定する。
タスクの開始は、毎日実行されるようにするので「毎日(D)」を選択します。
(4). タスクの実行時刻と間隔を設定する。
前回の記事とは違って、今回はプログラムが実行される時間を設定します。
日にちは当日のままで、時間をyoutube視聴制限を解除したい時間にします。
間隔は毎日実行する為、1日のままでOKです!
今回は例として、子供のおやつの時間15時から解禁にしました(^^;)
(5). タスクの動作種別を選択する。
ここは「プログラムの開始」でOKです。
(6). 作成したプログラムファイルを設定する。
「参照」ボタンをクリック後、ファイル選択ダイアログから先ほど作成したyoutubeのアクセス禁止を解除するプログラムを選択します。
引数や開始(オプション)は今回はなし。
(7). タスクの内容確認
「「完了」をクリックしたときに、このタスクの「プロパティ」ダイアログを開く」にチェックして、
内容に問題なければ「完了」ボタンをクリックします。
※もし「「完了」をクリックしたときに、このタスクの「プロパティ」ダイアログを開く」のチェックを忘れた場合は、タスクスケジューラーの一覧画面で、作成したタスクを右クリック→「プロパティ」でプロパティ画面を起動します。
さて、ここからが重要です!
以下の事を行う為に、プロパティの設定を行います。
・設定したプログラムでhostsファイルを上書き保存できるようにする。 (hostsファイルは管理者権限でないと編集できない) ・設定した時刻にPCがシャットダウン状態でも、起動した際にプログラムがすぐに実行されるようにする。 |
(9). プロパティの画面が開いたら、「条件」タブの内容を設定する。
・「コンピューターをAC電源で使用している場合のみを開始する(P)」のチェックを外す
・「タスクを実行するためにスリープを解除する(Z)」にチェックする
(10). 「設定」タブの内容を設定する。
「スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行する(S)」にチェックする。
(11). 「全般」タブの内容を設定する。
・「ユーザーがログオンしているかどうかにかかわらず実行する(W)」にチェックする。
・「最上位の特権で実行する」にチェックする。
※hostsファイルは管理者権限でないと編集できない為、チェックを入れていないと、プログラムが実行されても、hostsファイルが更新されません。
最後に「OK」ボタンをクリックすると、ユーザーとパスワードを入力するダイアログが表示されます。
ユーザー名は、プロパティ画面の作成者に記載されているユーザー(水色の部分)と同じユーザーを入力します。
ここは現在Windowsにログインしているユーザーになるでしょう。
パスワードは現在Windowsにログインしているユーザーアカウントのパスワードを入力。
「OK」ボタンをクリック後、認証OKになれば、設定完了です。
タスク一覧に、今作成したタスクが追加されていればOKです!
youtubeのアクセス禁止のタスクを作成
続いて同じ要領でアクセスを禁止するプログラムを実行するタスクを作成します。
設定内容は、タスク名、時刻、設定するプログラム以外、同様の為、細かい説明は割愛します。
タスクスケジューラーの画面から「新しいタスクの追加」をクリックします。
ここでアクセスを禁止する時間を同じように設定します。
例として寝る1時間前ということで21時にしました。
先ほど作成したyoutubeのアクセスを禁止するプログラムを選択します。
タスク一覧に、今作成したタスクが追加されていればOKです!
設定した時刻を変更する方法
実際に運用してみて、
「明日はサービスタイムで長く見せてあげたい!」とか
設定した時刻を変更したい場合があると思います。
(1). タスクスケジューラーの画面で対象のタスクを右クリック→[プロパティ]をクリック。
(2). プロパティの画面を開いたら、画面上部の「トリガー」タブを選択。
トリガー一覧から対象のトリガーを選択して、「編集」ボタンをクリックします。
(3). トリガーの編集画面が開いたら、開始の時刻を変更後、「OK」ボタンをクリック。
(4). タスクのプロパティ画面に戻って、「OK」ボタンをクリック。
動作確認
指定時刻にPCが起動中の場合
まずは設定した時間になって、youtubeがアクセスできるか?できなくなっているか?を確認みましょう!
まずは禁止の時刻(21時)以降に見てみました。
hostsファイルの中身を確認してみます。
更新日時が、設定した時刻(例では21:00)ぴったしになっていて、「127.0.0.1 www.youtube.com」の文字列も追記されている事を確認できればOKです!
次に日をまたいで次の日の15時に制限解除されているか確認してみます。
同じようにhostsファイルを確認してみましょう。
更新日時が設定した時刻(例では15:00)ぴったしになっていて、「127.0.0.1 www.youtube.com」の文字列も削除された事を確認できればOKです!
指定時刻にPCを起動していない場合
続いて、夜中寝ている時などPCを起動していない時刻にタスクが設定されている場合の検証をしました。
今回は、解除が朝4時、禁止が7時30分にタスクの時間を設定しました。
(なぜそんな時間に⁉と突っ込まれそうですが、テストということでご了承ください。)
結果的に朝7時30分以降にPCを起動すると、視聴禁止の状態になっている予定です。
では、朝4時以降にPCを起動して確認します。
それではお休みなさい…ZZZ
朝4時20分頃起床して、PCを起動後、タスクスケジューラーの一覧を確認しました。
前回の実行時刻を確認すると、PCを起動して数分後に、タスクが実行されたようです。
タスクのプロパティで「スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行する(S)」にチェックしたことにより、PCをシャットダウンしている最中は実行できなかったけど、起動した事で実行されたのでしょう。
次にhostsファイルも確認しました。
更新日時がタスクスケジューラーの前回の実行時刻通りの日時になっていて、「127.0.0.1 www.youtube.com」の文字列も削除されていました。
最後にyoutubeにアクセスできることも確認できました!
ということで、次は朝7時30分以降にPCを起動して確認するので、
それまでは再びPCをシャットダウンします。
それでは再びお休みなさい…ZZZ
さて、朝7時30分以降にPCを起動して同じようにスクスケジューラーの一覧を確認しました。
視聴禁止のプログラムも、PCを起動して数分後に、タスクが実行されました。
続いてhostsファイルを確認します。
更新日時がタスクスケジューラーの前回の実行時刻通りの日時になっていて、「127.0.0.1 www.youtube.com」の文字列も追記されています。
最後にyoutubeにアクセス!
アクセスできなくなっている事も確認できたのでOKです!!
まとめ
今回はITの力を駆使して、
Windowsでyoutubeの視聴時間を制限するための4つのステップを解説しました。
1.hostsファイルにyoutubeのアクセスを禁止する文字列を追記するプログラム(バッチファイル)を作成 2.hostsファイルからyoutubeのアクセス禁止の文字列を削除するプログラム(VBスクリプト)を作成 3.タスクスケジューラーに一定時刻になると、1で作成したプログラムが実行されるタスクを作成 4.タスクスケジューラーに一定時刻になると、2で作成したプログラムが実行されるタスクを作成 |
前回とやることが多く、少し大変だったかもしれませんが、
これで時間制限をすることが可能です。
日によっては、
以下の記事で紹介している常にyoutubeのアクセスを禁止するタスクを作成して、
youtube禁止緊急事態宣言期間を作っても良いかもしれません(笑)
ということで、最後までお付き合いいただき、ありがとうございました!
是非、一度試してみてください(^^)
この記事を書いた人
最新の投稿
- WordPress2024.08.23【Lightning】無料版でヘッダー上部機能を追加する方法
- LPコーディング2024.08.11【LPコーディング】HTML共通パーツで同じセクションを再利用
- 新着情報2024.07.17【制作実績】あざみ野 勝俣接骨院 様 Webサイトリニューアル
- LPコーディング2022.09.27【LPコーディング】Q&A 質問をクリックすると回答を表示する方法
フリーランスエンジニア歴10年のセールスデザインができるWeb制作者 石井よしまさのメルマガ
10年で関わった現場は13社。
その中で4社から正社員オファーを頂くことができた私が
主にフリーランス初心者向けに、
以下のような内容を配信していきます。
「常駐型のフリーランスで評価される為に大切な5つのマインド」
「10年で13社の案件に関わり、なぜ4社から正社員オファーがあったのか?」
「セールスデザイナーが依頼すべき良いコーダーとは?」..
などについて学べます。
是非、フリーランスとしてやっていきたい!
という方は、ご登録ください(^^)