powershell创建.NET和com对象相应操作_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > powershell创建.NET和com对象相应操作

powershell创建.NET和com对象相应操作

 2012/3/20 13:57:41  hongzhguan  程序员俱乐部  我要评论(0)
  • 摘要:创建.NET和COM对象(New-Object)1.可以使用具有TypeName参数的New-Objectcmdlet来创建新的.NET类实例。New-Object-TypeNameSystem.Diagnostics.EventLog;a.在变量中存储对象任何有效的WindowsPowerShell命令的输出均可存储在变量中。变量名称始终以$开头。若要在名为$AppLog的变量中存储对应用程序日志的引用,请键入变量名称、后跟等号,然后键入用于创建应用程序日志对象的命令:$AppLog=New
  • 标签:.net 创建 net 操作 PowerShell

创建.NET和COM对象(New-Object)
1.可以使用具有 TypeName 参数的 New-Object cmdlet 来创建新的 .NET 类实例。
? New-Object -TypeName System.Diagnostics.EventLog ;
? a.在变量中存储对象
? 任何有效的 Windows PowerShell 命令的输出均可存储在变量中。变量名称始终以 $ 开头。若要在名为 $AppLog 的变量中存储对应
? 用程序日志的引用,请键入变量名称、后跟等号,然后键入用于创建应用程序日志对象的命令:
? $AppLog = New-Object -TypeName System.Diagnostics.EventLog -ArgumentList Application
? b.使用 New-Object 访问远程事件日志
? 若要访问远程计算机上的应用程序日志,则必须将日志名称以及计算机名称(或 IP 地址/localhost)作为参数进行提供。
? $RemoteAppLog = New-Object -TypeName System.Diagnostics.EventLog Application,192.168.1.81
? New-Object 可使用 .NET Framework 运行库可调用包装来创建 COM 对象,因此它具有的限制与在调用COM对象时.NET 具有的限制相同。若要创建 COM 对象,则需要利用要使用的COM 类的编程标识符或 ProgId 来指定 ComObject 参数。在本教程中,将不对有关 COM 使用限制和确定系统中哪些 ProgId 可用进行完整的讨论,但环境中大多数已知对象(例如 WSH)可以在 Windows PowerShell 中使用。
? 可以通过指定这些 ProgId 来创建 WSH 对象:WScript.Shell、WScript.Network、Scripting.Dictionary 和 Scripting.FileSystemObject。使用以下命令可创建这些对象:
? New-Object -ComObject WScript.Shell
? New-Object -ComObject WScript.Network
? New-Object -ComObject Scripting.Dictionary
? New-Object -ComObject Scripting.FileSystemObject
??
2.使用 WScript.Shell 创建桌面快捷方式
? a.使用 COM 对象可快速执行的一个任务是创建快捷方式。
? ? $wshShell = New-Object -ComObject WScript.shell ;
? ? Get-Member 可处理 COM 对象,因此可键入以下命令来浏览对象成员:
? ? $wshShell | Get-Member
? ? 注意:Get-Member 具有可选参数 InputObject,因此您可以使用该参数而无需通过管道向Get-Member 提供输入。
? ? Get-Member -InputObject $wshShell ;(与上边的效果一样)。
? b.WScript.Shell CreateShortcut ? ?方法可接受单个参数,该参数是指向要创建的快捷方式文件的路径。我们可以键入指向桌面的完整路径,但还有另一种更简单的方法。桌面通常是由当前用户的主文件夹中名为“桌面”的文件夹表示。Windows PowerShell 具有包含指向此文件夹的路径的变量 $Home
? ?$lnk = $wshShell.CreateShortcut("$HOME\desktop\Ajax.lnk");(只能是".lnk"或者".url"结尾)
? c.需要指定 TargetPath(Windows PowerShell 的应用程序文件夹),然后通过调用 Save 方法保存该快捷方式 $lnk。Windows PowerShell 应用程序文件夹路径存储在变量 $PSHome 中,因此可键入以下命令来实现此操作:
? ?$lnk.TargetPath = 'd:\Ajax';
? ?$lnk.Save()
3.使用 Windows PowerShell 中的 Internet Explorer
? ?a.创建 Internet Explorer实例: ??
? ? ?$ie = New-Object -ComObject InternetExplorer.Application;
? ? ?注意:此命令可启动 Internet Explorer,但该应用程序将不可见。
? ?b.将 Visible 属性设置为 $true:
? ? ?$ie.Visible = $true
? ?c.使用导航方法导航至特定的 web 地址:
? ? ?$ie.Navigate("http://www.iteye.com");
? ?d.命令将显示当前网页正文中的 HTML 文本:
? ? ?$ie.Document.body.InnerText;
? ?f.在 PowerShell 中关闭 Internet Explorer:
? ? ?$ie.Quit();
注意:使用诸如 $ie = $null 之类的命令来删除剩余的引用,也可通过键入以下命令完全删除该变量:
? ? ?Remove-Variable ie;(此处不要"$")
Remove-Variable -Name $stu -Force ?-ErrorAction:SilentlyContinue; ($stu自定义对象)
?
4.使用静态类和方法
? ? ?注意:静态类是不能更改状态的方法和属性的引用库,不能使用 New-Object 进行创建。
? a.使用 System.Environment 获取环境数据
[System.Environment]::MachineName(获取计算机的名称)
若要使用 Get-Member 查看静态成员,请指定 Static 参数:
[System.Environment] | Get-Member -Static;
? b. 显示 System.Environment 的静态属性
? ? ?[System.Environment]::CommandLine(显示若要查看用于启动 Windows PowerShell 的命令)
[System.Environment]::OSVersion(若要检查操作系统版本)
通过显示 HasShutdownStarted 属性,可以检查计算机是否正在关闭:
[System.Environment]::HasShutdownStarted
5.使用 System.Math进行数学运算
? ? [System.Math]::Sqrt(9) ? ? ? ?3
[System.Math]::Pow(2,3) ? ? ? 8
[System.Math]::Floor(3.3) ? ? 3
[System.Math]::Floor(-3.3) ? -4
[System.Math]::Ceiling(3.3) ? 4
[System.Math]::Ceiling(-3.3) -3
[System.Math]::Max(2,7) ? ? ? 7
[System.Math]::Min(2,7) ? ? ? 2
[System.Math]::Truncate(9.3) ?9
[System.Math]::Truncate(-9.3)-9

6.从管道中删除对象 (Where-Object) ? 可以测试管道中的所有对象,并将符合特定测试条件的对象通过管道进行传递。没有通过测试的对象将从管道中删除。可以将测试条件设置为 Where-ObjectFilterScript 参数的值。
? ? 1,2,3,4 | Where-Object -FilterScript{$_ -lt 3};
? ? 注意:两个 Where-Object 元素,而他们可通过使用 –and 逻辑运算符,以单个Where-Object 元素的形式表示出来。
?逻辑运算符
7.对多个对象重复同一任务 (ForEach-Object)
8.选择对象的各个部分 (Select-Object)可以使用 Select-Object cmdlet 来创建新的、自定义的 Windows PowerShell ? ?对象,后者包含的属性是从用于创建他们的对象中选择的。复制可随后进行修改的数据。
Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace |
ForEach-Object -Process {$_.FreeSpace = ($_.FreeSpace)/1024.0/1024.0; $_}
9.对对象进行排序
通过使用 Sort-Object cmdlet ?可以组织显示的数据,从而可更轻易地对这些数据进行扫描。Sort-Object可获取排序所依据的一个或多个属性的名称,并返回按这些属性值排序的数据。

发表评论
用户名: 匿名