New-Object

Create an instance of a .Net or COM object. This allows you to startup and control other applications (including VBScript) from PowerShell.

Syntax
New-Object [-comObject] string[] [-strict]
[-Property hashtable] [CommonParameters]
New-Object [-typeName] string[] [[-argumentList] Object[]]
[-Property hashtable] [CommonParameters]
Key
-argumentList Object
A comma separated list of arguments to pass to the constructor of the .Net class.
-comObject string
Programmatic Identifier (ProgID) of the COM object.
-Property hashtable Set property values and invokes methods of the new object.
Enter a hash table in which the keys are the names of properties or methods and
the values are property values or method arguments. New-Object creates the object and
sets each property value and invokes each method in the order that they appear in the hash table.
If the new object is derived from the PSObject class, a property is specified that
does not exist on the object, it will be added to the object as a NoteProperty.
If the object is not a PSObject, the command generates a non-terminating error.
-strict
Raise an error if the COM object that you attempt to
create uses an interop assembly.
This enables you to distinguish actual COM objects from
.Net objects with COM-callable wrappers.
-typeName string
The fully-qualified name of the .Net class.
CommonParameters:
-Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
-OutBuffer -OutVariable.

Create a COM object "Shell.Application" and store the resulting reference in a variable, display the properties and methods of the COM object (via get-member.) Then use the ToggleDesktop method to minimize all open desktop windows:

“The creation of a thousand forests is in one acorn” ~ Ralph Waldo Emerson

Related:

Compare-Object - Compare the properties of objectsForEach-Object - Loop for each object in the pipelineGroup-Object - Group the objects that contain the same value for a common propertyMeasure-Object - Measure aspects of object properties and create objects from those valuesSelect-Object - Select objects based on parameters set in the Cmdlet command stringSort-Object - Sort the input objects by property valueTee-Object - Send input objects to two placesWhere-Object - Filter input from the pipeline allowing operation on only certain objects
OS X Equivalent: say - Convert text to audible speech.