最近碰到一個(gè)需求:針對(duì)所有電腦卸載某個(gè)小軟件,但這個(gè)軟件并不是SCCM部署,有的是用戶自己安裝的,有的是系統(tǒng)部署時(shí)就已經(jīng)封裝好的,版本繁多,安裝路徑也不一樣!
成都創(chuàng)新互聯(lián)專注于濱城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供濱城營(yíng)銷型網(wǎng)站建設(shè),濱城網(wǎng)站制作、濱城網(wǎng)頁(yè)設(shè)計(jì)、濱城網(wǎng)站官網(wǎng)定制、重慶小程序開(kāi)發(fā)服務(wù),打造濱城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供濱城網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。首先想到的當(dāng)然是用Powershell來(lái)做,先后測(cè)試了用Get-apppacke\get-appxpacke, Get-WmiObject -Class win32_product等幾種方法都不行,最后用找注冊(cè)表中的UninstallString的方式解決!
方法如下:
1、 先用PowerShell定位到注冊(cè)表位置,
X86 Script:
Set-Location HKLM:\software\microsoft\Windows\Currentversion\uninstall
X64 Script:
Set-Location HKLM:\software\WOW6432Node\microsoft\Windows\Currentversion\uninstall
2、 查詢到軟件安裝后在注冊(cè)表Uninstall中的名稱,如:Chrome,在Uninstall中的Childitem名為:Google Chrome,其中Uninstallstring有卸載的運(yùn)行文件具體路徑、此文件名及參數(shù):
"C:\Program Files (x86)\Google\Chrome\Application\74.0.3729.131\Installer\setup.exe" --uninstall --system-level --verbose-logging
這就是我們要運(yùn)行的卸載命令,有些軟件只有執(zhí)行文件,并不帶參數(shù),如Teamviewer 只有一個(gè)Uninstall.exe,我們可以使用Uninstall.exe /S進(jìn)行靜默卸載!
3、 完整的PS腳本如下:
Set-Location
HKLM:\software\WOW6432Node\microsoft\Windows\Currentversion\uninstall
#指定注冊(cè)表的位置
$UninstallTeamviewer =? get-childitem -path *Teamviewer* | get-itemproperty | %{$_.Uninstallstring}
#查找卸載命令并賦值給變量:$UninstallTeamviewer
start $UninstallTeamviewer /S
#Powershell中運(yùn)行卸載命令:$UninstallTeamviewer
針對(duì)注冊(cè)表中已有卸載程序和參數(shù)的,上面不用再加參數(shù)數(shù):“/S”
4、 創(chuàng)建腳本:在SoftWare Library\Overview\Scripts中右鍵、Create Script:
5、 將PowerShell腳本貼到腳本,下一步,完成!
TeamViewer
$OS = (Get-WmiObject Win32_OperatingSystem).OSArchitecture
????#檢查操作系統(tǒng)版本
if ((gwmi win32_operatingsystem | select osarchitecture).osarchitecture -eq "32-bit"){
????#32 Bit 運(yùn)行以下步驟
Set-Location HKLM:\software\microsoft\Windows\Currentversion\uninstall
????#指定以下注冊(cè)表位置
$UninstallTeamviewer = get-childitem -path *Teamviewer* | get-itemproperty | %{$_.Uninstallstring}
????#查找卸載命令并賦值給變量:$UninstallTeamviewer
start $UninstallTeamviewer /S
????#Powershell中運(yùn)行卸載命令:$UninstallTeamviewer
$UninstallTeamviewer
????#輸出變量結(jié)果,方便查詢分析
}
else{
#64 Bit 運(yùn)行以下步驟
Set-Location HKLM:\software\WOW6432Node\microsoft\Windows\Currentversion\uninstall
????#指定以下注冊(cè)表位置
$UninstallTeamviewer = get-childitem -path *Teamviewer* | get-itemproperty | %{$_.Uninstallstring}
????#查找卸載命令并賦值給變量:$UninstallTeamviewer
start $UninstallTeamviewer /S
????#Powershell中運(yùn)行卸載命令:$UninstallTeamviewer
$UninstallTeamViewer
????#輸出變量結(jié)果,方便查詢分析
}
6、 核準(zhǔn)腳本:在剛創(chuàng)建的腳本上點(diǎn)右鍵、批準(zhǔn)
在生產(chǎn)環(huán)境中,為了安全,用戶創(chuàng)建的腳本需要第二人來(lái)批準(zhǔn)(即自己不能批準(zhǔn)自己創(chuàng)建的腳本),如果想自己批準(zhǔn)自己的創(chuàng)建的腳本,請(qǐng)?jiān)谶M(jìn)到:Administration\Site Configuration\Sites\Hierarchy Settings,
將“Script authors require additional script approver前面的勾取消。
7、 運(yùn)行腳本:在需要運(yùn)行的電腦或集全中點(diǎn)右鍵,選擇:Run Script\Next,即開(kāi)始運(yùn)行。
8、 在Monitoring中也可以查看已運(yùn)行的腳本匯總結(jié)果 ,在“腳本狀態(tài)”列表中,可以查看在客戶端設(shè)備上運(yùn)行的每個(gè)腳本的結(jié)果。 腳本退出代碼為“0”通常表示腳本已成功運(yùn)行。
9、 也可以晚點(diǎn)再去軟件報(bào)告里進(jìn)行查詢!
10、 如果針對(duì)某個(gè)軟件是使用MIS封裝包安裝的,Uninstall值會(huì)是“MsiExec.exe /I {23170F69-40C1-2701-1602-000001000000}“,就要改另一種PowerShell方式,例:
if ((gwmi win32_operatingsystem | select osarchitecture).osarchitecture -eq "32-bit"){
#32 Bit 7zip X32 1602 {23170F69-40C1-2701-1602-000001000000}
$script = { invoke-expression "msiexec /qn /x '{23170F69-40C1-2701-1602-000001000000}' "}
Invoke-Command -ScriptBlock $script
$script
}else{
#64 Bit 7zip X64 1602 {23170F69-40C1-2702-1602-000001000000}
$script = { invoke-expression "msiexec /qn /x '{23170F69-40C1-2702-1602-000001000000}' "}
Invoke-Command -ScriptBlock $script
$script
}
當(dāng)然,如果沒(méi)有SCCM環(huán)境,也可以嘗試用在AD中調(diào)用上面的腳本!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。