我正在尝试编写PowerShell脚本来管理我的服务器中的一些功能。我希望脚本的内容加载到变量中以便执行。原因是我有几台服务器,当我不得不在脚本中更改内容时,我不想一个接一个地输入。
我认为从get请求返回文本脚本然后用&执行。 以下是我正在做的测试:
$R = Invoke-WebRequest -URI http://www.goltratec.com/pruebas/powershell.php?a=1
$a = {$R.Content}
& $a
$ R.content返回“写主机'hola desde web'” 如果我做一个$ a.getType(),我得到的是一个ScriptBlock但是当我做& $ a我在控制台中看到
write-host 'hola desde web'
而不是
hola desde web
但是,如果我这样做
$b={write-host 'hola desde web'}
& $b
我可以看到
hola desde web
我也检查了$ a和$ b是同一类型。
发生了什么事?
谢谢..
答案 0 :(得分:1)
$a
只是变成了一个带有字符串的scriptblock。你想要:
$a = [scriptblock]::Create($R.Content)