Fix metsrv.dll name issue
As mentioned here https://community.rapid7.com/thread/3788 the metsvc script was still looking for the old file name for metsrv.dll, which was causing the script to fail. This commit fixes this issue. A hash is used to indicate local and remote file names so that the remote can continue to use metsrv.dll, but it is correctly located on disk locally.bug/bundler_fix
parent
77b036ce5d
commit
0c59c885c4
|
@ -70,11 +70,21 @@ if client.platform =~ /win32|win64/
|
||||||
print_status("Creating a temporary installation directory #{tempdir}...")
|
print_status("Creating a temporary installation directory #{tempdir}...")
|
||||||
client.fs.dir.mkdir(tempdir)
|
client.fs.dir.mkdir(tempdir)
|
||||||
|
|
||||||
%W{ metsrv.dll metsvc-server.exe metsvc.exe }.each do |bin|
|
# Use an array of `from -> to` associations so that things
|
||||||
next if (bin != "metsvc.exe" and remove)
|
# such as metsrv can be copied from the appropriate location
|
||||||
print_status(" >> Uploading #{bin}...")
|
# but named correctly on the target.
|
||||||
fd = client.fs.file.new(tempdir + "\\" + bin, "wb")
|
bins = {
|
||||||
fd.write(::File.read(File.join(based, bin), ::File.size(::File.join(based, bin))))
|
'metsrv.x86.dll' => 'metsrv.dll',
|
||||||
|
'metsvc-server.exe' => nil,
|
||||||
|
'metsvc.exe' => nil
|
||||||
|
}
|
||||||
|
|
||||||
|
bins.each do |from, to|
|
||||||
|
next if (from != "metsvc.exe" and remove)
|
||||||
|
to ||= from
|
||||||
|
print_status(" >> Uploading #{from}...")
|
||||||
|
fd = client.fs.file.new(tempdir + "\\" + to, "wb")
|
||||||
|
fd.write(::File.read(File.join(based, from), ::File.size(::File.join(based, from))))
|
||||||
fd.close
|
fd.close
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue