Skip to content

Silently fails to create share for synced folder with Hyper-V on Windows host #10628

@fsackur

Description

@fsackur

Vagrant version

2.2.3

Host operating system

Windows 10.0.17763.0, clean build, no Docker. Enterprise managed, we do have security agents, but they don't pop up any notifications.

Guest operating system

Ubuntu 16.04

Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.define "ubuntu", primary: true do |ubuntu|
    ubuntu.vm.box = "generic/ubuntu1604"
    config.vm.provider "hyperv" do |vb|
      vb.maxmemory = "4096"
      vb.maxmemory = "2048"
    end

    config.vm.provision "shell", inline: <<-SHELL
      apt-get install -y cifs-utils </dev/null
    SHELL

    config.vm.synced_folder '../', '/vagrant', {
      type: 'smb',
      mount_options: ['vers=3.0']
      # have tried with following options: no change
      #smb_host: '172.17.118.161',
      #smb_username: ENV['VAGRANT_SMB_USERNAME'],
      #smb_password: ENV['VAGRANT_SMB_PASSWORD']
    }
    config.vm.provision "shell", inline: <<-SHELL
      echo "export HOST_OS=#{ENV['OS']}" >> /etc/profile.d/hostos.sh
    SHELL
    config.vm.provision :shell, path: "bootstrap.sh"
  end
end

Debug output

 INFO interface: detail:     ubuntu: You will be asked for the username and password to use for the SMB
    ubuntu: folders shortly. Please use the proper username/password of your
    ubuntu: account.
    ubuntu:
    ubuntu: You will be asked for the username and password to use for the SMB
    ubuntu: folders shortly. Please use the proper username/password of your
    ubuntu: account.
    ubuntu:
 INFO interface: ask: Username:
 INFO interface: ask:     ubuntu: Username:
    ubuntu: Username: ***REDACTED***
 INFO interface: ask: Password (will be hidden):
 INFO interface: ask:     ubuntu: Password (will be hidden):
    ubuntu: Password (will be hidden):
DEBUG host: Searching for cap: smb_validate_password
DEBUG host: Checking in: windows
DEBUG host: Searching for cap: smb_start
DEBUG host: Checking in: windows
DEBUG host: Searching for cap: smb_prepare
DEBUG host: Checking in: windows
DEBUG host: Found cap: smb_prepare in windows
 INFO host: Execute capability: smb_prepare [#<Vagrant::Environment: C:/GithubData/monov/stepladder>, #<Vagrant::Machine: ubuntu (VagrantPlugins::HyperV::Provider)>, {"/vagrant"=>{:disabled=>false, :guestpath=>"/vagrant", :hostpath=>"C:/Githubdata/monov", :type=>:smb, :mount_options=>["vers=3.0"], :__vagrantfile=>true, :smb_username=>"***REDACTED***", :smb_password=>"*****"}}, {}] (windows)
 INFO subprocess: Starting process: ["C:\\windows\\System32\\WindowsPowerShell\\v1.0\\/powershell.EXE", "-NoLogo", "-NoProfile", "-NonInteractive", "-ExecutionPolicy", "Bypass", "-Command", "Get-SmbShare|Format-List|Out-String -Width 4096"]
 INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stdout:

Name        : ADMIN$
ScopeName   : *
Path        : C:\windows
Description : Remote Admin

Name        : C$
ScopeName   : *
Path        : C:\
Description : Default share

Name        : IPC$
ScopeName   : *
Path        :
Description : Remote IPC





DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 31999
DEBUG subprocess: Exit status: 0
DEBUG smb: local share listing: {"ADMIN$"=>{"Path"=>"C:\\windows", "Description"=>"Remote Admin"}, "C$"=>{"Path"=>"C:\\", "Description"=>"Default share"}, "IPC$"=>{"Path"=>"", "Description"=>"Remote IPC"}, "test"=>{"Path"=>"C:\\test", "Description"=>""}}
DEBUG smb: generating machine ID name=ubuntu cwd=C:/GithubData/monov/stepladder
 INFO smb: creating new share name=vgt-cb537e4512c0aa89971e7a52a9c6c30e-6ad5fdbcbf2eaa93bd62f92333a2e6e5 id=vgt-cb537e4512c0aa89971e7a52a9c6c30e-6ad5fdbcbf2eaa93bd62f92333a2e6e5
 INFO interface: warn:
Vagrant requires administrator access to create SMB shares and
may request access to complete setup of configured shares.


Vagrant requires administrator access to create SMB shares and
may request access to complete setup of configured shares.

 INFO subprocess: Starting process: ["C:\\windows\\System32\\WindowsPowerShell\\v1.0\\/powershell.EXE", "-NoLogo", "-NoProfile", "-NonInteractive", "-ExecutionPolicy", "Bypass", "-Command", "$p = Start-Process -FilePath powershell -ArgumentList @('-NoLogo', '-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-EncodedCommand', 'JABwACAAPQAgAFMAdABhAHIAdAAtAFAAcgBvAGMAZQBzAHMAIAAtAEYAaQBsAGUAUABhAHQAaAAgAHAAbwB3AGUAcgBzAGgAZQBsAGwAIAAtAEEAcgBnAHUAbQBlAG4AdABMAGkAcwB0ACAAQAAoACcALQBOAG8ATABvAGcAbwAnACwAIAAnAC0ATgBvAFAAcgBvAGYAaQBsAGUAJwAsACAAJwAtAE4AbwBuAEkAbgB0AGUAcgBhAGMAdABpAHYAZQAnACwAIAAnAC0ARQB4AGUAYwB1AHQAaQBvAG4AUABvAGwAaQBjAHkAJwAsACAAJwBCAHkAcABhAHMAcwAnACwAIAAnAC0ARQBuAGMAbwBkAGUAZABDAG8AbQBtAGEAbgBkACcALAAgACcASgBnAEEAZwBBAEMASQBBAFEAdwBBADYAQQBDADgAQQBTAEEAQgBoAEEASABNAEEAYQBBAEIAcABBAEUATQBBAGIAdwBCAHkAQQBIAEEAQQBMAHcAQgBXAEEARwBFAEEAWgB3AEIAeQBBAEcARQBBAGIAZwBCADAAQQBDADgAQQBaAFEAQgB0AEEARwBJAEEAWgBRAEIAawBBAEcAUQBBAFoAUQBCAGsAQQBDADgAQQBaAHcAQgBsAEEARwAwAEEAYwB3AEEAdgBBAEQASQBBAEwAZwBBAHkAQQBDADQAQQBNAHcAQQB2AEEARwBjAEEAWgBRAEIAdABBAEgATQBBAEwAdwBCADIAQQBHAEUAQQBaAHcAQgB5AEEARwBFAEEAYgBnAEIAMABBAEMAMABBAE0AZwBBAHUAQQBEAEkAQQBMAGcAQQB6AEEAQwA4AEEAYwBBAEIAcwBBAEgAVQBBAFoAdwBCAHAAQQBHADQAQQBjAHcAQQB2AEEARwBnAEEAYgB3AEIAegBBAEgAUQBBAGMAdwBBAHYAQQBIAGMAQQBhAFEAQgB1AEEARwBRAEEAYgB3AEIAMwBBAEgATQBBAEwAdwBCAHoAQQBHAE0AQQBjAGcAQgBwAEEASABBAEEAZABBAEIAegBBAEMAOABBAGMAdwBCAGwAQQBIAFEAQQBYAHcAQgB6AEEARwBnAEEAWQBRAEIAeQBBAEcAVQBBAEwAZwBCAHcAQQBIAE0AQQBNAFEAQQBpAEEAQwBBAEEASQBnAEIARABBAEQAbwBBAFgAQQBCAEgAQQBHAGsAQQBkAEEAQgBvAEEASABVAEEAWQBnAEIAawBBAEcARQBBAGQAQQBCAGgAQQBGAHcAQQBiAFEAQgB2AEEARwA0AEEAYgB3AEIAMgBBAEMASQBBAEkAQQBBAGkAQQBIAFkAQQBaAHcAQgAwAEEAQwAwAEEAWQB3AEIAaQBBAEQAVQBBAE0AdwBBADMAQQBHAFUAQQBOAEEAQQAxAEEARABFAEEATQBnAEIAagBBAEQAQQBBAFkAUQBCAGgAQQBEAGcAQQBPAFEAQQA1AEEARABjAEEATQBRAEIAbABBAEQAYwBBAFkAUQBBADEAQQBEAEkAQQBZAFEAQQA1AEEARwBNAEEATgBnAEIAagBBAEQATQBBAE0AQQBCAGwAQQBDADAAQQBOAGcAQgBoAEEARwBRAEEATgBRAEIAbQBBAEcAUQBBAFkAZwBCAGoAQQBHAEkAQQBaAGcAQQB5AEEARwBVAEEAWQBRAEIAaABBAEQAawBBAE0AdwBCAGkAQQBHAFEAQQBOAGcAQQB5AEEARwBZAEEATwBRAEEAeQBBAEQATQBBAE0AdwBBAHoAQQBHAEUAQQBNAGcAQgBsAEEARABZAEEAWgBRAEEAMQBBAEMASQBBAEkAQQBBAGkAQQBIAFkAQQBaAHcAQgAwAEEAQwAwAEEAWQB3AEIAaQBBAEQAVQBBAE0AdwBBADMAQQBHAFUAQQBOAEEAQQAxAEEARABFAEEATQBnAEIAagBBAEQAQQBBAFkAUQBCAGgAQQBEAGcAQQBPAFEAQQA1AEEARABjAEEATQBRAEIAbABBAEQAYwBBAFkAUQBBADEAQQBEAEkAQQBZAFEAQQA1AEEARwBNAEEATgBnAEIAagBBAEQATQBBAE0AQQBCAGwAQQBDADAAQQBOAGcAQgBoAEEARwBRAEEATgBRAEIAbQBBAEcAUQBBAFkAZwBCAGoAQQBHAEkAQQBaAGcAQQB5AEEARwBVAEEAWQBRAEIAaABBAEQAawBBAE0AdwBCAGkAQQBHAFEAQQBOAGcAQQB5AEEARwBZAEEATwBRAEEAeQBBAEQATQBBAE0AdwBBAHoAQQBHAEUAQQBNAGcAQgBsAEEARABZAEEAWgBRAEEAMQBBAEMASQBBAEkAQQBBADcAQQBDAEEAQQBaAFEAQgA0AEEARwBrAEEAZABBAEEAZwBBAEMAUQBBAFQAQQBCAEIAQQBGAE0AQQBWAEEAQgBGAEEARgBnAEEAUwBRAEIAVQBBAEUATQBBAFQAdwBCAEUAQQBFAFUAQQBPAHcAQQA9ACcAKQAgAC0AUABhAHMAcwBUAGgAcgB1ACAALQBXAGkAbgBkAG8AdwBTAHQAeQBsAGUAIABIAGkAZABkAGUAbgAgAC0AVwBhAGkAdAAgAC0AUgBlAGQAaQByAGUAYwB0AFMAdABhAG4AZABhAHIAZABPAHUAdABwAHUAdAAgACcAQwA6AC8AVQBzAGUAcgBzAC8AQQBEAE0ASQBOAEkAfgAxAC8AQQBwAHAARABhAHQAYQAvAEwAbwBjAGEAbAAvAFQAZQBtAHAALwB2AGEAZwByAGEAbgB0ADIAMAAxADkAMAAxADIAOQAtADEAMQA5ADQAOAAtADEAeAA5AGsANgA3AC8AcwB0AGQAbwB1AHQALgB0AHgAdAAnACAALQBSAGUAZABpAHIAZQBjAHQAUwB0AGEAbgBkAGEAcgBkAEUAcgByAG8AcgAgACcAQwA6AC8AVQBzAGUAcgBzAC8AQQBEAE0ASQBOAEkAfgAxAC8AQQBwAHAARABhAHQAYQAvAEwAbwBjAGEAbAAvAFQAZQBtAHAALwB2AGEAZwByAGEAbgB0ADIAMAAxADkAMAAxADIAOQAtADEAMQA5ADQAOAAtADEAeAA5AGsANgA3AC8AcwB0AGQAZQByAHIALgB0AHgAdAAnADsAIABpAGYAKAAkAHAAKQB7ACAAZQB4AGkAdAAgACQAcAAuAEUAeABpAHQAQwBvAGQAZQA7ACAAfQBlAGwAcwBlAHsAIABlAHgAaQB0ACAAMQAgAH0A') -PassThru -WindowStyle Hidden -Wait -Verb RunAs; if($p){ exit $p.ExitCode; }else{ exit 1 }"]
 INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 31998
DEBUG subprocess: Exit status: 1
ERROR warden: Error occurred: Exporting an SMB share failed! Details about the failure are shown
below. Please inspect the error message and correct any problems.

Host path:

Stderr:

Stdout:

Expected behavior

SMB share created, visible with net share. No UAC popup expected, as running console as admin. OR, if command fails, we get diagnostic output.

Actual behavior

Share not created. HOWEVER, if I decode the Base64 string and run THAT, command completes as expected and share is created. No diagnostic output if not running with --debug`, I find this unhelpful:

ERROR warden: Error occurred: Exporting an SMB share failed! Details about the failure are shown
below. Please inspect the error message and correct any problems.

Host path:

Stderr:

Stdout:
$EncodedText = 'JABwACAAPQAgAFMAdABhAHIAdAAtAFAAcgBvAGMAZQBzAHMAIAAtAEYAaQBsAGUAUABhAHQAaAAgAHAAbwB3AGUAcgBzAGgAZQBsAGwAIAA... etc ...'
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))

Steps to reproduce

  1. Run vagrant up in a console that's running as administrator
  2. Put in valid creds
  3. Profit???

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions