Come forzare DSC per eseguire tutte le configurazioni (pacchetti) anche quando è necessario un riavvio / riavvio

Da MSDN

RebootNodeIfNeeded : Alcune modifiche di configuration su un nodo di destinazione potrebbero richiedere che venga riavviato per le modifiche da applicare. Con il valore "true", questa properties; riavvia il nodo immediatamente e senza avviso. Se "false", la configuration sarà completata, ma il nodo deve essere riavviato manualmente affinché le modifiche abbiano effetto.

  • PXE Avvia un ISO con le informazioni iSCSI
  • Come mettere un server Windows 2012 in un dominio Univenty
  • C'è un modo per consentire agli utenti di dominio di aggiornare le proprie applicazioni sulle loro workstation?
  • Pulizia dell'unità C: \ di un server. Tutti i sensi noti
  • Imansible avviare php-cgi.exe - MSVCR110.dll manca
  • Condivisione di file per utenti Mac
  • Quindi la mia comprensione è che DSC dovrebbe eseguire tutte le configurazioni anche se è necessario un riavvio

    Ma nel mio caso non è vero, dopo l'installazione di un pacchetto a volte il DSC è contrassegnato per riavviare e DSC non esegue il resto delle configurazioni

    Devo eseguire manualmente il command per eseguire il resto delle configurazioni

    Start-DscConfiguration -Wait -Force -Path .\SomePath 

    Vorrei forzare DSC per eseguire tutte le configurazioni e poi informarmi se ho bisogno di riavviare il server

    Esempi di come configuro i pacchetti

      LocalConfigurationManager { RebootNodeIfNeeded = $false } Package MVC3 { Name = "Microsoft ASP.NET MVC 3" Ensure = "Present" Path = "$Env:SystemDrive\AspNetMVC3ToolsUpdateSetup.exe" ProductId = "DCDEC776-BADD-48B9-8F9A-DFF513C3D7FA" Arguments = "/q" DependsOn = "[WindowsFeature]IIS" Credential = $Credential } Package MVC4 { Name = "Microsoft ASP.NET MVC 4 Runtime" Ensure = "Present" Path = "$Env:SystemDrive\AspNetMVC4Setup.exe" ProductId = "942CC691-5B98-42A3-8BC5-A246BA69D983" Arguments = "/q" DependsOn = "[Package]MVC3" Credential = $Credential } 

  • Può creare un file di configuration di PowerShell DSC da un sistema di creazione corrente?
  • Dispositivo di networking variabile Alias ​​e PowerShell DSC
  • Gestione certificati SSL con Powershell DSC
  • DSC, come sapere se dopo aver eseguito la configuration è necessario un riavvio
  • Set-AzureRmAutomationModule non è in grado di trovare l'account di automazione
  • Powershell DSC: Imansible get il stream http
  • 2 Solutions collect form web for “Come forzare DSC per eseguire tutte le configurazioni (pacchetti) anche quando è necessario un riavvio / riavvio”

    Ho trovato questa soluzione

    Vorrei trovare un modo migliore per farlo però. Ma comunque funziona per me

    Credo ancora che il process DSC dovrebbe avvisarmi in qualche modo, non solo tramite Write-Verbose perché nel mio caso questo process viene avviato come parte del nostro process di integrazione continua

     [int]$maximumAttempts = 5 [int]$attempt = 0 [ValidateNotNull()][guid]$dscResTmp = [guid]::NewGuid() [ValidateNotNullOrEmpty()][string]$dscResPathTmp = Join-Path $baseFolderPathTmp "$dscResTmp.log" do { [bool]$stopLoop = $false [int]$attempt = ++$attempt Start-DscConfiguration -Wait -Force -Path $folderPathTmp 4> $dscResPathTmp [string[]]$rebootServerCoincidences = Select-String -Pattern "reboot" -Path $dscResPathTmp if ($rebootServerCoincidences.Length -le 0) { [bool]$stopLoop = $true } else { Write-Warning ($rebootServerCoincidences -join [Environment]::NewLine) } } while($stopLoop -eq $false -and $attempt -le $maximumAttempts) if ($stopLoop -eq $false) { Write-Warning "Max attempts reached" } 

    Ogni risorsa può richiedere al LCM di riavviare il server. Se una risorsa richiede un riavvio, pianifica un riavvio e pianifica l'LCM per eseguire un controllo di coerenza dopo il riavvio del server (per poter continuare la configuration).

    Se vuoi che ti comunichi (tramite il registro events o il stream verboso di Start-DscConfiguration) che è necessario un riavvio, è necessario impostare RebootIfNeeded su $ false. Allora sei responsabile di riavvii. Alcuni installatori non verranno eseguiti se è necessario un riavvio per la macchina, quindi potrebbe essere un block in attesa di riavviare manualmente il sistema.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.