You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

检测含Windows非法字符的文件名:SMB共享迁移至Sharepoint校验问题

SMB共享迁移Sharepoint非法文件名检测方案

核心原理

跨平台SMB共享场景下,Mac端创建的包含Windows文件名非法字符的文件,Windows访问时SMB客户端会统一将这些原始非法字符映射到Unicode私用区U+F000 ~ U+F0FF区间的码点,不同原始字符对应不同的偏移量,不存在统一替换值,但所有转义后的字符都落在上述固定区间内。

检测实现方案

1. 单文件名检测逻辑

直接校验文件名中是否存在码点落在0xF000到0xF0FF范围内的字符即可,无需匹配原始非法字符列表。

2. Powershell批量检测代码

# 扫描指定路径下所有含转义非法字符的文件/文件夹
$scanPath = "\\你的SMB共享路径"
$invalidItems = Get-ChildItem -Path $scanPath -Recurse -Force | Where-Object {
    # 逐个字符校验是否落在SMB转义私用区区间
    $_.Name.ToCharArray() | Where-Object { [int]$_ -ge 0xF000 -and [int]$_ -le 0xF0FF }
}

# 输出所有异常项路径
$invalidItems | Select-Object FullName, Name | Format-Table -AutoSize

3. 可选:还原原始非法字符

如果需要确认原始字符内容,可将转义后的字符码点减去0xF000,即可得到对应的原始ASCII字符:

# 示例:还原转义字符的原始值
$escapedChar = "" # 示例中的转义后字符
$originalChar = [char]([int]$escapedChar - 0xF000)
# 输出为原始的非法字符 *

迁移前处理建议

检测到异常文件后,可批量将非法字符替换为下划线_等合法字符,再执行Sharepoint迁移操作,避免迁移失败。


内容的提问来源于stack exchange,提问作者Charlie Patton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:57:02