2026年9月11日 星期五

VS CODE離線安裝套件方式-續



去年vscode離線安裝 powershell nupkg

今年在一台無外網的 windwos 2025上安裝時遇到了powershell版本一直讀取到了5.1的版本,鬼打牆了一下午,在VM還原重測測了好幾回,應該是可行了。

將下載到的免安裝powershell 解壓縮到"D:\Tools\PowerShell-7.6.5-win-x64\"、vscode也是免安裝。

https://github.com/PowerShell/vscode-powershell 下載 vscode extension powershell-2025.4.0.vsix

按以下步驟設定:

1.主機環境變數PATH加入"D:\Tools\PowerShell-7.6.5-win-x64\"

2.打閞vscode, 匯入extension ctrl+shift+x , 點右上角... Install from VSIX  

3.在terminal 下 cd "D:\Tools\PowerShell-7.6.5-win-x64"

4.ctrl+shift+p Preferences:Open User Settings(JSON)

加入以下,這𥚃問了好幾個AI工具,試了好久,才成功將vscode預設為powershell 7。

{

"terminal.integrated.profiles.windows": {

"PowerShell 7": {

"path": "D:\\\\Tools\\\\PowerShell-7.6.5-win-x64\\\\pwsh.exe",

"icon": "terminal-powershell"

}

},

"terminal.integrated.defaultProfile.windows": "PowerShell 7",

"powershell.powerShellDefaultVersion": "PowerShell 7",

"powershell.powerShellExePath": "D:\\\\Tools\\\\PowerShell-7.6.5-win-x64\\\\pwsh.exe",

"powershell.defaultProfile.windows": "D:\\\\Tools\\\\PowerShell-7.6.5-win-x64\\\\pwsh.exe",

"powershell.powerShellAdditionalExePaths": {

"PowerShell 7": "D:\\\\Tools\\\\PowerShell-7.6.5-win-x64\\\\pwsh.exe"

},

"powershell.promptToUpdatePowerShell": false

}


5.ctrl+shift+p Developer:Reload Window

6. 關閉已存在的terminal ,ctrl+~ 重啟terminal

7.如果都不行就重開vscode

8.開始安裝nupkg ,這裡參考了黑暗執行緒 https://blog.darkthread.net/blog/ps-install-module-manually/

其中改了$ver = [System.Text.RegularExpressions.Regex]::Match($pureNupkgFileName, '\d+(\.\d+)+').Value

不然安裝sqlserver.22.4.5.1.nupkg時,目錄變成sqlserver::1\22.4.5


cd "D:\Tools\PowerShell-7.6.5-win-x64"

d:\Tools\powershell\install.ps1 d:\Tools\powershell\importexcel.7.8.10.nupkg

d:\Tools\powershell\install.ps1 d:\Tools\powershell\send-mailkitmessage.3.2.0.nupkg

d:\Tools\powershell\install.ps1 d:\Tools\powershell\sqlserver.22.4.5.1.nupkg

9.安裝完後,試一下 Get-Command invoke-sqlcmd  顯示以下應該就OK了。

CommandType     Name                                               Version    Source

-----------     ----                                               -------    ------

Cmdlet          Invoke-Sqlcmd                                      22.4.5.1   sqlserver

2026年7月6日 星期一

IIS 網站無法下載中文檔名檔案因為取消高位元字元

 網址+中文檔案名稱方式下載檔案顯示 404 - 找不到檔案或目錄。

但英數字檔案名稱則可下載。

因為設定GCB IIS,其中1項 將高位元字元預設取消勾選了。

27 TWGCB-04-014-0028 要求篩選與其他限制模組 允許高位元字元

這項原則設定決定查詢字串是否允許使用高位元字元(非ASCII字元)。高位元字元之範例包括:Ж、Ы或Я

當查詢字串因含有高位元字元而被拒絕時,IIS將會記錄404.12狀態在日誌檔中

禁止使用高位元字元,可確保URL中不會出現非ASCII文字,以避免發生輸入特殊字元或跳脫命令字元等攻擊語法


解決方式:

針對需要排除的路徑允許高位元字元勾選。

在網站>要求篩選>URL頁籤>允許URL>輸入/要允許的目錄>編輯功能設定>勾選允許高位元字元。


2026年4月23日 星期四

離線安裝SSMS 22 launched extracted application exiting with result code 0x138b


SSMS 22 安裝器下載頁面 https://learn.microsoft.com/zh-tw/ssms/install/install

https://aka.ms/ssms/22/release/vs_SSMS.exe


將安裝檔下載到本機,檔案好大2.5G 
https://learn.microsoft.com/zh-tw/ssms/install/create-offline

vs_SSMS.exe --layout C:\SSMS_Layout --all

在網路完全封閉的環境下安裝會莫名的消失,錯誤是ssms 22 launched extracted application exiting with result code 0x138b,但如果連網則不會有問題,所以離線安裝下載仍不夠周全。


查看了解法先試Primary Solution: Install Missing Certificates

到安裝 SQL Server Management Studio 離線安裝的憑證
https://learn.microsoft.com/zh-tw/ssms/install/install-certificates

下載Microsoft Windows 程式代碼簽署 PCA 2024 憑證。https://www.microsoft.com/pkiops/certs/Microsoft%20Windows%20Code%20Signing%20PCA%202024.crt

直接點選檔案後加入到受信任的根憑證後,再執行
vs_ssms.exe --noWeb

然後安裝畫面就可以出現了,但有點慢,請耐心等待。

2026年4月13日 星期一

SSAS 作業已因鎖定衝突而取消


SSAS在process 與 mdx query並存應用時,如果mdx 語法含crossjoin或維度member很多時,就容易顯示錯誤【作業已因鎖定衝突而取消。】

當然,SSAS應是process與 query分開時段執行,但因種種先知後知原因,專案就是有需要這樣應用,即使是已將cube 切割到最小範圍的Partition,但複雜的mdx語法就容易跑不出來。

也是透過claude一問一答後,對於這個需求造成的問題有了較明白的理解。

Cube 開始處理 (Process) >> 需要取得 Write Lock >> 等待 CommitTimeout 秒 → MDX 查詢仍在執行 (Read Lock 未釋放) >> ForceCommitTimeout 到期 >> 強制取消 MDX 查詢 >> 看到丟出來的錯 >> 取得 Write Lock,Cube 處理繼續。

在以process為優先完成的考量下,決定給予mdx查詢較多等待的時間。

在 SSMS 連線 Analysis Services >> 右鍵屬性 Properties>>勾選顯示進階(全部)屬性Show Advanced Properties 。

將ForceCommitTimeout 改為 90000 (90秒) 給查詢更多時間完成再強制取消(毫秒) ,原先為0表示立即取消。

截一下AI回應的圖,

2026年4月12日 星期日

SonarQube dotnet SonarScanner end 要插入智慧卡?

sonarqube 在某天的執行scan專案時,到了 dotnet SonarScanner end 階段執行到Java 17.0.13 Eclipse Adoptium 時跳出了請插入智慧卡的開窗???

什麼碗糕啊,找了許久,透過claude一問一答才找到了解法。

在C:\Users\yourname\.sonar\cache\39c5e23f3ce4d420663afba8ffde28034b72e2b3e240943dc2321bc1f912eef9\OpenJDK21U-jre_x64_windows_hotspot_21.0.9_10.zip_extracted\jdk-21.0.9+10-jre\conf\security\java.security 將security.provider.9=SunPCSC 這行註解,再跑一次 dotnet SonarScanner end 。

2025年5月27日 星期二

pdf.js 無法顯示部份字

有個檔案在pdf viewer套件中無法顯示內容,但下載檔案後使用工具又可以正常顯示。

本來以為是套件版本太舊的原因,於是去下載pdf viewer套件 https://github.com/mozilla/pdf.js

更新後還是一樣。

覺得應是字型缺漏的問題,於是用PDF-XChange查看文件屬性,編碼為UniCNS-UCS2-H,字型是細明體_HKSCS。

在套件的目錄中看到了有一個cmaps的目錄,裡頭看似有許多.bcmap的檔案,含了UniCNS-UCS2-H.bcmap

什麼是 UniCNS-UCS2-H

  • UniCNS-UCS2-H 是 Adobe 的一個 CMap 名稱,常用於繁體中文 CID 字型中。

  • UCS2」代表 Unicode 字符集(用兩個位元組表示,即 UTF-16 的基本多語言平面 BMP)。

  • CNS」代表中華民國(台灣)所訂定的 CNS11643 字符集。

  • H」代表水平書寫(Horizontal),如果是垂直書寫則會是 V


不管,反正檢視會漏字。
在查看時也發現新版的套件改用了.mjs而不是.js,所以在IIS MINE類型中把
.ftl  text/plain  >>套件中文化用
.mjs application/javascript
.bcmap application/octet-stream
新增上去,結果無法顯示的字就出現了,連版本更新也不用了。

如果是web.config,也可加入方便本機debug
<system.webServer>
  <staticContent>
   <remove fileExtension=".mjs"/>
   <mimeMap fileExtension=".mjs" mimeType="text/javascript"/>
   <remove fileExtension=".bcmap"/>
   <mimeMap fileExtension=".bcmap" mimeType="application/octet-stream"/>
    <remove fileExtension=".ftl"/>
   <mimeMap fileExtension=".ftl" mimeType="text/plain"/>
  </staticContent>
</system.webServer>
 

2025年5月20日 星期二

SQL SERVER OLTP OLAP範例資料庫

OLTP資料庫(.bak檔)

https://learn.microsoft.com/en-us/sql/samples/adventureworks-install-configure?view=sql-server-ver16&tabs=ssms

OLAP資料庫(.abf檔)

 https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks-analysis-services


VS CODE離線安裝套件方式-續

去年 vscode離線安裝 powershell nupkg 今年在一台無外網的 windwos 2025上安裝時遇到了powershell版本一直讀取到了5.1的版本,鬼打牆了一下午,在VM還原重測測了好幾回,應該是可行了。 將下載到的免安裝powershell 解壓縮到...