web-dev-qa-db-ja.com

管理者アカウントで、事前定義された時間に「シャットダウン」を強制する方法は?

Windows7 ProfessionalのホームPC、単一の管理者アカウントを、事前定義された時間(たとえば、午後10時)に毎日強制的にシャットダウンしたいと思います。ユーザーがシャットダウンを邪魔するのを面倒にしたいと思います。

  • 私の最初のアイデアは、コンピューターの起動時にshutdown.exe /s /t xを実行することでした。ここで、xは、システム時間と秒単位の午後10時の差です。残念ながら、shutdown.exe /sshutdown.exe /aを呼び出すことで簡単にキャンセルできます。

  • 私の2番目のアイデアは、Windowsのタスクスケジューラを使用して、午後10時にshutdown.exe /s /t 0をスケジュールすることでした。これは、システム時刻をいじることで簡単に回避できます。

  • 午後10時までSleepsしてからシャットダウンするVBScriptは、タスクマネージャーから停止できます。

ユーザーが、シャットダウンを強制するためにインストールする方法を知っていると想定してください。 (たとえば、shutdown.exeの名前を不明な名前に変更することは、ユーザーが不明な名前を発見するため、適切な解決策ではありません)。インターネットアクセスは利用可能ですが、このため、これ以上のトラフィック/接続を避けたいと思います。

ユーザーは一般的に悪意のあるものではなく、午後4時にシャットダウンをキャンセルするアクションを実行しません。一方、午後9時50分には、次のシャットダウンをキャンセルしたくなるかもしれません。ユーザーはスタートアップフォルダからプログラムを削除しません。

6
ste12

これについては間違った方法で行っている可能性があります。ユーザーが管理者としてログインしているときに、シャットダウンプロセスを防ぐことをユーザーが実際に制御することはできません。あなたができることは、コンピュータに電力があるかどうかを制御することです。

タイマー付きの電源タップ を取り付けて、10:15または10:30のようにオフになるように設定します。ユーザーが簡単にアクセスできないように、そのストリップを固定します。必要な方法でPCをシャットダウンしても、電源タップは影響しません。タイマーを無視したり回避したりすると、システムの電源が切れ、PCが事実上シャットダウンします。

これには、ユーザーが午後10時以降にマシンを再起動できないという追加の利点があります。これはシャットダウンイベントの問題です。これは1回だけ発生し、ユーザーがマシンの電源を入れ直すのを防ぎません。

大きな警告(実装する前に読んでください)

マシンの電源を突然切断すると、システムが損傷する可能性があります。ほとんどのハードドライブは突然の電力損失を処理できますが、OSは処理できない場合があります。 OSが破損したり、その他の関連する問題が発生したりする可能性があります。これは「自己責任で行う」という提案です。

あなたが力を切るという考えが好きなら。モニターを時限サージストリップに差し込むだけかもしれません。それは事実上コンピュータを使用できなくし、あなたのシステムを傷つけません。コードを切り替えたり、別のコンセントに差し込んだりできない限り、これは機能するはずです。

これがお役に立てば幸いです(動作するのに十分クレイジーかもしれません)

3
Doltknuckle

ユーザーが管理者であり、それを知っている場合、シャットダウンを防ぐことを阻止する方法はありません。これは子供のコンピューターのように聞こえますが、特定の時間に降りる必要があります。誰も自宅のコンピューターを管理者として実行するべきではありません。

適切なコマンドを実行するスケジュールされたタスクは、ユーザー権限の変更とともに実行するのに最適な方法です。

Windows 7では、アカウントを正しく構成した場合、Windows Liveの非常に優れたペアレンタルコントロールツールがあり、さまざまな種類のコントロールと制限を設定できます。

ただし、他の人が指摘しているように、最初のステップは、ユーザーアカウントをユーザーレベルのアカウントに変更し、アクセスできる管理者アカウントを作成して、パスワードを簡単に推測できないようにすることです。

8
music2myear

この質問はそれに反対している。あなたの問題は本当の問題ではありません。管理者アカウントを管理することを期待しないでください。ユーザーを非管理者にすると、やりたいことが何でもできます。

3
pcunite

schtasksを使用し、runuser /RU "SYSTEM"を介して実行し、「LocalServiceUpdate」のような名前を付けます。

これで、スケジュールされたすべてのタスクをリストした場合でも、複数のシステムタスクのリストが表示され、タスクの名前も技術的に聞こえ、ユーザー名はIDを提供しません(ユーザーが「SYSTEM」になるため)。

さて、時間が問題になる可能性があるので、バッチプログラムを作成して、たとえば21:30に実行することができます。

このバッチプログラムを/TRフィールドに入力します。

(バックアップの場合、電源が切れた場合に備えて、タスクを作成します。同じ概念ですが、シャットダウンの正確な時間で、名前が少し異なります。

@echo off

:: DELAYING TIME TILL 22:00HRS

PING -n 3600 127.0.0.0>NUL

SHUTDOWN /S /F

EXIT

ファイルを見つけることが不可能な場所に保存してください。schtasksには実行可能パスが表示されないため、すべてのファイルで文字列「SHUTDOWN」を見つけることを誰かが決定しない限り、安全です。

また、誤解を招くために、「おやすみ」/「シャットダウン」などのスケジュールされたタスクを作成して、勝ったと思われるようにすることを強くお勧めしますが、実際のファイルはバックグラウンドで次のようになります。忍者。

1
Gen1n