| Server IP : 185.208.173.17 / Your IP : 87.236.161.98 Web Server : Microsoft-IIS/10.0 System : Windows NT SRV8576125506 10.0 build 26100 (Windows Server 2016) AMD64 User : IUSR ( 0) PHP Version : 7.4.13 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Windows/System32/WindowsPowerShell/v1.0/Modules/Carbon/WindowsFeatures/ |
Upload File : |
# Copyright 2012 Aaron Jensen
#
# 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 Test-WindowsFeature
{
<#
.SYNOPSIS
Tests if an optional Windows component exists and, optionally, if it is installed.
.DESCRIPTION
Feature names are different across different versions of Windows. This function tests if a given feature exists. You can also test if a feature is installed by setting the `Installed` switch.
Feature names are case-sensitive and are different between different versions of Windows. For a list, on Windows 2008, run `serveramanagercmd.exe -q`; on Windows 7, run `Get-WmiObject -Class Win32_OptionalFeature | Select-Object Name`. On Windows 8/2012, use `Get-WindowsFeature`.
.LINK
Get-WindowsFeature
.LINK
Install-WindowsFeature
.LINK
Uninstall-WindowsFeature
.EXAMPLE
Test-WindowsFeature -Name MSMQ-Server
Tests if the MSMQ-Server feature exists on the current computer.
.EXAMPLE
Test-WindowsFeature -Name IIS-WebServer -Installed
Tests if the IIS-WebServer features exists and is installed/enabled.
#>
[CmdletBinding(SupportsShouldProcess=$true)]
param(
[Parameter(Mandatory=$true)]
[string]
# The name of the feature to test. Feature names are case-sensitive and are different between different versions of Windows. For a list, on Windows 2008, run `serveramanagercmd.exe -q`; on Windows 7, run `Get-WmiObject -Class Win32_OptionalFeature | Select-Object Name`. On Windows 8/2012, use `Get-WindowsFeature`.
$Name,
[Switch]
# Test if the service is installed in addition to if it exists.
$Installed
)
if( -not (Get-Module -Name 'ServerManager') -and -not (Assert-WindowsFeatureFunctionsSupported) )
{
return
}
$feature = Get-WindowsFeature -Name $Name
if( $feature )
{
if( $Installed )
{
return $feature.Installed
}
return $true
}
else
{
return $false
}
}