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:
- Xem trạng thái của tính năng
- Bật hoặc tắt tính năng
- Tạo powershell csript
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