今天,我們發現我們以開發人員為中心的 GUI 應用程式無法在使用者名稱包含撇號的系統上運行。因為雖然它是多平台的,但它的一部分運行在 Linux VM 中,其中 shell 腳本是動態生成的。我們進行了處理包含空格的名稱和路徑所需的引用,但沒有考慮單引號。
它看起來scoop
在這樣的環境中也不起作用,但我需要在那裡做更多的調查。如果是這樣的話,我無法想像許多開發人員堅持他們的 Windows 名稱是他們的真實名稱。
尋找回饋來弄清楚我應該如何優先考慮這個錯誤,這個錯誤應該是可以修復的,但不是在幾個小時內。
答案1
Windows 使用者名稱中的單引號(撇號)有多常見?
這有點無關緊要。 (這也不是可以回答的問題。)
您發現它不僅是 Windows 用戶名中允許的字符,而且人們實際上確實使用該字符分配用戶名。
因此,如果可以的話,請修復損壞的程式碼。
然後考慮到從 AD 和現代 Windows 版本/應用程式/庫來看,對於屬性等方面的限制令人驚訝地很少sAMAccountName
:
反之:
無論 Windows/AD 中技術上允許和可能的是什麼,組織通常都會對帳戶實施更嚴格的命名策略。此類策略限制使用者名稱提供盡可能多的(向後)相容性,因為在異質環境中,您的應用程式並不是唯一破壞不符合「舊」約定的使用者名稱的應用程式。
實際上,這意味著人們確實看到的大部分時間都相對較短符合 POSIX 標準的使用者名僅包含來自的字符便攜式字元集 a-Z
,有時中間0-9
有連字符-
、底線_
或點 。.
反過來,這樣的命名約定幾乎沒有提供修復/現代化這些應用程式的動力。