Powershell 명령에 사용자 입력을 사용하라는 메시지가 표시됩니까?


0

나는 아래 코드를 실행하려고 노력 중이며 작동 중이다.

PS C:\> Rename-Computer -NewName TEST -DomainCredential okadamanila\itservices

호스트 이름이 PS1 파일에 주어지면, 사용자에게 입력을 요청하거나 묻습니다. 아래 코드 블록을 사용하여 시도했다 :

$hostname = read-host "Please enter your name"
Write-Host "YOUR PREFERRED HOSTNAME IS $hostname - INITIALIZING HOSTNAME CHANGE"
$credential = Get-Credential
PS C:\> Rename-Computer -NewName $name -DomainCredential $credential
Read-Host -Prompt "Press Enter to exit"

사용자 입력이 Rename-Computer 기능에 사용될 호스트 이름 인 경우이 방법이 가능합니까?

편집하다:

위의 코드 블록이 작동하는 것 같지만 아직 아래 문제가 발생합니다.

격찬을 받음


1
정확히 무엇이 잘못 될까요? 만약 내가한다면: $var = read-host "Question: " 뒤이어 $var 나는 질문에 입력 한 $ var 안에 들어간다.
LPChip

사용자 이름을 얻기위한 전용 기능이있는 경우 ( Get-UserName 그런데 올바른 명칭이 될 것입니다. ), 왜 당신은 Read-Host ~로 param() -블록? 나는 단순히하고 싶다. while($true){[string]$name = Read-Host "Enter a user-name"; if($name.Length -gt 0){break}else{Write-Out "You have to enter a name!"}}
flolilolilo

당신이 param() -block 함수와 name-parameter를 호출 할 수 있도록 프롬프트를 표시하지 않으면, .Length$name, 같이 -name "" 이름을 포함하지 않는 유효한 문자열입니다. 그래서 function Get-UserName(){param([string]$name); while($true){if($name.Length -eq 0){$name = Read-Host "enter a user-name"}else{Write-Out "You entered $name"; break}} 아니면 내가 볼 수없는 지점이 있습니까?
flolilolilo

답변:


0

프롬프트를 제거하십시오 ( PS C:> ) 전에 Rename-Computer. 여전히 변수 이름을 변경해야합니다 (from 내 이름 이름 ) 당신이 가지고있는 $myname = read-host "Please enter your name:" 그래서 그것은 읽는다. $name = read-host "Please enter your name:" 함수를 호출 할 때 변수 이름과 무엇이 일치하는지 Rename-Computer -NewName $name -DomainCredential $credential ).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.