def install(names):
    """
    .. versionadded:: 2017.7.0

    Installs updates that match the list of identifiers. It may be easier to use
    the list_updates function and set ``install=True``.

    Args:

        names (str, list):
            A single update or a list of updates to install. This can be any
            combination of GUIDs, KB numbers, or names. GUIDs or KBs are
            preferred.

    .. note::

        An error will be raised if there are more results than there are items
        in the names parameter

    Returns:

        dict: A dictionary containing the details about the installed updates

    CLI Examples:

    .. code-block:: bash

        # Normal Usage
        salt '*' win_wua.install KB12323211
    """
    # Create a Windows Update Agent instance
    wua = salt.utils.win_update.WindowsUpdateAgent()

    # Search for Updates
    updates = wua.search(names)

    if updates.count() == 0:
        raise CommandExecutionError("No updates found")

    # Make sure it's a list so count comparison is correct
    if isinstance(names, str):
        names = [names]

    if isinstance(names, int):
        names = [str(names)]

    if updates.count() > len(names):
        raise CommandExecutionError(
            "Multiple updates found, names need to be more specific"
        )

    return wua.install(updates)