0

X と Y の 2 台のサーバーがあります。Y で X のリモート デスクトップを使用するために使用している PowerShell スクリプトがあります。Y で実行する必要がある PowerShell スクリプトは次のとおりです。

  $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 でローカルに実行すると、Y でサーバー X が実行されて開きます。

しかし、X からトリガーして、Y で X を開くだけにしたいので、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でサーバーXを開きません。誰か助けてください..!!

ありがとう。

4

1 に答える 1