Question Copie PowerShell DSC à partir d'un partage réseau


J'essaie d'utiliser PowerShell DSC pour copier le contenu d'un dossier à partir d'un partage réseau. Voici le code:

Configuration TestSetup {
    Node localhost {
        File Test {
            SourcePath = "\\Server\SomeShare\SomeFolder"
            DestinationPath = "E:\test"
            Recurse = $true
            Type = "Directory"
        }
    }
}

Cela ne fonctionne pas cependant - lorsque je l'exécute, le message d'erreur suivant s'affiche:

The related file/directory is: \\Server\SomeShare\SomeFolder.
The path cannot point to the root directory or to the root of a net share.
SourcePath must be specified if you want to configure the destination directory recursively. Make sure that SourcePath is a directory and that it is accessible.
    + CategoryInfo          : InvalidArgument: (:) [], CimException
    + FullyQualifiedErrorId : MI RESULT 4
    + PSComputerName        : localhost

The SendConfigurationApply function did not succeed.
    + CategoryInfo          : InvalidArgument: (root/Microsoft/...gurationManager:String) [], CimException
    + FullyQualifiedErrorId : MI RESULT 4
    + PSComputerName        : localhost

J'obtiens des résultats similaires lorsque j'essaie d'installer un package à partir d'un partage réseau ou d'extraire une archive d'un partage réseau. J'utilise PowerShell 4 sur Windows Server 2008 R2 SP1.

Existe-t-il un moyen d'utiliser PowerShell DSC avec des partages réseau?


16
2018-01-21 18:06


origine


Une solution n'est-elle pas décrite dans ce lien? powershellmagazine.com/2013/09/02/… - ErikE
Merci de m'avoir orienté dans la bonne direction. Cela ne m'a pas vraiment fait tout le chemin là-bas parce que le partage était sur la même machine et j'ai donc dû accorder des autorisations au compte SYSTEM. Si vous voulez répondre en indiquant ce lien, je vous attribuerai la prime. - Richard
:-) Merci Richard, ira ce soir. - ErikE


Réponses:


Le gestionnaire de configuration local DSC s'exécute en tant que compte système local, pas votre compte d'utilisateur. Il ne pourra donc pas accéder aux ressources du réseau à moins d’obtenir des autorisations explicites.

Il y a deux situations possibles. Soit le partage est sur le même ordinateur que la configuration DSC est appliquée (appelons cette machine A) ou le partage est sur une autre machine (appelons cette machine B).

Si le partage est sur la machine A, les autorisations READ doivent être accordées à l'utilisateur SYSTEM. Par exemple:

net share SomeShare=C:\SomeShare /GRANT:"NT AUTHORITY\SYSTEM",READ

Si le partage est sur la machine B, les autorisations READ doivent être accordées au compte d'ordinateur de la machine A. Par exemple:

net share SomeShare=C:\SomeShare /GRANT:DOMAIN\MachineA$,READ

La source: http://www.powershellmagazine.com/2013/09/02/copying-powershell-modules-and-custom-dsc-resources-using-dsc/


13
2018-01-28 11:31





le DSC fonctionne sur localhost afin d'appliquer la configuration. Cela signifie que le DSC les fichiers de ressources doivent être distribués sur chaque machine à configurer via DSC.

La gestion des autorisations est donc cruciale lors de la copie des fichiers DSC à partir d’un partage.

DSC passe sous la NT AUTHORITY\SYSTEM compte et à moins que le Credential attribut a été défini, le Computer account est utilisé lors de l'extraction des fichiers d'un partage réseau.

Par conséquent, et en fonction de la provenance des fichiers, le SYSTEM compte doit être accordé read autorisations sur un partage local et la Computer account besoin d'être accordé read autorisations sur un partage distant.

Ceci est expliqué en détail dans la réponse de Richards, qui étend la syntaxe la source originale du blog pour cette information.


4
2018-01-28 21:25





Je n'ai pas le temps pour le moment d'approfondir cette question, mais il semble qu'il soit possible de transmettre en toute sécurité les informations d'identification que le gestionnaire de configuration local peut utiliser. En fait, dans le blog publié, son exemple utilise la ressource File pour extraire des fichiers d’un partage réseau. J'espère pouvoir l'essayer bientôt, puis revenir pour mieux préciser cette réponse.

Blog TechNet: Vous souhaitez sécuriser les informations d'identification dans la configuration d'état souhaité de Windows PowerShell? - de Travis Plunk


0
2018-03-02 03:40





Powershell est presque aussi stupide que l’ancien shell cmd. Le support des chemins UNC est encore très limité. Dans cet esprit, avez-vous essayé de créer un alias sur le chemin UNC? c'est à dire.

New-PSDrive -Name UNCPath -PSProvider FileSystem -Root \\Server\SomeShare\

Et puis se référer au chemin comme UNCPath:\SomeFolder. Nettoyage avec Remove-PSDrive quand tu as fini.

Aussi, parfois, vous pouvez spécifier FileSystem::\\Server\SomeShare\SomeFolder comme le chemin. J'ai vu des cas où cela ne fonctionne pas ... mais ça vaut le coup.


-1
2018-01-21 18:18



Dans ce contexte (données de configuration) FileSystem::\\Server\SomeShare\SomeFolder est certainement le chemin à parcourir - Mathias R. Jessen
Merci pour les suggestions mais malheureusement en utilisant l’un d’eux, je reçois le message d’erreur Relative path is not supported - Richard