Bypassing Group Policy to set wallpaper with powershell.

in powershell •  8 years ago  (edited)

basic-powershell-commands-intro-670x335.png

  Some Group Policies will force you to use a specific wallpaper. You can use this script to change your wallpaper.

You first want to start by creating a file named wp.ps1 with you favorite text editor.

wp.ps1

-
                               
Add-Type @"
using System;
using System.Runtime.InteropServices;
using Microsoft.Win32;
namespace Wallpaper
{
   public enum Style : int
   {
       Tile, Center, Stretch, NoChange
   }
   public class Setter {
      public const int SetDesktopWallpaper = 20;
      public const int UpdateIniFile = 0x01;
      public const int SendWinIniChange = 0x02;
      [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
      private static extern int SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni);
      public static void SetWallpaper ( string path, Wallpaper.Style style ) {
         SystemParametersInfo( SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange );
         RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
         switch( style )
         {
            case Style.Stretch :
               key.SetValue(@"WallpaperStyle", "2") ; 
               key.SetValue(@"TileWallpaper", "0") ;
               break;
            case Style.Center :
               key.SetValue(@"WallpaperStyle", "1") ; 
               key.SetValue(@"TileWallpaper", "0") ; 
               break;
            case Style.Tile :
               key.SetValue(@"WallpaperStyle", "1") ; 
               key.SetValue(@"TileWallpaper", "1") ;
               break;
            case Style.NoChange :
               break;
         }
         key.Close();
      }
   }
}
"@

[Wallpaper.Setter]::SetWallpaper( 'C:\Users\ %username%\Documents\start\Penguins.jpg', 0 )


Be sure to change "C:\Users\ %username%\Documents\start\Penguins.jpg" to the location of your image


Now that you have the powershell script ready. You can create a ".bat" file to run it.


start.bat


  • powershell.exe -executionpolicy remotesigned -File C:\Users\ %username%\Documents\start\wp.ps1

    Be sure to place everything in the correct file locations and these scripts should run properly.

    *NOTE* This will only change your wallpaper while you are logged in. If you want your wallpaper to be changed everytime you login you need to create a shortcut and add it to your startup folder.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!