Using WMI_Cmdlets
Windows Management Instrumentation is used on many administrator applications to automate the process of retrieving information on computers or taking action on computers.
As a simple example, different applications are used to deploy updates to clients, but they often fi rst checked to see if the update has already been deployed. WMI is used to query the computer to determine if the update is deployed. Applications such as Windows Server Update Services (WSUS), Microsoft Systems Management Server (SMS), and System Center Confi guration Manager (SCCM) all use WMI regularly.
PowerShell includes a full set of WMI cmdlets that can be used to retrieve information on systems just as they do on applications. One of the challenges with these is that there is so much that can be done that it's easy to get overwhelmed by the complexity. However, if you understand how a few of them work, you'll easily be able to use the concepts you've learned and branch off in different directions.
First, when querying WMI objects, you need to include an extra parameter that includes the class and the name of the object that you want to query. As an example, the Win32_ Share class includes the name of the class (Win32) and the name of the object type (Share). Classes and objects sometimes confuse people. You can think of a class as a blueprint, similar to a blueprint for a house. You can't live in a blueprint. Similarly, a class isn't an actual object but the defi nition for an object. When a folder is shared, it's viewed by WMI as a share object, and the Win32_Share class can be used to query information on this share object.
Note There are too many classes in the Win32 Class family to list here However, if you want to see a full list, check out this link: http://msdn.microsoft.com/library/aa394084.aspx
Win32 classes are the primary classes used to query and work with Windowsbased
operating systems. There are hundreds of objects in this class, but here's a small
sampling: Win32_Account, Win32_BIOS, Win32_ComputerSystem, Win32_SystemEvent,
Win32_CurrentTime, Win32_DiskQuota, Win32_Group, Win32_LogicalDisk, Win32_
NetworkAdapter, Win32_NTEventLogFile, Win32_OperatingSystem, Win32_Printer, Win32_
Process, Win32_Service, and Win32_Session.
A logical question is, "What do each of these do?" The simplest answer is, "Ask PowerShell with a query."
In this tutorial:
- Working with the Command Prompt
- Starting and Ending a Command Prompt Session
- Easy ways to invoke administrator Command Prompt sessions
- Starting Command Prompt at a Particular Folder
- Strings with Spaces Need Quotes
- Cmd.exe vs. Command.com
- Commands Are Not Case Sensitive
- Starting Command Prompt and Running a Command
- Cmd.exe and Other Command Prompts
- Using AutoRun to Execute Commands When Command Prompt Starts
- Using Cmds Command-Line Syntax
- Using Commands
- Type /? for help
- Starting Programs
- Open Windows Explorer at the current Command Prompt folder
- Using File-Name and Folder-Name Completion
- Use a different completion character
- Using Wildcards
- Editing the Command Line
- Using Command Symbols
- The Redirection Symbols
- The Pipe Symbol
- The Command Combination Symbols
- Pausing or Canceling Commands
- Simplifying Command Entry with Doskey Macros
- DOSKEY Saves Typing
- System Variables Identify the Environment
- Viewing Environment Variables
- Modifying Environment Variables
- Predefined Environment Variables
- Customizing Command Prompt Windows
- Setting the Window Size and Position
- Setting the Window Size and Position Visually
- Selecting a Font
- Setting Colors
- Setting Other Options
- Copy and paste in the command prompt window
- Navigating from the command prompt
- Printing a list of filenames
- Commands Use Paths
- Identifying Executables
- Modifying the Path to Executables
- Modifying the Path with the GUI
- Changing the Current Path with CD
- Changing the Current Path with Windows Explorer
- Capturing the Output
- A Sampling of Commands
- Dir
- Copy
- XCopy
- SET
- NET USE
- SystemInfo
- DriverQuery
- Echo
- Advanced Shell Commands
- Creating a Batch File
- Scheduling a Batch File
- Creating Scheduled Tasks with a Script
- Using Windows PowerShell and the PowerShell ISE
- Windows PowerShell ISE
- PowerShell Commands
- Verbs and Nouns
- Sending Output to a Text File
- PowerShell Syntax
- Variables Created with a $ Symbol
- Comparison Operators
- Parentheses, Brackets, and Braces
- Running PowerShell Scripts
- PowerShell Execution Policy
- Changing the Execution Policy
- Looping
- Collections
- Creating a PowerShell Script
- Documenting Scripts
- Using PowerShell Commands
- Getting Help on PowerShell
- Using WMI_Cmdlets
- Getting Details on an Object
- Querying Information on Specific Objects
- Terminate Applications with Win32_process
- Formatting Output with the -f Format Operator
- Filtering the Output with the Where-Object Command
- Using the IF statement
- Using the Switch Statement
- Script Reusability