Classes/PowerManager.ps1
|
class PowerManager { [LibraryContext]$Context [int]$DefaultMonitorTimeoutAc [int]$DefaultMonitorTimeoutDc [int]$DefaultDiskTimeoutAc [int]$DefaultDiskTimeoutDc [int]$DefaultStandbyTimeoutAc [int]$DefaultStandbyTimeoutDc [int]$DefaultHibernateTimeoutAc [int]$DefaultHibernateTimeoutDc PowerManager([LibraryContext]$context) { $this.Context = $context $this.DefaultMonitorTimeoutAc = 90 $this.DefaultMonitorTimeoutDc = 45 $this.DefaultDiskTimeoutAc = 30 $this.DefaultDiskTimeoutDc = 20 $this.DefaultStandbyTimeoutAc = 100 $this.DefaultStandbyTimeoutDc = 55 $this.DefaultHibernateTimeoutAc = 120 $this.DefaultHibernateTimeoutDc = 90 } # Power settings setter [void]SetPowerSettings ( [int]$MonitorTimeoutAc, [int]$MonitorTimeoutDc, [int]$DiskTimeoutAc, [int]$DiskTimeoutDc, [int]$StandbyTimeoutAc, [int]$StandbyTimeoutDc, [int]$HibernateTimeoutAc, [int]$HibernateTimeoutDc ) { # set defaults if (-not $MonitorTimeoutAc) { $MonitorTimeoutAc = $this.DefaultMonitorTimeoutAc } if (-not $MonitorTimeoutDc) { $MonitorTimeoutDc = $this.DefaultMonitorTimeoutDc } if (-not $DiskTimeoutAc) { $DiskTimeoutAc = $this.DefaultDiskTimeoutAc } if (-not $DiskTimeoutDc) { $DiskTimeoutDc = $this.DefaultDiskTimeoutDc } if (-not $StandbyTimeoutAc) { $StandbyTimeoutAc = $this.DefaultStandbyTimeoutAc } if (-not $StandbyTimeoutDc) { $StandbyTimeoutDc = $this.DefaultStandbyTimeoutDc } if (-not $HibernateTimeoutAc) { $HibernateTimeoutAc = $this.DefaultHibernateTimeoutAc } if (-not $HibernateTimeoutDc) { $HibernateTimeoutDc = $this.DefaultHibernateTimeoutDc } $settings = @{ "monitor-timeout-ac" = $MonitorTimeoutAc "monitor-timeout-dc" = $MonitorTimeoutDc "disk-timeout-ac" = $DiskTimeoutAc "disk-timeout-dc" = $DiskTimeoutDc "standby-timeout-ac" = $StandbyTimeoutAc "standby-timeout-dc" = $StandbyTimeoutDc "hibernate-timeout-ac" = $HibernateTimeoutAc "hibernate-timeout-dc" = $HibernateTimeoutDc } foreach ($setting in $settings.GetEnumerator()) { if ($setting.Value -ne $null) { $this.Context.LogManager.Log("Setting $($setting.Key) to $($setting.Value) minutes") powercfg /change $setting.Key $setting.Value } } } } |