Skip to content

Fix for username char case bug in Windows platform#86

Merged
PaulHigin merged 2 commits intoPowerShell:masterfrom
PaulHigin:fix-username-case
Oct 4, 2021
Merged

Fix for username char case bug in Windows platform#86
PaulHigin merged 2 commits intoPowerShell:masterfrom
PaulHigin:fix-username-case

Conversation

@PaulHigin
Copy link
Contributor

This PR fixes the UserName character case bug (Issue #62) on Windows platforms. Where the UserName returned by environment variable or WindowsIdentity API is incorrect and reflects what the user typed in the RunAs command instead.

PS C:\> runas.exe /user:domain\userNaME pwsh.exe

# In new pwsh PowerShell shell, user name has wrong case (it should be 'UserName')
PS C:\> [System.Security.Principal.WindowsIdentity]::GetCurrent().Name.Split('\')[1]
userNaME

The UserName is used to encrypt data to avoid having plain text in some files (store configuration data), and also as a replacement for the no-password configuration (where file system protections are relied on for a less secure but more convenient configuration).
A consistent UserName is vital and if it is provided by the OS in different character casing, data cannot be decrypted and read.

Fix is to convert the provided UserName to all upper case to ensure consistent values. Fix also includes a fallback option to use the original character casing when reading old data (that hasn't been updated to the all upper case).

@PaulHigin PaulHigin requested a review from anamnavi September 29, 2021 23:32
@PaulHigin PaulHigin merged commit 09719dd into PowerShell:master Oct 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants