如何动态执行Powershell脚本

时间:2014-09-16 05:49:22

标签: powershell

如果我可以通过HTTP访问Powershell脚本,我该如何下载它并像在bash中那样在运行中执行它?

curl --user user:pass https://fake.url | bash

2 个答案:

答案 0 :(得分:2)

首先,你不应该这样做。我的意思是,从网上下载随机代码并运行它而不用看它?哎呀!

是的,方便,但它也是一个非常愚蠢的想法,就像curl | bash一样,甚至更糟,curl | sudo bash

在大多数情况下,您可以使用WebClient.DownloadString并将其传递给Invoke-ExpressionInvoke-Expression (New-Object Net.WebClient).DownloadString(«url»)。我不确定是否仍会为变量打开script:范围,因此如果在脚本中使用该范围,它可能无效。在这种情况下,您可以将其作为文件下载并执行脚本。然后,您还必须处理执行策略。

答案 1 :(得分:1)

尝试

curl --user user:pass https://fake.url | powershell -Command -

如果Command的值为" - ",则从标准输入读取命令文本。