Hide Powershell Commands Out Put and popup Windows

Hi there

Is there a way to hide all the commands out puts and the popup windows of my script to format a USB disk.
I have used ( | Out-Null ) it help’t a little but it didn’t hide everything

Best regards to you all

This is my script


Get Admin Rights

New-Item ‘HKCU:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell’ -Force | New-ItemProperty -Name ExecutionPolicy -Value Unrestricted -Force | Out-Null

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] “Administrator”)) { Start-Process powershell.exe “-NoProfile -ExecutionPolicy Bypass -File `”$PSCommandPath`"" -Verb RunAs; exit } | Out-Null

Run Secrit

$USBDriveNmbr = GET-WMIOBJECT win32_diskdrive | Where { $_.InterfaceType –eq ‘USB’ } | Select -Expand DeviceID
$USBDriveNmbr = $USBDriveNmbr.Trim("\.\PHYSICALDRIVE")
$USBDriveLtr1 = (Get-WmiObject Win32_Volume -Filter “DriveType=‘2’”).DriveLetter.Substring(0,1)
$USBDriveLtr2 = Get-WmiObject Win32_Volume -Filter “DriveType=‘2’”|select -expand driveletter

Get-Disk | Out-Null

Clear-Disk $USBDriveNmbr -RemoveData -Confirm:$False | Out-Null

New-Partition -DiskNumber $USBDriveNmbr –UseMaximumSize -IsActive:$true -AssignDriveLetter | Out-Null

Format-Volume -DriveLetter $USBDriveLtr1 -FileSystem NTFS -NewFileSystemLabel WinSetup | Out-Null

Bootsect.exe /NT60 $USBDriveLtr2 | Out-Null


Hi Skl,

You can achieve this two ways, you can either input some arguments on the program properties (target)

 powershell.exe yourpsscript.ps1 -windowstyle hidden 

Or you can run it from a batch file, with those arguments inside,

 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -WindowStyle Hidden -file "yourpsscript.ps1" 

Either should work, there are possibly ways to incorperate it into the PS Script itself, but i imagine it will pop up ever so briefly if this is the case.

Hi Chris

i’m grateful for your answer, but what i want is to have it inside the same script.

thank you again Chris

This should help,

Put it at the top of your Script, but you will briefly (a second) see a window appear, it’s probably the closest you are going to get to a hidden window.

Add-Type -Name win -MemberDefinition '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);' -Namespace native
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle,0)

It didn’t work, i get error message


At C:\Users\Admin\AppData\Local\Temp\1\451F.ps1:8 char:276

  • … Policy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit } | Out-Nul …
  •                                                             ~

An empty pipe element is not allowed.
+ CategoryInfo : ParserError: (:slight_smile: [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement


Hi Skl,

That looks like an error in the code you have already defined, as above? the line

 if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit } | Out-Null

Does that run without errors before the snipped is inserted? Try removing the Out-Null and the pipe.

Now i didn’t get error message and i didn’t get windows popups, but the script didn’t work correctly, it deleted the partition and it didn’t create the new partition.

so what i have now a usb disk without partition.

hi Chris

Before adding your script everything worked well, just a lots of popups and you could see a lot of codes.

and i thought if theirs is away to hide it all.

thank you very much for your help.