PowerShell调用Shell.Application


昨天应Victor的要求,临时在网上找了一个弹出U盘的函数,可以安全的删除U盘。但是晚上时间仓促,没有仔细捉摸代码。今天正好codecook,问起渊源,我只能自己找找线索了,这线索找起来比MH370容易多了。

Shell.Application是什么

百度百科上面的描述太绕口,简单一点吧:Application就是应用程序,Shell就是通过命令完成应用程序的部分功能:比如弹出U盘。Shell.Application的官方文档位于:Shell.Application

对象=方法+属性

我们在调用时使用com对象,com对象也是对象,自然有方法属性

先定义对象:

$sa = new-object -com Shell.Application

然后调用方法:NameSpace(官方解释为文件夹),那么多文件夹,总得指定一个吧,比如:“我的电脑”,对应参数ssfDRIVES 【0x11 (17)】。

完了再继续调用Item方法,想想都是“我的电脑”下面的那些C,D,E,F盘吧。有了盘,就给它执行一个动作吧InvokeVerb()。
那支持那些动作呢?

PS> ($sa.Namespace(17).items()  | select -last 1 ).Verbs() | select name

Name
----
&Open
Scan with System Center Endpoint Protection...

E&ject
&Copy
Create &shortcut

说明:每个盘支持的动作不一样,上面我选最后一个,因为我机器上最后一个是DVD,这个肯定和U盘一样支持弹出的。所以上面有E&ject

完整脚本参加:PowerShell安全删除U盘

本文链接: https://www.pstips.net/call-shell-application.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注