Read-Host PowerShell cmdlet을 사용하면 스크립트 사용자에게 대화식으로 입력을 요청할 수 있습니다. Read-Host
PowerShell cmdlet을 사용하는 실제 응용 프로그램을 살펴보겠습니다.
Read-Host를 사용하여 입력 요청
Read-Host
cmdlet은 PowerShell 스크립트에서 두 가지 기능을 수행합니다. 실행을 일시 중단하고 입력을 받습니다. 그게 다입니다. Read-Host
는 간단한 cmdlet이지만 스크립트 사용자로부터 정보를 얻어야 할 때 유용합니다.
가장 기본적인 형태로는 Read-Host
cmdlet은 단순히 Prompt
매개변수를 사용하는 것만 필요합니다. 이 Prompt
매개변수를 사용하면 스크립트 사용자에게 입력할 내용에 대한 알림을 제공할 수 있습니다. 예를 들어, 스크립트에서 서버 이름이 필요한 경우 스크립트를 실행할 때 사용자에게 입력을 요청하기 위해 Read-Host
를 사용할 수 있습니다.
아래에서는 PowerShell 콘솔 자체에서 Prompt
매개변수를 사용하여 Read-Host
를 실행함으로써 PowerShell이 모든 실행을 중지하고 사용자에게 우리가 필요한 내용에 대한 설명 메시지를 표시하는 것을 볼 수 있습니다.

이것을 스크립트에 통합해 봅시다. 사용자가 프롬프트에서 정보를 입력할 때마다 Read-Host
는 해당 정보를 코드로 반환합니다. 출력을 변수에 할당함으로써이 정보를 쉽게 캡처할 수 있습니다. 서버 이름을 요청하고 해당 서버 이름으로 작업을 수행하고 싶을 수도 있습니다. 그렇지 않으면 사용자에게 서버 이름이 정말로 필요하다는 경고를 보내고 싶을 수도 있습니다.
간단한 if/then 구조를 사용하여 사용자가 서버 이름을 입력하도록 보장할 수 있습니다. 그들이 입력하면 캡처하여 다른 작업을 수행하거나 그렇지 않으면 경고 메시지를 보낼 수 있습니다.

비밀번호 요청
비밀번호를 스크립트에서 평문으로 저장하는 것은 좋은 아이디어가 아닙니다. 마찬가지로, 메모리에 평문으로 비밀번호를 저장하는 것도 좋지 않습니다. 이를 해결하기 위해 PowerShell에는 암호화된 간단한 문자열인 보안 문자열(Secure String)이라는 개념이 있습니다.
A secure string can any kind of sensitive information; a password is a great example. What does this have to do with Read-Host
? The Read-Host
cmdlet has an AsSecureString
parameter which allows the user to not only store the output as a secure string but also to show asterisk while typing to hide your secret from prying eyes!
아무도 알아서는 안 되는 깊고 어두운 비밀이 있지만 이 비밀을 어떤 소프트웨어에 전달해야 할 필요가 있을 때, 아래에서 확인할 수 있듯이 AsSecureString
을 사용하지 않으면 다른 사람이 내 비밀을 알아차립니다! 그러나 AsSecureString
을 사용하면 내 비밀은 안전하게 유지되며, 입력한 각 문자가 별표로 대체되고 출력은 평문 문자열 대신 보안 문자열로 저장됩니다.

Read-Host
문서를 참조하려면 Microsoft Docs를 확인하십시오.