PowerShell基础教程(12)——处理对象

本文介绍了如何使用PowerShell中的Get-WmiObject命令获取和操作Windows Management Instrumentation (WMI) 对象。内容覆盖了如何列出本地及远程计算机上的WMI类、查询特定WMI类的详细信息以及展示非默认属性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PowerShell基础教程(12)——处理对象             <o:p></o:p>

我们已经讨论了 Windows PowerShell 如何使用对象在 cmdlet 之间传输数据,并通过使用 Get-Member Format cmdlet 查看对象的特定属性来对查看有关对象详细信息的几种方法进行了说明。

对象的作用是,允许您访问许多复杂的数据,并且它是相关的。通过某些简单的技术,就可以进一步操作对象以进行更多工作。在本章中,我们将讨论可对其进行操作的某些特定对象的类型和操作方法。

获取 WMI 对象 (Get-WmiObject)             <o:p></o:p>

获取 WMI 对象 (Get-WmiObject)<o:p></o:p>

Windows Management Instrumentation (WMI) Windows 系统管理的核心技术,因为它可以按统一的方式公开各种类型的信息。由于 WMI 具有如此强大的功能,因此用于访问 WMI 对象的 Windows PowerShell cmdlet,即 Get-WmiObject,为实际工作中最有用的命令之一。我们将讨论如何使用 Get-WmiObject 来访问 WMI 对象,然后讨论如何使用 WMI 对象来执行特定操作。

列出 WMI <o:p></o:p>

大多数 WMI 用户遇到的第一个问题是:希望了解利用 WMI 可以执行哪些操作。WMI 类可以描述可管理的资源。系统中存在几百个 WMI 类,其中某些类包含几十个属性。

Get-WmiObject 可以通过将 WMI 成为可发现的类来解决此问题。您可以通过键入以下命令来获取本地计算机中可用的 WMI 类列表:

PS> Get-WmiObject -List<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

__SecurityRelatedClass                  __NTLMUser9X<o:p></o:p>

__PARAMETERS                            __SystemSecurity<o:p></o:p>

__NotifyStatus                          __ExtendedStatus<o:p></o:p>

Win32_PrivilegesStatus                  Win32_TSNetworkAdapterSettingError<o:p></o:p>

Win32_TSRemoteControlSettingError       Win32_TSEnvironmentSettingError<o:p></o:p>

...<o:p></o:p>

<o:p> </o:p>

通过使用 ComputerName 参数,然后指定计算机名称或 IP 地址,可以从远程计算机中检索相同的信息:

PS> Get-WmiObject -List -ComputerName 192.168.1.29<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

__SystemClass                           __NAMESPACE<o:p></o:p>

__Provider                              __Win32Provider<o:p></o:p>

__ProviderRegistration                  __ObjectProviderRegistration<o:p></o:p>

...<o:p></o:p>

<o:p> </o:p>

根据该计算机所运行的特定操作系统和由已安装的应用程序所添加的特定 WMI 扩展的不同,远程计算机返回的类列表也各不相同。

请注意: <o:p></o:p>

在使用 Get-WmiObject 连接到远程计算机时,该远程计算机必须运行 WMI,并且,在默认配置下,您使用的帐户必须是该远程计算机上本地管理员组的成员。远程系统不需要安装 Windows PowerShell。从而,您可以对未运行 Windows PowerShell 但可使用 WMI 的操作系统进行管理。<o:p></o:p>

甚至可在连接到本地系统时包括 ComputerName。可以将本地计算机的名称、其 IP 地址(或环回地址 127.0.0.1)或 WMI 样式‘.’用作计算机名称。如果名为 Admin01(其 IP 地址为 192.168.1.90)的计算机上运行的是 Windows PowerShell,则以下命令将返回该计算机的 WMI 类列表:

Get-WmiObject -List<o:p></o:p>

Get-WmiObject -List -ComputerName .<o:p></o:p>

Get-WmiObject -List -ComputerName Admin01<o:p></o:p>

Get-WmiObject -List -ComputerName 192.168.1.90<o:p></o:p>

Get-WmiObject -List -ComputerName 127.0.0.1<o:p></o:p>

Get-WmiObject -List -ComputerName localhost<o:p></o:p>

<o:p> </o:p>

默认情况下,Get-WmiObject 使用 root/cimv2 命名空间。若要指定另一个 WMI 命名空间,请使用 Namespace 参数并指定相应的命名空间路径:

PS> Get-WmiObject -List -ComputerName 192.168.1.29 -Namespace root<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

__SystemClass                           __NAMESPACE<o:p></o:p>

__Provider                              __Win32Provider<o:p></o:p>

...<o:p></o:p>

<o:p> </o:p>

显示 WMI 类详细信息<o:p></o:p>

如果您已经知道 WMI 类的名称,则可立即使用该类来获取信息。例如,常用于检索计算机相关信息的 WMI 类之一就是 Win32_OperatingSystem

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName .<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

SystemDirectory :C:\WINDOWS\system32<o:p></o:p>

Organization    :Global Network Solutions <o:p></o:p>

BuildNumber     : 2600<o:p></o:p>

RegisteredUser  :Oliver W. Jones<o:p></o:p>

SerialNumber    : 12345-678-9012345-67890<o:p></o:p>

Version         :5.1.2600<o:p></o:p>

<o:p> </o:p>

尽管我们已给出所有参数,但也可采用更简洁的方式来表示命令。在连接到本地系统时,不一定非要使用 ComputerName 参数。介绍该参数的目的是为了对最常见的情况予以说明,并帮助您熟悉此参数。Namespace 默认为 root/cimv2,且可省略。最后,大多数 cmdlet 都允许省略一些常见参数名称。在使用 Get-WmiObject 时,如果没有为第一个参数指定名称,则 Windows PowerShell 会将其视为 Class 参数。这意味着可能已通过键入以下命令发出上一命令:

Get-WmiObject Win32_OperatingSystem<o:p></o:p>

<o:p> </o:p>

Win32_OperatingSystem 类所具有的属性数量远远超过此处所显示的属性数量。可以使用 Get-Member 来查看所有属性。就像其他对象属性一样,WMI 类的属性也将自动可用:

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName .| Get-Member -MemberType Property<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

TypeName:System.Management.ManagementObject#root\cimv2\Win32_OperatingSyste<o:p></o:p>

m<o:p></o:p>

<o:p> </o:p>

Name      MemberType Definition<o:p></o:p>

----                                      ---------- ----------<o:p></o:p>

__CLASS                                   Property   System.String __CLASS {...<o:p></o:p>

...<o:p></o:p>

BootDevice                                Property   System.String BootDevic...<o:p></o:p>

BuildNumber                               Property   System.String BuildNumb...<o:p></o:p>

...<o:p></o:p>

<o:p> </o:p>

使用 Format Cmdlet 显示非默认的属性<o:p></o:p>

若要使用默认情况下不显示的 Win32_OperatingSystem 类中包含的信息,则可通过使用 Format cmdlet 来显示这些信息。例如,如果希望显示可用的内存数据,请键入:

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName .| Format-Table -Property TotalVirtualMemorySize,TotalVisibleMemorySize,FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles<o:p></o:p>

<o:p> </o:p>

TotalVirtualMemorySize TotalVisibleMem FreePhysicalMem FreeVirtualMemo FreeSpaceInPagi<o:p></o:p>

ory              ry         ngFiles<o:p></o:p>

--------------- --------------- --------------- --------------- ---------------<o:p></o:p>

        2097024          785904          305808         2056724         1558232<o:p></o:p>

<o:p> </o:p>

请注意: <o:p></o:p>

通配符可使用 Format-Table 中的属性名称,因此,最后的管道元素可精简为 Format-Table -Property TotalV*,Free*<o:p></o:p>

<o:p> </o:p>

如果通过键入以下命令将内存数据的格式设置为列表,则将大大提高该内存数据的可读性:

PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName .| Format-List TotalVirtualMemorySize,TotalVisibleMemorySize,FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

TotalVirtualMemorySize : 2097024<o:p></o:p>

TotalVisibleMemorySize : 785904<o:p></o:p>

FreePhysicalMemory     : 301876<o:p></o:p>

FreeVirtualMemory      : 2056724<o:p></o:p>

FreeSpaceInPagingFiles : 1556644<o:p></o:p>

 
内容概要:本文围绕直流微电网中带有恒功率负载(CPL)的DC/DC升压转换器的稳定控制问题展开研究,提出了一种复合预设性能控制策略。首先,通过精确反馈线性化技术将非线性不确定的DC转换器系统转化为Brunovsky标准型,然后利用非线性扰动观测器评估负载功率的动态变化和输出电压的调节精度。基于反步设计方法,设计了具有预设性能的复合非线性控制器,确保输出电压跟踪误差始终在预定义误差范围内。文章还对比了多种DC/DC转换器控制技术如脉冲调整技术、反馈线性化、滑模控制(SMC)、主动阻尼法和基于无源性的控制,并分析了它们的优缺点。最后,通过数值仿真验证了所提控制器的有效性和优越性。 适合人群:从事电力电子、自动控制领域研究的学者和工程师,以及对先进控制算法感兴趣的研究生及以上学历人员。 使用场景及目标:①适用于需要精确控制输出电压并处理恒功率负载的应用场景;②旨在实现快速稳定的电压跟踪,同时保证系统的鲁棒性和抗干扰能力;③为DC微电网中的功率转换系统提供兼顾瞬态性能和稳态精度的解决方案。 其他说明:文中不仅提供了详细的理论推导和算法实现,还通过Python代码演示了控制策略的具体实现过程,便于读者理解和实践。此外,文章还讨论了不同控制方法的特点和适用范围,为实际工程项目提供了有价值的参考。
内容概要:该论文介绍了一种名为偏振敏感强度衍射断层扫描(PS-IDT)的新型无参考三维偏振敏感计算成像技术。PS-IDT通过多角度圆偏振光照射样品,利用矢量多层光束传播模型(MSBP)和梯度下降算法迭代重建样品的三维各向异性分布。该技术无需干涉参考光或机械扫描,能够处理多重散射样品,并通过强度测量实现3D成像。文中展示了对马铃薯淀粉颗粒和缓步类动物等样品的成功成像实验,并提供了Python代码实现,包括系统初始化、前向传播、多层传播、重建算法以及数字体模验证等模块。 适用人群:具备一定光学成像和编程基础的研究人员,尤其是从事生物医学成像、材料科学成像领域的科研工作者。 使用场景及目标:①研究复杂散射样品(如生物组织、复合材料)的三维各向异性结构;②开发新型偏振敏感成像系统,提高成像分辨率和对比度;③验证和优化计算成像算法,应用于实际样品的高精度成像。 其他说明:PS-IDT技术相比传统偏振成像方法具有明显优势,如无需干涉装置、无需机械扫描、可处理多重散射等。然而,该技术也面临计算复杂度高、需要多角度数据采集等挑战。文中还提出了改进方向,如采用更高数值孔径(NA)物镜、引入深度学习超分辨率技术等,以进一步提升成像质量和效率。此外,文中提供的Python代码框架为研究人员提供了实用的工具,便于理解和应用该技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值