2011-01-12 2 views
3

간단한 PowerShell 함수를 만들어 Linux 스타일의 ssh 명령을 만들려고합니다. 예를 들면 :Powershell의 파이프 라이닝 문자열

ssh [email protected]

내가이 일을 가용 스루풋 사용하고,이 내가 쓴 함수 : 사용자가 올바르게 입력

function ssh { 
    param($usernameAndServer) 

    $myArray = $usernameAndServer.Split("@") 

    $myArray[0] | C:\plink.exe -ssh $myArray[1] 
} 

하면, $에서 myArray [0]입니다 username과 $ myArray [1]은 URL입니다. 따라서 URL에 연결하고 사용자 이름을 묻는 메시지가 표시되면 사용자 이름이 파이프 라인을 사용하여 스트리밍됩니다. 파이프 라인이 사용자 이름 ($ myArray [0])을 계속 제공한다는 것을 제외하고는 모든 것이 완벽하게 작동하며, 암호로 계속해서 입력됩니다. 예 :

PS C:\Users\Mike> ssh [email protected] 
login as: [email protected]'s password: 
Access denied 
[email protected]'s password: 
Access denied 
[email protected]'s password: 
Access denied 
[email protected]'s password: 
Access denied 
[email protected]'s password: 
Access denied 
[email protected]'s password: 
FATAL ERROR: Server sent disconnect message 
type 2 (protocol error): 
"Too many authentication failures for xxxxx" 

여기서 사용자 이름은 xxxxx로 대체되었으며 URL은 yyyyy로 대체되었습니다.

기본적으로 한 번 입력 한 후 사용자 이름 ($ myArray [0])에서 스크립트를 중지하는 방법을 알아야합니다.

아이디어가 있으십니까? 나는 해결책을 찾기 위해 인터넷 곳곳을 둘러 보았고 아무것도 발견하지 못했다.

답변

2

plink가 아니기 때문에 사용자와 호스트를 하나의 인수로 지정할 수 있습니까? 즉 :

그래서 당신의 SSH 기능이 아래로 깍 수 있다면 가용 스루풋 -ssh 사용자 @ 호스트

:

function ssh { 
    param($usernameAndServer) 

    C:\plink.exe -ssh $usernameAndServer 
} 
+0

도현은 완벽했다, 감사합니다! –

관련 문제