`
hongzhguan
  • 浏览: 270326 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

阅读更多

创建.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可获取排序所依据的一个或多个属性的名称,并返回按这些属性值排序的数据。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics