04/06/2017

Sử dụng PowerShell bật hoặc tắt tính năng của Windows

Trong chuyên mục quản lý hôm nay này tôi sẽ trình bày cách sử dụng Windows Powershell bật hoặc tắt tính năng của Windows. Đây là chủ đề tương đối phức tạp và hơi dài nhưng nó lại rất thú vị cho những bạn nào muốn tìm hiểu sâu về cấu hình hệ thống. Chủ đề sẽ được trình bày bao gồm 3 phần chính sau đây:
  1. Xem trạng thái của tính năng
  2. Bật hoặc tắt tính năng
  3. Tạo powershell csript
Dưới đây là chi tiết từng phần:

Phần 1. Xem trạng thái của tính năng đã được bật hay hay đã bị tắt

1. Xem tất cả tính năng của Windows


-PowerShell


Get-WindowsOptionalFeature -Online | Select FeatureName,State

- Command Prompt


Powershell -ExecutionPolicy Bypass -Command "& Get-WindowsOptionalFeature -Online | Select FeatureName,State"

2. Xem tính năng đã được kích hoạt (Enabled)


-PowerShell

Get-WindowsOptionalFeature -Online | Where State -eq 'Enabled' | Select FeatureName,State

- Command Prompt


Powershell -ExecutionPolicy Bypass -Command "& Get-WindowsOptionalFeature -Online | Where State -eq 'Enabled' | Select FeatureName,State"

3. Xem tính năng chưa được kích hoạt (Disabled)


-PowerShell

Get-WindowsOptionalFeature -Online | Where State -eq 'Disabled' | Select FeatureName,State

- Command Prompt

Powershell -ExecutionPolicy Bypass -Command "& Get-WindowsOptionalFeature -Online | Where State -eq 'Disabled' | Select FeatureName,State"

Phần 2. Bật hoặc tắt tính năng

1. Bật tính năng

-PowerShell

Enable-WindowsOptionalFeature -Online -FeatureName 'FeatureName' -All -NoRestart

- Command Prompt

Powershell -ExecutionPolicy Bypass -Command "& Enable-WindowsOptionalFeature -Online -FeatureName 'FeatureName' -All -NoRestart"

2. Tắt tính năng

-PowerShell

Disable-WindowsOptionalFeature -Online -FeatureName 'FeatureName' -All -NoRestart

- Command Prompt

Powershell -ExecutionPolicy Bypass -Command "& Disable-WindowsOptionalFeature -Online -FeatureName 'FeatureName' -All -NoRestart"

Phần 3. Tạo PowerShell Script

1. Tạo Script tắt tính năng đã được kích hoạt Disable-WindowsOptionalFeature.ps1


Soạn nội dung bên dưới vào notepad và lưu lại với tên ví dụ Disable-WindowsOptionalFeature.ps1 định dạng All files và Econding-ANSI

# Disable-WindowsOptionalFeature.ps1
# Created by Nguyen Tuan

If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`" $args" -Verb RunAs
Exit
}

Function Main-menu()
{
    $index=1
$Features=Get-WindowsOptionalFeature -Online | ? State -eq 'enabled' | Select FeatureName
#return entire listing of features
   Write-Host "ID`t Feature Name"
    Write-Host ""
foreach ($Feature in $Features)
{
Write-Host " $index`t $($Feature.FeatureName)"
$index++
}
   
    Do
    {
        Write-Host ""
        $IDs=Read-Host -Prompt "For disable each feature please select ID and press enter"
    }
    While($IDs -eq "")
   
#check whether input values are correct
try
{
[int[]]$IDs=$IDs -split ","
}
catch
{
Write-Host "Error:" $_.Exception.Message
}
foreach ($ID in $IDs)
{
#check id is in the range
if ($ID -ge 1 -and $ID -le $Features.count)
{
$ID--
#Disable each feature
$FeatureName=$Features[$ID].FeatureName

            Disable-WindowsOptionalFeature -Online -FeatureName $FeatureName -NoRestart
            pause
            cls
            Main-menu
}
else
{
            Write-Host ""
            Write-warning -Message "wrong ID"
            Write-Host ""
            pause
            cls
            Main-menu
}
}
}
Main-menu

Khi tạo xong chuột phải tập tin script vừa tạo chọn Run with PowerShell. Nếu muốn tắt tính năng nào chọn ID của tính năng ví dụ 24 nhấn enter

2. Tạo Script bật tính năng chưa được kích hoạt Enable-WindowsOptionalFeature.ps1


Soạn nội dung bên dưới vào notepad và lưu lại với tên ví dụ Enable-WindowsOptionalFeature.ps1 định dạng All files và Econding-ANSI

# Enable-WindowsOptionalFeature.ps1
# Created by Nguyen Tuan

If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`" $args" -Verb RunAs
Exit
}

Function Main-menu()
{
$index=1
$Features=Get-WindowsOptionalFeature -Online | ? State -eq 'disabled' | Select FeatureName
#return entire listing of features
   Write-Host "ID`t Feature Name"
    Write-Host ""
foreach ($Feature in $Features)
{
Write-Host " $index`t $($Feature.FeatureName)"
$index++
}
   
    Do
    {
        Write-Host ""
        $IDs=Read-Host -Prompt "For enable each feature please select ID and press enter"
    }
    While($IDs -eq "")
   
#check whether input values are correct
try
{
[int[]]$IDs=$IDs -split ","
}
catch
{
Write-Host "Error:" $_.Exception.Message
}

foreach ($ID in $IDs)
{
#check id is in the range
if ($ID -ge 1 -and $ID -le $Features.count)
{
$ID--
#Enable each feature
$FeatureName=$Features[$ID].FeatureName

Enable-WindowsOptionalFeature -Online -FeatureName $FeatureName -All -NoRestart
            pause
            cls
            Main-menu
}
else
{
Write-Host ""
            Write-warning -Message "wrong ID"
            Write-Host ""
            pause
            cls
            Main-menu
}
}
}
Main-menu

Khi tạo xong chuột phải tập tin script vừa tạo chọn Run with PowerShell. Nếu muốn bật tính năng nào chọn ID của tính năng ví dụ 24 nhấn enter

0 nhận xét