Windows 11 NVMe「阻止」可能並非真正的阻止——以下是真相
微軟似乎在阻止一項針對 Windows 11 NVMe 的最佳化,但這可能只是功能 ID 的變更。以下是實際情況以及用戶不滿的原因。
Windows 10 可以為不同的音頻設備保留單獨的音頻配置文件。對於您連接的每個音頻設備,您可以設置不同的音量級別,當設備連接時,音量將自動調整。當然,沒有人讓音頻設備一直處於靜音狀態。他們會增加或減少音量,但沒有人習慣性地將音頻設備靜音。
如果您在台式機上使用一副耳機,並且經常需要斷開它們的連接,您可以使用一個小的 PowerShell 腳本,它會在您拔下耳機時自動靜音。
這是手機所做的事情,即當您拔下耳機時,音樂會自動停止。這背後的邏輯是,您要么聽完了音樂,要么不小心取下了耳機,而您需要一種快速的方法將其關閉。該腳本基本上是由GEEKEEFY的Prateek Singh 根據相同的原則 編寫的。
自動靜音
打開記事本並粘貼以下內容;
[cmdletbinding()] Param() #使用System.Runtime.InteropServices添加訪問Audio API的定義 Add-Type -TypeDefinition @'; [Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IAudioEndpointVolume { // f(), g(), ...是未使用的COM方法槽。如果你關心 int f(); 定義這些 int g(); int h(); 國際我(); int SetMasterVolumeLevelScalar(float fLevel, System.Guid pguidEventContext); int j(); int GetMasterVolumeLevelScalar(out float pfLevel); int k(); int l(); 國際米(); 整數 n(); int SetMute([MarshalAs(UnmanagedType.Bool)] bool bMute, System.Guid pguidEventContext); int GetMute(out bool pbMute); } [Guid("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IMMDevice { int Activate(ref System.Guid id, int clsCtx, int activationParams, out IAudioEndpointVolume aev); } [Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IMMDeviceEnumerator { int f(); // 未使用的 int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice endpoint); } [ComImport, Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")] class MMDeviceEnumeratorComObject { } public class Audio { static IAudioEndpointVolume Vol() { var enumerator = new MMDeviceEnumeratorComObject() as IMMDeviceEnumerator; IMMDevice dev = null; Marshal.ThrowExceptionForHR(enumerator.GetDefaultAudioEndpoint(/*eRender*/ 0, /*eMultimedia*/ 1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof(IAudioEndpointVolume).GUID; Marshal.ThrowExceptionForHR(dev.Activate(ref epvid, /*CLSCTX_ALL*/ 23, 0, out epv)); 返回 epv; } 公共靜態浮點量 { 得到 {float v = -1; Marshal.ThrowExceptionForHR(Vol().GetMasterVolumeLevelScalar(out v)); return v;} set {Marshal.ThrowExceptionForHR(Vol().SetMasterVolumeLevelScalar(value, System.Guid.Empty));} } public static bool Mute { get { bool mute; } Marshal.ThrowExceptionForHR(Vol().GetMute(out mute)); 返回靜音;} set { Marshal.ThrowExceptionForHR(Vol().SetMute(value, System.Guid.Empty)); } } } '@ -Verbose While($true) { #清除當前會話中的所有事件,因為它處於無限循環中,以便在循環開始時重新開始 Get-Event | Remove-Event -ErrorAction SilentlyContinue #註冊事件並等待事件被觸發 Register-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariable Event |Out-Null $EventType = $Event.sourceargs. 新活動 | ` Sort-Object TIME_CREATED -Descending | ` Select-Object EventType -ExpandProperty EventType -First 1 #要處理的條件邏輯,何時使用音頻 API 將機器靜音/取消靜音 If($EventType -eq 3) { [Audio]::Mute = $true Write-Verbose "Muted [$((Get-Date).tostring())]" } elseif($EventType -eq 2 -and [Audio]::Mute -eq $true) { [Audio]::Mute = $false Write-Verbose "取消靜音 [$((Get-Date).tostring())]" } }
使用 PS1 文件擴展名保存它。確保從文件類型下拉列表中選擇“所有文件”。給文件起一個名字,讓你一眼就能看出它的作用。將它保存在不太可能意外刪除的地方,但也保存在需要時可以輕鬆找到的地方。
運行腳本
PowerShell 不能只是自動運行腳本。有一個內置的安全措施可以防止它這樣做,但有一種方法可以解決它。我們有一篇關於如何做到這一點的詳細文章。按照說明自動運行您剛剛創建的 PowerShell 腳本,並在每次啟動 PC 時使用計劃任務啟動腳本。
或者,您可以在引導系統時手動運行腳本。我使用它的時間不到 30 分鐘,我不知道以前沒有它我是如何生活的。
微軟似乎在阻止一項針對 Windows 11 NVMe 的最佳化,但這可能只是功能 ID 的變更。以下是實際情況以及用戶不滿的原因。
微軟正在改進 Windows 11,但一些關鍵問題仍然存在。人工智慧控制、帳戶要求和遙測功能仍然缺乏真正的使用者選擇權。
要在 Microsoft Edge 中啟用標籤頁的雲母視覺效果,您需要在圖示後面附加 --enable-features=Windows11MicaTitlebar。
本指南說明如何使用離線安裝程式或 WinGet 指令在 Windows 11 (10) 上安裝 VirtualBox。此外,本指南還解釋了配置方法。
Windows 11 版本 22635.5170 (KB5055623) 為檔案總管帶來了一些變化,並將佈局更大的新「開始」功能表移植到了 23H2 版本。
若要在 Windows 11(或 10)上啟用註冊表自動備份,請建立 EnablePeriodicBackup DWORD 值並將其設為 1,然後執行 RegIdleBackup 任務。
適用於執行 Windows 11 2025 年 5 月更新的 Copilot+ 電腦的 Windows Recall 版本,以及 Click to Do 和語意索引功能也已發布。
微軟在 Canary 頻道發布了 Windows 11 26H1,版本號為 28000,重點是增強對驍龍 X2 和 NVIDIA N1X 晶片的硬體支援。
KB5067115(版本 26220.7051 和 26120.7051)適用於 Windows 11 25H2 和 24H2,新增了工作列中的 Ask Copilot、掌上電腦的 Xbox 模式和共用音訊功能。
如何使用工作管理員和裝置管理員檢查您的 Windows 11 電腦使用的是整合式顯示卡還是獨立顯示卡。