Functions/Resolve-WindowsFeatureName.ps1
# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. function Resolve-WindowsFeatureName { <# .SYNOPSIS INTERNAL. DO NOT USE. Converts a Carbon-specific, common Windows feature name, into the feature name used on the current computer. .DESCRIPTION Windows feature names change between versions. This function converts a Carbon-specific name into feature names used on the current computer's version of Windows. **This function is not available on Windows 8/2012.** .EXAMPLE Resolve-WindowsFeatureNames -Name 'Iis','Msmq' Returns `'IIS-WebServer','MSMQ-Server'` if running Windows 7/Windows 2008 R2, or `'Web-WebServer','MSMQ-Server'` if on Windows 2008. #> [CmdletBinding()] param( [Parameter(Mandatory=$true)] [string[]] # The Carbon feature names to convert to Windows-specific feature names. $Name ) Set-StrictMode -Version 'Latest' Use-CallerPreference -Cmdlet $PSCmdlet -Session $ExecutionContext.SessionState Write-Warning -Message ('Resolve-WindowsFeatureName is obsolete and will be removed in a future major version of Carbon.') $featureMap = @{ Iis = 'Web-WebServer'; IisHttpRedirection = 'Web-Http-Redirect'; Msmq = 'MSMQ-Server'; MsmqHttpSupport = 'MSMQ-HTTP-Support'; MsmqActiveDirectoryIntegration = 'MSMQ-Directory'; } if( $useOCSetup ) { $featureMap = @{ Iis = 'IIS-WebServer'; IisHttpRedirection = 'IIS-HttpRedirect'; Msmq = 'MSMQ-Server'; MsmqHttpSupport = 'MSMQ-HTTP'; MsmqActiveDirectoryIntegration = 'MSMQ-ADIntegration'; } } $Name | Where-Object { $featureMap.ContainsKey( $_ ) } | ForEach-Object { $featureMap[$_] } } |