c# pdf viewer itextsharp : Change pdf page order reader control Library system azure asp.net web page console Windows%20Powershell%20in%20Action%202nd%20Edition83-part1542

800
CHAPTER 19
M
ANAGEMENT
OBJECTS
: WMI 
AND
WS-MAN
CIM
classes use to manage those resources. Figure 19.1 shows how these components 
are organized.
The classes surfaced by the providers are logically arranged into a hierarchy of 
namespaces. Within each namespace are related (at least in theory) classes or types 
that represent (or model) management elements. In addition to classes, namespaces 
can contain nested namespaces. 
NOTE
None of this should be new to anyone who’s paid attention so 
far; we discussed at length how .
NET
does logical and physical type 
organization in section 17.1. 
CIM
has the same basic arrangement of 
provider (physical) and namespace (logical) groupings.
Notice  that there is no  one-to-one  mapping  between  namespaces  and  providers. 
More than one provider can surface types with a namespace. In fact, a lot of the Win-
dows core providers expose (dump) all of their classes in the 
root\cimv2
namespace, 
as you’ll see later.
NOTE
The  astute  reader  may  be  wondering  how 
WMI
providers 
might relate to the namespace providers that PowerShell uses for access-
ing stores such as the file system and the Registry. 
WMI
providers and 
PowerShell  providers  are  completely  independent  technologies 
(although conceptually they’re both ways of accessing objects).
Table 19.1 includes  a partial list of the 
WMI
namespaces that are configured on 
Windows.
WMI infrastructure
components
CIM/WMI
repository
CIM/WMI Object Manager (CIMOM) 
WMI providers
WMI scripting/programming
interfaces and libraries
Managed services, applications,
and system components
WMI consumers (scripts,
monitoring software, etc.)
Registry
SNMP
Win32
Windows 
Installer
Perf 
counters
Figure 19.1 The WMI implementation architecture. WMI providers surface managed 
elements to the Object Manager. The WMI repository stores instances of active objects.
Change pdf page order reader - re-order PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Customizing Page Order of PDF Document in C# Project
reorder pages pdf; rearrange pdf pages online
Change pdf page order reader - VB.NET PDF Page Move Library: re-order PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sort PDF Document Pages Using VB.NET Demo Code
reverse page order pdf online; rearrange pdf pages in preview
T
HE
WMI 
CMDLETS
801
In the next section, we’ll (finally) leave the theoretical discussions (mostly) behind 
and start talking about more practical applications of this technology when we intro-
duce the PowerShell cmdlets for accessing and manipulating 
WMI
objects.
19.2
T
HE
WMI 
CMDLETS
PowerShell has four cmdlets for working with 
WMI
. These cmdlets are shown in table
19.2. This table has the name and description as well as which versions of PowerShell 
each cmdlet is available in.
In the next few sections, we’ll look at each of the 
WMI
cmdlets in detail; but first, let’s 
examine the (rather large) set of parameters that are common to all the cmdlets. 
Rather than repeating them for each cmdlet, we’ll look at them all at once.
Table 19.1 Partial list of the standard WMI providers
Provider
Namespace
Description
Active Directory
root\directory\ 
ldap
Provides access to Active Directory objects
Event log
root\cimv2
Provides classes to manage Windows event logs
Performance counter
root\cimv2
Provides access to raw performance data counters
Registry
root\default
Provides access to the Registry, for reading, writing, 
enumerating, monitoring, creating, and deleting 
Registry keys and values
SNMP
root\snmp
Provides access to SNMP MIB data and traps from 
SNMP-managed devices
WDM
root\wmi
Provides access to information about Windows 
device drivers
Win32
root\cimv2
Provides a broad array of classes for managing a 
computer, including information about the computer, 
disks, peripheral devices, networking components, 
operating system, printers, processes, and so on
Windows Installer
root\cimv2
Provides access to information about software 
installed on this computer
Table 19.2 The cmdlets for working with WMI 
Cmdlet
Description
Availability
Get-WmiObject
Retrieves objects from WMI
v1 and v2
Set-WmiInstance
Sets the properties on a WMI class or object
v2
Invoke-WmiMethod
Invokes a method on a WMI class or instance
v2
Remove-WmiObject
Removes an object instance from the repository
v2
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
PDF Document; Remove Password from PDF; Change PDF Permission Settings. Page: Insert PDF pages; VB.NET Page: Delete PDF VB.NET Annotate: PDF Markup & Drawing. XDoc
how to reorder pdf pages in reader; reorder pdf pages reader
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
VB.NET PDF - How to Modify PDF Document Page in VB.NET. VB.NET Guide for Processing PDF Document Page and Sorting PDF Pages Order.
reorder pages pdf file; how to reorder pages in pdf preview
802
CHAPTER 19
M
ANAGEMENT
OBJECTS
: WMI 
AND
WS-MAN
19.2.1
The WMI cmdlet common parameters
In this section, we’ll describe the parameters that are common to all the 
WMI
cmd-
lets. These common parameters are shown in figure 19.2
In this figure, you see many parameters that are related to communications, like 
-ComputerName
-Authority
, and 
-Authentication
. Because 
WMI
is a distributed 
object model, these parameters are obviously important. On Windows, 
WMI
uses the 
DCOM
protocol as the basic transport layer for all of its communications.
NOTE
Whenever we talk about protocols, we find ourselves in Acro-
nym Land (like Disneyland, but boring.) In this case, 
DCOM
is Dis-
tributed 
COM
, which is an extension of the Component Object Model 
you saw in chapter 18. 
DCOM
extends 
COM
so that an object’s imple-
mentation doesn’t have to be on the same server as the object’s con-
sumer. 
DCOM
uses the 
MSRPC
(Microsoft Remote Procedure Call) 
facility,  and 
MSRPC
is  an  extension of  the 
DCE/RPC
(Distributed 
Computing Environment/Remote Procedure Call) standard. Do you 
really need to care about this? To some extent, the answer is yes because 
communication  issues  will  interfere  with  your  ability  to  use 
WMI 
remotely. For example, this arrangement of protocols is why you some-
times see errors like “
RPC
server not available” coming from 
WMI
Note that some of the parameters are similar to the parameters you saw on the remot-
ing cmdlets in chapters 12 and 13: 
-Credential
-ComputerName,
-Throttle-
Limit
, and 
-AsJob
. Others have the same name but are slightly different because 
WMI
uses 
DCOM
and PowerShell remoting uses 
WS-M
an as the transport layer. For
[-ComputerName <string[]>] 
[-AsJob] 
[-ThrottleLimit <int>] 
[-Authentication {<Default>|<None>|<Connect>|
<Call> |<Packet>|<PacketIntegrity> |
<PacketPrivacy> | <Unchanged>}]
[-Authority <string>] 
[-Credential <PSCredential>]
[-EnableAllPrivileges] 
[-Impersonation {<Default>|<Anonymous>|<Identify>|
<Impersonate>|<Delegate>}]
[-Locale <string>]
Machines to
execute on
Execute operation
asynchronously
Throttle the number of
concurrent operations
Type of
authentication
to use
Locale to use for error
messages and culture
information
Enable all of caller’s
privileges on target
Type of impersonation to use
Credentials used to
authenticate to target
computers
Authority to use to
authenticate WMI
connection
Figure 19.2 The common parameters available on all of the WMI cmdlets. These parameters 
primarily deal with remote connection issues but also include the 
-AsJob
parameter.
C# PowerPoint - Sort PowerPoint Pages Order in C#.NET
control, developers can swap or adjust the order of all or several PowerPoint document pages, or just change the position of certain one PowerPoint page in an
pdf change page order; rearrange pages in pdf document
C# Word - Sort Word Pages Order in C#.NET
library control, developers can swap or adjust the order of all or several Word document pages, or just change the position of certain one Word page in an
rearrange pages in pdf; how to reverse page order in pdf
T
HE
WMI 
CMDLETS
803
instance, in both cases you have the -
Authentication
parameter but the meanings 
aren’t the same because of the different protocol requirements.
Finally,  there  are  a  few parameters  that  are  specific to  the 
WMI
rather  than 
DCOM
. The 
-Locale
parameter allows you to tell the target computer what lan-
guage to use when it returns error messages. The 
-Impersonation
parameter allows 
you to control how your user token is created on the target computer.
NOTE
There’s one significant architectural difference between Power-
Shell remoting and 
WMI
that has to do with object methods and “live 
versus  dead  objects.”  In  PowerShell  remoting,  the  objects  that  are 
returned are always “dead” objects—essentially, snapshots of the state of 
the object when it was transmitted over the remoting channel. Because 
these objects are just copies, decoupled from the original object, chang-
ing them doesn’t affect the remote system. 
WMI
uses a very different 
approach. 
WMI
objects are “live” and maintain state that’s used for com-
municating changes back to the original object. In the 
WMI
case, chang-
ing the local copy will affect the remote system. This is why 
WMI
objects 
have methods but PowerShell remoting objects don’t. There are pros 
and cons to maintaining the association between the local and remote in 
terms of performance and consistency, as you’ll see.
Jobs and throttling
A major enhancement added to the 
WMI
cmdlets in PowerShell v2 is the 
-AsJob
and 
-ThrottleLimit
parameters. The cmdlets can take a list of computer names to exe-
cute against, and this list can be very large. In PowerShell v1, there was no way for the 
user to control the number of concurrent connections and therefore the resources 
consumed when using 
Get-WmiObject
against a lot of computers. Version 2 fixes 
this by adding 
–ThrottleLimit
, which, as was the case for the PowerShell remoting 
cmdlets, limits the number of concurrent connections and uses a “sliding window,” 
where as soon as one operation completes and that connection is closed, the next tar-
get is pulled from a queue and a new connection is initiated.
The second major enhancement was the addition of the 
-AsJob
parameter. This 
conceptually works in the same way as 
-AsJob
parameter on 
Invoke-Command
or the 
Start-Job
cmdlet, but the implementation is quite different. Whereas the 
Start-
Job
cmdlet created a new process for each job, the 
WMI
jobs run in process but on 
another thread. This means that 
WMI
jobs don’t go through a serialization boundary 
like PowerShell jobs and consume far fewer resources than PowerShell jobs. But the 
abstractions are maintained and, although 
WMI
jobs are started using the 
WMI
cmd-
lets, these jobs are managed using the same 
Get-Job/Receive-Job/Stop-Job
cmd-
lets that you saw in section 12.5.1.
And now (at last) we’re ready to move on to the cmdlets themselves, starting with 
the most important one: 
Get-WmiObject
C# TIFF: How to Reorder, Rearrange & Sort TIFF Pages Using C# Code
C# users to reorder and rearrange multi-page Tiff file Tiff image management library, you can easily change and move pages or make a totally new order for all
move pages in pdf reader; how to reorder pdf pages in
C# Word - Process Word Document in C#
various Word document processing implementations using C# demo codes, such as add or delete Word document page, change Word document pages order, merge or
how to change page order in pdf acrobat; change page order pdf acrobat
804
CHAPTER 19
M
ANAGEMENT
OBJECTS
: WMI 
AND
WS-MAN
19.2.2
The Get-WmiObject cmdlet
In this section, you’ll see how to use the 
Get-WmiObject
cmdlet to do two things: 
explore  the 
WMI
namespaces  and  classes  available  on  a  computer  and  retrieve 
instances of those classes from a computer.
As we observed earlier, the overall 
WMI
architecture is rather like a database in 
that you connect to the 
WMI
service on a particular computer, optionally providing 
additional connection information, and then retrieve the objects using a query. 
Get-
WmiObject
is the cmdlet you use to perform these queries. Its signature is shown in 
figure 19.3.
As always, the best way to see how something works is to use it in examples. To 
kick things off, here’s a quick little PowerShell “script” that will return information 
about the 
BIOS
on the local computer: 
PS (1) > Get-WmiObject -Class Win32_BIOS 
>>
SMBIOSBIOSVersion : 5.30 
Manufacturer      : American Megatrends Inc.
Name              : BIOS Date: 09/05/08 10:24:25 Ver: 5.30 
SerialNumber      : MXX84000D8 
Version           : HPQOEM - 20080905
Get-WmiObject 
[-Namespace <string>]
[-Recurse] 
[-List] 
[-Class <pattern>]
Retrieve all instances of
named class from
namespace
Select objects from namespace
using WQL (a SQL-like query 
language) instead of individually
specifying class and filter
Only return specified
properties from object.
Optionally filter
objects retrieved
Get-WmiObject
[-Namespace <string>]
[-Class] <string>
[[-Property] <string[]>]
[-Filter <string>]
[-Amended]
[-DirectRead]
List types in
namespace
Namespace path to search
Get-WmiObject
[-Namespace <string>]
[-Query] <WQL Query string>
[-DirectRead] 
[-Amended]
Retrieve additional (amended)
information such as property 
and object descriptions
Request direct access to WMI
provider, without any regard to its
superclass or derived classes
Recursively list types in any
subnamespaces of current namespace
List parameter set
Query parameter set
WQL query parameter set
Filter types returned with
wildcard patterns
Figure 19.3 The signature for the 
Get-WmiObject
cmdlet. This cmdlet has three 
parameter sets and allows you to explore WMI using the 
-List
parameter and to re-
trieve objects from the repository with the 
-Class
and 
-Query
parameters.
C# PDF: C# Code to Process PDF Document Page Using C#.NET PDF
Enable C#.NET developers to change the page order of source PDF document file; Allow C#.NET developers to add image to specified area of source PDF document
how to reorder pages in pdf file; how to move pages within a pdf
RasterEdge.com General FAQs for Products
speaking, you will receive a copy of email containing order confirmation and dedicated to provide powerful & profession imaging controls, PDF document, image
pdf reverse page order; pdf reverse page order online
T
HE
WMI 
CMDLETS
805
To run this same command against a remote computer, you just have to add the 
-ComputerName
parameter to the command. You get this:
PS (4) > Get-WmiObject -ComputerName brucepayx61 ` 
>>    -Class Win32_BIOS ` 
>>    -Credential redmond\brucepay 
>>
SMBIOSBIOSVersion : 7SET33WW (1.19 ) 
Manufacturer      : LENOVO 
Name              : Ver 1.00PARTTBL 
SerialNumber      : LVB7KY3 
Version           : LENOVO - 1190
In  this  second  example,  you also have to  specify credentials  to access  the  target 
machine because this was being done in a non-domain-joined environment. Now 
let’s look at another, somewhat more complicated example. You need to get informa-
tion about some of the network adapters on a computer. You want a list of all the 
adapters using 
DHCP
to get their 
IP
address and then print out the description and 
IP 
address for the machines as well as see when the 
DHCP
lease will expire. Managing 
network adapters is exactly the kind of task that 
WMI
was designed for, so as you 
expect, there’s a 
WMI
class that will give you this information: 
Win32_Network-
AdapterConfiguration
. There’s a property called 
DHCPEnabled
on this class that 
you’ll use to filter for the adapters with 
DHCP
enabled. The 
IP
address assigned to 
that adapter is available through another property, 
IPAddress
. Finally, the descrip-
tion of the adapter is available through the 
Description
property. (You’ll see how 
you learn all this in the next section.) 
PS (3) > Get-WmiObject Win32_NetworkAdapterConfiguration | 
>>   where { $_.DHCPEnabled } | 
>>     Format-List Description, IPAddress, DHCPLeaseExpires 
>>
Description      : Realtek RTL8168C(P)/8111C(P) Family PCI-E GBE NIC 
IPAddress        : {192.168.0.101, fe80::ec97:2ed7:3203:b22d} 
DHCPLeaseExpires : 20100908002817.000000-420
Description      : 802.11n Wireless PCI Express Card LAN Adapter 
IPAddress        : {192.168.0.105, fe80::c128:dbf3:3b1:76e0} 
DHCPLeaseExpires : 20100908002819.000000-420
In this example, you used the 
Where-Object
(
where
) cmdlet to filter the objects 
returned and then formatted the desired properties with 
Format-List
. There’s one 
small issue with this output, however: the times aren’t exactly human readable. Fortu-
nately, PowerShell adds a script method that can be used to fix this formatting prob-
lem. You can have a calculated property (see section 11.3) in the list of properties that 
will convert this value into a more readable 
DateTime
object. The revised command 
looks like this:
PS (4) > Get-WmiObject Win32_NetworkAdapterConfiguration | 
>>   where { $_.DHCPEnabled } |
806
CHAPTER 19
M
ANAGEMENT
OBJECTS
: WMI 
AND
WS-MAN
>>     Format-List Description, IPAddress, 
>>      @{ 
>>        name = "DHCPLeaseExpires" 
>>        expression = {$_.ConvertToDateTime($_.DHCPLeaseExpires)}} 
>>
Description      : Realtek RTL8168C(P)/8111C(P) Family PCI-E GBE NIC 
IPAddress        : {192.168.0.101, fe80::ec97:2ed7:3203:b22d} 
DHCPLeaseExpires : 9/8/2010 12:28:17 AM
Description      : 802.11n Wireless PCI Express Card LAN Adapter 
IPAddress        : {192.168.0.105, fe80::c128:dbf3:3b1:76e0} 
DHCPLeaseExpires : 9/8/2010 12:28:19 AM
The hashtable defining the calculated property in this example sets the name to be 
the  same  as  the  original  property  but  sets  the  expression  to  generate  the  value 
(
expression
in the hashtable) to use this method to convert the value. The net result 
is that you get the information you need with a single line of script.
Even though we’ve only looked at a couple of examples so far, it’s clear that 
WMI 
is an extremely valuable source of management information—if only you knew how 
to find that information. This is exactly what we’ll show you in the next section. 
Using Get-WmiObject to find WMI classes
The key element you need to get information from 
WMI
is the name of the class you 
want  to  access  such  as 
Win32_BIOS
or 
Win32_NetworkAdapterConfiguration
Using the class name, 
Get-WmiObject
sends a request to the remote 
CIMOM
asking 
it to retrieve the object or objects identified by this class name. Then the 
CIMOM 
looks up the class name in its tables and retrieves the associated data if the class exists.
Because the 
CIMOM
knows all about the classes that are defined, it’d make sense 
to be able to ask 
CIMOM
to tell you what’s there. In fact, this operation is explicitly 
covered by the 
CIM
specification. 
CIM
is self-describing technology, which means it 
provides ways for a client application to ask the object manager on the target system 
what’s  available.  PowerShell leverages these  mechanisms to provide you  with the 
-List
parameter on 
Get-WmiObject
, which will return a list of the available classes. 
For example, to see all of the classes with 
BIOS
in their name, use this:
PS (1) > Get-WmiObject -List *bios*
NameSpace: ROOT\cimv2
Name                                Methods              Properties 
----                                -------              ----------
CIM_VideoBIOSFeature                {}                   {Caption,... 
CIM_BIOSFeature                     {}                   {Caption,... 
Win32_SMBIOSMemory                  {SetPowerState, R... {Access, ... 
CIM_BIOSElement                     {}                   {BuildNum... 
Win32_BIOS                          {}                   {BiosChar... 
CIM_VideoBIOSElement                {}                   {BuildNum...
T
HE
WMI 
CMDLETS
807
Win32_SystemBIOS                    {}                   {GroupCom... 
CIM_VideoBIOSFeatureVideoBIOSEle... {}                   {GroupCom... 
CIM_BIOSFeatureBIOSElements         {}                   {GroupCom... 
CIM_BIOSLoadedInNV                  {}                   {Antecede...
This output shows each of the available class names along with the methods and 
properties defined by those classes. As you saw with .
NET
, the amount of information 
returned from the commands is frequently enough for your purposes, but all of the 
standard  classes  that  Microsoft  includes with  Windows  are  well  documented  on 
MSDN
http://mng.bz/4X76
This documentation includes many examples showing how to use classes, which is 
terrific. (Not so terrific is that these examples are still mostly written in 
VBS
cript, 
although this is becoming less true over time.)
Going back to the output from the previous example, there’s one piece of infor-
mation that we need to elaborate on. In section 19.1.2, we mentioned that 
WMI 
classes are arranged in namespaces. In this output, you saw
NameSpace: ROOT\cimv2
indicating that the classes listed were located in this namespace. Because this is the 
default namespace, you haven’t needed to use the 
-Namespace
parameter yet. In the 
next section, we’ll look at how you work with 
CIM
namespaces from PowerShell.
Navigating CIM namespaces
Returning to the first example in this chapter, you ran the command
Get-WmiObject -Class Win32_Bios
to get your data. The more complete way to write this command is to explicitly spec-
ify the namespace containing the class as well as the class name. The revised com-
mand would look like this:
Get-WmiObject -Namespace root\cimv2 -Class Win32_Bios
All classes are identified by a path of the form:
\\
<
computer
>
\
<
namespace
>\<
namespace
>
:
<
class
>
You can see this path for any object returned using 
Get-WmiObject
by looking at the 
__PATH
property on the object.
NOTE
The vast majority of 
WMI
classes that you’ll use on a regular 
basis live in the 
root\cimv2
namespace, which is why you don’t force 
the use of the 
-Namespace
parameter. Because the 
-Class
parameter 
is positional, many 
WMI
commands can simply be written as 
Get-
WmiObject Win32_Bios
.
808
CHAPTER 19
M
ANAGEMENT
OBJECTS
: WMI 
AND
WS-MAN
Figure 19.4 shows the basic structure of a portion of the 
WMI/CIM
namespace.
In figure 19.4, you can see that namespaces contain both classes as well as nested 
namespaces.  The 
-List
option on 
Get-WmiObject
provides you with a list of 
classes, but it doesn’t list the nested namespaces. So how do you discover the nested 
namespaces? As it turns out, there’s a special class called 
__NAMESPACE
that you can 
query  to get  the  list  of namespaces in  a namespace (remember that 
CIM
is self-
describing). To get a list of the namespaces under 
root\cimv2
, you use the following 
command:
PS (2) > Get-WmiObject -Namespace root\cimv2 -Class __NAMESPACE | 
>> Format-List name 
>>
name : Security 
name : SMS 
name : ms_409 
name : Applications
\cimv2
\root
Win32_Bios
Win32_CPU
\power
CIM_PowerSource
Win32_OutlookSummary
\msapps12
\others...
\\mymachine
Example class paths: 
\\mymachine\root\cimv2:Win32_Bios
\\mymachine\root\cimv2\power:CIM_PowerSource
Figure 19.4 A portion of the WMI/CIM namespace hierarchy. The full path to a class 
begins with the name through the root namespace and eventually to a specific class.
T
HE
WMI 
CMDLETS
809
To find out what’s contained in the nested namespaces, you’d have to run a similar 
command against each one, repeating this pattern for each level of nesting. Doing 
this kind of manual navigation of namespaces is annoying if you’re trying to search 
for a class name and aren’t sure what namespace it’s in. To simplify things, 
Get-
WmiObject
also includes a 
-Recurse
parameter that will cause 
-List
to recursively 
search all of the nested namespaces. Let’s try it in another example. The following 
command will search the 
WMI
repository starting at the root, looking for all classes 
with the string “power” in them:
PS (3) > Get-WmiObject -Namespace root -Recurse -List ` 
>>  -Class *power* | Format-Table __PATH 
>> 
__PATH 
------
\\BRUCEPAYQUAD\ROOT\CIMV2:Win32_PowerManagementEvent 
\\BRUCEPAYQUAD\ROOT\CIMV2:CIM_PowerSupply 
\\BRUCEPAYQUAD\ROOT\CIMV2:CIM_UninterruptiblePowerSupply 
\\BRUCEPAYQUAD\ROOT\WMI:MSNdis_StatusDevicePowerOn 
\\BRUCEPAYQUAD\ROOT\WMI:MSNdis_StatusDevicePowerOff 
\\BRUCEPAYQUAD\ROOT\WMI:MSPower 
\\BRUCEPAYQUAD\ROOT\WMI:MSPower_DeviceWakeEnable 
\\BRUCEPAYQUAD\ROOT\WMI:MSPower_DeviceEnable 
\\BRUCEPAYQUAD\ROOT\WMI:MSNdis_80211_TransmitPowerLevel 
\\BRUCEPAYQUAD\ROOT\WMI:MSNdis_80211_PowerMode 
\\BRUCEPAYQUAD\ROOT\WMI:SystemConfig_V1_Power 
\\BRUCEPAYQUAD\ROOT\WMI:SystemConfig_Power 
\\BRUCEPAYQUAD\ROOT\WMI:SystemConfig_V0_Power 
\\BRUCEPAYQUAD\ROOT\MSAPPS12:Win32_PowerPoint12Tables 
\\BRUCEPAYQUAD\ROOT\MSAPPS12:Win32_PowerPointSummary 
\\BRUCEPAYQUAD\ROOT\MSAPPS12:Win32_PowerPointActivePresentation 
\\BRUCEPAYQUAD\ROOT\MSAPPS12:Win32_PowerPoint12Table 
:
This output displays the path for each class. Notice that the output includes classes 
from a number of different namespaces.
NOTE
The set of 
WMI
classes available on a machine depends  on 
what’s installed on that machine (both applications and operating sys-
tem). For example, in the output from the previous command, a num-
ber of Microsoft PowerPoint classes are listed. If the machine on which 
the command is being run doesn’t have PowerPoint installed on it, you 
wouldn’t see these classes. As a consequence, if you do try some of 
these examples, don’t be surprised if you get results that are different 
from what’s shown here.
At this point, you have a good idea how to get information out of 
WMI
. You know 
how to get a list of the classes available on a remote computer and how to use those 
classes  to  get  information.  Something  we  haven’t  touched  on yet  is the  type  of
Documents you may be interested
Documents you may be interested