据我了解,invoke运算符(&)和Invoke-Expression cmdlet的行为应相似。但是,如下所示,情况并非如此:
PS C:\Users\admin> powershell -Command "& {""([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('ZWNobyAnaGVsb
G93b3JsZCc=')))""}"
echo 'helloworld'
PS C:\Users\admin> powershell -Command "IEX ""([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('ZWNobyAnaGVs
bG93b3JsZCc=')))"""
helloworld
Run Code Online (Sandbox Code Playgroud)
这'ZWNobyAnaGVsbG93b3JsZCc='是Base64编码的字符串"echo helloworld"。
有人可以澄清吗?