PowerShell常用的.Net 、COM对象(New-Object、Assembly)、加载程序集

#新建随机数对象实例:
$Ran = New-Object System.Random
$Ran.NextDouble()

有时候,要使用的实例的类保存在独立的库文件中,PowerShell默认未加载,会出现如下错误提示,就需要先加载库文件,然后再创建实例类:

  这时候,在MSDN的.NET Framework 类库中去查找该实例类包含在哪个库文件中,地址 http://msdn.microsoft.com/zh-cn/library/gg145045(v=vs.110).aspx

  对于 System.Windows.Forms.NotifyIcon来说,在.NET Framework 类库中可以直接查找到 System.Windows,然后再在 System.Windows 中去查找System.Windows.Forms,再依次去查找 System.Windows.Forms.NotifyIcon,如下图所示就可以找到所需要的程序集:

  而对于SecureString来说,则可以进行猜测,如查找 Security 关键字,可以查到 System.Security 的命名空间,之后就可以找到 System.Security.SecureString 了,然后使用 new-object System.Security.SecureString可以创建成功


使用 System.Reflection.Assembly类提供的方法来加载类库:
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

C:\Windows\assembly目录下是可用的程序集:

例:[System.Reflection.Assembly]::LoadWithPartialName("TaskScheduler")

查看可用程序集:


创建实例类:
$balloon = New-Object System.Windows.Forms.NotifyIcon

#新建随机数对象实例:
$Ran = New-Object System.Random
$Ran.NextDouble()

(new-object Net.WebClient).DownloadString("http://live.com")


LoadWithPartialName方法不适合在脚本或产品发布的环境中使用,他加载最新的库文件,可能与用来开发的版本不一致。比较安全的加载库文件的方法是使用[Reflection.Assembly]::Load()加上完整的名称。

 

PowerShell常用的.COM对象:

COMAdmin.COMAdminCatalog :提供了访问和管理Windows COM编录

Excel.Application :允许自动化Microsoft Excel和与之的交互

Excel.Sheet: 允许与Excel工作表之间的交互

HNetCfg.FwMgr: 提供对Windows防火墙的管理功能的访问

HTMLFile:允许和一个新的Internet Explorer文档交互

MAPI.Session:提供对MAPI(消息应用程序编程接口)的会话的访问,如文件夹、邮件和通讯簿

Microsoft.Update.AutoUpdate:提供了对Microsoft Update自动更新计划的管理

Microsoft.Update.Installer:允许从Microsoft  Update安装更新

Microsoft.Update.Session:提供对有关Microsoft Update本地历史记录的信息的访问

Microsoft.Update.SystemInfo:提供对当前系统与Microsoft Update有关的信息的访问

MMC20.Application:允许管理控制台(MMC)的自动化和与之进行交互

MSScriptControl.ScriptControl:允许评估和控制WSH脚本

Msxml2.XSLTemplate:允许XSL转换处理

Outlook.Application:允许和你的Microsoft Outlook应用,如电子邮件、日历、联系人等进行交互和自动化应用

OutlookExpress.MessageList:允许通过Outlook Expresshe 和你的电子邮件交互及自动化

PowerPoint.Application:允许自动化Microsoft PowerPoint和与之交互

Scripting.FileSystemObject:提供对计算机的文件系统的访问

ScriptPW.Password:允许伪装输入的纯文本密码》如果可能,应避免使用这个。应该优先考虑使用read-host -AsSecureString参数

Shell.Application:提供对Windows Explorer Shell应用程序,如管理窗口、文件盒文件夹和当前会话的方面的访问

Shell.LocalMachine:提供对有关当前计算机与Windows Shell程序此昂管的信息的访问

Shell.User :提供对当前用户的Windows回话和配置文件方面的访问

SQLDMO.SQLServer:提供对Microsoft SQL Server的管理功能的访问

Word.Application:允许和Microsoft Word的交互与自动化

Word.Document:允许与Microsoft Word文档进行交互

WScript.Network:提供对互联网的Windows环境方面的访问,如打印机、网络驱动器,以及计算机和域信息

WScript.Shell:提供对Windows Shell,例如应用程序、快捷方式、环境变量、注册表和操作环境的方面的访问

WSHController:在远程计算机上运行WSH脚本的执行

 

PowerShell常用的.Net对象

System.Management.Automation.PSObject:表示一个PowerShell对象,可向其添加注释、属性和更多

System.DateTime:表示一个即时时间

System.Math:提供了常见的数学函数的常量和静态方法

System.Random:表示随机的生成器,生成一系列符合某些统计数字随机性的需求

System.Environment:提供有关信息,表示操作,当前环境和平台

System.Console:表示控制台应用程序的标准输入、输出和错误流

System.Diagnostics.EventLog:提供了与Windows事件日志的交互

System.Diagnostics.Process:提供对本地和远程进程的访问,启动和停止本地系统进程

System.Diagnostics.StopWatch:提供了一组方法和属性,用于准确的测量运行时间

System.Media.SoundPlayer:控件从.wav文件中播放声音

System.AppDomain:表示应用程序域,即应用程序执行的隔离的环境

System.Reflection.Assembly:自定义程序集,是一个可重复使用,可转换和自描述的公共语言运行库应用程序的构造块

 System.Security.Principal.WindowsIdentity:表示一个Windows用户

System.Windows.Forms.Form:表示一个窗口或对话框,构成应用程序的用户界面

System.windows.Forms.FlowLayoutPanel:表示动态布局其内容的一个面板

System.Uri :提供了一个对象,表示统一资源标识符(URI)。可以方便的访问URI各个部分

System.Net.NetworkCredential:为基于密码的身份验证提供凭据(如基本、简要、Kerberos身份验证和NTLM)

System.Net.DNS:提供了简单的域名解析功能

System.Net.FtpWebRequest:实现一个FTP客户端

System.Net.HttpWebRequest:提供的特定于HTTP实现的WebRequest类

System.Net.WebClient:提供常用的方法来发送和接收由URI标识的一个资源中的数据

System.Net.Sockets.TcpClient:提供了TCP网络服务的客户端连接

System.Net.Mail.MailAddress:表示某个邮件发件人或收件人的地址

System.Net.Mail.MailMessage:表示可以使用smtpClient类发送电子邮件

System.Net.Mail.SmtpClient:表示应用程序通过SMTP发送电子邮件

System.Xml.XmlDocument:表示一个XML文档

System.DirectoryServices.DirectorySearcher:对AD执行查询

System.Data.SqlClient.SqlCommand:表示针对SQL Server数据库来执行的T-SQL语句或存储过程

System.Data.SqlClient.SqlConnection:表示到SQL Server数据库的打开的连接

System.Data.SqlClient.SqlDataAdapter:表示一组数据命令和数据库连接,用于填充DataSet和更新SQL数据库

System.Data.Odbc.OdbcCommand :表示针对某一odbc数据库执行的一个T-SQL语句或存储过程

 

查看[System.Net.IPAddress] 可用的属性和方法
[System.Net.IPAddress]|gm -Static
[System.DateTime] |gm -static -membertype Method

 

 参考:.Net Framwork类库

posted on 2014-06-30 11:43  momingliu11  阅读(10410)  评论(0编辑  收藏  举报