FSO (File System Object) 是 ASP/腳本操作檔案系統的核心元件 (scrrun.dll),提供建立/讀寫/刪除/複製/移動檔案與資料夾、磁碟機資訊等功能。網站伺服器常需啟用 FSO 支援上傳、日誌、快取等功能,但也帶來安全風險(惡意腳本可遍歷/刪除伺服器檔案)。本文提供各版本 Windows 註冊/解除註冊標準指令,並說明安全配置原則。
| 作業系統 | DLL 路徑 | 解除註冊指令 | 註冊指令 |
|---|---|---|---|
| Windows 98 | C:\WINDOWS\SYSTEM\scrrun.dll | RegSvr32 /u C:\WINDOWS\SYSTEM\scrrun.dll | RegSvr32 C:\WINDOWS\SYSTEM\scrrun.dll |
| Windows 2000 | C:\WINNT\SYSTEM32\scrrun.dll | RegSvr32 /u C:\WINNT\SYSTEM32\scrrun.dll | RegSvr32 C:\WINNT\SYSTEM32\scrrun.dll |
| Windows XP / Server 2003 | C:\WINDOWS\SYSTEM32\scrrun.dll | RegSvr32 /u C:\WINDOWS\SYSTEM32\scrrun.dll | RegSvr32 C:\WINDOWS\SYSTEM32\scrrun.dll |
| Windows Vista/7/8/10/11 (32-bit) | C:\WINDOWS\SYSTEM32\scrrun.dll | RegSvr32 /u C:\WINDOWS\SYSTEM32\scrrun.dll | RegSvr32 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.dll | RegSvr32 C:\WINDOWS\SYSWOW64\scrrun.dll |
dir 路徑\scrrun.dll 確認檔案存在。SysWOW64 版本;64 位元應用程式註冊 System32 版本。建議兩者皆註冊以相容。IUSR_機器名 / IIS_IUSRS 讀取/執行權限;上傳目錄單獨授予寫入/修改,並設定「僅寫入」或執行權限移除 (Handler Mappings 移除 .asp/.php 等)。w3wp.exe 異常檔案系統呼叫 (CreateFile/DeleteFile/WriteFile 高頻)。HKEY_CLASSES_ROOT\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228} (FSO Class ID) 是否存在,確認註冊狀態。<%
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 是把雙面刃:善用則自動化效率極高,失控則災難性後果。請依據實際業務需求,在「啟用+嚴格權限控管」與「停用」之間做出風險導向的決策。