How to switch off display with PowerShell

Define new static type Utilities.Display

# Turn display off by calling WindowsAPI.
 
# SendMessage(HWND_BROADCAST,WM_SYSCOMMAND, SC_MONITORPOWER, POWER_OFF)
# HWND_BROADCAST  0xffff
# WM_SYSCOMMAND   0x0112
# SC_MONITORPOWER 0xf170
# POWER_OFF       0x0002
 
Add-Type -TypeDefinition '
using System;
using System.Runtime.InteropServices;
 
namespace Utilities {
   public static class Display
   {
      [DllImport("user32.dll", CharSet = CharSet.Auto)]
      private static extern IntPtr SendMessage(
         IntPtr hWnd,
         UInt32 Msg,
         IntPtr wParam,
         IntPtr lParam
      );
 
      public static void PowerOff ()
      {
         SendMessage(
            (IntPtr)0xffff, // HWND_BROADCAST
            0x0112,         // WM_SYSCOMMAND
            (IntPtr)0xf170, // SC_MONITORPOWER
            (IntPtr)0x0002  // POWER_OFF
         );
      }
   }
}
'

Run
[Utilities.Display]::PowerOff()

or via func

function Switch-DisplayOff
{
[Utilities.Display]::PowerOff()
}

©2013 Jakub Jareš

Transliterate files and folders on Windows PC

этот Powershell скрипт позволяет автоматически переименовать файлы и папки содержащие юникод символы в их ANSI-синонимы (допустим ?, ?, ?, ?, ? станут e, a, c, u, u), Adi?s problemas de aplicaci?n! Continue reading Transliterate files and folders on Windows PC

Save logged user current Windows connections (VPN, Dialup, etc.)

сохранить Windows RAS-подключения в powershell: @("${env:PROGRAMDATA}\Microsoft\Network\Connections", "${env:USERPROFILE}\AppData\Roaming\Microsoft\Network\Connections") | ForEach-Object { Copy-Item -Force -Recurse -Path $_ -Destination $_.Replace(${env:SystemDrive}, 'c:\Backup\PBK') -ErrorAction "SilentlyContinue" | Out-Null }