DSC Environment Resource não funciona mais depois do WMF5.1 - não detecta valores PATH?

3

Eu tenho vários scripts DSC parciais que usam o Recurso do ambiente para definir um valor de caminho. Eu tenho dois scripts que faz isso e depois de atualizar de WMF5.0 para WMF5.1, estou recebendo o seguinte erro ao iniciar o DscConfigurations.

VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = ApplyConfiguration,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer MYCOMPUTER with user sid S-1-5-21-1064954374-356710528-937385128-34335.
VERBOSE: [DESTCOMPUTER]:                            [] Starting consistency engine.
The resources ('[Environment]SetInstantClientPath' and '[Environment]SqlCmdPath') have conflicting values of the following properties: 'Value'. Ensure that their values match.  Merging of partial configurations failed. LCM 
failed to start desired state configuration manually.
    + CategoryInfo          : ResourceExists: (root/Microsoft/...gurationManager:String) [], CimException
    + FullyQualifiedErrorId : MI RESULT 11
    + PSComputerName        : DESTCOMPUTER

Um script faz isso:

Environment SqlCmdPath {
    Name = "Path"
    DependsOn = "[Package]InstallSQLServer2012CmdLineUtils_64bit"
    Ensure = "Present"
    Path = $true
    Value = "$env:ProgramFiles\Microsoft SQL Server0\Tools\Binn"
}

E o outro script faz isso:

Environment SetInstantClientPath {
    Name = "Path"
    DependsOn = "[Archive]InstallInstantClientBasic","[Archive]InstallInstantClientSqlplus"
    Ensure = "Present"
    Path = $true
    Value = "$env:SystemDrive\instantclient_11_2"
}

Isso costumava ser executado felizmente a partir do WMF5.0

Alguma coisa mudou desde o WMF5.1?

    
por Eric 06.03.2017 / 16:57

1 resposta

1

Você tem dois Recurso de ambiente (variáveis) que possuem o mesmo valor de parâmetro Name. Isso provavelmente está causando um conflito quando o mecanismo vai criar a variável de ambiente. Eu recomendo que você mude para algo assim:

Environment SqlCmdPath {
    Name = "SqlCmdPath"
    DependsOn = "[Package]InstallSQLServer2012CmdLineUtils_64bit"
    Ensure = "Present"
    Path = $true
    Value = "$env:ProgramFiles\Microsoft SQL Server0\Tools\Binn"
}
Environment SetInstantClientPath {
    Name = "SetInstantClientPath"
    DependsOn = "[Archive]InstallInstantClientBasic","[Archive]InstallInstantClientSqlplus"
    Ensure = "Present"
    Path = $true
    Value = "$env:SystemDrive\instantclient_11_2"
}

link

Apenas uma atualização rápida, mas atualmente há uma solicitação com a MSFT referente a esse problema exato ...

link

    
por 07.03.2017 / 15:24