脚本专栏 
首页 > 脚本专栏 > 浏览文章

Powershell在一个会话中只允许执行指定命令的方法

(编辑:jimmy 日期: 2025/3/13 浏览:3 次 )

支持所有PS版本

Powershell处理可执行程序(如EXE)类似其它语言。然而你也可以让PS阻止执行任何程序或仅允许执行授权文件。

默认是允许执行任何程序:

复制代码 代码如下:
PS> $ExecutionContext.SessionState.Applications
*

下面将授权PS只允许执行ping.exe和regedit.exe命令。

复制代码 代码如下:
$ExecutionContext.SessionState.Applications.Clear()
$ExecutionContext.SessionState.Applications.Add('ping.exe')
$ExecutionContext.SessionState.Applications.Add('regedit.exe')

请看结果:

复制代码 代码如下:
$ExecutionContext.SessionState.Applications
ping.exe
regedit.exe

比如,我此时执行ipconfig时就应当报错:

复制代码 代码如下:
PS> ipconfig
ipconfig : 无法将“ipconfig.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请
确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ ipconfig
+ ~~~~~~~~
+ CategoryInfo : ObjectNotFound: (ipconfig.exe:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

当然,你也可以还原到初始设置:
复制代码 代码如下:
$ExecutionContext.SessionState.Applications.Add('*')
PS> explorer
PS>

所以,它能较好的防止EXE的执行(或意外执行非法EXE),使用它作为一种安全模式,你就可以关闭。当关闭了它,你将不能执行访问.net对象,于是在当前会话你将不能在恢复这些设置。

上一篇:Windows Powershell Switch 循环
下一篇:Windows Powershell For 循环
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap