[玩转系统] New-Object (Microsoft.PowerShell.Utility)
作者:精品下载站 日期:2024-12-14 02:05:09 浏览:16 分类:玩电脑
New-Object (Microsoft.PowerShell.Utility)
New-Object
模块 :Microsoft.PowerShell.Utility创建 Microsoft .NET Framework 或 COM 对象的实例。
句法
New-Object
[-TypeName] <String>
[[-ArgumentList] <Object[]>]
[-Property <IDictionary>]
[<CommonParameters>]
New-Object
[-ComObject] <String>
[-Strict]
[-Property <IDictionary>]
[<CommonParameters>]
描述
New-Object
cmdlet 创建 .NET Framework 或 COM 对象的实例。
您可以指定 .NET Framework 类的类型或 COM 对象的 ProgID。默认情况下,您键入 .NET Framework 类的完全限定名称,cmdlet 将返回对该类实例的引用。要创建 COM 对象的实例,请使用 ComObject 参数并将对象的 ProgID 指定为其值。
示例
示例 1:创建 System.Version 对象
此示例使用“1.2.3.4”字符串作为构造函数创建一个 System.Version 对象。
New-Object -TypeName System.Version -ArgumentList "1.2.3.4"
Major Minor Build Revision
----- ----- ----- --------
1 2 3 4
示例 2:创建 Internet Explorer COM 对象
此示例创建代表 Internet Explorer 应用程序的 COM 对象的两个实例。第一个实例使用 Property 参数哈希表调用 Navigate2 方法,并将对象的 Visible 属性设置为 $True
使应用程序可见。第二个实例使用单独的命令获得相同的结果。
$IE1 = New-Object -COMObject InternetExplorer.Application -Property @{Navigate2="www.microsoft.com"; Visible = $True}
# The following command gets the same results as the example above.
$IE2 = New-Object -COMObject InternetExplorer.Application`
$IE2.Navigate2("www.microsoft.com")`
$IE2.Visible = $True`
示例 3:使用 Strict 参数生成非终止错误
此示例演示了当 COM 对象使用互操作程序集时,添加 Strict 参数会导致 New-Object
cmdlet 生成非终止错误。
$A = New-Object -COMObject Word.Application -Strict -Property @{Visible = $True}
New-Object : The object written to the pipeline is an instance of the type
"Microsoft.Office.Interop.Word.ApplicationClass" from the component's primary interop assembly. If
this type exposes different members than the IDispatch members, scripts written to work with this
object might not work if the primary interop assembly is not installed.
At line:1 char:14
+ $A = New-Object <<<< -COM Word.Application -Strict; $a.visible=$true
示例 4:创建 COM 对象来管理 Windows 桌面
此示例演示如何创建和使用 COM 对象来管理 Windows 桌面。
第一个命令使用 New-Object
cmdlet 的 ComObject 参数创建具有 Shell.Application ProgID 的 COM 对象。它将生成的对象存储在 $ObjShell
变量中。第二个命令将 $ObjShell
变量通过管道传递给 Get-Member
cmdlet,后者显示 COM 对象的属性和方法。其中的方法之一是ToggleDesktop方法。第三个命令调用对象的 ToggleDesktop 方法来最小化桌面上打开的窗口。
$Objshell = New-Object -COMObject "Shell.Application"
$objshell | Get-Member
$objshell.ToggleDesktop()
TypeName: System.__ComObject#{866738b9-6cf2-4de8-8767-f794ebe74f4e}
Name MemberType Definition
---- ---------- ----------
AddToRecent Method void AddToRecent (Variant, string)
BrowseForFolder Method Folder BrowseForFolder (int, string, int, Variant)
CanStartStopService Method Variant CanStartStopService (string)
CascadeWindows Method void CascadeWindows ()
ControlPanelItem Method void ControlPanelItem (string)
EjectPC Method void EjectPC ()
Explore Method void Explore (Variant)
ExplorerPolicy Method Variant ExplorerPolicy (string)
FileRun Method void FileRun ()
FindComputer Method void FindComputer ()
FindFiles Method void FindFiles ()
FindPrinter Method void FindPrinter (string, string, string)
GetSetting Method bool GetSetting (int)
GetSystemInformation Method Variant GetSystemInformation (string)
Help Method void Help ()
IsRestricted Method int IsRestricted (string, string)
IsServiceRunning Method Variant IsServiceRunning (string)
MinimizeAll Method void MinimizeAll ()
NameSpace Method Folder NameSpace (Variant)
Open Method void Open (Variant)
RefreshMenu Method void RefreshMenu ()
ServiceStart Method Variant ServiceStart (string, Variant)
ServiceStop Method Variant ServiceStop (string, Variant)
SetTime Method void SetTime ()
ShellExecute Method void ShellExecute (string, Variant, Variant, Variant, Variant)
ShowBrowserBar Method Variant ShowBrowserBar (string, Variant)
ShutdownWindows Method void ShutdownWindows ()
Suspend Method void Suspend ()
TileHorizontally Method void TileHorizontally ()
TileVertically Method void TileVertically ()
ToggleDesktop Method void ToggleDesktop ()
TrayProperties Method void TrayProperties ()
UndoMinimizeALL Method void UndoMinimizeALL ()
Windows Method IDispatch Windows ()
WindowsSecurity Method void WindowsSecurity ()
WindowSwitcher Method void WindowSwitcher ()
Application Property IDispatch Application () {get}
Parent Property IDispatch Parent () {get}
示例 5:将多个参数传递给构造函数
此示例演示如何使用带有多个参数的构造函数创建对象。使用ArgumentList参数时,参数必须放入数组中。
$array = @('One', 'Two', 'Three')
$parameters = @{
TypeName = 'System.Collections.Generic.HashSet[string]'
ArgumentList = ([string[]]$array, [System.StringComparer]::OrdinalIgnoreCase)
}
$set = New-Object @parameters
PowerShell 将数组的每个成员绑定到构造函数的参数。
笔记
此示例使用参数展开以提高可读性。有关详细信息,请参阅 about_Splatting。
示例 6:调用将数组作为单个参数的构造函数
此示例演示如何使用采用数组或集合参数的构造函数创建对象。数组参数必须包装在另一个数组中。
$array = @('One', 'Two', 'Three')
# This command throws an exception.
$set = New-Object -TypeName 'System.Collections.Generic.HashSet[string]' -ArgumentList $array
# This command succeeds.
$set = New-Object -TypeName 'System.Collections.Generic.HashSet[string]' -ArgumentList (,[string[]]$array)
$set
New-Object : Cannot find an overload for "HashSet`1" and the argument count: "3".
At line:1 char:8
+ $set = New-Object -TypeName 'System.Collections.Generic.HashSet[strin ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
One
Two
Three
第一次尝试创建此示例中的对象失败。 PowerShell 尝试将 $array
的三个成员绑定到构造函数的参数,但构造函数不采用三个参数。将 $array
包装在另一个数组中可防止 PowerShell 尝试将 $array
的三个成员绑定到构造函数的参数。
参数
-ArgumentList
指定要传递给 .NET Framework 类的构造函数的参数数组。如果构造函数采用单个数组参数,则必须将该参数包装在另一个数组中。例如:
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate -ArgumentList (,$bytes)
有关 ArgumentList 行为的更多信息,请参阅 about_Splatting。
ArgumentList 的别名是Args。
类型 :Object[]
别名:Args
位置:1
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-ComObject
指定 COM 对象的编程标识符 (ProgID)。
类型 :String
位置:0
默认值:None
必需的:True
接受管道输入:False
接受通配符:False
-Property
设置属性值并调用新对象的方法。
输入一个哈希表,其中键是属性或方法的名称,值是属性值或方法参数。 New-Object
创建对象并设置每个属性值,并按照它们在哈希表中出现的顺序调用每个方法。
如果新对象派生自 PSObject 类,并且您指定了对象上不存在的属性,则 New-Object
将指定的属性作为对象添加到对象中。注意属性。如果该对象不是 PSObject,则该命令会生成一个非终止错误。
词典
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Strict
指示当您尝试创建的 COM 对象使用互操作程序集时,cmdlet 会生成非终止错误。此功能将实际 COM 对象与具有 COM 可调用包装器的 .NET Framework 对象区分开来。
类型 :SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-TypeName
指定 .NET Framework 类的完全限定名称。您不能同时指定 TypeName 参数和 ComObject 参数。
类型 :String
位置:0
默认值:None
必需的:True
接受管道输入:False
接受通配符:False
输入
无
您无法将对象通过管道传输到此 cmdlet。
输出
对象
此 cmdlet 返回它创建的对象。
笔记
New-Object
提供 VBScript CreateObject 函数最常用的功能。 VBScript 中的Set objShell=CreateObject("Shell.Application")
之类的语句可以转换为 PowerShell 中的$objShell=New-Object -COMObject "Shell.Application"
。New-Object
通过使从命令行和脚本内轻松使用 .NET Framework 对象来扩展 Windows 脚本宿主环境中可用的功能。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag