Copia DSC PowerShell dalla condivisione di rete


17

Sto cercando di utilizzare PowerShell DSC per copiare i contenuti delle cartelle da una condivisione di rete. Ecco il codice:

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

Questo non funziona comunque - quando lo eseguo ricevo il seguente messaggio di errore:

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

Ottengo risultati simili quando provo ad installare un pacchetto da una condivisione di rete o estraggo un archivio da una condivisione di rete. Sto eseguendo PowerShell 4 su Windows Server 2008 R2 SP1.

Esiste un modo per utilizzare PowerShell DSC con condivisioni di rete?


Una soluzione non è descritta in questo link? powershellmagazine.com/2013/09/02/…
ErikE

Grazie per avermi indicato nella giusta direzione. Non mi ha portato fino in fondo perché la condivisione era sulla stessa macchina e quindi ho dovuto concedere le autorizzazioni all'account SYSTEM. Se vuoi dare una risposta indicando quel link, ti ​​assegnerò la generosità.
Richard,

Risposte:


14

DSC Local Configuration Manager viene eseguito come account SYSTEM locale, non come account utente. Pertanto non sarà in grado di accedere alle risorse di rete se non gli vengono concesse autorizzazioni esplicite.

Vi sono due possibili situazioni. La condivisione si trova sulla stessa macchina a cui viene applicata la configurazione DSC (chiamiamo questa macchina A) o la condivisione si trova su una macchina diversa (chiamiamo questa macchina B).

Se la condivisione è sulla macchina A, le autorizzazioni READ devono essere concesse all'utente SYSTEM. Per esempio:

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

Se la condivisione è sulla macchina B, le autorizzazioni LEGGI devono essere concesse all'account computer della macchina A. Ad esempio:

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

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


5

Le DSCgira su localhostal fine di applicare la configurazione. Ciò significa che i DSCfile di risorse devono essere distribuiti su ogni macchina che deve essere configurata DSC.

La gestione delle autorizzazioni è quindi cruciale quando si copiano i file DSC da una condivisione.

DSCviene eseguito con l' NT AUTHORITY\SYSTEMaccount e, a meno che non Credentialsia stato impostato l' attributo, Computer accountviene utilizzato quando si estraggono i file da una condivisione di rete.

Pertanto e in base alla provenienza dei file, è SYSTEMnecessario concedere all'account readautorizzazioni su una condivisione locale e Computer accountdisporre delle readautorizzazioni su una condivisione remota.

Questo è concretamente dettagliato nella risposta di Richard, che espande la sintassi saggia sulla fonte originale del blog per queste informazioni.


0

Al momento non ho tempo per approfondire ulteriormente questo aspetto, ma sembra che sia possibile passare in modo sicuro le credenziali da utilizzare con Gestione configurazione locale. In effetti, nel blog che pubblica il suo esempio usa la risorsa File per estrarre i file da una condivisione di rete. Spero di provarlo presto, quindi tornare a perfezionare questa risposta.

Blog TechNet: vuoi proteggere le credenziali nella configurazione dello stato desiderato di Windows PowerShell? - di Travis Plunk


-2

Powershell è quasi stupido come la vecchia conchiglia cmd. Ha ancora un supporto molto limitato per i percorsi UNC. Con questo in mente ... hai provato ad alias il percorso UNC? vale a dire

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

E quindi fare riferimento al percorso come UNCPath:\SomeFolder. Pulisci con Remove-PSDrivequando hai finito.

Inoltre, a volte è possibile specificare FileSystem::\\Server\SomeShare\SomeFoldercome percorso. Ho visto casi in cui questo non funziona ... ma vale la pena provare.


In questo contesto (dati di configurazione) FileSystem::\\Server\SomeShare\SomeFolderè sicuramente la strada da percorrere
Mathias R. Jessen,

2
Grazie per i suggerimenti, ma sfortunatamente usando uno di essi ricevo il messaggio di erroreRelative path is not supported
Richard
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.