升级到 1.7.4 后,Vagrant 无法挂载 SMB

Vagrant unable to mount SMB after upgrade to 1.7.4

我在 windows 8 上使用 vagrant,hyper-v 提供程序启动 windows 服务器 2012 框。

在我更新到 vagrant 1.7.4 之前,我使用的是 1.7.2 版本,一切正常。

但是更新后我在尝试装载共享文件夹时遇到错误:

The following WinRM command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

cmdkey /add:xxx.xxx.xxx.xxx /user:DOMAIN\user /pass:Password

Stdout from the command:



Stderr from the command:

Exception calling "RegisterTaskDefinition" with "7" argument(s): "The user
name or password is incorrect. (Exception from HRESULT: 0x8007052E)"
At C:\tmp\vagrant-elevated-shell.ps1:58 char:1
+ $folder.RegisterTaskDefinition($task_name, $task, 6, $username, $password,
1, $n ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation

我已经替换了行中的详细信息:

cmdkey /add:xxx.xxx.xxx.xxx /user:DOMAIN\user /pass:Password

出于显而易见的原因使用占位符。我确实在 VM 中尝试 运行 上面的命令,我得到以下输出:

CMDKEY: Credential added successfully.

所以我假设它工作正常。 1.7.4 中有什么改变或损坏吗?

我已经找到解决办法。

我们的密码包含美元符号 ($),这些在 vagrant-elevated-shell.ps1 脚本中被删除了。

我已经分叉了 vagrant 回购并进行了更改并提出了拉取请求 - https://github.com/mitchellh/vagrant/pull/6452

要修补您的本地环境,您可以在本地计算机上找到 communicator.rb 文件:

C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.7.4\plugins\communicators\winrm\communicator.rb

(前提是您使用安装程序中的默认设置)