Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

FSO (FileSystemObject) 註冊與解除註冊完整指令:Windows 98/2000/2003/XP 版本對照表

編輯:XP 系統應用技巧

FSO (File System Object) 是 ASP/腳本操作檔案系統的核心元件 (scrrun.dll),提供建立/讀寫/刪除/複製/移動檔案與資料夾、磁碟機資訊等功能。網站伺服器常需啟用 FSO 支援上傳、日誌、快取等功能,但也帶來安全風險(惡意腳本可遍歷/刪除伺服器檔案)。本文提供各版本 Windows 註冊/解除註冊標準指令,並說明安全配置原則。

各版本註冊/解除註冊指令對照表

作業系統DLL 路徑解除註冊指令註冊指令
Windows 98C:\WINDOWS\SYSTEM\scrrun.dllRegSvr32 /u C:\WINDOWS\SYSTEM\scrrun.dllRegSvr32 C:\WINDOWS\SYSTEM\scrrun.dll
Windows 2000C:\WINNT\SYSTEM32\scrrun.dllRegSvr32 /u C:\WINNT\SYSTEM32\scrrun.dllRegSvr32 C:\WINNT\SYSTEM32\scrrun.dll
Windows XP / Server 2003C:\WINDOWS\SYSTEM32\scrrun.dllRegSvr32 /u C:\WINDOWS\SYSTEM32\scrrun.dllRegSvr32 C:\WINDOWS\SYSTEM32\scrrun.dll
Windows Vista/7/8/10/11 (32-bit)C:\WINDOWS\SYSTEM32\scrrun.dllRegSvr32 /u C:\WINDOWS\SYSTEM32\scrrun.dllRegSvr32 C:\WINDOWS\SYSTEM32\scrrun.dll
Windows x64 版本C:\WINDOWS\SYSWOW64\scrrun.dll (32-bit)
C:\WINDOWS\SYSTEM32\scrrun.dll (64-bit)
RegSvr32 /u C:\WINDOWS\SYSWOW64\scrrun.dllRegSvr32 C:\WINDOWS\SYSWOW64\scrrun.dll

執行注意事項

  • 需系統管理員權限:以「以系統管理員身分執行」開啟命令提示字元 (CMD/PowerShell)。
  • 路徑確認:執行前先用 dir 路徑\scrrun.dll 確認檔案存在。
  • 成功訊息:出現「DllRegisterServer in ... succeeded」或「DllUnregisterServer in ... succeeded」即表示完成。
  • 64 位元系統:32 位元應用程式 (如經典 ASP、32-bit 腳本) 需註冊 SysWOW64 版本;64 位元應用程式註冊 System32 版本。建議兩者皆註冊以相容。

安全配置原則:最小權限、隔離風險

  1. NTFS 權限鎖定:網站根目錄僅授予 IUSR_機器名 / IIS_IUSRS 讀取/執行權限;上傳目錄單獨授予寫入/修改,並設定「僅寫入」或執行權限移除 (Handler Mappings 移除 .asp/.php 等)。
  2. 停用不必要的 FSO 功能:若網站無檔案系統操作需求,執行解除註冊指令停用 FSO,降低攻擊面。
  3. 應用程式池身分識別隔離:每個網站使用獨立應用程式池,身分識別設為 `ApplicationPoolIdentity`,避免跨站存取。
  4. 防火牆/IDS 監控:監控 w3wp.exe 異常檔案系統呼叫 (CreateFile/DeleteFile/WriteFile 高頻)。
  5. 定期稽核:檢查 HKEY_CLASSES_ROOT\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228} (FSO Class ID) 是否存在,確認註冊狀態。

驗證 FSO 是否可用 (ASP 範例)

<%
Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")
If IsObject(fso) Then
    Response.Write "FSO 可用,版本: " & fso.GetFileVersion("C:\Windows\System32\scrrun.dll")
Else
    Response.Write "FSO 不可用"
End If
Set fso = Nothing
%>

FSO 是把雙面刃:善用則自動化效率極高,失控則災難性後果。請依據實際業務需求,在「啟用+嚴格權限控管」與「停用」之間做出風險導向的決策。

Copyright © Windows教程網 All Rights Reserved