Настройка экранной заставки

param($computer="localhost", $a, $v, $help)

function funline ([ref]$strIN)
{ 
 $num = $strIN.value.length
 for($i=1 ; $i -le $num ; $i++)
  { $funline += "=" }
    $strIN.value = "$($strIN.value)`n" + $funline
}

function funHelp()
{
$helpText=@"
DESCRIPTION:
NAME: ConfigureScreenSaver.ps1 
Configures screen saver settings on a local or remote machine.

PARAMETERS: 
-computer Specifies the name of the computer upon which to run the script
-a(ction) Action to perform < q(uery), ex(ecutable), at(active),
          se(cure), to(time out) >
-v(alue)  Value for above action (does not apply to query)
-help     prints help file

SYNTAX:
ConfigureScreenSaver.ps1 -computer MunichServer -a ex -v bubbles.scr

Configures screen saver on a computer named MunichServer
The screen saver executable is bubbles.scr

ConfigureScreenSaver.ps1  -a se -v 1

Configures secure screen saver on local computer
The screen saver is the one already configured

ConfigureScreenSaver.ps1  -a at -v 1

Configures screen saver on local computer to be active
The screen saver is the one already configured

ConfigureScreenSaver.ps1  -a to -v 300

Configures screen saver time out value on local computer to
5 minutes. The screen saver is the one already configured

ConfigureScreenSaver.ps1 -help ?

Displays the help topic for the script

"@
$helpText
exit
}

function funeval ($strRTN)
{ 
 if($strRTN.returnvalue -eq 0)
  { Write-Host -ForegroundColor green "success" }
 ELSE
  { Write-Host -ForegroundColor red "$($strRTN.returnvalue) error" }
}
if($help){ "Obtaining help ..." ; funhelp }

$hkcu = 2147483649  # numeric representation of HKCU from WMI SDK
$strKey = "Control Panel\Desktop"
$strExe = "SCRNSAVE.EXE", "ScreenSaver Executable"
$blnAct = "ScreenSaveActive", "ScreenSaver Active"
$blnSec = "ScreenSaverIsSecure", "ScreenSaver Secure"
$intTim = "ScreenSaveTimeOut", "ScreenSaver TimeOut"
$stdReg =  [wmiclass]"\\$computer\root\default:stdregprov"


switch($a)
{
 "q" { 
      $aryValue = $strExe, $blnAct, $blnSec, $intTim
      foreach($strValue in $aryValue)
      {
       $strRTN = $stdReg.GetStringValue($hkcu,$strKey,$strValue[0])
        if($strRTN.returnvalue -eq 0)
         { 
          $strOUT="$($strRTN.sValue)" 
          funline([ref]$strOut)
         }
        ELSE
         { 
          $strOut="An error $($strRTN.returnvalue) occurred"
          funline([ref]$strOut)
         }
         Write-Host -foregroundcolor green "$($strValue[1]) on $computer"
         Write-Host -ForegroundColor cyan $strout
      }
	}
 "ex" {
       $v = "C:\Windows\System32\$v"
       $strRTN = $stdReg.SetStringValue($hkcu,$strKey,$strExe[0],$v)
	   "Setting $($strExe[1]) ... "
	   funeval($strRTN)
	  }   
 "at" {
       $strRTN = $stdReg.SetStringValue($hkcu,$strKey,$blnAct[0],$v)
	   "Setting $($blnAct[1]) ... "
	   funeval($strRTN)
      }
 "se" {
       $strRTN = $stdReg.SetStringValue($hkcu,$strKey,$blnSec[0],$v)
	   "Setting $($blnSec[1]) ... "
	   funeval($strRTN)
      }
 "to" {
       $strRTN = $stdReg.SetStringValue($hkcu,$strKey,$intTim[0],$v)
	   "Setting $($intTim[1]) ... "
	   funeval($strRTN)
      }
}

0
Голосов пока нет

Оставить комментарий