VMFleet: The specified network password is not correct


When you do setup of VMFleet in order to run S2D stress and performance tests, you are required to provide values for parameters connectuser and connectpass to describe user credentials for loopback host connection as shown in the example:

.\create-vmfleet.ps1 -basevhd 'C:\ClusterStorage\Collect\VMFleet-Gold_disk_1.vhdx' -vms 10 -adminpass 'Pass123' -connectuser 'rllab\rlevchenko' -connectpass 'RTY$nTyK@2y9'

These credentials are then injected to each VMFleet VM (162 and 163 strings in the create-vmfleet.ps1):

del -Force z:\users\administrator\launch.ps1 -ErrorAction SilentlyContinue
gc C:\ClusterStorage\collect\control\launch-template.ps1 |% { $_ -replace '__CONNECTUSER__',$using:connectuser -replace '__CONNECTPASS__',$using:connectpass } > z:\users\administrator\launch.ps1

Once VMFleet deployed required VMs, you usually start them by using start-vmfleet.ps1, and then VMFleet automatically tries running the injected launch.ps1 mentioned above :

$script = 'c:\run\master.ps1'

while ($true) {
    Write-Host -fore Green Launching $script `@ $(Get-Date)
    & $script -connectuser __CONNECTUSER__ -connectpass __CONNECTPASS__
    sleep -Seconds 1
}

As a result, master.ps1 will be executed on autologon by each VM using the provided connectuser and connectpass parameters. Master.ps1 establishes a mapping a location containing the Run Script (a standalone load script) and a problem that you might experience at this stage  – wrong credentials.

If you, like me, using special characters in the password (for example, $, @ and etc), you will need to type password using this format: ‘’’ password ‘’’. Otherwise, VMs won’t make a SMB mapping and master.ps1 script failed. The reason is that  connectpass and connectuser values are pasted to the launch.ps1  without any escaping (‘’, “ “ and so on) and PowerShell can cut off your password. So, the right command to create VMFleet VMs, in my example, looks as follows:

.\create-vmfleet.ps1 -basevhd 'C:\ClusterStorage\Collect\VMFleet-Gold_disk_1.vhdx' -vms 10 -adminpass 'Pass123' -connectuser 'rllab\rlevchenko' -connectpass '''RTY$nTyK@2y9'''

I’d also recommend to change ErrorAction to Stop in master.ps1 (45-49 strings) before creating VMs to simplify troubleshooting in case of any errors:

$null = net use l: /d

if ($(Get-SmbMapping) -eq $null) {
    New-SmbMapping -LocalPath l: -RemotePath \\169.254.1.1\c$\clusterstorage\collect\control -UserName $connectuser -Password $connectpass -ErrorAction Stop
}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s