今天我们发现,我们以开发人员为中心的 GUI 应用程序无法在用户名包含撇号的系统上运行。因为虽然它是多平台的,但它的一部分运行在 Linux VM 中,其中 shell 脚本是动态生成的。我们进行了处理包含空格的名称和路径所需的引号处理,但没有考虑单引号。
在这样的环境中似乎scoop
也行不通,但我需要做更多调查。如果是这样的话,我无法想象许多开发人员会坚持将他们的 Windows 名称作为他们的实际名称。
寻求反馈来弄清楚我应该如何优先处理这个错误,它应该可以修复,但不需要几个小时。
答案1
Windows 用户名中单引号(撇号)有多常见?
这有点不相关。(也不是可以回答的问题。)
您会发现它不仅是 Windows 用户名中允许使用的字符,而且人们实际上确实使用该字符分配用户名。
因此,如果可以的话,请修复您的损坏代码。
然后考虑到从 AD 和现代 Windows 版本/应用程序/库来看,例如,对于属性,限制出奇地少sAMAccountName
:
作为反驳:
无论 Windows/AD 在技术上允许和可能实现什么,组织通常都会实施更严格的帐户命名策略。此类策略会限制用户名以提供尽可能多的(向后)兼容性,因为在异构环境中,您的应用程序并不是唯一一个因不符合“旧”约定的用户名而中断的应用程序。
实际上,这意味着人们确实会看到大多数相对较短的用户名符合 POSIX 标准的用户名仅包含来自可移植字符集 a-Z
,有时中间会有0-9
一个连字符-
、下划线_
或点 。反过来,这样的命名约定几乎没有动力去修复/现代化这些应用程序。.