Gets the hotfixes that have been applied to the local and remote computers.
Get-HotFix [[-Id] [<String[]>]] [-ComputerName [<String[]>]] [-Credential [<PSCredential>]] [<CommonParameters>]
Get-HotFix [-ComputerName [<String[]>]] [-Credential [<PSCredential>]] [-Description [<String[]>]][<CommonParameters>]

The Get-Hotfix cmdlet gets hotfixes (also called updates) that have been installed on either the local computer (or on specified remote computers) by Windows Update, Microsoft Update, or Windows Server Update Services; the cmdlet also gets hotfixes or updates that have been installed manually by users.

-ComputerName [<String[]>]

Specifies a remote computer. The default is the local computer.

Type the NetBIOS name, an Internet Protocol (IP) address, or a fully qualified domain name (FQDN) of a remote computer.

This parameter does not rely on Windows PowerShell remoting. You can use the ComputerName parameter of this cmdlet even if your computer is not configured to run remote commands.

-Credential [<PSCredential>]

Specifies a user account that has permission to perform this action. The default is the current user.

Type a user name, such as User01 or Domain01User01, or enter a PSCredential object, such as one generated by the Get-Credential cmdlet. If you type a user name, you will be prompted for a password.

-Description [<String[]>]

Specifies the hotfix descriptions that this cmdlet gets. Wildcards are permitted. The default is all hotfixes on the computer.

-Id [<String[]>]

Specifies the hotfix IDs that this cmdlet gets. The default is all hotfixes on the computer.


This cmdlet supports the common parameters: Verbose, Debug,ErrorAction, ErrorVariable, WarningAction, WarningVariable,OutBuffer, PipelineVariable, and OutVariable.



You cannot pipe input to this cmdlet.



This cmdlet returns objects that represent the hotfixes on the computer.

  1. Get all hotfixes on the local computer:
    PS C:> Get-HotFix

    This command gets all hotfixes on the local computer.

  2. Get all hotfixes on multiple computers that start with a search string:
    PS C:> Get-HotFix -Description "Security*" -ComputerName "Server01", "Server02" -Cred "Server01admin01"

    This command gets all hotfixes on the Server01 and Server02 computers that have a description that begins with Security.

  3. Create a text file that contain the computer names that are missing a security update:
    PS C:> $A = Get-Content "servers.txt"
    PS C:> $A | ForEach { if (!(Get-HotFix -Id "KB957095" -ComputerName $_)) { Add-Content $_ -Path "Missing-kb953631.txt" }}

    The commands in this example create a text file listing the names of computers that are missing a security update.

    The commands use the Get-Hotfix cmdlet to get the KB957095 security update on all of the computers whose names are listed in the Servers.txt file.

    If a computer does not have the update, the Add-Content cmdlet writes the computer name in the Missing-KB953631.txt file.

  4. Get the most recent hotfix on the local computer:
    PS C:> (Get-HotFix | sort installedon)[-1]

    This command gets the most recent hotfix on the computer.

    It gets the hotfixes, sorts them by the value of the InstalledOn property, and then it uses array notation to select the last item in the array.

Additional Notes
 This cmdlet uses the Win32_QuickFixEngineering WMI class, which represents small system-wide updates of the 
 operating system. Starting with Windows Vista, this class returns only the updates supplied by Microsoft 
 Windows Installer, Windows Update, Microsoft Update, or Windows Server Update Services. It does not include 
 updates that are supplied by Component Based Servicing (CBS), or other non-hotfix programs or apps. For more 
 information, see the Win32_QuickFixEngineering class topic in the Microsoft .NET Framework SDK at

 The output of this cmdlet might be different on different operating systems.
Related Links