1010using System . Linq ;
1111using System . Management ;
1212using System . Management . Automation ;
13+ using System . Text . RegularExpressions ;
1314
1415namespace AnyPackage . Provider . Msu ;
1516
@@ -28,7 +29,7 @@ public void FindPackage(PackageRequest request)
2829 }
2930
3031 string line ;
31- Dictionary < string , object > metadata = [ ] ;
32+ Dictionary < string , object ? > metadata = [ ] ;
3233 using var reader = file . OpenText ( ) ;
3334
3435 while ( ( line = reader . ReadLine ( ) ) is not null )
@@ -46,7 +47,7 @@ public void FindPackage(PackageRequest request)
4647 {
4748 var kb = string . Format ( "KB{0}" , metadata [ "KBArticleNumber" ] ) ;
4849 var source = new PackageSourceInfo ( request . Path , request . Path , ProviderInfo ) ;
49- var package = new PackageInfo ( kb , null , source , ( string ) metadata [ "PackageType" ] , null , metadata , ProviderInfo ) ;
50+ var package = new PackageInfo ( kb , null , source , ( string ) metadata [ "PackageType" ] ! , null , metadata , ProviderInfo ) ;
5051 request . WritePackage ( package ) ;
5152 }
5253 }
@@ -93,6 +94,18 @@ public void InstallPackage(PackageRequest request)
9394
9495 public void UninstallPackage ( PackageRequest request )
9596 {
97+ var regex = new Regex ( @"KB\d+" , RegexOptions . IgnoreCase ) ;
98+
99+ if ( ! regex . Match ( request . Name ) . Success )
100+ {
101+ return ;
102+ }
103+
104+ if ( request . IsVersionFiltered )
105+ {
106+ return ;
107+ }
108+
96109 using var process = new Process ( ) ;
97110 process . StartInfo . FileName = "wusa.exe" ;
98111 var kb = request . Name . Replace ( "KB" , "" ) ;
0 commit comments