A Simple PowerShell module to hide the idle mouse cursor automatically, it's binary free 🍻!
Notice that the installation procedure and cmdlets shown below are required to run as Administrator privileges.
Since low integrity applications are unable to access processes with high integrity privileges, normally the cursor of a window owned by processes with high privileges context cannot be hidden when running Fadeout under a restricted user.
Users could start Fadeout by running a new PowerShell as Administrator to elevate the privileges everytime, but that's not an elegant choice.
Fadeout solves this problem by registering a new scheduled task to activate Fadeout that runs with Administrator privileges at logon automatically, thus Administrator privileges must be granted to Fadeout Installer in the installation procedure and the mangement cmdlets.
$InstallPath = "C:\Fadeout" # change the install path
iex '$response = Invoke-WebRequest -Uri "https://raw.githubusercontent.com/soxfmr/Fadeout/master/Fadeout/FadeoutInstaller.psm1"; $moduleBlock = [ScriptBlock]::Create($response.Content); New-Module -ScriptBlock $moduleBlock | Import-Module; Install-Fadeout -InstallPath $InstallPath'If your internal network requires proxy to access the Internet, you could specify the proxy address argument being used during the installation:
$InstallPath = "C:\Fadeout" # change the install path
$Proxy = "http://127.0.0.1:1080" # Only HTTP / HTTPS proxy is supported
iex '$response = Invoke-WebRequest -Uri "https://raw.githubusercontent.com/soxfmr/Fadeout/master/Fadeout/FadeoutInstaller.psm1" -Proxy $Proxy; $moduleBlock = [ScriptBlock]::Create($response.Content); New-Module -ScriptBlock $moduleBlock | Import-Module; Install-Fadeout -InstallPath $InstallPath -HttpProxy $Proxy'Or provide a proxy credential if authentication is needed:
$InstallPath = "C:\Fadeout" # change the install path
$Proxy = "http://127.0.0.1:1080" # Only HTTP / HTTPS proxy is supported
$ProxyCred = New-Object System.Management.Automation.PSCredential -ArgumentList "proxy-user", (ConvertTo-SecureString "p@ssw0rd" -AsPlainText -Force)
IEX '$response = Invoke-WebRequest -Uri "https://raw.githubusercontent.com/soxfmr/Fadeout/master/Fadeout/FadeoutInstaller.psm1" -Proxy $Proxy -ProxyCredential $ProxyCred; $moduleBlock = [ScriptBlock]::Create($response.Content); New-Module -ScriptBlock $moduleBlock | Import-Module; Install-Fadeout -InstallPath $InstallPath -HttpProxy -ProxyCredential $ProxyCred'cd C:\
git clone https://github.com/soxfmr/Fadeout Fadeout
cd Fadeout
Import-Module .\Fadeout\Fadeout.psd1 -Force
Install-FadeoutLocal -InstallPath $PWD.PathStarting Fadeout to hide the idle cursor:
Start-FadeoutStopping Fadeout:
Stop-FadeoutUninstall-Fadeout -InstallPath C:\FadeoutRemove Fadeout in non-interactive mode, keep in mind that the uninstallation procedure will check out Fadeout.Lock file inside the install path to avoid incautious removal of other system of user files. In case the lock file doesn't exist, A dialogue will still be shown up even -Confirm flag is presented:
Uninstall-Fadeout -InstallPath C:\Fadeout -Confirm- Recover the cursor position before users stop Fadeout
- Compactible checks for ExecutionTimeLimit when registering the scheduled task
- More fine-grained control of FadeoutManagement
- Hide the flash window while starting Fadeout
- Add a new flag to support full non-interactive mode in the uninstallation procedure