16 votos

Copia de PowerShell DSC de recurso compartido de red

Yo estoy intentando usar PowerShell DSC para copiar el contenido de la carpeta desde un recurso compartido de red. Aquí está el código:

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

Esto no funciona sin embargo - cuando lo ejecuto me sale el siguiente mensaje de error:

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

Tenga resultados similares cuando se trata de instalar un paquete desde un recurso compartido de red o extraer un archivo desde un recurso compartido de red. Me estoy quedando 4 PowerShell en Windows Server 2008 R2 SP1.

¿Hay una manera de usar PowerShell DSC con recursos compartidos de red?

13voto

Richard Puntos267

El DSC, la Configuración Local que ejecuta el Administrador de la cuenta de SISTEMA local, no a tu cuenta de usuario. Por lo tanto, no será capaz de acceder a los recursos de la red a menos que se dé permisos explícitos.

Hay dos situaciones posibles. El compartir es en la misma máquina que el DSC, la configuración se aplica a (vamos a llamar a esta máquina Una) o el recurso compartido está en un equipo diferente (vamos a llamar a esta máquina B).

Si el recurso compartido está en el equipo, los permisos de LECTURA deben ser concedidos para el usuario del SISTEMA. Por ejemplo:

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

Si el recurso compartido está en la máquina B, permisos de LECTURA deben ser concedidos a la cuenta de equipo de la máquina de A. Por ejemplo:

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

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

4voto

ErikE Puntos2371

El DSC se ejecuta en localhost con el fin de aplicar la configuración. Esto significa que el DSC archivos de recursos deben ser distribuidos a cada máquina que se va a configurar a través de la DSC.

Administración de permisos es por lo tanto crucial a la hora de copiar el DSC archivos desde un recurso compartido.

DSC se ejecuta bajo la NT AUTHORITY\SYSTEM de la cuenta y, a menos que el Credential atributo ha sido establecido, el Computer account se utiliza cuando la extracción de los archivos desde un recurso compartido de red.

Por lo tanto, y dependiendo de donde los archivos se extraen de la SYSTEM cuenta deben ser concedidos read permisos en un recurso compartido local y el Computer account deben ser concedidos read permisos en un recurso compartido remoto.

Este es concretamente detallada en Richards respuesta, que se expande sintaxis sabio en el blog original fuente para esta información.

0voto

Nathan Hartley Puntos752

No tengo tiempo en este momento para mirar más en esto, pero parece que es posible pasar de forma segura las credenciales para el Local Administrador de Configuración a utilizar. De hecho, en el blog de la publicación de su ejemplo se utiliza el Archivo de recursos para extracción de archivos desde un recurso compartido de red. Espero probarlo pronto, luego regresa a la mejor carne a esta respuesta.

Blog de TechNet: Quiere proteger las credenciales de Windows PowerShell Estado Deseado de Configuración? - por Travis Plunk

-1voto

TheCompWiz Puntos5222

PowerShell es casi tan tonto como el viejo cmd shell. Todavía tiene muy limitado apoyo a rutas de acceso UNC. Con esto en mente... ¿has intentado suavizado la ruta UNC? es decir

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

Y entonces se refieren a la ruta como UNCPath:\SomeFolder . Limpieza con Remove-PSDrive cuando termines.

También, a veces se puede especificar FileSystem::\\Server\SomeShare\SomeFolder como la ruta de acceso. He visto casos donde esto no funciona... pero vale la pena un tiro.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

;