0
我試圖使用API和Ruby將Windows設備從Rapid 7導出爲CSV。Rapid 7將Windows設備導出爲CSV
當我運行下面的腳本是亂扔的錯誤:
NoMethodError: undefined method 'each' for #<Nexpose::AdhocReportConfig:0x000000
029bf4b8>
from (irb):232:in block in irb_binding
from C:/Ruby24-x64/lib/ruby/2.4.0/csv.rb:1299:in 'open'
from (irb):231
from C:/Ruby24-x64/bin/irb.cmd:19:in '<main>'
的代碼,我跑是:
require 'nexpose'
require 'csv'
include Nexpose
query = "
SELECT da.host_name AS Name, dos.description AS OS
FROM dim_asset da
JOIN dim_operating_system dos USING (operating_system_id)
JOIN dim_host_type dht USING (host_type_id)
JOIN dim_site_asset dsa USING (asset_id)
JOIN dim_site ds USING (site_id)
Where (dos.description LIKE '%Windows%' AND da.host_name IS NOT NULL)"
@nsc = Connection.new('192.168.0.1', 'user', 'pswd')
@nsc.login
report = Nexpose::AdhocReportConfig.new(nil, 'sql')
report.add_filter('version', '1.1.0')
report.add_filter('query', query)
@nsc.logout
headers = ["Name","OS"]
CSV.open('C:\file.csv', 'wb', { force_quotes: true }) do |csv|
report.each do |reports|
if csv.tell() == 0 # file is empty, so write header
csv << headers
end
csv << [report.Name, report.OS]
end
end