แสดงรายงาน Spiceworks ภายในพอร์ทัลผู้ใช้ - ทำอย่างไร

แสดงรายงาน Spiceworks ภายในพอร์ทัลผู้ใช้

ดังนั้นฉันต้องการวิธีในการแสดงไดเรกทอรีขององค์กรโดยไม่ต้อง a) จ่ายอะไรเลย b) ใช้ VM ตัวอื่น c) โค้ดจากการเริ่มต้น

เซิร์ฟเวอร์ Spiceworks มีพื้นฐานทั้งหมด - ฉันรู้สึกประหลาดใจเล็กน้อยที่ในขณะที่คนอื่น ๆ ทำตัวอย่างที่ใกล้เคียง / คล้ายกันไม่มีใครทำให้มันคล่องแคล่วจริงๆ (ฉันเดาว่าเพราะมันเร็วกว่าที่จะโยนเงินที่ปัญหา!)

มันเป็นครั้งแรกที่ฉันเคยขลุกอยู่ที่ Powershell ให้อภัยมารยาทที่เกี่ยวข้อง ...

* นี้ * ควรทำงานผ่านการอัปเดต Spiceworks ซึ่งคนอื่น ๆ ไม่ชอบ อาจต้องมีการบำรุงรักษาเป็นครั้งคราวหากมีการเปิดตัวคุณลักษณะใหม่หรือหาก Spiceworks เปลี่ยนโครงสร้างไดเรกทอรีการติดตั้งสำหรับเว็บเซิร์ฟเวอร์

นี่เป็นข้อความที่สั้น ๆ คุณไม่ต้องการรูปภาพสวย ๆ สำหรับวิธีการใช้งาน :)
-Mike

ทั้งหมด 10 ขั้นตอน

ขั้นตอนที่ 1: สร้างโฟลเดอร์ใหม่

โฟลเดอร์นี้จะเก็บฟังก์ชั่นการรายงานทั้งหมด เก็บทุกที่ที่คุณต้องการบนเซิร์ฟเวอร์ SW
ในตัวอย่างของฉันฉันสร้างโฟลเดอร์ "SpiceworksReportByMike" ภายใน Program Files (x86) - เพื่อให้ปรากฏข้างโฟลเดอร์ Spiceworks และเพื่อให้ฉันสามารถค้นหาได้ง่ายเมื่อฉันลืมว่ามันทำงานอย่างไร!

ขั้นตอนที่ 2: คัดลอกโมดูลรายงาน SW ไปยังโฟลเดอร์ใหม่

ค้นหาไฟล์ "run_report.rb" สิ่งนี้อยู่ใน% installdir% pkg gems spiceworks-% version%

คัดลอก (คัดลอก!) สิ่งนี้ไปยังโฟลเดอร์ใหม่ของเราในขั้นตอนที่ 1

ฉันเดาว่ามันไม่จำเป็นอย่างสมบูรณ์ - ฉันเพิ่งจะได้พบและเชื่อมโยงกับไฟล์โดยตรง แต่ฉันเลือกที่จะคัดลอกที่นี่เพื่อที่ฉันจะได้รู้ว่าฉันกำลังทำอะไรอยู่ตลอดเวลา

ขั้นตอนที่ 3: ค้นหาหมายเลขรายงานที่คุณต้องการ

รายงานทั้งหมดภายใน Spiceworks มีหมายเลขรายงาน คุณสามารถค้นหาได้โดย:

ตัวเลือก A) การเรียกใช้รายงานภายใน Spiceworks และเมื่อดูรายงานให้สังเกตตัวเลขสองหลักสุดท้ายใน URL หรือตัวเลือก b) ด้านล่างซึ่งคุณจะต้องทำต่อไป:

ตัวเลือก B) เปิดหน้าต่างคำสั่งและค้นหาไฟล์รายงานที่คุณคัดลอกจากขั้นตอนที่ 2 ซึ่งจะแสดงตัวเลือกที่ใช้ได้:

ruby run_report.rb -?

เนื่องจากตัวเลือก B) ต้องการการเข้าถึงไฟล์ทับทิมภายใน Spiceworks คุณจะต้องปรับเปลี่ยนเส้นทางของคุณตามลำดับ ในตัวอย่างของฉันด้วยหน้าต่างคำสั่งเปิดจากโฟลเดอร์ใหม่ในขั้นตอนที่ 1:

.. Spiceworks bin ruby ​​run_report.rb -?

ดังนั้นคุณสามารถรับรายการรายงานที่มีจาก:

ruby run_report.rb -l -e -p -s

ตัวอย่าง:

.. Spiceworks bin ruby ​​run_report.rb -l -e [email protected] -p รหัสผ่าน -s mySWserver

นี่จะส่งคืนรายการรายงานที่มีอยู่จากโมดูลที่เราคัดลอกในขั้นตอนที่ 2

ในตัวอย่างของฉันเนื่องจากฉันต้องการรายงานผู้คนฉันต้องการรายงาน # 38

ขั้นตอนที่ 4: สร้างสคริปต์ชุด Powershell

Ahhh ฟังก์ชั่นการแปลง CSV เป็น HTML! สิ่งนี้มีความสำคัญ - Spiceworks ไม่ส่งออกผลลัพธ์เป็น HTML และคุณไม่ต้องการให้ Javascript ฝั่งไคลเอ็นต์ทำงานได้อย่างถูกต้อง

ตัวอย่างด้านล่างของฉันใช้การใส่สไตล์ แต่ก็เป็นตัวเลือก:

$ header = @ "

// สไตล์ที่คุณต้องการที่นี่ สไตล์ต้องไปที่นี่ - คุณไม่สามารถลิงก์ไปยังไฟล์ CSS ที่มีอยู่ขออภัย

'@
$ mytime = get-date
$ pre = ("รวบรวมที่:" + $ mytime)

& import-csv report-38.csv |
ConvertTo-HTML -Head $ header -PreContent $ pre |
Out-File report-38.html

ที่นี่สคริปต์ PS กำลังมองหาไฟล์ชื่อ report-38.csv จะแปลงเป็นหน้า HTML แบบเต็มพร้อมกับการกำหนดสไตล์ส่วนหัวของฉันบรรทัดก่อนหน้า (วันที่ / เวลา) และส่งออกเป็น report-38.html

ขั้นตอนที่ 5: สร้างไฟล์แบตช์เพื่อลิงก์ทั้งหมดเข้าด้วยกัน

ฉันใช้แบทช์ไฟล์ที่นี่เพื่อให้ Task Scheduler โทรได้ง่ายขึ้น

@ ปิดเสียง

.. Spiceworks bin ruby ​​run_report.rb -e [email protected] -p รหัสผ่าน -s mySWserver -f csv 38
echo สร้างไฟล์ CSV แล้ว!
เสียงสะท้อน

PowerShell.exe -NoProfile -ExecutionPolicy Bypass. report-38.ps1
echo แปลงเป็น HTML ผ่าน Powershell!
เสียงสะท้อน

สำหรับ / d %% a ใน (
"c: Program ไฟล์ (x86) Spiceworks pkg gems spiceworks_public- *"
) ทำการตั้งค่า SWhttpfolder = %% ~ a
เสียงสะท้อน

คัดลอก "c: program files (x86) spiceworksreportbymike report-38.html" "% SWhttpfolder% report-38.html"
เสียงสะท้อน

echo เสร็จแล้ว!

ที่นี่เราใช้ไฟล์ run_report.rb เพื่อสร้าง CSV ของรายงาน 38 (รายงานบุคคล)
จากนั้น PowerShell จะแปลงเป็นไฟล์ HTML

จากนั้นเราจะพบโฟลเดอร์ http สาธารณะของ Spiceworks นี่จะค้นหาโฟลเดอร์ LAST ภายในไดเรกทอรี Spiceworks pkg / gem ที่ขึ้นต้นด้วย "spiceworks-public-" - นี่คือโฟลเดอร์ http ที่ Spiceworks ใช้ สคริปต์นี้ควรใช้งานได้สมมติว่า Spiceworks จะไม่เปลี่ยนชื่อไดเรกทอรีของโฟลเดอร์ http

จากนั้นเราก็คัดลอกไฟล์ html ใหม่และทิ้งลงในไดเรกทอรีนี้ (ใช่ไม่สวยมาก แต่ทำให้งานเสร็จ)

ขั้นตอนที่ 6: สร้างงานที่กำหนดเวลาไว้เพื่อรันสคริปต์ชุดงาน

ใช้ Windows Task Scheduler เพื่อเรียกใช้สคริปต์นี้บ่อยเท่าที่คุณต้องการ ฉันผลักของฉันลงไปทุก ๆ 5 นาทีขณะทำการทดสอบ

ขั้นตอนที่ 7: กำหนดค่า Spiceworks เพื่อรับข้อมูลโฆษณา

ภายใต้การตั้งค่า> การกำหนดค่า Active Directory ให้เปิดใช้งานการสแกนโฆษณาและให้ชื่อผู้ใช้ / รหัสผ่านที่เหมาะสม นี่คือสิ่งที่ SW จะอัปเดตเป็นรายการบุคคลจากโฆษณาเพื่อให้ฉันสามารถรายงานได้

สำหรับการติดตั้งของฉันฉันต้องกำหนดค่า BaseDN:
OU = "โฟลเดอร์ของฉัน", DC = yourdomain, DC = yourdomain

และตัวกรองผู้ใช้ (เฉพาะผู้ใช้ที่ใช้งานอยู่เท่านั้นยกเว้นผู้ใช้ที่ปิดใช้งาน):
(! (objectClass = ผู้ใช้) (objectCategory = คน) ((userAccountControl: 1.2.840.113556.1.4.803: = 2)))

ขั้นตอนที่ 8: ตรวจสอบว่า SW ดึงข้อมูลโฆษณาอย่างถูกต้องแล้ว!

ขยะใน = ขยะออก ตรวจสอบให้แน่ใจว่า People in Spiceworks นั้นถูกต้องมิฉะนั้นคุณจะต้องรายงานเรื่องขยะ

ขั้นตอนที่ 9: แก้ไขรายงาน

แก้ไขรายงานภายใน Spiceworks เพื่อรวมฟิลด์ใดก็ได้ที่คุณต้องการ ฉันเพิ่งจะรายงานชื่อ, นามสกุล, อีเมล, สำนักงาน, โทรศัพท์และโทรศัพท์มือถือ แต่กระบวนการนี้เป็นแบบไดนามิกและจะพอดีกับข้อมูลที่คุณให้

ขั้นตอนที่ 10: สร้างหน้าใน SW User Portal

ตอนนี้รายงานกำลังทำงาน (คุณได้ตรวจสอบตามขั้นตอนนี้ใช่หรือไม่) ถึงเวลาที่จะรวมเข้ากับพอร์ทัลผู้ใช้ Spiceworks

สร้างหน้าใหม่ทุกที่ที่คุณต้องการแสดงรายงานนี้ แก้ไขต้นฉบับและเพิ่มบรรทัดต่อไปนี้:

สิ่งนี้จะแตกหน้า html ภายใน iframe ของ SW User Portal ความสูง / ความกว้างขึ้นอยู่กับคุณ หากคุณใช้ชื่อไฟล์อื่นให้ปรับเปลี่ยนตามนั้น

ขอแสดงความยินดี!

ตอนนี้เซิร์ฟเวอร์ SW ของคุณกำลังสร้างรายงานนอก Spiceworks เป็นไฟล์ CSV และคุณใช้ประโยชน์จาก Powershell (เนื่องจาก SW เป็นผลิตภัณฑ์ที่ใช้ Windows) เพื่อสร้าง HTML ตามต้องการและสามารถแสดงสิ่งนี้ภายในพอร์ทัลผู้ใช้

ไปดื่มเบียร์กันเถอะ หรืออาหารกลางวันที่ค้างชำระของคุณ (หรือทั้งคู่?)