param( [string]$UserName = "dohertj2", [string]$Domain = $env:COMPUTERNAME ) $securePassword = Read-Host -Prompt "MX RPC password" -AsSecureString $bstr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($securePassword) try { $plainPassword = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($bstr) [Environment]::SetEnvironmentVariable("MX_RPC_USER", $UserName, "User") [Environment]::SetEnvironmentVariable("MX_RPC_DOMAIN", $Domain, "User") [Environment]::SetEnvironmentVariable("MX_RPC_PASSWORD", $plainPassword, "User") $env:MX_RPC_USER = $UserName $env:MX_RPC_DOMAIN = $Domain $env:MX_RPC_PASSWORD = $plainPassword Write-Host "MX_RPC_USER and MX_RPC_DOMAIN set for user environment and current shell." Write-Host "MX_RPC_PASSWORD set for user environment and current shell." Write-Host "Start a new Codex/shell session if a child process does not inherit the updated user environment." } finally { if ($bstr -ne [IntPtr]::Zero) { [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr) } }