Modules/SChannelDsc.Common/SChannelDsc.Common.psm1
|
#Region '.\prefix.ps1' -1 $script:resourceHelperModulePath = Join-Path -Path $PSScriptRoot -ChildPath '..\..\Modules\DscResource.Common' Import-Module -Name $script:resourceHelperModulePath $script:localizedData = Get-LocalizedData -DefaultUICulture 'en-US' #EndRegion '.\prefix.ps1' 6 #Region '.\Public\Get-SCDscOSVersion.ps1' -1 function Get-SCDscOSVersion { [CmdletBinding()] param () return [System.Environment]::OSVersion.Version } #EndRegion '.\Public\Get-SCDscOSVersion.ps1' 7 #Region '.\Public\Get-SChannelItem.ps1' -1 function Get-SChannelItem { [CmdletBinding()] [OutputType([System.String])] param ( [Parameter(Mandatory = $true)] [System.String] $ItemKey, [Parameter()] [System.String] $ItemValue = 'Enabled' ) $value = Get-ItemProperty -Path $ItemKey -Name $ItemValue -ErrorAction SilentlyContinue if ($null -eq $value) { return 'Default' } $value = Get-ItemPropertyValue -Path $ItemKey -Name $ItemValue switch ($value) { $null { return 'Default' } 0 { return 'Disabled' } 1 { return 'Enabled' } } } #EndRegion '.\Public\Get-SChannelItem.ps1' 41 #Region '.\Public\Get-SChannelRegKeyValue.ps1' -1 function Get-SChannelRegKeyValue { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [System.String] $Key, [Parameter(Mandatory = $true)] [System.String] $Name ) $value = Get-ItemProperty -Path $Key -Name $Name -ErrorAction SilentlyContinue if ($null -eq $value) { return $null } $value = Get-ItemPropertyValue -Path $Key -Name $Name return $value } #EndRegion '.\Public\Get-SChannelRegKeyValue.ps1' 26 #Region '.\Public\Set-SChannelItem.ps1' -1 function Set-SChannelItem { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [System.String] $ItemKey, [Parameter(Mandatory = $true)] [System.String] $ItemSubKey, [Parameter()] [System.String] $ItemValue = 'Enabled', [Parameter(Mandatory = $true)] [ValidateSet('Enabled', 'Disabled', 'Default')] [System.String] $State ) $fullSubKey = $ItemKey + '\' + $ItemSubKey if ($ItemKey -match "(.*:).*") { $root = $Matches[1] } $path = ($ItemKey -replace $root, "").TrimStart('\') $regKey = (Get-Item -Path $root).OpenSubKey($path, $true) switch ($State) { 'Default' { if (Test-Path -Path $fullSubKey) { if ($ItemSubKey -match '\\') { $fullSubKey = $ItemKey + '\' + ($ItemSubkey -split '\\')[0] } $null = Remove-Item -Path $fullSubKey -Force -Recurse } } 'Disabled' { if ((Test-Path -Path $fullSubKey) -eq $false) { $regKey = $regKey.CreateSubKey($ItemSubKey) } else { $regKey = $regKey.OpenSubKey($ItemSubKey, $true) } if ($ItemValue -eq 'DisabledByDefault') { $null = $regKey.SetValue($ItemValue, 1, [Microsoft.Win32.RegistryValueKind]::DWORD) } else { $null = $regKey.SetValue($ItemValue, 0, [Microsoft.Win32.RegistryValueKind]::DWORD) } } 'Enabled' { if ((Test-Path -Path $fullSubKey) -eq $false) { $regKey = $regKey.CreateSubKey($ItemSubKey) } else { $regKey = $regKey.OpenSubKey($ItemSubKey, $true) } if ($ItemValue -eq 'DisabledByDefault') { $null = $regKey.SetValue($ItemValue, 0, [Microsoft.Win32.RegistryValueKind]::DWORD) } else { $null = $regKey.SetValue($ItemValue, 1, [Microsoft.Win32.RegistryValueKind]::DWORD) } } } } #EndRegion '.\Public\Set-SChannelItem.ps1' 90 #Region '.\Public\Set-SChannelRegKeyValue.ps1' -1 function Set-SChannelRegKeyValue { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [System.String] $Key, [Parameter(Mandatory = $true)] [System.String] $SubKey, [Parameter()] [System.String] $Name, [Parameter()] [System.Int32] $Value, [Parameter()] [Switch] $Remove, [Parameter()] [Switch] $Force ) $fullSubKey = $Key + '\' + $SubKey if ($Remove) { if ($PSBoundParameters.ContainsKey("Name")) { $null = Remove-ItemProperty -Path $fullSubKey -Name $Name -ErrorAction SilentlyContinue } # Remove registry key if (Test-Path -Path $fullSubKey) { $item = Get-Item -Path $fullSubKey if (($item.ValueCount -eq 0 -and ` $item.SubKeyCount -eq 0) -or $Force) { if ($SubKey -match '\\') { $fullSubKey = $Key + '\' + ($Subkey -split '\\')[0] } $null = Remove-Item -Path $fullSubKey -Force -Recurse } } } else { $currentKey = Get-Item -Path $fullSubKey -ErrorAction SilentlyContinue if ($null -eq $currentKey) { $currentKey = New-Item -Path $fullSubKey -Force } $null = Set-ItemProperty -Path $fullSubKey -Name $Name -Value $Value -Type 'Dword' -Force } } #EndRegion '.\Public\Set-SChannelRegKeyValue.ps1' 68 |