Skip to content

Instantly share code, notes, and snippets.

@jamesfreeman959
Last active November 1, 2025 08:58
Show Gist options
  • Select an option

  • Save jamesfreeman959/231b068c3d1ed6557675f21c0e346a9c to your computer and use it in GitHub Desktop.

Select an option

Save jamesfreeman959/231b068c3d1ed6557675f21c0e346a9c to your computer and use it in GitHub Desktop.
A very simple PowerShell script to keep a Windows PC awake and make lync think the user is active on the keyboard
# Useful references:
#
# https://superuser.com/questions/992511/emulate-a-keyboard-button-via-the-command-line
# https://ss64.com/vb/sendkeys.html
# https://social.technet.microsoft.com/Forums/windowsserver/en-US/96b339e2-e9da-4802-a66d-be619aeb21ac/execute-function-one-time-in-every-10-mins-in-windows-powershell?forum=winserverpowershell
# https://learn-powershell.net/2013/02/08/powershell-and-events-object-events/
#
# Future enhancements - use events rather than an infinite loop
$wsh = New-Object -ComObject WScript.Shell
while (1) {
# Send Shift+F15 - this is the least intrusive key combination I can think of and is also used as default by:
# http://www.zhornsoftware.co.uk/caffeine/
# Unfortunately the above triggers a malware alert on Sophos so I needed to find a native solution - hence this script...
$wsh.SendKeys('+{F15}')
Start-Sleep -seconds 59
}
@MagusXL
Copy link

MagusXL commented Sep 21, 2025

I present to you the ultimate oneliner, StealthCoffee:

  • Creates a hidden window to run the new process
  • Autoexits the original window we paste this into
  • Stops running at 18:15 +/- 5 localtime of the same day
  • Sends scroll lock twice (random ms range 103-153) in random intervals between 33 seconds and 183 seconds

Repo to open in incognito and copy the oneliner from: StealthCoffee

Here is the snippet also, you can just copy paste it in a Powershell terminal:


Start-Process powershell -WindowStyle Hidden -ArgumentList '-Command "$wshell = New-Object -ComObject wscript.shell; $end = (Get-Date).Date.AddHours(18).AddMinutes(15).AddMinutes((Get-Random -Minimum -5 -Maximum 5)); while((Get-Date) -lt $end){$wshell.SendKeys(''{SCROLLLOCK}'' ); Start-Sleep -Milliseconds (Get-Random -Minimum 103 -Maximum 153); $wshell.SendKeys(''{SCROLLLOCK}''); Start-Sleep -Seconds (Get-Random -Minimum 33 -Maximum 183)}"'; exit


ProTip: Don't save it as a file locally. I don't have this script anywhere on my local machine to avoid any detection, i just open an incognito window in Google Chrome, navigate to the public repository i listed above and just copy paste the raw text from the file in a Powershell terminal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment