`
- 浏览:
270326 次
- 性别:
- 来自:
深圳
-
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
相关推荐
PowerShell可以和.Net无缝集成,而现在大多数电脑都有.Net和Powershell 所以通过调用.Net提供的 System.Windows.Forms 以及 System.Drawing.Graphics 等程序集实现屏幕检测,像素判断 可以实现判断白屏。再通过...
因为PowerShell是可以和.Net 程序无缝集成的。所以.Net能用的东西在PowerShell里也几乎都能使用。那么如果想让PowerShell的交互性更强,更友好无疑是创建一个友好GUI界面了。本文介绍如何在PowerShell中创建窗体程序...
Windows PowerShell 4.0 for .NET Developers 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权...
Azure,PowerShell和.NET的快速示例。 docs -cheatsheet.md-PowerShell备忘单。 解决方案 使用Linux应用服务容器中运行的nginx负载平衡两个(或多个)应用服务 通过在多个App Service计划之前部署Azure前门来实现大...
If you are a .NET developer who wants to learn how to use Windows PowerShell then this book is what you are looking for. This book takes you from the basics to a professional level in PowerShell ...
Powershell是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境,powershell需要.NET环境的支持,同时支持.NET对象。 (1)查看版本信息$PSVersionTable (2)获取当前目录的所有文件信息: ls或者...
使用本机 PowerShell 和 .NET 提供访问控制资源(不依赖于 PowerShell 访问控制模块)。 现在,它支持文件和文件夹 (cFileAce) 以及注册表项 (cRegistryAce)。 这需要 WMF 5.0,因为资源都是基于类的(我实际上...
特别是,与.Net、COM和WMI三大豪门的联姻,使得PowerShell必将在Windows世界里大放光彩。 与新锐.Net联姻 在Windows的世界里,.Net代表着现在和将来,是新生力量。与.Net联姻,就意味着榜上了粗腿,迈上了快车道。...
以及用于对数据和对象进行排序、筛选以及格式设置的简便工具。 * 对现有脚本语言、现有命令行工具以及多种 Windows 版本的支持,其中包括 Windows XP、Windows Server 2003、Windows Vista 以及 Windows Server...
PowerShell是一款基于对象的shell, 建立在.Net框架之上, 目前支持.Net Framework 2.0. 能够运行在Windows XP SP2, Windows Vista, Windows 2003操作系统上. 能够同时支持WMI, COM, ADO.NET, ADSI等已有的Windows...
主要介绍了使用PowerShell .Net获取电脑中的UUID 的相关资料,需要的朋友可以参考下
附录包括powershell语言快速参考和对管理员来说有用的.net、wmi和com对象的介绍。那些管理microsoft exchange 2007和系统中心operations manager(以前的mom)的管理员会发现有专门介绍相关内容的章节。...
它使您能够轻松创建和自定义部署方案,而不必诉诸难以自动化的复杂工具。展开展开是针对基于.net的Web应用程序的完整部署解决方案。 它使您能够轻松创建和自定义部署方案,而不必求助于难以自动化或难以设置的复杂...
Windows Powershell 2.0,相当于批处理的加强版本,功能超级强大。
解压密码:123 SAPIEN PowerShell Studio 2022是一个强大而有效的应用程序,它为PowerShell提供了一个高级的集成脚本和工具制作环境。 它是一个完整的和功能齐全的应用程序,提供了一个广泛的模板库和预连接控件,以...
Windows Server 2008 x64 Edition 的 Windows PowerShell 2.0 和 WinRM 2.0 (KB968930
Azure PowerShell 模块用于从 PowerShell 命令行或脚本创建和管理 Azure 资源。 本指南详细介绍了如何使用 Azure PowerShell 模块创建虚拟机。
◆Windows PowerShell 并不处理文本,而是处理以.NET平台为基础的对象; ◆Windows PowerShell 附带了数量庞大的内置命令集和一致的接口; ◆对于各个工具,全部的外壳程序命令都使用相同的命令剖析器,而非使用...
曾经想用 PowerShell 创建动态网页,就像使用 ASP、PHP 和 Python 所做的那样吗? 这是 PowerShell 脚本的 IIS 处理程序,允许您执行此操作 这是在 IIS 中创建处理程序以运行 PowerShell 脚本而不是其他服务器端代码...
PowerShell