windows – 即使需要重启/重启,如何强制DSC执行所有配置(包)
从
MSDN起
所以我的理解是,即使需要重启,DSC也应该运行所有配置 但在我的情况下并非如此,安装包后有时会将DSC标记为重新启动,DSC不会运行其余的配置 我必须再次手动执行命令才能运行其余配置 Start-DscConfiguration -Wait -Force -Path .SomePath 我想强制DSC运行所有配置,然后通知我是否需要重新启动服务器 我如何配置包的示例 LocalConfigurationManager { RebootNodeIfNeeded = $false } Package MVC3 { Name = "Microsoft ASP.NET MVC 3" Ensure = "Present" Path = "$Env:SystemDriveAspNetMVC3ToolsUpdateSetup.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:SystemDriveAspNetMVC4Setup.exe" ProductId = "942CC691-5B98-42A3-8BC5-A246BA69D983" Arguments = "/q" DependsOn = "[Package]MVC3" Credential = $Credential }
我想出了这个解决方案
我想找到一个更好的方法来做到这一点.但无论如何它对我有用 我仍然认为DSC过程应该以某种方式通知我,而不仅仅是通过Write-Verbose,因为在我的情况下,这个过程是作为我们的持续集成过程的一部分启动的 [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" } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 缓存Windows 8的代理服务器
- 导入Windows窗体(C#),Visual Studio 2012
- windows-server-2008 – 是否可用于Windows Server 2008的p
- Window10上安装Redis及其客户端
- Windows – 通过间歇网络连接复制文件
- 相当于“echo -n”的Windows不再适用于Win7
- windows – 如何处理不适合Server Core版本的更新?
- Windows Phone 7 – 检测到Windows Phone 7上已经显示了屏幕
- Windows Server服务RPC请求缓冲区溢出漏洞(MS08-067)
- windows – 任何人都建议一个程序一次为最终用户打印多个HT