콘솔로 부터 입력을 받을 때
기존 윈도우 콘솔(cmd.exe)에서는
입력 문자열이 그대로 노출되는 문제가 있다.

PowerShell에서는 read-host에 -AsSecureString 옵션을 이용하면
* 표로 숨길 수가 있다.

그런데 그 문자열이 SecureString 형으로 저장되어서
다른 명령어의 파라미터로 넘길 경우 문제가 되는 경우가 있다.
(ex. osql, bcp)

이 경우 아래와 같이 기본 문자열로 바꿔주면 된다능

$basicStr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)
$password = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($basicStr)

출처 : http://myitforum.com/cs2/blogs/yli628/archive/2007/09/22/how-to-enter-password-as-secure-string.aspx

728x90

+ Recent posts