2017-10-23 21 views
0

私はPowerShellのツールを使ってリモートコンピュータ上のファイルを実行しています。私は当初PSexecを使用していましたが、win32_processを使用して.netフレームワークに切り替えました。 win32_processを使用してリモートマシン上でインストールファイルを実行すると、失敗しました。そして、リモートマシン上でgwmi win32_processを試した後、失敗しました。 wmiオブジェクトへのアクセスはおそらく問題です。とにかく!私はPSexecを使用して終了し、それは成功し、私はそれがしたことを確認した。しかし、PSexecがリモートマシンにどのように接続するかを考えさせてくれました。PSexecのソースコードをどうやって見ることができるか、PSexecと組み込みのWindows

オンラインで何も見つかりませんでした。何ができるのかに関する記事がたくさんありました。たぶん、私は研究をしっかりとやっています。

+1

[PAExec](https://www.poweradmin.com/paexec/)という名前のクローンがあります。[GitHubのソース](https://github.com/poweradminllc/PAExec)を投稿しました – BenH

答えて

1

これは、リモートマシンに対してInvoke-WmiMethodコマンドレットを使用して行っています。実行可能なパスにスイッチを含める必要がありますが、ローカル/リモートホストに対して適切なアクセス許可があることを前提とした場合、次のコードサンプルが表示されます。

コマンドレットの詳細については、https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/invoke-wmimethod?view=powershell-5.1を参照してください。

#local path on the remote machine that will be run including any switches needed 
$exePath = "c:\mypath\myfile.exe -s -norestart" 

# Use FQDN or IP if netbios name is not reachable 
$server = "myserver" 

try { 
Invoke-WmiMethod -ComputerName $server -Class win32_process -Name create -ArgumentList $exePath -ErrorAction Stop | Out-Null 
} 
catch { 
    Write-Host "Failed to execute program on $server. Error Details: $_.Exception.Message" -ForegroundColor Red 
} 

私はあなたが比較するためにPSEXECがどのように動作するかを話すことはできませんが、この方法では、ネイティブPowerShellを使用して、リモート・ホスト上のアプリケーションを実行して、過去に私のために働いています。

+0

あなたの 'Invoke-WmiMethod'コールで' Out-Null'コールではなく '-ErrorAction Stop'を実行してください。 – TheMadTechnician

+0

いいキャッチです。それを反映する答えを更新しました。 – Donald

関連する問題