How do I get system_profiler output from a lot of machines in a network?
For reading a text file of hostnames into an AppleScript list, see Read textfile into list in Applescript.

For looping over hostnames within your AppleScript list see An AppleScript list iterate/loop example:

set myList to {"Hello", "Goodbye", "I must be going"}
repeat with theItem in myList
  say theItem
end repeat


do shell script

To avoid launching Terminal.app, use the do shell script command:

tell machine "eppc://&lt;ip address of remote machine&gt;"
    do shell script "system_profiler -detailLevel full &gt; /tmp/sysprofile.txt"
end tell


This can be run without launching a supporting graphical application.

I am assuming you can not access the remote host via secure shell, only via Remote AppleEvent access eppc.

Returning the File

Read the contents of the file within your AppleScript's tell machine block and save it locally outside of the tell machine block.

Alternatively, have you considered transferring back the system profile file via ssh or scp? Consider having your AppleScript to connect to your Mac and copy back the collected system profile.