Jump to navigation Jump to search


PowerShell Commands

Windows Powershell Commands & Examples - All Windows Versions

Here are a bunch of Powershell commands that work in most, if not all, versions of Windows. Of course, the newer the version of Windows, the more command there are available, and the way they are used sometimes also has changed. This is where the Windows built-in "Get-Help" commandlet comes in handy. It is similar to the built-in "man",(short for "MANUAL"), as it's available via the command line for most commands.

Windows Version On the topic of what Powershell commands are available on which versions of Windows, this first section goes over the different methods of finding out exactaly which version of Windows you are dealing with.

  • Get-ComputerInfo
    • This get's the Windows version as seen by HAL, the Hardware Abstraction Layer:
PS C:\Users\jamie.DAWGLAND> Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer

WindowsProductName             WindowsVersion OsHardwareAbstractionLayer
------------------             -------------- --------------------------
Windows Server 2022 Datacenter 2009           10.0.20348.558

PS C:\Users\jamie.DAWGLAND>

  • Get-ItemProperty
    • This command get's the value of the current version in the Windows Registry:
PS C:\Users\jamie.DAWGLAND> (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId
PS C:\Users\jamie.DAWGLAND>

  • systeminfo
    • The "systeminfo" command retrieves a ton of information about the OS and hardward. In this example, I use the "findstr" command to pipe the output of the systeminfo command into findstr to only retreive lines that contain the string "OS", as seen here:
PS C:\Users\jamie.DAWGLAND> systeminfo | findstr OS       
OS Name:                   Microsoft Windows Server 2022 Datacenter
OS Version:                10.0.20348 N/A Build 20348
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Primary Domain Controller
OS Build Type:             Multiprocessor Free
BIOS Version:              VMware, Inc. VMW201.00V.20192059.B64.2207280713, 7/28/2022
PS C:\Users\jamie.DAWGLAND>

  • [System.Environment]::OSVersion.Version
    • Pull the Windows version from the system's environtment variables:
PS C:\Users\jamie.DAWGLAND> [System.Environment]::OSVersion.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      20348  0

PS C:\Users\jamie.DAWGLAND>

  • Get-ComputerInfo -Property Windows*
    • Using the * wild-card to grab the actually pertinent information with one command:
PS C:\Users\jamie.DAWGLAND> Get-ComputerInfo -Property Windows*

WindowsBuildLabEx              : 20348.1.amd64fre.fe_release.210507-1500        
WindowsCurrentVersion          : 6.3
WindowsEditionId               : ServerDatacenter
WindowsInstallationType        : Server
WindowsInstallDateFromRegistry : 1/19/2023 1:14:37 AM
WindowsProductId               : 00454-60000-00001-AA331
WindowsProductName             : Windows Server 2022 Datacenter
WindowsRegisteredOrganization  :
WindowsRegisteredOwner         : Windows User
WindowsSystemRoot              : C:\Windows
WindowsVersion                 : 2009

PS C:\Users\jamie.DAWGLAND>

  • (Get-CimInstance Win32_OperatingSystem).version
    • Last, but not least:
PS C:\Users\jamie.DAWGLAND> (Get-CimInstance Win32_OperatingSystem).version
PS C:\Users\jamie.DAWGLAND>

Windows Server - Specific

This one-liner will give you the EXACT version of Windows currently running:

(Get-WmiObject -class Win32_OperatingSystem).Caption

Query Detailed System Information - Here is an example of how to obtain detailed system information about the server you are currently working on:

SConfig						Start Server Configuration text-mode command-line tool for Server Core without GUI
Get-History					Gets history of current session
(Get-PSReadlineOption).HistorySavePath		This gives you the path where all of the history is saved.
cat (Get-PSReadlineOption).HistorySavePath	Spit out all history!
cat (Get-PSReadlineOption).HistorySavePath | select -Last 10 --> get the last 10 lines
Get-Content (Get-PSReadlineOption).HistorySavePath > C:\PowerShellHistory.txt  --> Copy all history to file
notepad (Get-PSReadlineOption).HistorySavePath	Open all history in Notepad GUI
Select-String "<search pattern>" (Get-PSReadlineOption).HistorySavePath  --> Search All History
		Same as above but without the details/line numbers/etc:
Get-Content (Get-PSReadlineOption).HistorySavePath | Select-String "<search pattern>" 

Basic Command:
cat (Get-PSReadlineOption).HistorySavePath

SSH Server & Client Setup on Windows Using PowerShell commands:
From URL:

Add-WindowsCapability -Online -Name OpenSSH.ServerJamie Rubinstein | | 19:07, 8 May 2023 (UTC)
Add-WindowsCapability -Online -Name OpenSSH.ClientJamie Rubinstein | | 19:07, 8 May 2023 (UTC)

If you’re intending to use key based, rather than password based, authentication, you should also run the following command on the server to install an OpenSSH related PowerShell module that includes tools to help you configure that functionality:

Install-Module -Force OpenSSHUtils -Scope AllUsers

To install NANO text editor, as per URL this is based on (I prefer the VI/VIM text editor, which is included with the GitHub command-line client, which also provides basic BASH shell functionality and tools and support for the built-in Windows OpenSSH Server & Clients!

Other Miscellaneous Commands:

mstsc.exe Start MS Remote Desktop Client (RDP) sysdm.cpl Start Rename Windows Hostname & Join Domain/Workgroup & Device Manager & RDP Enable. appwiz.cpl Start Add/Remove Programs control netconnections Open and edit network connections control update Start Windows Updates The BIG List of Windows Commands

Windows Server LICENSE MANAGER Commands:

Check Activation Status slmgr /xpr View Current License Info slmgr /dli View Detailed License Info slmgr /dlv Reset Activation Timers slmgr /rearm Remove Windows Product Key slmgr /cpky Activate Windows Online slmgr /ato Change Windows Product Key slmgr /ipk 12345-12345-12345-12345-1234 Change Remote Product Key slmgr /ipk Win10Vm10 jamie MyPasswd 12345-12345-12345-12345-12345 Deactivate Windows slmgr /upk DETAILED SLMGR USAGE WITH ALL AVAILABLE SWITCHES & OPTIONS: slmgr [MachineName [username [password]]] [option] Slmgr Command Options Item Explanation MachineName The machine to administer. Defaults to the local machine if omitted. username The username of an administrator account on the remote machine. password The password for username. /ato Activate Windows license and product key against Microsoft's server. /atp Confirmation_ID Activate the product with a user-provided Confirmation_ID. /cdns Disable DNS publishing by the KMS host. /ckhc Disable KMS host caching. /ckms Clear the name of KMS server used to default and port to default. /cpky Delete the Windows product key from Windows Registry. /cpri Set the KMS priority to low. /dli Display the current license information with activation status and partial product key. /dlv Display additional license information. Similar to /dli but more detailed. /dti Display Installation ID for offline activation. /ipk key Change the Windows product key. Replaces the current product key if present. /ilc file Install a license file. /rilc Reinstall system license files. /rearm Reset the evaluation period/licensing status and activation state of the computer. Use /rearm-app to specify an app, or /rearm-sku for a specific sku. /skms Set the Volume Licensing KMS server and/or the port used for KMS activation. /skhc Enable KMS host caching (enabled by default). This blocks the use of DNS priority and weight after the initial discovery of a working KMS host. /sai interval Sets the interval in minutes for unactivated clients to attempt KMS connection. /spri Set the KMS priority to normal (default). /sprt port Set the port on which the KMS host listens for client activation requests (default TCP port is 1688). /sdns Enable DNS publishing by the KMS host (default). /upk Uninstall the currently installed Windows product key and return the license status back to a trial state. /xpr Show the expiry date of the current license or indicate whether activation is permanent. The MachineName option can't be used across platforms. For example, you can't manage Windows activation on a Windows 7 computer from a Windows Vista computer. Slmgr Uses Software Licensing Management Tool (slmgr) is a VBS file in Windows against which you can run commands to perform advanced Windows product activation tasks. Slmgr.vbs is used only for the Windows operating system. Ospp.vbs manages volume licensing for Microsoft Office products.

MSC - Microsoft Management Console Commands

* adsiedit.msc * azman.msc * certlm.msc * certmgr.msc * certsrv.msc * certtmpl.msc * comexp.msc * compmgmt.msc * devmgmt.msc * DevModeRunAsUserConfig.msc * dfsmgmt.msc * diskmgmt.msc * dnsmgmt.msc * domain.msc * dsa.msc * dssite.msc * eventvwr.msc * fsmgmt.msc * fsrm.msc * gpedit.msc * gpmc.msc * gpme.msc * gptedit.msc * lsdiag.msc * lusrmgr.msc * nfsmgmt.msc * ocsp.msc * perfmon.msc * pkiview.msc * printmanagement.msc * rrasmgmt.msc * rsop.msc * secpol.msc * services.msc * taskschd.msc * tpm.msc * tsgateway.msc * WF.msc * WmiMgmt.msc

More Useful Command Lists From Other Sites