|
|
- import os, sqlite3
-
- conn = sqlite3.connect(os.path.expandvars(r'%ProgramData%\Microsoft\Windows\AppRepository\StateRepository-Machine.srd'))
-
- cursor = conn.execute(
- '''
- SELECT _PackageID, PackageFullName FROM main.Package
- WHERE PackageFullName LIKE "Microsoft.Windows.SecHealthUI%";
- '''
- )
- records_to_update = {}
- for row in cursor:
- records_to_update[row[0]] = row[1]
-
- cursor = conn.execute(
- '''
- SELECT name, sql FROM main.sqlite_master
- WHERE type = "trigger" AND tbl_name = "Package" AND name LIKE "TRG_AFTER_UPDATE%";
- '''
- )
- triggers_backup = {}
- for row in cursor:
- triggers_backup[row[0]] = row[1]
-
- # Delete update triggers for table "Package"
- for TriggerName, TriggerSQL in triggers_backup.items():
- conn.execute(
- '''
- DROP TRIGGER %s;
- ''' % TriggerName
- )
- conn.commit()
- print('Trigger "%s" has been cleared.' % TriggerName)
-
- # Set IsInbox to 0
- for PackageID, PackageFullName in records_to_update.items():
- conn.execute(
- '''
- UPDATE main.Package SET IsInbox = 0 WHERE _PackageID = %d;
- ''' % PackageID
- )
- conn.commit()
- print('IsInbox of "%s" has been set to 0.' % PackageFullName)
-
- # Restore triggers
- for TriggerName, TriggerSQL in triggers_backup.items():
- conn.execute(
- '''
- %s;
- ''' % TriggerSQL
- )
- conn.commit()
- print('Trigger "%s" has been restored.' % TriggerName)
-
|