Powershell Script To Start A Random Screen Saver

I have decided to start posting my PoSH scripts as I finish them.
I have just made one that seems to be unique. I wrote a script that will start a screen saver. It can either try to detect the current users settings from the registry, or it can search for any available screen saver, apply filters, and execute one randomly.
The script itself doesn’t do much work, but with a little work on the user behalf it could help in creating a screen saver rotation application.

file: Start-ScreenSaver.ps1

# Start-ScreenSaver
# Version: 1.1

param ([String]$Include, [String]$Exclude)

#Avoid execution if a screen saver is already running
if (get-Process *.scr) {

#If filters are not provided default to user preference.
if ( -not $Include -and -not $Exclude) {
 [String]$DefaultScreenSaver = (Get-ItemProperty ‘HKCU:Control PanelDesktop’).{SCRNSAVE.EXE}
 if ($DefaultScreenSaver) {
  & $DefaultScreenSaver

#Get a list of available screen savers and filter them.
[System.Management.Automation.ApplicationInfo[]]$ScreenSaverCommands = Get-Command *.scr -CommandType Application |
 Where-Object {
   if ($Include) { $_.Name -like $Include -or $_.Name -eq $Include + ‘.scr’ }
   else {$true}
  ) -and
   if ($Exclude) { -not ( $_.Name -like $Exclude ) }
   else {$true}

#Randomly choose a screen saver and execute it.
if ($ScreenSaverCommands) {
 & $(($ScreenSaverCommands[$(New-Object System.Random).Next($ScreenSaverCommands.Length)]).Definition)


~ by lunaticexperimentalist on December 7, 2006.

One Response to “Powershell Script To Start A Random Screen Saver”

  1. Very cool.  You taught me something today! 
    Jeffrey Snover [MSFT]Windows PowerShell/MMC ArchitectVisit the Windows PowerShell Team blog at:    http://blogs.msdn.com/PowerShellVisit the Windows PowerShell ScriptCenter at:  http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: