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)
|
|
|