web-dev-qa-db-ja.com

コンピューターがスリープモードから復帰したときにNumLockを有効にする

新しいAcerWindows 10ラップトップでは、コンピューターがスリープモードから復帰するたびに、NumLockが自動的に無効になります。このラップトップには、NumLockが有効になっていることを示す物理的なインジケータライトがないため、非常に煩わしくなります。

オンラインで検索すると、これはAcerファームウェアと関係がある可能性があります。レジストリオプションとAutoruns.exeを試してみましたが、ログインと起動時に問題を修正できましたが、コンピューターがスリープ状態になってウェイクアップしたときは修正できませんでした。

コンピュータがスリープ状態になった後にウェイクアップするとき、自動ログアウトやロック画面はありません。

5
Thriggle

回避策として、NumLockを有効にするPowerShellスクリプトを作成し、タスクスケジューラでタスクを設定して、コンピューターがスリープモードから復帰するたびにタスクを実行しました。

  1. メモ帳を使用して、次のテキストを.ps1ファイルとして保存します

    if(-not [console]::NumberLock){ $w = New-Object -ComObject WScript.Shell; $w.SendKeys('{NUMLOCK}'); }

  2. これまでコンピューターでPowerShellスクリプトを実行したことがない場合は、スクリプトを実行できるように実行ポリシーを変更する必要があります。管理者としてPowerShell.exeを実行し、次のように入力してEnterキーを押します。

    Set-ExecutionPolicy RemoteSigned

    これにより、物理的にコンピューター上にある署名されていないスクリプトを実行できますが、署名されていないスクリプトをリモートで実行することはできません。

  3. スタートメニューに「タスクスケジューラ」と入力し、それをクリックしてスケジュールされたタスクライブラリを開きます。

  4. タスクスケジューラライブラリを右クリックし、「タスクの作成... "」を選択します。

  5. Generalタブで、タスクに「numlockがオンになっていることを確認してください」のような名前を付けてから、Actionタブに切り替えます。

  6. タスクに「プログラムの開始 "」というアクションを与えます。プログラムはPowerShell.exe(PowerShell実行可能ファイルへのフルパスを貼り付ける必要があります)であり、アクションには次の「引数」が必要です。

    -command "&'path/to/your/file.ps1'"

    ...一重引用符で囲まれたパスを、以前に保存したPS1スクリプトの実際のパスに置き換えます。

    シフトキーを押しながら右クリックして「パスとしてコピー」を選択すると、Windowsエクスプローラーのあらゆるもの(PowerShell.exeとPS1スクリプトの両方を含む)への完全なパスを取得できることに注意してください。

  7. Triggersタブに切り替えて、スケジュールされたタスクに必要な数のトリガーを追加します。 「ログオン時」、「起動時」、「ワークステーションのロック解除時」には組み込みのトリガーがありますが、ない場合がありますスリープモードから復帰したときのためのものになります。

    代わりに、カスタムトリガー「イベント上」を設定できます。これは、イベントログのエントリに基づくことを意味します(スタートメニューに「イベントビューア "」と入力して、コンピューターがスリープモードから復帰したときにどのイベントが開始されるかを確認します)。スリープモードに基づくイベントは、おそらくWindows Logsの下のSystemカテゴリにあります。

  8. Conditionsタブの下に、バッテリー電源の場合など、タスクフォームの実行を妨げる条件がないことを確認してください。

  9. タスクを保存します。それを右クリックして実行し、必要に応じてNumLockが有効になっていることを確認できます。

4
Thriggle