Admin Power Management

[pmset]電源の各種情報をplistに書き出して取得する(バッテリーシリアル、バッテリーヘルス、バッテリー最適化)


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#com.cocolog-nifty.quicktimer.icefloe
004#
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.8"
007use framework "Foundation"
008use framework "AppKit"
009use scripting additions
010
011property refMe : a reference to current application
012
013##########################################
014# 【B-1】 pmsetコマンドでPLISTを作成する
015log doMakePmsetPlist()
016
017##########################################
018# 【B-2】PLISTから値を取得する
019##バッテリーシリアル
020log doGetPlistKeyPath("~/Documents/Apple/Battery/pmset_ps.plist", "Hardware Serial Number") as text
021##バッテリー状態
022log doGetPlistKeyPath("~/Documents/Apple/Battery/pmset_battery.plist", "BatteryHealth") as text
023##バッテリー最適化
024log doGetPlistKeyPath("~/Documents/Apple/Battery/pmset_battery.plist", "Optimized Battery Charging Engaged") as text
025
026
027
028##########################################
029# 【B-2】 パスとkeypath指定で値を取得する
030to doGetPlistKeyPath(argFilePath, argKeyPath)
031  #パス
032  set strFilePath to argFilePath as text
033  set ocidFilePathStr to refMe's NSString's stringWithString:(strFilePath)
034  set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
035  set ocidFilePathURL to refMe's NSURL's alloc()'s initFileURLWithPath:(ocidFilePath) isDirectory:(false)
036  ##
037  #レコードを読み込み
038  set listResponse to refMe's NSDictionary's alloc()'s initWithContentsOfURL:(ocidFilePathURL) |error| :(reference)
039  if (item 2 of listResponse) = (missing value) then
040    log "initWithContentsOfURL 正常処理"
041    set ocidPlistDict to (item 1 of listResponse)
042  else if (item 2 of listResponse) ≠ (missing value) then
043    log (item 2 of listResponse)'s code() as text
044    log (item 2 of listResponse)'s localizedDescription() as text
045    log "initWithContentsOfURL エラーしました"
046    return false
047  end if
048  #
049  set ocidValue to (ocidPlistDict's valueForKeyPath:(argKeyPath))
050  return ocidValue
051  
052end doGetPlistKeyPath
053
054##########################################
055# 【B-1】電源関係のPLISTを出力する
056to doMakePmsetPlist()
057  #保存先を先に確保する
058  set appFileManager to refMe's NSFileManager's defaultManager()
059  set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDocumentDirectory) inDomains:(refMe's NSUserDomainMask))
060  set ocidDocumentDirPathURL to ocidURLsArray's firstObject()
061  set ocidSaveDirPathURL to ocidDocumentDirPathURL's URLByAppendingPathComponent:("Apple/Battery") isDirectory:(true)
062  #フォルダを作る
063  set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
064  # 777-->511 755-->493 700-->448 766-->502
065  ocidAttrDict's setValue:(448) forKey:(refMe's NSFilePosixPermissions)
066  set listDone to appFileManager's createDirectoryAtURL:(ocidSaveDirPathURL) withIntermediateDirectories:(true) attributes:(ocidAttrDict) |error| :(reference)
067  if (item 1 of listDone) is true then
068    log "createDirectoryAtURL 正常処理"
069    set ocidLabelNo to refMe's NSNumber's numberWithInteger:(2)
070    set listDone to (ocidSaveDirPathURL's setResourceValue:(ocidLabelNo) forKey:(refMe's NSURLLabelNumberKey) |error| :(reference))
071    if (item 1 of listDone) is true then
072      log "setResourceValue 正常処理"
073    else if (item 2 of listDone) ≠ (missing value) then
074      log (item 2 of listDone)'s code() as text
075      log (item 2 of listDone)'s localizedDescription() as text
076      return "setResourceValue エラーしました"
077    end if
078  else if (item 2 of listDone) ≠ (missing value) then
079    log (item 2 of listDone)'s code() as text
080    log (item 2 of listDone)'s localizedDescription() as text
081    log "createDirectoryAtURL エラーしました"
082    return false
083  end if
084  #ファイルを作成する
085  set ocidInfoFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("_このフォルダは削除しても大丈夫です.txt") isDirectory:(true)
086  set ocidInfoText to refMe's NSString's stringWithString:("このフォルダは削除しても大丈夫です")
087  set listDone to ocidInfoText's writeToURL:(ocidInfoFilePathURL) atomically:(true) encoding:(refMe's NSUTF8StringEncoding) |error| :(reference)
088  if (item 1 of listDone) is true then
089    log "writeToURL 正常終了"
090  else if (item 1 of listDone) is false then
091    log (item 2 of listDone)'s localizedDescription() as text
092    log "writeToURL保存に失敗しました"
093    return false
094  end if
095  #################################
096  #everything
097  set ocidSaveFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("pmset_everything.txt") isDirectory:(false)
098  set strSaveFilePathURL to (ocidSaveFilePathURL's |path|()) as text
099  #コマンド実行
100  set strCommandText to ("/bin/zsh -c '/usr/bin/pmset -g everything > \"" & strSaveFilePathURL & "\"'") as text
101  log strCommandText
102  try
103    do shell script strCommandText
104  on error
105    return false
106  end try
107  #################################
108  #ps
109  set ocidSaveFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("pmset_ps.plist") isDirectory:(false)
110  set strSaveFilePathURL to (ocidSaveFilePathURL's |path|()) as text
111  #コマンド実行
112  set strCommandText to ("/bin/zsh -c '/usr/bin/pmset -g ps -xml > \"" & strSaveFilePathURL & "\"'") as text
113  log strCommandText
114  try
115    do shell script strCommandText
116  on error
117    return false
118  end try
119  #################################
120  #batt
121  set ocidSaveFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("pmset_battery.plist") isDirectory:(false)
122  set strSaveFilePathURL to (ocidSaveFilePathURL's |path|()) as text
123  #コマンド実行
124  set strCommandText to ("/bin/zsh -c '/usr/bin/pmset -g batt -xml > \"" & strSaveFilePathURL & "\"'") as text
125  log strCommandText
126  try
127    do shell script strCommandText
128  on error
129    return false
130  end try
131  #################################
132  #accps
133  set ocidSaveFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("pmset_accps.plist") isDirectory:(false)
134  set strSaveFilePathURL to (ocidSaveFilePathURL's |path|()) as text
135  #コマンド実行
136  set strCommandText to ("/bin/zsh -c '/usr/bin/pmset -g accps -xml > \"" & strSaveFilePathURL & "\"'") as text
137  log strCommandText
138  try
139    do shell script strCommandText
140  on error
141    return false
142  end try
143  return true
144  (*  ■AllKeys
145  
146BatteryHealthCondition
147Power Source ID
148Name
149Max Capacity
150Is Present
151DesignCycleCount
152Is Charged
153version
154BatteryHealth
155Battery Provides Time Remaining
156fccDaySampleCount
157Maximum Capacity Percent
158fccAvgHistoryCount
159Current
160Time to Empty
161Battery Service Flags
162Battery Service State
163Transport Type
164fccDaySampleAvgAlt
165ncc
166nccAvgAlt
167nccAvg
168fccDaySampleAvg
169Power Source State
170Time to Full Charge
171nccAlt
172Is Charging
173Hardware Serial Number
174Current Capacity
175Optimized Battery Charging Engaged
176LPM Active
177Type
178waitFc
179    *)
180end doMakePmsetPlist
AppleScriptで生成しました

|

[pmset]hibernatemode冬眠モード

ざっくり書くと
## 0 desktops メモリーバックアップ無し=セキュリティ重視
## 3 portables スリープ中もメモリーに通電して内容を保持
## 25 メモリーの内容をディスクに書き出してからスリープ


【スクリプトエディタで開く】|

SAFE SLEEP ARGUMENTS
hibernatemode supports values of 0, 3, or 25. Whether or not a
hibernation image gets written is also dependent on the values of standby
and autopoweroff

For example, on desktops that support standby a hibernation image will be
written after the specified standbydelay time. To disable hibernation
images completely, ensure hibernatemode standby and autopoweroff are all
set to 0.

hibernatemode = 0 by default on desktops. The system will not back memory
up to persistent storage. The system must wake from the contents of
memory; the system will lose context on power loss. This is,
historically, plain old sleep.

hibernatemode = 3 by default on portables. The system will store a copy
of memory to persistent storage (the disk), and will power memory during
sleep. The system will wake from memory, unless a power loss forces it to
restore from hibernate image.

hibernatemode = 25 is only settable via pmset. The system will store a
copy of memory to persistent storage (the disk), and will remove power to
memory. The system will restore from disk image. If you want
"hibernation" - slower sleeps, slower wakes, and better battery life, you
should use this setting.

Please note that hibernatefile may only point to a file located on the
root volume.


hibernatemode は、0、3、または 25 の値をサポートします。
 書き込まれる休止状態イメージはスタンバイの値にも依存します
 そして自動電源オフ

 たとえば、スタンバイをサポートするデスクトップでは、休止状態イメージは次のようになります。
 指定されたstandbylay時間の後に書き込まれます。 休止状態を無効にするには
 画像を完全に消去し、休止状態モードのスタンバイと自動電源オフがすべてであることを確認します。
 0に設定します。

 デスクトップではデフォルトで hibernatemode = 0 です。 システムはメモリをバックアップしません
 永続ストレージまで。 システムは、次の内容から復帰する必要があります。
 メモリ; 電源が失われると、システムはコンテキストを失います。 これは、
 歴史的には、昔ながらの睡眠です。

 ポータブルではデフォルトで hibernatemode = 3 です。 システムはコピーを保存します
 のメモリを永続ストレージ (ディスク) に保存し、その間メモリに電力を供給します。
 寝る。 電力損失によって強制的に起動されない限り、システムはメモリから起動します。
 休止状態イメージから復元します。

 hibernatemode = 25  pmset 経由でのみ設定可能です。 システムは、
 メモリを永続ストレージ (ディスク) にコピーし、電源を切断します。
 メモリ。 システムはディスクイメージから復元します。 あなたが望むなら
 「休止状態」 - 睡眠が遅くなり、目覚めが遅くなり、バッテリー寿命が長くなります。
 この設定を使用する必要があります。


【スクリプトエディタで開く】|


PMSET(1) General Commands Manual PMSET(1)

NAME
     pmset  manipulate power management settings

SYNOPSIS
     pmset [-a | -b | -c | -u] [setting value] [...]
     pmset -u [haltlevel percent] [haltafter minutes] [haltremain minutes]
     pmset -g [option]
     pmset schedule [cancel | cancelall] type date+time [owner]
     pmset repeat cancel
     pmset repeat type weekdays time
     pmset relative [wake | poweron] seconds
     pmset [touch | sleepnow | displaysleepnow | boot]

DESCRIPTION
     pmset manages power management settings such as idle sleep timing, wake
     on administrative access, automatic restart on power loss, etc.

     Note that processes may dynamically override these power management
     settings by using I/O Kit power assertions.  Whenever processes override
     any system power settings, pmset will list those processes and their
     power assertions in -g and -g assertions. See caffeinate(8).

SETTING
     pmset can modify the values of any of the power management settings
     defined below. You may specify one or more setting & value pairs on the
     command-line invocation of pmset.  The -a, -b, -c, -u flags determine
     whether the settings apply to battery ( -b ), charger (wall power) ( -c
), UPS ( -u ) or all ( -a ).

     Use a minutes argument of 0 to set the idle time to never for sleep
     disksleep and displaysleep

     pmset must be run as root in order to modify any settings.

SETTINGS
     displaysleep - display sleep timer; replaces 'dim' argument in 10.4
(value in minutes, or 0 to disable)
     disksleep - disk spindown timer; replaces 'spindown' argument in 10.4
(value in minutes, or 0 to disable)
     sleep - system sleep timer (value in minutes, or 0 to disable)
     womp - wake on ethernet magic packet (value = 0/1). Same as "Wake for
network access" in System Settings.
     ring - wake on modem ring (value = 0/1)
     powernap - enable/disable Power Nap on supported machines (value = 0/1)
     proximitywake - On supported systems, this option controls system wake
     from sleep based on proximity of devices using same iCloud id. (value =
     0/1)
     autorestart - automatic restart on power loss (value = 0/1)
     lidwake - wake the machine when the laptop lid (or clamshell) is opened
(value = 0/1)
     acwake - wake the machine when power source (AC/battery) is changed
(value = 0/1)
     lessbright - slightly turn down display brightness when switching to this
     power source (value = 0/1)
     halfdim - display sleep will use an intermediate half-brightness state
     between full brightness and fully off (value = 0/1)
     sms - use Sudden Motion Sensor to park disk heads on sudden changes in G
     force (value = 0/1)
     hibernatemode - change hibernation mode. Please use caution. (value =
     integer)
     hibernatefile - change hibernation image file location. Image may only be
     located on the root volume. Please use caution. (value = path)
     ttyskeepawake - prevent idle system sleep when any tty (e.g. remote login
     session) is 'active'. A tty is 'inactive' only when its idle time exceeds
     the system sleep timer. (value = 0/1)
     networkoversleep - this setting affects how OS X networking presents
     shared network services during system sleep. This setting is not used by
     all platforms; changing its value is unsupported.
     destroyfvkeyonstandby - Destroy File Vault Key when going to standby
     mode. By default File vault keys are retained even when system goes to
     standby. If the keys are destroyed, user will be prompted to enter the
     password while coming out of standby mode.(value: 1 - Destroy, 0 -
     Retain)

GETTING
     -g (with no argument) will display the settings currently in use.
     -g live displays the settings currently in use.
     -g custom displays custom settings for all power sources.
     -g cap displays which power management features the machine supports.
     -g sched displays scheduled startup/wake and shutdown/sleep events.
     -g ups displays UPS emergency thresholds.
     -g ps / batt displays status of batteries and UPSs.
     -g pslog displays an ongoing log of power source (battery and UPS) state.
     -g rawlog displays an ongoing log of battery state as read directly from
     battery.
     -g therm shows thermal conditions that affect CPU speed. Not available on
     all platforms.
     -g thermlog shows a log of thermal notifications that affect CPU speed.
     Not available on all platforms.
     -g assertions displays a summary of power assertions. Assertions may
     prevent system sleep or display sleep. Available 10.6 and later.
     -g assertionslog shows a log of assertion creations and releases.
     Available 10.6 and later.
     -g sysload displays the "system load advisory" - a summary of system
     activity available from the IOGetSystemLoadAdvisory API. Available 10.6
     and later.
     -g sysloadlog displays an ongoing log of lives changes to the system load
     advisory. Available 10.6 and later.
     -g ac / adapter will display details about an attached AC power adapter.
     Only supported for MacBook and MacBook Pro.
     -g log displays a history of sleeps, wakes, and other power management
     events. This log is for admin & debugging purposes.
     -g uuid displays the currently active sleep/wake UUID; used within OS X
     to correlate sleep/wake activity within one sleep cycle.  history
     -g uuidlog displays the currently active sleep/wake UUID, and prints a
     new UUID as they're set by the system.
-g history is a debugging tool. Prints a timeline of system sleeplwake
UUIDs, when enabled with boot-arg io=0x3000000.
-g historydetailed Prints driver-level timings for a sleep/wake. Pass a
UUID as an argument.
-g powerstate [class names] Prints the current power states for I/O Kit
drivers. Caller may provide one or more I/O Kit class names (separated by
spaces) as an argument. If no classes are provided, it will print all
drivers' power states.
     -g powerstatelog [-i interval] [class names] Periodically prints the
     power state residency times for some drivers. Caller may provide one or
     more I/O Kit class names (separated by spaces). If no classes are
     provided, it will log the IOPower plane's root registry entry. Caller may
specify a polling interval, in seconds with -i <polling interval>;
otherwise it defaults to 5 seconds.
-g stats Prints the counts for number sleeps and wakes system has gone
thru since boot.
-g systemstate Prints the current power state of the system and available
capabilites.
-g everything Prints output from every argument under the GETTING header.
This is useful for quickly collecting all the output that pmset provides.
Available in 10.8.

SAFE SLEEP ARGUMENTS
hibernatemode supports values of 0, 3, or 25. Whether or not a
hibernation image gets written is also dependent on the values of standby
and autopoweroff

For example, on desktops that support standby a hibernation image will be
written after the specified standbydelay time. To disable hibernation
images completely, ensure hibernatemode standby and autopoweroff are all
set to 0.

hibernatemode = 0 by default on desktops. The system will not back memory
up to persistent storage. The system must wake from the contents of
memory; the system will lose context on power loss. This is,
historically, plain old sleep.

hibernatemode = 3 by default on portables. The system will store a copy
of memory to persistent storage (the disk), and will power memory during
sleep. The system will wake from memory, unless a power loss forces it to
restore from hibernate image.

hibernatemode = 25 is only settable via pmset. The system will store a
copy of memory to persistent storage (the disk), and will remove power to
memory. The system will restore from disk image. If you want
"hibernation" - slower sleeps, slower wakes, and better battery life, you
should use this setting.

Please note that hibernatefile may only point to a file located on the
root volume.

STANDBY ARGUMENTS
standby causes kernel power management to automatically hibernate a
machine after it has slept for a specified time period. This saves power
while asleep. This setting defaults to ON for supported hardware. The
setting standby will be visible in pmset -g if the feature is supported
on this machine.

standbydelayhigh and standbydelaylow specify the delay, in seconds,
before writing the hibernation image to disk and powering off memory for
Standby. standbydelayhigh is used when the remaining battery capacity is
above highstandbythreshold , and standbydelaylow is used when the
remaining battery capacity is below highstandbythreshold.

highstandbythreshold has a default value of 50 percent.

autopoweroff is enabled by default on supported platforms as an
implementation of Lot 6 to the European Energy-related Products
Directive. After sleeping for <autopoweroffdelay> seconds, the system
will write a hibernation image and go into a lower power chipset sleep.
Wakeups from this state will take longer than wakeups from regular sleep.

autopoweroffdelay specifies the delay, in seconds, before entering
autopoweroff mode.

UPS SPECIFIC ARGUMENTS
UPS-specific arguments are only valid following the -u option. UPS
settings also have an on/off value. Use a -1 argument instead of percent
or minutes to turn any of these settings off. If multiple halt conditions
are specified, the system will halt on the first condition that occurs in
a low power situation.

haltlevel - when draining UPS battery, battery level at which to trigger
an emergency shutdown (value in %)
haltafter - when draining UPS battery, trigger emergency shutdown after
this long running on UPS power (value in minutes, or 0 to disable)
haltremain - when draining UPS battery, trigger emergency shutdown when
this much time remaining on UPS power is estimated (value in minutes, or
0 to disable)

Note: None of these settings are observed on a system with support for an
internal battery, such as a laptop. UPS emergency shutdown settings are
for desktop and server only.

SCHEDULED EVENT ARGUMENTS
pmset allows you to schedule system sleep, shutdown, wakeup and/or power
on. "schedule" is for setting up one-time power events, and "repeat" is
for setting up daily/weekly power on and power off events. Note that you
may only have one pair of repeating events scheduled - a "power on" event
and a "power off" event. For sleep cycling applications, pmset can
schedule a "relative" wakeup or poweron to occur in seconds from the end
of system sleep/shutdown, but this event cannot be cancelled and is
inherently imprecise.

type - one of sleep, wake, poweron, shutdown, wakeorpoweron
date/time - "MM/dd/yy HH:mm:ss" (in 24 hour format; must be in quotes)
time - HH:mm:ss
weekdays - a subset of MTWRFSU ("M" and "MTWRF" are valid strings)
owner - a string describing the person or program who is scheduling this
one-time power event (optional)

POWER SOURCE ARGUMENTS
-g with a 'batt' or 'ps' argument will show the state of all attached
power sources.

-g with a 'pslog' or 'rawlog' argument is normally used for debugging,
such as isolating a problem with an aging battery.

OTHER ARGUMENTS
boot - tell the kernel that system boot is complete (normally LoginWindow
does this). May be useful to Darwin users.
touch - PM re-reads existing settings from disk.
noidle - pmset prevents idle sleep by creating a PM assertion to prevent
idle sleep(while running; hit ctrl-c to cancel). This argument is
deprecated in favor of caffeinate(8). Please use caffeinate(8) instead.
sleepnow - causes an immediate system sleep.
restoredefaults - Restores power management settings to their default
values.
displaysleepnow - causes display to go to sleep immediately.
resetdisplayambientparams - resets the ambient light parameters for
certain Apple displays.
dim - deprecated in 10.4 in favor of 'displaysleep'. 'dim' will continue
to work.
spindown - deprecated in 10.4 in favor of 'disksleep'. 'spindown' will
continue to work.

EXAMPLES
This command sets displaysleep to a 5 minute timer on battery power,
leaving other settings on battery power and other power sources
unperturbed.

pmset -b displaysleep 5

Sets displaysleep to 10, disksleep to 10, system sleep to 30, and turns
on WakeOnMagicPacket for ALL power sources (AC, Battery, and UPS) as
appropriate

pmset -a displaysleep 10 disksleep 10 sleep 30 womp 1

For a system with an attached and supported UPS, this instructs the
system to perform an emergency shutdown when UPS battery drains to below
40%.

pmset -u haltlevel 40

For a system with an attached and supported UPS, this instructs the
system to perform an emergency shutdown when UPS battery drains to below
25%, or when the UPS estimates it has less than 30 minutes remaining
runtime. The system shuts down as soon as either of these conditions is
met.

pmset -u haltlevel 25 haltremain 30

For a system with an attached and supported UPS, this instructs the
system to perform an emergency shutdown after 2 minutes of running on UPS
battery power.

pmset -u haltafter 2

Schedules the system to automatically wake from sleep on July 4, 2016, at
8PM.

pmset schedule wake "07/04/16 20:00:00"

Schedules a repeating shutdown to occur each day, Tuesday through
Saturday, at 11AM.

pmset repeat shutdown TWRFS 11:00:00

Schedules a repeating wake or power on event every tuesday at 12:00 noon,
and a repeating sleep event every night at 8:00 PM.

pmset repeat wakeorpoweron T 12:00:00 sleep MTWRFSU 20:00:00

Cancels all scheduled system sleep, shutdown, wake, and power on events.

pmset repeat cancel

Prints the power management settings in use by the system.

pmset -g

Prints a snapshot of battery/power source state at the moment.

pmset -g batt

If your system suddenly sleeps on battery power with 20-50% of capacity
remaining, leave this command running in a Terminal window. When you see
the problem and later power and wake the computer, you'll be able to
     detect sudden discontinuities (like a jump from 30% to 0%) indicative of
     an aging battery.

     pmset -g pslog

SEE ALSO
     caffeinate(8)

FILES
     All changes made through pmset are saved in a persistent preferences file
(per-system, not per-user) at
     /Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist

     Scheduled power on/off events are stored separately in
     /Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist

     pmset modifies the same file that System Settings modifies.

Darwin November 9, 2012 Darwin

|

[defaults]com.apple.PowerManagementを設定する

細かい設定はpmsetを利用するのがセオリー
[pmset]電源関連の設定
https://quicktimer.cocolog-nifty.com/icefloe/2022/03/post-d85d81.html
そのため
あくまでもサンプル程度で
設定ファイルは2つあります
/Library/Preferences/com.apple.PowerManagement.plist

/Library/Preferences/com.apple.PowerManagement.MacのハードウェアUUID.plist



#!/bin/bash


###UUIDを取得

#strUUID=`/usr/sbin/ioreg/system_profiler SPHardwareDataType | awk '/UUID/ { print $3; }'`

###UUIDを取得

strUUID=`/usr/sbin/ioreg -d2 -c IOPlatformExpertDevice | awk -F\" '/IOPlatformUUID/{print $(NF-1)}'`

echo ${strUUID}

#####項目をADDする

strCommandText="/usr/bin/sudo /usr/libexec/PlistBuddy -c \"Add :'SystemPowerSettings':'Update DarkWakeBG Setting' bool true\"  \"/Library/Preferences/com.apple.PowerManagement.plist\""

eval $strCommandText

#####設定する

strCommandText="/usr/bin/sudo /usr/libexec/PlistBuddy -c \"Set :'SystemPowerSettings':'Update DarkWakeBG Setting' bool true\"  \"/Library/Preferences/com.apple.PowerManagement.plist\""

eval $strCommandText

#####項目をADDする

strCommandText="/usr/bin/sudo /usr/libexec/PlistBuddy -c \"Add :'SystemPowerSettings':'Update DarkWakeBG Setting' bool true\"  \"/Library/Preferences/com.apple.PowerManagement.${strUUID}.plist\""

eval $strCommandText

#####設定する

strCommandText="/usr/bin/sudo /usr/libexec/PlistBuddy -c \"Set :'SystemPowerSettings':'Update DarkWakeBG Setting' bool true\"  \"/Library/Preferences/com.apple.PowerManagement.${strUUID}.plist\""

eval $strCommandText

#####設定確認する システム設定UUID

strCommandText="/usr/bin/defaults read /Library/Preferences/com.apple.PowerManagement.${strUUID}.plist"

eval $strCommandText

#####設定確認する システム設定

strCommandText="/usr/bin/defaults read /Library/Preferences/com.apple.PowerManagement"

eval $strCommandText



exit



|

[pmset]電源関連の設定

電源関連は機種によって内容が違います
また
『サーバー等スリープさせない』『定期的な再起動』
停電時の対応等個別の設定に留意が必要です


#!/bin/bash

#

#/usr/bin/sudo /usr/bin/pmset -b  -->バッテリー

#/usr/bin/sudo /usr/bin/pmset -c  -->AC電源

#/usr/bin/sudo /usr/bin/pmset -u  -->非常用電源

#

#

#

######################sudo チェック

theGID=`id -g`

theUID=`id -un`

theSudoUser=$SUDO_USER

theHOME="/Users/$theSudoUser"

######################sudo チェック

if [ "$theGID" -ne 0 ]

then echo ""

echo "sudoを利用して実行してください"

echo "sudo PmSetting.sh"

echo ""

exit 0

fi



##スケジュールを全て一度キャンセル

/usr/bin/sudo /usr/bin/pmset  schedule cancelall 

##設定をいったん保存

/usr/bin/sudo /usr/bin/pmset  touch


######スケジュール設定(自分用)

##スリープしている場合いったん起こす

/usr/bin/sudo /usr/bin/pmset -b  repeat wake MTWRFSU 23:50:00

/usr/bin/sudo /usr/bin/pmset -c  repeat wake MTWRFSU 23:50:00


##電源断設定のみ

/usr/bin/sudo /usr/bin/pmset -b  repeat shutdown FS 1:55:00

/usr/bin/sudo /usr/bin/pmset -c  repeat shutdown FS 1:55:00


/usr/bin/sudo /usr/bin/pmset -b  repeat shutdown MTWRU 23:55:00

/usr/bin/sudo /usr/bin/pmset -c  repeat shutdown MTWRU 23:55:00


##電源ON設定(自宅用のためコメントアウト)

##/usr/bin/sudo /usr/bin/pmset -b  repeat wakeorpoweron MTWRF 8:55:00

##/usr/bin/sudo /usr/bin/pmset -c  repeat wakeorpoweron MTWRF 8:55:00

##/usr/bin/sudo /usr/bin/pmset -b  repeat poweron MTWRF 8:55:00

##/usr/bin/sudo /usr/bin/pmset -c  repeat poweron MTWRF 8:55:00


##設定をいったん保存

/usr/bin/sudo /usr/bin/pmset  touch


###########################

#####モニタースリープ

/usr/bin/sudo /usr/bin/pmset -b  displaysleep 5

/usr/bin/sudo /usr/bin/pmset -c  displaysleep 10

#サーバーの場合はスリープさせない設定 =0

/usr/bin/sudo /usr/bin/pmset -u  displaysleep 1

#####ディスクスリープ

/usr/bin/sudo /usr/bin/pmset -b  disksleep 10

/usr/bin/sudo /usr/bin/pmset -c  disksleep 20

#サーバーの場合はスリープさせない設定 =0

/usr/bin/sudo /usr/bin/pmset -u  disksleep 5

#####システムスリープ

/usr/bin/sudo /usr/bin/pmset -c  sleep 30

/usr/bin/sudo /usr/bin/pmset -u  sleep 10

#サーバーの場合はスリープさせない設定 =0

/usr/bin/sudo /usr/bin/pmset -u  sleep 15

#####電源断の待ち時間

#/usr/bin/sudo /usr/bin/pmset -b  autopoweroffdelay 120

#/usr/bin/sudo /usr/bin/pmset -c  autopoweroffdelay 120

#/usr/bin/sudo /usr/bin/pmset -u  autopoweroffdelay 120

#####

#/usr/bin/sudo /usr/bin/pmset -b SleepServices 1

#/usr/bin/sudo /usr/bin/pmset -c SleepServices 0

#/usr/bin/sudo /usr/bin/pmset -u SleepServices 1

#####

#/usr/bin/sudo /usr/bin/pmset -b lessbright 1

#/usr/bin/sudo /usr/bin/pmset -c lessbright 0

#/usr/bin/sudo /usr/bin/pmset -u lessbright 1

#####

/usr/bin/sudo /usr/bin/pmset -b  lowpowermode 1

/usr/bin/sudo /usr/bin/pmset -c  lowpowermode 0

/usr/bin/sudo /usr/bin/pmset -u  lowpowermode 1

#####

/usr/bin/sudo /usr/bin/pmset -b  powernap 0

/usr/bin/sudo /usr/bin/pmset -c  powernap 0

/usr/bin/sudo /usr/bin/pmset -u  powernap 0

#####

/usr/bin/sudo /usr/bin/pmset -b  hibernatemode 3

/usr/bin/sudo /usr/bin/pmset -b  hibernatemode 3

/usr/bin/sudo /usr/bin/pmset -b  hibernatemode 3

#####

#/usr/bin/sudo /usr/bin/pmset -b  proximitywake 0

#/usr/bin/sudo /usr/bin/pmset -c  proximitywake 0

#/usr/bin/sudo /usr/bin/pmset -u  proximitywake 0

#####

#/usr/bin/sudo /usr/bin/pmset -b  ring 0

#/usr/bin/sudo /usr/bin/pmset -c  ring 0

#/usr/bin/sudo /usr/bin/pmset -u  ring 0

#####

#/usr/bin/sudo /usr/bin/pmset -b  autorestart 0

#/usr/bin/sudo /usr/bin/pmset -c  autorestart 0

#/usr/bin/sudo /usr/bin/pmset -u  autorestart 1

#####

#/usr/bin/sudo /usr/bin/pmset -b  lidwake 0

#/usr/bin/sudo /usr/bin/pmset -c  lidwake 0

#/usr/bin/sudo /usr/bin/pmset -u  lidwake 0

#####

#/usr/bin/sudo /usr/bin/pmset -b  acwake 0

#/usr/bin/sudo /usr/bin/pmset -c  acwake 0

#/usr/bin/sudo /usr/bin/pmset -u  acwake 0

#####

/usr/bin/sudo /usr/bin/pmset -b  womp 0

/usr/bin/sudo /usr/bin/pmset -c  womp 0

/usr/bin/sudo /usr/bin/pmset -u  womp 0

#####

#/usr/bin/sudo /usr/bin/pmset -b  networkoversleep 0

#/usr/bin/sudo /usr/bin/pmset -c  networkoversleep 0

#/usr/bin/sudo /usr/bin/pmset -u  networkoversleep 0

#####

/usr/bin/sudo /usr/bin/pmset -b  ttyskeepawake 1

/usr/bin/sudo /usr/bin/pmset -c  ttyskeepawake 1

/usr/bin/sudo /usr/bin/pmset -u  ttyskeepawake 1

#####

/usr/bin/sudo /usr/bin/pmset -b  tcpkeepalive 1

/usr/bin/sudo /usr/bin/pmset -c  tcpkeepalive 1

/usr/bin/sudo /usr/bin/pmset -u  tcpkeepalive 1

#####

/usr/bin/sudo /usr/bin/pmset -b  standby 0

/usr/bin/sudo /usr/bin/pmset -c  standby 1

/usr/bin/sudo /usr/bin/pmset -u  standby 0



##設定を保存

/usr/bin/sudo /usr/bin/pmset  touch


/usr/bin/sudo /usr/bin/pmset  -g 


exit


|

[pmset]バッテリーのシリアル番号を取得

バッテリーだけでなく、詳細情報を取得して保存します



#確認用

/usr/bin/pmset -g


#設定用

#バッテリー設定

/usr/bin/pmset -b 

#コンセント設定

/usr/bin/pmset -c 

#UPS非常用電源時

/usr/bin/pmset -u

#全部同じ設定  

/usr/bin/pmset -a 


/usr/bin/pmset  -g bc




#今の設定

/usr/bin/pmset -g live 

#対象機器で設定可能な値

/usr/bin/pmset -g cap

#displaysleep

#disksleep

#sleep

#womp

#standby

#powernap

#ttyskeepawake

#hibernatemode

#hibernatefile

#tcpkeepalive

#lowpowermode

#--> /usr/bin/pmset -c lowpowermode

#displays scheduled startup/wake and shutdown/sleep events.

/usr/bin/pmset -g sched

#

/usr/bin/pmset -g ps

#

#/usr/bin/pmset -g pslog

##CPUGPUから警告が出ていないか

/usr/bin/pmset -g therm

##熱系のログ

#/usr/bin/pmset  -g thermlog 

#

/usr/bin/pmset  -g assertions


##AC電源情報

/usr/bin/pmset  -g ac


/usr/bin/pmset -g history


/usr/bin/pmset -g historydetailed

##内部パワーステータス

/usr/bin/pmset -g powerstate


##/usr/bin/pmset -g  powerstatelog 


/usr/bin/pmset -g  getters


/usr/bin/pmset -g uuid 

##/usr/bin/pmset -g uuidlog

/usr/bin/pmset -g stats


/usr/bin/pmset -g systemstate


/bin/mkdir -pm 700 "$HOME/Documents/電源情報"


/usr/bin/pmset -g everything > $HOME/Documents/電源情報/everything.txt


/usr/bin/pmset -g ps -xml > $HOME/Documents/電源情報/pm.plist

/usr/bin/pmset -g batt -xml > $HOME/Documents/電源情報/batt.plist

/usr/bin/pmset -g accps -xml > $HOME/Documents/電源情報/accps.plist


/usr/bin/pmset -g batt  BatteryHealth


echo "バッテリーシリアル番号"


/usr/libexec/PlistBuddy -c "Print :'Hardware Serial Number'"  "$HOME/Documents/電源情報/batt.plist"



exit

|

[systemsetup]スリープ設定

/usr/sbin/systemsetupのスリープ関連の設定
バッテリー設定 電源設定等ある場合は個別設定が必要
ノートPC向きでは無いが、初期設定としては実行しても良いかも

#!/bin/bash


/usr/bin/sudo  /usr/sbin/systemsetup  -getsleep


####ディスク モニタ システム全部同じ値にする場合

/usr/bin/sudo  /usr/sbin/systemsetup  -setsleep 30


/usr/bin/sudo  /usr/sbin/systemsetup  -getcomputersleep


####システムスリープ

/usr/bin/sudo  /usr/sbin/systemsetup  -setcomputersleep  30


/usr/bin/sudo  /usr/sbin/systemsetup  -getharddisksleep


####ディスクスリープ

/usr/bin/sudo  /usr/sbin/systemsetup  -setharddisksleep  20


/usr/bin/sudo  /usr/sbin/systemsetup  -getdisplaysleep


####モニタースリープ

/usr/bin/sudo  /usr/sbin/systemsetup  -setdisplaysleep  10




|

[defaults]バッテリーのシリアル番号を取得する

defaultsコマンドで取得する場合は
先にハードウェアのUUIDを取得する必要があります

ダウンロード - e3838fe38299e38383e38386e383aae383bce381aee382b7e383aae382a2e383abe795aae58fb72.scpt.zip


#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7

use AppleScript version "2.8"
use framework "Foundation"
use scripting additions


set strCommandText to "ioreg -d2 -c IOPlatformExpertDevice | awk -F\\\" '/IOPlatformUUID/{print $(NF-1)}'" as text
set strUUID to do shell script strCommandText

##set strCommandText to "/usr/libexec/PlistBuddy -c \"Print :'BatteryWarn'::\" /Library/Preferences/com.apple.PowerManagement." & strUUID & ".plist"

set strCommandText to "defaults read /Library/Preferences/com.apple.PowerManagement." & strUUID & ".plist 'BatteryWarn'"
set strBatterySerial to do shell script (strCommandText)

set AppleScript's text item delimiters to "\r"
set listBatterySerial to item 2 of (every text item of strBatterySerial)
set AppleScript's text item delimiters to "="
set theBatterySerial to item 1 of (every text item of listBatterySerial)
set AppleScript's text item delimiters to " "
set listBatterySerial to text items of theBatterySerial
set AppleScript's text item delimiters to ""
set theBatterySerial to listBatterySerial as text



set aliasIconPath to POSIX file "/System/Library/Accounts/UI/GameCenterAccountsUIPlugin.bundle/Contents/Resources/AppIcon.icns" as alias
set theResponse to theBatterySerial as text
try
set objResponse to (display dialog "バッテリーのシリアル番号" with title "バッテリーのシリアル番号" default answer theResponse buttons {"OK", "キャンセル"} default button "OK" cancel button "キャンセル" with icon aliasIconPath giving up after 10 without hidden answer)
on error
log "エラーしました"
return
end try
if true is equal to (gave up of objResponse) then
return "時間切れですやりなおしてください"
end if
if "OK" is equal to (button returned of objResponse) then
set theResponse to (text returned of objResponse) as text
else
return "キャンセル"
end if

|

[pmset]バッテリーのシリアル番号を取得する

バッテリーのシリアル番号は
UI使う場合『システム情報』からの取得となります
_20220311_12_44_47


ダウンロード - e3838fe38299e38383e38386e383aae383bce381aee382b7e383aae382a2e383abe795aae58fb7.scpt.zip

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7

use AppleScript version "2.8"
use framework "Foundation"
use scripting additions



tell application "Finder"
##作成するフォルダ
set strDirName to "電源情報"
##ドキュメントフォルダ
set aliasDocumentsFolder to (path to documents folder from user domain) as alias
##すでにフォルダがあるか?チェック
set boolFolderChk to (exists of (folder strDirName of folder aliasDocumentsFolder)) as boolean
##フォルダが無い場合は作成する
if boolFolderChk is false then
##同名ファイルが無いか?チェック
set boolFolderChk to (exists of (file strDirName of folder aliasDocumentsFolder)) as boolean
##同名フォルダが無くて同名ファイルもない場合はフォルダを作る
if boolFolderChk is false then
##フォルダ作成本体
make new folder at aliasDocumentsFolder with properties {name:strDirName, comment:"このフォルダは削除しても大丈夫です", locked:false, label index:3}
else
log "同名ファイルがあるのでフォルダを作成出来ません"
return "同名ファイルがあるのでフォルダを作成出来ません"
end if
end if
##フォルダがある場合 作った場合はフォルダをパスにしておく
set aliasDistDir to (folder strDirName of aliasDocumentsFolder) as alias
end tell

##電源情報を作成してフォルダにする
set strDate to (do shell script "date +%Y%m%d")

do shell script "/usr/bin/pmset -g everything > $HOME/Documents/電源情報/" & strDate & "everything.txt"
do shell script "/usr/bin/pmset -g ps -xml > $HOME/Documents/電源情報/com.apple.PowerManagement.pm.plist"
do shell script "/usr/bin/pmset -g batt -xml > $HOME/Documents/電源情報/com.apple.PowerManagement.batt.plist"
do shell script "/usr/bin/pmset -g accps -xml > $HOME/Documents/電源情報/com.apple.PowerManagement.accps.plist"

set strCommandText to "/usr/libexec/PlistBuddy -c \"Print :'Hardware Serial Number'\" $HOME/Documents/電源情報/com.apple.PowerManagement.pm.plist"
set strBatterySerial to do shell script (strCommandText)

set aliasIconPath to POSIX file "/System/Library/Accounts/UI/GameCenterAccountsUIPlugin.bundle/Contents/Resources/AppIcon.icns" as alias
set theResponse to strBatterySerial as text
try
set objResponse to (display dialog "バッテリーのシリアル番号" with title "バッテリーのシリアル番号" default answer theResponse buttons {"OK", "キャンセル"} default button "OK" cancel button "キャンセル" with icon aliasIconPath giving up after 10 without hidden answer)
on error
log "エラーしました"
return
end try
if true is equal to (gave up of objResponse) then
return "時間切れですやりなおしてください"
end if
if "OK" is equal to (button returned of objResponse) then
set theResponse to (text returned of objResponse) as text
else
return "キャンセル"
end if


tell application "Finder"
make new Finder window to folder aliasDistDir
end tell

|

その他のカテゴリー

Acrobat Acrobat 2020 Acrobat AddOn Acrobat Annotation Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Manifest Acrobat Menu Acrobat Open Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat python Acrobat Reader Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat Watermark Acrobat Windows Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin Support Admin System Information Admin Tools Admin Users Admin Volumes Adobe Adobe FDKO Adobe RemoteUpdateManager Apple AppleScript AppleScript Accessibility AppleScript AppKit AppleScript Applications AppleScript AppStore AppleScript Archive AppleScript Attributes AppleScript Audio AppleScript Automator AppleScript AVAsset AppleScript AVconvert AppleScript AVFoundation AppleScript AVURLAsset AppleScript BackUp AppleScript Barcode AppleScript Bash AppleScript Basic AppleScript Basic Path AppleScript Bluetooth AppleScript BOX AppleScript Browser AppleScript Calendar AppleScript CD/DVD AppleScript Choose AppleScript Chrome AppleScript CIImage AppleScript CloudStorage AppleScript Color AppleScript com.apple.LaunchServices.OpenWith AppleScript Console AppleScript Contacts AppleScript CotEditor AppleScript CURL AppleScript current application AppleScript Date&Time AppleScript delimiters AppleScript Desktop AppleScript Device AppleScript Diff AppleScript Disk AppleScript do shell script AppleScript Dock AppleScript DropBox AppleScript Droplet AppleScript eMail AppleScript Encode % AppleScript Encode Decode AppleScript Encode UTF8 AppleScript Error AppleScript EXIFData AppleScript ffmpeg AppleScript File AppleScript Finder AppleScript Firefox AppleScript Folder AppleScript Fonts AppleScript GIF AppleScript Guide AppleScript HTML AppleScript HTML Entity AppleScript Icon AppleScript Illustrator AppleScript Image Events AppleScript Image2PDF AppleScript ImageOptim AppleScript iWork AppleScript Javascript AppleScript Jedit AppleScript Json AppleScript Label AppleScript Leading Zero AppleScript List AppleScript locationd AppleScript LRC AppleScript LSSharedFileList AppleScript m3u8 AppleScript Mail AppleScript MakePDF AppleScript Map AppleScript Math AppleScript Messages AppleScript Microsoft AppleScript Microsoft Edge AppleScript Microsoft Excel AppleScript Mouse AppleScript Movie AppleScript Music AppleScript NetWork AppleScript Notes AppleScript NSArray AppleScript NSArray Sort AppleScript NSBitmapImageRep AppleScript NSBundle AppleScript NSCFBoolean AppleScript NSCharacterSet AppleScript NSColor AppleScript NSColorList AppleScript NSData AppleScript NSDictionary AppleScript NSError AppleScript NSEvent AppleScript NSFileAttributes AppleScript NSFileManager AppleScript NSFileManager enumeratorAtURL AppleScript NSFont AppleScript NSFontManager AppleScript NSGraphicsContext AppleScript NSImage AppleScript NSIndex AppleScript NSKeyedArchiver AppleScript NSKeyedUnarchiver AppleScript NSLocale AppleScript NSMutableArray AppleScript NSMutableDictionary AppleScript NSMutableString AppleScript NSNotFound AppleScript NSNumber AppleScript NSOpenPanel AppleScript NSPasteboard AppleScript NSpoint AppleScript NSPredicate AppleScript NSPrintOperation AppleScript NSRange AppleScript NSRect AppleScript NSRegularExpression AppleScript NSRunningApplication AppleScript NSScreen AppleScript NSSize AppleScript NSString AppleScript NSStringCompareOptions AppleScript NSTask AppleScript NSTimeZone AppleScript NSURL AppleScript NSURL File AppleScript NSURLBookmark AppleScript NSURLComponents AppleScript NSURLResourceKey AppleScript NSURLSession AppleScript NSUserDefaults AppleScript NSUUID AppleScript NSView AppleScript NSWorkspace AppleScript Numbers AppleScript OAuth AppleScript ObjC AppleScript OneDrive AppleScript Osax AppleScript PDF AppleScript PDFAnnotation AppleScript PDFAnnotationWidget AppleScript PDFContext AppleScript PDFDisplayBox AppleScript PDFDocumentPermissions AppleScript PDFImageRep AppleScript PDFKit AppleScript PDFnUP AppleScript PDFOutline AppleScript Photoshop AppleScript Pictures AppleScript PostScript AppleScript prefPane AppleScript Preview AppleScript Python AppleScript QR AppleScript QR Decode AppleScript QuickLook AppleScript QuickTime AppleScript record AppleScript Regular Expression AppleScript Reminders AppleScript ReName AppleScript Repeat AppleScript RTF AppleScript Safari AppleScript SaveFile AppleScript ScreenCapture AppleScript ScreenSaver AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript Sound AppleScript Spotlight AppleScript SRT AppleScript StandardAdditions AppleScript stringByApplyingTransform AppleScript Swift AppleScript System Events AppleScript System Events Plist AppleScript System Settings AppleScript TemporaryItems AppleScript Terminal AppleScript Text AppleScript Text CSV AppleScript Text MD AppleScript Text TSV AppleScript TextEdit AppleScript Translate AppleScript Trash AppleScript Twitter AppleScript UI AppleScript Unit Conversion AppleScript UTType AppleScript valueForKeyPath AppleScript Video AppleScript VisionKit AppleScript Visual Studio Code AppleScript webarchive AppleScript webp AppleScript Wifi AppleScript XML AppleScript XML EPUB AppleScript XML OPML AppleScript XML Plist AppleScript XML RSS AppleScript XML savedSearch AppleScript XML SVG AppleScript XML TTML AppleScript XML webloc AppleScript XMP AppleScript YouTube Applications CityCode github iPhone List lsappinfo Memo Music perl PlistBuddy pluginkit postalcode ReadMe SF Symbols character id SF Symbols Entity sips Skype Slack sqlite TCC Tools Typography Video Wacom Windows zoom