2014-11-27 10 views
0

X와 Y로 두 개의 서버가 있습니다. Y에 X의 원격 데스크톱을 가지고 사용하는 powershell 스크립트가 있습니다. 실행해야하는 powershell 스크립트 나는 Y에 로컬로이 스크립트를 실행하면powershell을 사용하여 원격으로 mstsc를 실행하려고 시도하지 않습니다.

$hostname = 'X' 
    $User = 'u-name' 
    $Password = 'password' 

     $ProcessInfo = New-Object System.Diagnostics.ProcessStartInfo 
     $Process = New-Object System.Diagnostics.Process 

     $ProcessInfo.FileName = "$($env:SystemRoot)\system32\cmdkey.exe" 
     $ProcessInfo.Arguments = "/generic:TERMSRV/$hostname /user:$User /pass:$Password" 
     $Process.StartInfo = $ProcessInfo 
     $Process.Start() 

     $ProcessInfo.FileName = "$($env:SystemRoot)\system32\mstsc.exe" 
     $ProcessInfo.Arguments = "$MstscArguments /v $hostname" 
     $Process.StartInfo = $ProcessInfo 
     $Process.Start() 

, 그것은 실행 않으며

Y.

에서 서버 X를 엽니 다하지만 난 단지 Y에서 X를 엽니 다 X에서 트리거 할 - Y에 . 그래서 나는 X에서이 powershell 스크립트를 호출한다. -

$pass = ConvertTo-SecureString -AsPlainText test-password -Force 
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList test-uname,$pass 
$hostn = hostname 
$Use = 'u-name' 
$Pass = 'password' 
Write-Host "$hostname" 
$ScriptBlockContent={ 
Param ($hostname,$User,$Password) 
E:\Script\test.ps1 $hostname $User $Password} 
Invoke-Command -ComputerName Y -Credential $cred -Scriptblock $ScriptBlockContent -ArgumentList $hostn,$Use,$Pass 

내가 이것을 호출 할 때. Y에서 mstsc.exe를 열지 만 초의 몇 분의 일 동안 만 서버 Y를 열지 않습니다. 누군가 제발 도와주세요 .. !!

감사합니다.

답변

1

데스크톱/디스플레이가없는 원격 powershell 세션에서 GUI를 사용하여 응용 프로그램을 시작하려고합니다. 로그인 한 사용자의 자격 증명을 사용하더라도 Invoke-Command을 통해 실행하는 항목은 로그인 한 사용자의 세션에 표시되지 않습니다.

이것은 PsExec.exe으로 가능하다고 생각하지만 확신 할 수 없습니다.

+0

감사합니다. 나는 시도했다 - "E : \ PS 도구 \ PsExec.exe"-i 테스트 -uname -p 테스트 암호 E : \ Script \ test.cmd X 사용자 이름 암호 또한 ' 일하지 마라. – user3783125

+0

test.cmd가 동일한 powershell 스크립트를 호출하고 있습니다. – user3783125

+0

E : \ PS 도구 \ PsExec.exe \\ Y -i -u 테스트 -uname -p 테스트 암호 E : \ Script \ test.cmd X u-name 암호'를 시도하십시오. – briantist