1.22 Win10命令行弹出光驱 https://scz.617.cn/windows/202303061753.txt A: TK & ChatGPT 2023-03-06 mshta "javascript:new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0).Eject();window.close();" mshta是Windows自带工具,算是一个IE组件,但可以独立运行,底层使用HTA引擎。 通过mshta可在命令行执行JavaScript脚本、运行ActiveX控件等。上述命令大致干了 三件事 a) 创建名为"WMPlayer.OCX"的ActiveX对象,对应Windows Media Player控件的实例 b) 从本机所有光驱中选第一个,用"Eject()"方法弹出光驱 c) 调用JavaScript的"window.close()"方法关闭当前窗口 若本机未安装Windows Media Player控件,上述命令将报错。 参看 Poweliks - Command Line Confusion - Benoit Ancel [2014-08-20] https://www.stormshield.com/news/poweliks-command-line-confusion/ 展示了另一种使用HTA引擎的奇技淫巧 rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";alert('foo');alert('bar');window.close(); 在Win10上测试上述命令,将"mshtml.dll"写成"mshtml"时,会被Windows Defender 发现、告警、拒绝执行,报告发现"Trojan:Win32/Powessere.G",就本例而言这是误 报,只能说该操作曾为恶意软件所用。这种写法认百分号编码,比如%20、%27之类的。 rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";alert(%27foo');alert('bar%27);window.close(); 为了用第二种方式弹出光驱,必须将new之后的空格代之以%20,原理参前述URL rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";new%20ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0).Eject();window.close();