当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用自定义属性集扩展 PowerShell

作者:精品下载站 日期:2024-12-14 07:52:00 浏览:14 分类:玩电脑

使用自定义属性集扩展 PowerShell


如果您最近一直在关注博客,那么您已经阅读了我对 PowerShell 类型扩展的使用。这是一种为我一直使用的东西添加新属性的方法。目标是节省打字并以最小的努力获得我需要的东西。您还可以通过创建自己的属性集更进一步。

您可能不知道,PowerShell 已经使用了属性集。这是一个你可以自己尝试的例子。

[玩转系统] 使用自定义属性集扩展 PowerShell

那个是从哪里来的?通过管道 Get-Process 到 Get-Member 并亲自查看。

[玩转系统] 使用自定义属性集扩展 PowerShell

属性集是选择属性子集的快捷方式。您还可以定义属性集。让我们以 Hyper-V 扩展为例,它允许我运行如下命令:

[玩转系统] 使用自定义属性集扩展 PowerShell

我可能想经常看看这组房产。但我显然不想一直输入这些。您可以使用 Update-TypeData cmdlet 定义新的属性集,但这需要更多的努力。不幸的是,没有简单的参数可以使用。相反,您需要创建一个像这样的 ps1xml 文件:

<?xml version="1.0" encoding="utf-8" ?>
<Types>
   <Type>
        <Name>Microsoft.HyperV.PowerShell.VirtualMachine</Name>
         <Members>
            <PropertySet>
                <Name>PSConfig</Name>
                <ReferencedProperties>
                    <Name>VMName</Name>
                    <Name>State</Name>
                    <Name>DynamicMemoryEnabled</Name>
                    <Name>DiskPath</Name>
                    <Name>TestVHD</Name>
                    <Name>ConfigurationFile</Name>
                </ReferencedProperties>
            </PropertySet>
        </Members>
    </Type>
</Types>

希望这不会太难读。我正在为 VirtualMachine 类型定义一个名为 PSConfig 的属性集成员。该属性集将使用引用的属性名称。您可以在同一个 XML 文件中添加其他类型的定义,但我不会,因此我将此文件命名为 MyHyperV.types.ps1xml。名称并不重要,但模式是使用 types.ps1xml 作为文件名的一部分。

为了加载此文件,我将此行添加到我的 PowerShell 配置文件脚本中。

Update-TypeData -AppendPath c:\scripts\MyHyperV.types.ps1xml

我没有定义任何与开箱即用的定义相冲突的内容,因此无论我添加还是添加都没有关系。现在我的生活轻松多了。

[玩转系统] 使用自定义属性集扩展 PowerShell

我可以使用 Get-Member 查看新定义。

[玩转系统] 使用自定义属性集扩展 PowerShell

XML 起初可能有点令人畏惧,但一旦有了大纲,剪切和粘贴就应该是一件简单的事情。请记住注意您的标签和外壳。

这看起来像你会用的东西吗?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯