├── .gitattributes ├── .gitignore ├── DSCResources ├── cWSUSAutoInstallMinorUpdates │ ├── cWSUSAutoInstallMinorUpdates.psm1 │ └── cWSUSAutoInstallMinorUpdates.schema.mof ├── cWSUSAutoRebootWithLoggedOnUsers │ ├── cWSUSAutoRebootWithLoggedOnUsers.psm1 │ └── cWSUSAutoRebootWithLoggedOnUsers.schema.mof ├── cWSUSAutoUpdate │ ├── cWSUSAutoUpdate.psm1 │ └── cWSUSAutoUpdate.schema.mof ├── cWSUSElevateNonAdmins │ ├── cWSUSElevateNonAdmins.psm1 │ └── cWSUSElevateNonAdmins.schema.mof ├── cWSUSEnable │ ├── cWSUSEnable.psm1 │ └── cWSUSEnable.schema.mof ├── cWSUSInstallDay │ ├── cWSUSInstallDay.psm1 │ └── cWSUSInstallDay.schema.mof ├── cWSUSInstallTime │ ├── cWSUSInstallTime.psm1 │ └── cWSUSInstallTime.schema.mof ├── cWSUSSetServer │ ├── cWSUSSetServer.psm1 │ └── cWSUSSetServer.schema.mof ├── cWSUSSetTargetGroup │ ├── cWSUSSetTargetGroup.psm1 │ └── cWSUSSetTargetGroup.schema.mof ├── cWSUSUpdateFrequency │ ├── cWSUSUpdateFrequency.psm1 │ └── cWSUSUpdateFrequency.schema.mof ├── cWSUSUpdateMode │ ├── cWSUSUpdateMode.psm1 │ └── cWSUSUpdateMode.schema.mof └── cWSUSWindowsUpdateAccess │ ├── cWSUSWindowsUpdateAccess.psm1 │ └── cWSUSWindowsUpdateAccess.schema.mof ├── README.md ├── Tests ├── Appveyor.ps1 ├── DSC.tests.ps1 ├── WSUSConfig.ps1 └── appveyor.pester.ps1 ├── appveyor.yml └── cMicrosoftUpdate.psd1 /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear on external disk 35 | .Spotlight-V100 36 | .Trashes 37 | 38 | # Directories potentially created on remote AFP share 39 | .AppleDB 40 | .AppleDesktop 41 | Network Trash Folder 42 | Temporary Items 43 | .apdisk 44 | -------------------------------------------------------------------------------- /DSCResources/cWSUSAutoInstallMinorUpdates/cWSUSAutoInstallMinorUpdates.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSAutoInstallMinorUpdates/cWSUSAutoInstallMinorUpdates.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSAutoInstallMinorUpdates/cWSUSAutoInstallMinorUpdates.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSAutoInstallMinorUpdates/cWSUSAutoInstallMinorUpdates.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSAutoRebootWithLoggedOnUsers/cWSUSAutoRebootWithLoggedOnUsers.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSAutoRebootWithLoggedOnUsers/cWSUSAutoRebootWithLoggedOnUsers.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSAutoRebootWithLoggedOnUsers/cWSUSAutoRebootWithLoggedOnUsers.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSAutoRebootWithLoggedOnUsers/cWSUSAutoRebootWithLoggedOnUsers.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSAutoUpdate/cWSUSAutoUpdate.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSAutoUpdate/cWSUSAutoUpdate.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSAutoUpdate/cWSUSAutoUpdate.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSAutoUpdate/cWSUSAutoUpdate.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSElevateNonAdmins/cWSUSElevateNonAdmins.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSElevateNonAdmins/cWSUSElevateNonAdmins.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSElevateNonAdmins/cWSUSElevateNonAdmins.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSElevateNonAdmins/cWSUSElevateNonAdmins.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSEnable/cWSUSEnable.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSEnable/cWSUSEnable.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSEnable/cWSUSEnable.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSEnable/cWSUSEnable.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSInstallDay/cWSUSInstallDay.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSInstallDay/cWSUSInstallDay.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSInstallDay/cWSUSInstallDay.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSInstallDay/cWSUSInstallDay.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSInstallTime/cWSUSInstallTime.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSInstallTime/cWSUSInstallTime.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSInstallTime/cWSUSInstallTime.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSInstallTime/cWSUSInstallTime.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSSetServer/cWSUSSetServer.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSSetServer/cWSUSSetServer.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSSetServer/cWSUSSetServer.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSSetServer/cWSUSSetServer.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSSetTargetGroup/cWSUSSetTargetGroup.psm1: -------------------------------------------------------------------------------- 1 | function Get-TargetResource { 2 | [CmdletBinding()] 3 | [OutputType([System.Collections.Hashtable])] 4 | param ( 5 | [parameter(Mandatory = $true)] 6 | [System.String] 7 | $TargetGroup 8 | ) 9 | Write-Verbose "Get the Windows Server Update Service Target group" 10 | Try { 11 | $Group = Get-ItemPropertyValue -path "HKLM:\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate" -name TargetGroup -ErrorAction SilentlyContinue 12 | } 13 | Catch { 14 | $Group = "NO_GROUP" 15 | } 16 | 17 | $returnValue = @{ 18 | TargetGroup = $Group 19 | } 20 | 21 | $returnValue 22 | } 23 | 24 | 25 | function Set-TargetResource { 26 | [CmdletBinding()] 27 | param ( 28 | [parameter(Mandatory = $true)] 29 | [System.String] 30 | $TargetGroup, 31 | 32 | [ValidateSet("Absent","Present")] 33 | [System.String] 34 | $Ensure 35 | ) 36 | 37 | if ($Ensure -eq "Present") { 38 | Write-Verbose "Set the Windows Server Update Service Target group to: $TargetGroup" 39 | Set-ItemProperty -path "HKLM:\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate" -name TargetGroupEnabled -value 1 -type dword -force 40 | } 41 | else { 42 | Write-Verbose "Remove the Windows Server Update Service Target group" 43 | Set-ItemProperty -path "HKLM:\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate" -name TargetGroupEnabled -value 0 -type dword -force 44 | } 45 | 46 | Set-ItemProperty -path "HKLM:\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate" -name TargetGroup -value $TargetGroup -type String -force 47 | 48 | } 49 | 50 | 51 | function Test-TargetResource { 52 | [CmdletBinding()] 53 | [OutputType([System.Boolean])] 54 | param ( 55 | [parameter(Mandatory = $true)] 56 | [System.String] 57 | $TargetGroup, 58 | 59 | [ValidateSet("Absent","Present")] 60 | [System.String] 61 | $Ensure 62 | ) 63 | 64 | Write-Verbose "Test if the Windows Server Update Service Target group is set to: $TargetGroup" 65 | Try { 66 | $Status = Get-ItemPropertyValue -path "HKLM:\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate" -name TargetGroupEnabled -ErrorAction SilentlyContinue 67 | $Group = Get-ItemPropertyValue -path "HKLM:\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate" -name TargetGroup -ErrorAction SilentlyContinue 68 | } 69 | Catch { 70 | $Status = "0" 71 | $Group = "" 72 | } 73 | 74 | switch ($Ensure) { 75 | "Present" { 76 | if ($status -eq "1") { 77 | if ($TargetGroup -eq $Group) { 78 | $Return = $true 79 | } 80 | else { 81 | $Return = $false 82 | } 83 | } 84 | else { 85 | $Return = $false 86 | } 87 | } 88 | "Absent" { 89 | if ($status -eq "0") { 90 | $Return = $true 91 | } 92 | else { 93 | $Return = $false 94 | } 95 | } 96 | } 97 | $Return 98 | 99 | } 100 | 101 | Export-ModuleMember -Function *-TargetResource 102 | 103 | -------------------------------------------------------------------------------- /DSCResources/cWSUSSetTargetGroup/cWSUSSetTargetGroup.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSSetTargetGroup/cWSUSSetTargetGroup.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSUpdateFrequency/cWSUSUpdateFrequency.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSUpdateFrequency/cWSUSUpdateFrequency.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSUpdateFrequency/cWSUSUpdateFrequency.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSUpdateFrequency/cWSUSUpdateFrequency.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSUpdateMode/cWSUSUpdateMode.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSUpdateMode/cWSUSUpdateMode.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSUpdateMode/cWSUSUpdateMode.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSUpdateMode/cWSUSUpdateMode.schema.mof -------------------------------------------------------------------------------- /DSCResources/cWSUSWindowsUpdateAccess/cWSUSWindowsUpdateAccess.psm1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSWindowsUpdateAccess/cWSUSWindowsUpdateAccess.psm1 -------------------------------------------------------------------------------- /DSCResources/cWSUSWindowsUpdateAccess/cWSUSWindowsUpdateAccess.schema.mof: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fabiendibot/cMicrosoftUpdate/453033c19dcbb9fa8cd2371a1598a9b4b91dab40/DSCResources/cWSUSWindowsUpdateAccess/cWSUSWindowsUpdateAccess.schema.mof -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build status](https://ci.appveyor.com/api/projects/status/r0ge94ykde5k2yc3/branch/master?svg=true)](https://ci.appveyor.com/project/fabiendibot/cmicrosoftupdate/branch/master) 2 | 3 | # cMicrosoftUpdate 4 | PowerShell Desired State Configuration resource for WSUS -------------------------------------------------------------------------------- /Tests/Appveyor.ps1: -------------------------------------------------------------------------------- 1 | # This script will invoke a DSC configuration 2 | # This is a simple proof of concept 3 | 4 | refreshenv 5 | 6 | New-Item -Path "C:\Windows\system32\WindowsPowerShell\v1.0\Modules" -Name "cMicrosoftUpdate" -Force -ItemType Directory 7 | #New-Item -Path "C:\Program Files\WindowsPowerShell\Modules\cMicrosoftUpdate" -Name "0.0.1" -Force -ItemType Directory 8 | Copy-Item -Path "C:\projects\cmicrosoftupdate\*" -Destination "C:\Windows\system32\WindowsPowerShell\v1.0\Modules\cMicrosoftUpdate" 9 | 10 | ls "C:\Program Files\WindowsPowerShell\Modules" -Recurse 11 | 12 | Get-module -ListAvailable 13 | 14 | Import-module -name cMicrosoftUpdate 15 | 16 | Get-DscResource 17 | 18 | "`n`tPerforming DSC Configuration`n" 19 | 20 | Enable-PSRemoting -Force 21 | 22 | . .\Tests\WSUSConfig.ps1 23 | 24 | ( TestWSUS ).FullName | Set-Content -Path .\Artifacts.txt 25 | 26 | Start-DscConfiguration -Path .\TestWSUS -Wait -Force -verbose 27 | -------------------------------------------------------------------------------- /Tests/DSC.tests.ps1: -------------------------------------------------------------------------------- 1 | Describe "Validate your WSUS Configuration" { 2 | 3 | $Global = Get-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate 4 | $Configuration = Get-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate\AU 5 | 6 | It "Automatic updates enabled with WSUS Server" { 7 | $Configuration.UseWUServer | Should be "1" 8 | } 9 | 10 | It "WSUS Server setted to http://127.0.0.1:8080" { 11 | $Global.WUServer | Should be "http://127.0.0.1:8080" 12 | } 13 | 14 | It "AU Options should be set to notify" { 15 | $Configuration.AUOptions | Should be "2" 16 | } 17 | 18 | It "Target group is set to DMZ Private" { 19 | $Global.TargetGroup | Should be "DMZPrivate" 20 | } 21 | 22 | It "Target Group Enabled" { 23 | $Global.TargetGroupEnabled | Should be "1" 24 | } 25 | 26 | It "WSUS Status Server setted to http://127.0.0.1:8080" { 27 | $Global.WUStatusServer | Should be "http://127.0.0.1:8080" 28 | } 29 | 30 | It "User can access windows updates site" { 31 | $Global.DisableWindowsUpdateAccess | Should be "0" 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /Tests/WSUSConfig.ps1: -------------------------------------------------------------------------------- 1 | Configuration TestWSUS { 2 | 3 | Import-DscResource -ModuleName cMicrosoftUpdate 4 | 5 | Node localhost { 6 | 7 | cWSUSEnable WSUSEnable { 8 | Enable = "True" 9 | } 10 | 11 | cWSUSSetServer WSUSServer { 12 | Url = "http://127.0.0.1:8080" 13 | Ensure = "Present" 14 | } 15 | 16 | cWSUSSetTargetGroup TargetGroupDMZ { 17 | TargetGroup = "DMZPrivate" 18 | Ensure = "Present" 19 | } 20 | 21 | cWSUSUpdateMode WSUSMode { 22 | Mode = "Notify" 23 | } 24 | 25 | cWSUSWindowsUpdateAccess WSUSNoAccess { 26 | Enable = "False" 27 | } 28 | } 29 | } 30 | 31 | TestWSUS 32 | -------------------------------------------------------------------------------- /Tests/appveyor.pester.ps1: -------------------------------------------------------------------------------- 1 | # This script will invoke pester tests 2 | # It should invoke on PowerShell v2 and later 3 | # We serialize XML results and pull them in appveyor.yml 4 | 5 | #If Finalize is specified, we collect XML output, upload tests, and indicate build errors 6 | param( 7 | [switch]$Finalize, 8 | [switch]$Test 9 | ) 10 | 11 | #Initialize some variables, move to the project root 12 | $PSVersion = $PSVersionTable.PSVersion.Major 13 | $TestFile = "TestResultsPS$PSVersion.xml" 14 | $ProjectRoot = $ENV:APPVEYOR_BUILD_FOLDER 15 | Set-Location $ProjectRoot 16 | 17 | #Run a test with the current version of PowerShell 18 | if($Test) 19 | { 20 | "`n`tSTATUS: Testing with PowerShell $PSVersion`n" 21 | 22 | Import-Module Pester 23 | 24 | Invoke-Pester -Path "$ProjectRoot\Tests" -OutputFormat NUnitXml -OutputFile "$ProjectRoot\$TestFile" -PassThru | 25 | Export-Clixml -Path "$ProjectRoot\PesterResultsPS$PSVersion.xml" 26 | } 27 | 28 | #If finalize is specified, check for failures and 29 | If($Finalize) 30 | { 31 | #Show status... 32 | $AllFiles = Get-ChildItem -Path $ProjectRoot\*Results*.xml | Select -ExpandProperty FullName 33 | "`n`tSTATUS: Finalizing results`n" 34 | "COLLATING FILES:`n$($AllFiles | Out-String)" 35 | 36 | #Upload results for test page 37 | "UPLOADING FILES:`n" 38 | Get-ChildItem -Path "$ProjectRoot\TestResultsPS*.xml" | Foreach-Object { 39 | 40 | $Address = "https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)" 41 | $Source = $_.FullName 42 | 43 | "$Address $Source" 44 | 45 | (New-Object 'System.Net.WebClient').UploadFile( $Address, $Source ) 46 | } 47 | 48 | #What failed? 49 | $Results = @( Get-ChildItem -Path "$ProjectRoot\PesterResultsPS*.xml" | Import-Clixml ) 50 | 51 | $FailedCount = $Results | 52 | Select -ExpandProperty FailedCount | 53 | Measure-Object -Sum | 54 | Select -ExpandProperty Sum 55 | 56 | if ($FailedCount -gt 0) { 57 | 58 | $FailedItems = $Results | 59 | Select -ExpandProperty TestResult | 60 | Where {$_.Passed -notlike $True} 61 | 62 | "FAILED TESTS SUMMARY:`n" 63 | $FailedItems | ForEach-Object { 64 | $Item = $_ 65 | [pscustomobject]@{ 66 | Describe = $Item.Describe 67 | Context = $Item.Context 68 | Name = "It $($Item.Name)" 69 | Result = $Item.Result 70 | } 71 | } | 72 | Sort Describe, Context, Name, Result | 73 | Format-List 74 | 75 | throw "$FailedCount tests failed." 76 | } 77 | } -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | # See http://www.appveyor.com/docs/appveyor-yml for many more options 2 | 3 | # Skip on updates to the readme. 4 | # We can force this by adding [skip ci] or [ci skip] anywhere in commit message 5 | skip_commits: 6 | message: /updated readme.*/ 7 | 8 | 9 | install: 10 | - cinst pester 11 | - ps: winrm quickconfig -force 12 | 13 | build: false 14 | 15 | 16 | test_script: 17 | # Invoke DSC configuration! 18 | - ps: . .\Tests\appveyor.ps1 19 | # Test with native PS version, finalize 20 | - ps: . .\Tests\appveyor.pester.ps1 -Test -Finalize 21 | 22 | deploy_script: 23 | - ps: Get-Content .\Artifacts.txt | Foreach-Object { Push-AppveyorArtifact $_ } 24 | -------------------------------------------------------------------------------- /cMicrosoftUpdate.psd1: -------------------------------------------------------------------------------- 1 | @{ 2 | # Version number of this module. 3 | ModuleVersion = '0.0.1' 4 | 5 | # ID used to uniquely identify this module 6 | GUID = '40179489-2ad9-46f7-b34f-b55e30650799' 7 | 8 | # Author of this module 9 | Author = 'Fabien Dibot - @fdibot' 10 | 11 | # Company or vendor of this module 12 | CompanyName = 'Fabien Dibot' 13 | 14 | # Copyright statement for this module 15 | Copyright = 'CopyLeft' 16 | 17 | # Description of the functionality provided by this module 18 | Description = 'Module with DSC Resources for Managing WSUS' 19 | 20 | # Minimum version of the Windows PowerShell engine required by this module 21 | PowerShellVersion = '4.0' 22 | 23 | # Minimum version of the common language runtime (CLR) required by this module 24 | CLRVersion = '4.0' 25 | 26 | # Functions to export from this module 27 | FunctionsToExport = '*' 28 | 29 | # Cmdlets to export from this module 30 | CmdletsToExport = '*' 31 | } --------------------------------------------------------------------------------