PowerShell Создать сценарий из сценария

#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