• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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对象,于是在当前会话你将不能在恢复这些设置。

    上一篇:Powershell创建简洁的HTML报告例子
    下一篇:Powershell中创建自定义对象例子
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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