本文件描述如何管理軟體清查記錄功能,此功能可協助資料中心系統管理員輕鬆記錄隨著時間推移所產生的 Microsoft 軟體資產管理資料。 本文件說明如何管理軟體清查記錄。 在使用 Windows Server 2012 R2 進行軟體清查記錄之前,請確保已在每個需要清查的系統上安裝 Windows Update KB 3000850 和 KB 3060681。 Windows Server 2016 不需要 Windows Update。 這項功能會在要清查的每部伺服器上本機執行。 它不會從遠端伺服器收集資料。
軟體清查記錄功能也可新增 Windows Server 2012 R2 之前的兩個 Windows Server 版本。 您可以安裝以下更新,在 Windows Server 2012 和 Windows Server 2008 R2 SP1 中新增軟體清查記錄功能:
- Windows Server 2012 (Standard 或 Datacenter Edition)
注意
套用下方的更新程式前,請確定您已安裝 WMF 4.0。
Windows Server 2012 的 WMF 4.0 更新程式封裝:KB 3119938
Windows Server 2008 R2 SP1
注意
套用下方的更新程式前,請確定您已安裝 WMF 4.0。
Windows Server 2008 R2 的 WMF 4.0 更新程式封裝:KB 3109118
使用這項功能進行清查有兩種主要的方法:
啟用 SIL 日誌功能以從 SIL 資料來源收集資料,並每小時通過網路將有效負載轉送到指定的目標位置 (URI)。
使用 PowerShell 或 WMI 每隔一段時間手動查詢 SIL 資料。
啟動 SIL 記錄需要一些規劃和深謀遠慮,但相較於手動查詢資料,它提供了顯著的優勢。 對資料中心系統管理員而言,使用 SIL 記錄有下列三個主要優勢:
可以長時間收集持續的歷程記錄 (記錄),並允許來自單一來源的富彈性且內容完整的報告。
可以克服許多清查工具特有的電腦探索挑戰。
因為資料已透過使用 SSL 的 HTTPS 進行加密,因此在克服許多清查工具特有之信任邊界挑戰和提高使用者權限需求的同時,還可以維持一定程度的安全性。
依預設會安裝軟體清查記錄,但依預設並不會啟動記錄。 軟體清查記錄的所有設定都是透過 PowerShell cmdlet 來完成。 軟體資產記錄功能只有少數幾個設定選項。 本文件說明這些選項及其設計用途,以及用於資料收集的 Cmdlet (如使用上述第二種方法)。
本文件內容
本文件涵蓋的設定選項包括:
[備份和還原由軟體清查記錄功能所記錄的資料]manage-software-inventory-logging.md#BKMK_Step5)
在 Windows Server 2012 R2 Hyper-V 環境(不含 KB 3000850) 中使用軟體庫存記錄
注意
本主題包含可讓您用來將部分所述的程序自動化的 Windows PowerShell Cmdlet 範例。 如需詳細資訊,請參閱使用 Cmdlet.
啟動和停止軟體存貨記錄
在執行 Windows Server 2012 R2 的電腦上必須啟用軟體清查記錄每日收集和透過網路轉送,才能記錄軟體清查。
注意
您可以使用 Get-SilLogging PowerShell Cmdlet 來擷取軟體清查記錄服務的相關資訊,包括服務是執行中還是已停止等資訊。
啟動軟體盤點記錄
使用具有本機系統管理員權限的帳戶登入伺服器。
以系統管理員身分開啟 PowerShell。
在 PowerShell 命令提示字元中,輸入 Start-SilLogging
注意
在無需設定憑證指紋的情況下設定目標是可行的,但是如果您這樣做,轉送便會失敗,而且資料會被儲存在本機高達預設值 30 天 (之後便會被刪除)。 為目標設定了有效的憑證雜湊 (以及在本機電腦/個人存放區安裝了對應的有效憑證) 之後,只要將目標設定為接受設有此憑證的資料,便會將儲存在本機上的資料轉寄至目標 (如需詳細資訊,請參閱 Software Inventory Logging Aggregator )。
停止軟體清查記錄
使用具有本機系統管理員權限的帳戶登入伺服器。
以系統管理員身分開啟 PowerShell。
在 PowerShell 命令提示字元中,輸入 Stop-SilLogging
設定軟體盤點紀錄
設定軟體清查記錄將隨著時間推移所產生的資料轉寄至彙總伺服器,須執行下列三個步驟:
使用 Set-SilLogging –TargetUri 指定彙總伺服器的網址 (開頭必須是 "https://")。
使用 Set-SilLogging –CertificateThumbprint 指定有效 SSL 憑證的憑證指紋雜湊,其會用於驗證要傳輸到彙總伺服器的資料 (彙總伺服器必須設定為接受此雜湊)。
請在用於轉寄資料的本機伺服器的本機電腦/個人存放區(或/LocalMachine/MY)中安裝有效的 SSL 憑證。
建議您先完成這些步驟,然後再使用 Start-SilLogging。 若要在使用 Start-SilLogging 之後再執行這些步驟,只須停止再重新啟動 SIL 即可。 您也可以使用 Publish-SilData Cmdlet,確認彙總伺服器具有此伺服器的所有資料。
如需設定整個 SIL framework 的完整指南,請參閱 Software Inventory Logging Aggregator。 特別是當 Publish-SilData 產生錯誤或 SIL 記錄失敗時,請參閱疑難排解一節。
隨著時間變化的軟體清查記錄
如果軟體清查記錄是由系統管理員啟動,系統便會開始進行每小時的收集和將資料轉送到彙總伺服器 (目標 URI)。 第一次傳送的資料會是一個完整的資料集,這個資料集與 Get-SilData 在某個時間點所擷取並顯示於主控台上的資料相同。 此後,SIL 會每隔一段時間檢查資料,如果自上次收集後資料沒有變更,則只會將小型識別通知轉送至目標彙總伺服器。 如果已變更任何值,則 SIL 會再次傳送完整的資料集。
重要
如果在隔一段時間後,無法存取目標 URI 或因為任何理由而無法透過網路進行資料傳輸,則收集的資料會被儲存在本機高達預設值 30 天 (這個時間之後便會被刪除)。 下一次成功轉送資料至目標彙總伺服器時,將會轉送所有儲存在本機的資料,並刪除本機快取資料。
顯示軟體清查記錄資料
除了先前章節所述的 PowerShell Cmdlet 之外,還有其他 6 個 Cmdlet 可以用來收集軟體清查記錄資料:
Get-SilComputer:顯示特定伺服器和作業系統相關資料的時間點值,以及實體主機的 FQDN 或主機名稱 (如果有的話)。
Get-SilComputerIdentity (KB 3000850):顯示 SIL 用於個別伺服器的識別碼。
Get-SilData:顯示一個特定時間點的所有軟體存貨記錄資料集合。
Get-SilSoftware:顯示安裝於電腦上的所有軟體的時間點識別。
Get-SilUalAccess:顯示來自兩天前伺服器的唯一用戶端裝置請求和用戶端使用者請求的總數。
Get-SilWindowsUpdate:顯示安裝於電腦上的所有 Windows 更新的時間點清單。
軟體清查記錄 Cmdlet 的典型使用案例是,系統管理員使用 Get-SilSoftware 查詢軟體清查記錄,以在特定時間點收集所有軟體清查記錄資料。
輸出範例
PS C:\> Get-SilData
ID : 961FF8A1-8549-4BEC-8DF6-3B3E32C26FFA
UUID : B49ACB4C-7D9C-4806-9917-AE750BB3DA84
VMGUID : E84CCCBD-0D0F-486B-A424-9780C7CF92E4
Name : Server01Guest.Test.Contoso.com
HypervisorHostName : Server01.Test.Contoso.com
ID : {F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
Name : Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219
InstallDate : 12/5/2013
Publisher : Microsoft Corporation
Version : 10.0.40219
ID : {89F4137D-6C26-4A84-BDB8-2E5A4BB71E00}
Name : Microsoft Silverlight
InstallDate : 3/20/2014
Publisher : Microsoft Corporation
Version : 5.1.30214.0
ChassisSerialNumber : 4452-0564-0284-2290-0113-6804-05
CollectedDateTime : 10/27/2014 4:01:33 PM
Model : Virtual Machine
Name : Server01Guest.Test.Contoso.com
NumberOfCores : 1
NumberOfLogicalProcessors : 1
NumberOfProcessors : 1
OSName : Microsoft Windows Server 2012 R2 Datacenter
OSSku : 8
OSSuite : 400
OSSuiteMask : 400
OSVersion : 6.3.9600
ProcessorFamily : 179
ProcessorManufacturer : GenuineIntel
ProcessorName : Intel(R) Xeon(R) CPU E5440 @ 2.83GHz
SystemManufacturer : Microsoft Corporation
注意
此 Cmdlet 的輸出會與此功能的所有其他 Get-Sil Cmdlet 合併的結果相同,但會以非同步方式提供給主控台,因此物件的順序並不一定總是相同。
不一定要使用 Get Sil Cmdlet 才能啟動軟體清查記錄。
刪除軟體清查記錄所記錄的資料
軟體清查記錄並不打算作為任務關鍵元件。 它的設計目的是為了在維護高度可靠性的同時,儘可能減少對本機系統作業的影響。 這也會讓系統管理員可以手動刪除軟體清查記錄資料庫,並支援檔案 (\Windows\System32\LogFiles\SIL 目錄下的每個檔案) 以符合作業需求。
刪除軟體清查記錄所記錄的資料
在 PowerShell 中,使用 Stop-SilLogging 命令停止軟體清查記錄。
開啟 Windows 檔案瀏覽器。
移至 \Windows\System32\Logfiles\SIL\
刪除資料夾中的所有檔案。
備份及還原軟體清查記錄所記錄的資料
如果網路傳送失敗,軟體清查記錄將暫時儲存每小時收集的資料。 記錄檔會儲存在 \Windows\System32\LogFiles\SIL\ 目錄中。 您可以搭配已排定的定期伺服器備份來進行此軟體清查記錄資料的備份。
重要
如果作業系統因故必須進行修復安裝或升級,則儲存在本機的任何記錄檔將會遺失。 如果這份資料對於營運非常重要,建議您在安裝新的作業系統之前先行備份。 修復或升級之後,只需還原至相同的位置。
注意
如果基於任何原因,管理由 SIL 本機記錄的資料保留持續時間變得很重要,這可以透過變更以下登錄值進行設定:\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\SoftwareInventoryLogging。 預設值是 ‘30' (30 天)。
讀取由軟體清查記錄所紀錄和發佈的數據
SIL 所記錄但儲存在本機的資料 (如果轉送至目標 URI 失敗),或成功轉送至目標彙總伺服器的資料,會儲存在二進位檔案中 (適用於每一天的資料)。 若要在 PowerShell 中顯示這項資料,請使用 Import-BinaryMiLog Cmdlet。
軟體盤點記錄安全性
若要順利地從軟體清查記錄 WMI 與 PowerShell API 中擷取資料,您必須要有本機伺服器上的系統管理權限。
若要成功運用軟體清查記錄功能的完整功能,並在一段時間內持續 (以每個小時為間隔) 將資料轉送至彙總點,則系統管理員必須採用用戶端憑證,以確保安全的 SSL 工作階段以供透過 HTTPS 傳輸資料使用。 您可以在這裡找到 HTTPS 驗證的基本概觀:HTTPS 驗證。
只有具有管理員權限的本地伺服器,才能存取或使用在 Windows Server 上本地儲存的任何資料(這種情況只有在啟動此功能但因故無法存取目標時才會發生)。
使用 Windows Server 2012 R2 軟體清查記錄中的日期和時間設定
使用 Set-SilLogging -TimeOfDay 來設定執行 SIL 記錄的時間時,您必須指定日期和時間。 設置日曆日期,且在日期到達之前不會發生日誌記錄 (以本機系統時間為準)。
使用 Get-SilSoftware 或 Get-SilWindowsUpdate 時,"InstallDate" 會永遠顯示一個無意義的值:12:00:00AM。
使用 Get-SilUalAccess 時,“SampleDate” 會永遠顯示一個無意義的值:11:59:00PM。 在這些 Cmdlet 查詢中,日期是相關資料。
在掛接虛擬硬碟中啟用及設定軟體清查記錄
軟體清查記錄也支援對離線虛擬機器的設定和啟用。 此功能的實際用途涵蓋建立用於整個資料中心廣泛部署的「黄金映像」,以及配置從本地部署轉向雲端部署的使用者映像。
若要支援這些用途,軟體清查記錄會有與每個可設定選項相關聯的登錄項目。 您可以在 \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\SoftwareInventoryLogging 底下找到這些登錄值。
功能 | 值名稱 | 資料 | 對應的 Cmdlet (僅適用於正在執行的作業系統) |
---|---|---|---|
啟動/停止功能 | CollectionState | 1 或 0 | Start-SilLogging、Stop-SilLogging |
在網路上指定目標彙總點 | TargetUri | 字串 | Set-SilLogging -目標URI |
指定用於目標 Web 伺服器進行 SSL 驗證的憑證指紋或雜湊值 | 證書指紋 | 字串 | Set-SilLogging -CertificateThumbprint |
指定應該開始功能的日期和時間 (如果值設定在未來,以本機系統時間為準) | 收集時間 | 預設:2000年1月1日 03:00:00 | Set-SilLogging -TimeOfDay |
若要在離線 VHD 上修改這些值 (未執行 VM OS),則 VHD 必須先掛接,然後才可以使用下列命令來進行變更:
啟動作業系統時,軟體清查記錄會檢查這些值並照著執行。
在 Windows Server 2012 R2 (不含 KB 3000850) 中使用軟體清查記錄概觀
使用 KB 3000850 對軟體清查記錄功能和預設設定所做的變更如下:
啟動 SIL 記錄時,透過網路收集和轉送的預設間隔會從每天變更為每小時 (每個小時內隨機進行)。
預設資料負載已減少為只包含從 Get-SilComputer、Get-SilComputerIdentity 和 Get-SilSoftware 的物件。
在 Hyper-V 環境中,虛擬機到主機的通道通訊已被移除。
在不含 KB 3000850 的 Windows Server 2012 R2 Hyper-V 環境中使用軟體庫存記錄功能
注意
在 KB 3000850 更新的安裝中已移除這項功能。
在 Windows Server 2012 R2 Hyper-V 主機上使用軟體清查記錄 (SIL) 時,如果已在客體中啟動 SIL 記錄,便可從本地執行的 Windows Server 2012 R2 客體中擷取 SIL 資料。 不過,只有在使用 Get-SilData 和 Publish-SilData Powershell Cmdlet 時才能執行此操作,而且只有在使用主機和客體中的 Windows Server 2012 R2 時才有可能。 這項功能的目的是讓給租用戶或其他大型公司實體提供客戶虛擬機的資料中心管理員,可以在 Hypervisor 主機擷取軟體清單資料,然後將所有這些資料轉送至彙總工具 (或目標 URI)。
下面是兩個範例,顯示在 Windows Server 2012 R2 Hyper-V 主機上運行一個 Windows Server 2012 R2 客體虛擬機器並啟動 SIL 記錄時,PowerShell 主控台的輸出樣式(經過大量簡化)。 您會注意到單使用 Get-SilData 的第一個範例,會如預期般輸出主機的所有資料。 另還包含在內的是來賓的所有 SIL 資料,但會以簡明格式表示。 若要展開並檢視訪客的這項資料,您只需複製並貼上第二個範例中的片段即可。 客體的 SIL 資料物件內一定會有相關聯的 VM GUID。
注意
由於 SIL 資料會輸出在主控台上,使用 Get-SilData Cmdlet 時,在資料流中,不一定永遠都能以預測的順序輸出物件。 在下列兩個範例中,文字已經過色彩標示 (藍色表示實體主機資料,綠色表示虛擬客體資料),這單純只做為這份文件的說明工具使用。
另請參閱
開始使用軟體清查記錄軟體清查記錄彙總工具Windows PowerShell 中的軟體清查記錄 CmdletImport-BinaryMiLogExport-BinaryMiLog