在Windows作業系統常用的PowerShell指令備忘錄

雖然Windows 的PowerShell跟Linux/FreeBSD/Unix比較起來指令真是又臭又長,但在大量佈署或管理時,卻又是一個不可缺少的工具,真是令小編又愛又恨阿,本篇文章單純是小編的指令雜記,避免自己的金魚腦忘了。

01、查詢網路卡資訊/設定網路卡IP
指令語法:

Get-NetAdapter

選要顯示的欄位指令語法:

Get-NetAdapter | select name,status,linkSpeed,ifIndex

指定網路卡 ifIndex 設定網路卡IP指令語法:

New-NetIPAddress -InterfaceIndex 20 -IPAddress 192.168.0.1
Set-NetIPAddress -InterfaceIndex 20 -IPAddress 192.168.0.1 -PrefixLength 24


移除IP指令語法:

Get-NetIPAddress -IPAddress 192.168.0.1 | Remove-NetIPAddress

 

指定網路卡 ifIndex 設定路由(Route)IP指令語法:

New-NetRoute -DestinationPrefix "0.0.0.0/0" -InterfaceIndex 20 -NextHop 192.168.0.254

查詢網路卡 ifIndex路由(Route)語法:

Get-NetRoute -InterfaceIndex 20 | select ifIndex,DestinationPrefix,NextHop

移除路由(Route)指令語法:

Remove-NetRoute -NextHop "192.168.0.254"


查看網路卡流量狀態語法:

Get-NetAdapterStatistics -Name "vEthernet (vmsync)"

 

02、關閉/開啟Windows防火牆
關閉防火牆指令語法:

netsh advfirewall set allprofiles state off

開啟防火牆指令語法:

netsh advfirewall set allprofiles state on

開啟[網域網路]、[私人網路]、[公用網路]防火牆指令語法:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

 

03、變更網路卡名稱
指令語法:

Rename-NetAdapter "網路卡原有名稱" -NewName "網路卡新的名稱"

範例語法:

Rename-NetAdapter "SLOT 7 連接埠 2" -NewName "nas"

透過ifIndex代號來變更網路卡名稱:
範例語法:

Get-NetAdapter -ifIndex 12 | Rename-NetAdapter -NewName "vmsync02"

 

04、停用網路卡
指令語法:

Disable-NetAdapter -Name "網路卡名稱" -Confirm:$false

範例指令語法:

Disable-NetAdapter -Name "Integrated NIC 1 Port 3-1" -Confirm:$false

 

05、啟動Hyper-V功能
Server Core模式Hyper-V服務安裝指令語法:

Install-WindowsFeature -Name Hyper-V -IncludeAllSubFeature -Restart

Server Core模式Hyper-V管理工具指令語法:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools

一般圖形化介面Windows 指令語法:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

 

06、Hyper-V建立NIC LACP
※SET(Switch Embedded Teaming)模式
※適用Windows 2016/2019/2022
指令語法:

New-VMSwitch -Name uplink -NetAdapterName uplink01,uplink02 -EnableEmbeddedTeaming $true

 

07、變更「電源選項」
查詢「目前電源選項狀態」指令語法:

powercfg.exe /list

變更「電源選項為高效能」指令語法:

powercfg.exe /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

 

08、移除SMB v1伺服器功能
指令語法:

Remove-WindowsFeature -Name FS-SMB1

09、憑證相關指令
查詢「本機個人」憑證指令語法:

Get-ChildItem -Path Cert:\LocalMachine\MY

刪除「本機個人」憑證指令語法:

Get-ChildItem -Path Cert:\LocalMachine\MY
Get-ChildItem Cert:\LocalMachine\My\7404C50EDDD80391DDCFAB3D69442D27EAA50A5A | Remove-Item
Get-ChildItem -Path Cert:\LocalMachine\MY

匯入憑證至「本機個人」指令語法:

Set-Location -Path Cert:\LocalMachine\MY
Import-PfxCertificate -FilePath C:\cert\hyper-v\hyper-v.pfx

 

10、停用administrator帳號
指令語法:

Disable-LocalUser -Name "Administrator"

 

11、匯出/匯入Windows防火牆規則
匯出語法

netsh advfirewall export "C:\winfw-policy.wfw"

匯入語法

netsh advfirewall import "C:\winfw-policy.wfw"

12、取得硬碟資訊
語法

get-disk

13、設定硬碟離線(offline)/連線(online)

設定編號0硬碟離線語法

Set-Disk -Number 0 -IsOffline $True

設定編號0硬碟連線語法

Set-Disk -Number 0 -IsOffline $False

14、清除硬碟設定
清除編號0硬碟連線語法

Clear-Disk -Number 0 -RemoveData

15、初始化硬碟
初始化編號0硬碟連線語法

Initialize-Disk -Number 0

16、啟用/關閉 SMB2/3 協定
查詢目前SMB2/3 協定狀態語法

Get-SmbServerConfiguration | Select EnableSMB2Protocol

關閉SMB2/3 協定語法

Set-SmbServerConfiguration -EnableSMB2Protocol $false

啟用SMB2/3 協定語法

Set-SmbServerConfiguration -EnableSMB2Protocol $true

17、Server Core編輯文字檔
指令語法

notepad.exe "$env:windir\system32\drivers\etc\hosts"

18、關閉虛擬機複寫憑證檢查
指令語法

New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" -Name "DisableCertRevocationCheck" -Value 1 -PropertyType DWORD -Force

19、移除Windows Defender
指令語法

Uninstall-WindowsFeature -Name Windows-Defender