`
- 浏览:
273073 次
- 性别:
- 来自:
深圳
-
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,管理员可以轻松地访问和操作各种系统服务、应用程序、网络设备等资源。 #### 知识点二:PowerShell与.NET Framework的关系 PowerShell是基于.NET Framework构建的,这意味着它可以无缝地调用...
由于篇幅限制,以下是对上述文件内容的知识点提炼,其中将介绍PowerShell的基本概念、版本、环境配置、执行策略、命令运行方式、交互式Shell的使用、PowerShell snap-ins的应用、.NET类的使用、管道操作、变量管理、...
PowerShell是一种基于.NET Framework的命令行外壳程序和脚本环境,它提供了比传统的cmd.exe更强大的功能,包括对象导向的输出、丰富的命令集(称为Cmdlets)以及强大的脚本编写能力。它允许管理员和开发者通过命令行...
不同于传统的基于文本的命令行工具,PowerShell 的核心在于其对象导向性,它利用 .NET 公共语言运行时 (CLR) 和 .NET Framework 接收和返回 .NET 对象。这一特性使得系统管理员能够以一种更加直观且高效的方式管理与...
- **对象处理能力**:与传统命令行工具处理文本的方式不同,Windows PowerShell 是基于 .NET 公共语言运行时 (CLR) 和 .NET Framework 构建的,这意味着它可以处理 .NET 对象而不是简单的文本字符串。这使得数据处理...
### Windows PowerShell 入门指南知识点解析 #### 一、Windows PowerShell 概述 - **定义**: Windows PowerShell™ ...掌握了 Windows PowerShell 的基本概念和操作后,系统管理员可以更加高效地管理 Windows 系统。
总的来说,`dotnet-Splatting`是PowerShell中的一个重要特性,对于.NET开发者来说,熟练掌握这项技术能够提升脚本编写的质量和效率,使代码更易于理解和维护。在日常的自动化任务和脚本编写中,善用Splatting可以...
PowerShell的核心是其基于.NET Framework的对象模型,它允许管理员和开发者通过命令行或者脚本来管理和控制操作系统、应用程序和服务。与传统的命令提示符(cmd.exe)相比,PowerShell提供了一种更强大、更灵活的...
用户可以通过它来执行一系列复杂的操作,如资源创建、查询、修改等。然而,在存在代理(Proxy)设置的网络环境中,用户可能会遇到使用PowerShell执行HTTP请求时出现的各种问题。本文将深入探讨在代理环境下使用...
5. **Types(类型)和 Formats(格式)文件**:类型文件扩展了 PowerShell 对 .NET 类的默认视图,而格式文件定义了如何显示对象的输出。这有助于定制 PowerShell 控制台的输出样式。 6. **Aliases(别名)**:模块...
1. **PowerShell基础**:PowerShell是一种基于.NET Framework的命令行接口,它提供了一种面向对象的脚本环境,可以用来控制和自动化Windows操作系统以及包括EMC Unity在内的各种IT资源。PowerShell的命令称为Cmdlet...
下面我们将深入探讨如何使用PowerShell管理和操作Citrix Farms。 首先,PowerShell基础知识是理解其在Citrix农场管理中的应用的关键。PowerShell是一种基于.NET框架的命令行外壳程序,提供了命令行接口和脚本语言,...
4. **创建规则对象**:对于有效规则,使用PowerShell创建`NetworkSecurityRule`对象,填充相应的属性。 5. **添加规则**:使用`New-AzNetworkSecurityRuleConfig` cmdlet 创建规则配置,然后用`Set-...
- **PowerShell连接逻辑**:创建`PowerShell`和`Runspace`对象,编写执行远程连接的PowerShell脚本,并调用`Invoke()`方法。 - **异常处理**:捕获可能出现的连接错误,如网络问题、权限不足等,并提供相应的反馈。 ...
它的语法比传统的CMD更加强大和灵活,支持对象管道、面向对象编程以及丰富的.NET Framework类库,使得开发复杂的脚本和应用程序变得简单。 其次,我们要讨论的是**Slack Bot**。Slack是一种团队协作工具,提供了...
它基于.NET Framework构建,使得IT专业人员能够更高效地控制操作系统和应用程序。 在PowerShell 2.0中,新添了240个cmdlets(命令行工具),这些cmdlets是PowerShell的核心组成部分,用于执行特定的管理任务。例如...
PowerShell是一种基于.NET框架的命令行外壳程序和脚本语言,由微软开发。它主要面向系统管理员,提供了对操作系统和应用程序的高级访问方式,支持命令行操作以及强大的脚本编写功能。PowerShell的命令(称为cmdlet)...
PowerShell集成了命令行工具和脚本语言,提供了更强大的对象模型,可以处理.NET Framework的对象。 **2. 命令行基础** 在Shell中,用户可以通过输入命令来执行操作,如`dir`(列出目录内容)、`copy`(复制文件)...