PowerShellでシステムのスリープ・ハイバネート設定をカスタマイズする方法

この記事では、PowerShellを使用してシステムのスリープやハイバネートの設定を変更する方法について詳しく解説します。このテーマは、初心者から上級者まで幅広く役立つ内容です。特に、具体的なコード例とその解説、さらに応用例にも焦点を当てます。各例には日本語でのコメントがついているため、コードの理解がより簡単になっています。

目次

PowerShellとは

PowerShellは、Microsoftが開発したスクリプティング言語であり、コマンドラインシェルとしても機能します。Windowsだけでなく、LinuxやmacOSでも使用することができます。多機能なこのツールは、初心者でも扱いやすいと評価されています。

スリープとハイバネートとは

スリープとハイバネートは、コンピューターの電力を節約するための状態です。
– スリープ:PCの状態をメモリに保存して電力を節約します。
– ハイバネート:PCの状態をハードディスクに保存して完全に電源をオフにします。

基本的な設定変更の方法

スリープ設定の変更

以下は、スリープに移行するまでの時間を30分に設定するPowerShellコードです。

# スリープ設定を30分にする
powercfg -change -standby-timeout-ac 30

ハイバネート設定の変更

ハイバネートを有効または無効にする設定です。

# ハイバネートを有効にする
powercfg -h on
# ハイバネートを無効にする
powercfg -h off

応用例

特定のアプリケーションが動作中はスリープしない

以下のコードは、特定のアプリケーション(この場合は“notepad.exe”)が動作中であれば、スリープに移行しないようにするものです。

# 特定のアプリケーションが動作中はスリープしない設定
$processName = "notepad"
if (Get-Process $processName -ErrorAction SilentlyContinue) {
  powercfg -REQUESTSOVERRIDE PROCESS $processName DISPLAY SYSTEM
}

特定の時間帯だけスリープを無効にする

特定の時間帯(例:夜間)にスリープを無効にするコード例です。

# 特定の時間帯にスリープを無効にする
$currentHour = Get-Date -Format "HH"
if ($currentHour -ge 22 -or $currentHour -lt 6) {
  powercfg -change -standby-timeout-ac 0
}

バッテリー残量に応じてスリープ設定を変更する

バッテリーの残量に応じてスリープ設定を動的に変更するコード例です。

# バッテリー残量に応じてスリープ設定を変更
$batteryLevel = Get-WmiObject -Class Win32_Battery | Select-Object -ExpandProperty EstimatedChargeRemaining
if ($batteryLevel -lt 20) {
  powercfg -change -standby-timeout-ac 5
}

外部デバイスの接続状況でスリープ設定を変更

外部デバイス(この例ではUSBデバイス)が接続されている場合、スリープ設定を変更するコードです。

# 外部デバイス接続でスリープ設定を変更
$usbDevices = Get-WmiObject -Class Win32_USBControllerDevice
if ($usbDevices) {
  powercfg -change -standby-timeout-ac 0
}

まとめ

PowerShellを使ってスリープやハイバネートの設定を変更する方法は多く、高度なカスタマイズも可能です。この記事で解説した基本的な設定方法と応用例を組み合わせることで、より効率的な電力管理が行えるでしょう。

コメント

コメントする

目次