2017-04-20 25 views
1

psexecを使用してリモートコンピュータ上でメモ帳を呼び出すスクリプトがあります。開始後プロセスIDを取得する方法はありますか?ここでpsexecの起動後にプロセスIDを取得する

は私が持っているものです:実行した後

$PCname = "MyPC" 
$SessionID = "2" 
$Program = "Notepad.exe" 
$FilePath = "C:\temp\" 
$FileName = "Test.txt" 

set-alias psexec "C:\PsExec\psexec.exe" 
    &psexec -s -d -i $SessionID \\$PCname $Program $FilePath\$FileName 

私は、プロセスIDを示し、出力ウィンドウにこれを取得する:

Connecting to MyPC...Starting PSEXESVC service on MyPC...Connecting 
with PsExec service on MyPC...Starting Notepad.exe on MyPC... 
Notepad.exe started on MyPC with process ID 8352. 

はどのようにして、プロセスIDをつかむことができますか?

答えて

2

あなたは正規表現使用して、プロセスIDを取得しSelect-Stringコマンドレットを使用することができます。

&psexec -s -d -i $SessionID \\$PCname $Program $FilePath\$FileName | 
    Select-String 'process ID (\d+)' | 
    ForEach-Object {$_.Matches.Groups[1].Value} 
+0

希望IDが含まれています。プロセスIDを取得するにはどうすればよいですか? – Eric

+0

既にプロセスIDを返します;-) –

+0

???迷っています。プロセスIDを返す場所がわからない – Eric

0
$a = (gps -ComputerName PcName| where{ $_.ProcessName -eq "Notepad.exe"} | select Id) 

$a.Idを、私は初心者のビットだ

+0

これは、マシン上で実行されている唯一のメモ帳が、私が起動したメモ帳であればうまく動作します。 – Eric

関連する問題