I am trying to automate unused license application uninstallation. I have read various blogs of how this can be done by using the information of Assets intelligence and creating a dynamic collection.
In my infra, we have deployed license application by selecting option “An administrative must approve the application for this device”. This give option to write a justification and request the application from Software Center.
My question is, if I automate the uninstall of unused application using metering, after removal will the “Request” button in Software Center re appear for user to re-request? As far as I know, until and unless we deny the request from “Application Request” tab in console, Request button will not re-appear.
Also, I know denying the request will automatically uninstall the application from users machine.
I am trying to combine 2 things here.
- Based on my metering, unused application with avg usage less than 5 min should get remove automatically.
- User should get option to re-request the application post removal.
Answers ( 5 )
Hopefully, the issue is resolved, I am going to close this thread.
First configure software metering for all license software. then use below sql query to get the usage of license application list.
Declare @ApplicationName as Varchar(8)
Declare @RequiredDays as Integer
Set @ApplicationName = ‘%Reader%’ — Specify Application Name
Set @RequiredDays = 90 — Specify no of Days
Declare @days float
Declare @__timezoneoffset int
Select @__timezoneoffset = DateDiff (ss,GetUTCDate(),Getdate())
Select @days=DATEDIFF(day,IntervalStart,DATEADD(month,1,IntervalStart))from v_SummarizationInterval
If IsNULL(@days,0) > 0
Distinct VRS.Name0 as ‘Name’,
Os.Caption0 as ‘OperatingSystem’,
St.SystemType00 as ‘OSType’,
Vrs.Full_Domain_Name0 as ‘Domain’,
Vrs.User_Name0 as ‘UserName’,
Vrs.AD_Site_Name0 as ‘ADSite’,
ARP.Publisher0 as ‘Publisher’,
ARP.ARPDisplayName0 as ‘DisplayName’,
ARP.ProductID0 as ‘ProductID’,
ARP.InstallDate0 as ‘InstalledDate’,
ARP.ProductVersion0 as ‘Version’,
DATEADD(ss,@__timezoneoffset,MAX(Mus.LastUsage)) as ‘LastUsage’,
DateDiff(D, DATEADD(ss,@__timezoneoffset,MAX(Mus.LastUsage)), GetDate()) as ‘LastUsageDays’
from V_R_System Vrs
LEFT JOIN v_GS_INSTALLED_SOFTWARE ARP ON VRS.ResourceID = ARP.ResourceID
LEFT JOIN Computer_System_DATA St on VRS.ResourceID = st.MachineID
LEFT JOIN v_GS_OPERATING_SYSTEM Os on VRS.ResourceID = Os.ResourceID
LEFT JOIN v_GS_WORKSTATION_STATUS HWSCAN on VRS.ResourceID = HWSCAN.ResourceID
LEFT JOIN v_MonthlyUsageSummary Mus on Vrs.ResourceID=Mus.ResourceID
LEFT JOIN v_MeteredFiles mf on Mus.FileID=mf.MeteredFileID
where (DATEDIFF(d,LastUsage, GETDATE()) > @RequiredDays)
and ARP.ARPDisplayName0 like @ApplicationName
and VRS.Operating_System_Name_and0 like ‘%Workstation%’
and Vrs.Obsolete0=0 and Vrs.Client0=1
Group by Vrs.Name0,Os.Caption0,St.SystemType00,Vrs.Full_Domain_Name0,Vrs.User_Name0,Vrs.AD_Site_Name0,ARP.Publisher0,ARP.InstallDate0,
having SUM(UsageCount) + SUM(TSUsageCount) > 0
order by DateDiff(D, DATEADD(ss,@__timezoneoffset,MAX(mus.LastUsage)), GetDate())
Thank you Karthikeyan for the query.
But I am looking for something else.
Create 3 collections..
1. machine where “abc” installed
2. machine where “abc” used in last x days (based on metering)
3. machine where you want to run un-installation. (include 1 and exclude 2)
now run un-installation deployment on 3. As you are not removing the users/machine from the abc software deployment collection it will be still available on their software center.
Thanks for your answer.
By doing this, I will be able to successfully uninstall unused application from machine. However, user still have option to install it from Software Center. Based on my infra setting that I mentioned in my question, I would like the user to re -request the application from Software center which will go for a approval.
So I am looking for combination of both.