Почему это использование файлового ресурса DSC с использованием общей папки удается только один раз?

Я тестирую использование ресурса DSC File для копирования каталога файлов из общей папки на другой компьютер.

Моя проблема в том, что это работает один раз, но второй раз запустить тот же код не удается. Если я перезапущу целевую машину, сценарий снова запустится правильно, но во второй раз произойдет сбой.

Может ли кто-нибудь сказать мне, почему это так и нужно ли мне делать что-то по-другому?

Машины, которыми я пользуюсь, называются:

«S1» => Server 2012 R2 (имеет общую папку и настройки пользователя для доступа на чтение)

«S2» => Virtual Server 2012 R2, работающий на S1 (это целевая машина)

Сценарий, который я запускаю, таков:

$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

Результат выполнения этого дважды таков:

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

Любая помощь в этом приветствуется, поскольку она сводит меня с ума.

Спасибо.


person nuxibyte    schedule 16.10.2015    source источник


Ответы (1)


Я (думаю) я нашел ответ.

При указании имени пользователя я должен был использовать 'S1\dscUser' вместо 'dscUser'.

Эти машины не в домене.

person nuxibyte    schedule 16.10.2015
comment
Возникает вопрос, почему это сработало с первого раза. Если кто-то может пролить свет на это... - person nuxibyte; 16.10.2015