首页/系统/Windows 运维速查/Invoke-Expression 执行字符串命令
PowerShell 基础66 条

Invoke-Expression 执行字符串命令

把字符串当命令执行(类似 eval),灵活但风险高:涉及外部输入时可能造成命令注入。

Windows 运维速查系统更新于 2026-10-12
用途执行动态生成的命令字符串
语法Invoke-Expression <字符串>;别名 iex
风险外部可控字符串进入 iex 等于任意代码执行

常用示例

常用示例
$cmd = 'Get-Date -Format yyyy-MM-dd'
Invoke-Expression $cmd
& 'C:\Windows\System32\notepad.exe' D:\logs\a.txt
能用调用运算符(& $exe $args)或脚本块就不要用 iex;iex 也是攻击链中的高频执行方式。

易错点

  • 执行含用户输入的 iex 相当于开后门,审计日志中 iex 是重点监控对象
  • iex 报错指向内部命令,调试困难,优先用 & 调用运算符

数据来源与参考

  • Microsoft Learn:Invoke-Expression
  • Microsoft Security:PowerShell 可疑执行与日志审计

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌