2023年3月18日 星期六

【Win10/11】P3色域顯示器限縮回RGB色域

P3色域顯示器限縮回RGB色域

最近剛買一台螢幕,原本已經有一台XG27UQ,又添加了一台U2723QE,沒加沒事這一家上去之後發現怎麼色域變了感覺很黯淡應該是RGB色域。

搞了好久才發現單接XG27UQ色域是正常的P3,但是接上第二台U2723QE之後就自動跳回RGB色域了,顏色變超淡。

之前也曾經發生過筆電上的螢幕色域異常的問題當初是這樣解決的
CHG: 筆電接上電視畫面偏白,筆電上的螢幕也變白 (charlottehong.blogspot.com)

不過我XG27UQ是掛在NVIDIA上面根本沒得選擇,弄了好久才找到問題點。


色彩管理色域限縮

之前裝過官方給的ICC色彩描述檔案,當初以為是這東西只有開啟Adobe全家桶之類的軟體才會有作用裝完就沒管它了,調了下才發現原來這可以影響到全域的。





裝好色彩描述檔之後,這個選項如果有打勾就會套用了色域限縮了,整台電腦都會限縮回RGB色域。


顯示器色域限縮

需要從軟體下手是因為這個型號的螢幕沒在韌體上做色域限縮,高階一點的或是美術螢幕通常是可以直接從韌體層面限縮色域的。




2023年3月16日 星期四

Edge 如何移除右上角的 Bing預覽圖示

Edge 如何移除右上角的 Bing預覽圖示



近期版本更新之後右上角多出一個很醜的圖標藍色的大B,超級顯眼又很醜。




方法1 由設定內關閉

版本 111.0.1661.54 (官方組建) (64 位元),自這個版本開始微軟追加能隱藏的選項了。

位置在哪這裡
edge://settings/sidebar/appSettings?hubApp=2354565a-f412-4654-b89c-f92eaa9dbd20

或是手動點擊【側邊攔 / 探索】進入設定頁面



然後把顯示探索隱藏掉






方法2 修改捷徑 (無須管理員權限)

追加啟動參數 --disable-features=msUndersideButton

對著桌面的捷徑按下右鍵內容,找到開始位置然後在最後方追加上面的命令f。

這個有個但書是,預設Edge的捷徑是安裝在公用資料夾裡面,公用資料夾需要管理員權限才能存取,如果沒有管理員權限的話桌面的捷徑直接原地複製一個修改即可,不過副作用是桌面會有兩個一模一樣檔名的捷徑。



完成之後需要把 edge 完整關閉才會生效,關閉的方法是按右上角的三個點,然後選擇最下方的關閉 Microsoft Edge 在手打打開即可


另外已經釘選到工作列的捷徑不會生效,需要移除重新釘上去才會有作用,重新釘選的時候點選桌面已經更改過的捷徑按右鍵釘選


最後一個坑就是 edge 在開機的時候會自動在背景預啟動,因為這個背景啟動是不帶參數的,會導致必須先打開一次在用上面的方法關掉

設定裡面可以關掉這個預啟動






方法3 修改登錄檔

直接從原則上禁止該圖標

在開始搜尋 Powershell 並按下右鍵選擇使用系統管理員開啟,然後輸入下面的命令

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge" /v "HubsSidebarEnabled" /t REG_DWORD /d 0 /f




執行完畢之後在 edge 網址列輸入 edge://policy 進入原則管理頁面,然後點擊重新載入原則,套用完畢之後就生效了



按下之後就會消失了,不過有個小小的副作用是按下設定的時候最底下會多出一個由您的組織管理的字樣




加餐使用者圖示未登入的紅點

封面圖那個醜醜的B圖示的左邊一點的使用者圖示,如果未登入會有個紅色的圖標很顯眼,那個對應的原則是下面的指令

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge" /v "ExperimentationAndConfigurationServiceControl" /t REG_DWORD /d 0 /f

一樣需要重新載入原則才會生效


2023年3月9日 星期四

Windows 如何清除 KMS授權 重新登錄正版彩盒序號

Windows 如何清除 KMS授權 重新登錄正版彩盒序號

如果原本電腦是已經啟用過KMS直接輸入應該會報錯,必須先清除KMS授權才可以(包含office)重新輸入序號授權。

在切換之前需要先將KMS授權清掉,否則直接輸入會跳錯誤無法切換。


清除 KMS 授權重新啟用 Retail 授權

打開終端機

  • Win11
    按下 Win+X 然後選擇 終端機(系統管理員) 打開

  • Win10
    按下 Win+X 然後選擇 Windows PowerShell(系統管理員) 打開


0. 清除授權 (選用)

這裡不執行清除其實也無所謂,在下一步驟切換Retial授權後會自動刷掉這些。
# 清除金鑰管理服務電腦名稱(KMS Host)
cscript -nologo c:\windows\system32\slmgr.vbs -ckms

# 清除登入中的金鑰
cscript -nologo c:\windows\system32\slmgr.vbs -cpky

# 清除授權金鑰
cscript -nologo c:\windows\system32\slmgr.vbs -upk


1. 切換至Retial授權

在KMS授權狀態下無法啟用購買的序號,要先用微軟公開的公版序號將授權轉回Retial授權狀態才可以啟用

下面依據自己購買的版本選擇版本

# 切換到家用版 (Retial授權)
cscript -nologo c:\windows\system32\slmgr.vbs -ipk "YTMG3-N6DKC-DKB77-7M9GH-8HVX7"

# 切換到專業版 (Retial授權)
cscript -nologo c:\windows\system32\slmgr.vbs -ipk "VK7JG-NPHTM-C97JM-9MPGT-3V66T"

# 切換到企業版 (Retial授權)
cscript -nologo c:\windows\system32\slmgr.vbs -ipk "XGVPP-NMH47-7TTHJ-W3FW7-8HV2C"

* 失敗跳出錯誤的話,拔掉網線在斷網的狀態下重新嘗試一次

 

然後確認授權有沒有變回未啟用狀態

# 檢查授權狀態
cscript -nologo c:\windows\system32\slmgr.vbs -dli

倒數第二行有出現【授權狀態: 通知】就表示切換成功了




2. 重新輸入授權金鑰

這邊 "購買的金鑰" 自行替換成自己的序號,也可以單純只輸入 Changepk打開圖形介面輸入。

# 輸入Retail金鑰
Changepk /ProductKey "購買的金鑰"


再來檢一下授權狀態如何 (也可以打開設定從關於檢視)

# 檢查授權狀態
cscript -nologo c:\windows\system32\slmgr.vbs -dli

* 授權還是未啟用狀態的話,重新啟動就好了。(主要是管理啟用的服務要重啟,不重啟要隔一段時間才會自動跑驗證)

 


確認一下最後一行【授權狀態: 已取得授權】就表示成功了




其他

測試的時候有在步驟2的地方有嘗試用過 slmgr /ipk 輸入正版序號過,結果那序號不知道怎麼樣就不能用了,即便用UI輸入序號也不能使用。

後來解決辦法是按"難移排解",從其他電腦獲取數位授權(先借來用一下),有成功啟用。啟用之後打開設定再次從UI介面輸入序號才成功的,姑且用 Showkeyplus 查詢後確認是這組序號沒問題,就當作解決了。

不確定是不是 ipk 無法啟用 Retail 授權,總之有發生這樣的事情小心為上。



參考

- 序號源:Generic Product Keys to Install Windows 10 Editions

用於取得大量啟用資訊的 Slmgr.vbs 選項 | Microsoft Learn




2023年2月12日 星期日

WinRE 分區是什麼可否刪除

WinRE 分區是什麼可否刪除

WinRE系統是當系統無法正常啟動時應急用的系統,他有基本命令提示自元可以使用,以及自動修復系統。如果是筆電有內建原廠恢復系統,也會在這個位置。

第二個功用就是當有重大更新時,會需要用到WinRE來更新系統檔案,這東西沒了可能會影響到某些重大更新跑步了。

通常情況下預設的光碟ISO檔案安裝出來的Windwos會自動切一個WinRE分區出來讓修復系統使用,這個在以前很早期的Win10上大概是576MB左右而已,後來慢慢有變大成768MB到了目前Win11已經漲到1G了相當的大。



RE系統相關操作命令

修復映像檔可以參考這篇站內文
CHG: 修復 Windows RE分區 重新啟用 (charlottehong.blogspot.com)

指令常用的大概就這幾個,剩下的參考微軟的技術文件

reagentc /enable
reagentc /disable
reagentc /info

微軟技術文件:REAgentC 命令列選項 | Microsoft Learn



RE系統映像檔

如果關閉RE系統的話,掛裡面的映像檔會被恢復到原始的位置上

預設的映像檔原始位置

C:\windows\system32\recovery

預設釋放出去的映像檔位置在

WinRE分區:\recovery\WindowsRE

釋放到哪裡是參照這份檔案

C:\Windows\System32\Recovery\ReAgent.xml

雖然是參照這份xml檔案,但實際上嘗試修改似乎不是所有地方都起作用,主要操作還是得靠 reagentc 來執行,執行完畢xml對應的位置就會被修改了。



沒有RE修復分區如何手動建立

雖然預設使用ISO安裝完畢之後會自動分割RE修復分區,但如果不是用官方安裝程式安裝而是直接用DISM解出來的系統預設就沒有修復分區。

這不是太大問題就是了,沒有切分區的情況下啟用RE系統的話,會直接被釋放到C曹底下recovery資料內。當重大更新時因為要動到C曹的關係會自動壓縮足夠的空間並釋放到其他分區。

所以其實放著不管無所謂反正時間到了總要更新就會自己分出去了,是分區有兩個一個比較大一個比較小的話,很顯然就是系統安裝的比較早,以前的修復分區空間不足,更新的時候又做了一個更大的出來了。

手動建立的話可以參照微軟的手冊跟著做就可以造出來了
部署 Windows RE | Microsoft Learn

RE分區本身不是太特別的空間,在MBR下他的識別碼是27,在GPT下識別碼是de94bba4-06d1-4d40-a16a-bfd50179d6ac,安裝檔做出來的空間預設是隱藏這樣。

這部分在手冊的步驟裡有提到,更詳細的可以參考手冊的過程應該更容易理解。



RE修復分區是否可刪除

如上面所提到的啟用RE系統的時候把映像檔釋放到分區,如果不先關掉RE系統就直接刪除分區,映像檔就直接被幹掉了。映像可以從別台電腦或是官方下載ISO直接從裡面提取。

如同上述如果沒有RE分區那麼映像檔會被釋放到C曹底下,所以RE分區完全可以刪除的,只要正確的移除即可。

不過哪天WindwosUpdate重大更新的時候會自動把C曹底下的收回,並壓縮出一個RE分區擅自釋放出去就是了,如過真的嫌RE分區礙眼,可能需要定期清理。

清理可以參照這篇站內文章,有寫好線程的移除Bat可以使用。

CHG: [Win10/11] 如何刪除 修復磁碟分割區 (RE分區) (charlottehong.blogspot.com)





2023年2月10日 星期五

移除Windows 11桌面右下方「不符合系統需求」浮水印

移除Windows 11桌面右下方「不符合系統需求」浮水印

好像並不是所有電腦都會出現,不確定具體條件是什麼但總之出現了的話可以從登錄檔隱藏這個提示訊息

新增登錄檔

先按下 Win+X 然後再按下 A ➔ 打開終端機,然後輸入以下的代碼

reg add "HKEY_CURRENT_USER\Control Panel\UnsupportedHardwareNotificationCache" /v "SV2" /t REG_DWORD /d 0 /f

輸入完畢再重新啟動電腦就好了。




對應的登錄檔位置







2023年1月25日 星期三

如何把 PowerShell 的代碼寫入 Bat 整合成一個檔案

如何把 PowerShell 的代碼寫入 Bat 整合成一個檔案

因為PowerShell的檔案 ps1 沒辦法直接點擊執行,雖然可以透過改登錄檔的方案實現不過整體麻煩程度太大了,要發佈到其他電腦上執行不太合適

檔案可以儲存成 bat 或 cmd 這兩個附檔名是等價的,從微軟的技術文件可以看到 Windwos98 以前使用 bat 副檔名,而在 WindwosXP 之後因為命令提示字元的版本升級了,為了做出區別才新增了 cmd 的副檔名

不過新系統本身有向下相容,所以即便使用舊檔名也不會有任何影響。對於舊系統 Windwos98 為了避免執行到新版本的代碼,可以使用 cmd 的副檔名做區隔。


整合的關鍵實現原理

說白了其實就是利用臨時環境變數當作通道,由Bat把自身的路徑Path寫入環境變數,然後再由Bat執行Powershell,此時因為環境變數是共通的就能讀取到Bat檔案了

讀取到Bat檔案檔案,再由事先做好的註解來區分哪些是 PwshScript 只執行這一部分就好,這麼一個流程實現的

這邊這個思路是參考 AveYo 的源代碼抽出一部分出來實現 ps1 與 bat 整合的


範例代碼

FileName: RunPwsh.cmd 

檔案請依照第四行後面用UTF8編碼儲存,或是把第四行改成Big5並用Big5編碼儲存


:: 2023-01-25 By:Charlotte.Hong
@echo off

set "0=%~f0"& set "1=%~dp0"& set "2=%*"& set PwshScript=([Io.File]::ReadAllText($env:0,[Text.Encoding]::GetEncoding('UTF-8')) -split '[:]PwshScript')
powershell -nop -exec Bypass -c "(%PwshScript%[1])|iex; Exit $LastExitCode"

echo ExitCode: %errorlevel%
pause
Exit /b %errorlevel%

:PwshScript#:: Script1 # 2023-01-25 By:Charlotte.Hong
#:: --------------------------------------------------------------------------------------------------------------------------------
Write-Host "by PSVersion::" $PSVersionTable.PSVersion
Write-Host "Arguments=" $env:2
Write-Host "Test OK. By:Charlotte.Hong"

:PwshScript#:: End
#:: --------------------------------------------------------------------------------------------------------------------------------


然後直接雙擊執行或從終端機執行即可


參數的獲取方式可以參考上圖的執行方法



Encoding亂碼的問題

上述的範例 PowerShell 會用UTF8編碼讀取Bat檔案,這是為了方便能夠在PwshScript裡面寫入各國語言。

不過這樣做有個很現實的問題,Windwos 預設是用系統語言來讀取Bat檔案的,也就是說在PwshScript之外的代碼,Bat代碼的部分如果輸入非英文就會亂碼。

把它改成Big5的弊端是在 PwshScript 裡就不能輸入日文了,看大家怎麼取捨了。我是鐵了心就是不寫Bat的代碼,所以選擇UTF8顧好 PwshScript 的部分就好。




2023年1月22日 星期日

禁止 Microsoft Edge 擅自在桌面建立捷徑

禁止 Microsoft Edge 擅自在桌面建立捷徑

近期改版之後Microsoft Edge似乎在每次瀏覽器更新後都會創建桌面快捷,如果原本就有在桌面放捷徑倒是沒影響,個人習慣是放到工作列之後就刪除桌面捷徑了,每次更新完都會自己冒出來實在是有點煩。


禁止更新時在桌面建立捷徑

先按下 Win+X 然後再按下 A ➔ 打開終端機,然後輸入以下的代碼

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\EdgeUpdate" /v "CreateDesktopShortcutDefault" /t REG_DWORD /d 0 /f


然後就完事了,會看到底下執行成功的信息






參考