Commit Graph

6947 Commits

Author SHA1 Message Date
Taliesin Sisson 9fbd1e472a Add support for mac spoofing and dynamic memory.
To enable nested virtualization, mac spoofing, no dynamic memory and at least 4gb of ram should be set for the vm. Set warning if this has not been done.
Detected Virtualization Extensions are supported by the machine your are running on, as it only works for Windows 10 and Windows Server 2016 onwards.
2016-12-12 22:45:04 +00:00
Patrick Lang 1277a25d0b Fix type casting 2016-12-12 22:45:03 +00:00
Patrick Lang 6d391fc34a Adding support for nested Hyper-V 2016-12-12 22:45:02 +00:00
Patrick Lang f94c2cd2f7 Adding nested virtualization support 2016-12-12 22:45:01 +00:00
Patrick Lang 6342e1525d s/EnabeSecureBoot/EnableSecureBoot/g 2016-12-12 22:45:01 +00:00
Taliesin Sisson 7ce9203530 Enable-VMIntegrationService cmdlet has a language dependent value for -Name option. So avoid using it, as it will break on machines with different languages. 2016-12-12 22:45:00 +00:00
Taliesin Sisson 9c53df1e0e Add special key modifiers to log output when used.
Update documentation to include new key modifiers.
2016-12-12 22:44:59 +00:00
Taliesin Sisson e636c3de3c Dvd drive creation will auto select the controller number and controller location. This fixes the bug of first generation machines not being able to add more then 1 dvd drive. 2016-12-12 22:44:58 +00:00
Taliesin Sisson 5f7290c6f8 Add type scan support for ctrl, shift, alt.
<leftAlt>
<leftCtrl>
<leftShift>
<rightAlt>
<rightCtrl>
<rightShift>

Add type support for combinations of ctr, alt, shift with (only use lower case characters with this):
<leftAltOn>
<leftCtrlOn>
<leftShiftOn>
<leftAltOff>
<leftCtrlOff>
<leftShiftOff>
<rightAltOn>
<rightCtrlOn>
<rightShiftOn>
<rightAltOff>
<rightCtrlOff>
<rightShiftOff>
2016-12-12 22:44:58 +00:00
Taliesin Sisson c1538c59c9 Builds in AppVeyor are failing as they do not have enough free memory. Drop the thresh hold a little more. 2016-12-12 22:44:57 +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
Taliesin Sisson 17597b48e1 Base64 encode powershell to avoid any necessary escaping 2016-12-12 22:44:54 +00:00
Taliesin Sisson 52c6cd5fc1 Test should run and pass even when run on an environment that does not have Powershel. 2016-12-12 22:44:53 +00:00
Taliesin Sisson 8c3239770d Skip these tests on platforms that don't have powershell installed 2016-12-12 22:44:52 +00:00
Taliesin Sisson 4721327bf6 Fix duplicate imports 2016-12-12 22:44:51 +00:00
Taliesin Sisson e5510873bb Added file with correct line endings
When dealing with windows the file url format is file:///c:/
On windows a lot of git clients will convert LF to CRLF. This would be a problem where file contents are compared exactly
2016-12-12 22:44:51 +00:00
Taliesin Sisson 807d7eaced On windows a lot of git clients will convert LF to CRLF. This would be a problem where file contents are compared exactly 2016-12-12 22:44:50 +00:00
Taliesin Sisson 4d22bd1d4a Generate switch name using uuid v1 2016-12-12 22:44:49 +00:00
Taliesin Sisson 5d5809b27e Make hiding of progress backward compatible with old versions of powershell 2016-12-12 22:44:48 +00:00
Taliesin Sisson 7c754bf791 Try to match style of other builders 2016-12-12 22:44:48 +00:00
Taliesin Sisson fb098fcbf0 http server has moved to common step 2016-12-12 22:44:47 +00:00
Taliesin Sisson de447779f8 Windows Server 2016 won't let you set the first boot device 2016-12-12 22:44:46 +00:00
Taliesin Sisson 181132f32b Forget to pass in the dvd drive to eject the iso from 2016-12-12 22:44:45 +00:00
Gildas Cherruel 872fc559f5 Export of Hyper-V/VMCX machines 2016-12-12 22:44:45 +00:00
Taliesin Sisson d878f4dd8e A workaround for bug in Windows 10 and Windows 2016 where you have to specify a path when creating a dvd drive 2016-12-12 22:44:44 +00:00
Taliesin Sisson 4ab2e8b252 try to get the virtual keyboard a number of different ways. This should hopefully work for Windows 7, Window 10 and Windows Server 2016 2016-12-12 22:44:43 +00:00
Taliesin Sisson 056fc59166 Do not try to type scancodes if there are none. We haven't figured out how to do this on Windows 10 or Windows 7 and below. This will at least allow other types of VMs to be built. 2016-12-12 22:44:42 +00:00
Gildas Cherruel 8734c5b25f Remove all Dvd Drives on Generation 1 2016-12-12 22:44:42 +00:00
Taliesin Sisson 199bee6885 Need to sleep after sending previous characters, not before 2016-12-12 22:44:41 +00:00
Taliesin Sisson bda2468404 removed unused reference 2016-12-12 22:44:40 +00:00
Taliesin Sisson d1961b7c8e Echo output when its used 2016-12-12 22:44:40 +00:00
Taliesin Sisson f8e3970d87 By default a gen 1 vm get a dvd drive. Remove it on creation so that it behaves the same as gen 2. 2016-12-12 22:44:38 +00:00
Taliesin Sisson 18241e5215 Setting boot drive is generation specific 2016-12-12 22:44:37 +00:00
Taliesin Sisson 93a2615f7a Fix gen 1 creation of dvd 2016-12-12 22:44:37 +00:00
Taliesin Sisson 07764c631e The default for wait is 1 second 2016-12-12 22:44:36 +00:00
Taliesin Sisson 8477a0b748 Accidentally included bracket 2016-12-12 22:44:35 +00:00
Taliesin Sisson e0c10dec12 If exit code = 1 and the length of the stderr is 0, then we can assume that the exit code was not set, so assume success 2016-12-12 22:44:34 +00:00
Taliesin Sisson e8c2b49be8 Use correct quotation of variables 2016-12-12 22:44:34 +00:00
Taliesin Sisson 4b394c8563 Write output will put ouput from function, so we don't want to be getting line from output of function
Fix unit tests for not showing progress stream when using powershell
Ensure that progress stream does not get leaked into stdout
Using Write-Output instead of Write-Host since PS v5 now leaks the host stream to stderr
2016-12-12 22:44:33 +00:00
Taliesin Sisson c42cb88ddd Using Write-Output instead of Write-Host since PS v5 now leaks the host stream to stderr 2016-12-12 22:44:32 +00:00
Taliesin Sisson fe8d99fd8a If we are not getting the exit code assigned then default to it being successful
Useful to know what the exit code is if there is an error
2016-12-12 22:44:31 +00:00
Taliesin Sisson 3cb621f890 Get rid of mount and unmount that does not specify controller location exactly
Handle cleanup if unmount step has not already done so
2016-12-12 22:44:30 +00:00
Taliesin Sisson 31ac1da28d Setting boot drive message 2016-12-12 22:44:30 +00:00
Taliesin Sisson 4b6ce3da60 Build agents might not have guest additions 2016-12-12 22:44:29 +00:00
Taliesin Sisson aaf9007249 Include cache in the state bag. 2016-12-12 22:44:28 +00:00
Taliesin Sisson 50a8d1b6b4 Forgot to check in these files. 2016-12-12 22:44:27 +00:00
Taliesin Sisson 010d171bec GuestAdditionsMode and GuestAdditionsPath can be set in config. If GuestAdditionsMode == "attach" it will mount the HyperV Integration Services ISO. If GuestAdditionsPath is set, then it will be used as an alternative to where the HyperV Integration Service ISO is.
Included the build step to download ISO, so iso_urls works properly now.
Online activation should be done via provisioner
Installation of integration services should be done via provisioner
Cleaned up the way dvd drives are mounted and unmounted (still need to implement feature to find unused drives before adding a new one)
Cleaned up the way floppies are mounted and unmounted
2016-12-12 22:44:27 +00:00
Taliesin Sisson 422efeeaf6 Make use of driver instead of directly referencing hyper
Move inline powershell to hyperv
2016-12-12 22:44:26 +00:00