我如何确定用户输入的共享名是否为 windows 网络共享的有效共享名?

How can I figure out if user input is a valid sharename for windows net share?

我有一个 powershell 脚本,它要求用户输入 windows 共享文件夹的名称。我正在使用 Windows' Net Share 设置共享文件夹。我想按照以下方式做一些事情:

$dest = "C:\Syncer" $sharename = Read-Host net share $sharename=$dest

但是,Windows 不会将所有输入字符串标识符识别为有效的共享名。例如,给它输入 Aa., 将不起作用。我如何确定用户的输入是否作为有效标识符?

@ TheMadTechnician 提供了很好的解决方案,我只是提出了服务器消息块 (SMB) 的事实,其中一个版本也称为通用 Internet 文件系统 (CIFS) 支持 Universal Naming Convention (UNC) 名称.

这是摘要,您对共享名感兴趣:

 UNC                = "\" host-name "\" share-name  [ "\" object-name ]
 host-name          = "[" IPv6address ‘]" / IPv4address / reg-name; IPv6address, IPv4address, and reg-name as specified in [RFC3986] 
 share-name         = 1*80pchar
 pchar              = %x20-21 / %x23-29 / %x2D-2E / %x30-39 / %x40-5A / %x5E-7B / %x7D-FF  
 object-name        = *path-name [ "\" file-name ]
 path-name          = 1*255pchar
 file-name          = 1*255fchar [ ":" stream-name [ ":" stream-type ] ]
 fchar              = %x20-21 / %x23-29 / %x2B-2E / %x30-39 / %x3B / %x3D / %x40-5B / %x5D-7B /                            %x7D-FF 
 stream-name        = *schar
 schar              = %x01-2E / %x30-39 / %x3B-5B /%x5D-FF
 stream-type        = 1*schar

Here 是 Regex 表达式的结果,我认为 google 可以给你更多。