3

I am testing the use of the DSC File resource for copying a directory of files from a shared folder to another machine.

My problem is that this works once but running the same code a second time fails. If I restart the target machine the script will again run correctly but fail a second time.

Can anyone tell me why this is and whether I need to be doing something differently?

The machines I am using are called:

"S1" => Server 2012 R2 (This has the shared folder and user setup for read access)

"S2" => Virtual Server 2012 R2 running on S1 (This is the target machine)

The script I am running is this:

$ConfigurationData = @{
    AllNodes = @(
        @{
            NodeName="*"
            PSDscAllowPlainTextPassword = $true

        }
        @{
            NodeName = "S2"
        }
    )    
}

Configuration Test {

    param (
        [Parameter(Mandatory=$true)]
        [PSCredential]$credential
    )

    Node $AllNodes.NodeName {

        File DirectoryCopy {
            DestinationPath = "C:\Shared\Files"
            SourcePath = "\\S1\Shared\Files"
            Ensure = "present"
            Credential = $credential
            Type = "Directory"
            Recurse = $true
        }
    }
}

$username = "dscUser"
$password="dscPassword!"|ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object System.Management.Automation.PsCredential("$username",$password)

Test -OutputPath "C:\Scripts" -ConfigurationData $ConfigurationData -Credential $credential
Start-DscConfiguration -ComputerName S2 -path "C:\Scripts" -Verbose -Wait

The output of running this twice are this:

PS C:\repo> C:\Scripts\Test.ps1


    Directory: C:\Scripts


Mode                LastWriteTime     Length Name                                                                                                                                  
----                -------------     ------ ----                                                                                                                                  
-a---        16/10/2015     11:12       1646 S2.mof                                                                                                                                
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = SendConfigurationApply,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = ro
ot/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer S1 with user sid S-1-5-21-1747786857-595474378-2516325245-500.
VERBOSE: [S2]: LCM:  [ Start  Set      ]
VERBOSE: [S2]: LCM:  [ Start  Resource ]  [[File]DirectoryCopy]
VERBOSE: [S2]: LCM:  [ Start  Test     ]  [[File]DirectoryCopy]
VERBOSE: [S2]:                            [[File]DirectoryCopy] Building file list from cache.
VERBOSE: [S2]: LCM:  [ End    Test     ]  [[File]DirectoryCopy]  in 0.2500 seconds.
VERBOSE: [S2]: LCM:  [ Start  Set      ]  [[File]DirectoryCopy]
VERBOSE: [S2]:                            [[File]DirectoryCopy] Building file list from cache.
VERBOSE: [S2]: LCM:  [ End    Set      ]  [[File]DirectoryCopy]  in 0.2660 seconds.
VERBOSE: [S2]: LCM:  [ End    Resource ]  [[File]DirectoryCopy]
VERBOSE: [S2]: LCM:  [ End    Set      ]
VERBOSE: [S2]: LCM:  [ End    Set      ]    in  0.6720 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 1.59 seconds



PS C:\repo> C:\Scripts\Test.ps1


    Directory: C:\Scripts


Mode                LastWriteTime     Length Name                                                                                                                                  
----                -------------     ------ ----                                                                                                                                  
-a---        16/10/2015     11:13       1646 S2.mof                                                                                                                                
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = SendConfigurationApply,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = ro
ot/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer S1 with user sid S-1-5-21-1747786857-595474378-2516325245-500.
VERBOSE: [S2]: LCM:  [ Start  Set      ]
VERBOSE: [S2]: LCM:  [ Start  Resource ]  [[File]DirectoryCopy]
VERBOSE: [S2]: LCM:  [ Start  Test     ]  [[File]DirectoryCopy]
VERBOSE: [S2]:                            [[File]DirectoryCopy] An error occurs when accessing the network share with the specified credential. Please make sure the credential is c
orrect and the network share is accessible. Note that Credential should not be specified with the local path.
VERBOSE: [S2]:                            [[File]DirectoryCopy] The related file/directory is: \\S1\Shared\Files.
A specified logon session does not exist. It may already have been terminated. An error occurs when accessing the network share with the specified credential. Please make sure 
the credential is correct and the network share is accessible. Note that Credential should not be specified with the local path. The related file/directory is: \\S1\Shared\Files. 
    + CategoryInfo          : NotSpecified: (:) [], CimException
    + FullyQualifiedErrorId : Windows System Error 1312
    + PSComputerName        : S2

VERBOSE: [S2]: LCM:  [ End    Set      ]
LCM failed to move one or more resources to their desired state.
    + CategoryInfo          : NotSpecified: (root/Microsoft/...gurationManager:String) [], CimException
    + FullyQualifiedErrorId : MI RESULT 1
    + PSComputerName        : S2

VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 3.027 seconds

Any help with this is appreciated as its driving me nuts.

Thanks.

nuxibyte
  • 1,434
  • 1
  • 13
  • 16

1 Answers1

2

I (think) I have found the answer.

When specifying the username I should have used 'S1\dscUser' instead of 'dscUser'.

These machines are not in a domain.

nuxibyte
  • 1,434
  • 1
  • 13
  • 16
  • It does beg the question why this worked the first time through. If anyone can shed any light on that... – nuxibyte Oct 16 '15 at 11:18