Commit Graph

66 Commits

Author SHA1 Message Date
DanHam ef4817d644 Fix vertical spacing 2018-03-23 14:01:30 +00:00
DanHam 34db6c4ab1
Remove temp debugging output 2018-03-23 12:45:49 +00:00
Megan Marsh 4e321b2dfa don't need to use a receiver with this function 2018-03-22 15:55:24 -07:00
Megan Marsh ce1ab1f021 fix winrm password 2018-03-15 09:44:22 -07:00
Megan Marsh 559719020c use {{.WinRMPassword}} instead of some other weirdness 2018-03-14 17:19:17 -07:00
Megan Marsh d689e6b4d3 allow users of AWS to use the dynamically-generated admin password which we use as the winRM password as an elevated password in the Powershell provisioner, as well as an environment variable in same provisoner. 2018-03-14 15:58:12 -07:00
Josh Soref 24b4c36fc9 spelling: function 2018-03-13 07:52:02 +00:00
Josh Soref 04d6bfc696 spelling: environment 2018-03-13 07:41:21 +00:00
Megan Marsh f3a538db46 fix tests 2018-03-09 13:36:47 -08:00
Megan Marsh 3faf73b5f3 change backslashes to forward slashes in powershell provisioner; was breaking with cygwin 2018-03-09 09:29:29 -08:00
DanHam 2d830d5d43
Auto escape chars special to PowerShell in user supplied data 2018-02-08 12:03:19 +00:00
DanHam aaf7102b9a
Tests for escape of chars special to PowerShell in user supplied data 2018-02-08 12:03:18 +00:00
DanHam a7b118ed94
Fix tests post changes. Add test for upload func. 2018-02-08 12:03:18 +00:00
DanHam 478589abec
Extend upload and subsequent 'dot sourcing' of env vars to std PS command
* Wrap funcs to flatten and upload env vars with new func prepareEnvVars.
  While the wrapped funcs could be combined, keeping them separate
  simplifies testing.
* Configure/refactor std and elevated PS to use new funcs to prepare,
  upload and dot source env vars.
* Dot sourcing the env vars in this way avoids the need to embed them
  directly in the command string. This avoids the need to escape the env
  vars to ensure the command string is correctly parsed.
* Characters within the env vars that are special to PS (such as $'s
  and backticks) will still need to be escaped to allow them to be
  correctly interpreted by PS.
* The std and elevated PS commands now inject env vars into the remote
  env via the same mechanism. This ensures consistent behaviour across the
  two command types.

Fixes #5471
2018-02-08 12:03:18 +00:00
Megan Marsh addedbb680 Revert "Merge pull request #5515 from DanHam/dot-source-env-vars"
revert so we can use a branch that's had more recent work done
This reverts commit e56849c605, reversing
changes made to 6d14eb6ea4.
2018-02-02 09:58:39 -08:00
Megan Marsh 79fe900378 Revert "Merge pull request #5376 from DanHam/ps-escapes"
Revert so that we can merge a different branch that's had more recent work instead
This reverts commit ba518637d4, reversing
changes made to e56849c605.
2018-02-02 09:57:36 -08:00
DanHam 7443adf2fd Simpler escape of chars special to PowerShell in user supplied data 2018-02-01 13:19:07 -08:00
DanHam 68e13c90b1 Revert "Escape chars special to PowerShell in user supplied data"
This reverts commit 53aefe744bcd74ee6ac866f764eafe9e7f507d80.
2018-02-01 13:19:07 -08:00
DanHam b67c64fd66 Tests for escape of chars special to PowerShell in user supplied data 2018-02-01 13:19:07 -08:00
DanHam f3c326bb3c Escape chars special to PowerShell in user supplied data 2018-02-01 13:11:05 -08:00
DanHam 4b89fc1c00
Fix tests post changes. Add test for upload func. 2017-10-30 21:08:14 +00:00
DanHam 5949bc91c4
Extend upload and subsequent 'dot sourcing' of env vars to std PS command
* Wrap funcs to flatten and upload env vars with new func prepareEnvVars.
  While the wrapped funcs could be combined, keeping them separate
  simplifies testing.
* Configure/refactor std and elevated PS to use new funcs to prepare,
  upload and dot source env vars.
* Dot sourcing the env vars in this way avoids the need to embed them
  directly in the command string. This avoids the need to escape the env
  vars to ensure the command string is correctly parsed.
* Characters within the env vars that are special to PS (such as $'s
  and backticks) will still need to be escaped to allow them to be
  correctly interpreted by PS.
* The std and elevated PS commands now inject env vars into the remote
  env via the same mechanism. This ensures consistent behaviour across the
  two command types.

Fixes #5471
2017-10-30 21:08:13 +00:00
DanHam fa5fd602aa Fix tests post changes 2017-09-26 11:07:26 +01:00
DanHam 8214a12a2a Move append of portion of command used to send elevated PS output to file 2017-09-26 11:07:26 +01:00
DanHam 2a060adbf8 Don't use -EncodedCommand with PS as progress stream always leaks to stderr
* Setting $ProgressPreference to SilentlyContinue makes no difference
  when -EncodedCommand is used - any output to the progress stream
  still appears on stderr.
* Delete file containing encode/decode functions since we no longer
  need them.
* Fixes leak of output on progress streams for both normal and elevated
  commands.
* Since we no longer base64 encode, ensure any characters special to XML
  are correctly escaped in the elevated command. This ensures correct
  parsing once the command is wrapped within the elevatedTemplates XML
  based Task Scheduler definition.

Fixes #4322
2017-09-26 11:07:11 +01:00
DanHam 5374c6e367
Use system context env var to set path for elevated PS env vars file 2017-09-21 12:08:29 +01:00
Matthew Hooker af1187d5e1
simplify a bit 2017-09-15 10:06:54 -07:00
Megan Marsh b05c673a14 Update powershell provisioner test with new default 2017-09-15 08:17:17 -07:00
Megan Marsh cbe1d7d854 simplify file upload for elevated powershell wrapper 2017-09-14 17:01:48 -07:00
Megan Marsh 92e70757bb Move env vars into a file that we dot-source instead of trying to write them all to the command line 2017-09-14 17:00:57 -07:00
Megan Marsh d458628529 exclude elevated_executed_command from config interpolation so it can be used correctly later 2017-09-14 10:50:32 -07:00
Megan Marsh c6889ad009 clarify logging by changing 'shell' to 'powershell' inside of the powershell provisioner 2017-09-06 11:59:25 -07:00
Megan Marsh b2923b4da6 check stdout to make sure echo command actually goes through before counting computer as fully restarted 2017-08-24 12:10:27 -07:00
Megan Marsh 89b058604d update tests for pull 5272 2017-08-22 14:20:40 -07:00
Megan Marsh 5214851463 make every script name unique 2017-08-22 14:03:28 -07:00
Luke Farnell d9a5b69403 clean up ineffectual assignments 2017-08-07 13:20:01 -04:00
Matthew Hooker 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Matthew Hooker 0149f679de
Print instead of Printf with no dynamic first variable. 2017-03-28 20:36:20 -07:00
DanHam 370b67497e
provisioner/powershell: Don't over complicate removal of tmp output file 2017-01-26 11:21:45 +00:00
DanHam 21be983855 provisioner/powershell: Use system context env var to set output file path
Fixes #4271
2017-01-26 00:17:46 +00:00
DanHam c88fafdf38 provisioner/powershell: align, fix and compact env var test 2017-01-23 12:10:46 +00:00
DanHam 4122f3a897 provisioner/powershell: Remove env var check - we already check in Prepare 2017-01-23 12:10:46 +00:00
DanHam 80ebcea5e1
Mirror cleaner test code back from windows-shell to powershell 2017-01-19 13:33:59 +00:00
Matthew Hooker 480398c3d2
only set PACKER_HTTP_ADDR if a server is listening 2017-01-17 17:17:36 -08:00
Matthew Hooker 6563eb213c
Document. add to windows-shell and powershell 2017-01-17 17:07:36 -08:00
DanHam 0423f91037
Fix to allow equals sign in value of environment variable 2016-12-28 00:33:16 +00:00
DanHam be0196492f
Tests for env variables values starting with or containing an equals sign 2016-12-28 00:31:17 +00:00
Taliesin Sisson f38d787b0e Powershell uses UTF16Le for encodedCommand 2016-12-12 22:44:56 +00:00
Taliesin Sisson e36051d394 Pattern for infrastructure changed to quote filename and execute file with ampersand as everything is run in powershell now
Handle powershell commands by specifying any extra infrastructure around running scripts inside of ExecuteCommand and ElevatedExecuteCommand
2016-12-12 22:44:55 +00:00
Taliesin Sisson d61513bf77 Encode powershell using utf8
Fix a bug in the size of string that was returned when decoding a base64 string
Added tests around encoding and decoding powershell scripts. Used [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('powershell commands')) | clip to generate what base 64 strings should look like
2016-12-12 22:44:54 +00:00