我有強烈可怕的健忘問題,這是幫助自己記憶的網站,記憶了許多個人的事. 收錄許多資訊,防止資料不見或網站消失,供查找留存用。 如:筆記,訊息,記錄,生活,網路小品,趣味之事.... 希望我不要連整個Blog也一起忘記.
2026年7月20日 星期一
Windows Server因為Windows update後,導致自動重啟或是自動重新開機
2026年6月4日 星期四
使用NSSM將Nginx程式轉為Windows服務。(通用其他程式)
NSSM (Non-Sucking Service Manager) 的主要用途正如你所聽到的:它可以把任何傳統的執行檔(.exe)或腳本(.bat、.cmd、.vbs、PowerShell、Python 等)封裝並註冊成 Windows 服務(Windows Service)。
在預設情況下,Windows 無法直接將一般的程式當作服務來執行,因為標準的 Windows 服務必須遵循特定的 Service Control Manager (SCM) 通訊協定。如果直接用系統指令硬把普通 .exe 註冊成服務,啟動時通常會跳出「服務未回應控制要求」的錯誤。
NSSM 就是為了解決這個痛點而生的「代理人(Proxy)」。
為什麼要使用 NSSM?(核心功能)
1. 讓普通程式具備「服務」的特性
開機自動背後執行: 即使沒有使用者登入 Windows 系統,程式也會在背景自動啟動。
權限控管: 可以指定特定的系統帳戶(如
LocalSystem)或特定的網域/本地使用者帳戶來執行該程式。
2. 強大的崩潰自動重啟機制 (Auto-Restart)
這是 NSSM 最受工程師青睞的功能。如果你的程式因為 Bug、記憶體溢位或其他原因不正常關閉(Crash),NSSM 會自動監測到並立刻重啟該程式。它還內建了「重啟延遲」設定,防止程式陷入無限快速重啟的死迴圈。
3. 完美的 I/O 重新導向 (日誌記錄)
一般的控制台程式(Console Application)運行時會有輸出畫面(stdout 和 stderr)。變成服務後,這些畫面會消失。NSSM 可以幫你把這些原本會顯示在黑畫面的文字,即時寫入到指定的 .log 文字檔中,方便日後查修。
4. 優雅的關閉機制 (Graceful Shutdown)
當你停止服務時,NSSM 不會粗暴地直接殺掉(Kill)你的程式,而是會循序漸進地發送作業系統關閉訊號(如 WM_CLOSE、WM_QUIT),讓你的程式有時間處理未完的資料、關閉資料庫連線後才乾淨地結束。
常見的應用場景
在企業 IT 環境或開發流程中,NSSM 常被用來封裝以下類型的程式:
Web 服務/API 伺服器: 例如用 Python (Flask/FastAPI)、Node.js、Go 語言寫好的後端程式,需要 24 小時在 Windows 伺服器上穩定運行。
自動化腳本: 定時執行的批次檔(
.bat)或 PowerShell 監控腳本。開源工具: 許多從 Linux 移植過來、沒有原生 Windows 服務介面的開源工具(例如早期的 Prometheus Exporter、某些資料庫轉發工具)。
如何使用 NSSM?(極簡步驟)
NSSM 最棒的地方在於它同時提供了圖形介面 (GUI) 和命令列 (CLI),操作非常直覺。
使用圖形介面安裝服務:
下載並解壓縮 NSSM。
打開命令提示字元 (CMD) 並切換到 nssm 所在目錄,輸入:
nssm install 你的服務名稱此時會跳出一個 GUI 視窗:
Path: 選擇你要執行的
.exe或直譯器(如python.exe)。Startup directory: 程式運行的工作目錄(通常會自動帶入)。
Arguments: 程式需要的參數(例如
runserver 0.0.0.0:8000或腳本路徑)。在 I/O 頁籤可以設定 Log 輸出路徑。
點擊 Install service 就完成了!接下來就可以去 Windows 的
services.msc(服務管理面板)裡面看到它,並設定成自動啟動。
常用命令列指令:
如果你想透過指令快速管理,它也支援:
建立服務: nssm install 你的服務名稱
刪除服務:
nssm remove 你的服務名稱啟動服務:
nssm start 你的服務名稱停止服務:
nssm stop 你的服務名稱編輯現有服務:
nssm edit 你的服務名稱(會再次跳出 GUI 視窗讓你修改設定)
總結來說,NSSM 是一個非常輕量、穩定且完全免費的工具,是 Windows 系統管理員與開發者在處理背景程序時的必備神器。
======================================================
如果你在命令提示字元(CMD)中輸入了:
這時候系統會跳出 NSSM 的圖形化設定視窗(NSSM Service Installer),讓你填寫詳細的執行路徑與參數。
因為 Nginx 官方的 Windows 版本本身就只是一個普通的控制台程式(Console Application),沒有內建 Windows 服務的控制代碼,所以用 NSSM 來封裝它是非常標準且常見的做法。
請按照以下步驟在跳出的視窗中進行設定:
1. 欄位設定指引
在跳出的 Application 頁籤中,請填入以下資訊:
Path (目的程式路徑): 點擊右側的
...按鈕,找到你解壓縮 Nginx 的目錄,選取nginx.exe。範例:
C:\nginx\nginx.exeStartup directory (啟動工作目錄): 當你選好 Path 之後,這個欄位通常會自動帶入。請確保它是
nginx.exe所在的資料夾。範例:
C:\nginx⚠️ 注意: 這個欄位非常重要,因為 Nginx 啟動時需要去相對路徑讀取conf/nginx.conf檔案,如果工作目錄弄錯,服務會啟動失敗。Arguments (啟動參數): 這裡留空即可(通常不需要填寫,預設就會直接啟動)。
2. 建議進階設定:日誌重新導向 (I/O)
雖然 Nginx 本身就會寫入 logs/error.log,但如果 Nginx 因為主設定檔(nginx.conf)寫錯而導致「根本連開都開不起來」時,Nginx 自己的 Log 是不會有紀錄的。
建議切換到 I/O 頁籤:
Output (stdout): 設為
C:\nginx\logs\nssm_stdout.logError (stderr): 設為
C:\nginx\logs\nssm_stderr.log
這樣一來,如果服務啟動失敗,你可以直接來這兩個檔案看 Windows 拋出的最底層錯誤訊息。
3. 完成與啟動服務
欄位填妥後,點擊視窗下方的 Install service 按鈕。
看到彈出
Service "nginx" installed successfully!的成功訊息後,代表服務已經註冊成功。啟動 Nginx: 此時服務雖然註冊了,但預設還沒開始執行。請在 CMD 輸入以下指令來啟動它:
nssm start nginx(或者你可以按
Win + R輸入services.msc打開 Windows 服務管理員,找到nginx點選「啟動」,並確認啟動類型為「自動」)。
💡 日後如何維護?
變成 Windows 服務後,當你修改了 nginx.conf 設定檔,請不要直接去點 nginx.exe,也不要用 nginx -s reload(因為那會脫離 NSSM 的控制),請統一使用 NSSM 的指令:
重新啟動服務(應用新設定):
nssm restart nginx停止服務:
nssm stop nginx修改 NSSM 設定: 如果路徑填錯了,輸入
nssm edit nginx可以重新打開圖形視窗修改。移除服務: 如果以後不想用了,輸入
nssm remove nginx即可乾淨刪除。
https://drive.google.com/file/d/1NOaoX1tJyoeHKnQbI8vD3CbsgT7Jsoh-/view?usp=drive_link
https://drive.proton.me/urls/MV7M5ARMRG#GN6n4oWZavDG
2023年8月1日 星期二
WINDOWS SERVER 2019-2022無法啟用處理。
2023年5月17日 星期三
微軟授權方式
- 每一個實體伺服器都必須具備所有實體核心的授權
- 每一個實體處理器都必須具備至少 8 個實體核心的授權
- 每一個實體伺服器都必須具備至少兩個處理器的授權,總計至少有 16 個實體核心
- 核心授權是以兩個一組的方式銷售(即雙核心授權)
2021年5月14日 星期五
[AD]找出事件紀錄-從中找AD帳號鎖定問題
備註:若要搜尋與帳號鎖定相關的事件記錄,以下是 Windows Server 2003 與 Windows Server 2008 的相關事件編號與相關描述。
| Event ID (Win2k3) | Event ID (Win2k8) | 描述 |
|---|---|---|
| 0 | 4720 | 用戶帳戶已建立。 |
| - | 4723 | 嘗試更改帳戶密碼。 |
| 644 | 4740 | 已自動鎖定使用者帳戶。 |
| 4767 | 解除鎖定使用者帳戶。 | |
| 4624 | 登入成功。 | |
| 529 | 4625 | 登入失敗。嘗試以不明的使用者名稱,或已知使用者名稱與錯誤密碼登入。 |
| 675 | 4771 | 預先驗證失敗。此事件是在使用者鍵入不正確的密碼時,於金鑰發佈中心(KDC)上所產生。 |
| 676 | 4772 | 驗證票證要求失敗。在 Windows XP 或 Windows Server 2003 系列中不會產生此事件。 |
| 681 | 4777 | 登入失敗。嘗試網域帳號登入。在 Windows XP 或 Windows Server 2003 系列中不會產生此事件。 |
| - | 5025 | Windows 防火牆服務已停止。 |
https://www.lepide.com/freetools/account-lockout-examiner.html
https://www.lepide.com/how-to/identify-the-source-of-account-lockouts-in-active-directory.html
2020年12月8日 星期二
修改遠端桌面的PORT
修改遠端桌面的PORT
執行-->regedit2019年2月26日 星期二
管理 Windows Server 檔案伺服器中已開啟的檔案和資料夾
管理 Windows Server 檔案伺服器中已開啟的檔案和資料夾
1. 使用 "系統管理工具 > 共用與存放管理" 的 “管理開啟的檔案”
在 Windows Server 2008 R2 要管理檔案伺服器中已經開啟的檔案和資料夾,可以使用 "系統管理工具 > 共用與存放管理" 的 “管理開啟的檔案” 功能。
Windows Server 2012 R2,"共用與存放管理" 被擺放到了 "遠端伺服器管理工具" 項目下 ("新增角色及功能精靈" 的: 功能 > 遠端伺服器管理工具 > 角色管理工具 > 檔案服務工具 > 共用與存放管理工具);代表 "共用與存放管理" 只能夠被用在 "遠端伺服器管理" 工作上,而無法提供本機 (Windows Server 2012 R2) 的 "共用與存放管理"。
執行 Windows Server 2012 R2 的 "共用與存放管理",出現該工具只能夠在 Windows 2008 或 2008 R2 中使用 (難怪放到遠端伺服器管理工具了),2012 以後的請使用伺服器管理員的提示。)
而 Windows 2012 R2 的 "伺服器管理員 > 檔案和存放服務 > 共用" 也沒有提供 “管理開啟的檔案” 的相關功能。
2. 使用 Microsoft 管理主控台的 "共用資料夾" (FSMGMT.MSC)
Microsoft 管理主控台的 "共用資料夾" 也提供了管理開啟檔案的功能。執行 "FSMGMT.MSC" (在命令提示字元或是 Windows圖示 + R),開啟 "共用資料夾" 管理主控台,可以較快地 (跟上述的 "共用與存放管理" 相比) 管理已經開啟的共用檔案,是最方便的圖形化共用資料夾管理工具。在微軟的 TechNet,有人建議應該要使用 FSMGMT.MSC 來替代 "共用與存放管理",因為 FSMGMT.MSC 是一個較快速且具有時間彈性選擇 (A faster and more time resilient alternative):
https://technet.microsoft.com/en-us/library/cc725689(v=ws.11).aspx
AI 待觀察素材
UI UX Pro Max Design Intelligence https://www.uupm.cc/ 如何做出你的AI員工-網路版 上課簡報 https://www.4rich.org/ai/how2ai-v8.html
-
Windows powershell 測試 TCP 連線,比 Telnet 更好的方法。 過去以來,要測試某個 IP 的某個 Port 通不通,我最常用的做法是開 Cmd (命令提示字元),下指令 telnet server_ip port_no,如果失敗會得到 "無法...
-
1、打開資源管理器,定位到Edge安裝目錄,一般是C: \ Program Files (x86) \ Microsoft \ Edge \ Application。 2、進入對應當前Edge版本號的文件夾,並進入“Installer”文件夾內找到setup.exe。 3、選中s...
-
查詢AD帳號狀態,可查詢密碼到期時間,使用甚麼群組資訊.... 指令:net user AD_USERNAME /domain 例如AD帳號為test,則指令為: net user test /domain 或是要直接查當下的登入帳號,就輸入: > net user %us...
