服务器之家

服务器之家 > 正文

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

时间:2020-06-28 10:38     来源/作者:PowerShell教程网

支持所有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对象,于是在当前会话你将不能在恢复这些设置。

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
返回顶部