ดูโปรแกรมที่ติดตั้งบนเครื่องระยะไกล?


19

ฉันสงสัยว่ามีวิธีที่ง่ายและมีน้ำหนักเบาในการดูโปรแกรมที่ติดตั้งในเครื่องระยะไกลหรือไม่? ฉันถูกล่อลวงให้ใช้ Spiceworks แต่ฉันต้องการบางสิ่งบางอย่างที่เบากว่าเหมือนสคริปต์ ฉันเคยเล่นกับ WMIC มาบ้างแล้วและสามารถรับรายชื่อโปรแกรมสำหรับคอมพิวเตอร์ของฉันได้ แต่ฉันไม่รู้ว่าฉันสามารถทำเช่นนั้นกับคอมพิวเตอร์ระยะไกลได้หรือไม่ ความคิดใด ๆ

แก้ไข: ขออภัยที่ฉันลืม OS เราใช้ Windows XP เป็นส่วนใหญ่และ 7 ฉันใช้ Windows 7 ฉันกำลังมองหาบางสิ่งที่จะทำงานในพื้นหลังโดยไม่มีผู้ใช้ที่กำลังใช้คอมพิวเตอร์รู้อยู่ ฉันต้องการที่จะสามารถทำได้ในระหว่างวันทำงานในขณะที่ผู้คนกำลังทำงานและทำโดยไม่ขัดจังหวะพวกเขา ฉันซาบซึ้งกับคำตอบของ Linux ตั้งแต่ฉันพยายามเรียนรู้เพิ่มเติมเกี่ยวกับ Linux และวางแผนที่จะเปลี่ยนแปลงตัวเองในบางครั้ง


7
มันจะช่วยให้รู้ว่าระบบปฏิบัติการของเครื่อง
inkaphink

ทำไมต้องเป็นโปรแกรม อาจมีเนื้อหาที่มีลิขสิทธิ์อื่น ๆ ในระบบ (ไฟล์ฟอนต์และ mp3 เป็นกรณีที่เห็นได้ชัด)
symcbean

@symcbean เหตุผลหลักที่ฉันถามคือการขอใบอนุญาต เรามีโปรแกรมสองโปรแกรมที่เรามีเพียงใบขับขี่เต็มจำนวนและฉันจำเป็นต้องทราบว่ามีการติดตั้งโปรแกรมไว้ที่ไหนดังนั้นฉันจึงสามารถตรวจสอบได้ว่าฉันสามารถถอนการติดตั้งที่อื่นเพื่อให้ผู้ใช้รายอื่นสามารถใช้โปรแกรมได้หรือไม่ ใบอนุญาตใหม่ สิ่งอื่น ๆ ที่ฉันจะดูในภายหลัง
Mobojo

คำตอบ:


19

คุณสามารถใช้หนึ่งในเครื่องมือ Sysinternals PSinfo:

http://technet.microsoft.com/en-us/sysinternals/bb897550

PsInfo v1.77 - โปรแกรมดูข้อมูลระบบภายในและระยะไกลลิขสิทธิ์ (C) 2001-2009 Mark Russinovich Sysinternals - www.sysinternals.com

PsInfo ส่งคืนข้อมูลเกี่ยวกับระบบ Windows NT / 2000 / XP ในพื้นที่หรือระยะไกล

การใช้งาน: psinfo [-h] [-s] [-d] [-c [-t delimiter]] [ตัวกรอง] [\ คอมพิวเตอร์ [, คอมพิวเตอร์ [, .. ]] | @ ไฟล์ [-u ชื่อผู้ใช้ [-p รหัสผ่าน ]]]

 -u        Specifies optional user name for login to
           remote computer.
 -p        Specifies password for user name.
 -h        Show installed hotfixes.
 -s        Show installed software.
 -d        Show disk volume information.
 -c        Print in CSV format
 -t        The default delimiter for the -c option is a comma,
           but can be overriden with the specified character. Use
           "\t" to specify tab.
 filter    Psinfo will only show data for the field matching the

กรอง. เช่น "บริการ psinfo" แสดงรายการเฉพาะเขตข้อมูลเซอร์วิสแพ็ค คอมพิวเตอร์ Direct PsInfo เพื่อดำเนินการคำสั่งบนคอมพิวเตอร์ระยะไกลหรือคอมพิวเตอร์ที่ระบุ หากคุณไม่ใช้ชื่อคอมพิวเตอร์ PsInfo จะเรียกใช้คำสั่งบนระบบภายในเครื่องและหากคุณระบุ wildcard (\ *) PsInfo จะเรียกใช้คำสั่งในคอมพิวเตอร์ทุกเครื่องในโดเมนปัจจุบัน @file PsInfo จะทำงานกับคอมพิวเตอร์ที่มีรายชื่ออยู่ในไฟล์ที่ระบุ

ออก

PSinfo -s \\ ชื่อคอมพิวเตอร์

จะบอกคุณว่ามีการติดตั้งอะไรบนคอมพิวเตอร์ระยะไกล


11

บนการกระจาย Linux ที่อ้างอิง rpm คุณสามารถรันสิ่งต่อไปนี้:

ssh <user-who-can-run-rpm>@<remote.host> 'rpm -qa | sort'

สำหรับการแจกแจงแบบอิงเดบิตให้ส่งค่านี้ไปที่คำสั่ง ssh:

'dpkg-query -l | sort'

สำหรับ Gentoo (ตามความเห็นที่ให้มาจากMonksy ):

'qpkg -I | sort'

สำหรับ Solaris:

'pkginfo -i | sort'

และบน AIX:

'lslpp -a all | sort'

1
Gentoo: ถ้าคุณติดตั้ง gentoolkit บน gentoo คุณสามารถค้นหาแพ็คเกจทั้งหมดที่ติดตั้งด้วย: "qpkg -I"
monksy

ฉันสามารถใช้สิ่งนี้ในเครื่อง Linux เพื่อดูข้อมูลบนเครื่อง Windows หรือเป็นเพียงเพื่อ Linux ถึง Linux หรือไม่
Mobojo

@Mobojo - ไม่แน่ใจว่าคุณสามารถเรียกใช้คำสั่งที่คล้ายกันจากเครื่อง * nix ไปยัง Windows ได้หรือไม่ แน่นอนคุณควรจะใช้ความสามารถของลูกค้า SSH ใด ๆ ที่จะเรียกใช้คำสั่งเหล่านี้มีต้นกำเนิดมาจากเครื่องใด ๆ ที่จะระวัง * แม้ว่า
วอร์เรน

6

โดยค่าเริ่มต้น WMIC สามารถใช้จากระยะไกลโดยใช้บัญชีที่เป็นส่วนหนึ่งของกลุ่มผู้ดูแลระบบ คุณสามารถมอบสิทธิ์การเข้าถึง WMI แบบอ่านอย่างเดียวให้กับผู้ใช้ปกติ

SNMP สามารถใช้ได้เช่นกัน - คุณเพียงแค่ต้องกำหนดค่าชุมชนแบบอ่านอย่างเดียว คุณต้องเรียกดูตาราง HRSWInstalled:snamwalk -c public -v2c server_IP hrSWInstalled

ดูเพิ่มเติมที่: http://technet.microsoft.com/en-us/library/bb742610.aspx


6

นี่คือสคริปต์ PowerShell ที่จะเชื่อมต่อกับรีจิสตรีคีย์ HKLM \ Software \ Microsoft \ Windows \ Uninstall ดึงกุญแจรับชื่อที่แสดงและส่งไปยังไฟล์ข้อความ

$temparray=@()
$MachineName = 'somecomputername'
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::'LocalMachine', $MachineName)

#connect to the needed key :

$regKey= $reg.OpenSubKey("software\Microsoft\Windows\currentversion\uninstall\" )

#and list the properties :

$programs = $regkey.GetSubKeyNames()
foreach ($program in $programs)
{   
    $regKey2 = $regKey.OpenSubKey($program)

    $temparray +=  $regKey2.GetValue("DisplayName")
}
$temparray |Sort-Object |Out-File -FilePath "C:\testinstalledprograms.txt" -Force

2

มีล้านโปรแกรมที่จะทำเช่นนี้ บางอย่างง่ายและเบากว่าคนอื่น ๆ

นี่เป็นเพียงหนึ่งในโปรแกรมที่นับไม่ถ้วนที่ทำสิ่งนี้:

http://managepc.net/


1

หากเป็นเครื่องที่ใช้ windows คุณสามารถเรียกใช้ "WinAudit" (ฟรีเพียงค้นหาด้วย) ในงานที่กำหนด มันสร้างรายงาน HTML หรือข้อความและอื่น ๆ ซึ่งคุณสามารถบันทึกลงในไดรฟ์เครือข่ายและดูจากคอมพิวเตอร์ระยะไกล

หรือ:

เดสก์ท็อประยะไกล คุณเชื่อมต่อและใช้งานราวกับว่าเป็นเครื่องท้องถิ่น ทำงานใน * ระวังด้วย


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.