调用.NET Interaction.Shell执行系统命令
2023-2-28 09:3:45 Author: dotNet安全矩阵(查看原文) 阅读量:14 收藏

Interaction.Shell方法是在Visual Basic.NET中定义的一个方法,可以在Windows操作系统中启动一个外部程序或执行一个命令,并且可以指定应用程序的工作目录和命令行参数等。在.NET Framework中,这个方法也可以通过Microsoft.VisualBasic.Interaction类进行调用。下面是Interaction.Shell方法的参数及用法:

Microsoft.VisualBasic.Interaction.Shell(pathNamestylewaittimeout)

入参pathName:要启动的程序文件路径或命令行命令,可以是一个字符串表达式,也可以是一个Object类型的表达式。如果是字符串表达式,必须包含完整的路径和文件名,如果是Object类型的表达式,则需要将其转换为字符串类型。style参数是一个可选的整数值,指定了应用程序窗口的外观和行为,可以取以下值之一

0:隐藏应用程序窗口。1:正常大小和位置。2:最小化。3:最大化。4:不激活应用程序窗口。6:隐藏应用程序窗口,同时在任务栏上显示一个按钮。

参数wait:一个可选的布尔值,指定是否等待启动的程序完成,可以取以下值之一

True:等待程序完成后继续执行。False:不等待程序完成,立即返回。

下面是一个使用Interaction.Shell方法启动外部程序的demo

Microsoft.VisualBasic.Interaction.Shell("C:\Windows\System32\notepad.exe", AppWinStyle.NormalFocustrue-1)

在上面的示例中,我们使用Interaction.Shell方法启动Windows系统中的记事本应用程序,并将其窗口设置为正常大小和位置,等待程序完成后继续执行。由于没有指定超时时间,因此等待程序完成的时间没有限制。需要注意的是,Interaction.Shell方法在启动外部程序时并没有提供进程间通信(IPC)的功能,因此在启动外部程序后,不能直接与其进行交互或获取其输出。如果需要进行IPC操作,则需要使用其他的方法或技术,例如使用命名管道或套接字等

调用需要引入程序集Microsoft.VisualBasic.dll,代码如下 ,文章涉及的工具和PDF已打包发布在星球

<script runat="server" language="c#">    public void Page_load(){           Interaction.Shell("calc.exe", AppWinStyle.NormalFocus);        } </script>

欢迎对.NET安全关注和关心的同学加入我们 [dotNet安全矩阵] ,在这里能遇到有情有义的小伙伴,大家聚在一起做一件有意义的事


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247487305&idx=2&sn=271dd8ec29a99ed1a873eabd5e16a37d&chksm=fa5aa1a4cd2d28b25c4923744f6215628d0124c9472f7efb2319e7450a1e04d0702a1e5aee1b#rd
如有侵权请联系:admin#unsafe.sh