Estoy tratando de 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"
}
}
}
Sin embargo, esto no funciona: cuando lo ejecuto aparece 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
Obtengo resultados similares cuando intento instalar un paquete desde un recurso compartido de red o extraer un archivo de un recurso compartido de red. Estoy ejecutando PowerShell 4 en Windows Server 2008 R2 SP1.
¿Hay alguna manera de usar PowerShell DSC con recursos compartidos de red?
windows
powershell
network-share
dsc
Ricardo
fuente
fuente

Respuestas:
El DSC Local Configuration Manager se ejecuta como la cuenta del SISTEMA local, no como su cuenta de usuario. Por lo tanto, no podrá acceder a los recursos de la red a menos que se le otorguen permisos explícitos.
Hay dos situaciones posibles. O el recurso compartido está en la misma máquina a la que se aplica la configuración DSC (llamemos a esta máquina A) o el recurso compartido está en una máquina diferente (llamemos a esta máquina B).
Si el recurso compartido está en la máquina A, los permisos de LECTURA deben otorgarse al usuario del SISTEMA. Por ejemplo:
Si el recurso compartido está en la máquina B, los permisos de LECTURA deben otorgarse a la cuenta de la computadora de la máquina A. Por ejemplo:
Fuente: http://www.powershellmagazine.com/2013/09/02/copying-powershell-modules-and-custom-dsc-resources-using-dsc/
fuente
Se
DSCejecutalocalhostpara aplicar la configuración. Esto significa que losDSCarchivos de recursos deben distribuirse a cada máquina a través de la cual se configuraráDSC.Por lo tanto, la administración de permisos es crucial al copiar los archivos DSC de un recurso compartido.
DSCse ejecuta bajo laNT AUTHORITY\SYSTEMcuenta y, a menos queCredentialse haya establecido el atributo,Computer accountse utiliza al extraer los archivos de un recurso compartido de red.Por lo tanto y dependiendo de dónde se extraen los archivos, la
SYSTEMcuenta debe tenerreadpermisos en un recurso compartido local y laComputer accountnecesidad dereadpermisos en un recurso compartido remoto.Esto se detalla concretamente en la respuesta de Richards, que amplía la sintaxis en la fuente original del blog para esta información.
fuente
No tengo tiempo en este momento para investigar más sobre esto, pero parece que es posible pasar de forma segura las credenciales para que las use el Administrador de configuración local. De hecho, en la publicación del blog, su ejemplo utiliza el recurso File para extraer archivos de un recurso compartido de red. Espero probar esto pronto, luego volveré a dar una mejor respuesta.
Blog de TechNet: ¿Desea proteger las credenciales en la configuración de estado deseada de Windows PowerShell? - por Travis Plunk
fuente
Powershell es casi tan tonto como el viejo cmd shell. Todavía tiene un soporte muy limitado para rutas UNC. Con eso en mente ... ¿has intentado alias la ruta UNC? es decir
Y luego se refieren a la ruta como
UNCPath:\SomeFolder. Limpia conRemove-PSDrivecuando hayas terminado.Además, a veces puede especificar
FileSystem::\\Server\SomeShare\SomeFoldercomo la ruta. He visto casos en los que esto no funciona ... pero vale la pena intentarlo.fuente
FileSystem::\\Server\SomeShare\SomeFolderes definitivamente el camino a seguirRelative path is not supported