#powershell #windows-server-2008 #windows-server-2012
#powershell #windows-server-2008 #windows-server-2012
Вопрос:
Я хочу создать сценарий Powershell из сценария Powershell.
Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно создать и запустить сценарий с удаленного терминала Powershell на нескольких компьютерах. Сценарий должен быть на локальном компьютере. К сожалению, я не думаю, что Invoke-Command или Enter-PSSession доступны, поскольку версия Powershell, установленная на разных компьютерах, может быть несовместима с ними. Или это сделало бы жизнь намного проще 🙁
Итак, исходя из фона UNIX / Linux, я надеялся создать сценарий PowerShell с использованием обычного текста, а затем выполнить сценарий локально. К сожалению, как новичок в мире Powershell, я надеялся, что сценарий powershell передаст обычный текст, а не передаст выполненный вывод сценарию powershell, создаваемому на локальном компьютере.
Чтобы проверить ситуацию, вот небольшой сценарий, который я написал, и выходные данные. ПО сравнению с желаемым результатом.
Заранее спасибо!
Сценарий:
$var = @"
ping 8.8.8.8
"$env:computername"
"@
$var > UserspcDesktopping.ps1
C:UserspcDesktopping.ps1
Remove-Item -Path C:UserspcDesktopping.ps1 -Force
Вывод
ping 8.8.8.8
"DESKTOP-****"
Желаемый результат
ping 8.8.8.8
$env:computername
Ответ №1:
Вы захотите использовать одинарные кавычки ( '
), чтобы избежать расширения переменной:
$var = @'
ping 8.8.8.8
$env:computername
'@
$var > UserspcDesktopping.ps1