сегодня мы обнаружили, что наше ориентированное на разработчиков приложение GUI не работает на системах, где имя пользователя содержит апостроф. Потому что, хотя оно и многоплатформенное, часть его работает в виртуальной машине Linux, где скрипты оболочки генерируются на лету. Мы сделали кавычки, необходимые для обработки имен и путей, содержащих пробелы, но не учли одинарные кавычки.
Похоже, что scoop
это не работает и в таких средах, но мне нужно провести больше исследований. Если это так, я не могу себе представить, чтобы многие разработчики настаивали на том, чтобы их имя Windows было их настоящим именем.
Хочу получить обратную связь, чтобы понять, как расставить приоритеты в устранении этой ошибки, которую, скорее всего, можно исправить, но не за несколько часов.
решение1
Насколько распространены одинарные кавычки (апострофы) в именах пользователей Windows?
Это немного неуместно. (И на это невозможно ответить.)
Вы обнаружили, что это не только разрешенный символ в имени пользователя Windows, но и что люди действительно назначают имена пользователей с этим символом.
Поэтому, если можете, пожалуйста, исправьте ваш сломанный код.
А затем примите во внимание, что в AD и для современных версий/приложений/библиотек Windows существует на удивление мало ограничений, касающихся, например, атрибута sAMAccountName
:
В качестве контраргумента:
независимо от того, что технически разрешено и возможно в Windows/AD, организации обычно внедряют гораздо более строгую политику именования для учетных записей. Такая политика ограничивает имена пользователей, чтобы обеспечить как можно большую (обратную) совместимость, поскольку в гетерогенных средах ваше приложение не единственное, которое ломается на именах пользователей, которые не соответствуют "старым" соглашениям.
На практике это означает, что мы действительно видим в основном относительно короткиеИмена пользователей, соответствующие POSIXтолько с персонажами изпереносимый набор символов a-Z
, 0-9
а иногда дефис -
, подчеркивание _
или точка .
где-то посередине. В свою очередь, такое соглашение об именовании не дает стимула для исправления/модернизации этих приложений.