问题描述
我希望从Powershell脚本中创建Powershell脚本。
我遇到的问题是,我需要从远程Powershell终端向多台计算机构建并运行脚本。脚本必须在本地计算机上。不幸的是,我认为Invoke-Command或Enter-PSSession不可用,因为安装在各种计算机上的Powershell版本可能与它们不兼容。否则,这会使生活变得更加轻松:(
所以我来自UNIX / Linux背景,我希望使用纯文本创建PowerShell脚本,然后在本地执行该脚本。不幸的是,作为Powershell世界的新手,我希望Powershell脚本传递纯文本,而不希望将执行的输出传递给在本地计算机上创建的Powershell脚本。
在这里测试水域是我写的一个小脚本和输出。 VS所需的输出。
预先感谢!
脚本:
$var = @"
ping 8.8.8.8
"$env:computername"
"@
$var > \Users\pc\Desktop\ping.ps1
C:\Users\pc\Desktop\ping.ps1
Remove-Item -Path C:\Users\pc\Desktop\ping.ps1 -Force
输出
ping 8.8.8.8
"DESKTOP-****"
所需的输出
ping 8.8.8.8
$env:computername
解决方法
您将要使用单引号('
)以避免变量扩展:
$var = @'
ping 8.8.8.8
$env:computername
'@
$var > \Users\pc\Desktop\ping.ps1