我在我的公司的IT管理員和IM試圖找出如果裝的東西,他們不應該的人......PS腳本過濾註冊表安裝的程序
要做到這一點,即時通訊使用PS訪問註冊表並輸出Uninstall項中的值列表。不過,我只是開始使用Powershell,而且對它很新穎。
最後我希望這個腳本遍歷整個域並查看註冊表值並輸出不應該安裝的程序列表。
腳本到目前爲止,我已經寫了:
$path = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\"
Get-ChildItem -Path $path | Get-ItemProperty -Name DisplayName
,它的輸出:
DisplayName : Intel(R) Chipset Device Software
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{C965318A-AA36-4F94-9ED5-AE5391F452B2}
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
PSChildName : {C965318A-AA36-4F94-9ED5-AE5391F452B2}
PSProvider : Microsoft.PowerShell.Core\Registry
DisplayName : Intel(R) ME UninstallLegacy
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{DF17C0DB-76D8-4A45-B26E-674F8455B803}
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
PSChildName : {DF17C0DB-76D8-4A45-B26E-674F8455B803}
PSProvider : Microsoft.PowerShell.Core\Registry
DisplayName : VMware Workstation
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{F4C0A853-FA3B-4404-954B-799299EB5A98}
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
PSChildName : {F4C0A853-FA3B-4404-954B-799299EB5A98}
PSProvider : Microsoft.PowerShell.Core\Registry
非常基本的,我知道,但它確實輸出列表我想它,但無論我過濾了多少垃圾或排除了cmdlet,我無法設法讓它從列表註冊表中清除,我知道它應該在那裏。
現在我們可以說我知道,並且與英特爾芯片組和英特爾ME卸載的遺產很好,所以我不希望他們出現在名單上,但我不適合與VMware工作站,所以我希望它顯示當我運行腳本時,我該怎麼做?
'(Get-ChildItem -Path $ path).Name | Split-Path -Leaf'或甚至更簡單的變體也應該如此:'Get-ChildItem -Path $ path |拆分路徑-Leaf' – JosefZ