From 22ac3b616f292c4bc5adb9aa825e48a983cf18ca Mon Sep 17 00:00:00 2001 From: Test Date: Thu, 17 Sep 2026 16:30:49 -0500 Subject: [PATCH 1/2] windows and linux management import --- .../Apache Commons Text Scan Analysis.bes | 34 + .../Fixlets/Analyses/ESET Installed (76).bes | 33 + ...nux package info - RPM & DEB (2998050).bes | 27 + .../Analyses/SSH Public Keys (2998546).bes | 24 + .../Fixlets/Analyses/Shellshock (2994719).bes | 25 + ... Available and Installed Packages (95).bes | 26 + ... - Security Center - Windows (2996952).bes | 27 + ...dobe Update Server - Windows (2994671).bes | 34 + ...te Server Settings - Windows (2994676).bes | 34 + ... Shortcuts, RunKey - Windows (2994785).bes | 33 + .../Apache Commons Text Scan Analysis.bes | 34 + .../Audit Policy - Windows (2998298).bes | 46 + ...toAdminLogon audit - Windows (2994788).bes | 28 + .../BitLockerEncryptionStatus (96).bes | 26 + .../Bitlocker - Audit - Windows (2998433).bes | 35 + ...er - Compatibility - Windows (2998299).bes | 23 + ...r - Key Protectors - Windows (2998300).bes | 25 + .../Bitlocker - Logs - Windows (2998437).bes | 23 + ... Recovery Password - Windows (2998160).bes | 25 + .../Bitlocker - TPM Status (2998637).bes | 28 + .../Bitlocker - TPM Status (2998646).bes | 28 + .../Bitlocker Info - Windows (2994754).bes | 42 + .../Boot Up Analysis - Windows (2994790).bes | 30 + .../Certificate Audit - Windows (2994825).bes | 27 + .../Certificates - Windows (2998390).bes | 36 + .../ChkDsk Audit - Windows (2994739).bes | 40 + .../Chocolatey Audit - Windows (2994810).bes | 36 + ...lient Clock Audit - Kerberos (2994647).bes | 32 + ...osoft Product Keys - Windows (2994759).bes | 28 + ...Cached Login Creds - Windows (2998301).bes | 25 + ...Current Memory Configuration (2995862).bes | 25 + ...Current Memory Configuration (2998506).bes | 26 + .../DNS Cache - Windows (2995861).bes | 26 + ...eviceQuery Results - Windows (2994799).bes | 31 + .../Fixlets/Analyses/Devices (50).bes | 27 + .../Analyses/Devices - Windows (2994709).bes | 50 + .../Distinguished Name of User (2998580).bes | 24 + .../Driver Audit - Windows (2994712).bes | 28 + .../Analyses/Drivers - Windows (2998242).bes | 22 + ...ET - Configuration - Windows (2998302).bes | 32 + .../EMET - Logs - Windows (2998438).bes | 23 + .../Event Log - Windows (2998243).bes | 25 + ...onfiguration Audit - Windows (2994783).bes | 27 + ...ll - Configuration - Windows (2998518).bes | 31 + .../Group Policy - Windows (2998487).bes | 44 + .../Analyses/Groups - Windows (2998456).bes | 39 + .../Hard Drive Audit - Windows (2994706).bes | 44 + .../Analyses/Hardware - Windows (2998512).bes | 37 + .../Hyper-V Guest - Windows (2998484).bes | 25 + .../Hyper-V Host - Windows (2998252).bes | 23 + ... Upgrade Failure Information (2998651).bes | 26 + .../Analyses/Inactive Users (2994557).bes | 24 + .../Intel vPro Audit - Windows (2995830).bes | 25 + .../Internet Explorer - Windows (2998393).bes | 21 + ...orer Configuration - Windows (2994779).bes | 27 + .../Fixlets/Analyses/Is Docked (74).bes | 21 + .../KB5022842 on Win 2022 (2998680).bes | 33 + ...ptop Battery Audit - Windows (2994755).bes | 51 + ...l Admin_User Audit - Windows (2994547).bes | 28 + .../Local Client Administrators (78).bes | 25 + .../Lockout Events from DC (2998671).bes | 26 + ...sers with local admin rights (2998581).bes | 26 + ...7-010 verify (WannaCry &co.) (2998568).bes | 27 + ...s 7 _ Windows Server 2008 R2 (2998556).bes | 31 + ...dows 8 _ Windows Server 2012 (2998557).bes | 31 + ...8.1 _ Windows Server 2012 R2 (2998558).bes | 31 + ... Vista _ Windows Server 2008 (2998560).bes | 31 + .../Fixlets/Analyses/MSSQL (2994632).bes | 44 + ...Deployment Toolkit - Windows (2998513).bes | 30 + .../Microsoft IIS - Windows (2998511).bes | 27 + ... Information - KMS - Windows (2994711).bes | 34 + ...ce Settings - Extended - RDP (2994595).bes | 43 + .../Microsoft SQL - Windows (2998470).bes | 30 + ...ts for Available Windows Features (12).bes | 27 + .../Analyses/Network - Windows (2998477).bes | 32 + .../Network Info - Windows (2994562).bes | 28 + .../Operating System - Windows (2998541).bes | 31 + ...rmation (Windows) - Expanded (2994800).bes | 70 + ...(Windows) - metric inspector (2994628).bes | 42 + .../Analyses/PageFile - Windows (2994592).bes | 29 + .../Analyses/Pagefile - Win_Mac (2998262).bes | 22 + .../Analyses/Pagefile - Windows (2998263).bes | 23 + .../Pending Restart - Windows (2998394).bes | 26 + ...er - Configuration - Windows (2998419).bes | 29 + ...lan Settings - Windows TODO (2994762).bes | 27 + .../Analyses/PowerShell x64 Status (19).bes | 31 + .../Analyses/PowerShell x86 Status (20).bes | 30 + ...erShell x86 Status - Windows (2994540).bes | 43 + .../Primary User - Windows (2995831).bes | 31 + .../Printer Audit - Windows (2994742).bes | 43 + .../Analyses/Printers - Windows (2998542).bes | 23 + ...perties (Windows) - Extended (2994574).bes | 32 + ...eal-time Downtime Validation (2998602).bes | 34 + ...ce - Configuration - Windows (2998523).bes | 31 + ...tance - Event Logs - Windows (2998524).bes | 25 + ...nce - Session Logs - Windows (2998525).bes | 43 + .../Remote Assistance - Windows (2998526).bes | 25 + ...top - Session Logs - Windows (2998527).bes | 22 + ...estart information - Windows (2998686).bes | 31 + .../Analyses/SCCM - Windows (2998488).bes | 32 + .../Analyses/SNMP - Windows (2998459).bes | 25 + .../Analyses/SNMP Configuration (2994764).bes | 26 + ...tion and Licensing - Windows (2994757).bes | 34 + ...sage Analysis Info - Windows (2994536).bes | 46 + .../Scheduled Tasks - Windows (2998472).bes | 28 + .../Analyses/Service Error (2994723).bes | 24 + .../Service Monitor - Windows (2998502).bes | 33 + .../Analyses/Services - Windows (2998543).bes | 27 + .../Analyses/Services info (2994720).bes | 29 + .../Analyses/Shares - Windows (2998467).bes | 30 + ...ogon or GPO issues - Windows (2994789).bes | 39 + .../Stability - Windows (2998544).bes | 30 + .../Stability Audit - Windows (2994781).bes | 39 + .../System File Checker results (2994541).bes | 30 + ... Security Analysis - Windows (2998604).bes | 62 + ...ship Authorization - Windows (2998307).bes | 21 + .../Analyses/TPM - Windows (2998504).bes | 25 + .../Analyses/TSM Backup Audit - Windows.bes | 55 + ...ders, Logs, etc... - Windows (2994784).bes | 27 + ...ary Administrators - Windows (2998399).bes | 25 + ... - Missing Patches - Windows (2998276).bes | 22 + ...ow Boot Slow Logon - Windows (2998474).bes | 23 + .../Analyses/UEFI - Windows (2998369).bes | 23 + .../Analyses/Uninstall Analysis (54).bes | 25 + .../Analyses/Users - Windows (2998571).bes | 33 + .../VMWare Guest - Windows (2998379).bes | 24 + .../Analyses/VPN - Windows (2998351).bes | 32 + ...and Monitor _ OMCI & others) (2994763).bes | 85 + ...ion Based Security - Windows (2998545).bes | 31 + ... Antimalware Audit - Windows (2994634).bes | 40 + .../Analyses/WMI - Windows (2998282).bes | 26 + ...er - Configuration - Windows (2998309).bes | 39 + ...- Applocker - Logs - Windows (2998440).bes | 26 + ...isting - Applocker - Windows (2998311).bes | 23 + ...rade Eligibility Information (2998656).bes | 60 + ...dmin Users Compliance Status (2998597).bes | 80 + ...Results - WinVista and later (2994570).bes | 45 + .../Windows License Information (2998636).bes | 54 + ...indows Power Scheme Settings (2994768).bes | 34 + ... Information - KMS - Windows (2998367).bes | 32 + ...s System Volume Size & Usage (2994588).bes | 29 + .../Windows Update & WSUS Audit (69).bes | 27 + ...ors while Installing Updates (2998673).bes | 24 + ...date check results - Windows (2998507).bes | 30 + .../Windows Updates - Windows (2998397).bes | 26 + .../Analyses/Windows Upgrades (2998608).bes | 25 + ...wsUpdate.log Audit - Windows (2995914).bes | 26 + .../Analyses/dotNET Framework (2994589).bes | 32 + ...rcfg energy report - Windows (2994793).bes | 26 + ...rtcut for all users on Windows (25073).bes | 83 + ...ith KMS - set server - Windows (22632).bes | 60 + ...ws with KMS over VPN - Windows (22633).bes | 68 + ...arch List if missing - Windows (26706).bes | 48 + ...r to Remote Desktop Users Group (3794).bes | 61 + ...r to Local Administrators Group (3624).bes | 33 + ...specific domain - www.domain.tld (715).bes | 38 + ... Commons Text detection scan (Windows).bes | 95 + ...plocker Configuration Template (25578).bes | 106 + .../BCDedit Hypervisor Command (24885).bes | 52 + ...BigSpeak Audio Health Dashboard (6218).bes | 153 + ...board Scheduled Task Setup v1.0 (6217).bes | 150 + ...Tweet Scheduled Task Setup v2.1 (6113).bes | 95 + .../Fixlets/Fixlets/BigTweet v2.1 (6112).bes | 92 + ...17 - MS Office Issues - Windows (9143).bes | 75 + ...k Regsvr32 in Windows Firewall (20257).bes | 58 + ...ound_ Disable ActiveX Download (26876).bes | 61 + ...ound_ Disable ActiveX Download (26877).bes | 61 + ...nvironment variables (Windows) (26898).bes | 67 + ...dministrator Password - Windows (9150).bes | 46 + ... Page if unchanged from default (3802).bes | 37 + ...ge local user account password (27377).bes | 104 + ...user account password - Windows (3670).bes | 69 + ...ord with verification - Windows (6076).bes | 90 + ...ay run out of hard drive space (11930).bes | 57 + ...system may run out of hard drive space.bes | 57 + .../Close Magnify.exe - Windows (24573).bes | 39 + ...ce - Automatic Start - Windows (20699).bes | 42 + ...ment Max Size - 20mb - Windows (20591).bes | 40 + ...tion Max Size - 20mb - Windows (20592).bes | 40 + ..._DLL Max Size - 20mb - Windows (20593).bes | 40 + ...ript Max Size - 20mb - Windows (20594).bes | 40 + ... AppX,EXE,MSI,Script - Windows (20595).bes | 65 + ... AppX,EXE,MSI,Script - Windows (20596).bes | 65 + ... run All Executables - Windows (20616).bes | 63 + ...s to run All Scripts - Windows (20617).bes | 63 + ...ules - Allow Default - Windows (20599).bes | 132 + ...un Cached Installers - Windows (20619).bes | 63 + ...nstalled Executables - Windows (20620).bes | 67 + ...un Installed Scripts - Windows (20621).bes | 69 + ...e to run Signed AppX - Windows (20622).bes | 64 + ...n Signed Executables - Windows (20623).bes | 66 + ...un Signed Installers - Windows (20624).bes | 65 + ... - Reset Local Rules - Windows (20625).bes | 53 + ...n - Add User Account - Windows (23677).bes | 81 + ... Autologon - Disable - Windows (23678).bes | 40 + ...r Method - Audit All - Windows (20703).bes | 66 + ...Method - Enforce All - Windows (20704).bes | 66 + ... run All Executables - Windows (20705).bes | 63 + ...s to run All Scripts - Windows (20706).bes | 63 + ...ts in their Profiles - Windows (20714).bes | 55 + ...un Cached Installers - Windows (20707).bes | 63 + ...nstalled Executables - Windows (20746).bes | 67 + ...un Installed Scripts - Windows (20709).bes | 69 + ...pts in Program Files - Windows (20738).bes | 58 + ...irectory except Temp - Windows (20739).bes | 58 + ...files except AppData - Windows (20740).bes | 58 + ...e to run Signed AppX - Windows (20710).bes | 64 + ...n Signed Executables - Windows (20711).bes | 66 + ...un Signed Installers - Windows (20712).bes | 65 + ...tial Guard - Disable - Windows (20652).bes | 61 + ...nable with UEFI Lock - Windows (20653).bes | 64 + ...le SMBv3 Compression - Windows (26668).bes | 44 + ... Pinning Mitigations - Windows (20801).bes | 410 ++ ...t Mitigation Actions - Windows (20802).bes | 62 + ...lication Mitigations - Windows (20803).bes | 316 ++ ...igations without EAF - Windows (20897).bes | 317 ++ ...rd-Party Mitigations - Windows (21612).bes | 308 ++ ...igations without EAF - Windows (20898).bes | 308 ++ ...- Add 127.0.0.1 FQDN - Windows (23379).bes | 52 + ...emove 127.0.0.1 FQDN - Windows (23380).bes | 51 + ...e - Reset to Default - Windows (23381).bes | 70 + ...V Platform - Disable - Windows (20654).bes | 38 + ...-V Platform - Enable - Windows (20655).bes | 39 + ... User Mode - Disable - Windows (20656).bes | 38 + ...d User Mode - Enable - Windows (20657).bes | 38 + ...Desktop - Enable RDP - Windows (23555).bes | 40 + ...cy - Set to Balanced - Windows (20557).bes | 37 + ... to High Performance - Windows (20559).bes | 37 + ...- Set to Power Saver - Windows (20561).bes | 37 + ...to Presentation Mode - Windows (24032).bes | 34 + ...osoft Search Indexer - Windows (22915).bes | 40 + ... Delay to 10 Minutes - Windows (23032).bes | 36 + ... Delay to 15 Minutes - Windows (23033).bes | 36 + ...t Delay to 5 Minutes - Windows (23034).bes | 36 + ...ntial Guard - Enable - Windows (23808).bes | 44 + ...et to KMS Activation - Windows (23579).bes | 50 + ... on Synchronize with NTP server (2587).bes | 39 + ...dard User to use Windows Update (2583).bes | 42 + ...res - Windows 8 or later TODO (6047).bes | 60 + ...g Features - Windows 8 or later (6067).bes | 61 + ... port ForceFifoEnable - Windows (3864).bes | 47 + ... port ForceFifoEnable - Windows (6044).bes | 47 + ...able Kerberos Logging - Windows (3782).bes | 38 + ...FS Last Access Update - Windows (6041).bes | 42 + ...ettings - Windows -TODO_Testing (3865).bes | 54 + ...rm Tags Utility 4.006 - Windows (3928).bes | 116 + ...rm Tags Utility 4.006 - Windows (3927).bes | 110 + ...press Balloon Pop-Ups - Windows (3781).bes | 44 + ...igure Cascading Admin Tools Menu (100).bes | 44 + ...figure Cascading Admin Tools Menu (85).bes | 44 + ...nfigure Computer as _Always On_ (2570).bes | 44 + ... ago (Windows Vista and Higher) (6035).bes | 59 + .../Configure Execution Policy (632).bes | 42 + .../Configure Execution Policy (74).bes | 42 + ...ist for Currently Logged On User (647).bes | 55 + ...Registered Organization and Owner (86).bes | 80 + ...igure TCP_ MaxUserPort to 60000 (3938).bes | 38 + .../Configure TCP_ MaxUserPort to 60000.bes | 38 + ...TcpTimedWaitDelay to 30 seconds (3937).bes | 38 + ... Firewall_ Allow Remote Desktop (3974).bes | 42 + ...Windows Firewall_ Allow Remote Desktop.bes | 42 + ... Desktop Shortcut (PowerShell) (25589).bes | 73 + ...rtcut in User Profile if missing (720).bes | 51 + ...lias for DIR command - Windows (24046).bes | 50 + ...d_ Context Menu item - Windows (25531).bes | 39 + ...o clear relevance for KB3024777 (3979).bes | 49 + ...account to local administrators (3656).bes | 42 + ...ings using ActiveSetup (POODLE) (3914).bes | 73 + .../Fixlets/Fixlets/DISM Inventory (1420).bes | 146 + ... if one exists over 2GB in size (1415).bes | 38 + ..._NETWORK WiFi Profile - Windows (6171).bes | 40 + ...from systems with low free space (721).bes | 39 + ...hortcuts containing _uninstall_ (3657).bes | 40 + ...ment Framework - 4.0 - Windows (23565).bes | 46 + ...osoft Office 2011 Update 14.3.5 (2531).bes | 47 + ...osoft Office 2011 Update 14.3.6 (2539).bes | 47 + .../Designate ALWAYS On Profile (2611).bes | 74 + .../Fixlets/Device Control (24645).bes | 38 + .../Disable Administrator Account (99).bes | 45 + .../Fixlets/Disable AutoAdminLogon (740).bes | 40 + ...tes for Currently Logged On User (646).bes | 48 + .../Fixlets/Disable Microsoft CEIP (3899).bes | 54 + .../Fixlets/Disable Named Pipes (108).bes | 42 + .../Fixlets/Disable Named Pipes (642).bes | 42 + ...rk Adaptors (Requires Restart) (27372).bes | 36 + .../Disable Remote Desktop (RDP) (659).bes | 48 + ...dows 8 and Windows Server 2012 (24318).bes | 56 + ...ows Vista, Windows Server 2008 (24314).bes | 38 + ...isable SMBv1 Service - Windows (23443).bes | 43 + ...ows 8, and Windows Server 2012 (24316).bes | 41 + ...le Skype Auto-update - Improved (3662).bes | 52 + ...Disable Skype start with windows (727).bes | 38 + ...R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes | 67 + .../Fixlets/Fixlets/Disable UAC (1376).bes | 43 + .../Fixlets/Fixlets/Disable UAC (26610).bes | 47 + ...8 and Mac OS 10.4_10.5_10.6_10.7 (310).bes | 57 + .../Disable Windows Update (26611).bes | 35 + .../Fixlets/Disable inactive users (2549).bes | 40 + .../Fixlets/Disable inactive users (3873).bes | 40 + ...artition & Create M_ Partition (25433).bes | 78 + .../Enable Administrator Account (615).bes | 45 + ...tes for Currently Logged On User (645).bes | 48 + ...buntu BASH) - Windows Features (20682).bes | 58 + .../Fixlets/Enable Named Pipes (107).bes | 42 + .../Fixlets/Enable Named Pipes (641).bes | 42 + ... .NET 2 & 3 - Windows Features (22635).bes | 53 + .../Fixlets/Enable Remote Desktop (3872).bes | 37 + .../Enable Remote Desktop (RDP) (2458).bes | 50 + ...dows 8 and Windows Server 2012 (24319).bes | 56 + ...ows Vista, Windows Server 2008 (24315).bes | 38 + ...ows 8, and Windows Server 2012 (24317).bes | 41 + ...R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes | 68 + .../Enable TRIM on Win7 for SSDs (1385).bes | 38 + .../Fixlets/Fixlets/Enable UAC (1377).bes | 43 + .../Enable Windows Automatic Updates (97).bes | 58 + ...pport - Unsupported Windows OS (25452).bes | 45 + ...Enforce Admin Users Compliance (25547).bes | 159 + ...nd Ransomware Files on C Drive (24331).bes | 35 + ...nd Ransomware Files on D Drive (24332).bes | 35 + ...nd Ransomware Files on E Drive (24333).bes | 35 + ...nd Ransomware Files on F Drive (24334).bes | 35 + ...nd Ransomware Files on G Drive (24336).bes | 35 + ...nd Ransomware Files on H Drive (24337).bes | 35 + ...nd Ransomware Files on I Drive (24338).bes | 35 + ...nd Ransomware Files on J Drive (24339).bes | 35 + ...nd Ransomware Files on K Drive (24340).bes | 35 + ...nd Ransomware Files on L Drive (24341).bes | 35 + ...nd Ransomware Files on M Drive (24342).bes | 35 + ...nd Ransomware Files on N Drive (24343).bes | 35 + ...nd Ransomware Files on O Drive (24344).bes | 35 + ...nd Ransomware Files on P Drive (24345).bes | 35 + ...nd Ransomware Files on X Drive (24346).bes | 35 + ...nd Ransomware Files on Y Drive (24347).bes | 35 + ...shortcut missing from Start Menu (741).bes | 51 + .../Fix Unquoted Registry Paths (24886).bes | 40 + .../Fixlets/Fixlets/Fix WMI Errors (3652).bes | 91 + ...and SSL 3.0 in Internet Explorer (652).bes | 36 + ...P Update for Computer and Reboot (651).bes | 36 + ... info to Registry (Policy) 1.1 (22387).bes | 166 + ...owerCFG Energy Report - Windows (6040).bes | 67 + .../Fixlets/Get AD Description (3755).bes | 86 + .../Fixlets/Get AD Location (3756).bes | 86 + ...12 R2, and Windows Server 2016 (24321).bes | 57 + ...12 R2, and Windows Server 2016 (24323).bes | 57 + ...12 R2, and Windows Server 2016 (24320).bes | 57 + ...12 R2, and Windows Server 2016 (24322).bes | 57 + ...ithout Elevation (Interactive) (26940).bes | 136 + ...ithout Elevation (Interactive) (26941).bes | 136 + ...NET Framework 2.0 Service Pack 2 (106).bes | 55 + ...all Microsoft .NET Framework 3.5 (104).bes | 58 + ...tall Microsoft .NET Framework 4 (3626).bes | 82 + ... new wifi certificate - Windows (6247).bes | 42 + ...pdate 1 TODO_ Add Relevance (6061).bes | 51 + ...stic Tool v2 Update 1 - Windows (6063).bes | 55 + ...Remote Desktop Users - Windows (22607).bes | 42 + ...orary Administrators - Windows (24153).bes | 808 ++++ ...er to Administrators - Windows (24405).bes | 41 + ...strators Temporarily - Windows (21369).bes | 101 + ...uthorized Requestors - Windows (24154).bes | 186 + ...Remote Desktop Users - Windows (24406).bes | 41 + ...orary Administrators - Windows (24155).bes | 807 ++++ ... to Authorized Files - Windows (21897).bes | 84 + ...uthorized Requestors - Windows (24156).bes | 187 + ...ze Application Usage - Windows (21122).bes | 152 + ... Blocks and Warnings - Windows (21336).bes | 250 + ... Configuration Probe - Windows (20701).bes | 78 + ...ypt Secondary Volume - Windows (21696).bes | 255 + ...ncrypt System Volume - Windows (23093).bes | 156 + ... to Active Directory - Windows (23097).bes | 75 + ...overy Password Probe - Windows (21335).bes | 118 + ...tem Drive Encryption - Windows (24097).bes | 56 + ...tem Drive Encryption - Windows (24111).bes | 54 + ...tem Drive Encryption - Windows (24112).bes | 53 + ...tificate Store Probe - Windows (24040).bes | 107 + ...s older than 14 days - Windows (24041).bes | 49 + ...s older than 30 days - Windows (24042).bes | 49 + ...s older than 60 days - Windows (24043).bes | 49 + ...ng Physical Presence - Windows (24044).bes | 54 + ... Owner Authorization - Windows (24113).bes | 57 + ... Owner Authorization - Windows (24114).bes | 57 + ...ched Applocker Rules - Windows (20716).bes | 116 + ...orary Administrators - Windows (24157).bes | 820 ++++ ...orary Administrators - Windows (24158).bes | 815 ++++ ... and Optimize Drives - Windows (23382).bes | 36 + ...pplication Usage Log - Windows (21052).bes | 35 + ...pplication Usage Log - Windows (21059).bes | 36 + ...nvoke - Disk Cleanup - Windows (21628).bes | 107 + ...Group Policy Refresh - Windows (22887).bes | 51 + ...ive Directory Domain - Windows (23387).bes | 99 + ... Kernel Kext Cache Reset - Mac (20530).bes | 39 + ...T Convert MBR to GPT - Windows (23810).bes | 79 + ... Validate MBR to GPT - Windows (23811).bes | 80 + ...wer Efficiency Probe - Windows (21716).bes | 48 + ...wer Efficiency Probe - Windows (21726).bes | 48 + ...sted Platform Module - Windows (23094).bes | 241 + ... from Administrators - Windows (24407).bes | 39 + ...uthorized Requestors - Windows (24159).bes | 185 + ...Remote Desktop Users - Windows (24408).bes | 41 + ...orary Administrators - Windows (24160).bes | 185 + ...uthorized Requestors - Windows (24161).bes | 184 + ...orary Administrators - Windows (24162).bes | 184 + ...t Local Group Policy - Windows (22647).bes | 51 + ... - Sync Client Clock - Windows (24110).bes | 37 + ...WMI Repository Reset - Windows (22648).bes | 57 + ...ed Credentials Probe - Windows (20768).bes | 422 ++ ...pdate Troubleshooter - Windows (21363).bes | 54 + ...Join Computer to domain - wmic (26947).bes | 88 + ... x64) and Windows Server 2008r2 (2592).bes | 96 + ...sable RTF processing in MS Word (3741).bes | 101 + ...dpoint Manager version 8.1.634.0 (153).bes | 88 + ...urity Platform version 8.1.634.0 (129).bes | 80 + ...o 80 MB via Local Group Policy (26933).bes | 110 + .../List Offline Files (PowerShell) (644).bes | 96 + .../Fixlets/Lock Screen - Windows (23995).bes | 40 + ...Lock computer multiple options (26856).bes | 66 + .../Locky malware detection (9275).bes | 41 + ...nection Server Names - Windows (23554).bes | 51 + ...d files on the C_ drive - v1.1 (24312).bes | 44 + ...t Logon - Disable Debug Logging (1410).bes | 50 + ...et Logon - Enable Debug Logging (1409).bes | 52 + .../Fixlets/Nuke IPv6 - Windows (27385).bes | 40 + ...lias for DIR command - Windows (20414).bes | 49 + .../Fixlets/Outlook Profile Reset (24867).bes | 47 + ...ers using Driverquery - Windows (6060).bes | 42 + ...ndows Update Results - Windows (23123).bes | 103 + ... Sleep Timeout - Windows Vista_7 (312).bes | 51 + ...set defaults to 35min - testing (1419).bes | 68 + ...date.log - Windows NOT WORKING (10608).bes | 50 + ...Pin Calc to Windows 7 Start Menu (677).bes | 79 + .../Pin Calc to Windows 7 Taskbar (678).bes | 79 + ...r Printnightmare vulnerability (26861).bes | 48 + ...older Rights (Prompt for Path) (26609).bes | 129 + ...shell Computer Rename (Prompt) (26604).bes | 55 + .../Registry.pol Corruption Fix (27373).bes | 45 + ...r Printnightmare vulnerability (26862).bes | 66 + ...and 3 and updates with msiexec (26634).bes | 108 + ...y - those not created by wizard (2528).bes | 39 + .../Fixlets/Remove XPS Viewer (648).bes | 93 + ...ast Man Standing_ Power Scheme (21436).bes | 63 + ...and deactivate Windows license (25208).bes | 41 + ...rom local Administrators group (24889).bes | 36 + .../Rename Windows Computer (1393).bes | 55 + .../Fixlets/Fixlets/Repair WMI (676).bes | 77 + ...ce IP in hosts file on Windows (26953).bes | 43 + ...Certificate - Enable Workaround (6286).bes | 112 + ...Roll Back_ MS11-021 (KB2501584) (1412).bes | 46 + ... Internet Explorer to version 9 (3706).bes | 35 + ...al Kerberos problem - Windows7+ (3783).bes | 58 + .../Rollback Patch Task_ KB971033 (26600).bes | 46 + .../Run a Full Disk Cleanup (6133).bes | 170 + ...ell Script - Windows - TEMPLATE (3860).bes | 58 + ...icrosoft product keys - Windows (3941).bes | 49 + ...dows Account Lockout_ 15_10_10 (27000).bes | 56 + ...t Profile Picture - Windows 10 (25579).bes | 54 + ...solution to Maximum Resolution (27420).bes | 471 ++ ...t Name to Sharing Name V2 - Mac (3649).bes | 59 + ... NOT depend on SMBv1 - Windows (23441).bes | 42 + .../Fixlets/Set MTU to 1400 (2456).bes | 34 + ...tzautoupdate to Auto - Windows (24613).bes | 46 + ... to DelayedAutoStart - Windows (24612).bes | 44 + ...autoupdate to demand - Windows (24611).bes | 44 + ...toupdate to disabled - Windows (24610).bes | 44 + .../Fixlets/Set Timezone - Windows (2613).bes | 365 ++ ...de Analytics Preview - Windows (21118).bes | 96 + ... Update KB917607 - WinHlp32.exe (1364).bes | 48 + ...art and Enable Windows Service (26632).bes | 45 + ...Start the DCOM Launcher Service (9282).bes | 36 + ...the RPC EndPoint Mapper Service (9283).bes | 36 + ...e Remote Procedure Call Service (9284).bes | 36 + ...art the Remote Registry Service (9286).bes | 36 + ...agement Instrumentation Service (9285).bes | 36 + ... disable Print Spooler service (26914).bes | 47 + .../System Restore Off _ Disable (20643).bes | 247 + .../TASK_ Change System Time (773).bes | 37 + ...ile Checker tool - SFC _scannow (6038).bes | 59 + ...napshot Service - VSS - Backups (6043).bes | 36 + ...Win10_2016) (TEST!!!) (export) (25565).bes | 196 + .../Take Screenshot - Windows (21898).bes | 368 ++ ...are Spooler Disable mitigation (26860).bes | 44 + .../Track Primary User v2.8 (2533).bes | 47 + ...nding Updates, and DISM Repair (27344).bes | 379 ++ ...ver 2016 _ Windows Server 2019 (26631).bes | 86 + ...gers (Trigger Start) - Windows (24614).bes | 47 + ...et-Explorer 11 (Windows 64BIT) (26938).bes | 83 + ...ain on Windows Computer - wmic (26948).bes | 37 + ...Unmount PST Files from Outlook (26642).bes | 134 + ...1.247.1082.0 - 64bit - Windows (24602).bes | 48 + ...ndows Experience Index - WinSAT (6045).bes | 46 + .../Fixlets/Upload DISM.txt (1049).bes | 52 + ...le Memory Leak in ITM OS Client (4013).bes | 77 + ...le Memory Leak in ITM OS Client (4014).bes | 49 + .../Fixlets/WUAUSERV Enable (21611).bes | 34 + ...ity service may not be running (22654).bes | 40 + ... AppIDSvc is stopped - Windows (22655).bes | 36 + ...orcement Mode is Set - Windows (20664).bes | 27 + ...enterprise versions of Windows (20223).bes | 28 + ...vent log size may be too small (20583).bes | 31 + ...on Unencrypted Drive - Windows (20584).bes | 31 + ...oo large to compress - Windows (23431).bes | 56 + ...e Injection may not be allowed (23558).bes | 31 + ...lder of System Drive - Windows (21631).bes | 47 + ...lder of System Drive - Windows (21632).bes | 48 + ...lder of System Drive - Windows (21633).bes | 48 + ...lder of System Drive - Windows (21634).bes | 48 + ...Root of System Drive - Windows (21635).bes | 50 + ...gging may be enabled - Windows (21636).bes | 29 + ...acing may be enabled - Windows (21637).bes | 29 + ...gging may be enabled - Windows (21638).bes | 28 + ...nually defined hosts - Win_Mac (20536).bes | 27 + ...use Installer errors - Windows (21687).bes | 124 + ...ty SA 00075 Exposure - Windows (24269).bes | 29 + ...stalled but may not be running (20225).bes | 29 + ...stalled but may not be running (20226).bes | 29 + ...stalled Side-by-Side - Windows (23734).bes | 42 + ...stalled Side-by-Side - Windows (23735).bes | 42 + ...stalled Side-by-Side - Windows (23818).bes | 4134 ++++++++++++++++ ...lled but not running - Windows (22649).bes | 39 + ...efault configuration - Windows (20537).bes | 27 + ... to High Performance - Windows (21429).bes | 27 + ...ssistance may not be installed (23559).bes | 39 + ...municated in 30 Days - Windows (21744).bes | 28 + ...-Protect is Disabled - Windows (21745).bes | 28 + ...e exceptions defined - Windows (21746).bes | 29 + ...ital signature state - Windows (20538).bes | 29 + ...f cached credentials - Windows (20631).bes | 28 + ... Assistance may not be allowed (23560).bes | 39 + ...nents can be removed - Windows (23819).bes | 43 + ...nents can be removed - Windows (23820).bes | 41 + ...nents can be removed - Windows (23821).bes | 43 + ...nents can be removed - Windows (23822).bes | 4135 +++++++++++++++++ ...ion may cause WU reboot prompt (20539).bes | 28 + ... in System Directory - Windows (21639).bes | 38 + ...sitory is very large - Windows (22650).bes | 37 + ...esponding to queries - Windows (22651).bes | 37 + ...ication during AV installation (20586).bes | 28 + ... be blocking Remote Assistance (23561).bes | 37 + .../Wifi + LAN Detect and Disable (24607).bes | 36 + .../Wifi + LAN Detect and enable (24608).bes | 36 + ...AGE1__Stage Installation Files (25518).bes | 92 + .../Win10-1803__STAGE2__Install (25519).bes | 134 + .../Win10-1803__STAGE3__Cleanup (25520).bes | 44 + ...AGE1__Stage Installation Files (25593).bes | 92 + .../Win10-1809__STAGE2__Install (25594).bes | 134 + .../Win10-1809__STAGE3__Cleanup (25595).bes | 45 + .../WinGet (WinGet method) (27387).bes | 48 + ...ws - New local user definition (27388).bes | 134 + ...Set Telemetry Level to _Basic_ (11671).bes | 47 + ...ty CVE 2021-36934 (TESTING) v2 (26867).bes | 88 + ...s 11 Upgrade Eligibility probe (26878).bes | 44 + ...staller 3.1 Redistributable (v2) (103).bes | 62 + ..., Windows Server 2012 R2 (x64) (22466).bes | 79 + ...indows PowerShell 2.0 Available (3964).bes | 98 + ...indows PowerShell 2.0 Available (3966).bes | 98 + ...Windows PowerShell 2.0 Available (634).bes | 91 + ...stall-Module (PS 5.0+ version) (26617).bes | 242 + .../Windows7810DeviceControl (24647).bes | 58 + ... Disable the MSDT URL Protocol (26935).bes | 37 + ... Disable the MSDT URL Protocol (26936).bes | 37 + .../dump DNS Cache - Windows (21333).bes | 50 + .../dump DNS Cache - Windows (9281).bes | 50 + ...Windows KMS key - Windows BETA (21368).bes | 67 + ...ML Editing Template Powershell (25582).bes | 110 + ...mplate XML Editing Template Powershell.bes | 110 + 563 files changed, 44549 insertions(+) create mode 100644 Sites/Linux Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes create mode 100644 Sites/Linux Management/Fixlets/Analyses/ESET Installed (76).bes create mode 100644 Sites/Linux Management/Fixlets/Analyses/Linux package info - RPM & DEB (2998050).bes create mode 100644 Sites/Linux Management/Fixlets/Analyses/SSH Public Keys (2998546).bes create mode 100644 Sites/Linux Management/Fixlets/Analyses/Shellshock (2994719).bes create mode 100644 Sites/Linux Management/Fixlets/Analyses/Ubuntu Available and Installed Packages (95).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/AV Antivirus Audit - Security Center - Windows (2996952).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Adobe Update Server - Windows (2994671).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Adobe Update Server Settings - Windows (2994676).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/All Users - Files, Shortcuts, RunKey - Windows (2994785).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Audit Policy - Windows (2998298).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/AutoAdminLogon audit - Windows (2994788).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/BitLockerEncryptionStatus (96).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Bitlocker - Audit - Windows (2998433).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Bitlocker - Compatibility - Windows (2998299).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Bitlocker - Key Protectors - Windows (2998300).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Bitlocker - Logs - Windows (2998437).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Bitlocker - Recovery Password - Windows (2998160).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998637).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998646).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Bitlocker Info - Windows (2994754).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Boot Up Analysis - Windows (2994790).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Certificate Audit - Windows (2994825).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Certificates - Windows (2998390).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/ChkDsk Audit - Windows (2994739).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Chocolatey Audit - Windows (2994810).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Client Clock Audit - Kerberos (2994647).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Configuration_ Microsoft Product Keys - Windows (2994759).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Credentials - Cached Login Creds - Windows (2998301).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2995862).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2998506).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/DNS Cache - Windows (2995861).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/DeviceQuery Results - Windows (2994799).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Devices (50).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Devices - Windows (2994709).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Distinguished Name of User (2998580).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Driver Audit - Windows (2994712).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Drivers - Windows (2998242).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/EMET - Configuration - Windows (2998302).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/EMET - Logs - Windows (2998438).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Event Log - Windows (2998243).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/File System Configuration Audit - Windows (2994783).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Firewall - Configuration - Windows (2998518).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Group Policy - Windows (2998487).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Groups - Windows (2998456).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Hard Drive Audit - Windows (2994706).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Hardware - Windows (2998512).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Hyper-V Guest - Windows (2998484).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Hyper-V Host - Windows (2998252).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/In-Place Upgrade Failure Information (2998651).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Inactive Users (2994557).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Intel vPro Audit - Windows (2995830).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Internet Explorer - Windows (2998393).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Internet Explorer Configuration - Windows (2994779).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Is Docked (74).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/KB5022842 on Win 2022 (2998680).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Laptop Battery Audit - Windows (2994755).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Local Admin_User Audit - Windows (2994547).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Local Client Administrators (78).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Lockout Events from DC (2998671).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Logged in users with local admin rights (2998581).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/MS17-010 verify (WannaCry &co.) (2998568).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 _ Windows Server 2008 R2 (2998556).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 _ Windows Server 2012 (2998557).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 _ Windows Server 2012 R2 (2998558).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista _ Windows Server 2008 (2998560).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/MSSQL (2994632).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Microsoft Deployment Toolkit - Windows (2998513).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Microsoft IIS - Windows (2998511).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Microsoft Office Software Protection Licensing Information - KMS - Windows (2994711).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Microsoft Remote Service Settings - Extended - RDP (2994595).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Microsoft SQL - Windows (2998470).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Missing Fixlets for Available Windows Features (12).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Network - Windows (2998477).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Network Info - Windows (2994562).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Operating System - Windows (2998541).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - Expanded (2994800).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - metric inspector (2994628).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/PageFile - Windows (2994592).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Pagefile - Win_Mac (2998262).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Pagefile - Windows (2998263).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Pending Restart - Windows (2998394).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Power - Configuration - Windows (2998419).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Power Plan Settings - Windows TODO (2994762).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/PowerShell x64 Status (19).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status (20).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status - Windows (2994540).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Primary User - Windows (2995831).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Printer Audit - Windows (2994742).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Printers - Windows (2998542).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Random Access Memory (RAM) Properties (Windows) - Extended (2994574).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Real-time Downtime Validation (2998602).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Configuration - Windows (2998523).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Event Logs - Windows (2998524).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Session Logs - Windows (2998525).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Windows (2998526).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Remote Desktop - Session Logs - Windows (2998527).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Restart information - Windows (2998686).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/SCCM - Windows (2998488).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/SNMP - Windows (2998459).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/SNMP Configuration (2994764).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/SPSS Installation and Licensing - Windows (2994757).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/SUA - Software Usage Analysis Info - Windows (2994536).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Scheduled Tasks - Windows (2998472).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Service Error (2994723).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Service Monitor - Windows (2998502).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Services - Windows (2998543).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Services info (2994720).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Shares - Windows (2998467).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Signs of possible Logon or GPO issues - Windows (2994789).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Stability - Windows (2998544).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Stability Audit - Windows (2994781).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/System File Checker results (2994541).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/System Security Analysis - Windows (2998604).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/TPM - Ownership Authorization - Windows (2998307).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/TPM - Windows (2998504).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/TSM Backup Audit - Windows.bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Temp Folders, Logs, etc... - Windows (2994784).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Temporary Administrators - Windows (2998399).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Missing Patches - Windows (2998276).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Slow Boot Slow Logon - Windows (2998474).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/UEFI - Windows (2998369).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Uninstall Analysis (54).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Users - Windows (2998571).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/VMWare Guest - Windows (2998379).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/VPN - Windows (2998351).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Values(BIOS & More) of wmi _root_dcim_sysman_ - Windows (Dell Command Monitor _ OMCI & others) (2994763).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Virtualization Based Security - Windows (2998545).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/WD - MSE - SCEP - Microsoft Antimalware Audit - Windows (2994634).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/WMI - Windows (2998282).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Configuration - Windows (2998309).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Logs - Windows (2998440).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Windows (2998311).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows 11 Upgrade Eligibility Information (2998656).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows Admin Users Compliance Status (2998597).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows Experience Index Results - WinVista and later (2994570).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows License Information (2998636).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows Power Scheme Settings (2994768).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows Software Protection Licensing Information - KMS - Windows (2998367).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows System Volume Size & Usage (2994588).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows Update & WSUS Audit (69).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows Update - WUSA - Errors while Installing Updates (2998673).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows Update check results - Windows (2998507).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows Updates - Windows (2998397).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/Windows Upgrades (2998608).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/WindowsUpdate.log Audit - Windows (2995914).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/dotNET Framework (2994589).bes create mode 100644 Sites/Windows Management/Fixlets/Analyses/powercfg energy report - Windows (2994793).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/AAC - Create a Public Desktop Shortcut for all users on Windows (25073).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS - set server - Windows (22632).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS over VPN - Windows (22633).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Add AD Domain to DNS Suffix Search List if missing - Windows (26706).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Add Current User to Remote Desktop Users Group (3794).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Add User to Local Administrators Group (3624).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Allow popups in Interent Explorer for a specific domain - www.domain.tld (715).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Apache Commons Text detection scan (Windows).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Applocker Configuration Template (25578).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/BCDedit Hypervisor Command (24885).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard (6218).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (6217).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/BigTweet Scheduled Task Setup v2.1 (6113).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/BigTweet v2.1 (6112).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Block KB 3114717 - MS Office Issues - Windows (9143).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Block Regsvr32 in Windows Firewall (20257).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Activate Workaround_ Disable ActiveX Download (26876).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Deactivate Workaround_ Disable ActiveX Download (26877).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/CVE-2021-44228 Log4j _ Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) (26898).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Change Built-in Administrator Password - Windows (9150).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Change Internet Explorer Start Page if unchanged from default (3802).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Change local user account password (27377).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Change local user account password - Windows (3670).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Change local user account password with verification - Windows (6076).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space (11930).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space.bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Close Magnify.exe - Windows (24573).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Application Identity Service - Automatic Start - Windows (20699).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows (20591).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Execution Max Size - 20mb - Windows (20592).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - EXE_DLL Max Size - 20mb - Windows (20593).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - MSI_Script Max Size - 20mb - Windows (20594).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows (20595).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows (20596).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Executables - Windows (20616).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Scripts - Windows (20617).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Default - Windows (20599).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows (20619).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows (20620).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20621).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows (20622).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows (20623).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows (20624).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Reset Local Rules - Windows (20625).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Add User Account - Windows (23677).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Disable - Windows (23678).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Audit All - Windows (20703).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Enforce All - Windows (20704).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows (20705).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows (20706).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows (20714).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows (20707).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows (20746).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20709).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows (20738).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows (20739).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows (20740).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows (20710).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows (20711).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows (20712).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Disable - Windows (20652).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Enable with UEFI Lock - Windows (20653).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Disable SMBv3 Compression - Windows (26668).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows (20801).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Mitigation Actions - Windows (20802).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations - Windows (20803).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows (20897).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows (21612).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows (20898).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Add 127.0.0.1 FQDN - Windows (23379).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Remove 127.0.0.1 FQDN - Windows (23380).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Reset to Default - Windows (23381).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Disable - Windows (20654).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Enable - Windows (20655).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Disable - Windows (20656).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Enable - Windows (20657).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Microsoft Remote Desktop - Enable RDP - Windows (23555).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Balanced - Windows (20557).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to High Performance - Windows (20559).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Power Saver - Windows (20561).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Presentation Mode - Windows (24032).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Microsoft Search Indexer - Windows (22915).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows (23032).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows (23033).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows (23034).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Remote Credential Guard - Enable - Windows (23808).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Config - Windows Activation - Set to KMS Activation - Windows (23579).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows - Turn on Synchronize with NTP server (2587).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows Update - Allow a Standard User to use Windows Update (2583).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later TODO (6047).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later (6067).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (3864).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (6044).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable Kerberos Logging - Windows (3782).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable NTFS Last Access Update - Windows (6041).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Fix console user column width settings - Windows -TODO_Testing (3865).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows (3928).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows (3927).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configuration_ Suppress Balloon Pop-Ups - Windows (3781).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (100).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (85).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Computer as _Always On_ (2570).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Disk Cleanup_ Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) (6035).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (632).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (74).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Internet Explorer Compatibility List for Currently Logged On User (647).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Registered Organization and Owner (86).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000 (3938).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000.bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ TcpTimedWaitDelay to 30 seconds (3937).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop (3974).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop.bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Create Desktop Shortcut (PowerShell) (25589).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Create Desktop shortcut in User Profile if missing (720).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Create LS alias for DIR command - Windows (24046).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Create _Open with Notepad_ Context Menu item - Windows (25531).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Custom Patch_Uninstall KB3004394 to clear relevance for KB3024777 (3979).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Custom Task - Add account to local administrators (3656).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) (3914).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/DISM Inventory (1420).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Delete Identity Finder temp file if one exists over 2GB in size (1415).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Delete NAME_OF_NETWORK WiFi Profile - Windows (6171).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Delete large Dell Driver folder from systems with low free space (721).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Delete start menu shortcuts containing _uninstall_ (3657).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Deploy - Windows Management Framework - 4.0 - Windows (23565).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.5 (2531).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.6 (2539).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Designate ALWAYS On Profile (2611).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Device Control (24645).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Administrator Account (99).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable AutoAdminLogon (740).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable IE Compatibility Mode for All Websites for Currently Logged On User (646).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Microsoft CEIP (3899).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (108).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (642).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable NetBios On All Network Adaptors (Requires Restart) (27372).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Remote Desktop (RDP) (659).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24318).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24314).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Service - Windows (23443).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24316).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Skype Auto-update - Improved (3662).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Skype start with windows (727).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable UAC (1376).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable UAC (26610).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Wake-from-Standby by Magic Packet - Windows XP_Vista_Win7_2008 and Mac OS 10.4_10.5_10.6_10.7 (310).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable Windows Update (26611).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (2549).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (3873).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Diskpart Repartition - Shrink C_ Partition & Create M_ Partition (25433).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable Administrator Account (615).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable IE Compatibility Mode for All Websites for Currently Logged On User (645).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features (20682).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (107).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (641).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable NetFx3 - .NET 2 & 3 - Windows Features (22635).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (3872).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (RDP) (2458).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24319).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24315).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24317).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable TRIM on Win7 for SSDs (1385).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable UAC (1377).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enable Windows Automatic Updates (97).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/End of Support - Unsupported Windows OS (25452).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Enforce Admin Users Compliance (25547).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on C Drive (24331).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on D Drive (24332).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on E Drive (24333).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on F Drive (24334).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on G Drive (24336).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on H Drive (24337).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on I Drive (24338).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on J Drive (24339).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on K Drive (24340).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on L Drive (24341).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on M Drive (24342).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on N Drive (24343).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on O Drive (24344).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on P Drive (24345).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on X Drive (24346).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on Y Drive (24347).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Fix Skype shortcut missing from Start Menu (741).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Fix Unquoted Registry Paths (24886).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Fix WMI Errors (3652).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer (652).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Force GP Update for Computer and Reboot (651).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 (22387).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Generate PowerCFG Energy Report - Windows (6040).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Get AD Description (3755).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Get AD Location (3756).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24321).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24323).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24320).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24322).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26940).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26941).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 2.0 Service Pack 2 (106).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 3.5 (104).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 4 (3626).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Install new wifi certificate - Windows (6247).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Install_ Debug Diagnostic Tool v2 Update 1 TODO_ Add Relevance (6061).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Install_Update_ Debug Diagnostic Tool v2 Update 1 - Windows (6063).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows (22607).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows (24153).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators - Windows (24405).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators Temporarily - Windows (21369).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Authorized Requestors - Windows (24154).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Remote Desktop Users - Windows (24406).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Temporary Administrators - Windows (24155).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Gold Image Hashes to Authorized Files - Windows (21897).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Permanent Administrators to Authorized Requestors - Windows (24156).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Analyze Application Usage - Windows (21122).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Applocker Rule Creation From Blocks and Warnings - Windows (21336).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Configuration Probe - Windows (20701).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt Secondary Volume - Windows (21696).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt System Volume - Windows (23093).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows (23097).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Probe - Windows (21335).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Refresh System Drive Encryption - Windows (24097).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Resume System Drive Encryption - Windows (24111).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Suspend System Drive Encryption - Windows (24112).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Certificate Store Probe - Windows (24040).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 14 days - Windows (24041).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 30 days - Windows (24042).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 60 days - Windows (24043).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using Physical Presence - Windows (24044).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using provided Owner Authorization - Windows (24113).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using saved Owner Authorization - Windows (24114).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Commit Cached Applocker Rules - Windows (20716).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators to Temporary Administrators - Windows (24157).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows (24158).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Defragement and Optimize Drives - Windows (23382).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Application Usage Log - Windows (21052).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Legacy Application Usage Log - Windows (21059).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Disk Cleanup - Windows (21628).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Group Policy Refresh - Windows (22887).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Join Active Directory Domain - Windows (23387).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Kernel Kext Cache Reset - Mac (20530).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Convert MBR to GPT - Windows (23810).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Validate MBR to GPT - Windows (23811).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21716).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21726).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Provision Trusted Platform Module - Windows (23094).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Administrators - Windows (24407).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Authorized Requestors - Windows (24159).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Remote Desktop Users - Windows (24408).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Temporary Administrators - Windows (24160).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Authorized Requestors - Windows (24161).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Temporary Administrators - Windows (24162).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Reset Local Group Policy - Windows (22647).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Sync Client Clock - Windows (24110).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - WMI Repository Reset - Windows (22648).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Cached Credentials Probe - Windows (20768).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Update Troubleshooter - Windows (21363).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Join Computer to domain - wmic (26947).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/KB2731771_ New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 (2592).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/KB2953095 - Disable RTF processing in MS Word (3741).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 (153).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 (129).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy (26933).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/List Offline Files (PowerShell) (644).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Lock Screen - Windows (23995).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Lock computer multiple options (26856).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Locky malware detection (9275).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Log Unique SMBv1 Connection Server Names - Windows (23554).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Look for Wanna Cry encrypted files on the C_ drive - v1.1 (24312).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Net Logon - Disable Debug Logging (1410).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Net Logon - Enable Debug Logging (1409).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Nuke IPv6 - Windows (27385).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/OLDER Version_ Create LS alias for DIR command - Windows (20414).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Outlook Profile Reset (24867).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Output Drivers using Driverquery - Windows (6060).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Output Windows Update Results - Windows (23123).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7 (312).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7_8 - altered to set defaults to 35min - testing (1419).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING (10608).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Start Menu (677).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Taskbar (678).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/PointAndPrint Mitigation for Printnightmare vulnerability (26861).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Powershell - Assign System Account Folder Rights (Prompt for Path) (26609).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Powershell Computer Rename (Prompt) (26604).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Registry.pol Corruption Fix (27373).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/RemotePrint Disable Mitigation for Printnightmare vulnerability (26862).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Remove MSXML 4.0 SP2 and 3 and updates with msiexec (26634).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Remove Scheduled Wake from Standby - those not created by wizard (2528).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Remove XPS Viewer (648).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Remove _Last Man Standing_ Power Scheme (21436).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Remove and deactivate Windows license (25208).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Remove logged in user from local Administrators group (24889).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Rename Windows Computer (1393).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Repair WMI (676).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Replace IP in hosts file on Windows (26953).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Revoke eDellRoot Certificate - Enable Workaround (6286).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Roll Back_ MS11-021 (KB2501584) (1412).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Rollback Internet Explorer to version 9 (3706).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB2871997 - Fix potential Kerberos problem - Windows7+ (3783).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB971033 (26600).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Run a Full Disk Cleanup (6133).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Run_ PowerShell Script - Windows - TEMPLATE (3860).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Run_ produkey - recover Microsoft product keys - Windows (3941).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Secedit Example_ Windows Account Lockout_ 15_10_10 (27000).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set Default Profile Picture - Windows 10 (25579).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set Display Resolution to Maximum Resolution (27420).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set Hostname and Local Subnet Name to Sharing Name V2 - Mac (3649).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set LanmanWorkstation service to NOT depend on SMBv1 - Windows (23441).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set MTU to 1400 (2456).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to Auto - Windows (24613).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to DelayedAutoStart - Windows (24612).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to demand - Windows (24611).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to disabled - Windows (24610).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set Timezone - Windows (2613).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows (21118).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Software Distribution - Deploy_ Windows Update KB917607 - WinHlp32.exe (1364).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Start and Enable Windows Service (26632).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Start the DCOM Launcher Service (9282).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Start the RPC EndPoint Mapper Service (9283).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Start the Remote Procedure Call Service (9284).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Start the Remote Registry Service (9286).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Start the Windows Management Instrumentation Service (9285).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Stop and disable Print Spooler service (26914).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/System Restore Off _ Disable (20643).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/TASK_ Change System Time (773).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Run System File Checker tool - SFC _scannow (6038).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Volume Snapshot Service - VSS - Backups (6043).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10_2016) (TEST!!!) (export) (25565).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Take Screenshot - Windows (21898).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Testing PrintNightmare Spooler Disable mitigation (26860).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Track Primary User v2.8 (2533).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Troubleshooting_ Reset Windows Update, Pending Updates, and DISM Repair (27344).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/UPDATE_ Microsoft .NET Framework 4.8 Available - Windows 7 SP1 _ Windows 8.1 _ Windows 10 _ Windows Server 2008 R2 SP1 _ Windows Server 2012 _ Windows Server 2012 R2 _ Windows Server 2016 _ Windows Server 2019 (26631).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/UnSet Service tzautoupdate triggers (Trigger Start) - Windows (24614).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Uninstall_ Internet-Explorer 11 (Windows 64BIT) (26938).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Unjoin Domain on Windows Computer - wmic (26948).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Unmount PST Files from Outlook (26642).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows (24602).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Update Windows Experience Index - WinSAT (6045).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Upload DISM.txt (1049).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4013).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4014).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/WUAUSERV Enable (21611).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Application Identity service may not be running (22654).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but AppIDSvc is stopped - Windows (22655).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows (20664).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker cannot run on non-enterprise versions of Windows (20223).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker maximum event log size may be too small (20583).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows (20584).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - CBS Log files are too large to compress - Windows (23431).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Control+Alt+Delete Injection may not be allowed (23558).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Dell_Drivers folder of System Drive - Windows (21631).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Drivers folder of System Drive - Windows (21632).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Logs folder of System Drive - Windows (21633).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in adobeTemp folder of System Drive - Windows (21634).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Folder _Program_ exists in Root of System Drive - Windows (21635).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug logging may be enabled - Windows (21636).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug tracing may be enabled - Windows (21637).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Service debug logging may be enabled - Windows (21638).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Hosts files contains manually defined hosts - Win_Mac (20536).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Incorrect User Shell Folders values may cause Installer errors - Windows (21687).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows (24269).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee Endoint Security is installed but may not be running (20225).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee VirusScan Enterprise is installed but may not be running (20226).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows (23734).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows (23735).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows (23818).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - NXLog is installed but not running - Windows (22649).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Pagefile has non-default configuration - Windows (20537).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Power Policy set to High Performance - Windows (21429).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Remote Assistance may not be installed (23559).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows (21744).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec File System Auto-Protect is Disabled - Windows (21745).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec has recursive whole drive exceptions defined - Windows (21746).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - System ignores driver's digital signature state - Windows (20538).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - System is set to store a large number of cached credentials - Windows (20631).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Unsolicited Remote Assistance may not be allowed (23560).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2003 Components can be removed - Windows (23819).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2007 Components can be removed - Windows (23820).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2010 Components can be removed - Windows (23821).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2013 Components can be removed - Windows (23822).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Update installation may cause WU reboot prompt (20539).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository backups exist in System Directory - Windows (21639).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository is very large - Windows (22650).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - WMI is not responding to queries - Windows (22651).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Windows 10 Security Center may present notification during AV installation (20586).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Warning - Windows Firewall may be blocking Remote Assistance (23561).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and Disable (24607).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and enable (24608).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE1__Stage Installation Files (25518).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE2__Install (25519).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE3__Cleanup (25520).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE1__Stage Installation Files (25593).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE2__Install (25594).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE3__Cleanup (25595).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/WinGet (WinGet method) (27387).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows - New local user definition (27388).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows 10 Configuration__ Set Telemetry Level to _Basic_ (11671).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 (26867).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows 11 Upgrade Eligibility probe (26878).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows Installer 3.1 Redistributable (v2) (103).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) (22466).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3964).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3966).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (634).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) (26617).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Windows7810DeviceControl (24647).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Workaround - Disable the MSDT URL Protocol (26935).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/Workaround Undo - Disable the MSDT URL Protocol (26936).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (21333).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (9281).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/set Windows KMS key - Windows BETA (21368).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell (25582).bes create mode 100644 Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell.bes diff --git a/Sites/Linux Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes b/Sites/Linux Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes new file mode 100644 index 000000000..4a80fec3b --- /dev/null +++ b/Sites/Linux Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes @@ -0,0 +1,34 @@ + + + + + Apache Commons Text Scan Analysis + This is Community Content. When you use these solutions, it is incumbent on your organization to test any solutions provided across the broadest available system base including various OS, storage solutions, and application inventory. +

+

Please see the Community Solution Testing Statement

+

This Analysis retrieves results of a filesystem scan to attempt detecting Apache Commons Text versions that may be vulnerable to one of the following vulnerabilty CVE-2022-42889 reported in October 2022:

+ +

This Analysis attempts to detect the presence and versions of Apache Commons Text java library, without distinction between vulnerable or updated versions.  These results should be considered only a starting point in determining whether a system is actually vulnerable, along with other information such as the version of Java Virtual Machine and specific application or code configurations as referenced in the security bulletins above.

]]>
+ if exists property "in proxy agent context" then not in proxy agent context else true + = "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite")))]]> + + x-fixlet-modification-time + Tue, 18 Oct 2022 16:15:23 +0000 + + BESC + (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) + number of (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) + unique values of (unique value of following texts of lasts "-" of preceding texts of lasts ".jar" of (it as lowercase) | "unknown") of lines whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) +
+
diff --git a/Sites/Linux Management/Fixlets/Analyses/ESET Installed (76).bes b/Sites/Linux Management/Fixlets/Analyses/ESET Installed (76).bes new file mode 100644 index 000000000..a804960b0 --- /dev/null +++ b/Sites/Linux Management/Fixlets/Analyses/ESET Installed (76).bes @@ -0,0 +1,33 @@ + + + + + ESET Installed + This analysis will show Machines that have ESET installed

+

pulls back

+
    +
  1. signature of AV db
  2. +
  3. version of NOD32
  4. +
  5. Age of AV db
+

 

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry + + x-fixlet-modification-time + Mon, 04 Feb 2013 11:38:54 +0000 + + BES + value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry + current date - date (( last 2 of (preceding text of first ")" of (following text of first "(" of (value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry as string))) & " " & first 3 of (month (last 2 of first 6 of (preceding text of first ")" of (following text of first "(" of (value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry as string))) as integer) as string) & " " & first 4 of (preceding text of first ")" of (following text of first "(" of (value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry as string))))) + value "ProductVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry +
+
diff --git a/Sites/Linux Management/Fixlets/Analyses/Linux package info - RPM & DEB (2998050).bes b/Sites/Linux Management/Fixlets/Analyses/Linux package info - RPM & DEB (2998050).bes new file mode 100644 index 000000000..831972dc9 --- /dev/null +++ b/Sites/Linux Management/Fixlets/Analyses/Linux package info - RPM & DEB (2998050).bes @@ -0,0 +1,27 @@ + + + + + Linux package info - RPM & DEB + This analysis gathers data from both RPMs and Debianpackages + (if exists properties whose(it as string contains "debianpackage:") then TRUE else if exists properties whose(it as string contains "rpm:") then TRUE else ERROR "The operators are not defined.") + + x-fixlet-modification-time + Fri, 06 May 2016 21:46:52 +0000 + + BESC + packages whose(if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") + (it as string) of versions of packages whose("yum" = name of it AND (if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE)) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") + (it as string) of versions of packages whose("apt" = name of it AND (if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE)) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") + packages whose( ("apt" = name of it OR "aptitude" = name of it OR "yum" = name of it OR "emerge" = name of it OR "pacman" = name of it OR "zypp" = name of it OR "dnf" = name of it OR "urpmi" = name of it) AND (if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE)) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") + + diff --git a/Sites/Linux Management/Fixlets/Analyses/SSH Public Keys (2998546).bes b/Sites/Linux Management/Fixlets/Analyses/SSH Public Keys (2998546).bes new file mode 100644 index 000000000..129cf2446 --- /dev/null +++ b/Sites/Linux Management/Fixlets/Analyses/SSH Public Keys (2998546).bes @@ -0,0 +1,24 @@ + + + + + SSH Public Keys + + exists files "id_rsa.pub" of folders ".ssh" of home directory folders of users + + x-fixlet-modification-time + Tue, 18 Apr 2017 23:07:23 +0000 + + BESC + unique values whose(it as trimmed string != "") of lines of files "id_rsa.pub" of folders ".ssh" of home directory folders of users + + diff --git a/Sites/Linux Management/Fixlets/Analyses/Shellshock (2994719).bes b/Sites/Linux Management/Fixlets/Analyses/Shellshock (2994719).bes new file mode 100644 index 000000000..6b5de3d1a --- /dev/null +++ b/Sites/Linux Management/Fixlets/Analyses/Shellshock (2994719).bes @@ -0,0 +1,25 @@ + + + + + Shellshock + This will look for the vulnerable version of bash in RHEL 5/6/7 x64 systems. This is fairly simple to modify if you are testing for a different distro or architecture. + exists file "/etc/redhat-release" + + x-fixlet-modification-time + Mon, 29 Sep 2014 00:41:37 +0000 + + BESC + rpm version record of package "bash" of rpm + ((exists package "bash" whose (rpm version record of it < rpm package version record "4.1.2-15.el6_5.2" AND rpm version record of it > rpm package version record "4.1.0-0.el1_0.0" AND architecture of it = "x86_64") of it AND (not exists package "bash" whose (rpm version record of it >= rpm package version record "4.1.2-15.el6_5.2" AND architecture of it = "x86_64") of it)) OR (exists package "bash" whose (rpm version record of it < rpm package version record "3.2-33.el5_11.4" AND rpm version record of it > rpm package version record "3.2-0.el1_0.0" AND architecture of it = "x86_64") of it AND (not exists package "bash" whose (rpm version record of it >= rpm package version record "3.2-33.el5_11.4" AND architecture of it = "x86_64") of it)) OR (exists package "bash" whose (rpm version record of it < rpm package version record "4.2.45-5.el7_0.4" AND rpm version record of it > rpm package version record "4.2.0-0.el1_0.1" AND architecture of it = "x86_64") of it AND (not exists package "bash" whose (rpm version record of it >= rpm package version record "4.2.45-5.el7_0.4" AND architecture of it = "x86_64") of it))) of rpm + + diff --git a/Sites/Linux Management/Fixlets/Analyses/Ubuntu Available and Installed Packages (95).bes b/Sites/Linux Management/Fixlets/Analyses/Ubuntu Available and Installed Packages (95).bes new file mode 100644 index 000000000..b02100141 --- /dev/null +++ b/Sites/Linux Management/Fixlets/Analyses/Ubuntu Available and Installed Packages (95).bes @@ -0,0 +1,26 @@ + + + + + Ubuntu Available and Installed Packages + Using our package inventoring task... this analysis will pull in results making them available via WebReports + name of operating system contains "Ubuntu" + exists file "availableApps.txt" of parent folder of client OR exists file "installedApps.txt" of parent folder of client + + x-fixlet-modification-time + Wed, 01 May 2013 02:48:02 +0000 + + BESC + if exists file "installedApps.txt" of parent folder of client then lines of file "installedApps.txt" of parent folder of client else "<missing file>" + if exists file "availableApps.txt" of parent folder of client then lines of file "availableApps.txt" of parent folder of client else "<missing file>" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/AV Antivirus Audit - Security Center - Windows (2996952).bes b/Sites/Windows Management/Fixlets/Analyses/AV Antivirus Audit - Security Center - Windows (2996952).bes new file mode 100644 index 000000000..38ed7f0b5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/AV Antivirus Audit - Security Center - Windows (2996952).bes @@ -0,0 +1,27 @@ + + + + + AV Antivirus Audit - Security Center - Windows + This analysis should identify all AV products registered with the Windows Security Center APIs.

+

The `ProductState` should be a bit set of some sort that contains info about the state of the AV products detected.

]]>
+ windows of operating system + + x-fixlet-modification-time + Wed, 20 Apr 2016 05:20:26 +0000 + + BESC + unique values of string values of selects "displayname from AntiVirusProduct" of (if exists (wmis "root\SecurityCenter2") then (wmis "root\SecurityCenter2") else (wmis "root\SecurityCenter")) + unique values of (string value of property "displayName" of it & ": state=" & string value of property "productState" of it) of select objects "displayName,productState from AntiVirusProduct" of wmis "root\SecurityCenter2" + ( concatenations ", " of following texts of firsts "True, " of (it as string) of (true, (it) ) of properties whose(it as string does not start with "__") of it) of select objects "* from AntiVirusProduct" of (wmis "root\SecurityCenter";wmis "root\SecurityCenter2") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server - Windows (2994671).bes b/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server - Windows (2994671).bes new file mode 100644 index 000000000..cd1217ae8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server - Windows (2994671).bes @@ -0,0 +1,34 @@ + + + + + Adobe Update Server - Windows + This analysis reports on the information about the configured Adobe Update Server

+

 

+

References:

+

http://helpx.adobe.com/creative-cloud/packager/update-server-setup-tool.html

+

http://helpx.adobe.com/creative-cloud/packager/provisioning-toolkit-enterprise.html

+

http://helpx.adobe.com/creative-cloud/packager/preparing-deploy.html

+

http://helpx.adobe.com/creative-cloud/packager/creative-cloud-packager.html

+

http://www.regexr.com/395i4

+

http://www.regexr.com/395de

+

 

]]>
+ windows of operating system + exists lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders + + x-fixlet-modification-time + Wed, 16 Jul 2014 22:12:15 +0000 + + BESC + lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server Settings - Windows (2994676).bes b/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server Settings - Windows (2994676).bes new file mode 100644 index 000000000..44d360dfa --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server Settings - Windows (2994676).bes @@ -0,0 +1,34 @@ + + + + + Adobe Update Server Settings - Windows + This analysis reports on the information about the configured Adobe Update Server

+

 

+

References:

+

http://helpx.adobe.com/creative-cloud/packager/update-server-setup-tool.html

+

http://helpx.adobe.com/creative-cloud/packager/provisioning-toolkit-enterprise.html

+

http://helpx.adobe.com/creative-cloud/packager/preparing-deploy.html

+

http://helpx.adobe.com/creative-cloud/packager/creative-cloud-packager.html

+

http://www.regexr.com/395i4

+

http://www.regexr.com/395de

+

 

]]>
+ windows of operating system + exists lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders + + x-fixlet-modification-time + Wed, 16 Jul 2014 23:19:44 +0000 + + BESC + lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/All Users - Files, Shortcuts, RunKey - Windows (2994785).bes b/Sites/Windows Management/Fixlets/Analyses/All Users - Files, Shortcuts, RunKey - Windows (2994785).bes new file mode 100644 index 000000000..d2724101d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/All Users - Files, Shortcuts, RunKey - Windows (2994785).bes @@ -0,0 +1,33 @@ + + + + + All Users - Files, Shortcuts, RunKey - Windows +  

+

The latest version of this analysis is found here: http://bigfix.me/analysis/details/2994608

+

See the task "Delete start menu shortcuts containing "uninstall"" to delete the shortcuts found in the property "All Users Start Menu "Uninstall" shortcuts" of this analysis. The task is found here: http://bigfix.me/fixlet/details/3657

]]>
+ windows of operating system + + x-fixlet-modification-time + Wed, 06 May 2015 16:34:10 +0000 + + BESC + unique values whose(it != "") of (it as string as trimmed string) of values "Common Desktop" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries) + names whose(it as lowercase != "desktop.ini") of files of folders (unique values whose(it != "") of (it as string as trimmed string) of values "Common Desktop" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) + unique values whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries) + (following text of first (unique value whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries) & "\") of it) of pathnames of descendants whose(name of it as lowercase ends with ".lnk") of folders (unique values whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) + (following text of first ((unique value whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) & "\") of it) of pathnames of descendants whose(name of it as lowercase ends with ".lnk" AND name of it as lowercase contains "uninstall") of folders (unique values whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) + unique values of (preceding text of last "%00" of it | it) of (it as string as trimmed string) whose(it != "") of values of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" of (x64 registries; x32 registries) + unique values of (preceding text of last "%00" of it | it) of (it as string as trimmed string) whose(it != "") of values of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" of (x64 registries; x32 registries) + (unique values whose(it != "") of (preceding text of last "%00" of it | it) of (it as string as trimmed string) of values of keys "Software\Microsoft\Windows\CurrentVersion\Run" of keys of keys "HKEY_USERS" of (x64 registries; x32 registries)) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes b/Sites/Windows Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes new file mode 100644 index 000000000..4a80fec3b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes @@ -0,0 +1,34 @@ + + + + + Apache Commons Text Scan Analysis + This is Community Content. When you use these solutions, it is incumbent on your organization to test any solutions provided across the broadest available system base including various OS, storage solutions, and application inventory. +

+

Please see the Community Solution Testing Statement

+

This Analysis retrieves results of a filesystem scan to attempt detecting Apache Commons Text versions that may be vulnerable to one of the following vulnerabilty CVE-2022-42889 reported in October 2022:

+ +

This Analysis attempts to detect the presence and versions of Apache Commons Text java library, without distinction between vulnerable or updated versions.  These results should be considered only a starting point in determining whether a system is actually vulnerable, along with other information such as the version of Java Virtual Machine and specific application or code configurations as referenced in the security bulletins above.

]]>
+ if exists property "in proxy agent context" then not in proxy agent context else true + = "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite")))]]> + + x-fixlet-modification-time + Tue, 18 Oct 2022 16:15:23 +0000 + + BESC + (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) + number of (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) + unique values of (unique value of following texts of lasts "-" of preceding texts of lasts ".jar" of (it as lowercase) | "unknown") of lines whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Audit Policy - Windows (2998298).bes b/Sites/Windows Management/Fixlets/Analyses/Audit Policy - Windows (2998298).bes new file mode 100644 index 000000000..cf190181b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Audit Policy - Windows (2998298).bes @@ -0,0 +1,46 @@ + + + + + Audit Policy - Windows + This Analysis provides information on the current Windows Audit Policy on the system.

+

Policies queried include:

+
    +
  1. Account Lockout
  2. +
  3. Account Password
  4. +
  5. Audit Logging for Accounts
  6. +
  7. Audit Logging for Object Access
  8. +
  9. Audit Logging for Policy Changes
  10. +
  11. Audit Logging for Privilege Use
  12. +
  13. Audit Logging for System Policies
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + BESC + password history length of security database + minimum password length of security database + minimum password age of security database + maximum password age of security database | error "none" + force logoff interval of security database | "none" + account lockout threshold of security database + account lockout observation window of security database + account lockout duration of security database + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of account logon category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of account management category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of detailed tracking category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of ds access category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of logon logoff category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of object access category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of policy change category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of privilege use category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of system category of audit policy +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/AutoAdminLogon audit - Windows (2994788).bes b/Sites/Windows Management/Fixlets/Analyses/AutoAdminLogon audit - Windows (2994788).bes new file mode 100644 index 000000000..c8a3cec13 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/AutoAdminLogon audit - Windows (2994788).bes @@ -0,0 +1,28 @@ + + + + + AutoAdminLogon audit - Windows + + windows of operating system + = "5.0"]]> + (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" whose(value "AutoAdminLogon" of it as string as trimmed string as integer = 1) of (x64 registries; x32 registries)) + + x-fixlet-modification-time + Wed, 06 May 2015 16:48:28 +0000 + + BESC + (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" whose(value "AutoAdminLogon" of it as string as trimmed string as integer = 1) of (x64 registries; x32 registries)) + unique values whose(it != "") of (it as string as trimmed string) of values "DefaultUserName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" of (x64 registries; x32 registries) + lengths of unique values whose(it != "") of (it as string as trimmed string) of values "DefaultPassword" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" of (x64 registries; x32 registries) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/BitLockerEncryptionStatus (96).bes b/Sites/Windows Management/Fixlets/Analyses/BitLockerEncryptionStatus (96).bes new file mode 100644 index 000000000..84833623c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/BitLockerEncryptionStatus (96).bes @@ -0,0 +1,26 @@ + + + + + BitLockerEncryptionStatus + "Microsoft-Windows-BitLocker-Driver"]]> + true + + x-fixlet-modification-time + Thu, 02 May 2013 14:05:58 +0000 + + SCVM + times generated of records whose ((source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase AND event id of it = 24577)) of system event log + times generated of records whose ((source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase AND event id of it = 24579)) of system event log + times generated of records whose ((source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase AND event id of it = 24636)) of system event log + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Audit - Windows (2998433).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Audit - Windows (2998433).bes new file mode 100644 index 000000000..be4081fae --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Audit - Windows (2998433).bes @@ -0,0 +1,35 @@ + + + + + Bitlocker - Audit - Windows + This Analysis provides information on the current Bitlocker status on the system.

+

This analysis does not provide the drive letter alongside each property which means that the first row for each property (where applicable) should correspond to the same volume.

+

This analysis is only applicable on computers that are Bitlocker capable.

+

This analysis uses information provided by the Bitlocker Configuration Probe: Invoke - Bitlocker Configuration Probe - Windows

+

Credit, kudos, and compliments to jgstew for providing the basis for this: https://www.bigfix.me/analysis/details/2994754

+

Credit, kudos, and compliments to geeksikh for providing the encryption started and finished properties: https://bigfix.me/analysis/details/96

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> + BESC + number of select objects ("* from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + string values of selects ("DriveLetter from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + tuple string items (integer values of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Protection Off, Protection On, Protection Unknown" + tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "EncryptionMethod") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "N/A, AES 128 With Diffuser, AES 256 With Diffuser, AES 128, AES 256" + tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "ConversionStatus") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Fully Decrypted, Fully Encrypted, Encryption In Progress, Decryption In Progress, Encryption Paused, Decryption Paused" + (selects ("* from win32_EncryptableVolume") whose(name of it = "VolumeType") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") + (preceding text of first "-" of name of it, (it as trimmed string) of following text of first ":" of (concatenations "" of substrings separated by "%00" of it as trimmed string) whose (it contains "Conversion Status") of lines of it) of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client + (preceding text of first "-" of name of it, (it as trimmed string) of following text of first ":" of (concatenations "" of substrings separated by "%00" of it as trimmed string) whose (it contains "Percentage Encrypted") of lines of it) of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Compatibility - Windows (2998299).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Compatibility - Windows (2998299).bes new file mode 100644 index 000000000..588164f51 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Compatibility - Windows (2998299).bes @@ -0,0 +1,23 @@ + + + + + Bitlocker - Compatibility - Windows + Provides information on whether or not the OS is compatible with Bitlocker and whether the WMI node required for Bitlocker exists on the system.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + BESC + (windows of operating system) AND (version of operating system >= "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) + if (exists WMI "root\CIMv2\Security\MicrosoftVolumeEncryption") then true else false +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Key Protectors - Windows (2998300).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Key Protectors - Windows (2998300).bes new file mode 100644 index 000000000..de0b7a3e5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Key Protectors - Windows (2998300).bes @@ -0,0 +1,25 @@ + + + + + Bitlocker - Key Protectors - Windows + This analysis provides the key protectors protecting each bitlocker encrypted volume.

+

This analysis relies on the information provided by the Fixlet: Invoke - Bitlocker Configuration Probe - Windows

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists files whose (name of it contains "Status") of folder "Bitlocker" of folder "__Global" of data folder of client + BESC + (preceding text of first "-" of name of it , concatenation "" of substrings separated by "%00" of (lines of it as string) contains "TPM") of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client + (preceding text of first "-" of name of it , concatenation "" of substrings separated by "%00" of (lines of it as string) contains "Numerical Password") of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Logs - Windows (2998437).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Logs - Windows (2998437).bes new file mode 100644 index 000000000..bfa6af47e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Logs - Windows (2998437).bes @@ -0,0 +1,23 @@ + + + + + Bitlocker - Logs - Windows + Provides logs from the system event log related to Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + if (exists WMI "root\CIMv2\Security\MicrosoftVolumeEncryption") then true else false + exists (tuple string items (integer values of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Protection Off, Protection On, Protection Unknown") whose (it = "Protection On") + BESC + (time generated of it, description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) whose (source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase) of system event log +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Recovery Password - Windows (2998160).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Recovery Password - Windows (2998160).bes new file mode 100644 index 000000000..f5c085990 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Recovery Password - Windows (2998160).bes @@ -0,0 +1,25 @@ + + + + + Bitlocker - Recovery Password - Windows + Provides the recovery password for locally encrypted bitlocker drives configured to use a recovery password. This is separate from a pin or password -- a recovery password is a hard-coded value that allows a technician to unlock the drive.

+

This analysis requires Fixlet: Invoke - Bitlocker Recovery Password Probe - Windows to be run on the device before it can retrieve the recovery password.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists (file whose (name of it contains "RecoveryPwd") of folder "BitLocker" of folder "__Global" of data folder of client) or (exists file "Enable.log" of folder "__Global\Bitlocker" of data folder of client) + BESC + (preceding text of first "-" of name of it & ":", following text of first "%ff%fe" of concatenations "" of substrings separated by "%00" of lines of it | line 1 of it) of files whose (Name of it contains "RecoveryPwd.txt") of folder "BitLocker" of folder "__Global" of data folder of client + (preceding text of first "-" of name of it & ":", modification time of it, following text of first "%ff%fe" of concatenations "" of substrings separated by "%00" of lines of it | line 1 of it) of files whose (Name of it contains "-RecoveryPwd-") of folder "BitLocker" of folder "__Global" of data folder of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998637).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998637).bes new file mode 100644 index 000000000..5bfbe073c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998637).bes @@ -0,0 +1,28 @@ + + + + + Bitlocker - TPM Status + + windows of operating system + + x-fixlet-modification-time + Thu, 19 Mar 2020 12:25:37 +0000 + + BESC + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsEnabled_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Enabled" ELSE "Disabled") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Activated" ELSE "Not Activated") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Owned" ELSE "Not Owned") else ERROR "TPM not visible to OS" + exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" + tuple string item 0 of string value of selects "SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998646).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998646).bes new file mode 100644 index 000000000..a283e25cf --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998646).bes @@ -0,0 +1,28 @@ + + + + + Bitlocker - TPM Status + + windows of operating system + + x-fixlet-modification-time + Thu, 19 Mar 2020 12:25:37 +0000 + + BESC + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsEnabled_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Enabled" ELSE "Disabled") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Activated" ELSE "Not Activated") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Owned" ELSE "Not Owned") else ERROR "TPM not visible to OS" + exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" + tuple string item 0 of string value of selects "SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker Info - Windows (2994754).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker Info - Windows (2994754).bes new file mode 100644 index 000000000..891601dfb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker Info - Windows (2994754).bes @@ -0,0 +1,42 @@ + + + + + Bitlocker Info - Windows +  

+

 

+

References:

+

https://en.wikipedia.org/wiki/BitLocker

+

http://msdn.microsoft.com/en-us/library/windows/desktop/aa376483(v=vs.85).aspx

+

http://msdn.microsoft.com/en-us/library/aa376433(v=VS.85).aspx

+

http://www.normanbauer.com/2010/09/28/how-to-get-some-information-on-bitlocker-using-vbscript-and-wmi/

+

 

]]>
+ windows of operating system + = "6.0"]]> + + x-fixlet-modification-time + Fri, 12 Dec 2014 15:10:49 +0000 + + BESC + (exists WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") + number of select objects ("* from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + (windows of operating system) AND (version of operating system >= "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) + selects ("* from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + number of integer values whose(it = 1) of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + tuple string items (integer values of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Protection Off, Protection On, Protection Unknown" + tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "EncryptionMethod") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "N/A, AES 128 With Diffuser, AES 256 With Diffuser, AES 128, AES 256" + tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "ConversionStatus") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Fully Decrypted, Fully Encrypted, Encryption In Progress, Decryption In Progress, Encryption Paused, Decryption Paused" + (selects ("* from win32_EncryptableVolume") whose(name of it = "VolumeType") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") + (string values of selects ("* from win32_EncryptableVolume") whose(name of it = "IsVolumeInitializedForProtection") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") + selects ("* from win32_EncryptableVolume") whose( (integer value of it < 0) AND (name of it != "IsVolumeInitializedForProtection") ) of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Boot Up Analysis - Windows (2994790).bes b/Sites/Windows Management/Fixlets/Analyses/Boot Up Analysis - Windows (2994790).bes new file mode 100644 index 000000000..c19a98dbd --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Boot Up Analysis - Windows (2994790).bes @@ -0,0 +1,30 @@ + + + + + Boot Up Analysis - Windows + The idea is to include any properties that effect windows boot up time in one place. Many of these properties are applicable to Windows Vista, but this was only tested on Windows 7 & 8. Please suggest additions to the this analysis, it could use some expansion.

+

http://www.msfn.org/board/topic/152622-hotfixes-for-faster-windows-7-bootstartup/

+

http://www.msfn.org/board/topic/140262-how-to-speed-up-boot-process-under-windows-vista-or-windows-7/

+

For best performance, "Size of RdyBoostBootPlan" should be less than 524288.

]]>
+ windows of operating system + (it = "Win8" OR it = "Win7" OR it = "WinVista") of name of operating system + + x-fixlet-modification-time + Wed, 06 May 2015 17:54:07 +0000 + + BESC + unique values of sizes of values "BootPlan" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\rdyboost\Parameters" of (x64 registries; x32 registries) + values "EnablePrefetcher" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" of (x64 registries; x32 registries) + values "EnableSuperfetch" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" of (x64 registries; x32 registries) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Certificate Audit - Windows (2994825).bes b/Sites/Windows Management/Fixlets/Analyses/Certificate Audit - Windows (2994825).bes new file mode 100644 index 000000000..e47fd2e23 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Certificate Audit - Windows (2994825).bes @@ -0,0 +1,27 @@ + + + + + Certificate Audit - Windows + + windows of operating system + exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) + + x-fixlet-modification-time + Thu, 26 Nov 2015 04:14:23 +0000 + + BESC + ( concatenations " ; " of (preceding text of first "%82%01" of it | it) whose(it != "" AND it does not contain "%00%00%00%01%00%00%00") of (preceding text of first "%82%0f" of it | it) of (preceding text of first "0%82" of it | it) of (preceding text of first "0%81" of it | it) of (preceding text of first "0%1e%17" of it | it) of (preceding text of last "1" of it | it) of (following text of (start of first (first matches (regex "[\u1300-\u13ff]") of it) of it) | it) whose(exists (first matches (regex "[\u1300-\u13ff]") of it)) of (preceding text of first "%06%03" of it | it) of substrings separated by "U%04" of it) of it whose(it contains "U%04") of (hexadecimal string it) of ( unique values of (it as string) of values "blob" of keys of keys "Certificates" of keys whose(name of it as uppercase contains "CA" OR name of it as uppercase contains "ROOT") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) ) + exists (hexadecimal string it) whose(it contains "eDellRoot") of ( unique values of (it as string) of values "blob" of keys of keys "Certificates" of keys whose(name of it as uppercase contains "CA" OR name of it as uppercase contains "ROOT") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) ) + exists (hexadecimal string it) whose(it contains "DSDTestProvider") of ( unique values of (it as string) of values "blob" of keys of keys "Certificates" of keys whose(name of it as uppercase contains "CA" OR name of it as uppercase contains "ROOT") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) ) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Certificates - Windows (2998390).bes b/Sites/Windows Management/Fixlets/Analyses/Certificates - Windows (2998390).bes new file mode 100644 index 000000000..98e489f87 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Certificates - Windows (2998390).bes @@ -0,0 +1,36 @@ + + + + + Certificates - Windows + This analysis provides information on the current state of the Windows Certificate Store.

+

This analysis relies on Fixlet: Invoke - Certificate Store Probe - Windows in the C3-Inventory site

+

Information on using this content is available here: https://github.com/strawgate/C3-Inventory/wiki/Certificate-Store

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists value "Last Updated Date" of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store" of native registry + BESC + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\AuthRoot" of native registry + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\CA" of native registry + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\Root" of native registry + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\TrustedPublisher" of native registry + values "subject" of keys whose (value "Private Key" of it as string as boolean = true) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\Root" of native registry + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\Remote Desktop" of native registry + values "subject" of keys whose (value "Usage" of it as string contains "Code Signing") of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine" of native registry + (values "subject" of it, value "Not Before" of it, value "Not After" of it) of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry + (value "Last Updated Date" of it as string as date & (value "Last Updated Time" of it as string as time_of_day & local time zone)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store" of native registry + (values "subject" of it, value "Not After" of it) of keys whose ((it > 0 * day and it < 30 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry + (values "subject" of it, value "Not After" of it) of keys whose ((it > 0 * day and it < 7 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry + (values "subject" of it, value "Not After" of it) of keys whose ((it > 0 * day and it < 1 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry + (values "subject" of it, value "Not After" of it) of keys whose ((it < 0 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/ChkDsk Audit - Windows (2994739).bes b/Sites/Windows Management/Fixlets/Analyses/ChkDsk Audit - Windows (2994739).bes new file mode 100644 index 000000000..ca1c0c734 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/ChkDsk Audit - Windows (2994739).bes @@ -0,0 +1,40 @@ + + + + + ChkDsk Audit - Windows +  

+

References:

+

http://ask-leo.com/how_do_i_see_the_results_of_a_chkdsk_that_ran_on_boot.html

+

http://www.sevenforums.com/tutorials/96938-check-disk-chkdsk-read-event-viewer-log.html

+

http://kmwoley.com/blog/?p=441

+

http://superuser.com/questions/214209/where-are-the-results-of-chkdsk-located-in-windows-7

+

http://ericphelps.com/uncheck/index.htm

+

https://www.raymond.cc/blog/how-to-recover-chk-files-created-by-chkdsk-and-scandisk/

+

 

+

 

]]>
+ windows of operating system + ( exists files of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") ) OR ( exists files of folders whose(name of it as lowercase starts with "found.") of root folders of drives whose(type of it = "DRIVE_FIXED") ) OR ( exists records whose (source of it as lowercase contains "chkdsk") of (application event log) ) OR ( exists records whose(source of it as lowercase ends with "wininit" AND description of it as lowercase contains "chkdsk") of (application event log) ) + + x-fixlet-modification-time + Tue, 14 Oct 2014 20:47:36 +0000 + + BESC + number of records whose (source of it as lowercase contains "chkdsk") of application event log + number of records whose(source of it as lowercase ends with "wininit" AND description of it as lowercase contains "chkdsk") of application event log + pathnames of files whose((name of it as lowercase ends with ".log") AND (name of it as lowercase starts with "chkdsk")) of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") + number of files whose((name of it as lowercase ends with ".log") AND (name of it as lowercase starts with "chkdsk")) of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") + sum of ( ( number of files whose((name of it as lowercase ends with ".log") AND (name of it as lowercase starts with "chkdsk")) of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") );( number of records whose (source of it as lowercase contains "chkdsk") of application event log );( number of records whose(source of it as lowercase ends with "wininit" AND description of it as lowercase contains "chkdsk") of application event log ) ) + pathnames of files of folders whose(name of it as lowercase starts with "found.") of root folders of drives whose(type of it = "DRIVE_FIXED") + number of files whose(name of it as lowercase starts with "file" AND name of it as lowercase ends with ".chk") of folders whose(name of it as lowercase starts with "found.") of root folders of drives whose(type of it = "DRIVE_FIXED") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Chocolatey Audit - Windows (2994810).bes b/Sites/Windows Management/Fixlets/Analyses/Chocolatey Audit - Windows (2994810).bes new file mode 100644 index 000000000..d647cbcd0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Chocolatey Audit - Windows (2994810).bes @@ -0,0 +1,36 @@ + + + + + Chocolatey Audit - Windows +  

+

https://chocolatey.org/

+

 

+

 

]]>
+ windows of operating system + "5.1"]]> + (exists folders "C:\Chocolatey") OR ( exists values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) OR ( exists (substrings separated by ";" of it) whose(it as lowercase contains "\chocolatey\") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) + + x-fixlet-modification-time + Sun, 07 Jun 2015 15:43:46 +0000 + + BESC + unique values of versions of files "choco.exe" of ( parent folders of folders ( unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ; folders ( unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + unique values of pathnames of ( parent folders of folders ( unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ; folders ( unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + (item 1 of /* -> This "it" refers to the last 100 lines of the file -> */ it) whose( /* -> remove empty lines, which is why this relevance can return less than 100 lines per file -> */ it as trimmed string != "") of ( /* -> this is the number of lines of the file from the previous statement -> */ item 1 of it, (lines of /* -> the file object -> */ item 0 of it) ) /* -> This whose statement is responsible for filtering for only the last 100 lines of the file -> */ whose ( (line number of /* -> lines of the file -> */ item 1 of it) > ( /* -> number of lines of the file -> */ item 0 of it - 100 /* <- This is the number of lines to return, which is subtracted from the total # of lines <- */ ) ) of ( /* -> the parent file object itself -> */ it, number of lines of it) of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + (it as trimmed string) of unique values of ( (preceding text of first "has been installed successfully." of it | preceding text of first "was successful." of it) of (following text of first "The install of" of it | following text of first " - " of it) ) of lines whose(it contains "has been installed successfully." OR it contains "was successful.") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + sums of (it as trimmed string as integer) of ( (preceding text of first "packages installed." of it | preceding text of first "/" of it) of (following text of first "Chocolatey installed" of it | following text of first " - " of it) ) of lines whose(it contains "Chocolatey installed" OR it contains "packages installed.") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + sums of (it as trimmed string as integer) of (preceding text of first "package(s) failed." of following text of first "package(s)." of it) of lines whose(it contains "Chocolatey installed" AND it contains "package(s) failed." AND it contains "package(s).") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + sums of (it as trimmed string as integer) of (preceding text of first "package(s) had warnings." of it) of lines whose(it contains "package(s) had warnings.") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + pathnames of folders of folders "chocolatey" of (folders "Temp" of windows folders ; folders "AppData\Local\Temp" of folders of folders "C:\Users") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Client Clock Audit - Kerberos (2994647).bes b/Sites/Windows Management/Fixlets/Analyses/Client Clock Audit - Kerberos (2994647).bes new file mode 100644 index 000000000..5723fada0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Client Clock Audit - Kerberos (2994647).bes @@ -0,0 +1,32 @@ + + + + + Client Clock Audit - Kerberos + The amount of clock skew matters for Keberos Authentication. By default requests off by more than 5 minutes are rejected.

+

 

+

References:

+

http://technet.microsoft.com/en-us/library/cc779260(v=ws.10).aspx

+

http://support.bigfix.com/inspectors/World%20Objects_Any.html

+

http://blogs.msdn.com/b/asiatech/archive/2009/04/27/kerberos-authentication-failed-due-to-time-skew.aspx

+

http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/Clock-Skew.html

+

 

]]>
+ true + + x-fixlet-modification-time + Wed, 14 May 2014 18:39:45 +0000 + + BESC + (absolute value of (apparent registration server time - now)) + (absolute value of (apparent registration server time - now)) < (4 * minute) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Configuration_ Microsoft Product Keys - Windows (2994759).bes b/Sites/Windows Management/Fixlets/Analyses/Configuration_ Microsoft Product Keys - Windows (2994759).bes new file mode 100644 index 000000000..d56ff007e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Configuration_ Microsoft Product Keys - Windows (2994759).bes @@ -0,0 +1,28 @@ + + + + + Configuration: Microsoft Product Keys - Windows + This analysis requires this task to be run to have results: http://bigfix.me/fixlet/details/3941 + + = "5.1"]]> + /* Windows Only */ windows of operating system + exists file "config_prodkey.xml" of folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client + + x-fixlet-modification-time + Fri, 09 Jan 2015 20:32:15 +0000 + + BESC + node values of xpaths "/product_key_list/item/product_name/text()" of xml documents of file "config_prodkey.xml" of folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client + (node value of xpath "product_name/text()" of it & " -- " & node value of xpath "product_key/text()" of it) of xpaths "/product_key_list/item" whose( "Internet Explorer" != node value of xpath "product_name/text()" of it ) of xml documents of file "config_prodkey.xml" of folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Credentials - Cached Login Creds - Windows (2998301).bes b/Sites/Windows Management/Fixlets/Analyses/Credentials - Cached Login Creds - Windows (2998301).bes new file mode 100644 index 000000000..ddcf04c58 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Credentials - Cached Login Creds - Windows (2998301).bes @@ -0,0 +1,25 @@ + + + + + Credentials - Cached Login Creds - Windows + This analysis grabs information on the current cached logon credentials on a Windows system.

+

This analysis scraps information put in place by Fixlet: Invoke - Windows Cached Credentials Probe - Windows

+

Information provided by this fixlet is useful in determining which user accounts need password resets if a machine is compromised.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Windows-Credentials

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "CachedUsers.txt" of folder "WinCreds" of folder "__Global" of data folder of client + BESC + (concatenations "" of substrings separated by "%00" of (following text of first "%ff%fe" of it | it)) of lines whose (it !="%00") of file "CachedUsers.txt" of folder "WinCreds" of folder "__Global" of folder "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2995862).bes b/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2995862).bes new file mode 100644 index 000000000..ce15e9502 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2995862).bes @@ -0,0 +1,25 @@ + + + + + Current Memory Configuration + Returns the current configuration of Physical Memory installed. + windows of operating system + exists wmi + + x-fixlet-modification-time + Mon, 14 Mar 2016 14:31:57 +0000 + + BESC + ((((string value of it as integer)/(1024*1024)) as string) & " MB") of (selects "Capacity from Win32_PhysicalMemory where MemoryType!='11'" of wmi) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2998506).bes b/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2998506).bes new file mode 100644 index 000000000..3bda08755 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2998506).bes @@ -0,0 +1,26 @@ + + + + + Current Memory Configuration + Returns the current configuration of Physical Memory installed. + windows of operating system + exists wmi + + x-fixlet-modification-time + Fri, 25 Mar 2016 18:14:04 +0000 + + BESC + ((((string value of it as integer)/(1024*1024)) as string) & " MB") of (selects "Capacity from Win32_PhysicalMemory where MemoryType!='11'" of wmi) + ((((string value of Property "Capacity" of it as integer)/(1024*1024*1024)) as string) & " GB | " & (string value of property "Speed" of it)& " MHz") of select objects "* from Win32_PhysicalMemory where MemoryType!='11'" of wmi + + diff --git a/Sites/Windows Management/Fixlets/Analyses/DNS Cache - Windows (2995861).bes b/Sites/Windows Management/Fixlets/Analyses/DNS Cache - Windows (2995861).bes new file mode 100644 index 000000000..8fb151ef2 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/DNS Cache - Windows (2995861).bes @@ -0,0 +1,26 @@ + + + + + DNS Cache - Windows + + windows of operating system + exists files "results_dns_cache.txt" of folders "__Global\Logs" of data folders of client + + x-fixlet-modification-time + Sat, 12 Mar 2016 21:24:46 +0000 + + BESC + unique values of (following text of last ": " of it & " ;; " & following text of last ": " of unique value of previous lines of previous lines of previous lines of previous lines of previous lines of it) of lines whose(it contains "A (Host) Record" OR it contains " ;; ") of files "results_dns_cache.txt" of folders "__Global\Logs" of data folders of client + unique values of (it as trimmed string) of lines whose(it contains " ;; ") of files "results_dns_cache_history.txt" of folders "__Global\Logs" of data folders of client + + diff --git a/Sites/Windows Management/Fixlets/Analyses/DeviceQuery Results - Windows (2994799).bes b/Sites/Windows Management/Fixlets/Analyses/DeviceQuery Results - Windows (2994799).bes new file mode 100644 index 000000000..a49a3f934 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/DeviceQuery Results - Windows (2994799).bes @@ -0,0 +1,31 @@ + + + + + DeviceQuery Results - Windows +  

+

http://bigfix.me/fixlet/details/6060

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + exists files whose(name of it as lowercase starts with "info_driverquery_" AND name of it as lowercase ends with ".csv") of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + + x-fixlet-modification-time + Tue, 12 May 2015 20:57:15 +0000 + + BESC + unique values of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_signed.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + unique values of ((if item 0 of it contains item 1 of it then item 0 of it else item 2 of it) of (tuple string item 0 of it, tuple string item 3 of it, tuple string item 3 of it &" "& tuple string item 0 of it) of concatenations "" of substrings separated by "%22" of concatenations ", " of substrings separated by "," of it) of (it as trimmed string) of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_signed.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + unique values of (it whose(tuple string item 6 of it != "OK" AND tuple string item 6 of it != "Status") of concatenations "" of substrings separated by "%22" of concatenations "%22, %22" of (if it does not contain "," then it else ( concatenations "" of substrings separated by "," of it )) of (it as trimmed string) of substrings separated by "%22,%22" of it) of (it as trimmed string) of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_verbose.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + unique values of ( (tuple string item 1 of it; tuple string item 2 of it) of concatenations "" of substrings separated by "%22" of concatenations "%22, %22" of (if it does not contain "," then it else ( concatenations "" of substrings separated by "," of it )) of (it as trimmed string) of substrings separated by "%22,%22" of it) of (it as trimmed string) of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_verbose.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Devices (50).bes b/Sites/Windows Management/Fixlets/Analyses/Devices (50).bes new file mode 100644 index 000000000..2df43a534 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Devices (50).bes @@ -0,0 +1,27 @@ + + + + + Devices + + windows of operating system + + x-fixlet-modification-time + Thu, 29 Nov 2012 16:33:35 +0000 + + BESC + (if exists ( position 1000 of it ) then ( preceding text of position 1000 of it ) else it) of concatenation ", " of unique values of friendly names whose (it as string does not contain "ATA Channel" AND it as string does not contain " (LPT" AND it as string does not contain " (COM" AND it as string does not contain "Pseudo-Interface" AND it as string does not contain "Microsoft ISATAP" AND it as string does not contain "VirtualBox" AND (it as string does not contain "Miniport" OR it as string contains "Intel")) of active devices + if exists (friendly names whose (it contains "Bluetooth") of active devices) then (concatenation ", " of unique values of friendly names whose (it contains "Bluetooth") of active devices) else "No Bluetooth installed" + concatenation ", " of unique values of ((if (exists property "Name" of it) then property "Name" of it as string else "<none>") & " - " & property "DeviceID" of it as string) of select objects "Name,DeviceID FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0" of wmi + concatenation ", " of unique values of (selects "Name, DriverVersion, AdapterRam from Win32_VideoController" of wmi as string) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Devices - Windows (2994709).bes b/Sites/Windows Management/Fixlets/Analyses/Devices - Windows (2994709).bes new file mode 100644 index 000000000..86b8ae606 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Devices - Windows (2994709).bes @@ -0,0 +1,50 @@ + + + + + Devices - Windows + This is a work in progress.

+

This analysis attempts to pull back a lot of data about devices on a Windows system.

+

Latest version found here: http://bigfix.me/analysis/details/2994593

+

See this relevance for raw data from the "active devices" inspector: http://bigfix.me/relevance/details/2998470

]]>
+ windows of operating system + (exists wmi) OR (exists active devices) + + x-fixlet-modification-time + Mon, 25 Aug 2014 19:58:37 +0000 + + BESC + unique values of friendly names whose (it as string does not contain "ATA Channel" AND it as string does not contain " (LPT" AND it as string does not contain " (COM" AND it as string does not contain "Pseudo-Interface" AND it as string does not contain "Microsoft ISATAP" AND it as string does not contain "VirtualBox" AND (it as string does not contain "Miniport" OR it as string contains "Intel")) of active devices + if exists (friendly names whose (it as lowercase contains "bluetooth") of active devices) then (unique values of friendly names whose (it as lowercase contains "bluetooth") of active devices) else ERROR "no Bluetooth installed" + concatenation ", " of unique values of ((if (exists property "Name" of it) then property "Name" of it as string else "<none>") & " - " & property "DeviceID" of it as string) of select objects "Name,DeviceID FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0" of wmi + concatenation ", " of unique values of (selects "Name, DriverVersion, AdapterRam from Win32_VideoController" of wmi as string) + ((name of it), following texts of firsts "=" of unique values whose(it as lowercase does not contain "%25provider%25" AND it as lowercase does not contain "%25providername%25") of (lines whose(it as string as lowercase starts with "provider") of it as string) as trimmed string, following texts of firsts "=" of unique values of (lines whose(it as string as lowercase starts with "class" AND it as string as lowercase does not start with "classguid") of it as string) as trimmed string, unique values of (lines whose(it as string as lowercase starts with "driverver" AND it as string as lowercase does not start with "driverversion") of it as string)) of (files whose(name of it as lowercase starts with "oem" AND name of it as lowercase ends with ".inf") of folder "Inf" of windows folder) + number of files whose(name of it as lowercase starts with "oem" AND name of it as lowercase ends with ".inf") of folder "Inf" of windows folder + /* Warning: This is very slow, and not recommended for use within a fixlet's or task's relevance! */ unique values of (string values whose (it != "Generic volume" AND it != "HID-compliant consumer control device" AND it != "HID-compliant device" AND it != "USB Composite Device" AND it != "Generic USB Hub" AND it != "USB Input Device" AND it does not start with "USB Root Hub") of selects (("Caption from Win32_PnPEntity where DeviceID='" & it as string & "'") of preceding texts of lasts "%22" of following texts of lasts "=%22" of (string values of selects "Dependent from Win32_USBControllerDevice" of wmi )) of wmi) + /* Warning: This is very slow, and not recommended for use within a fixlet's or task's relevance! */ unique values of ((if (it starts with "Intel" OR it starts with "Xeon") then (preceding texts of lasts " - " of it) else it) of string values of selects (("Caption from Win32_PnPEntity where DeviceID='" & it as string & "'") of ((parenthesized part 1 of (matches (regex "^Win32_PnPEntity\.DeviceID\=\%22(.*)\%22") of string values of it)) of properties whose(string value of it contains "DeviceID=") of select objects ("DeviceID from Win32_PnPEntity ") of WMI) whose(it starts with "PCI\\VEN_")) of wmi) + /* Warning: This is slow, and not recommended for use within a fixlet's or task's relevance! */ unique values of (string values whose (it does not start with "WAN Miniport (" AND it does not start with "Generic volume" AND it != "HID-compliant consumer control device" AND it != "HID-compliant device" AND it != "USB Composite Device" AND it != "Generic USB Hub" AND it != "USB Input Device" AND it does not start with "USB Root Hub") of selects ("Caption from Win32_PnPEntity") of wmi) + unique values of (number of active devices; number of (selects ("DeviceID from Win32_PnPEntity") of wmi)) + unique values of friendly names whose(it as lowercase contains "cam") of active devices + unique values of friendly names of active devices whose(class of it = "Image") + (if it = 0 then nothing else it) of number of active devices whose(class of it = "Battery") + unique values of ((descriptions of active devices whose(description of it as lowercase contains "cam"));((if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Image"));(friendly names of active devices whose(friendly name of it as lowercase contains "cam"))) + (preceding texts of lasts ")" of following texts of firsts "(" of it) of friendly names whose(it starts with "Microphone" AND it does not contain "High Definition Audio Device" AND it does not contain "IDT High Definition Audio CODEC" AND it does not contain "Realtek High Definition Audio") of active devices whose(class of it = "AudioEndpoint") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Display") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Keyboard") + (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "MEDIA" AND service key value name of it = "usbaudio") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Monitor") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Printer") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "SecurityDevices") + number of active devices whose(class of it = "Monitor") + unique values of hardware ids of active devices +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Distinguished Name of User (2998580).bes b/Sites/Windows Management/Fixlets/Analyses/Distinguished Name of User (2998580).bes new file mode 100644 index 000000000..2a8f547b3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Distinguished Name of User (2998580).bes @@ -0,0 +1,24 @@ + + + + + Distinguished Name of User + + Product type of operating system = NT Workstation product type + + x-fixlet-modification-time + Thu, 11 Jan 2018 21:02:15 +0000 + + BESC + if(exists logged on users of active directory) then preceding text of first "OU=" of distinguished name of (logged on users whose (name of it = name of current user) of active directory) else if exists current users then "local user" else "none" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Driver Audit - Windows (2994712).bes b/Sites/Windows Management/Fixlets/Analyses/Driver Audit - Windows (2994712).bes new file mode 100644 index 000000000..6db567d43 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Driver Audit - Windows (2994712).bes @@ -0,0 +1,28 @@ + + + + + Driver Audit - Windows + + windows of operating system + + x-fixlet-modification-time + Thu, 28 Aug 2014 15:31:24 +0000 + + BESC + number of (it) whose(it contains "5345494b4f204550534f4e") of (values "Blob" of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\TrustedPublisher\Certificates" of native registry as string) + (multiplicity of it, it) of unique values of ("Logitech " & (it as string)) of (if (it starts with "Logitech ") then (following text of first "Logitech " of it) else it) of (if (it contains "Logitech QuickCam Pro ") then (following text of first "Logitech QuickCam " of it) else it) of (if (it contains "Webcam ") then (following text of first "Webcam " of it) else it) of (if (it contains ")") then (preceding text of last ")" of it) else it) of (if (it contains "(") then (following text of first "(" of it) else it) of (preceding text of last "%22" of following text of first "%22" of following text of first "=" of it) of items 3 of (item 0 of it, item 1 of it, minimum of line numbers of item 2 of it, lines of item 0 of it) whose(((item 1 of it) < line number of item 3 of it) AND ((item 2 of it) > (line number of item 3 of it)) AND (item 3 of it contains "PID_")) of (item 0 of it, item 1 of it, lines whose(it starts with "[" AND it ends with "]") of item 0 of it) whose(item 1 of it < line number of item 2 of it) of (it, line number of line whose(it starts with "[Strings]") of it) of items 0 whose(content of it contains "Logitech") of (files of item 0 of it, item 1 of it) whose(name of item 0 of it as lowercase = item 1 of it) of (it, (it & ".inf") of preceding text of first ".inf" of (name of it as lowercase)) of folders whose( ((name of it as lowercase starts with "lv") OR (name of it as lowercase starts with "lpro")) AND (name of it as lowercase contains ".inf") ) of folders "DriverStore\FileRepository" of system x64 folder + keys "DSName" of sections "Strings" of items 0 of (files of item 0 of it, item 1 of it) whose(name of item 0 of it as lowercase = item 1 of it) of (it, (it & ".inf") of preceding text of first ".inf" of (name of it as lowercase)) of folders whose((name of it as lowercase starts with "es") AND (name of it as lowercase contains ".inf")) of folders "DriverStore\FileRepository" of system x64 folder + unique values of (it as trimmed string) of (preceding text of last "%22" of following text of first "%22" of it) of lines whose(it starts with "NVIDIA_DEV") of files whose(name of it as lowercase ends with ".inf") of folders whose(name of it as lowercase starts with "nvlewu") of folders "DriverStore\FileRepository" of system folder + unique values of (it as trimmed string) of (preceding text of last "%22" of following text of first "%22" of it) of (concatenation of characters whose (it != "%00") of it) of lines whose(exists (concatenation of characters whose (it != "%00") of it) whose(it starts with "i" AND it contains "Intel(R) ")) of files whose(name of it as lowercase ends with ".inf") of folders whose(name of it as lowercase starts with "igdlh") of folders "DriverStore\FileRepository" of system folder + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Drivers - Windows (2998242).bes b/Sites/Windows Management/Fixlets/Analyses/Drivers - Windows (2998242).bes new file mode 100644 index 000000000..1ccc91fe5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Drivers - Windows (2998242).bes @@ -0,0 +1,22 @@ + + + + + Drivers - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ NOT in proxy agent context + = "5.1"]]> + BESC + (if (it = "00") then ("Ignore") else (if (it = "01") then "Warn" else "Block")) of (value "Policy" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Non-Driver Signing" of native registry as string) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/EMET - Configuration - Windows (2998302).bes b/Sites/Windows Management/Fixlets/Analyses/EMET - Configuration - Windows (2998302).bes new file mode 100644 index 000000000..023e8ea2b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/EMET - Configuration - Windows (2998302).bes @@ -0,0 +1,32 @@ + + + + + EMET - Configuration - Windows + This analysis covers various details of the currently deployed EMET configuration.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/EMET

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect 

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry + exists service "EMET_SERVICE" + BESC + (name of it, it) of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry + state of service "EMET_Service" + version of service "EMET_Service" + (name of it, it) of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\CertPinning\Sites" of native registry + (if (value "AntiDetours" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" + (if (value "BannedFunctions" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" + (if (value "DeepHooks" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" + (if (value "EnableUnsafeSettings" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" + (if (value "ExploitAction" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Kill Process" else "Audit") | "audit" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/EMET - Logs - Windows (2998438).bes b/Sites/Windows Management/Fixlets/Analyses/EMET - Logs - Windows (2998438).bes new file mode 100644 index 000000000..30038e56c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/EMET - Logs - Windows (2998438).bes @@ -0,0 +1,23 @@ + + + + + EMET - Logs - Windows + This analysis provides information on EMET Mitigations Fired

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/EMET

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists service "EMET_SERVICE" + BESC + (time generated of it, description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) whose (source of it = "EMET" and (event id of it = 2 or event id of it = 1)) of application event log +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Event Log - Windows (2998243).bes b/Sites/Windows Management/Fixlets/Analyses/Event Log - Windows (2998243).bes new file mode 100644 index 000000000..e06f6ae04 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Event Log - Windows (2998243).bes @@ -0,0 +1,25 @@ + + + + + Event Log - Windows + http://bigfix.me/cdb/analysis/2995921

Pulls the maximum size of various event logs from the Windows Registry and formats them as megabytes +

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ = "6.0"]]> + BESC + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\Security" of registry) as string as integer / 1024 / 1024 + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\HardwareEvents" of registry) as string as integer / 1024 / 1024 + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\Key Management Service" of registry) as string as integer / 1024 / 1024 + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\System" of registry) as string as integer / 1024 / 1024 + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\Windows PowerShell" of registry) as string as integer / 1024 / 1024 +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/File System Configuration Audit - Windows (2994783).bes b/Sites/Windows Management/Fixlets/Analyses/File System Configuration Audit - Windows (2994783).bes new file mode 100644 index 000000000..6edca0c23 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/File System Configuration Audit - Windows (2994783).bes @@ -0,0 +1,27 @@ + + + + + File System Configuration Audit - Windows + + = "5.1"]]> + /* Windows Only */ windows of operating system + + x-fixlet-modification-time + Mon, 08 Sep 2014 18:20:45 +0000 + + BESC + value "DisableDeleteNotification" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of registry | ERROR "does not exist" /* a result of 0 means TRIM is enabled as far as the Windows/NTFS side is concerned. This does not mean that these TRIM notifications are actually being used by the actual storage system, which may or may not support TRIM. */ + value "NtfsDisableLastAccessUpdate" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of registry | ERROR "does not exist" + value "NtfsMemoryUsage" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of registry | ERROR "does not exist" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Firewall - Configuration - Windows (2998518).bes b/Sites/Windows Management/Fixlets/Analyses/Firewall - Configuration - Windows (2998518).bes new file mode 100644 index 000000000..fa1d4f46c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Firewall - Configuration - Windows (2998518).bes @@ -0,0 +1,31 @@ + + + + + Firewall - Configuration - Windows + Provides information on the current configuration of the Windows Firewall.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ NOT in proxy agent context + = "5.1"]]> + BESC + ("Domain", firewall enabled of domain profile of local policy of firewall and not exists (value "EnableFirewall" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile" of native registry as string | "-1") whose (it = "0"));("Public", firewall enabled of public profile of local policy of firewall and not exists (value "EnableFirewall" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile" of native registry as string | "-1") whose (it = "0"));("Private", firewall enabled of private profile of local policy of firewall and not exists (value "EnableFirewall" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile" of native registry as string | "-1") whose (it = "0")) + profile types of firewall + allow inbound echo request of icmp settings of current profile of local policy of firewall + local policy modify state of firewall = ok firewall local policy modify state + local policy modify state of firewall = gp override firewall local policy modify state + local policy modify state of firewall = inbound blocked firewall local policy modify state + (name of it, remote addresses of it, ip version of it, process image file name of it) of authorized applications whose (enabled of it = true) of current profile of local policy of firewall + (name of it, application name of it, local addresses string of it, local ports string of it, remote addresses string of it, remote ports string of it) of rules whose (currently active of it and inbound of it) of firewall + (name of it, application name of it, local addresses string of it, local ports string of it, remote addresses string of it, remote ports string of it) of rules whose (currently active of it and outbound of it) of firewall + (name of it, port of it, remote addresses of it) of globally open ports whose (enabled of it) of current profile of local policy of firewall +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Group Policy - Windows (2998487).bes b/Sites/Windows Management/Fixlets/Analyses/Group Policy - Windows (2998487).bes new file mode 100644 index 000000000..790f3a776 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Group Policy - Windows (2998487).bes @@ -0,0 +1,44 @@ + + + + + Group Policy - Windows + Provides the following pieces of information regarding Group Policy:

+
    +
  1. Average network wait on startup +
  2. Applied Group Policies +
  3. Enforced Group Policies +
  4. The Active Directory site the computer currently falls into +
  5. Assigned Software Installations in Group Policy +
  6. The currently connected domain controller +
  7. If the computer is on a slow link +
  8. Currently running startup and shutdown scripts +
  9. Group Policy Preferences with tracing or debug logging enabled
+

The applied group policies and enforced group policies properties show the name of the group policy object, at what level the policy is linked (Site, Domain, OU) and at what OU in active directory the policy is linked at.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + values "AvgWaitTimeoutAtStartup" of keys "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\history" of native registry + unique values of (it as string) of (value "DisplayName" of it, (if (it = 0) then "Unknown" else (if (it = 1) then "Local Group Policy" else (if (it = 2) then "Site Linked" else (if (it = 3) then "Domain Linked" else ("OU Linked"))))) of (value "GPOLink" of it as integer), value "Link" of it) of keys of keys of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\history" of native registry + unique values of (it as string) of (value "DisplayName" of it, (if (it = 0) then "Unknown" else (if (it = 1) then "Local Group Policy" else (if (it = 2) then "Site Linked" else (if (it = 3) then "Domain Linked" else ("OU Linked"))))) of (value "GPOLink" of it as integer), value "Link" of it) of keys whose (bit 1 of (value "Options" of it as integer as bit set) = true) of keys of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\history" of native registry + value "Site-Name" of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\State\Machine" of native registry + (value "GPO Name" of it, value "Deployment Name" of it, value "GPO ID" of it) of keys of keys "HKEY_LOCAL_MACHINE\Software\microsofat\windows\currentversion\group policy\Appmgmt" of native registry + value "DCName" of keys "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\History" of native registry as string + if (value "IsSlowLink" of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\History" of native registry as integer | 0 = 0) then false else true + unique values of (it as string) of (value "DisplayName" of it as string, value "FileSysPath" of it as string) of keys of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup" of native registry + unique values of (it as string) of (value "DisplayName" of it as string, value "FileSysPath" of it as string) of keys of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown" of native registry + (default value of it) of keys whose (set of names of (keys whose (value "LogLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry) contains name of it ) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions" of native registry + (default value of it) of keys whose (set of names of (keys whose (value "LogLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry) contains name of it ) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions" of native registry + unique values of (it as string) of (string value of property "registryKey" of it | "", string value of property "valueName" of it, (if (length of (property "value" of it as string) <= 16) then /* For short values convert the byte array*/((/*Convert to integer*/ hexadecimal integer /* Reverse the bytes */(concatenations of substrings separated by "," of concatenation of characters ( lengths of following texts of positions of it ) of concatenation "," of (concatenation of characters ( lengths of following texts of positions of it ) of it ) of /*Get bytes */(integer values of property "value" of it as hexadecimal))) as string | "") else /* Long values let BigFix do it*/ (following text of first "value=" of (preceding text of last "%00" of it | it) of (preceding text of last "%0d%0a" of it | it) of (property "value" of it as string)))) of SELECT objects "* FROM RSOP_RegistryPolicySetting WHERE GPOID='LocalGPO' and valueName != ''" /* valueName != '' removes blank keys, not sure if this breaks anything*/ of rsop computer wmi +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Groups - Windows (2998456).bes b/Sites/Windows Management/Fixlets/Analyses/Groups - Windows (2998456).bes new file mode 100644 index 000000000..ffae6f1c0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Groups - Windows (2998456).bes @@ -0,0 +1,39 @@ + + + + + Groups - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Administrators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Remote Desktop Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Access Control Assistance Operators" | error "none")) + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Backup Operators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Cryptographic Operators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Event Log Readers" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Guests" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Hyper-V Administrators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Network Configuration Operators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Performance Log Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Performance Monitor Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Power Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Remote Managment Users" | error "none")) + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Replicator" | error "none")) + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Systems Managed Accounts Group" | error "none")) + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Offer Remote Assistance Helpers" | error "none")) + unique values of names of local groups +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Hard Drive Audit - Windows (2994706).bes b/Sites/Windows Management/Fixlets/Analyses/Hard Drive Audit - Windows (2994706).bes new file mode 100644 index 000000000..de0ffb43d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Hard Drive Audit - Windows (2994706).bes @@ -0,0 +1,44 @@ + + + + + Hard Drive Audit - Windows + This analysis will report on various windows specific aspects of the hard drives in a system. Found here: http://bigfix.me/cdb/analysis/2994527

+

This is meant to supliment the analysis "Hard Drive Audit - Universal" :  http://bigfix.me/cdb/analysis/2994530

]]>
+ = "8.0"]]> + = "5.1"]]> + /* Windows Only */ windows of operating system + /* Many, but not all of these properties use WMI */ exists wmi + + x-fixlet-modification-time + Fri, 15 Aug 2014 19:30:17 +0000 + + BESC + if (exists wmi) then (concatenation ", " of (((substrings after "=" whose(it as trimmed string != "") of (property "SerialNumber" of it as string)) of select objects "* from win32_PhysicalMedia where SerialNumber != ''" of wmi) as trimmed string)) else "n/a" + if(not exists (select objects "* from MSStorageDriver_FailurePredictStatus" of wmi "root\WMI") whose(string value of property "PredictFailure" of it as boolean = TRUE)) then "<no failures predicted>" else concatenation "," of (string value of property "PredictFailure" of it & " - " & string value of property "InstanceName" of it) of (select objects "* from MSStorageDriver_FailurePredictStatus" of wmi "root\WMI") whose(string value of property "PredictFailure" of it as boolean = TRUE) + not disjunction of ((following text of first "=" of (property "StartingOffset" of it as string) as integer mod 4096) != 0) of select objects "* from Win32_DiskPartition" of wmi + concatenation "," of unique values of (following text of first "=" of (property "BlockSize" of it as string)) of select objects "* from Win32_DiskPartition" of wmi + (if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (size of file "c:\pagefile.sys") + if(not exists file "c:\hiberfil.sys") then nothing else ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (size of file "c:\hiberfil.sys")) + if not exists (folder "dell" of drive of system folder) then nothing else ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (sum of sizes of descendants of folder "dell" of drive of system folder)) + if (exists wmi) then (concatenation "; " of ((string value of property "Model" of it, string value of property "FirmwareRevision" of it) of select objects "Model, FirmwareRevision from Win32_DiskDrive" of wmi as string)) else "n/a" + if exists (folder "__BESData\__Global\__Cache\Downloads" of parent folder of regapp "Besclient.exe") then ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (sum of sizes of descendants of folder "__BESData\__Global\__Cache\Downloads" of parent folder of regapp "Besclient.exe")) else ERROR "none" + if exists (folder "temp" of drive of system folder) then ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (sum of sizes of descendants of folder "temp" of drive of system folder)) else ERROR "no Temp Dir" + value "DisableDeleteNotification" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of native registry + if ((exists folder "users" of drive of system folder) AND (exists folders whose (exists folder "AppData\Local\Temp\Identity Finder" of it) of folder "users" of drive of system folder)) then (sum of sizes of descendants of folders "AppData\Local\Temp\Identity Finder" of folders whose (exists folder "AppData\Local\Temp\Identity Finder" of it) of folder "users" of drive of system folder) else ERROR "No IDF temp" + (friendly name of it &" - "& location information of it) of active devices whose(class of it = "DiskDrive") + (pathname of it, sum of sizes of descendants of it) of folders "Desktop" whose(sum of sizes of descendants of it = maximum of (sum of sizes of descendants of it) of folders "Desktop" of folders of (folder "c:\documents and settings" of it | folder "users" of it) of drive of system folder) of folders of (folder "c:\documents and settings" of it | folder "users" of it) of drive of system folder + ((it as integer) of string values of selects "Size from Win32_DiskDrive WHERE size!='' " of wmi) + ((it as integer) of string values of selects "Size from Win32_DiskDrive WHERE Index=0 AND size!='' " of wmi) + (string values of selects "Caption from Win32_DiskDrive WHERE Status!='OK'" of wmi) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Hardware - Windows (2998512).bes b/Sites/Windows Management/Fixlets/Analyses/Hardware - Windows (2998512).bes new file mode 100644 index 000000000..3fe38f5b5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Hardware - Windows (2998512).bes @@ -0,0 +1,37 @@ + + + + + Hardware - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + string value of select "Manufacturer from Win32_ComputerSystem" of wmi + string values of selects "IdentifyingNumber from Win32_ComputerSystemProduct" of wmi + string values of selects "Name from Win32_VideoController" of wmi + string values of selects "Name from Win32_SoundDevice" of wmi + number of active devices whose(class of it = "Monitor") + string values of selects "Caption from Win32_DiskDrive" of wmi + number of string values of selects "Caption from Win32_DiskDrive" of wmi + descriptions of active devices whose (class of it = "Monitor") + number of active devices whose(class of it = "Monitor") + string values of selects "Caption from Win32_CDROMDrive" of wmi + number of string values of selects "Caption from Win32_CDROMDrive" of wmi + if (exists select "VideoModeDescription from Win32_VideoController" whose (type of it = 8) of wmi) then (preceding texts of lasts " x" of (string values of selects "VideoModeDescription from Win32_VideoController" whose (type of it = 8) of wmi)) else ("N/A") + ((it as integer/1024) as string & " MB") of (string values of selects "MaxCapacity from Win32_PhysicalMemoryArray where Use='3'" of wmi) + (description of it | friendly name of it, problem id of it) of active devices whose (exist problem id of it) + number of string values of selects "Caption from Win32_CDROMDrive where MediaLoaded=True" of wmi + string values of properties "FriendlyName" of select objects "* from MSFT_Disk where IsOffline=True" of wmis "ROOT/Microsoft/Windows/Storage" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Hyper-V Guest - Windows (2998484).bes b/Sites/Windows Management/Fixlets/Analyses/Hyper-V Guest - Windows (2998484).bes new file mode 100644 index 000000000..083b73899 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Hyper-V Guest - Windows (2998484).bes @@ -0,0 +1,25 @@ + + + + + Hyper-V Guest - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + ((value "manufacturer" of structure "system_information" of smbios as string) contains "Microsoft") + = "8.2.1078.0") then in proxy agent context else false)) then "N/A" else (if exists true whose (if true then( (((item 0 of it contains "VMware") or ((item 0 of it contains "Microsoft") and not (item 1 of it as lowercase contains "surface")) or (item 0 of it contains "Xen")) of ((value "manufacturer" of it as string, value "product_name" of it as string) of structure "system_information" of smbios))) else false) then "Virtual" else "Physical")) = "Virtual"]]> + BESC + value "VirtualMachineId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" of native registry + value "VirtualMachineName" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" of native registry + value "PhysicalHostNameFullyQualified" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Hyper-V Host - Windows (2998252).bes b/Sites/Windows Management/Fixlets/Analyses/Hyper-V Host - Windows (2998252).bes new file mode 100644 index 000000000..5791b1fd5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Hyper-V Host - Windows (2998252).bes @@ -0,0 +1,23 @@ + + + + + Hyper-V Host - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "vmcompute" + BESC + (value "FriendlyName" of it as string, name of it as string) of keys of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmsmp\parameters\SwitchList" of native registry + (string value of property "ElementName" of it, (if (it = "2") then "Running" else (if (it = "3") then "Off" else (if (it = "6") then "Saved" else "Other"))) of (string value of property "EnabledState" of it) , (if (it = "0") then "No Replication" else (if (it = "1") then "Healthy" else (if (it = "2") then "Replication Warning" else "Replication Critical"))) of (string value of property "ReplicationHealth" of it), integer value of property "OnTimeInMilliseconds" of it * millisecond ) of (select objects "* from Msvm_ComputerSystem" of wmi "root\virtualization\v2") whose (string value of property "Caption" of it does not contain "Hosting") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/In-Place Upgrade Failure Information (2998651).bes b/Sites/Windows Management/Fixlets/Analyses/In-Place Upgrade Failure Information (2998651).bes new file mode 100644 index 000000000..765d42446 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/In-Place Upgrade Failure Information (2998651).bes @@ -0,0 +1,26 @@ + + + + + In-Place Upgrade Failure Information + + exist files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder + + x-fixlet-modification-time + Fri, 22 Oct 2021 15:07:26 +0000 + + BESC + preceding texts of lasts "</FailureDetails>" of following texts of firsts "<FailureDetails>" of lines containing "<FailureDetails>" of files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder + preceding texts of lasts "</FailureData>" of following texts of firsts "<FailureData>" of lines containing "<FailureData>" of files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder + preceding texts of lasts "</Remediation>" of following texts of firsts "<Remediation>" of lines containing "<Remediation>" of files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Inactive Users (2994557).bes b/Sites/Windows Management/Fixlets/Analyses/Inactive Users (2994557).bes new file mode 100644 index 000000000..97bad0b3e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Inactive Users (2994557).bes @@ -0,0 +1,24 @@ + + + + + Inactive Users + Lists the user accounts that have not logged onto the system in the last 30 days. + name of operating system as lowercase starts with "win" + + x-fixlet-modification-time + Wed, 07 Aug 2013 19:20:29 +0000 + + BESC + (name of it) of users whose ((now - (last logon of it) > 30 * day) and name of it does not contain "$") + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Intel vPro Audit - Windows (2995830).bes b/Sites/Windows Management/Fixlets/Analyses/Intel vPro Audit - Windows (2995830).bes new file mode 100644 index 000000000..fe79bdada --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Intel vPro Audit - Windows (2995830).bes @@ -0,0 +1,25 @@ + + + + + Intel vPro Audit - Windows + + windows of operating system + + x-fixlet-modification-time + Mon, 04 Jan 2016 21:36:29 +0000 + + BESC + node values of xpaths "/PlatformDiscovery/Solution[@name='Intel(R) AMT']/@state" of xml documents of files "results_Intel_Platform_Discovery.xml" of folders "__Global/Logs" of ((data folder of client)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client)) + modification times of files "results_Intel_Platform_Discovery.xml" of folders "__Global/Logs" of ((data folder of client)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client)) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Internet Explorer - Windows (2998393).bes b/Sites/Windows Management/Fixlets/Analyses/Internet Explorer - Windows (2998393).bes new file mode 100644 index 000000000..bda6ba65a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Internet Explorer - Windows (2998393).bes @@ -0,0 +1,21 @@ + + + + + Internet Explorer - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + (name of it, it) of values of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMapKey" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Internet Explorer Configuration - Windows (2994779).bes b/Sites/Windows Management/Fixlets/Analyses/Internet Explorer Configuration - Windows (2994779).bes new file mode 100644 index 000000000..47848d86c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Internet Explorer Configuration - Windows (2994779).bes @@ -0,0 +1,27 @@ + + + + + Internet Explorer Configuration - Windows + This is a work in progress.

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + + x-fixlet-modification-time + Wed, 06 May 2015 14:11:57 +0000 + + BESC + versions of regapps "iexplore.exe" + unique values whose(it != "") of (it as string as trimmed string) of values "AutoConfigURL" of keys "Software\Microsoft\Windows\CurrentVersion\Internet Settings" of keys whose(exists keys "Software\Microsoft\Windows\CurrentVersion\Internet Settings" of it) of keys "HKEY_USERS" of (x64 registries; x32 registries) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Is Docked (74).bes b/Sites/Windows Management/Fixlets/Analyses/Is Docked (74).bes new file mode 100644 index 000000000..d3c4f1134 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Is Docked (74).bes @@ -0,0 +1,21 @@ + + + + + Is Docked + Determines if a computer is docked or not + name of operating system as lowercase contains "win" and exists wmi + BESC + (if it = 1 then "Other" else if it = 2 then "Unknown" else if it = 3 then "Desktop" else if it = 4 then "Low Profile Desktop" else if it = 5 then "Pizza Box" else if it = 6 then "Mini Tower" else if it = 7 then "Tower" else if it = 8 then "Portable" else if it = 9 then "Laptop" else if it = 10 then "Notebook" else if it = 11 then "Hand Held" else if it = 12 then "Docking Station" else if it = 13 then "All in One" else if it = 14 then "Sub Notebook" else if it = 15 then "Space-Saving" else if it = 16 then "Lunch Box" else if it = 17 then "Main System Chassis" else if it = 18 then "Expansion Chassis" else if it = 19 then "SubChassis" else if it = 20 then "Bus Expansion Chassis" else if it = 21 then "Peripheral Chassis" else if it = 22 then "Storage Chassis" else if it = 23 then "Rack Mount Chassis" else if it = 24 then "Sealed-Case PC" else "No Description") of (integer values of selects "ChassisTypes from Win32_SystemEnclosure" of wmi) + if exists (integer values of selects "ChassisTypes from Win32_SystemEnclosure" of wmi) whose (it = 12 or it = 18 or it = 20 or it = 21) then "Docked" else "Not Docked" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/KB5022842 on Win 2022 (2998680).bes b/Sites/Windows Management/Fixlets/Analyses/KB5022842 on Win 2022 (2998680).bes new file mode 100644 index 000000000..3c3e37d75 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/KB5022842 on Win 2022 (2998680).bes @@ -0,0 +1,33 @@ + + + + + KB5022842 on Win 2022 + Only relevant for Win2022. +Looks up installed hotfix KB5022842 via wmis and checks registry to see check state of secure boot. + +Confirmed to work if both values are True. +It will result in the VM getting tripped up next boot if running on vmware. +Might happen to all Hypervisors, but none in our environment. + +Can be easily modified to look for whatever specific KB you are trying to locate. + + ( (name of it as lowercase = "Win2022" as lowercase ) of operating system) + + x-fixlet-modification-time + Mon, 20 Feb 2023 12:50:53 +0000 + + BESC + (exists (string values of properties "HotFixID" of it) whose (it = "KB5022842") of select objects "HotFixID from Win32_QuickFixEngineering" of wmis) as string + exists it whose(1 = it as integer) of unique values of (it as string) of values "UEFISecureBootEnabled" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" of (x64 registries; x32 registries) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Laptop Battery Audit - Windows (2994755).bes b/Sites/Windows Management/Fixlets/Analyses/Laptop Battery Audit - Windows (2994755).bes new file mode 100644 index 000000000..c195ea529 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Laptop Battery Audit - Windows (2994755).bes @@ -0,0 +1,51 @@ + + + + + Laptop Battery Audit - Windows + This analysis uses a combination of SMBIOS, WMI, and OMCI ( Dell Command | Monitor ) to report on batteries connected to a system. ( in particular laptop batteries, but also battery backups in some cases )

+

The best way to determine if a battery needs replaced is to look at the following properties:  "% battery life in capacity", "Battery Status", and "Battery Manufacture Date"

+

In the case of Dell Systems, the best data will be returned if Dell Command | Monitor (also known as OMCI) is installed. See the fixlet available here to install Dell OMCI:  http://bigfix.me/fixlet/details/3918

+

There is a related analysis for Apple OS X systems available here:  http://bigfix.me/analysis/details/2994537

+

 

+

References:

+

http://dmtf.org/sites/default/files/standards/documents/DSP0134_2.8.0.pdf

+

http://bigfix.me/relevance/details/2999628

+

http://www.dell.com/support/Manuals/us/en/19/Topic/dell-opnmang-clnt-instr-v9.0.0/Dell_Command_Monitor_Ref_Guide-v1/en-us/GUID-0176ACFB-3FF2-4895-9521-33C9BC948F0B

+

http://msdn.microsoft.com/en-us/library/aa394074%28v=vs.85%29.aspx

+

http://blogs.technet.com/b/heyscriptingguy/archive/2010/07/31/using-windows-powershell-to-determine-if-a-laptop-is-on-battery-power.aspx

+

 

+

 

]]>
+ windows of operating system + (exists structures whose(name of it as lowercase = "portable_battery") of smbios) OR (exists selects "* from Win32_Battery" of wmi) OR (exists selects "* from Win32_PortableBattery" of wmis) OR (exists selects "* from DCIM_Battery" of wmis "root\dcim\sysman") + + x-fixlet-modification-time + Thu, 18 Dec 2014 19:32:59 +0000 + + BESC + maxima of ((number of structures whose(name of it as lowercase = "portable_battery") of smbios);(maxima of multiplicities of unique values of (preceding texts of firsts "=" of it) of (it as string) of selects "* from Win32_Battery" of wmis);(maxima of multiplicities of unique values of (preceding texts of firsts "=" of it) of (it as string) of selects "* from DCIM_Battery" of wmis "root\dcim\sysman")) + (name of it as trimmed string & "=" & it as string as trimmed string) of values of structures whose(name of it as lowercase = "portable_battery") of smbios + if not exists (selects "FullChargeCapacity from DCIM_Battery" of wmis "root\dcim\sysman") then ERROR "UNKNOWN" else ( (item 0 of it * 100 / item 1 of it) of (integer value of property "FullChargeCapacity" of it, integer value of property "DesignCapacity" of it) of select objects "* from DCIM_Battery" whose(exists integer values of properties "FullChargeCapacity" of it AND exists integer values of properties "DesignCapacity" of it) of wmis "root\dcim\sysman" ) + unique values whose(it != "") of (it as trimmed string) of string values of (if not exists (selects "Status from DCIM_Battery" of wmis "root\dcim\sysman") then it else (selects "Status from DCIM_Battery" of wmis "root\dcim\sysman")) of (selects "Status from Win32_Battery" of wmis) + unique values of (it / 1000) of significance places 2 of (item 0 of it * item 1 of it) of (value "design_capacity" of it as string as trimmed string as integer as floating point, value "design_capacity_multiplier" of it as string as trimmed string as integer as floating point) of structures "portable_battery" of smbios + unique values of (it / 1000) of significance places 2 of (it as string as trimmed string as integer as floating point) of values "design_voltage" of structures "portable_battery" of smbios + unique values of (it / 100) of significance places 0 of (it * 100) of (item 0 of it / item 1 of it) of (values "design_capacity" of it as string as trimmed string as integer as floating point, values "design_voltage" of it as string as trimmed string as integer as floating point) of structures "portable_battery" of smbios + unique values of (it as string as trimmed string) of values "manufacture_date" of structures "portable_battery" of smbios + (if it != "Unknown" then it else ( if (exists (unique values of (it as string as trimmed string) whose(it != "") of values "sbds_device_chemistry" of structures "portable_battery" of smbios)) then (unique values of (it as string as trimmed string) whose(it != "") of values "sbds_device_chemistry" of structures "portable_battery" of smbios) else "Unknown" )) of unique values of ( if exists it then it else "Unknown" ) of (tuple string items ( (it as string as trimmed string as integer) of values "device_chemistry" of structures "portable_battery" of smbios ) of "Unknown, Other, Unknown, Lead Acid, NiCad, NiMH, LION, Zinc Air, LiP") + unique values whose(it != /* This seems to be what Windows/WMI returns when it doesn't really have an answer: */ 71582788) of integer values of (if not exists (selects "EstimatedRunTime from DCIM_Battery" of wmis "root\dcim\sysman") whose( (exists integer values of it) AND (71582788 != integer value of it) ) then it else (selects "EstimatedRunTime from DCIM_Battery" of wmis "root\dcim\sysman")) of (selects "EstimatedRunTime from Win32_Battery" of wmis) + unique values of (it as trimmed string) whose(it != "") of ((string values of selects "Name from Win32_Battery" of wmis);(string values of selects "Name from DCIM_Battery" of wmis "root\dcim\sysman");((it as string) of values "device_name" of structures "portable_battery" of smbios)) + unique values of (it as trimmed string) whose(it != "") of string values of selects "DeviceID from Win32_Battery" of wmis + unique values of integer values of selects "Availability from Win32_Battery" of wmis + unique values of (tuple string items ( integer values of selects "Chemistry from Win32_Battery" of wmis ) of "Unknown, Other, Unknown, Lead Acid, NiCad, NiMH, LION, Zinc Air, LiP, Unknown") + unique values of (tuple string items ( integer values of selects "Chemistry from Win32_PortableBattery" of wmis ) of "Unknown, Other, Unknown, Lead Acid, NiCad, NiMH, LION, Zinc Air, LiP, Unknown") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Local Admin_User Audit - Windows (2994547).bes b/Sites/Windows Management/Fixlets/Analyses/Local Admin_User Audit - Windows (2994547).bes new file mode 100644 index 000000000..68dd9a92b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Local Admin_User Audit - Windows (2994547).bes @@ -0,0 +1,28 @@ + + + + + Local Admin/User Audit - Windows + This analysis will audit the number of local admins on the system.

+

From here: http://bigfix.me/cdb/analysis/49

]]>
+ (windows of operating system) + (exists local group "Administrators") + + x-fixlet-modification-time + Wed, 10 Jul 2013 17:52:56 +0000 + + BESC + (number of members whose (it as string contains computer name) of local group "Administrators" as string) + (concatenation ", " of (members whose (it as string contains computer name) of local group "Administrators" as string)) + (concatenation ", " of (members whose (it as string contains computer name) of local group "Users" as string)) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Local Client Administrators (78).bes b/Sites/Windows Management/Fixlets/Analyses/Local Client Administrators (78).bes new file mode 100644 index 000000000..ee23e66fb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Local Client Administrators (78).bes @@ -0,0 +1,25 @@ + + + + + Local Client Administrators + Local Administrators + name OF operating system AS lowercase starts with "win" AS lowercase + NOT(name OF operating system AS lowercase starts with "win200" AS lowercase) + + x-fixlet-modification-time + Fri, 09 Mar 2012 16:24:02 +0000 + + BESC + members of local group "Administrators" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Lockout Events from DC (2998671).bes b/Sites/Windows Management/Fixlets/Analyses/Lockout Events from DC (2998671).bes new file mode 100644 index 000000000..9ef52b53f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Lockout Events from DC (2998671).bes @@ -0,0 +1,26 @@ + + + + + Lockout Events from DC + This analysis search the domain controllers security event log for the 4740 (lockout user) event ID. It search in the las 24 hour. 

+

 

]]>
+ windows of operating system + product type of operating system = nt domain controller product type + + x-fixlet-modification-time + Wed, 23 Mar 2022 17:31:52 +0000 + + BESC + computer name, ((month of it as two digits & "/" & day_of_month of it as two digits & "/" & year of it as string) of dates (local time zone) of times generated of it, (time of times (local time zone) of times generated of it), concatenation of substrings separated by "%0d%0a" of (preceding text of first "%0d%0a" of following text of last "Account Name:%09%09" of it) of (descriptions of it)) of records whose (event id of it = 4740 and now - time generated of it < 1*day) of (security event log) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Logged in users with local admin rights (2998581).bes b/Sites/Windows Management/Fixlets/Analyses/Logged in users with local admin rights (2998581).bes new file mode 100644 index 000000000..ee7422592 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Logged in users with local admin rights (2998581).bes @@ -0,0 +1,26 @@ + + + + + Logged in users with local admin rights + This analysis will show any logged in user with local admin rights on their workstation. + windows of operating system + (select ("ProductType from Win32_OperatingSystem") of WMI) as string contains "1" + exists (members whose ((it as a string) contains (name of logged on user)) of local group "administrators") + + x-fixlet-modification-time + Thu, 25 Jan 2018 19:43:39 +0000 + + BESC + (members whose ((it as a string) contains (name of logged on user)) of local group "administrators") + + diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010 verify (WannaCry &co.) (2998568).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010 verify (WannaCry &co.) (2998568).bes new file mode 100644 index 000000000..91ce29b6e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010 verify (WannaCry &co.) (2998568).bes @@ -0,0 +1,27 @@ + + + + + MS17-010 verify (WannaCry &co.) + verify for MS17-010 vulnerability (WannaCry & co.)

+

version query based on https://support.microsoft.com/de-at/help/4023262/how-to-verify-that-ms17-010-is-installed

]]>
+ windows of operating system + + x-fixlet-modification-time + Tue, 06 Jun 2017 14:03:11 +0000 + + BESC + ( ( ((name of it = "Win10" OR Name of it = "Win2016" AND build number of it as string = "14393") of operating system) AND it >= "10.0.14393.953" ) OR ( ((name of it = "Win10" AND build number of it as string = "10586") of operating system) AND it >= "10.0.10586.839") OR ( ((name of it = "Win10" AND build number of it as string = "10240") of operating system) AND it >= "10.0.10240.17319") OR ( ((name of it = "WinVista" OR name of it = "Win2008" ) of operating system) AND (it >= "6.0.6002.19743" OR it >= "6.0.6002.24067") ) OR ( ((name of it = "Win7" OR name of it = "Win2008R2") of operating system) AND it >= "6.1.7601.23689") OR ( ((name of it = "Win8" OR name of it = "Win2012" ) of operating system) AND (it >= "6.2.9200.22099")) OR ( ((name of it = "Win8.1" OR name of it = "Win2012R2" ) of operating system) AND (it >= "6.3.9600.18604")) OR ( ((name of it = "Win2003") of operating system) AND (it >= "5.2.3790.6021")) OR ( ((name of it = "WinXP") of operating system) AND (it >= "5.1.2600.7208")) ) of versions of files "srv.sys" of folders "drivers" of native system folders + operating system + version of file "srv.sys" of folder "drivers" of native system folder +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 _ Windows Server 2008 R2 (2998556).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 _ Windows Server 2008 R2 (2998556).bes new file mode 100644 index 000000000..8676b0a5d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 _ Windows Server 2008 R2 (2998556).bes @@ -0,0 +1,31 @@ + + + + + MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 / Windows Server 2008 R2 + + + + +

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ (name of it = "Win7" or name of it = "Win2008R2") of operating system + + x-fixlet-modification-time + Wed, 17 May 2017 07:24:11 +0000 + + BESC + unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) + "6.1.7601.23689" + if (exists files "srv.sys" whose (version of it < "6.1.7601.23689") of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 _ Windows Server 2012 (2998557).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 _ Windows Server 2012 (2998557).bes new file mode 100644 index 000000000..8c8afcfd3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 _ Windows Server 2012 (2998557).bes @@ -0,0 +1,31 @@ + + + + + MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 / Windows Server 2012 + + + + +

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ ((name of it = "Win8" OR name of it = "Win2012") AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.2") of operating system + + x-fixlet-modification-time + Wed, 17 May 2017 07:24:29 +0000 + + BESC + unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) + "6.2.9200.22099" + if (exists files "srv.sys" whose (version of it < "6.2.9200.22099") of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 _ Windows Server 2012 R2 (2998558).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 _ Windows Server 2012 R2 (2998558).bes new file mode 100644 index 000000000..305d5a664 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 _ Windows Server 2012 R2 (2998558).bes @@ -0,0 +1,31 @@ + + + + + MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 / Windows Server 2012 R2 + + + + +

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ (name of it = "Win8.1" OR name of it = "Win2012R2" OR (name of it = "Win8" OR name of it = "Win2012") AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.3") of operating system + + x-fixlet-modification-time + Wed, 17 May 2017 07:24:48 +0000 + + BESC + unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) + "6.3.9600.18604" + if (exists files "srv.sys" whose (version of it < "6.3.9600.18604") of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista _ Windows Server 2008 (2998560).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista _ Windows Server 2008 (2998560).bes new file mode 100644 index 000000000..99d9c809e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista _ Windows Server 2008 (2998560).bes @@ -0,0 +1,31 @@ + + + + + MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista / Windows Server 2008 + + + + +

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ (name of it = "WinVista" OR name of it = "Win2008") of operating system + + x-fixlet-modification-time + Fri, 19 May 2017 19:49:03 +0000 + + BESC + unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) + if (exists files "srv.sys" whose ((it = "6.0.6002" AND it > "6.0.6002.23000") of version of it) of folders "drivers" of (system folder; native system folder)) then ("6.0.6002.24067") else ("6.0.6002.19743") + if (exists files "srv.sys" whose ((it = "6.0.6002" AND it < "6.0.6002.19743" OR it > "6.0.6002.23000" AND it < "6.0.6002.24067") of version of it) of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MSSQL (2994632).bes b/Sites/Windows Management/Fixlets/Analyses/MSSQL (2994632).bes new file mode 100644 index 000000000..e483dbc00 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/MSSQL (2994632).bes @@ -0,0 +1,44 @@ + + + + + MSSQL + Some info about MS SQL

+

 

+

The latest version of this analysis can be found here:  http://bigfix.me/analysis/details/2994623

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + /* MSSQL */ (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) OR (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer" of native registry) OR ((exists local mssql databases) AND (exists runnings whose(it = TRUE) of local mssql databases)) + + x-fixlet-modification-time + Tue, 28 Jan 2014 22:40:58 +0000 + + BESC + value "SQLPath" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup" of native registry + value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion" of native registry + values "MSSQLSERVER" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry + values "DefaultData" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + values "DefaultLog" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + values "SQLDataRoot" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + values "PatchLevel" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + unique values of (((it as string) of values "Edition" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry);((it as string) of values "EditionType" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) + names of files whose(name of it as lowercase ends with ".mdf") of ((folders "DATA" of folders ((it as string) of values "SQLDataRoot" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) ; folders ((it as string) of values "DefaultData" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) + names of files whose(name of it as lowercase ends with ".ldf") of ((folders "DATA" of folders ((it as string) of values "SQLDataRoot" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) ; folders ((it as string) of values "DefaultLog" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) + values "BackupDirectory" of keys "MSSQLServer" of keys ((it as string) of values "MSSQLSERVER" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + names of files of folders ((it as string) of values "BackupDirectory" of keys "MSSQLServer" of keys ((it as string) of values "MSSQLSERVER" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry) + instance names of local mssql databases + runnings of local mssql databases + (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) + (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer" of native registry) + exists runnings whose(it = TRUE) of local mssql databases +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft Deployment Toolkit - Windows (2998513).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft Deployment Toolkit - Windows (2998513).bes new file mode 100644 index 000000000..1a1eea9da --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft Deployment Toolkit - Windows (2998513).bes @@ -0,0 +1,30 @@ + + + + + Microsoft Deployment Toolkit - Windows + Provides information regarding a Windows Operating System deployed using the Microsoft Deployment Toolkit.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists values "Task Sequence ID" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + BESC + values "Task Sequence ID" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "Task Sequence Name" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "Task Sequence Version" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "ProgressPercent" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "ProgressText" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "Deployment Method" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "Deployment Source" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + (it as date) of (last 2 of it & " " & (substring (4,2) of it as integer as month as three letters) & " " & first 4 of it) of firsts 8 of (values "Deployment Timestamp" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry as string) + values "Deployment Type" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft IIS - Windows (2998511).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft IIS - Windows (2998511).bes new file mode 100644 index 000000000..217a3409e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft IIS - Windows (2998511).bes @@ -0,0 +1,27 @@ + + + + + Microsoft IIS - Windows + Provides information on the currently installed Microsoft IIS environment.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "W3SVC" + BESC + if (exists wmis "ROOT\WebAdministration") then (string values of Selects "Name FROM Site" of wmis "ROOT\WebAdministration") else (string values of properties "ServerComment" of Select objects "ServerComment FROM IIsWebServerSetting" of wmis "ROOT\MicrosoftIISv2") + if (exists wmis "ROOT\WebAdministration") then (string values of selects "PhysicalPath FROM VirtualDirectory" of wmis "ROOT\WebAdministration") else (string values of selects "Path FROM IIsWebVirtualDirSetting" of wmis "ROOT\MicrosoftIISv2") + if (exists wmis "ROOT\WebAdministration") then ((string value of property "Name" of it) of Select objects "Name FROM ApplicationPool" of wmis "ROOT\WebAdministration") else ((following text of first "W3SVC/APPPOOLS/" of string value of property "Name" of it) of Select objects "Name FROM IIsApplicationPool" of wmis "ROOT\MicrosoftIISv2") + unique values of (value "MajorVersion" of it as string & "." & value "MinorVersion" of it as string) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp" of (x64 registries; x32 registries) + unique values of names of values whose (it = 1) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Components" of x32 registry + if (exists wmis "ROOT\WebAdministration") then ((string values of property "UserName" of it, string values of property "PhysicalPath" of it) of select objects "UserName,PhysicalPath FROM VirtualDirectory where UserName != ''" of wmis "ROOT\WebAdministration") else ((string values of property "UNCUserName" of it, string values of property "Path" of it) of select objects "UNCUserName,Path FROM IIsWebVirtualDirSetting where UNCUserName != ''" of wmis "ROOT\MicrosoftIISv2") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft Office Software Protection Licensing Information - KMS - Windows (2994711).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft Office Software Protection Licensing Information - KMS - Windows (2994711).bes new file mode 100644 index 000000000..6d3be1016 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft Office Software Protection Licensing Information - KMS - Windows (2994711).bes @@ -0,0 +1,34 @@ + + + + + Microsoft Office Software Protection Licensing Information - KMS - Windows + Retrieves information about Microsoft Office Software Protection Services.  For use with Office versions 2010 and newer.  (version 14+)

+

This analysis may not be accurate in all cases and may need some refinement for Win8 and the newest version of office.

]]>
+ windows of operating system + exists wmi + = "14.0" as version) of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (registry;native registry)) OR (exists keys "OfficeSoftwareProtectionPlatform" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" of (native registry;registry))]]> + + x-fixlet-modification-time + Fri, 29 Aug 2014 12:58:48 +0000 + + BESC + concatenation "; " of string values of selects "Name from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi + concatenation "; " of unique values of (if it = 0 then "Unlicensed" else if it = 1 then "Licensed" else if it = 2 then "OOB Grace" else if it = 3 then "OOT Grace" else if it = 4 then "NonGenuineGrace" else if it = 5 then "Notification" else "<unkown>") of (integer values of selects "LicenseStatus from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi) + concatenation "; " of unique values of (it as string) of (if exists integer value of it and integer value of it >0 then now + (minute * (integer value of it)) else nothing) of ((selects "GracePeriodRemaining from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi)) + (if exists integer value of it and integer value of it = 1 then "Yes" else "No") of selects "IsKeyManagementServiceMachine from OfficeSoftwareProtectionService" of wmi + concatenation "; " of unique values of (if exists string value of it then preceding text of first " " of following text of last ", " of string value of it as string else nothing) of selects "Description from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi + concatenation "; " of (if exists string value of it then string value of it as string else nothing) of selects "PartialProductKey from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi + concatenation "; " of unique values of (if exists string value of it then string value of it as string else nothing) of selects "DiscoveredKeyManagementServiceMachineName from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi + concatenation "; " of unique values of (it as string) of ( values "KeyManagementServiceName" of it; values "KeyManagementServiceName" of keys of keys of it ) of keys "OfficeSoftwareProtectionPlatform" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" of (native registry;registry) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft Remote Service Settings - Extended - RDP (2994595).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft Remote Service Settings - Extended - RDP (2994595).bes new file mode 100644 index 000000000..74be26316 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft Remote Service Settings - Extended - RDP (2994595).bes @@ -0,0 +1,43 @@ + + + + + Microsoft Remote Service Settings - Extended - RDP + RDP / Terminal Services settings

+

 

+

References:

+

http://etutorials.org/Microsoft+Products/microsoft+windows+server+2003+terminal+services/Chapter+6+Registry/Registry+Keys+for+Terminal+Services/

+

http://support.microsoft.com/kb/243215

+

http://www.sepago.de/e/helge/2007/09/12/programmatically-determining-terminal-server-mode-on-windows-server-2008

+

http://www.whitemiceconsulting.com/2011/10/changing-terminal-services-license-mode.html

]]>
+ windows of operating system + = "5.1"]]> + if( name of operating system starts with "Win" ) then platform id of operating system != 3 AND (if exists property "in proxy agent context" then (not in proxy agent context) else true) else false + + x-fixlet-first-propagation + Mon, 27 Aug 2007 22:53:50 +0000 + + + x-fixlet-modification-time + Fri, 01 Nov 2013 19:06:17 +0000 + + BESC + value "MinEncryptionLevel" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry + value "ProductVersion" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of native registry + (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" whose(value "UserAuthentication" of it = 1) of native registry) + value "ColorDepth" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry + value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry + value "WdName" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry + if (version of operating system <= "6.0") then ERROR "N/A" else (value "LicensingMode" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core" of native registry) + (it as string as version) of value "WdName" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft SQL - Windows (2998470).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft SQL - Windows (2998470).bes new file mode 100644 index 000000000..e4a0faa56 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft SQL - Windows (2998470).bes @@ -0,0 +1,30 @@ + + + + + Microsoft SQL - Windows + Provides information about the SQL Server and Databases on the system.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists wmis ("ROOT\Microsoft\SqlServer\ComputerManagement";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement12") + exists keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL" of (x32 registries;x64 registries) + BESC + unique values of (it as string) of values of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL" of (x32 registries;x64 registries) + unique values of (it as string) of (string values of properties "ServiceName" of it) of SELECT OBJECTS "* FROM SqlServiceAdvancedProperty WHERE PropertyIndex=3 AND PropertyName='CLUSTERED' AND ServiceName='MSSQLSERVER' AND SqlServiceType=1 and PropertyNumValue=1" of (wmis ("ROOT\Microsoft\SqlServer\ComputerManagement12";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement")) whose (exists select objects "* FROM SqlServiceAdvancedProperty WHERE PropertyIndex=3 AND PropertyName='CLUSTERED' AND ServiceName='MSSQLSERVER' AND SqlServiceType=1" of it | false) + unique values of (string value of property "name" of it) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabases'" of wmi)) of wmi + unique values of (string value of property "name" of it) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabaseMirroring'" of wmi)) of wmi + unique values of (string value of property "name" of it) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabaseReplica'" of wmi)) of wmi + unique values of (it as string) of (string value of property "name" of it, (integer value of property "DataFilesSizeKB" of it / 1024) as string & " MB" ) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabases'" of wmi)) of wmi + unique values of integer values of properties "PropertyNumVal" of select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Port'" of (wmis ("ROOT\Microsoft\SqlServer\ComputerManagement12";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement")) whose (exists select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Port'" of it | false) + unique values of string values of properties "PropertyStrVal" of select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Pipe'" of (wmis ("ROOT\Microsoft\SqlServer\ComputerManagement12";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement")) whose (exists select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Pipe'" of it | false) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Missing Fixlets for Available Windows Features (12).bes b/Sites/Windows Management/Fixlets/Analyses/Missing Fixlets for Available Windows Features (12).bes new file mode 100644 index 000000000..82e9094c5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Missing Fixlets for Available Windows Features (12).bes @@ -0,0 +1,27 @@ + + + + + Missing Fixlets for Available Windows Features + This analysis pulls back the results file of our diffDISM.txt file.  This file contains a list of Available Windows Features which we do not have fixlets for. 

+

You can take this data and manually create fixlets for each of these features.

]]>
+ name of operating system starts with "Win" + exists file "diffDISM.txt" of parent folder of client OR exists file "DISM.txt" of parent folder of client + + x-fixlet-modification-time + Tue, 02 Oct 2012 16:51:10 +0000 + + BESC + if exists file "diffDISM.txt" of parent folder of client then lines of file "diffDISM.txt" of parent folder of client else "<no results>" + if exists file "DISM.txt" of parent folder of client then preceding texts of firsts "|" of lines whose (it contains "|" AND NOT(it contains "----------") AND NOT(it contains "Feature Name")) of file "DISM.txt" of parent folder of client as trimmed string else "<no results>" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Network - Windows (2998477).bes b/Sites/Windows Management/Fixlets/Analyses/Network - Windows (2998477).bes new file mode 100644 index 000000000..9853e955c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Network - Windows (2998477).bes @@ -0,0 +1,32 @@ + + + + + Network - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (friendly name of it, dhcp server of it as string | "Static IP") of adapters whose (address of it != "0.0.0.0") of network as string + unique values of (ipv6 dns servers of it as string; addresses of dns servers of it as string) of adapters of network + string values of selects "Domain from Win32_ComputerSystem" of wmi + mac addresses of adapters of network + subnet masks of ip interfaces whose (loopback of it = false) of network + ssids of wifis of adapters of network + encryptions of wifis of adapters of network + (friendly name of it, lease obtained of it as string) of adapters whose (address of it != "0.0.0.0" and exists lease obtained of it) of network as string + (friendly name of it, lease expires of it as string) of adapters whose (address of it != "0.0.0.0" and exists lease expires of it) of network as string + (friendly name of it, lease expires of it - lease obtained of it) of adapters whose (address of it != "0.0.0.0" and exists lease obtained of it and exists lease expires of it) of network + (primary wins servers of it; secondary wins servers of it) of adapters of network +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Network Info - Windows (2994562).bes b/Sites/Windows Management/Fixlets/Analyses/Network Info - Windows (2994562).bes new file mode 100644 index 000000000..a6873cfc5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Network Info - Windows (2994562).bes @@ -0,0 +1,28 @@ + + + + + Network Info - Windows + + (windows of operating system) + + x-fixlet-modification-time + Fri, 09 Aug 2013 14:32:45 +0000 + + BESC + ((unique value of it/(1000*1000)) as string & " Mbps") of link speeds of adapters whose (link speed of it = maximum of link speeds of adapters whose (up of it AND (friendly name of it as lowercase contains "ethernet" OR friendly name of it as lowercase contains "local area connection")) of networks) of networks + ((it/(1000*1000)) as string & " Mbps") of maximum of link speeds of adapters of networks + ((it/(1000*1000)) as string & " Mbps") of maximum of link speeds of adapters whose(up of it) of networks + friendly names of adapters of networks + if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" of native registry) then (concatenation "; " of unique values of (it as string) of values "Description" whose(it as string does not contain "Network") of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" of native registry) else ERROR "no networks found" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Operating System - Windows (2998541).bes b/Sites/Windows Management/Fixlets/Analyses/Operating System - Windows (2998541).bes new file mode 100644 index 000000000..e75142260 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Operating System - Windows (2998541).bes @@ -0,0 +1,31 @@ + + + + + Operating System - Windows + Provides information regarding the installed Windows Operating System.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (if (value "ProductType" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" of registry = "WinNT" | ERROR "Unknown Operating System Type") then "Workstation" else "Server") + time value of (select "InstallDate from win32_operatingsystem" of wmi | ERROR "No Install Date found in WMI") + system language + user language + architecture of operating system + unique values of (concatenations of (it as string)) of (if (exists true whose (if true then (exists select object "* from Win32_ServerFeature" of wmi) else false)) then (string values of (selects "Name from Win32_ServerFeature" of wmi)) else "None") + if ((select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25')" of wmi) as string contains "1") then "Activated" else "Not Activated" + maximum of (it as string as version) of values "PowerShellVersion" of keys "PowerShellEngine" of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of native registry + maximum of (it as string as version) of values "Version" of keys "Client" of keys of keys "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + maximum of (it as string as version) of values "Version" of keys "Full" of keys of keys "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - Expanded (2994800).bes b/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - Expanded (2994800).bes new file mode 100644 index 000000000..e18c1d0d4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - Expanded (2994800).bes @@ -0,0 +1,70 @@ + + + + + Operating System Information (Windows) - Expanded + + + +http://support.bigfix.com/inspectors/System%20Objects_Win.html#operating%20system +

This analysis contains information about the Microsoft Windows operating system on BES Client computers. This is an expanded version of the analysis provided by IBM.

+

Since this information does not change much and its evaluation can be resource intensive, most of these properties are only evaluated once per day.

+

After activating this analysis, you will see the following properties:

+
    +
  • Full OS Name and Service Pack Level +
  • OS Architecture +
  • OS Version Number +
  • OS Type +
  • Product ID +
  • Product Key (Win95, Win98, WinME only) +
  • Installation Date +
  • Uptime (days) [BES Clients >= 5.1] +
  • OS Language (Language of the installed OS) +
  • System Language   +
  • User Language (Default)
+

Note: Many of these properties access the Windows Management Interface (WMI) to obtain the hardware properties. The WMI is not usually available on Win9x and WinNT computers so some properties may report back "N/A" on those operating systems.

+

Note: Some computers may have broken WMI libraries. Inconsistent results and undesired side effects may occur when the BES Client evaluates a WMI query. If you have known problems with WMI in your environment, do not activate this analysis.

+

 

Latest version of this analysis is found here: http://bigfix.me/analysis/details/2994629 ]]>
+ name of operating system as lowercase starts with "win" + (if (name of operating system starts with "Win") then platform id of operating system != 3 else true) AND (if exists property "in proxy agent context" then (not in proxy agent context) else true) AND (if exists property "android" of type "operating system" then (not android of operating system) else true) + = "5.0"]]> + + x-fixlet-first-propagation + Tue, 31 May 2005 18:57:12 +0000 + + + x-fixlet-modification-time + Wed, 28 Jan 2015 19:20:54 +0000 + + BESC + if (exists wmi AND (not (name of operating system = "WinME" ))) then (string value of selects "caption from win32_operatingsystem" of wmi & " " & csd version of operating system) else ( "Windows " & (following text of first "Win" of (name of operating system as string)) & (if (name of operating system = "WinNT" ) then ((if (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" whose (exists value "ProductType" of it AND (value "ProductType" of it as string as lowercase = "servernt" OR value "ProductType" of it as string as lowercase = "lanmannt" )) of registry) then (if (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" whose (exists value "ProductSuite" of it AND value "ProductSuite" of it as string as lowercase contains "terminal" ) of registry) then " Terminal Server" else " Server" ) else " Workstation" ) & " " & csd version of operating system) else (if (name of operating system = "Win98" ) then (if (csd version of operating system as string contains "A" ) then " Second Edition" else "" ) else (if (name of operating system = "Win95" ) then (if (csd version of operating system as string contains "C" OR csd version of operating system as string contains "B" ) then " OSR2" else "" ) else " " & csd version of operating system )))) + if (ia64 of operating system) then "Itanium 64-bit" else (if (x64 of operating system) then "64-bit" else "32-bit") + version of operating system + if (name of operating system as lowercase starts with "win") then (if (name of operating system = "Win95" OR name of operating system = "Win98" or name of operating system = "WinME") then "Workstation" else (if (value "ProductType" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" of registry = "WinNT") then "Workstation" else "Server")) else "Unknown - " & name of operating system + (if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" whose (exists value "ProductId" of it) of native registry AND NOT (name of operating system = "WinNT")) then (value "ProductId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" of native registry as string) else (if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" whose (exists value "ProductId" of it) of native registry) then (value "ProductId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string) else "Unknown")) + if (name of operating system = "Win95" AND exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" whose (exists value "ProductId" of it) of registry) then (value "ProductId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" of registry as string) else (if ((name of operating system = "Win98" OR name of operating system = "WinME") AND exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" whose (exists value "ProductKey" of it) of registry) then (value "ProductKey" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" of registry as string) else ("Unknown")) + if (exists wmi AND exists selects "InstallDate from win32_operatingsystem" of wmi AND not ((string value of selects "InstallDate from win32_operatingsystem" of wmi) = "")) then ((first 4 of (first 8 of string value of (selects "InstallDate from Win32_OperatingSystem" of wmi))) & "-" & (first 2 of (last 4 of (first 8 of string value of (selects "InstallDate from Win32_OperatingSystem" of wmi)))) & "-" & (last 2 of (first 8 of string value of (selects "InstallDate from Win32_OperatingSystem" of wmi)))) else ("N/A") + (if it = 1 then it as string & " day" else it as string & " days") of ((uptime of operating system) / day) + language of version block of file "kernel32.dll" of system folder & (if (exists key "HKLM\System\CurrentControlSet\Control\Nls\MUILanguages" of registry AND exists value of key "HKLM\System\CurrentControlSet\Control\Nls\MUILanguages" of registry) then " | MUI Installed" else "") + system language + user language + value of variable "ProgramFiles" of environment + architecture of operating system + boot time of operating system + if(version of operating system >= "6.0") then (product info string of operating system) else NOTHING + platform id of operating system + (if (it = nt workstation product type) then "Workstation" else if (it = nt server product type) then "Server" else if (it = nt domain controller product type) then "DomainController" else "Unknown") of (product type of operating system) + performance counter frequency of operating system + performance counter of operating system + unique values of (it as string as trimmed string) of values "ProductName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of (x32 registries;x64 registries) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - metric inspector (2994628).bes b/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - metric inspector (2994628).bes new file mode 100644 index 000000000..ced9ee276 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - metric inspector (2994628).bes @@ -0,0 +1,42 @@ + + + + + Operating System Information (Windows) - metric inspector + +

metric <integer> of operating system

+

http://support.bigfix.com/inspectors/System%20Objects_Win.html#operating%20system

+

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724385(v=vs.85).aspx

]]>
+ = "8.0"]]> + /* Windows Only */ windows of operating system + + x-fixlet-modification-time + Tue, 28 Jan 2014 17:13:39 +0000 + + BESC + metric 67 /* SM_CLEANBOOT */ of operating system + metric 89 /* SM_SERVERR2 */ of operating system + metric 73 /* SM_SLOWMACHINE */ of operating system + metric 88 /* SM_STARTER */ of operating system + metric 87 /* SM_MEDIACENTER */ of operating system + metric 86 /* SM_TABLETPC */ of operating system + metric 80 /* SM_CMONITORS */ of operating system + metric 19 /* SM_MOUSEPRESENT */ of operating system + metric 43 /* SM_CMOUSEBUTTONS */ of operating system + metric 91 /* SM_MOUSEHORIZONTALWHEELPRESENT */ of operating system + metric 75 /* SM_MOUSEWHEELPRESENT */ of operating system + metric 82 /* SM_IMMENABLED */ of operating system + metric 41 /* SM_PENWINDOWS */ of operating system + metric 94 /* SM_DIGITIZER */ of operating system + metric 95 /* SM_MAXIMUMTOUCHES */ of operating system +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/PageFile - Windows (2994592).bes b/Sites/Windows Management/Fixlets/Analyses/PageFile - Windows (2994592).bes new file mode 100644 index 000000000..7fac97f25 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/PageFile - Windows (2994592).bes @@ -0,0 +1,29 @@ + + + + + PageFile - Windows + + windows of operating system + exists wmi + = "5.1"]]> + + x-fixlet-modification-time + Thu, 31 Oct 2013 16:39:11 +0000 + + BESC + string values of selects "InitialSize from Win32_PageFileSetting" of wmi + string values of selects "MaximumSize from Win32_PageFileSetting" of wmi + string values of selects "Name from Win32_PageFileSetting" of wmi + sum of sizes of files (string values of selects "Name from Win32_PageFileSetting" of wmi) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Pagefile - Win_Mac (2998262).bes b/Sites/Windows Management/Fixlets/Analyses/Pagefile - Win_Mac (2998262).bes new file mode 100644 index 000000000..4cf9d0cff --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Pagefile - Win_Mac (2998262).bes @@ -0,0 +1,22 @@ + + + + + Pagefile - Win\Mac + Information about Pagefile across Mac and Windows

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ NOT in proxy agent context + windows of operating system or mac of operating system + BESC + sum of sizes of (if (Windows of Operating System) then (files "pagefile.sys" of folders ((name of it & "\") of drives)) else (if (Mac of Operating System) then (files whose (name of it starts with "swapfile") of folder "/private/var/vm") else (ERROR "Unknown"))) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Pagefile - Windows (2998263).bes b/Sites/Windows Management/Fixlets/Analyses/Pagefile - Windows (2998263).bes new file mode 100644 index 000000000..030ce9ef8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Pagefile - Windows (2998263).bes @@ -0,0 +1,23 @@ + + + + + Pagefile - Windows + Covers Pagefile configuration for Windows

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (preceding text of first " " of it | it, preceding text of first " " of following text of first " " of it | "Default", following text of first " " of following text of first " " of it | "Default") of (substrings separated by "%00" whose (it != "") of (value "PagingFiles" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" of native registry as string)) + if (value "ClearPageFileAtShutdown" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" of native registry as string = "0") then "Disabled" else "Enabled" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Pending Restart - Windows (2998394).bes b/Sites/Windows Management/Fixlets/Analyses/Pending Restart - Windows (2998394).bes new file mode 100644 index 000000000..8f2a2c060 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Pending Restart - Windows (2998394).bes @@ -0,0 +1,26 @@ + + + + + Pending Restart - Windows + Provides information on the various sources that the BigFix Agent uses when assessing whether a Windows computer has a pending restart.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ pending restart + windows of operating system + BESC + substrings separated by "%00" whose (it != "") of (values "PendingFileRenameOperations" of keys "HKLM\System\CurrentControlSet\Control\Session Manager" of native registry as string) + names of values of keys "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry + exists key "HKLM\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry + values "Flags" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\UpdateExeVolatile" of native registry + values whose (it != "") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\BESPendingRestart" of x32 registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Power - Configuration - Windows (2998419).bes b/Sites/Windows Management/Fixlets/Analyses/Power - Configuration - Windows (2998419).bes new file mode 100644 index 000000000..e6f8d8a5a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Power - Configuration - Windows (2998419).bes @@ -0,0 +1,29 @@ + + + + + Power - Configuration - Windows + For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (following text of last "," of preceding text of first "%00" of it | preceding text of first "%00" of it) of (it as string) of value "FriendlyName" of key ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry + (following text of last "," of preceding text of first "%00" of it | preceding text of first "%00" of it) of (it as string) of values "FriendlyName" of keys of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry + preceding texts of firsts "%00" of following texts of lasts "," of (/* Group Policy Comes First */ (value "ACSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\5ca83367-6e45-459f-a27b-476b1d01c936" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "AcSettingIndex" of keys "4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "AcSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936\DefaultPowerSchemeValues" of native registry) as string)) + preceding texts of firsts "%00" of following texts of lasts "," of (/* Group Policy Comes First */ (value "DCSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\5ca83367-6e45-459f-a27b-476b1d01c936" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "DCSettingIndex" of keys "4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "DCSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936\DefaultPowerSchemeValues" of native registry) as string)) + /* Group Policy Comes First */ (value "ACSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\6738e2c4-e8a5-4a42-b16a-e040e769756e" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "AcSettingIndex" of keys "0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "AcSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" + /* Group Policy Comes First */ (value "DCSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\6738e2c4-e8a5-4a42-b16a-e040e769756e" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "DCSettingIndex" of keys "0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "DCSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" + /* Group Policy Comes First */ (value "ACSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "AcSettingIndex" of keys "238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "AcSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" + /* Group Policy Comes First */ (value "DCSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "DCSettingIndex" of keys "238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "DCSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Power Plan Settings - Windows TODO (2994762).bes b/Sites/Windows Management/Fixlets/Analyses/Power Plan Settings - Windows TODO (2994762).bes new file mode 100644 index 000000000..338a85873 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Power Plan Settings - Windows TODO (2994762).bes @@ -0,0 +1,27 @@ + + + + + Power Plan Settings - Windows TODO + + windows of operating system + = "6.0"]]> + + x-fixlet-modification-time + Thu, 29 Jan 2015 17:32:58 +0000 + + BESC + unique values of (preceding texts of lasts "%00" of following texts of lasts "," of it) of (it as string as trimmed string) of values "FriendlyName" of keys of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) + unique values of (preceding texts of lasts "%00" of following texts of lasts "," of it) of (it as string as trimmed string) of values "FriendlyName" of keys whose( (set of unique values of (it as string as trimmed string) of values "PreferredPlan" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{025A5937-A6BE-4686-A844-36FE4BEC8B6D}" of (x64 registries;x32 registries) ) contains (name of it)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) + unique values of (preceding texts of lasts "%00" of following texts of lasts "," of it) of (it as string as trimmed string) of values "FriendlyName" of keys whose( (set of unique values of (it as string as trimmed string) of values "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) ) contains (name of it) ) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/PowerShell x64 Status (19).bes b/Sites/Windows Management/Fixlets/Analyses/PowerShell x64 Status (19).bes new file mode 100644 index 000000000..165d7800e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/PowerShell x64 Status (19).bes @@ -0,0 +1,31 @@ + + + + + PowerShell x64 Status + Pull back status on the PowerShell installation on this system. + name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + x64 of operating system + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:29:13 +0000 + + BESC + value "ApplicationBase" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry + value "PowerShellVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry + value "PSCompatibleVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry + value "RuntimeVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry + value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry + value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" of x64 registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status (20).bes b/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status (20).bes new file mode 100644 index 000000000..ef917d9f7 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status (20).bes @@ -0,0 +1,30 @@ + + + + + PowerShell x86 Status + Pull back status on the PowerShell installation on this system. + name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:29:24 +0000 + + BESC + value "ApplicationBase" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry + value "PowerShellVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry + value "PSCompatibleVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry + value "RuntimeVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry + value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry + value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" of registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status - Windows (2994540).bes b/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status - Windows (2994540).bes new file mode 100644 index 000000000..63359ff83 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status - Windows (2994540).bes @@ -0,0 +1,43 @@ + + + + + PowerShell x86 Status - Windows + Located here: http://bigfix.me/cdb/analysis/89

+

Based upon this: http://bigfix.me/cdb/analysis/20

Pull back status on the PowerShell installation on this system.

]]>
+ exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + windows of operating system + + bigfixme-added-time + Wed, 17 Oct 2012 09:32:22 GMT + + + bigfixme-modification-time + Wed, 17 Oct 2012 09:37:41 GMT + + + bigfixme-keywords + PowerShell Status Pull ApplicationBase PowerShellVersion + + + x-fixlet-modification-time + Wed, 26 Jun 2013 21:29:49 +0000 + + BESC + value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry + value "ApplicationBase" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry + value "PowerShellVersion" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry + value "PSCompatibleVersion" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry + value "RuntimeVersion" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry + if (not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" whose(exists value "ExecutionPolicy" of it) of registry) then ERROR "no ExecutionPolicy set" else (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" whose(exists value "ExecutionPolicy" of it) of registry) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Primary User - Windows (2995831).bes b/Sites/Windows Management/Fixlets/Analyses/Primary User - Windows (2995831).bes new file mode 100644 index 000000000..34f9227a7 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Primary User - Windows (2995831).bes @@ -0,0 +1,31 @@ + + + + + Primary User - Windows + This analysis attempts to identify the Primary User of the system.

+

 

]]>
+ windows of operating system + + x-fixlet-modification-time + Mon, 25 Jan 2016 23:39:57 +0000 + + BESC + ERROR "NotYetWritten" + unique values of (it as string as trimmed string) of values of settings whose("PrimaryUser" = name of it) of clients + unique values of names of users whose( logon count of it = maximum of logon counts of users ) + unique values of items 1 of (modification time of it,name of parent folder of it) whose( item 0 of it = ( maximum of modification times of files "NTUSER.DAT" of folders whose ( exists file "NTUSER.DAT" of it AND name of it as lowercase is not contained by set of ( "networkservice";"localservice";"administrator";"default";"public";"la-client";"OTHER_EXCLUDED_USERS" ) ) of (folders "c:\users"; folders "c:\Documents and Settings") ) ) of files "NTUSER.DAT" of folders whose ( exists file "NTUSER.DAT" of it AND name of it as lowercase is not contained by set of ( "networkservice";"localservice";"administrator";"default";"public";"la-client";"OTHER_EXCLUDED_USERS" ) ) of (folders "c:\users"; folders "c:\Documents and Settings") + ("%22" & it & "%22") of concatenations "%22;%22" of unique values of (names of logged on users; names of users; names of current users; names of local users) + unique values of (preceding texts of lasts "'" of following texts of firsts "User interface process started for user '" of it) of lines whose(it contains "User interface process started for user '") of files whose( (exists lines of it) AND (name of it as uppercase ends with ".LOG") AND ( (name of it starts with ((it as string) of ( current year )) ) OR (name of it starts with ((it as string) of ( current year - 1*year )) ) ) ) of folders "__Global/Logs" of ((data folder of client)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client)) + (it) whose( multiplicity of it = maximum of multiplicities of unique values of (preceding texts of lasts "'" of following texts of firsts "User interface process started for user '" of it) of lines whose(it contains "User interface process started for user '") of files whose( (exists lines of it) AND (name of it as uppercase ends with ".LOG") AND ( (name of it starts with ((it as string) of ( current year )) ) OR (name of it starts with ((it as string) of ( current year - 1*year )) ) ) ) of folders "__Global/Logs" of (data folder of client) ) of unique values of (preceding texts of lasts "'" of following texts of firsts "User interface process started for user '" of it) of lines whose(it contains "User interface process started for user '") of files whose( (exists lines of it) AND (name of it as uppercase ends with ".LOG") AND ( (name of it starts with ((it as string) of ( current year )) ) OR (name of it starts with ((it as string) of ( current year - 1*year )) ) ) ) of folders "__Global/Logs" of (data folder of client) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Printer Audit - Windows (2994742).bes b/Sites/Windows Management/Fixlets/Analyses/Printer Audit - Windows (2994742).bes new file mode 100644 index 000000000..2f498768d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Printer Audit - Windows (2994742).bes @@ -0,0 +1,43 @@ + + + + + Printer Audit - Windows + This Analysis provides information about Windows Printers.

+

 

+

Related:

+

https://www.ibm.com/developerworks/community/forums/html/topic?id=d0fa8b7c-9d26-420c-b82b-fbe307f3f4b1&ps=100

+

 

+

References:

+

http://www.stigviewer.com/stig/windows_7/2014-04-02/finding/V-21963

+

http://www.scaprepo.com/view.jsp?id=CCE-18881-3

+

 

]]>
+ windows of operating system + + x-fixlet-modification-time + Fri, 17 Oct 2014 14:48:24 +0000 + + BESC + number of keys whose (value "Port" of it as string contains "LPT" OR value "Port" of it as string contains "DOT4" OR value "Port" of it as string contains "USB") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string + number of keys whose (4 = number of substrings separated by "." of (value "Port" of it as string)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string + concatenation ", " of unique values of names whose(it as string does not contain "Microsoft" AND it as string does not contain "PDF" AND it as string as lowercase does not contain "fax" AND it as string does not contain "OneNote" AND it as string does not contain "PaperPort") of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry + concatenation ", " of unique values of (values "Model" whose(it as string does not contain "Microsoft" AND it as string does not contain "PDF" AND it as string as lowercase does not contain "fax" AND it as string does not contain "OneNote" AND it as string does not contain "PaperPort") of keys of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string) + concatenation ", " of (unique values whose(it as string does not contain "Microsoft" AND it as string does not contain "PDF" AND it as string as lowercase does not contain "fax" AND it as string does not contain "OneNote" AND it as string does not contain "PaperPort") of preceding texts of firsts "," of ((values "Device" of keys "windows" whose ( exists values "Device" of it ) of keys "Software\Microsoft\Windows NT\CurrentVersion" of keys of key "HKEY_USERS" of registry) as string) as string) + selects "Name,Caption,DeviceID,DriverName,PortName from win32_printer" of wmi + unique values whose(not exists (it as lowercase) whose(it = "fax" OR it contains "webex " OR it contains " converter" OR it contains " virtual printer" OR it contains " publisher imagesetter" OR it contains " onenote " OR it contains "microsoft " OR it contains "pdf")) of string values of selects "Name,Caption,DeviceID,DriverName from win32_printer" of wmi + (friendly name of it | "<noFriName>", description of it | "<noDesc>", manufacturer of it | "<noManuf>", location information of it | "<noLocInfo>" ) of active devices whose(class of it = "PrintQueue" OR class of it = "Printer") + values "DoNotInstallCompatibleDriverFromWindowsUpdate" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print" of native registry + unique values of names of keys of keys "Control\Print\Printers" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry + unique values of names of keys of keys whose(name of it starts with "Version-") of keys "Drivers" of keys of keys "Control\Print\Environments" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry + unique values whose(not exists (it as lowercase) whose(it = "fax" OR it contains "root print " OR it contains "remote desktop " OR it contains "webex " OR it contains " converter" OR it contains " virtual printer" OR it contains " publisher imagesetter" OR it contains " onenote " OR it contains "microsoft " OR it contains "pdf")) of ( (string values of selects "Name,Caption,DeviceID,DriverName from win32_printer" of wmi);( names of keys of keys "Control\Print\Printers" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry );( names of keys of keys whose(name of it starts with "Version-") of keys "Drivers" of keys of keys "Control\Print\Environments" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry );(values "Model" of keys of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string);(( if (exists friendly name of it) then (friendly names of it) else (descriptions of it) ) of active devices whose(class of it = "PrintQueue" OR class of it = "Printer")) ) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Printers - Windows (2998542).bes b/Sites/Windows Management/Fixlets/Analyses/Printers - Windows (2998542).bes new file mode 100644 index 000000000..3a9b79296 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Printers - Windows (2998542).bes @@ -0,0 +1,23 @@ + + + + + Printers - Windows + Analysis of local and AD installed printers for Windows systems only

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + (value "name" of it, value "printer driver" of it, value "port" of it) of keys whose (value "Port" of it as string contains "LPT" OR value "Port" of it as string contains "DOT4" OR value "Port" of it as string contains "USB" OR value "Port" of it as string contains ".") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry + unique values of (it as string) of (values "printShareName" of keys "DsSpooler" of it, values "description" of keys "DsSpooler" of it, values "location" of keys "DsSpooler" of it, values "Printer Driver" of it, values "portName" of keys "DsSpooler" of it, values "ShortServerName" of keys "DsSpooler" of it) of keys of keys whose (name of it = "Printers" ) of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider\Servers" of registry + unique values of (it as string) of (name of it, value "DriverVersion" of it) of keys of keys of keys "Drivers" of keys of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Environments" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Random Access Memory (RAM) Properties (Windows) - Extended (2994574).bes b/Sites/Windows Management/Fixlets/Analyses/Random Access Memory (RAM) Properties (Windows) - Extended (2994574).bes new file mode 100644 index 000000000..8afbe1b1f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Random Access Memory (RAM) Properties (Windows) - Extended (2994574).bes @@ -0,0 +1,32 @@ + + + + + Random Access Memory (RAM) Properties (Windows) - Extended + Decoding many of the results of this analysis requires reading the SMBIOS spec found here: http://dmtf.org/standards/smbios

+

If the "smbios" inspector works on other OSes other than Windows, then this analysis should work there too.

+

This analysis can be found here: http://bigfix.me/analysis/details/2994573

]]>
+ exists smbios + + x-fixlet-modification-time + Tue, 17 Sep 2013 18:42:07 +0000 + + BESC + unique values of (values "memory_type" of structures "memory_device" whose(value "speed" of it as string != "0") of smbios as string) + unique values of (values "speed" whose(it as string != "0") of structures "memory_device" of smbios as string) + unique values of (values "manufacturer" whose(it as string != "[Empty]" AND it as string as trimmed string does not start with "FFFFFFFFFFFF" AND it as string as trimmed string != "") of structures "memory_device" of smbios as string) + unique values of (values "form_factor" of structures "memory_device" of smbios as string) + unique values of (values "part_number" whose(it as string != "[Empty]" AND it as string as trimmed string != "" AND it as string as trimmed string does not start with "FFFFFF") of structures "memory_device" of smbios as string) + unique values of (values "asset_tag" whose(it as string != "[Empty]" AND it as string as trimmed string != "" AND it as string as trimmed string does not start with "FFFFFF") of structures "memory_device" of smbios as string) + unique values of (values "serial_number" whose(it as string != "[Empty]" AND it as string as trimmed string != "" AND it as string as trimmed string != "00000000" AND it as string as trimmed string does not start with "FFFFFF") of structures "memory_device" of smbios as string) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Real-time Downtime Validation (2998602).bes b/Sites/Windows Management/Fixlets/Analyses/Real-time Downtime Validation (2998602).bes new file mode 100644 index 000000000..a5ab07718 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Real-time Downtime Validation (2998602).bes @@ -0,0 +1,34 @@ + + + + + Real-time Downtime Validation + This analysis provides the ability to track DC services, Shares, and Reboot status in a real-time report. Servers do not need to be a Domain controller to use this report but they will show false for all ADS services and shares.

+

Note: Currently the Relevance for this Analysis pulls all endpoints with any windows OS. if you are going to target just a subset of devices change the Relevance to Computer groups (manual or Dynamic), By Active Directory OU, etc. to filter to the devices you want.

]]>
+ windows of operating system + + x-fixlet-modification-time + Mon, 03 Feb 2020 20:34:53 +0000 + + BESC + if not exists service "ADWS" then "Not Installed" else if exists service "ADWS" then if exists running service "ADWS" then "Running" else "Stopped" else "Pending" + if not exists service "NTDS" then "Not Installed" else if exists service "NTDS" then if exists running service "NTDS" then "Running" else "Stopped" else "Pending" + if not exists service "Parity" then "Not Installed" else if exists service "Parity" then if exists running service "Parity" then "Running" else "Stopped" else "Pending" + if not exists (service) whose (it as string as lowercase contains "CiscoAmp" as lowercase) then "Not Installed" else if exists (service) whose (it as string as lowercase contains "CiscoAmp" as lowercase) then if exists (running service) whose (it as string as lowercase contains "CiscoAmp" as lowercase) then "Running" else "Stopped" else "Pending" + if not exists service "SCSM" then "Not Installed" else if exists service "SCSM" then if exists running service "SCSM" then "Running" else "Stopped" else "Pending" + if not exists service "CCmExec" then "Not Installed" else if exists service "CCmExec" then if exists running service "CCmExec" then "Running" else "Stopped" else "Pending" + if not exists service "SEPMasterService" then "Not Installed" else if exists service "SEPMasterService" then if exists running service "SEPMasterService" then "Running" else "Stopped" else "Pending" + uptime of operating system + if (exists key "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry) then "Updates" else if (exists key "HKLM\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry) then ("CBS") else if (exists value "UpdateExeVolatile" of keys "HKLM\Software\Microsoft\Updates" of native registry) then (" UpdateExeVolatile") else ("No") + Exists (folder("\\" & (computer name as string) & "\sysvol")) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Configuration - Windows (2998523).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Configuration - Windows (2998523).bes new file mode 100644 index 000000000..6ef231be9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Configuration - Windows (2998523).bes @@ -0,0 +1,31 @@ + + + + + Remote Assistance - Configuration - Windows + Provides information regarding the remote assistance configuration of a computer.

+

Specifically providing information on the states of the following settings

+
    +
  • Detailed Logging +
  • Unsolicited remote assistance (View) +
  • Unsolicited remote assistance (Control) +
  • Users and Groups allowed to initiate offers to this computer
+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + exists key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry + BESC + if ((value "LoggingEnabled" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer = 1) | false) then "Enabled" else "Disabled" | "Disabled" + if ((value "fAllowUnsolicited" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer = 1) | false) then "Enabled" else "Disabled" | "Disabled" + if ((value "fAllowUnsolicitedFullControl" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer = 1) | false) then "Enabled" else "Disabled" | "Disabled" + if (exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services\RAUnsolicit" of registry) then (names of values of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services\RAUnsolicit" of registry) else ("none") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Event Logs - Windows (2998524).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Event Logs - Windows (2998524).bes new file mode 100644 index 000000000..c91bdef30 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Event Logs - Windows (2998524).bes @@ -0,0 +1,25 @@ + + + + + Remote Assistance - Event Logs - Windows + Pulls data from the Remote Assistance event log.

+

For outgoing remote assistance requests: Who they were to, who made the request, and what time

+

For incoming remote assistance requests: Who received it, and what time (not possible to tell who made the request)

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + exists event log "Microsoft-Windows-RemoteAssistance/Operational" | false + BESC + (time generated of it, name of user of user sid of it, substring before "as the command line" of substring after "with:" of description of it as string) of (records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) of event log "Microsoft-Windows-RemoteAssistance/Operational") whose (description of it contains "as the command line parameters" and description of it does not contain "CreateRA") + (name of user of user sid of it, time generated of it) of (records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) of event log "Microsoft-Windows-RemoteAssistance/Operational") whose (description of it contains "A Remote Assistance Invitation was successfully opened.") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Session Logs - Windows (2998525).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Session Logs - Windows (2998525).bes new file mode 100644 index 000000000..61385f150 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Session Logs - Windows (2998525).bes @@ -0,0 +1,43 @@ + + + + + Remote Assistance - Session Logs - Windows + Pulls data from the Remote Assistance session logs in each user's documents folder.

+

For ALL incoming connections that are established the following is collected:

+
    +
  • Full name of originating user +
  • IP address of originating request +
  • Date of request +
  • Time of request
+

For incoming connections where control is granted, the following is collected:

+
    +
  • Full name of originating user +
  • IP address of originating request +
  • Date of request +
  • Time of request
+

For all sessions, the following is collected:

+
    +
  • Full name of originating user +
  • Date of session start +
  • Time of session start +
  • Date of session end +
  • Time of session end
+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + + BESC + (xpath "CONNECTION_ESTABLISHED" of it as text, xpath "INCOMING_IP_ADDRESS" of it as text, node value of attribute "DATE" of xpath "CONNECTION_ESTABLISHED" of it as string, node value of attribute "TIME" of xpath "CONNECTION_ESTABLISHED" of it as string) of xpaths "/SESSION" of xml documents whose (exists xpath "/SESSION/INVITATION_OPENED" of it) of files of folders "Remote Assistance Logs" of folders "Documents" of folders of folder (name of drive of system folder & "\Users") + (xpath "CONNECTION_ESTABLISHED" of it as text | "none", xpath "INCOMING_IP_ADDRESS" of it as text | "none", node value of attribute "DATE" of xpath "EXPERT_CONTROL_STARTED" of it as string | "none", node value of attribute "TIME" of xpath "EXPERT_CONTROL_STARTED" of it as string | "none") of xpaths "/SESSION" of xml documents whose (exists xpath "/SESSION/EXPERT_CONTROL_STARTED" of it and exists xpath "/SESSION/INVITATION_OPENED" of it) of files of folders "Remote Assistance Logs" of folders "Documents" of folders of folder (name of drive of system folder & "\Users") + (xpath "CONNECTION_ESTABLISHED" of it as text | "none", attribute "DATE" of xpath "CONNECTION_ESTABLISHED" of it as text | "none", attribute "TIME" of xpath "CONNECTION_ESTABLISHED" of it as text | "none", attribute "DATE" of xpath "CONNECTION_ENDED" of it as text | "none", attribute "TIME" of xpath "CONNECTION_ENDED" of it as text | "none") of xpaths "/SESSION" of xml documents whose (exists xpath "/SESSION/INVITATION_OPENED" of it) of files of folders "Remote Assistance Logs" of folders "Documents" of folders of folder (name of drive of system folder & "\Users") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Windows (2998526).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Windows (2998526).bes new file mode 100644 index 000000000..ac3780a11 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Windows (2998526).bes @@ -0,0 +1,25 @@ + + + + + Remote Assistance - Windows + This Analysis gathers enabled and install state data regarding Remote Assistance.

+

 

+

Remote Assistance is by default not enabled or installed on Windows Server Operating Systems

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + = "6.1"]]> + BESC + if (name of operating system as string starts with "Win2") then (exists selects "* from Win32_ServerFeature where (Name like 'Remote Assistance')" of wmi) else (if (version of operating system >= "6.1") then (true) else (false)) + (value "fAllowUnsolicitedFullControl" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer | 0) = 1 +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Desktop - Session Logs - Windows (2998527).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Desktop - Session Logs - Windows (2998527).bes new file mode 100644 index 000000000..b532898c9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Desktop - Session Logs - Windows (2998527).bes @@ -0,0 +1,22 @@ + + + + + Remote Desktop - Session Logs - Windows + Provides information about previous remote desktop sessions on the system.

+

NOTE: Due to issues with how BigFix parses the event log: https://forum.bigfix.com/t/the-event-record-inspector-is-returning-an-error-for-the-description-of-the-event/17006 this will NOT return results for users resuming their RDP sessions. This will only return results for users starting brand new user sessions over RDP.

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + BESC + (preceding text of first "%0d%0a" of following text of first "User: " of description of it | "Unknown", time generated of it, (if (it = 21) then ("New Session") else ("Resumed Session")) of (event id of it), following text of last ": " of description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2000;item 1 of it))) of (record count of it, oldest record number of it)) whose (exists description of it and (event id of it = 21 or event id of it = 25) and description of it does not contain "LOCAL") of event log "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Restart information - Windows (2998686).bes b/Sites/Windows Management/Fixlets/Analyses/Restart information - Windows (2998686).bes new file mode 100644 index 000000000..6f40488d8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Restart information - Windows (2998686).bes @@ -0,0 +1,31 @@ + + + + + Restart information - Windows + This analysis shows what could cause a "Pending Restart" status on Windows endpoints + windows of operating system + in agent context + + x-fixlet-modification-time + Thu, 25 May 2023 11:07:17 +0000 + + BESC + pending restart + if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\BigFix\EnterpriseClient\BESPendingRestart\BESPendingRestart" of native registry then names of values of key "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\BigFix\EnterpriseClient\BESPendingRestart\BESPendingRestart" of native registry else "No key found" + if exists value whose (name of it is "PendingFileRenameOperations") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" of native registry then substrings separated by "%00" of (value whose (name of it is "PendingFileRenameOperations") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" of native registry as string) else "No value found" + if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry then (name of it & "|" & it as string) of values of key "Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry else "No key found" + if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry then (name of it & "|" & it as string) of values of key "Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry else "No key found" + if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" of native registry then if exists value whose (name of it is "UpdateExeVolatile") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" of native registry then value whose (name of it is "UpdateExeVolatile") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" of native registry as string else "No value found" else "Key does not exist" + values of settings "_BESClient_ActionManager_PendingRestartExclusions" of client + + diff --git a/Sites/Windows Management/Fixlets/Analyses/SCCM - Windows (2998488).bes b/Sites/Windows Management/Fixlets/Analyses/SCCM - Windows (2998488).bes new file mode 100644 index 000000000..d1101a044 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/SCCM - Windows (2998488).bes @@ -0,0 +1,32 @@ + + + + + SCCM - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "CcmExec" + BESC + version of service "CcmExec" + value "LastSiteCode" of Key "HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\CcmEval" of native registry + time value of selects "LastReportDate from InventoryActionStatus where InventoryActionID = '{00000000-0000-0000-0000-000000000001}'" of wmi "root\ccm\InvAgt" + string value of select "CurrentManagementPoint from SMS_Authority" of wmi "root\ccm" + unique values of string values of selects "DisplayName from CCM_InstalledComponent" of wmi "root\ccm" + boolean value of selects "Approved from CCM_ClientIdentificationInformation" of wmi "root\ccm" + string value of select "Name from SMS_LocalMP" of wmi "root\ccm" + (string value of property "PKG_NAME" of it, string value of property "PolicyID" of it) of select objects "* from CCM_SoftwareDistribution" of wmi "root\ccm\Policy\Machine\RequestedConfig" + integer value of selects "Size from CacheConfig" of WMI "ROOT\ccm\SoftMgmtAgent" + unique values of string values of selects "Title from CCM_UpdateStatus WHERE Status='Missing'" of WMI "ROOT\ccm\SoftwareUpdates\UpdatesStore" + state of service "CcmExec" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/SNMP - Windows (2998459).bes b/Sites/Windows Management/Fixlets/Analyses/SNMP - Windows (2998459).bes new file mode 100644 index 000000000..08dd60004 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/SNMP - Windows (2998459).bes @@ -0,0 +1,25 @@ + + + + + SNMP - Windows + Provides information on the current SNMP configuration in Windows.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "SNMP" + BESC + state of service "SNMP" | error "Not Installed" + names of values whose (it = 4) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry + values of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry + names of values whose (it = 8) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/SNMP Configuration (2994764).bes b/Sites/Windows Management/Fixlets/Analyses/SNMP Configuration (2994764).bes new file mode 100644 index 000000000..99f8a36b4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/SNMP Configuration (2994764).bes @@ -0,0 +1,26 @@ + + + + + SNMP Configuration + + name of operating system contains "Win2" + + x-fixlet-modification-time + Tue, 10 Feb 2015 17:56:10 +0000 + + BESC + if exists Service "SNMP" then state of service "SNMP" else "Not Installed" + if exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry then if exists values of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry then (names of values of it, values of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry as string else "Not Configured" else "Not Installed" + if exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry then if exists values of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry then (names of values of it, values of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry as string else "Not Configured" else "Not Installed" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/SPSS Installation and Licensing - Windows (2994757).bes b/Sites/Windows Management/Fixlets/Analyses/SPSS Installation and Licensing - Windows (2994757).bes new file mode 100644 index 000000000..cfb02897c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/SPSS Installation and Licensing - Windows (2994757).bes @@ -0,0 +1,34 @@ + + + + + SPSS Installation and Licensing - Windows + + windows of operating system + (exists keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + + x-fixlet-modification-time + Fri, 19 Dec 2014 21:32:22 +0000 + + BESC + unique values of (it as string) of values "DisplayVersion" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) + unique values of pathnames of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + unique values of pathnames of files "lservrc" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + unique values of lines whose (it as trimmed string != "") of files "lservrc" of folders (values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) as string) + unique values of (preceding texts of firsts ", exclusive" of following texts of lasts ", expires Midnight of " of it) of lines containing ", expires Midnight of " whose (it contains ", exclusive") of files "lservrc" of folders (values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) as string) + unique values of pathnames of files "spssprod.inf" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + unique values of lines whose (it as trimmed string != "") of files "spssprod.inf" of folders (values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) as string) + unique values of (it as trimmed string) whose (it != "") of keys "DaemonHost" of files "spssprod.inf" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + unique values of ( ( ( (if (it < current date) then "Expired on " else "Expires on ") & following text of first ", " of (it as string) ) of maxima of (it as date) of (following text of last " " of preceding text of first ", " of it & " " & preceding text of first " " of it & " " & following text of last ", " of it) of (it as trimmed string) of (preceding texts of firsts ", exclusive" of following texts of lasts ", expires Midnight of " of it) of lines containing ", expires Midnight of " whose (it contains ", exclusive") of it) of files "lservrc" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) ) + unique values of (it as trimmed string) whose (it != "" AND ( /* The following should be true of any License Server that is a domain name, or an IPV4 address */ 1 < number of substrings separated by "." of it )) of keys "DaemonHost" of files "spssprod.inf" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/SUA - Software Usage Analysis Info - Windows (2994536).bes b/Sites/Windows Management/Fixlets/Analyses/SUA - Software Usage Analysis Info - Windows (2994536).bes new file mode 100644 index 000000000..73033e690 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/SUA - Software Usage Analysis Info - Windows (2994536).bes @@ -0,0 +1,46 @@ + + + + + SUA - Software Usage Analysis Info - Windows + This Analysis is to gather data about clients who are reporting data to Software Use Analysis. The "Duration of Scan" property will likely report an error if the scan is in progress, and probably for other reasons I have not yet investigated. The "ScanLog-ModTime" property should be the time of the last scan, unless a scan is in progress. The "Time between Scan & Upload" property is the difference of the mod time of the newest upload and the mod time of the scan log, which may be incorrect/negative if a scan is in progresss.

+

NOTE: This is "BETA" code and is not fully tested or in full production. This is an attempt to gather helpful feedback on the status of SUA on the client.

+

NOTE: This has only been tested on Windows, but should work on other OSes with minor adjustments.

+

http://bigfix.me/cdb/analysis/2994536

]]>
+ windows of operating system + + x-fixlet-modification-time + Thu, 20 Jun 2013 20:02:33 +0000 + + BESC + if(not(exists parent folder of regapp "besclient.exe" AND exists folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT") AND exists file (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT\scan.log") )) then ERROR "no log" else (modification time of file (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT\scan.log") as string) + if (exists value of settings "ITSIT_Scanner_OutDir" of client) then (exists file (computer id as string & ".xml") of folder (value of settings "ITSIT_Scanner_OutDir" of client)) else (if (name of operating system as lowercase starts with "win") then (exists file (computer id as string & ".xml") of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT")) else (exists file (computer id as string & ".xml") of folder ((pathname of parent folder of parent folder of client folder of site "actionsite") & "/LMT/ITSIT"))) + maximum of modification times of files whose(name of it ends with ".xml.bz2") of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT") + ((following text of first ";" of it as string as time)-(preceding text of first ";" of it as string as time)) of concatenation ";" of (it as string) of following texts of firsts "# " of lines whose(it does not contain "Started" AND it does not contain "Complete" AND it contains ":" AND it contains "# ") of file "scan.log" of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT") + (maximum of modification times of files whose(name of it ends with ".xml.bz2") of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT")) - (modification time of file (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT\scan.log")) + if (not exists setting "CIT_Scan_Count" whose(exists value of it) of client) then ERROR "not set" else value of setting "CIT_Scan_Count" of client + if (not exists setting "ITSIT_Scan_Count" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scan_Count" of client + if(exists folder "C:\Program Files\tivoli\cit\properties\version" AND exists file whose(name of it ends with ".cmptag") of folder "C:\Program Files\tivoli\cit\properties\version") then ((it as text) of xpaths "/Component/ComponentVersion" of xml document of file whose(name of it ends with ".cmptag") of folder "C:\Program Files\tivoli\cit\properties\version") else ERROR "No CIT Scanner" + if (exists folder "LMT\CIT" of parent folder of client AND exists file "installCITlog.txt" of folder "LMT\CIT" of parent folder of client) then (following text of first "Default dest: " of line whose(it starts with "Default dest: ") of file "installCITlog.txt" of folder "LMT\CIT" of parent folder of client) as trimmed string else ERROR "No CIT Scanner" + version of file "itsit.exe" of folder "LMT\ITSIT" of parent folder of client + if (not exists setting "ITSIT_Scanner_Version" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scanner_Version" of client + if (not exists setting "_BESClient_UsageManager_EnableAppUsageSummary" whose(exists value of it) of client) then ERROR "not set" else value of setting "_BESClient_UsageManager_EnableAppUsageSummary" of client + if (not exists setting "_BESClient_UsageManager_EnableAppUsageSummaryApps" whose(exists value of it) of client) then ERROR "not set" else value of setting "_BESClient_UsageManager_EnableAppUsageSummaryApps" of client + if (not exists setting "ITSIT_Scanner_Debug" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scanner_Debug" of client + if (not exists setting "ITSIT_Deny" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Deny" of client + if (not exists setting "ITSIT_Scanner_OutDir" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scanner_OutDir" of client + if (not exists setting "CIT_Deny" whose(exists value of it) of client) then ERROR "not set" else value of setting "CIT_Deny" of client + (following text of first "CIT_BuildDate = " of lines whose(it starts with "CIT_BuildDate = ") of file "cit.ini" of folder "cit" of windows folder) as trimmed string + (following text of first "CIT_Exploiters = " of lines whose(it starts with "CIT_Exploiters = ") of file "cit.ini" of folder "cit" of windows folder) as trimmed string + (following text of first "CIT_ConfigRootDirectory = " of lines whose(it starts with "CIT_ConfigRootDirectory = ") of file "cit.ini" of folder "cit" of windows folder) as trimmed string +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Scheduled Tasks - Windows (2998472).bes b/Sites/Windows Management/Fixlets/Analyses/Scheduled Tasks - Windows (2998472).bes new file mode 100644 index 000000000..1f2a72d96 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Scheduled Tasks - Windows (2998472).bes @@ -0,0 +1,28 @@ + + + + + Scheduled Tasks - Windows + This analysis provides information about the currently configured scheduled tasks on the system.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + unique values of (concatenations of (it as string)) of (path of it) of scheduled tasks + unique values of (concatenations of (it as string)) of (path of it, last run time of it) of scheduled tasks + unique values of (concatenations of (it as string)) of (path of it, next run time of it as string | "none") of scheduled tasks + unique values of (concatenations of (it as string)) of (path of it, last task result of it | 0) of scheduled tasks + unique values of (concatenations of (it as string)) of (name of it, (if (enabled of it) then ("Enabled") else "Disabled")) of scheduled tasks + unique values of (concatenations of (it as string)) of (name of it, idle duration of idle settings of settings of definition of it as string) of scheduled tasks whose (exists idle duration of idle settings of settings of definition of it as string) + unique values of (concatenations of (it as string)) of (name of it, account name of owner of security descriptor of it) of scheduled tasks + unique values of (concatenations of (it as string)) of (name of it, user id of principal of definition of it) of scheduled tasks whose (password logon of principal of definition of it) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Service Error (2994723).bes b/Sites/Windows Management/Fixlets/Analyses/Service Error (2994723).bes new file mode 100644 index 000000000..3ea897309 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Service Error (2994723).bes @@ -0,0 +1,24 @@ + + + + + Service Error + + name of operating system as lowercase starts with "win" + + x-fixlet-modification-time + Tue, 29 Jul 2014 18:00:30 +0000 + + BESC + display names of services whose (start type of it = "auto" and state of it != "Running") + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Service Monitor - Windows (2998502).bes b/Sites/Windows Management/Fixlets/Analyses/Service Monitor - Windows (2998502).bes new file mode 100644 index 000000000..4f571983a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Service Monitor - Windows (2998502).bes @@ -0,0 +1,33 @@ + + + + + Service Monitor - Windows + Fixlet: "Invoke - Service Monitor - Windows". Specifically it will report information related to monitored services started by the BigFix Agent. +

To define a service as, "Monitored" for use by this fixlet:

+
    +
  1. Create a client setting: besservicemonitor-<name> +
  2. Populate the setting with a semicolon separated list of services to monitor: "BESProxyAgent;BESRelay;BESGather;BESPluginService;BESRootServer;BESWebReportsServer"
+

This action will then check those services to make sure they are running.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists settings whose (name of it starts with "besservicemonitor-") of client + BESC + unique values of ((it as trimmed string) of substrings separated by ";" of concatenations ";" whose (it != "") of values of settings whose (name of it starts with "besservicemonitor-" and name of it does not start with "besservicemonitor-settings-") of client) + (name of it, value "count" of it) of keys of keys "Service Monitoring" of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory" of (x32 registries;x64 registries) + (name of it, value "Last" of it) of keys of keys "Service Monitoring" of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory" of (x32 registries;x64 registries) + if (uptime of operating system > (value of settings "besservicemonitor-audit-delay" of client as integer | 5) * minute) then (unique values of ((display name of it & " (" & service name of it & ")") as string) of services ((it as trimmed string) of elements of (set of (substrings separated by ";" of concatenations ";" whose (it != "") of values of settings whose (name of it starts with "besservicemonitor-" and name of it does not start with "besservicemonitor-settings-") of client) - set of (substrings separated by ";" of concatenations ";" whose (it != "") of values of settings "besservicemonitor-settings-blacklist" of client))) whose (state of it != "Running" and start type of it != "disabled")) else (nothing) + value of settings "besservicemonitor-settings-audit-delay" of client as integer | 5 + value of settings "besservicemonitor-settings-remediation-delay" of client as integer | 5 + substrings separated by ";" of values of settings "besservicemonitor-settings-blacklist" of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Services - Windows (2998543).bes b/Sites/Windows Management/Fixlets/Analyses/Services - Windows (2998543).bes new file mode 100644 index 000000000..a33fd01bf --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Services - Windows (2998543).bes @@ -0,0 +1,27 @@ + + + + + Services - Windows + Provides information relating to the Windows services on the system.

+

Services - Log On As - Windows - Provides the account that the service operates under. For the majority of services this will be a NT Authority\System

+

Services - Log On As Domain Account - Windows - Provides the services on the system that are running as a domain account

+

Services - Log On As Local Account - Windows - Provides the services on the system that are running as a local account on the system

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BES + (display name of it & " (" & service name of it & ")", login account of it | "N\A") of services whose (exists display name of it AND (length of (display name of it as string)) > 0 AND (number of substrings " " of (display name of it as string) < (length of (display name of it as string))) AND exists service name of it AND (length of (service name of it as string)) > 0 AND (number of substrings " " of (service name of it as string) < (length of (service name of it as string))) AND exists state of it) + (display name of it & " (" & service name of it & ")", login account of it) of it whose (login account of it contains "@") of (services whose (exists display name of it AND (length of (display name of it as string)) > 0 AND (number of substrings " " of (display name of it as string) < (length of (display name of it as string))) AND exists service name of it AND (length of (service name of it as string)) > 0 AND (number of substrings " " of (service name of it as string) < (length of (service name of it as string))) AND exists state of it)) + (display name of it & " (" & service name of it & ")", login account of it) of it whose (login account of it contains ".\") of (services whose (exists display name of it AND (length of (display name of it as string)) > 0 AND (number of substrings " " of (display name of it as string) < (length of (display name of it as string))) AND exists service name of it AND (length of (service name of it as string)) > 0 AND (number of substrings " " of (service name of it as string) < (length of (service name of it as string))) AND exists state of it)) + unique values of (concatenations of (it as string)) of (display name of it & ((" (" & service name of it & ")") | ""), state of it | "N\A") of services +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Services info (2994720).bes b/Sites/Windows Management/Fixlets/Analyses/Services info (2994720).bes new file mode 100644 index 000000000..32ce2b1da --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Services info (2994720).bes @@ -0,0 +1,29 @@ + + + + + Services info + + windows of operating system + exists wmi + + x-fixlet-modification-time + Thu, 05 Sep 2013 19:57:06 +0000 + + BESC + (string value of property "name" of it | "n/a") of select objects "name from win32_service" of wmi + (string value of property "pathname" of it | "n/a") of select objects "pathname from win32_service" of wmi + (string value of property "description" of it | "n/a") of select objects "description from win32_service" of wmi + (string value of property "state" of it | "n/a") of select objects "state from win32_service" of wmi + (string value of property "startmode" of it | "n/a") of select objects "startmode from win32_service" of wmi + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Shares - Windows (2998467).bes b/Sites/Windows Management/Fixlets/Analyses/Shares - Windows (2998467).bes new file mode 100644 index 000000000..3cca7d0d4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Shares - Windows (2998467).bes @@ -0,0 +1,30 @@ + + + + + Shares - Windows + Provides information regarding the configured network shares on the system.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + (name of it, path of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) + (name of it, (account name of it | component string of it) of trustees of entries whose (read permission of it) of dacls of security descriptors of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) + (name of it, (account name of it | component string of it) of trustees of entries whose (write permission of it) of dacls of security descriptors of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) + (name of it, (account name of it | component string of it) of trustees of entries whose (write owner permission of it) of dacls of security descriptors of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) + (name of it, use count of it) of network shares + (name of it, use limit of it as string | "N\A") of network shares + (name of it, comment of it) of network shares + (name of it) of network shares whose (type of it = 1 /*Printer*/) + (name of it) of network shares whose (type of it = 2147483648 /*Admin*/ or name of it = "print$") + (name of it) of network shares whose (type of it = 2147483651 /*IPC*/) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Signs of possible Logon or GPO issues - Windows (2994789).bes b/Sites/Windows Management/Fixlets/Analyses/Signs of possible Logon or GPO issues - Windows (2994789).bes new file mode 100644 index 000000000..7b7b4ebf9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Signs of possible Logon or GPO issues - Windows (2994789).bes @@ -0,0 +1,39 @@ + + + + + Signs of possible Logon or GPO issues - Windows + + windows of operating system + = "6.1"]]> + "Physical" = (if (mac of operating system) then /* the Mac BES client does not currently support the smbios inspector. This needs refinement, but for now just assuming apple devices are physical since virtualiztion of OS X is relatively rare */ "Physical" else (if ((it contains "VMware" or (it contains "Microsoft" AND /* This check is needed to exclude Microsoft Surface devices */ ((value "product_name" of structure "system_information" of smbios) as string contains "Virtual Machine")) or it contains "Xen" or /* This check is needed to properly identify Parallels VMs as virtual instead of physical */ it contains "Parallels Software") of (value "manufacturer" of structure "system_information" of smbios as string)) then "Virtual" else "Physical")) + "workgroup" != (it as string as lowercase) of (if (exists wmi) then (string value of selects "Domain from Win32_ComputerSystem" of wmi) else ("workgroup")) + + x-fixlet-modification-time + Wed, 06 May 2015 17:42:41 +0000 + + BESC + maximum of times generated of records whose(event id of it = 7001) of system event log + (maximum of times generated of records whose(event id of it = 1073743528 AND source of it = "SceCli") of application event log) - (maximum of times generated of records whose(event id of it = 7001) of system event log) + (minimum of times generated of records whose(event id of it = 1073743528 AND time generated of it > (maximum of times generated of records whose(event id of it = 7001) of system event log)) of application event log)-(maximum of times generated of records whose(event id of it = 7001) of system event log) + (minimum of times generated of records whose(event id of it = 1073743528 AND time generated of it > (maximum of times generated of records whose(event id of it = 7001) of system event log)) of application event log) + number of records whose(event id of it = 129 AND source of it = "Microsoft-Windows-Time-Service") of system event log + number of records whose(event id of it = 1014 AND source of it = "Microsoft-Windows-DNS-Client") of system event log + number of records whose(event id of it = 1129 AND source of it = "Microsoft-Windows-GroupPolicy") of system event log + number of records whose(event id of it = 5719 AND source of it = "NETLOGON") of system event log + number of records whose(event id of it = 1073743528 AND source of it = "SceCli") of application event log + (minimum of times generated of records whose(event id of it = 129 AND source of it = "Microsoft-Windows-Time-Service" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) + (minimum of times generated of records whose(event id of it = 1014 AND source of it = "Microsoft-Windows-DNS-Client" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) + (minimum of times generated of records whose(event id of it = 1129 AND source of it = "Microsoft-Windows-GroupPolicy" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) + (minimum of times generated of records whose(event id of it = 5719 AND source of it = "NETLOGON" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Stability - Windows (2998544).bes b/Sites/Windows Management/Fixlets/Analyses/Stability - Windows (2998544).bes new file mode 100644 index 000000000..38a40bb7b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Stability - Windows (2998544).bes @@ -0,0 +1,30 @@ + + + + + Stability - Windows + +

This analysis provides stability information for Windows devices.

+

Kudos, compliments, and credit for the majority of this analysis to: jgstew

+

The original analysis this is based off of is available here: https://bigfix.me/analysis/details/2994781

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + number of descriptions of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 41) of system event log + if (version of operating system > "6.0") then ((it, multiplicity of it) of unique values of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" + if (version of operating system > "6.0") then (sum of (multiplicity of it) of unique values whose(it = "Critical" OR it = "Kernel") of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" + tuple string items 0 of concatenations ", " of string values of selects ("SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics WHERE TimeGenerated >= " & ((year of it as string & month of it as two digits & day_of_month of it as two digits) of date (local time zone) of it) of (now - 1*day) ) of wmis + ( (sum of (it as floating point) of elements of item 1 of it) / item 0 of it) of (number of elements of it, it) of sets of string values of selects ("SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics WHERE TimeGenerated >= " & ((year of it as string & month of it as two digits & day_of_month of it as two digits) of date (local time zone) of it) of (now - 1*day) ) of wmis + number of descriptions of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 41) of system event log + time written of record (oldest record number of system event log) of system event log +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Stability Audit - Windows (2994781).bes b/Sites/Windows Management/Fixlets/Analyses/Stability Audit - Windows (2994781).bes new file mode 100644 index 000000000..d7a589fc4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Stability Audit - Windows (2994781).bes @@ -0,0 +1,39 @@ + + + + + Stability Audit - Windows + This is an attempt to detect events and other items that might be related to system problems.

+

 

+

Latest version found here:  http://bigfix.me/analysis/details/2994619

+

 

+

Related:

+

http://bigfix.me/relevance/details/2157

+

Found the Windows Error Reporting locations here: http://www.sevenforums.com/tutorials/4567-problem-reports-solutions-clear-history.html

+

C:\Users\Default\AppData\Local\Microsoft\Windows\WER\ReportQueue

+

C:\Users\<username>\AppData\Local\Microsoft\Windows\WER\ReportQueue

+

C:\ProgramData\Microsoft\Windows\WER\ReportQueue

+

 

]]>
+ windows of operating system + + x-fixlet-modification-time + Wed, 06 May 2015 14:36:41 +0000 + + BESC + if (52000 < record count of system event log) then ERROR "too many log records" else ( number of (records whose (event id of it = 41) of system event log) /* http://support.microsoft.com/kb/2028504 */ ) + if (version of operating system > "6.0") then ((it, multiplicity of it) of unique values of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" + if (version of operating system > "6.0") then (sum of (multiplicity of it) of unique values whose(it = "Critical" OR it = "Kernel") of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" + if (52000 < record count of system event log) then ERROR "too many log records" else ( number of records whose (source of it as lowercase ="bugcheck") of system event log ) + (it / number of string values of selects "SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics" of wmis) of sum of (it as floating point) of string values of selects "SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics" of wmis + (it / 10) of sums of (it as floating point) of (tuple string items (0;1;2;3;4;5;6;7;8;9) of it) of concatenations ", " of string values of selects "SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics" of wmis +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/System File Checker results (2994541).bes b/Sites/Windows Management/Fixlets/Analyses/System File Checker results (2994541).bes new file mode 100644 index 000000000..4a107bd83 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/System File Checker results (2994541).bes @@ -0,0 +1,30 @@ + + + + + System File Checker results + Results from running sfc /scannow

+

Can run sfc using this task: http://bigfix.me/cdb/fixlet/1369

]]>
+ windows of operating system + = "5.1"]]> + + + + x-fixlet-modification-time + Wed, 26 Jun 2013 22:46:41 +0000 + + BESC + number of lines whose (it contains "[SR] Cannot repair member file") of file ((pathname of windows folder) & "\logs\cbs\cbs.log") + number of lines whose (it contains "[SR] ") of file ((pathname of windows folder) & "\logs\cbs\cbs.log") + (if exists ( position 1000 of it ) then ( preceding text of position 1000 of it ) else it) of concatenation "; " of lines whose (it contains "[SR] ") of file ((pathname of windows folder) & "\logs\cbs\cbs.log") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/System Security Analysis - Windows (2998604).bes b/Sites/Windows Management/Fixlets/Analyses/System Security Analysis - Windows (2998604).bes new file mode 100644 index 000000000..0d046dced --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/System Security Analysis - Windows (2998604).bes @@ -0,0 +1,62 @@ + + + + + System Security Analysis - Windows + An Aggregation of other queries and relevance's and some original that provides an all in one quick overview of the system. + windows of operating system + + x-fixlet-modification-time + Thu, 27 Feb 2020 16:50:06 +0000 + + BESC + If exists running service "MpsSvc" then "Running" Else "Warning" + if (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPSec\Policy\Local" whose (exists values whose(name of it = "ActivePolicy" ) of it) of registry) then "Yes" else "No" + if (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPSec\GPTIPSECPolicy" whose (exists values whose(name of it = "DSIPSECPolicyFlags" ) of it) of registry) then "Yes" else "No" + if rule group currently enabled "File and Printer sharing" of firewall then "Enabled" else "Disabled" + if( exists services whose((service name of it as lowercase = "TermService" as lowercase ) AND (state of it= "Running") )) AND (exists keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" whose (exists values whose(name of it = "fDenyTSConnections" AND it as string as lowercase = "1" as lowercase ) of it) of registry) then "Yes but denying connections" else if( exists services whose((service name of it as lowercase = "TermService" as lowercase ) AND (state of it= "Running")) ) AND (exists keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" whose (exists values whose(name of it = "fDenyTSConnections" AND it as string as lowercase = "0" as lowercase ) of it) of registry) then "Yes and allowing connections" else "No" + Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry + if (exists keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" Whose (exists values whose (name of it = "UserAuthentication" AND it as string as lowercase ="1" as lowercase) of it) of registry) then "Yes" else "No" + if exists (sockets of network) whose ((local port of it = Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry) and (tcp state of it as string = "ESTABLISHED")) Then "Active" else "Not in use" + (preceding text of first "%0d%0a" of following text of first "User: " of description of it | "Unknown", time generated of it, (if (it = 21) then ("New Session") else ("Resumed Session")) of (event id of it), following text of last ": " of description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2000;item 1 of it))) of (record count of it, oldest record number of it)) whose (exists description of it and (event id of it = 21 or event id of it = 25) and description of it does not contain "LOCAL") of event log "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" + if exists running service "TelnetClient" then "Yes" else "No" + if exists running service "TelnetServer" then "Yes" else "No" + If( exists services whose((service name of it as lowercase = "msftpsvc" as lowercase ) AND (state of it= "Running") OR (service name of it as lowercase = "ftpsvc" as lowercase ) AND (state of it= "Running")) ) then "Yes" else "No" + if (exists running service whose (service name of it = "MsMpSvc")) then "MS.System Endpoint Protection" else if (exists running service whose (service name of it = "WinDefend")) then "Windows Defender" else if (exists running service whose (service name of it = "SepMasterService")) then "Symantec" else if (exists running service whose (service name of it = "Symantec AntiVirus")) then "Symantec" else if (exist running service whose (service name of it = "avast! Antivirus")) then "Avast" else if (exists running service whose (service name of it = "CmdAgent"))then "Comodo" else if (exists running service whose (service name of it contains "klnagent"))then "Kaspersky" else if (exists running service whose (service name of it starts with "Avg" as lowercase))then "AVG" else if (exists running service whose (service name of it starts with "ekrn"))then "Eset" else if (exists running service whose (service name of it starts with "Avira" as lowercase))then "Avira" else if (exists running service whose (service name of it starts with "norton antivirus client" as lowercase))then "Norton" else if (exists running service whose (service name of it starts with "mcshield" as lowercase))then "McAfee" else if (exists running service whose (service name of it starts with "InoRT" as lowercase))then "Trend" else if (exists running service whose (service name of it contains "MBAMService" as lowercase))then "MalwareBytes but may not be realtime " else "Investigate" + if exists services whose((state of it= "Running") AND ((service name of it as lowercase = "MSSQL" as lowercase ) OR (service name of it as lowercase starts with "SQLBrowser" as lowercase ) OR (service name of it as lowercase starts with "SQLAgent" as lowercase )) ) = True Then "Yes" else "No" + if exists running service "W3SVC" then "Yes" else "No" + if (exists running application whose (name of it as lowercase = "tomcat7.exe" as lowercase OR name of it as lowercase = "tomcat6.exe" as lowercase ) )or ( exists services whose((service name of it as lowercase starts with "Apache" as lowercase ) AND (state of it= "Running")) ) Then "Yes" Else "No" + preceding texts of last " " of preceding texts of last " " of (it as string) of (maximum of last write times of keys whose (name of it contains ".KB" or name of it contains "KB" or name of it starts with "KB") of keys( "HKEYLOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\";"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\";"HKEY_LOCAL_MACHINE \Software\Microsoft\WindowsNT\CurrentVersion\Hotfix") of (registry; native registry)) + (concatenations ", " whose(it != "") of names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" of registry) + (concatenations ", " whose(it != "") of names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" of x64 registry) + number of members of local group "administrators" + members of local group "Administrators" + (name of it & (if (account disabled flag of it = TRUE) then " - Disabled" else " - Enabled") & (if (password expiration disabled flag of it = TRUE) then " No Password expiration" else "")) of local users + (name of it & " - " & password age of it as string) of local users + if (exists key "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" whose (value "ProxyEnable" of it as integer = 1) of current user keys (logged on users) of registry) then "Manual Proxy Enabled" else "Automatically Detect" + if (exists key "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" whose (exists value "ProxyServer" of it) of current user keys (logged on users) of registry) then (values "ProxyServer" of key "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" of current user keys (logged on users) of registry as string) else ("not configured") + addresses of dns servers of network + if version of client >="9.0" then ssids of wifis of adapters of network else "N/A" + if version of client >="9.0" then encryptions of wifis of adapters of network else "N/A" + exists ip interface whose (point to point of it = true) of networks + if exists (rules of firewall) whose (name of it as string starts with "Remote Desktop" or name of it contains "RDP") then (remote addresses strings of (rules of firewall) whose (name of it as string starts with "Remote Desktop" or name of it contains "RDP")) else "No rule named RDP or Remote Desktop" + unique values of (remote addresses of (sockets of network) whose ((local port of it = Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry) and (tcp state of it as string= "ESTABLISHED"))) + if exists (sockets of network) whose ((local port of it = 22) and (tcp state of it as string = "ESTABLISHED")) Then "Active" else "Not in use" + unique values of (remote addresses of (sockets of network) whose ((local port of it = 22) and (tcp state of it as string= "ESTABLISHED"))) + if (exists services whose ((service name of it = "winlogbeat") and (state of it = "Running"))) Then "Yes and Running" else if (exists services whose ((service name of it = "winlogbeat") and (state of it != "Running"))) then "Yes but not running" else "Not Installed" + names of processes of sockets whose ( established of tcp state of it and local port of it = Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry) of network + If Exists value "AutoConfigURL" of keys of key "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\iphlpsvc\Parameters\ProxyMgr" of registry then value "AutoConfigURL" of keys of key "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\iphlpsvc\Parameters\ProxyMgr" of registry as string Else "Not used for any profiles" + if (name of operating system as lowercase contains "win") then (if ((name of operating system as lowercase contains "xp") or (name of operating system as lowercase contains "win2003")) then (if not exist keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName" of (if x64 of operating system then (x64 registry;x32 registry) else registry) then values "DefaultUserName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\" of (if x64 of operating system then (x64 registry;x32 registry) else registry) as string else "No User Logged") else (if NOT exist keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\LastLoggedOnUser" of (if x64 of operating system then (x64 registry;x32 registry) else registry) then values "LastLoggedOnUser" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\" of (if x64 of operating system then (x64 registry;x32 registry) else registry) as string else "No User Logged")) else ("Not Win") + members of local group "Remote Desktop Users" + number of relevant fixlets whose(exists values whose("Important" = it OR "Critical" = it) of headers "X-Fixlet-Source-Severity" of it AND not exists values whose(it contains " (Superseded)") of headers "Subject" of it AND exists (current date - it) whose(it > 30 * day) of (it as date) of values whose(exists it as date) of headers "X-Fixlet-Source-Release-Date" of it) of sites whose("Fixlet Site" = type of it AND exists names whose(it starts with "Updates for " OR it starts with "Patches for" OR it = "Enterprise Security") of it) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/TPM - Ownership Authorization - Windows (2998307).bes b/Sites/Windows Management/Fixlets/Analyses/TPM - Ownership Authorization - Windows (2998307).bes new file mode 100644 index 000000000..6ca73bc10 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/TPM - Ownership Authorization - Windows (2998307).bes @@ -0,0 +1,21 @@ + + + + + TPM - Ownership Authorization - Windows + Grabs the ownership authorization password set when provisioning the TPM on the device. + windows of operating system + exists (file whose (name of it contains "TPMOwnerAuthorization") of folder "BitLocker" of folder "__Global" of data folder of client) + BESC + (preceding text of first "-" of name of it & ":", following text of first "%ff%fe" of concatenations "" of substrings separated by "%00" of lines of it) of files whose (Name of it contains "TPMOwnerAuthorization.txt") of folder "BitLocker" of folder "__Global" of data folder of client + + diff --git a/Sites/Windows Management/Fixlets/Analyses/TPM - Windows (2998504).bes b/Sites/Windows Management/Fixlets/Analyses/TPM - Windows (2998504).bes new file mode 100644 index 000000000..7afb79c8e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/TPM - Windows (2998504).bes @@ -0,0 +1,25 @@ + + + + + TPM - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsEnabled_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Enabled" ELSE "Disabled") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Activated" ELSE "Not Activated") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Owned" ELSE "Not Owned") else ERROR "TPM not visible to OS" + exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" + tuple string item 0 of string value of selects "SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/TSM Backup Audit - Windows.bes b/Sites/Windows Management/Fixlets/Analyses/TSM Backup Audit - Windows.bes new file mode 100644 index 000000000..67a3b6ea1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/TSM Backup Audit - Windows.bes @@ -0,0 +1,55 @@ + + + + + TSM Backup Audit - Windows + http://bigfix.me/analysis/details/2994716 for a later, more dynamic, but much more complex version of this analysis. In the newer version I dynamically locate TSM services, DSM.OPT files, and dsmsched.log files, and get more result details out of the logs. I also check for a dsmsched.log.bak file if the dsmsched.log is locked and unreadable. + +

Report on Windows TSM Statuses.

+

Taken with thanks from JGStew at bigfix.me

+

Learn more about this analysis online: http://bigfix.me/cdb/analysis/62

+

Customized slightly by Jason Walker, 2013-04-22; added TSM Client Acceptor to services list for relevance; fixed some issues with tabs and comments ("*") and trimming the results.

]]>
+ windows of operating system + (exists key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\tsmstats.ini") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe") OR (exists service "TSM Scheduler Service") OR (exists service "TSM Client Acceptor") + + bigfixme-added-time + Mon, 10 Dec 2012 07:35:02 GMT + + + bigfixme-modification-time + Mon, 10 Dec 2012 07:35:02 GMT + + + bigfixme-keywords + TSM, Backup Audit, Tivoli Storage Manager + + + x-fixlet-modification-time + Fri, 26 Apr 2013 21:30:59 +0000 + + BESC + exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log" + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") then "<dsmsched log missing>" else if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log" whose(exists lines of it)) then "<file locked by TSM>" else ((lines whose(it contains "' completed successfully." AND it contains " Scheduled event '" AND line number of it = (maximum of line numbers of lines whose(it contains "' completed successfully." AND it contains " Scheduled event '") of file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log")) of file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") as string) + if(not exists key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) then "<TSM not installed>" else if(not exists key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it AND exists value "DisplayVersion" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) then "<TSM dv reg entry missing>" else (value "DisplayVersion" of key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it AND exists value "DisplayVersion" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\tsmstats.ini") then "<tsmstats file missing>" else (modification time of file "C:\Program Files\Tivoli\TSM\baclient\tsmstats.ini" as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log") then "<no dsmcrash log>" else (number of lines whose (it contains "IBM Tivoli Storage Manager") of file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log" as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe") then "<dsm.exe missing>" else if(not exists version of file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe") then "<dsm.exe version missing>" else (version of file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe" as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log") then "<dsmcrash log missing>" else (modification time of file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log" as string) + exists key whose (value "DisplayName" of it as string contains "Microsoft Visual C++ 2010" AND (it >= "10.0.40219" as version) of (value "DisplayVersion" of it as string as version)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of x32 registry + if (x64 of operating system AND exists x64 registry) then (exists key whose (value "DisplayName" of it as string contains "Microsoft Visual C++ 2010" AND (it >= "10.0.40219" as version) of (value "DisplayVersion" of it as string as version)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of x64 registry) as string else "<n/a - 32bit Machine>" + exists running service "TSM Scheduler Service" + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") then "<dsmsched log missing>" else (modification time of file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log" as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no dsm opt>" else if(not exists line whose(it as uppercase contains "TCPSERVERADDRESS") of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no tcpserveraddress>" else ( following text of first "TCPSERVERADDRESS" of (it as uppercase) of line whose( ( if it does not contain "*" then it else preceding text of first "*" of it) as uppercase contains "TCPSERVERADDRESS" ) of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt" as trimmed string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no dsm opt>" else if(not exists line whose( (if it does not contain "*" then it else preceding text of first "*" of it) as uppercase contains "NODENAME") of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no nodename>" else ( following text of first "NODENAME" of (it as uppercase) of line whose( ( if it does not contain "*" then it else preceding text of first "*" of it) as uppercase contains "NODENAME" ) of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt" as trimmed string) + exists running service "TSM Client Acceptor" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Temp Folders, Logs, etc... - Windows (2994784).bes b/Sites/Windows Management/Fixlets/Analyses/Temp Folders, Logs, etc... - Windows (2994784).bes new file mode 100644 index 000000000..447390ebd --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Temp Folders, Logs, etc... - Windows (2994784).bes @@ -0,0 +1,27 @@ + + + + + Temp Folders, Logs, etc... - Windows +  

+

The latest version of this Analysis can be found here:  http://bigfix.me/analysis/details/2994620

]]>
+ windows of operating system + + x-fixlet-modification-time + Tue, 01 Jul 2014 16:05:36 +0000 + + BESC + (folders "Temp" of windows folder;folders "C:\temp"; folders "C:\ProgramData\TEMP"; folders "AppData\Local\Temp" of folders whose(exists folder "AppData\Local\Temp" of it) of folders "C:\Users"; folders "C:\Program Files (x86)\BigFix Enterprise\BES Client"; folders "C:\Program Files\BigFix Enterprise\BES Client") + pathnames of descendants whose(name of it as lowercase ends with ".log") of (folders "Temp" of windows folder;folders "C:\temp"; folders "C:\ProgramData\TEMP"; folders "AppData\Local\Temp" of folders whose(exists folder "AppData\Local\Temp" of it) of folders "C:\Users"; folders "C:\Program Files (x86)\BigFix Enterprise\BES Client"; folders "C:\Program Files\BigFix Enterprise\BES Client"; folders "C:\Windows\Logs") + pathnames of descendants whose(name of it as lowercase ends with ".txt" AND name of it as lowercase starts with "microsoft office setup") of (folders "Temp" of windows folder ; folders "C:\temp" ; folders "C:\ProgramData\TEMP" ; folders "AppData\Local\Temp" of folders whose(exists folder "AppData\Local\Temp" of it) of folders "C:\Users") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Temporary Administrators - Windows (2998399).bes b/Sites/Windows Management/Fixlets/Analyses/Temporary Administrators - Windows (2998399).bes new file mode 100644 index 000000000..bc7ad1d22 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Temporary Administrators - Windows (2998399).bes @@ -0,0 +1,25 @@ + + + + + Temporary Administrators - Windows + This Analysis provides information from the Temporary Admins fixlets in the C3-Inventory Site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights" of x32 registry + BESC + (value "Username" of it, value "Start" of it, value "Expiration" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry + (value "Username" of it, value "Start" of it, value "Expiration" of it, value "Revoked" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Expired" of x32 registry + (value "Username" of it, value "Start" of it, value "Expiration" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + (value "Username" of it, value "Start" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Expired" of x32 registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Missing Patches - Windows (2998276).bes b/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Missing Patches - Windows (2998276).bes new file mode 100644 index 000000000..f75517a8e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Missing Patches - Windows (2998276).bes @@ -0,0 +1,22 @@ + + + + + Troubleshooting - Missing Patches - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + number of (concatenation "" of matches (regex "[a-z]") of (values of headers "X-Fixlet-Source-Severity" of it as lowercase)) whose (it = "critical" or it = "important" or it = "moderate") of relevant fixlets whose (not exists (headers "X-Fixlet-Type" of it) whose (value of it is contained by set of ("Task";"Analysis";"Baseline")) and exists headers "X-Fixlet-Default-Action" of it) of sites whose (name of it is contained by set of ("Enterprise Security")) + number of (concatenation "" of matches (regex "[a-z]") of (values of headers "X-Fixlet-Source-Severity" of it as lowercase)) whose (it = "critical" or it = "important" or it = "moderate") of relevant fixlets whose (not exists (headers "X-Fixlet-Type" of it) whose (value of it is contained by set of ("Task";"Analysis";"Baseline")) and exists headers "X-Fixlet-Default-Action" of it) of sites whose (name of it is contained by set of ("Updates for Windows Applications")) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Slow Boot Slow Logon - Windows (2998474).bes b/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Slow Boot Slow Logon - Windows (2998474).bes new file mode 100644 index 000000000..cec89b144 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Slow Boot Slow Logon - Windows (2998474).bes @@ -0,0 +1,23 @@ + + + + + Troubleshooting - Slow Boot Slow Logon - Windows + Provides information useful for troubleshooting slow boots and slow logons.

+

The WMI Analysis may also prove useful: WMI - Windows

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + (time generated of it, description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 500;item 1 of it))) of (record count of it, oldest record number of it)) whose ((event id of it = 6006 or event id of it = 2147489654) and description of it contains "Logon") of event log "Application" + (concatenations "" of substrings separated by "%09" of (it as trimmed string)) of substrings separated by "%0d%0a" of description of record (oldest record number of it + record count of it - 1) of event log "Microsoft-Windows-Diagnostics-Performance/Operational" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/UEFI - Windows (2998369).bes b/Sites/Windows Management/Fixlets/Analyses/UEFI - Windows (2998369).bes new file mode 100644 index 000000000..3db50096d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/UEFI - Windows (2998369).bes @@ -0,0 +1,23 @@ + + + + + UEFI - Windows + UEFI status on Windows using the setupact log and SecureBoot using system registry

+

Credit, kudos, and thanks to jgstew: https://bigfix.me/relevance/details/3007539

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + if (exists Selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi) then "UEFI" else "BIOS" + if (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" of native registry and value "UEFISecureBootEnabled" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" of native registry = 1) then "Enabled" else "Disabled" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Uninstall Analysis (54).bes b/Sites/Windows Management/Fixlets/Analyses/Uninstall Analysis (54).bes new file mode 100644 index 000000000..8e3ece0b8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Uninstall Analysis (54).bes @@ -0,0 +1,25 @@ + + + + + Uninstall Analysis + Pulls back Registry Keys and Display Names for windows installed software + true + + x-fixlet-modification-time + Tue, 04 Dec 2012 16:37:14 +0000 + + BESC + (values "DisplayName" of it, values "DisplayVersion" of it, values "UninstallString" of it, values "QuietUninstallString" of it) of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry + (values "DisplayName" of it, values "DisplayVersion" of it, values "UninstallString" of it) of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Users - Windows (2998571).bes b/Sites/Windows Management/Fixlets/Analyses/Users - Windows (2998571).bes new file mode 100644 index 000000000..bf922d234 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Users - Windows (2998571).bes @@ -0,0 +1,33 @@ + + + + + Users - Windows + This Analysis provides Windows-specific user information for the currently active user including:

+
    +
  • Drive Mappings for the currently active user +
  • Administrator status of currently active user
+

This Analysis also provides the following general information for users of the system: 

+
    +
  • The previously logged on user for the system +
  • The last logon timestamp for each previous user of the system
+

Note: OS Upgrades may reset last logon timestamp to the date of the upgrade.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (sid (it) as string | it ) of (string values whose (set of ("S-1-5-20";"S-1-5-19";"S-1-5-18") does not contain it) of properties "sid" of items 0 of (it whose (preceding text of first "." of string value of property "LastUseTime" of item 0 of it as integer = item 1 of it) of (select objects "* from Win32_UserProfile" of wmi, it) of (maximum of (preceding text of first "." of string value of property "LastUseTime" of it as integer) of select objects "* from Win32_UserProfile" of wmi))) + (concatenations "\" of substrings separated by "#" of name of it) of keys whose (name of it contains "#") of keys "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2" of (current user keys (logged on users) of registry) + (sid (string value of property "sid" of it) as string | string value of property "sid" of it, time value of property "LastUseTime" of it) of (select objects "* from Win32_UserProfile" of wmi) whose (set of ("S-1-5-20";"S-1-5-19";"S-1-5-18") does not contain string value of property "sid" of it) + exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/VMWare Guest - Windows (2998379).bes b/Sites/Windows Management/Fixlets/Analyses/VMWare Guest - Windows (2998379).bes new file mode 100644 index 000000000..d169935bc --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/VMWare Guest - Windows (2998379).bes @@ -0,0 +1,24 @@ + + + + + VMWare Guest - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ ((value "manufacturer" of structure "system_information" of smbios as string) contains "VMware") + BESC + if ((value "manufacturer" of structure "system_information" of smbios as string) contains "VMware") then ((if exists property "hexadecimal" then hexadecimal of it else it as string as hexadecimal) of (value "uuid" of structure "system_information" of smbios)) else "N/A" + if (windows of operating system) then ((name of it, substrings between "|" of (it as string)) of values of key "HKEY_LOCAL_MACHINE\SOFTWARE\VMWare, Inc.\VMware Drivers" of native registry) else (error "not applicable") + if (windows of operating system) then ( valueS "DisplayVersion" of keys whose (value "DisplayName" of it = "VMware Tools")of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) else (error "not applicable") + if (windows of operating system) then (state of service "VMTools" | "Not Installed") else (error "not applicable") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/VPN - Windows (2998351).bes b/Sites/Windows Management/Fixlets/Analyses/VPN - Windows (2998351).bes new file mode 100644 index 000000000..240038060 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/VPN - Windows (2998351).bes @@ -0,0 +1,32 @@ + + + + + VPN - Windows + Provides information on the current VPN configuration in Windows.

+

Special thanks to Jason Walker for helping with the Windows VPN file parsing.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + (exists file "rasphone.pbk" of folder "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users)) or (exists file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25")) + BESC + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (PPTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IPSec)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (SSTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (L2TP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IKEv2)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (PPTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IPSec)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (SSTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (L2TP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IKEv2)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Values(BIOS & More) of wmi _root_dcim_sysman_ - Windows (Dell Command Monitor _ OMCI & others) (2994763).bes b/Sites/Windows Management/Fixlets/Analyses/Values(BIOS & More) of wmi _root_dcim_sysman_ - Windows (Dell Command Monitor _ OMCI & others) (2994763).bes new file mode 100644 index 000000000..0c1b34c9a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Values(BIOS & More) of wmi _root_dcim_sysman_ - Windows (Dell Command Monitor _ OMCI & others) (2994763).bes @@ -0,0 +1,85 @@ + + + + + Values(BIOS & More) of wmi "root\dcim\sysman" - Windows (Dell Command Monitor / OMCI & others) + Written against the Dell Command | Monitor Version 9.0 Reference Guide.

+

The information in wmi root\dcim\sysman is part of a standard, so this analysis should work for more than just Dell systems as long as the non-Dell systems have similar functionality and reporting mechanisms installed.

+

 

+

References:

+

http://www.dell.com/support/Manuals/us/en/19/Topic/dell-opnmang-clnt-instr-v9.0.0/Dell_Command_Monitor_Ref_Guide-v1/en-us/GUID-28F353DA-781B-4426-A01F-DBD815555AAD

+

https://support.bigfix.com/inspectors/WMI%20Objects_Any.html

+

http://schemas.dmtf.org/wbem/cim-html/2/CIM_BIOSAttribute.html

+

http://schemas.dmtf.org/wbem/cim-html/2/CIM_BIOSEnumeration.html

+

 

]]>
+ windows of operating system + exists wmi "root\dcim\sysman" + + x-fixlet-modification-time + Fri, 06 Feb 2015 21:39:34 +0000 + + BESC + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + ( if "Disable" = ( tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") ) then ERROR "Disabled" else ( tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion Status'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion Status'" of wmi "root\dcim\sysman") ) ) | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Auto On'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Auto On'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + string values of selects "AMTSupported from DCIM_AMTSettings" of wmi "root\dcim\sysman" + string values of selects "ASFEnabled from DCIM_ASFSettings" of wmi "root\dcim\sysman" + string values of selects "IsSet from DCIM_BIOSPassword where ElementName='BiosSetupPassword'" of wmi "root\dcim\sysman" + string values of selects "IsSet from DCIM_BIOSPassword where ElementName='BiosBootPassword'" of wmi "root\dcim\sysman" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Password Status Lock'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Password Status Lock'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + (preceding text of first "%22" of following text of first ",Name=%22" of it as trimmed string) of string values of selects "Antecedent from DCIM_RunningOS" of wmi "root\dcim\sysman" + unique values of ( ( (it as string as integer) of values "type" of structures "system_enclosure_or_chassis" of smbios ); integer values of (selects "ChassisPackageType from DCIM_Chassis" of wmis "root/dcim/sysman"; selects "ChassisTypes from Dell_Chassis" of wmis "root\DELLOMCI")) + ( if exists it then it else ERROR "UNKNOWN" ) of (tuple string items ( unique values of ( ( (it as string as integer) of values "type" of structures "system_enclosure_or_chassis" of smbios ); integer values of (selects "ChassisPackageType from DCIM_Chassis" of wmis "root/dcim/sysman"; selects "ChassisTypes from Dell_Chassis" of wmis "root\DELLOMCI")) ) of "Unknown, Other, Unknown, Desktop, Low Profile Desktop, Pizza Box, Mini Tower, Tower, Portable, Laptop, Notebook, Hand Held, Docking Station, All in One, Sub Notebook, Space-Saving, Lunch Box, Main System Chassis, Expansion Chassis, SubChassis, Bus Expansion Chassis, Peripheral Chassis, Storage Chassis, Rack Mount Chassis, Sealed-Case PC, Multi-system chassis, CompactPCI, AdvancedTCA, Blade, Blade Enclosure, Tablet, Convertible, Detachable") + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Num Lock'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Num Lock'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='USB'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='USB'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Signed Firmware Update'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Signed Firmware Update'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='TPM PPI ACPI Support'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='TPM PPI ACPI Support'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Trusted Execution'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Trusted Execution'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='OROM Keyboard Access'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='OROM Keyboard Access'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Enable Legacy Option ROMs'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Enable Legacy Option ROMs'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Processor Virtualization Technology'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Processor Virtualization Technology'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Embedded SATA Controller'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Embedded SATA Controller'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + unique values of (item 0 of it & ": " & unique value of (if ( /* 0 means there are no options to choose from */ (0 = item 1 of it as integer) OR /* 0 means the selection is invalid */ (0 = following text of last ", " of item 2 of it as integer) OR /* if the selection is outside the number of possible values, then it is invalid */ (item 1 of it as integer < following text of last ", " of item 2 of it as integer) ) then "UNKNOWN" else ( (tuple string items ( (it as integer - 1) of following text of last ", " of it ) of item 2 of it) of it ) ) of it) of (string value of property "AttributeName" of it , number of string values of properties "PossibleValuesDescription" of it, (concatenation ", " of (if exists it whose(it as trimmed string != "") then it else "UNKOWN") of string values of properties "PossibleValuesDescription" of it) & ", " & (if (exists string values whose(it != "0") of properties "CurrentValue" of it) then (string value of properties "CurrentValue" of it) else "0") ) of ( select objects "AttributeName,CurrentValue,PossibleValuesDescription from DCIM_BIOSEnumeration" of it ; select objects "AttributeName,CurrentValue,PossibleValuesDescription from CIM_BIOSEnumeration" of it ) of wmi "root\dcim\sysman" + exists wmi "root\DELLOMCI" + selects "ElementName,PermanentAddress,EnabledDefault,EnabledState,LinkTechnology,TOEEnabledState from DCIM_EthernetPort" of wmi "root\dcim\sysman" + selects "BreachDescription,ChassisPackageType,FirstPowerOnDate,ManufactureDate,PackageType,SecurityBreach from DCIM_Chassis" of wmi "root\dcim\sysman" + selects "Manufacturer,ElementName,Model,ElementName from DCIM_Chip" of wmi "root\dcim\sysman" + selects "Description,ColorDepthBits,ColorModePreset,DisplayMode,EDIDGamma,EDIDVersionNumber,HealthState,ManufactureDate,PhysicalSizeH,PhysicalSizeV,PrimaryStatus,ProductCode,SerialNumber,StandbyModeSupported,SuspendModeSupported,VeryLowPowerSupported from DCIM_DesktopMonitor" of wmi "root\dcim\sysman" + selects "BusType,ControllerFirmwareVersion,Device,DriverVersion,ElementName,PrimaryStatus,ProductName from DCIM_ControllerView" of wmi "root\dcim\sysman" + selects "BankLabel,Capacity,DataWidth,ElementName,FormFactor,ManufactureDate,Manufacturer,MemoryType,Model,PartNumber,SerialNumber,SKU,Speed from DCIM_PhysicalMemory" of wmi "root\dcim\sysman" + selects "ConnectorDescription,ConnectorLayout,ConnectorType,ElementName,Number from DCIM_Slot" of wmi "root\dcim\sysman" + selects "ElementName,EnabledDefault,EnabledState,HealthState from DCIM_USBPort" of wmi "root\dcim\sysman" + selects "BlockSize,ElementName,EnabledState,HealthState,NumberOfBlocks,PrimaryStatus from DCIM_Memory" of wmi "root\dcim\sysman" + selects "BusNumber,Description,DeviceNumber,ElementName,EnabledState,FunctionNumber,HealthState,PrimaryStatus from DCIM_PCIDevice" of wmi "root\dcim\sysman" + selects "ElementName,Name from DCIM_DisplayController" of wmi "root\dcim\sysman" + selects "ActiveCooling,ElementName,EnabledState,HealthState,PrimaryStatus,VariableSpeed from DCIM_Fan" of wmi "root\dcim\sysman" + selects "BaseUnits,CurrentState,ElementName,EnabledState,HealthState,PrimaryStatus,RateUnits,SensorType,ValueFormulation from DCIM_NumericSensor" of wmi "root\dcim\sysman" + selects "CurrentState,ElementName,EnabledState,HealthState,PrimaryStatus,SensorType from DCIM_Sensor" of wmi "root\dcim\sysman" + selects "ButtonPurpose,ButtonType,DeviceID from DCIM_Button" of wmi "root\dcim\sysman" + selects "ElementName,FailThroughSupported,StructuredBootString from DCIM_BootSourceSetting" of wmi "root\dcim\sysman" + selects "* from DCIM_AssetAcquisition" of wmi "root\dcim\sysman" + selects "* from DCIM_AssetSystemInformation" of wmi "root\dcim\sysman" + selects "* from DCIM_Location" of wmi "root\dcim\sysman" + selects "* from DCIM_AssetSupportInformation" of wmi "root\dcim\sysman" + selects "* from DCIM_AssetOwnerInformation" of wmi "root\dcim\sysman" + (it as trimmed string) of string values whose(it as trimmed string != "") of selects "PropertyOwnershipTag from DCIM_Chassis" of wmi "root\dcim\sysman" + (it as trimmed string) of string values whose(it as trimmed string != "") of selects "ElementName from DCIM_Chassis" of wmi "root\dcim\sysman" + selects "* from DCIM_Battery" of wmi "root\dcim\sysman" + concatenations ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") ) of "Disable, 2, 3, LAN, 5, 6, LAN with PXE Boot" | ERROR "UNKNOWN" + concatenations ", " of (string values of selects "PossibleValues from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Deep Sleep Control'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Deep Sleep Control'" of wmi "root\dcim\sysman") | (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Deep Sleep Control'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Virtualization Based Security - Windows (2998545).bes b/Sites/Windows Management/Fixlets/Analyses/Virtualization Based Security - Windows (2998545).bes new file mode 100644 index 000000000..ada8481ad --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Virtualization Based Security - Windows (2998545).bes @@ -0,0 +1,31 @@ + + + + + Virtualization Based Security - Windows + This analysis provides details regarding the capabilities of a Windows device with regards to Virtualization Based Security (Device Guard, Credential Guard, etc) + windows of operating system + exists wmi "root\Microsoft\Windows\DeviceGuard" + BESC + set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 + set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 + set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 3 + set of (integer values of property "SecurityServicesConfigured" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 + set of (integer values of property "SecurityServicesConfigured" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 + set of (integer values of property "SecurityServicesRunning" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 + set of (integer values of property "SecurityServicesRunning" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 + (it contains 1 or it contains 2) of set of (integer values of property "VirtualizationBasedSecurityStatus" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") + (it contains 2) of set of (integer values of property "VirtualizationBasedSecurityStatus" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") + descriptions of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) whose (source of it = "Microsoft-Windows-Wininit" and (event id of it = 15 or event id of it = 16 or event id of it = 17)) of system event log + exists values "DisableRestrictedAdmin" whose (it = 0) of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa" of native registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/WD - MSE - SCEP - Microsoft Antimalware Audit - Windows (2994634).bes b/Sites/Windows Management/Fixlets/Analyses/WD - MSE - SCEP - Microsoft Antimalware Audit - Windows (2994634).bes new file mode 100644 index 000000000..ee11902d5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/WD - MSE - SCEP - Microsoft Antimalware Audit - Windows (2994634).bes @@ -0,0 +1,40 @@ + + + + + WD - MSE - SCEP - Microsoft Antimalware Audit - Windows + Windows XP through Windows 7:  Microsoft Security Essentials

+

Windows 8 and higher:  Windows Defender

+

Managed version:  System Center Endpoint Protection, formerly ForeFront

+

Windows Vista and Windows 7 also have something called "Windows Defender" which was much more limited than MSE. Windows 8 has both of these 'products' rolled into one name.

+

 

+

Latest Version of this Analysis can be found here:  http://bigfix.me/analysis/details/2994633

]]>
+ /* Windows Only */ windows of operating system + = "6.0"]]> + = "6.2")]]> + + x-fixlet-modification-time + Thu, 30 Jan 2014 21:49:19 +0000 + + BESC + values "ProductType" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + values "DisableAntiSpyware" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + (multiplicity of it, it) of unique values of versions of files whose(exists version of it) of folders ((if (version of client < "8.1") then it else if (x64 of operating system) then (expand x64 environment string of it) else (expand environment string of it)) of ((preceding texts of lasts "\" of (it as string)) of values "RemediationExe" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry))) + ((if (version of client < "8.1") then it else if (x64 of operating system) then (expand x64 environment string of it) else (expand environment string of it)) of ((preceding texts of lasts "\" of (it as string)) of values "RemediationExe" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry))) + (values "PurgeItemsAfterDelay" of keys "Quarantine" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry)) + /* http://technet.microsoft.com/en-us/library/bb418859.aspx */ (unique values of (it as string) of values "SpyNetReporting" of keys "Spynet" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry)) + unique values of (it as string) of values whose(name of it = "ASSignatureVersion" OR name of it = "AVSignatureVersion") of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + unique values of (it as string) of values "EngineVersion" of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + unique values of (it as string) of values "NISEngineVersion" of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + unique values of (it as string) of values "NISSignatureVersion" of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/WMI - Windows (2998282).bes b/Sites/Windows Management/Fixlets/Analyses/WMI - Windows (2998282).bes new file mode 100644 index 000000000..c031fee90 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/WMI - Windows (2998282).bes @@ -0,0 +1,26 @@ + + + + + WMI - Windows + Provides information on the state of WMI on the endpoint.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists wmi + BESC + not exists string values of selects "Domain from Win32_ComputerSystem" of wmi | true + exists folders whose (name of it starts with "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder))) + number of folders whose (name of it starts with "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder))) + (size of file "objects.data" of (if (x64 of operating system) then (x64 folder (pathname of windows folder & "\system32\wbem\repository")) else (folder (pathname of windows folder & "\system32\wbem\repository")))) > 1 /*byte*/ * 1024 /*KB*/ * 1024 /*MB*/ * 1024 /*GB*/ + size of file "objects.data" of (if (x64 of operating system) then (x64 folder (pathname of windows folder & "\system32\wbem\repository")) else (folder (pathname of windows folder & "\system32\wbem\repository"))) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Configuration - Windows (2998309).bes b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Configuration - Windows (2998309).bes new file mode 100644 index 000000000..24559fc06 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Configuration - Windows (2998309).bes @@ -0,0 +1,39 @@ + + + + + Whitelisting - Applocker - Configuration - Windows + Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + BESC + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry as string | "Disabled") + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Dll" of native registry as string | "Disabled") + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry as string | "Disabled") + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string | "Disabled") + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry as string | "Disabled") + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry as string) + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Dll" of native registry as string) + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry as string) + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string) + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Dll" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry as string) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Logs - Windows (2998440).bes b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Logs - Windows (2998440).bes new file mode 100644 index 000000000..482c94194 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Logs - Windows (2998440).bes @@ -0,0 +1,26 @@ + + + + + Whitelisting - Applocker - Logs - Windows + This analysis provides information on blocked or audited launches looking at the last 500 event logs from Applocker.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + NOT in proxy agent context + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + BESC + (time generated of it, preceding text of last " was " of description of it, (if (event id of it = 8003) then ("Warned") else ("Blocked")) of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 8003 or event id of it = 8004) of event log "Microsoft-Windows-AppLocker/EXE and DLL" + (time generated of it, preceding text of last " was " of description of it, (if (event id of it = 8006) then ("Warned") else ("Blocked")) of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 8006 or event id of it = 8007) of event log "Microsoft-Windows-AppLocker/MSI and Script" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Windows (2998311).bes b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Windows (2998311).bes new file mode 100644 index 000000000..eaca9570f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Windows (2998311).bes @@ -0,0 +1,23 @@ + + + + + Whitelisting - Applocker - Windows + Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ = "6.1"]]> + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + BESC + exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows 11 Upgrade Eligibility Information (2998656).bes b/Sites/Windows Management/Fixlets/Analyses/Windows 11 Upgrade Eligibility Information (2998656).bes new file mode 100644 index 000000000..15d073cf5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows 11 Upgrade Eligibility Information (2998656).bes @@ -0,0 +1,60 @@ + + + + + Windows 11 Upgrade Eligibility Information + + + + +


This analysis contains information about system requirements for upgrading computers from Windows 10 to Windows 11.

+

This analysis applies to Windows 10 systems only.

+

System requirements:

+
    +
  • 1 gigahertz (GHz) or faster with 2 or more cores on a compatible 64-bit processor or System on a Chip (SoC). +
  • 4 gigabytes (GB) of RAM +
  • 64 GB or larger storage device +
  • UEFI, Secure Boot capable +
  • Trusted Platform Module (TPM) version 2.0 +
  • Graphics Card compatible with DirectX 12 or later with WDDM 2.0 driver * +
  • High definition (720p) display that is greater than 9'' diagonally, 8 bits per color channel +
  • Internet Connectivity and Microsoft Account
+

Important Note: Graphics Card Check requires a to evaluate. Please run this task on all of your Windows 10 devices.

+

* We have observed in our testing that Windows 10 can be upgraded to 11 in virtual environments with WDDM 1.1 and 1.4 without any issues.

+]]>
+ if exists property "in proxy agent context" then ( not in proxy agent context ) else true + name of operating system as lowercase starts with "win10" + + x-fixlet-first-propagation + Tue, 28 Sep 2021 23:04:56 +0000 + + + x-fixlet-win11-eligibility + analysis + + + x-fixlet-modification-time + Fri, 01 Oct 2021 17:58:24 +0000 + + BESC + (if (it = "x86_64") then "PASS" else "FAIL - OS Architecture: " & it) of (architecture of operating system) + (if (it > 1000) then "PASS" else concatenation of "FAIL - Current processor speed in GHZ: " & (it as string)) of (significant digits 2 of (speed of main processor / mhz)) + (if (it >= 2) then "PASS" else concatenation of "FAIL - Current core count: " & (it as string)) of (core of it * count of it) of cpupackage + (if (it >= 4096) then "PASS" else "FAIL - Current memory in MB: " & (it as string)) of (if (it > 128) then ( ((it / 32) * 32) + (if (it mod 32 > 16) then 32 else 0) ) else it) of (size of ram /1048576) + (if (it) then "PASS" else "FAIL - no 64GB fixed drive") of ( exists drive whose (type of it = "DRIVE_FIXED" and (total space of it/(1024*1024*1024)) >=64 )) + (if (number of elements of it = 0) then "PASS" else "FAIL - Issues: " & concatenation "," of elements of it ) of set of ( following texts whose (it does not contain "12" AND (it as integer < 12 ) of first 2 of (it as trimmed string) of following text of first "DirectX" of it) of first ": " of (it as string) of lines whose (it as trimmed string starts with "DirectX Version: ") of it; following texts whose ( (it as trimmed string as version < "2.0") of following text of first "WDDM" of it) of firsts ": " of (it as string) of lines whose (it as trimmed string starts with "Driver Model:" and it contains "WDDM") of it)of file "win11-eligibility\dxdiag.txt" of parent folder of client |"probe not run" + (if number of elements of it = 0 then "FAIL - TPM not visible in wmi" else (if (number of elements of it = 0) then "PASS" else "FAIL - TPM issues: " & concatenation "|" of elements of it) of set of elements whose ((it contains "_InitialValue" AND not (it as boolean) of following text of first "=" of it) OR ((it as version < "2.0") of tuple string item 0 of following text of first "SpecVersion=" of it)) of it) of set of ((it as string) of selects "IsActivated_InitialValue, IsEnabled_InitialValue, IsOwned_InitialValue, SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + if (exists selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi) then "PASS" else "FAIL - BIOS boot mode" + if exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" whose (value "UEFISecureBootEnabled" of it = 1) of native registry then "PASS" else "FAIL - Secure Boot Disabled" + (if (it >=2004) then "PASS" else "FAIL - Current Version: " & (it as string)) of (it as integer) of value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Admin Users Compliance Status (2998597).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Admin Users Compliance Status (2998597).bes new file mode 100644 index 000000000..2e1164ea3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Admin Users Compliance Status (2998597).bes @@ -0,0 +1,80 @@ + + + + + Windows Admin Users Compliance Status + Note:

+

1.  If the task "Deploy ComplianceWhitelist File" has not yet been run, the Status may show "No Compliance Whitelist on Endpoint"
2.  The file ComplianceWhitelist.txt should be created on the BES Server prior to running the above task
3.  If the names of the files in the "Deploy Compliance Whitelist File" task and the "Enforce Compliance" Fixlet have been changed, those changes should also be made in this analysis otherwise the analysis may show a status of "No Whitelist File on Endpoint"

+

 

+

 

+

Properties Description:

+

+ + + + + + + + + + + +
+

Status

+

Unauthorized

+

Admins 

+

Name/PWD Age of Admins

+

Whitelist files Match

+

Compliant: All users in the Administrators group are in the ComplianceWhitelist.txt file

+

Not-Compliant: There are users in the local Administrators group that are NOT in the ComplianceWhitelist.txt file.

+

 If the status shows Not-Compliant this field will show which users are in the endpoint's local Administrators group that are NOT in the ComplianceWhitelist.txt file.

+

 

+

Displays the members of local Administrators group as well as the age of the passwords for each of those users.  This can be useful in determining if any admin-user is violating corporate password policy and creating a potential vulnerability.

+

Compares the hash of the ComplianceWhitelist.txt file on that endpoint with the hash of the backup file created by the 'Deploy Whitelist' task.  If there is a mismatch then it is likely someone has modified the primary Whitelist file to fool the policy

+

+ + + + + + + + + + + +
+

Primary File hash

+

Backup File hash

+

Primary File Date

+

Backup File Date

+

The sha1 hash of the primary ‘whitelist’ file.  A difference between this and the hash on other clients or this client’s backup file likely indicates that someone has made unauthorized changes to this file.

+

The sha1 hash of the backup ‘whitelist’ file.  If someone makes unauthorized changes to the primary whitelist file there will likely be a difference between the hashes of the primary and the backup files.

+

The modification date of the primary whitelist file.  If the file has a different date than the ‘official’ whitelist file, it will allow an operator to detect that the file on this computer may not be the same as the 'official' version.

+

The modification date of the backup whitelist file.  If the file has a different date than the ‘official’ whitelist file or the primary whitelist file, it will allow an operator to detect that the file(s) on this computer may not be the same as the 'official' version.

]]>
+ name of operating system starts with "Win" + + x-fixlet-modification-time + Tue, 18 Sep 2018 04:18:29 +0000 + + BESC + if exists file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt") then if number of (elements of (set of ((following texts of firsts "\" of unique values of ((members of local group "Administrators") as string) as lowercase)) - set of (unique values of (lines of file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt"))))) = 0 then "Compliant" else "Not-Compliant" else "No Compliance Whitelist on Endpoint" + if exists file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt") then "[" & concatenation "] - [" of (elements of (set of ((following texts of firsts "\" of unique values of ((members of local group "Administrators") as string) as lowercase)) - set of (unique values of (lines of file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt"))))) & "]" else "No Compliance Whitelist on Endpoint" + if exists file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") then if exists file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") then (sha1 of file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") = sha1 of file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt")) as string else "Primary Whitelist File Missing" else "Whitelist Backup File Missing" + if exists file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") then (sha1 of file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt")) else "Backup Whitelist File Missing" + if exists file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") then sha1 of file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") else "Primary Whitelist File Missing" + if exists file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") then (modification time of file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt")) as string else "Primary Whitelist File Missing" + if exists file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") then (modification time of file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt")) as string else "Backup Whitelist File Missing" + "[" & concatenation "] - [" of (((names of it, password age of it) of users whose (admin privilege of it as string contains "True")) as string) & "]" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Experience Index Results - WinVista and later (2994570).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Experience Index Results - WinVista and later (2994570).bes new file mode 100644 index 000000000..9af68c006 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Experience Index Results - WinVista and later (2994570).bes @@ -0,0 +1,45 @@ + + + + + Windows Experience Index Results - WinVista and later +  

+

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014780300#77777777-0000-0000-0000-000014956475

]]>
+ windows of operating system + = "6.0"/* Windows Vista or later */]]> + exists name whose(it does not contain "Win2008" AND it does not contain "Win2012") of operating system/* Exclude Windows Server */ + + x-fixlet-modification-time + Thu, 22 Aug 2013 21:32:40 +0000 + + BESC + exists folder "Performance\WinSAT\DataStore" of windows folder + number of files whose(name of it ends with ".WinSAT.xml") of folder "Performance\WinSAT\DataStore" of windows folder + names of files whose(name of it ends with ".WinSAT.xml") of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/SystemScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/SystemScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/CpuScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/CpuScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/MemoryScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/MemoryScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/GraphicsScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/GraphicsScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/GamingScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/GamingScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/DiskScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/DiskScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/VideoEncodeScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/VideoEncodeScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/CPUSubAggScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/CPUSubAggScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/Dx9SubScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/Dx9SubScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/Dx10SubScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/Dx10SubScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (it as text) of xpaths "/WinSAT/WinSPR/StdDefPlaybackScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/StdDefPlaybackScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (it as text) of xpaths "/WinSAT/WinSPR/HighDefPlaybackScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/HighDefPlaybackScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (preceding text of first " " of following text of first " " of (it as text) as string) of attributes "Friendly" of xpaths "/WinSAT/SystemEnvironment/ExecDateTOD" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/SystemEnvironment/ExecDateTOD" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (it as text as floating point) of xpaths "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Random Read']" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Random Read']" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (it as text as floating point) of xpaths "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Sequential Read']" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Sequential Read']" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + ((exists folder "Performance\WinSAT\DataStore" of windows folder) AND (exists files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment") of folder "Performance\WinSAT\DataStore" of windows folder) AND (1 < (number of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" AND ("0" = (it as text) of xpath "/WinSAT/CompletionStatus" of xml document of it)) of folder "Performance\WinSAT\DataStore" of windows folder)) AND ((now - maximum of creation times of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" AND ("0" = (it as text) of xpath "/WinSAT/CompletionStatus" of xml document of it)) of folder "Performance\WinSAT\DataStore" of windows folder) < 90*day)) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows License Information (2998636).bes b/Sites/Windows Management/Fixlets/Analyses/Windows License Information (2998636).bes new file mode 100644 index 000000000..c8c802319 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows License Information (2998636).bes @@ -0,0 +1,54 @@ + + + + + Windows License Information + Reports Windows Licensing Information, majority of what is shown when running the command slmgr /dli. Includes information about Windows 7 ESU Licensing, including Year 2 ESU License information

+
    +
  • License Name +
  • Description +
  • Partial Product Key +
  • License Status +
  • License Family +
  • KMS Server DNS Name +
  • KMS Server Port +
  • KMS Server IP Address +
  • KMS machine extended PID +
  • Activation Interval +
  • Renewal Interval
]]>
+ windows of operating system + + x-fixlet-modification-time + Fri, 15 Jan 2021 03:30:44 +0000 + + BESC + if ((select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi) as string contains "1") then "Licensed" else "Not Licensed" + string value of select "Name from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "DiscoveredKeyManagementServiceMachineName from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "LicenseFamily from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + (string value of select "DiscoveredKeyManagementServiceMachineIpAddress from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi) | "No IP Address Reported" + string value of select "VLActivationInterval from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "VLRenewalInterval from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "KeyManagementServiceProductKeyID from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "KeyManagementServicePort from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "PartialProductKey from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "Description from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "Name from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi | "No ESU License" + string value of select "Description from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi | "No ESU License" + string value of select "PartialProductKey from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi | "No ESU License" + (if ((string value of select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi) as string contains "1") then "Licensed" else "Not Licensed" ) | "No ESU License" + string value of select "Name from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi | "No ESU License" + string value of select "Description from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi | "No ESU License" + string value of select "PartialProductKey from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi | "No ESU License" + (if ((string value of select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi) as string contains "1") then "Licensed" else "Not Licensed" ) | "No ESU License" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Power Scheme Settings (2994768).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Power Scheme Settings (2994768).bes new file mode 100644 index 000000000..3dcec678b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Power Scheme Settings (2994768).bes @@ -0,0 +1,34 @@ + + + + + Windows Power Scheme Settings + Retrieves several values from the current Windows Power Scheme settings.  The value that is currently in effect is displayed; this may be a user-overridden value, or defaults for the current Power Scheme.

+

This should be able to retrieve power settings for Windows Vista and higher.  It has been tested with Windows 7, Windows 2008, and Windows 2008 R2.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = "6" as version]]> + + x-fixlet-modification-time + Fri, 27 Mar 2015 15:24:08 +0000 + + BESC + preceding text of last "%00" of following text of last "," of (value "FriendlyName" of key (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string as trimmed string) + (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power" of native registry) whose (exists value "HibernateEnabled" of it) then value "HibernateEnabled" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power" of native registry as string else "<not found>" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Software Protection Licensing Information - KMS - Windows (2998367).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Software Protection Licensing Information - KMS - Windows (2998367).bes new file mode 100644 index 000000000..16ee190ba --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Software Protection Licensing Information - KMS - Windows (2998367).bes @@ -0,0 +1,32 @@ + + + + + Windows Software Protection Licensing Information - KMS - Windows + + windows of operating system + + x-fixlet-modification-time + Thu, 25 Aug 2016 01:04:22 +0000 + + BESC + string values of selects "name from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + string values of selects "LicenseFamily from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + string values of selects "ProductKeyChannel from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + tuple string items (integer values of selects "LicenseStatus from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis) of "Unlicensed, Licensed, OOB Grace, OOT Grace, NonGenuineGrace, Notification, UNKNOWN" + (it * minute + now) whose(it > now) of integer values of selects "GracePeriodRemaining from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + string values of selects "PartialProductKey from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + unique values of (it as string; string values of selects "KeyManagementServiceMachine from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis) of (values "DiscoveredKeyManagementServiceName" of it; values "KeyManagementServiceName" of it) of (keys "HKEY_USERS\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SL" of it; keys of keys of keys "HKEY_USERS\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of it; keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of it) of (x64 registries; x32 registries) + unique values of (it as string) of values "BackupProductKeyDefault" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x64 registries; x32 registries) + ((it as trimmed string) of preceding text of first ", " of following text of first ( (", " & it & ",") of (it as trimmed string) of ( (preceding text of last "Pro" of it & "Professional" & following text of last "Pro" of it) | it) of unique values of (it as string as trimmed string) of values "ProductName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of (x64 registries; x32 registries) ) of it) of ("NULL, Windows Server 2016 Datacenter, CB7KF-BWN84-R7R2Y-793K2-8XDDG, Windows Server 2016 Standard, WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY, Windows Server 2016 Essentials, JCKRF-N37P4-C2D82-9YXRT-4M63B, "&"Windows 10 Professional, W269N-WFGWX-YVC9B-4J6C9-T83GX, Windows 10 Professional N, MH37W-N47XK-V7XM9-C7227-GCQG9, Windows 10 Enterprise, NPPR9-FWDCX-D2C8J-H872K-2YT43, Windows 10 Enterprise N, DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4, "&"Windows 10 Education, NW6C2-QMPVW-D7KKK-3GKT6-VCFB2, Windows 10 Education N, 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ, Windows 10 Enterprise 2015 LTSB, WNMTR-4C88C-JK8YV-HQ7T2-76DF9, Windows 10 Enterprise 2015 LTSB N, 2F77B-TNFGY-69QQF-B8YKP-D69TJ, Windows 10 Enterprise 2016 LTSB, DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ, Windows 10 Enterprise 2016 LTSB N, QFFDN-GRT3P-VKWWX-X7T3R-8B639, "&"Windows 8.1 Professional, GCRJD-8NW9H-F2CDX-CCM8D-9D6T9, Windows 8.1 Professional N, HMCNV-VVBFX-7HMBH-CTY9B-B4FXY, Windows 8.1 Enterprise, MHF9N-XY6XB-WVXMC-BTDCT-MKKG7, Windows 8.1 Enterprise N, TT4HM-HN7YT-62K67-RGRQJ-JFFXW, "&"Windows Server 2012 R2 Server Standard, D2N9P-3P6X9-2R39C-7RTCD-MDVJX, Windows Server 2012 R2 Datacenter, W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9, Windows Server 2012 R2 Essentials, KNC87-3J2TX-XB4WP-VCPJV-M4FWM, "&"Windows 8 Professional, NG4HW-VH26C-733KW-K6F98-J8CK4, Windows 8 Professional N, XCVCF-2NXM9-723PB-MHCB7-2RYQQ, Windows 8 Enterprise, 32JNW-9KQ84-P47T8-D8GGY-CWCK7, Windows 8 Enterprise N, JMNMF-RHW7P-DMY6X-RF3DR-X2BQT, "&"Windows Server 2012, BN3D2-R7TKB-3YPBD-8DRP2-27GG4, Windows Server 2012 N, 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY, Windows Server 2012 Single Language, 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ, Windows Server 2012 Country Specific, 4K36P-JN4VD-GDC6V-KDT89-DYFKP, "&"Windows Server 2012 Server Standard, XC9B7-NBPP2-83J2H-RHMBY-92BT4, Windows Server 2012 MultiPoint Standard, HM7DN-YVMH3-46JC3-XYTG7-CYQJJ, Windows Server 2012 MultiPoint Premium, XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G, Windows Server 2012 Datacenter, 48HP8-DN98B-MYWDG-T2DCC-8W83P, "&"Windows 7 Professional, FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4, Windows 7 Professional N, MRPKT-YTG23-K7D7T-X2JMM-QY7MG, Windows 7 Professional E, W82YF-2Q76Y-63HXB-FGJG9-GF7QX, Windows 7 Enterprise, 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH, Windows 7 Enterprise N, YDRBP-3D83W-TY26F-D46B2-XCKRJ, Windows 7 Enterprise E, C29WB-22CC8-VJ326-GHFJW-H9DH4, "&"Windows Server 2008 R2 Web, 6TPJF-RBVHG-WBW2R-86QPH-6RTM4, Windows Server 2008 R2 HPC edition, TT8MH-CG224-D3D7Q-498W2-9QCTX, Windows Server 2008 R2 Standard, YC6KT-GKW9T-YTKYR-T4X34-R7VHC, Windows Server 2008 R2 Enterprise, 489J6-VHDMP-X63PK-3K798-CPX3Y, Windows Server 2008 R2 Datacenter, 74YFP-3QFB3-KQT8W-PMXWJ-7M648, Windows Server 2008 R2 for Itanium-based Systems, GT63C-RJFQ3-4GMB6-BRFB9-CB83V, "&"Windows Vista Business, YFKBB-PQJJV-G996G-VWGXY-2V3X8, Windows Vista Business N, HMBQG-8H2RH-C77VX-27R82-VMQBT, Windows Vista Enterprise, VKK3X-68KWM-X2YGT-QR4M6-4BWMV, Windows Vista Enterprise N, VTC42-BM838-43QHV-84HX6-XJXKV, "&"Windows Web Server 2008, WYR28-R7TFJ-3X2YQ-YCY4H-M249D, Windows Server 2008 Standard, TM24T-X9RMF-VWXK6-X8JC9-BFGM2, Windows Server 2008 Standard without Hyper-V, W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ, Windows Server 2008 Enterprise, YQGMW-MPWTJ-34KDK-48M3W-X4Q6V, "&"Windows Server 2008 Enterprise without Hyper-V, 39BXF-X8Q23-P2WWT-38T2F-G3FPG, Windows Server 2008 HPC, RCTX3-KWVHP-BR6TB-RB6DM-6X7HP, Windows Server 2008 Datacenter, 7M67G-PC374-GR742-YH8V4-TCBY3, Windows Server 2008 Datacenter without Hyper-V, 22XQ2-VRXRG-P8D42-K34TD-G3QQC, Windows Server 2008 for Itanium-Based Systems, 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK, NULL") + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows System Volume Size & Usage (2994588).bes b/Sites/Windows Management/Fixlets/Analyses/Windows System Volume Size & Usage (2994588).bes new file mode 100644 index 000000000..090a23155 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows System Volume Size & Usage (2994588).bes @@ -0,0 +1,29 @@ + + + + + Windows System Volume Size & Usage + + windows of operating system + = "6"]]> + + x-fixlet-modification-time + Mon, 21 Oct 2013 20:59:36 +0000 + + SYST + ((if exists string value of properties "Label" of it then string value of properties ("Label") of it else "<none>")) of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + ((if exists string value of properties "DriveLetter" of it then string value of properties ("DriveLetter") of it else "<none>")) of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + ((string value of property "Capacity" of it as integer / 1024 / 1024) as string & " MB") of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + ((string value of property "FreeSpace" of it as integer / 1024 / 1024) as string & " MB") of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + ((string value of property "FreeSpace" of it as floating point / string value of property "Capacity" of it as floating point * 100) as integer as string & " percent free") of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Update & WSUS Audit (69).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Update & WSUS Audit (69).bes new file mode 100644 index 000000000..7844624cd --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Update & WSUS Audit (69).bes @@ -0,0 +1,27 @@ + + + + + Windows Update & WSUS Audit + + windows of operating system + + x-fixlet-modification-time + Tue, 11 Dec 2012 15:57:58 +0000 + + BESC + if(not exists value "LastSuccessTime" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install" of native registry) then "No Windows Updates installed" else (value "LastSuccessTime" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install" of native registry as string) + if(not exists value "SusClientId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" of native registry) then "No SUS ID" else (value "SusClientId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" of native registry as string) + if(not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" of native registry OR not exists value "WUServer" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" of native registry) then "n/a" else (value "WUServer" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" of native registry as string) + ((value "InstallDate" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as integer) * second) + ("01 Jan 1970 00:00:00" as local time) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Update - WUSA - Errors while Installing Updates (2998673).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Update - WUSA - Errors while Installing Updates (2998673).bes new file mode 100644 index 000000000..8cb09642e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Update - WUSA - Errors while Installing Updates (2998673).bes @@ -0,0 +1,24 @@ + + + + + Windows Update - WUSA - Errors while Installing Updates + Windows Update - WUSA - Errors while Installing Updates + exists records whose (source of it = "Microsoft-Windows-WUSA" and event id of it = 3) of event log "Setup" + + x-fixlet-modification-time + Mon, 10 Jan 2022 10:06:03 +0000 + + BESC + (time generated of it, "Record ID:" & record number of it as string, "Event ID:" & event id of it as string, description of it) of records whose (source of it = "Microsoft-Windows-WUSA" and event id of it = 3) of event log "Setup" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Update check results - Windows (2998507).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Update check results - Windows (2998507).bes new file mode 100644 index 000000000..256295b0d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Update check results - Windows (2998507).bes @@ -0,0 +1,30 @@ + + + + + Windows Update check results - Windows + This analysis reads the results from this action: https://github.com/jgstew/bigfix-content/blob/master/fixlet/Output%20Windows%20Update%20Results%20-%20Windows.bes

+

 

]]>
+ exists files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + + x-fixlet-modification-time + Fri, 23 Dec 2016 23:28:50 +0000 + + BESC + (it as integer) of keys "Software" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + (it as integer) of keys "Driver" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + (it as integer) of keys "Number" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + (it as integer) of keys "Hidden" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + modification times of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + unique values of (it as trimmed string) of following texts of firsts "=" of variables whose(it starts with "[Windows Updates].Software" AND it does not start with "[Windows Updates].Software=" AND it does not contain "=Definition Update for Windows Defender" AND it does not contain "=Microsoft Silverlight (") of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Updates - Windows (2998397).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Updates - Windows (2998397).bes new file mode 100644 index 000000000..618f8dd32 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Updates - Windows (2998397).bes @@ -0,0 +1,26 @@ + + + + + Windows Updates - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BES + values "TargetGroup" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry + values "WUServer" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry + (if (it = "2") then ("Notify before download.") else (if (it = "3") then ("Automatically download and notify of installation.") else (if (it = "4") then "Automatic download and scheduled installation" else (if (it = "5") then "Automatic Updates is required, but end users can configure it." else ERROR "Value not recognized")))) of (value "AUOptions" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" of native registry as string) + if (value "AutoInstallMinorUpdates" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry as string | "0" = "1" ) then "Enabled" else "Disabled" + if (value "NoAutoUpdate" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry as string | "0" = "1" ) then "Disabled" else "Enabled" + (if (it = "-1") then ("Not Configured") else (if (it = "0") then "Disabled" else (if (it = "1") then "Enabled" else ERROR "Unknown Value"))) of (value "NoAutoRebootWithLoggedOnUsers" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" of native registry as string | "-1") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Upgrades (2998608).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Upgrades (2998608).bes new file mode 100644 index 000000000..f03f7f572 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Upgrades (2998608).bes @@ -0,0 +1,25 @@ + + + + + Windows Upgrades + + operating system as string contains "Win" + exist file "C:\in_place_upgrade\out.log" + + x-fixlet-modification-time + Wed, 08 Apr 2020 16:50:04 +0000 + + BESC + if exist file "C:\in_place_upgrade\out.log" then line 1 of file "C:\in_place_upgrade\out.log" else "N/A" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/WindowsUpdate.log Audit - Windows (2995914).bes b/Sites/Windows Management/Fixlets/Analyses/WindowsUpdate.log Audit - Windows (2995914).bes new file mode 100644 index 000000000..86ede7371 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/WindowsUpdate.log Audit - Windows (2995914).bes @@ -0,0 +1,26 @@ + + + + + WindowsUpdate.log Audit - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + exists files "WindowsUpdate.log" whose( exists lines of it AND not exists lines whose(it contains "Get-WindowsUpdateLog PowerShell" OR it contains "Checking write access") of it ) of ( windows folders ; folders "Logs" of folders "__Global" of data folders of clients ) + + x-fixlet-modification-time + Tue, 29 Mar 2016 19:01:29 +0000 + + BESC + (item 1 of /* -> This "it" refers to the last 100 lines of the file -> */ it) whose( /* -> remove empty lines, which is why this relevance can return less than 100 lines per file -> */ it as trimmed string != "") of ( /* -> this is the number of lines of the file from the previous statement -> */ item 1 of it, (lines of /* -> the file object -> */ item 0 of it) ) /* -> This whose statement is responsible for filtering for only the last 100 lines of the file -> */ whose ( (line number of /* -> lines of the file -> */ item 1 of it) > ( /* -> number of lines of the file -> */ item 0 of it - 100 /* <- This is the number of lines to return, which is subtracted from the total # of lines <- */ ) ) of ( /* -> the parent file object itself -> */ it, number of lines of it) of files "WindowsUpdate.log" whose( not exists lines whose(it contains "Get-WindowsUpdateLog PowerShell") of it ) of ( windows folders ; folders "Logs" of folders "__Global" of data folders of clients) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/dotNET Framework (2994589).bes b/Sites/Windows Management/Fixlets/Analyses/dotNET Framework (2994589).bes new file mode 100644 index 000000000..ceb2f5f4f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/dotNET Framework (2994589).bes @@ -0,0 +1,32 @@ + + + + + .NET Framework + + windows of operating system + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + + x-fixlet-modification-time + Mon, 25 Mar 2013 20:07:41 +0000 + + BESC + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v2.0") of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v2.0") of it) of native registry + value "SP" of key whose (name of it starts with "v2.0") of key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v3.0") of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v3.0") of it) of native registry + value "SP" of key whose (name of it starts with "v3.0") of key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v3.5") of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v3.5") of it) of native registry + value "SP" of key whose (name of it starts with "v3.5") of key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v4") of key "Client" of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v4") of key "Client" of it) of native registry + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v4") of key "Full" of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v4") of key "Full" of it) of native registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/powercfg energy report - Windows (2994793).bes b/Sites/Windows Management/Fixlets/Analyses/powercfg energy report - Windows (2994793).bes new file mode 100644 index 000000000..3003dde29 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Analyses/powercfg energy report - Windows (2994793).bes @@ -0,0 +1,26 @@ + + + + + powercfg energy report - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + exists files whose(exists (it as lowercase) whose(it starts with "energy-report." AND (it ends with ".xml" OR it ends with ".html")) of name of it) of system x64 folder + + x-fixlet-modification-time + Fri, 28 Mar 2014 19:10:37 +0000 + + BESC + pathnames of files whose(exists (it as lowercase) whose(it starts with "energy-report." AND (it ends with ".xml" OR it ends with ".html")) of name of it) of system x64 folder + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/AAC - Create a Public Desktop Shortcut for all users on Windows (25073).bes b/Sites/Windows Management/Fixlets/Fixlets/AAC - Create a Public Desktop Shortcut for all users on Windows (25073).bes new file mode 100644 index 000000000..6edb92fef --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/AAC - Create a Public Desktop Shortcut for all users on Windows (25073).bes @@ -0,0 +1,83 @@ + + + + + AAC - Create a Public Desktop Shortcut for all users on Windows + Uses Powershell to create a public destop shortcut that works on most modern Windows systems (those supported by powershell)

+

When prompted you can provide an application full path or an URL:

+

URL example

+
+

https://bigfix.me

+

Application example:

+
+

C:\Program Files\Notepad++\notepad++.exe

+

When prompted for the name you can enter any valid filename (Warn: no checks are done)

+

Note: If you use the same name of an existing Public Desktop shortcut, it will be replaced. If you use the same name of a Private Desktop shortcut, two shortcuts will exist on User's desktop.

]]>
+ windows of operating system + exist keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" whose (exists value "Path" of it) of native registry + Utility + andrea.capasso@hcl.com + 2018-02-08 + + x-fixlet-modification-time + Thu, 08 Feb 2018 17:22:09 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS - set server - Windows (22632).bes b/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS - set server - Windows (22632).bes new file mode 100644 index 000000000..49c9a433d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS - set server - Windows (22632).bes @@ -0,0 +1,60 @@ + + + + + Activate Windows with KMS - set server - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + not exists values "KeyManagementServiceName" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x32 registries; x64 registries) + not exists integer values whose(1=it) of selects "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) AND (Name like 'Windows%25')" of wmis + Internal + 2016-08-05 + + x-fixlet-modification-time + Thu, 17 Nov 2016 21:39:55 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS over VPN - Windows (22633).bes b/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS over VPN - Windows (22633).bes new file mode 100644 index 000000000..8e0e45808 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS over VPN - Windows (22633).bes @@ -0,0 +1,68 @@ + + + + + Activate Windows with KMS over VPN - Windows + This is designed to automatically fix systems that are primarily off network and only connect over VPN occationally, not often enough for the KMS Client to handle it automatically.

+

This currently handles 2 different versions of the Cisco VPN client. Others could be added.

+

This could also detect when there is an issue much earlier to trigger the KMS checkin.

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + exists values "KeyManagementServiceName" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x32 registries; x64 registries) + not exists integer values whose(1=it) of selects "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) AND (Name like 'Windows%25')" of wmis + exists adapters whose(up of it AND exists addresses whose(it as string != "0.0.0.0") of it AND exists description whose(it contains "Cisco Systems VPN Adapter" OR it contains "Cisco AnyConnect Secure Mobility Client") of it) of networks + Internal + jgstew + 2016-08-05 + + x-fixlet-modification-time + Thu, 17 Nov 2016 22:46:45 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Add AD Domain to DNS Suffix Search List if missing - Windows (26706).bes b/Sites/Windows Management/Fixlets/Fixlets/Add AD Domain to DNS Suffix Search List if missing - Windows (26706).bes new file mode 100644 index 000000000..c1062433b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Add AD Domain to DNS Suffix Search List if missing - Windows (26706).bes @@ -0,0 +1,48 @@ + + + + + Add AD Domain to DNS Suffix Search List if missing - Windows + + windows of operating system + exists dns domainnames of local computers of active directories + exists (it as trimmed string) whose(it != "") of substrings separated by "," of (it as string as lowercase) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries + not exists (it as trimmed string) whose(it contains unique value of dns domainnames of local computers of active directories) of substrings separated by "," of (it as string as lowercase) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries + https://github.com/jgstew/bigfix-content/blob/master/fixlet/Add%20AD%20Domain%20to%20DNS%20Suffix%20Search%20List%20if%20missing%20-%20Windows.bes + jgstew + 2020-09-14 + + x-fixlet-modification-time + Tue, 15 Sep 2020 14:30:04 +0000 + + BESC + + + Click + here + to deploy this action. + + +// TODO: Test + +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]" "SearchList"="{ concatenations "," of (it as trimmed string) of ( (unique values of dns domainnames of local computers of active directories) ; it ) of (it as string as trimmed string) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries }" + + +// concatenations "," of ( (unique values of dns domainnames of local computers of active directories) ; it ) of (it as string as trimmed string) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries + +// Reference: +// - https://bigfix.me/relevance/details/3022969 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Add Current User to Remote Desktop Users Group (3794).bes b/Sites/Windows Management/Fixlets/Fixlets/Add Current User to Remote Desktop Users Group (3794).bes new file mode 100644 index 000000000..a4ca7f02c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Add Current User to Remote Desktop Users Group (3794).bes @@ -0,0 +1,61 @@ + + + + + Add Current User to Remote Desktop Users Group + Thiis task will add the currently logged in user to the remote desktop users group. + windows of operating system + exist current user and not (exists member whose (it as string as lowercase ends with (name of current user)) of local group "Remote Desktop Users" ) + Internal + 2014-06-11 + + x-fixlet-modification-time + Wed, 11 Jun 2014 15:43:26 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Add User to Local Administrators Group (3624).bes b/Sites/Windows Management/Fixlets/Fixlets/Add User to Local Administrators Group (3624).bes new file mode 100644 index 000000000..f590bae1a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Add User to Local Administrators Group (3624).bes @@ -0,0 +1,33 @@ + + + + + Add User to Local Administrators Group + + true + Internal + 2012-12-28 + + x-fixlet-modification-time + Sat, 29 Dec 2012 00:44:02 +0000 + + BESC + + + Click + here + to deploy this action. + + wait net localgroup administrators moranit.local\Daniel /add + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Allow popups in Interent Explorer for a specific domain - www.domain.tld (715).bes b/Sites/Windows Management/Fixlets/Fixlets/Allow popups in Interent Explorer for a specific domain - www.domain.tld (715).bes new file mode 100644 index 000000000..ee000a141 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Allow popups in Interent Explorer for a specific domain - www.domain.tld (715).bes @@ -0,0 +1,38 @@ + + + + + Allow popups in Interent Explorer for a specific domain - www.domain.tld + + windows of operating system + exists current user AND (1 = number of logged on users) + + Registry Edit + Internal + jgs194 + 2012-08-23 + + x-fixlet-modification-time + Wed, 05 Dec 2012 16:43:07 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Apache Commons Text detection scan (Windows).bes b/Sites/Windows Management/Fixlets/Fixlets/Apache Commons Text detection scan (Windows).bes new file mode 100644 index 000000000..cec702232 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Apache Commons Text detection scan (Windows).bes @@ -0,0 +1,95 @@ + + + + + Apache Commons Text detection scan (Windows) + This is Community Content. When you use these solutions, it is incumbent on your organization to test any solutions provided across the broadest available system base including various OS, storage solutions, and application inventory. +

+

Please see the Community Solution Testing Statement

+

This Task performs a filesystem scan on Windows systems to attempt detecting Apache Commons Text versions vulnerable to CVE-2022-42889.

+ +

 

+

This Task performs a filesystem search across all fixed disks on Windows platforms, to locate Apache Commons Text JAR files, either directly on the filesystem or embedded in a .WAR archive file.  In the case any .WAR file is found on the system, the 'unzip.exe' utility is used to perform a listing of files inside the archive to locate Apache Commons Text-related .JAR files.  Specifically, this Task searches for any versions of commons-text-1.10.0.jar.

+

Scan results are stored in a "Scans" subdirectory beneath the "BES Client" folder. 'apache-commons-text.log' contains the full script output for potential debugging or diagnosis, and 'apache-commons-text.txt' contains a listing of detected files in one of the forms

+
    +
  • C:\temp\commons-text\1.10.0\commons-text-1.10.0-tests.jar +
  • C:\temp\commons-text.war||commons-text/1.4/commons-text-1.4.jar
+

The first sample entry indicates a detected jar file directly in the filesystem, while the second entry indicates a detected .jar file embedded within a .WAR archive.

+

This Task has several known limitations:

+
    +
  • Archives are not extracted recursively - only .JAR files contained directly within a .WAR archive are found; archives embedded within multiple layers of .WAR archives are not detected. +
  • There is no option to throttle the scan in terms of processor or disk i/o usage.  Scans should be executed during non-critical hours, and staggered over time especially where multiple systems share a storage resource, such as a SAN or virtual machine storage pool.
+

This detection method uses Windows batch scripts with no external utility aside from 'unzip.exe'.  Results of the scan may be retrieved using the related Analysis.

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + Internal + 2022-03-31 + + x-fixlet-modification-time + Tue, 18 Oct 2022 16:37:21 +0000 + + BESC + + + Click + here + to deploy this action. + + = "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))}\Scans" +folder create "{parameter "ScansFolder"}" + +parameter "output"="{pathname of folder (parameter "ScansFolder")}\apache-commons-text.txt" +parameter "exec_output"="{pathname of folder (parameter "ScansFolder")}\apache-commons-text.log" +delete "{parameter "output"}" +delete "{parameter "exec_output"}" + +delete __createfile +createfile until EOF_EOF_EOF_EOF +set UNZIP="{parameter "unzip"}" +setlocal EnableDelayedExpansion +GOTO MAIN +:PROCESSFILE +echo Processfile %* +REM If the file itself matches, output it and exit this function +if %~x1==.jar echo %~dpnx1 >> "{parameter "output"}"& exit /B 0 +REM the file is a war/jar, expand it to search for embedded files +REM Use DelayedExpansion and !FILENAME! to prevent 'for' loop crashing on symbols like 'Program Files (x86)' +set FILENAME=%~dpnx1 +for /F "tokens=*" %%i in ('"%UNZIP% -Z -1C "!FILENAME!" *commons-text-*.jar ^|findstr /R /V /C:"\-javadoc\.jar$" /C:"\-sources\.jar$" /C:"\-tests\.jar$""') do @echo !FILENAME!^|^|%%i >> "{parameter "output"}" +exit /B 0 + +:MAIN +echo ::START::%DATE%::%TIME%>> "{parameter "output"}" + +{concatenation "%0d%0a" of ("for /F %22tokens=*%22 %25%25i in ('dir /s /b " & it & "\ ^| findstr /R /C:%22.*\.war$%22 /C:%22.*\.ear$%22 /C:%22commons\-text\-.*\.jar$%22 ^|findstr /R /V /C:%22\-javadoc\.jar$%22 /C:%22\-sources\.jar$%22 /C:%22\-tests\.jar$%22') do CALL :PROCESSFILE %22%25%25~dpnxi%22") of pathnames of root folders of drives whose (type of it = "DRIVE_FIXED")} + +endlocal +echo ::FINISH::%DATE%::%TIME%>> "{parameter "output"}" + +EOF_EOF_EOF_EOF + +delete run_scan.cmd +copy __createfile run_scan.cmd +action uses wow64 redirection {not x64 of operating system} +waithidden cmd.exe /c "run_scan.cmd > "{parameter "output"}" >"{parameter "exec_output"}" 2>&1" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Applocker Configuration Template (25578).bes b/Sites/Windows Management/Fixlets/Fixlets/Applocker Configuration Template (25578).bes new file mode 100644 index 000000000..78dfa2165 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Applocker Configuration Template (25578).bes @@ -0,0 +1,106 @@ + + + + + Applocker Configuration Template + This is a template for implementing AppLocker using Bigfix.

+

The script was written for imaging, therefore the relevance is True. We are only working with Appx files in Windows 10, however, the rule collection types should be very similar. In this example, I only want the Administrator account to have access to Settings and block access for all other users. Since Applocker rules go based on User or Group SID, I am using powershell to pull the SID of the Administrator user that is then applied to the windows.immersivecontrolpanel.appx rule. All of the other rulles apply to everyone.

+

The XML part of the script gets messed up  when being displayed on Bigfix.me, therefore I have provided it below. If you download the .bes file it will be correct.

+

<AppLockerPolicy Version="1">
  <RuleCollection Type="Exe" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Msi" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Script" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Dll" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Appx" EnforcementMode="Enabled">
    <FilePublisherRule Id="f9e7ee63-13da-4646-8f44-f8bed6c4e75e" Name="windows.immersivecontrolpanel, from Microsoft Corporation" Description="" UserOrGroupSid="{{0}" Action="Allow">
      <Conditions>
        <FilePublisherCondition PublisherName="CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProductName="windows.immersivecontrolpanel" BinaryName="*">
          <BinaryVersionRange LowSection="*" HighSection="*" />
        </FilePublisherCondition>
      </Conditions>
    </FilePublisherRule>
    <FilePublisherRule Id="6e977e00-e0e1-4b26-a163-9ba2c251e5c5" Name="Microsoft.BioEnrollment, from Microsoft Corporation" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
      <Conditions>
        <FilePublisherCondition PublisherName="CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProductName="Microsoft.BioEnrollment" BinaryName="*">
          <BinaryVersionRange LowSection="*" HighSection="*" />
        </FilePublisherCondition>
      </Conditions>
    </FilePublisherRule>
  </RuleCollection>
</AppLockerPolicy>

+

 

]]>
+ true + Bigfix.me + Internal + n0m4d1c + 2018-10-19 + + x-fixlet-modification-time + Fri, 09 Nov 2018 23:08:42 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + + + + + + + +'@ -f $User.SID + +$xml | out-file C:\Apps\Locker\Applocker.xml -Encoding utf8 + +_end_ + +copy __createfile C:\Apps\Locker\Applocker.ps1 + +action uses wow64 redirection {not x64 of operating system} + +//Runs the ps1 files that creates our configuration file. +waithidden powershell -ExecutionPolicy Bypass -command "C:\Apps\Locker\Applocker.ps1" + +//Runs the command to implement the configuration file. +waithidden powershell -ExecutionPolicy Bypass -command "Set-AppLockerPolicy –XMLPolicy C:\Apps\Locker\Applocker.xml" + +//Sets the Applocker service to start automatically +waithidden sc.exe config appidsvc start=auto + +// Pauses BigFix for 15 sec +parameter "start" = "{now}" +pause while {now < ( (( parameter "start" of action ) as time ) + 15* second)} + +//Clean up +if {exists file "C:\Apps\Scripts\n0m4d1c.ps1"} + delete "C:\Apps\Locker\Applocker.ps1" +endif +if {exists file "C:\Apps\Scripts\POS_Applocker_Test.xml"} + delete "C:\Apps\Locker\Applocker.xml" +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BCDedit Hypervisor Command (24885).bes b/Sites/Windows Management/Fixlets/Fixlets/BCDedit Hypervisor Command (24885).bes new file mode 100644 index 000000000..bdb0974a9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/BCDedit Hypervisor Command (24885).bes @@ -0,0 +1,52 @@ + + + + + BCDedit Hypervisor Command + RUNS command

+

bcdedit /set hypervisorlaunchtype auto

+

 

+

For user on 64bit systems

+

EDIT: Please note that powershell is not required. instead you can use "waithidden" with the command to make this function. You however do still need to have the wow redirection for 64bit.

]]>
+ true + Internal + 2018-01-12 + + x-fixlet-modification-time + Mon, 15 Jan 2018 19:24:21 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +delete __createfile +createfile until END_OF_FILE + +cmd /c "bcdedit /set hypervisorlaunchtype auto" + + +END_OF_FILE + +delete tmvmstart.ps1 +move __createfile tmvmstart.ps1 + +override run +runas=agent +run { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -windowstyle hidden -File tmvmstart.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard (6218).bes b/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard (6218).bes new file mode 100644 index 000000000..1f1f35ed8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard (6218).bes @@ -0,0 +1,153 @@ + + + + + BigSpeak Audio Health Dashboard + BigSpeak Audio Health Dashboard

+

The BigSpeak Audio Health Dashboard enables Text To Speech (TTS) to notify operators of the current health status of their Bigfix environment.
This example only provides part of the ‘BES Relay Health’ section of the ‘Deployment Health Checks’ dashboard, However you could build out the rest of the dashboard, or utilize this example in a whole different way.

+

The Checks that this example will report on are:

+
    +

    +

  • Number of Clients Per BES Relay +
  • BES Relay Version +
  • BES Relay Service Stopped +
  • Download Folders +
  • BES Relay Free Disk Space +

+

Every hour (by default), the native windows TTS engine will inform you as follows:

+

"This is a Bigfix Audio Alert"

+
    +

    +

  • If all 5 health checks pass, you will hear, "The current Bigfix status is ALL CLEAR" +

    +

    +
  • If one or more of the 5 checks FAIL, you will hear a combination of the following: +

+ + +

"The current Bigfix status for Number of Clients Per Relay is FAIL"
"The current Bigfix status for Relay Version is WARNING"
"The current Bigfix status for Relay Version is FAIL"
"The current Bigfix status for Relay Service Stopped is FAIL"
"The current Bigfix status for Download Folders is FAIL"
"The current Bigfix status for Relay Disk Space is FAIL"

+

There are two tasks which are needed:

+
    +

    +

  1. BigSpeakAudio Health Dashboard Scheduled Task Setup v1.0 +
  2. BigSpeak Audio Health Dashboard +

     

+

Initial Setup:

+

Note: This has only been tested on Windows 7.

+
    +

    +

  1. Copy the ‘IEM CLI’ folder from your Bigfix server to a location on your windows 7 machine. The default location is: C:\Program Files (x86)\BigFix Enterprise\BES Server\IEM CLI +

    +

    +
  2. Since this is the first time utilizing the IEM CLI, you will have to manually authenticate from the Windows 7 endpoint in order to trust the security certificate. +

    +
      +

      +

    1. From the windows command line browse to the iem.exe and type, "iem login" +
    2. You will have to provide your operator credentials, then it will ask you to trust the certificate.
+

Deploy: BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0

+
    +

    +

  1. On the ‘Description’ Tab, this task will ask for the following: +
      +
    1. The IEM Server Operator Name +
    2. The IEM Server Operator Password +
    3. The windows account name that will be used to execute the scheduled task +
    4. The windows account password that will be used to execute the scheduled task
    +

    +

    +
  2. Two action parameters will also ask for input: +
      +
    1. The path to the IEM Command Line +
    2. The IP Address or hostname of the Bigfix Reporting Server
    +

    +

    +
  3. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator
    +

    +

    +
  4. Upon completion, the scheduled task "BFAudio_HealthCheck" will have been created that will run every hour by default.
+

Deploy: BigSpeak Audio Health Dashboard (This Task)

+
    +

    +

  1. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator +
      +
    1. Note: Speakers must be turned on for this to work.
    +

+

NOTE: This task will run as a policy. It will become relevant when the file ‘bread.crumb’ exist which is created by the scheduled taks every hour.

]]>
+ = "9.0"]]> + (name of operating system starts with "Win") + exist file "c:\BFAudio\Bread.Crumb" + IEM Maintenance + mike.english@us.ibm.com + 2015-09-29 + + x-fixlet-modification-time + Tue, 29 Sep 2015 11:14:57 +0000 + + BES + + + Click + here + to deploy this action. + + " of (following texts of firsts "" of (lines of files whose (last 3 of name of it = "txt") of folder "c:\BFAudio")))} + delete "C:\BFAudio\BFAudio.tts" + copy __appendfile "c:\BFAudio\BFAudio.tts" + delete "C:\BFAudio\Bread.Crumb" +endif + +delete __createfile +delete "c:\BFAudio\tts.vbs" +createfile until TTS +'tts.vbs +set t = CreateObject("SAPI.SpVoice") +t.Speak Wscript.Arguments(0), 3 +t.WaitUntilDone(4500) +TTS +move __createfile "c:\BFAudio\tts.vbs" + +if {exist file "c:\BFAudio\BFAudio.tts"} +wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "This is a bigfix audio alert" +//ALL CLEAR + if {not disjunction of (it contains ":WARN" OR it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status is,,all clear" + endif +//Number of Clients Per BES Relay + if {disjunction of (it contains "Number of Clients Per BES Relay" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Number of Clients Per Relay is,,FAIL" + endif +//BES Relay Version + if {disjunction of (it contains "BES Relay Version" AND it contains ":WARN") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Versions is,,WARNING" + elseif {disjunction of (it contains "BES Relay Version" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Versions is,,FAIL" + endif +//BES Relay Service Stopped + if {disjunction of (it contains "BES Relay Service Stopped" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Service Stopped is,,FAIL" + endif +//Download Folders + if {disjunction of (it contains "Download Folders" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Download Folders is,,FAIL" + endif +//BES Relay Free Disk Space + if {disjunction of (it contains "BES Relay Free Disk Space" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Disk Space is,,FAIL" + endif + +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (6217).bes b/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (6217).bes new file mode 100644 index 000000000..894ff353b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (6217).bes @@ -0,0 +1,150 @@ + + + + + BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 + Action Parameters:

+

  <<  Enter the IEM Server Operator Name
    <<  Enter the IEM Server Operator Password 
  <<  Enter the account name to run the scheduled task
    <<  Enter the account password to run the scheduled task

_____________________________________________________________________________________________________

+

BigSpeak Audio Health Dashboard

+

The BigSpeak Audio Health Dashboard enables Text To Speech (TTS) to notify operators of the current health status of their Bigfix environment.
This example only provides part of the ‘BES Relay Health’ section of the ‘Deployment Health Checks’ dashboard, However you could build out the rest of the dashboard, or utilize this example in a whole different way.

+

The Checks that this example will report on are:

+
    +

    +

  • Number of Clients Per BES Relay +
  • BES Relay Version +
  • BES Relay Service Stopped +
  • Download Folders +
  • BES Relay Free Disk Space +

+

Every hour (by default), the native windows TTS engine will inform you as follows:

+

"This is a Bigfix Audio Alert"

+
    +

    +

  • If all 5 health checks pass, you will hear, "The current Bigfix status is ALL CLEAR" +

    +

    +
  • If one or more of the 5 checks FAIL, you will hear a combination of the following: +

+ + +

"The current Bigfix status for Number of Clients Per Relay is FAIL"
"The current Bigfix status for Relay Version is WARNING"
"The current Bigfix status for Relay Version is FAIL"
"The current Bigfix status for Relay Service Stopped is FAIL"
"The current Bigfix status for Download Folders is FAIL"
"The current Bigfix status for Relay Disk Space is FAIL"

+

There are two tasks which are needed:

+
    +

    +

  1. BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (This TASK) +
  2. BigSpeak Audio Health Dashboard
+

Initial Setup:

+

Note: This has only been tested on Windows 7.

+
    +

    +

  1. Copy the ‘IEM CLI’ folder from your Bigfix server to a location on your windows 7 machine. The default location is: C:\Program Files (x86)\BigFix Enterprise\BES Server\IEM CLI +

    +

    +
  2. Since this is the first time utilizing the IEM CLI, you will have to manually authenticate from the Windows 7 endpoint in order to trust the security certificate. +

    +
      +

      +

    1. From the windows command line browse to the iem.exe and type, "iem login" +
    2. You will have to provide your operator credentials, then it will ask you to trust the certificate.
+

Deploy: BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0

+
    +

    +

  1. On the ‘Description’ Tab, this task will ask for the following: +
      +
    1. The IEM Server Operator Name +
    2. The IEM Server Operator Password +
    3. The windows account name that will be used to execute the scheduled task +
    4. The windows account password that will be used to execute the scheduled task
    +

    +

    +
  2. Two action parameters will also ask for input: +
      +
    1. The path to the IEM Command Line +
    2. The IP Address or hostname of the Bigfix Reporting Server
    +

    +

    +
  3. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator
    +

    +

    +
  4. Upon completion, the scheduled task "BFAudio_HealthCheck" will have been created that will run every hour by default.
+

Deploy: BigSpeak Audio Health Dashboard

+
    +

    +

  1. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator +
      +
    1. Note: Speakers must be turned on for this to work.
]]>
+ = "9.0"]]> + (name of operating system starts with "Win") + IEM Maintenance + mike.english@us.ibm.com + 2015-09-29 + + x-fixlet-modification-time + Tue, 29 Sep 2015 11:16:36 +0000 + + BES + + + Click + here + to deploy this action. + + 1000) of (values of results of bes property ""relay""))) >= 1)) then (""Number of Clients Per BES Relay:PASS"") else (""Number of Clients Per BES Relay:FAIL"")" >> "c:\BFAudio\NumberOfClients.txt" +//BES Relay Version +appendfile {parameter "IEMCLI" of action} get query --relevance "(if (it contains ""'+ txFailed +'"") then ""BES Relay Version:FAIL"" else if (it contains ""'+ txWarning +'"") then ""BES Relay Version:WARN"" else ""BES Relay Version:PASS"") of concatenation of ( if ((preceding text of last ""."" of preceding text of last ""."" of item 0 of it) = (preceding text of last ""."" of preceding text of last ""."" of value of item 1 of it)) then (""' + txPassed + '"") else (""'+ txWarning +'"") ) of ((preceding text of first "","" of ((concatenation "","" of (values whose (it != ""Not Installed"") of results of BES Property ""BES Server Version"")) & "","")) , results whose (value of it != ""Not Installed"") of BES Property ""BES Relay Version"")" >> "c:\BFAudio\RelayVersion.txt" +//BES Relay Service Stopped +appendfile {parameter "IEMCLI" of action} get query --relevance "(if (not exists results whose (value of it as lowercase contains ""yes - stopped"") of bes property ""BES Relay Service Installed"") then (""BES Relay Service Stopped:PASS"") else (""BES Relay Service Stopped:FAIL""))" >> "c:\BFAudio\ServiceStopped.txt" +//Download Folders +appendfile {parameter "IEMCLI" of action} get query --relevance "if (not (applicable computer count of BES Fixlets whose (name of site of it = ""BES Support"" and id of it = 535 ) > 0)) then (""Download Folders:PASS"") else (""Download Folders:FAIL"")" >> "c:\BFAudio\DownloadFolders.txt" +//BES Relay Free Disk Space +appendfile {parameter "IEMCLI" of action} get query --relevance "if (exist preceding texts whose (it as integer < 500) of firsts "" "" of values of results whose (exists value of it) of bes properties whose (name of it = ""BES Health Checks::BES Relay Free Disk Space"")) then ""BES Relay Free Disk Space:FAIL"" else if (exist preceding texts whose (it as integer < 1000) of firsts "" "" of values of results of bes properties whose (name of it = ""BES Health Checks::BES Relay Free Disk Space"")) then ""BES Relay Free Disk Space:WARN"" else ""BES Relay Free Disk Space:PASS""" >> "c:\BFAudio\RelayDiskSpace.txt" + +//breadcrumb +appendfile copy nul > "c:\BFAudio\bread.crumb" + +delete "c:\BFAudio\bfaudio.bat" +copy __appendfile "c:\BFAudio\bfaudio.bat" + +//Create Scheduled Task +dos schtasks /create /sc hourly /mo 1 /tn "BFAudio_HealthCheck" /tr "c:\BFAudio\bfaudio.bat" /ru {parameter "TaskAdmin" of action} /rp {parameter "TaskPass" of action}]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BigTweet Scheduled Task Setup v2.1 (6113).bes b/Sites/Windows Management/Fixlets/Fixlets/BigTweet Scheduled Task Setup v2.1 (6113).bes new file mode 100644 index 000000000..49a21fab9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/BigTweet Scheduled Task Setup v2.1 (6113).bes @@ -0,0 +1,95 @@ + + + + + BigTweet Scheduled Task Setup v2.1 + Action Parameters:

+

  <<  Enter the IEM Server Operator Name
    <<  Enter the IEM Server Operator Password 
  <<  Enter the account name to run the scheduled task
    <<  Enter the account password to run the scheduled task

_____________________________________________________________________________________________________

+

BigTweet

+

This requires two tasks. 1)BigTweet Scheduled Task Setup v2.1 & 2)BigTweet v2.1

+

BigTweet allows you to interface with Twitter and their free highly scalable SMS system for notifications.

+

This example will use a BigFix Rest API Query within a scheduled task to report on the number of fixlets that are relevant in a specific site. If relevant fixlets are found, it will send a tweet (using twt) which will notify you via text messaging.

+

Setup:

+
    +

    +

  • Twitter SMS Relay Account +
      +
    • Create a Twitter Account used for relaying SMS (example @BigTweet111) +
    • Under Account Settings, set ‘Tweet privacy’ to ‘Protect my Tweets’ +

    +

    +
  • BigFix Server + +

    +
  • TWT +
      +
    • Download twt https://code.google.com/p/twt/ +
    • Extract binary and xml configuration file to ‘c:\BigTweet’ +
    • Configure OAUTH against your Twitter SMS Relay Account using command twt –config +

    +

    +
  • Twitter Follow Accounts +
      +
    • In order to receive these Twitter SMS Notifications, users must follow the Twitter SMS Relay Account and turn on Mobile Notifications for this user.
+

Note: By Default, this is scheduled to run once every hour. 

]]>
+ exists main gather service + = "9.0"]]> + (name of operating system starts with "Win") + IEM Maintenance + mike.english@us.ibm.com + 2015-06-24 + + x-fixlet-modification-time + Wed, 24 Jun 2015 17:01:55 +0000 + + BES + + + Click + here + to deploy this action. + + 0)))" > "C:\BigTweet\alert.xml" + +delete "c:\BigTweet\bigtweet.bat" +copy __appendfile "c:\BigTweet\bigtweet.bat" + +//Create Scheduled Task +dos schtasks /create /sc hourly /mo 1 /tn "BigTweet_{parameter "sitename" of action}" /tr "c:\BigTweet\bigtweet.bat" /ru {parameter "TaskAdmin" of action} /rp {parameter "TaskPass" of action}]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BigTweet v2.1 (6112).bes b/Sites/Windows Management/Fixlets/Fixlets/BigTweet v2.1 (6112).bes new file mode 100644 index 000000000..98ba96063 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/BigTweet v2.1 (6112).bes @@ -0,0 +1,92 @@ + + + + + BigTweet v2.1 + BigTweet

+

This requires two tasks. 1)BigTweet Scheduled Task Setup v2.1 & 2)BigTweet v2.1

+

BigTweet allows you to interface with Twitter and their free highly scalable SMS system for notifications.

+

This example will use a BigFix Rest API Query within a scheduled task to report on the number of fixlets that are relevant in a specific site. If relevant fixlets are found, it will send a tweet (using twt) which will notify you via text messaging.

+

Setup:

+
    +

    +

  • Twitter SMS Relay Account +
      +
    • Create a Twitter Account used for relaying SMS (example @BigTweet111) +
    • Under Account Settings, set ‘Tweet privacy’ to ‘Protect my Tweets’ +

    +

    +
  • BigFix Server + +

    +
  • TWT +
      +
    • Download twt https://code.google.com/p/twt/ +
    • Extract binary and xml configuration file to ‘c:\BigTweet’ +
    • Configure OAUTH against your Twitter SMS Relay Account using command twt –config +

    +

    +
  • Twitter Follow Accounts +
      +
    • In order to receive these Twitter SMS Notifications, users must follow the Twitter SMS Relay Account and turn on Mobile Notifications for this user.
+

Note: By Default, the is scheduled to run once every hour. 

]]>
+ exists main gather service + = "9.0"]]> + (name of operating system starts with "Win") + exist file "c:\BigTweet\alert.xml" + IEM Maintenance + mike.english@us.ibm.com + 2015-06-24 + + x-fixlet-modification-time + Wed, 24 Jun 2015 17:03:52 +0000 + + BES + + + Click + here + to deploy this action. + + " of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") = "0"} + wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} No applicable endpoints to fixlets in site {parameter "sitename" of action} + + //answer is greater than previous + elseif {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") > ((value of setting "BIGTWEET_Enterprise Security" of client) | "0")} + wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} {((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string)} applicable endpoints to fixlets in site {parameter "sitename" of action}. An increase of {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") as integer - ((value of setting "BIGTWEET_Enterprise Security" of client) | "0") as integer} + + //answer is less than than previous + elseif {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") < ((value of setting "BIGTWEET_Enterprise Security" of client) | "0")} + wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} {((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string)} applicable endpoints to fixlets in site {parameter "sitename" of action}. A decrease of {((value of setting "BIGTWEET_Enterprise Security" of client) | "0") as integer - (((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") as integer} + + //answer is = to previous + elseif {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") = ((value of setting "BIGTWEET_Enterprise Security" of client) | "0")} + wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} {((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string)} applicable endpoints to fixlets in site {parameter "sitename" of action}. No change from last check. + + endif + +setting "BIGTWEET_{parameter "sitename" of action}"="{((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0"}" on "{now}" for client + +delete "c:\BigTweet\alert.xml" + +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Block KB 3114717 - MS Office Issues - Windows (9143).bes b/Sites/Windows Management/Fixlets/Fixlets/Block KB 3114717 - MS Office Issues - Windows (9143).bes new file mode 100644 index 000000000..0926c0f9f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Block KB 3114717 - MS Office Issues - Windows (9143).bes @@ -0,0 +1,75 @@ + + + + + Block KB 3114717 - MS Office Issues - Windows + BETA. I'm not sure how to write relevance to get this to only be applied when it should, or how to confirm it applied properly. It also seems like it will only successfully block an update that is not installed, but known.

+

 

]]>
+ windows of operating system + not exists keys whose(exists values "DisplayName" whose(it as string as lowercase contains "kb3114717" AND it as string as lowercase contains "32-bit") of it) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x64 registries;x32 registries) + Internal + 2016-02-12 + + x-fixlet-modification-time + Sat, 13 Feb 2016 01:40:35 +0000 + + BESC + + + Click + here + to deploy this action. + + __Download\HideWindowsUpdate_3114717.log +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Block Regsvr32 in Windows Firewall (20257).bes b/Sites/Windows Management/Fixlets/Fixlets/Block Regsvr32 in Windows Firewall (20257).bes new file mode 100644 index 000000000..21bc61a88 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Block Regsvr32 in Windows Firewall (20257).bes @@ -0,0 +1,58 @@ + + + + + Block Regsvr32 in Windows Firewall +

This task enforces a winodws firewall filter to disable Regsvr32 from connecting to remote locations.

Note: The task is released in https://bigfix.me/, which is not an official release channel of IBM BigFix. We highly suggest testing the content before deploying to production. Use of the content is done at the user's own risk and the user will be solely responsible for any damage to any computer system or loss of data that results from use of the content.

Warning: This fixlet will enable the windows firewall and add necessary rule to block outbound connection for Regsvr32.exe

+]]>
+ name of operating system as lowercase starts with "win" + not exists values whose(it as string as lowercase contains "block regsvr32") of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules" of native registry + Unspecified + Unspecified + 2016-04-27 + Unspecified + Unspecified + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to block Regsvr32.exe in firewall + + + + + + Click + here + to view the blog about the exploit + + http://subt0x10.blogspot.sg/2016/04/bypass-application-whitelisting-script.html + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Activate Workaround_ Disable ActiveX Download (26876).bes b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Activate Workaround_ Disable ActiveX Download (26876).bes new file mode 100644 index 000000000..ce4869d04 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Activate Workaround_ Disable ActiveX Download (26876).bes @@ -0,0 +1,61 @@ + + + + + CVE-2021-40444: Activate Workaround: Disable ActiveX Download + Workaround for CVE-2021-40444 + windows of operating system + Product type of operating system = NT Workstation product type + if (not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" of native registry) then (true) else (4 != number of keys ("0"; "1"; "2"; "3") whose (exists value "1001" whose (it as string as integer = 3) of it and exists value "1004" whose (it as string as integer = 3) of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" of native registry) + Workaround + Trevor Norrey + 2021-09-08 + CVE-2021-40444 + + x-fixlet-modification-time + Sat, 11 Sep 2021 15:06:09 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +if x64 of operating system + +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004"=dword:00000003 + +else + +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004"=dword:00000003 + +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Deactivate Workaround_ Disable ActiveX Download (26877).bes b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Deactivate Workaround_ Disable ActiveX Download (26877).bes new file mode 100644 index 000000000..cb5bae270 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Deactivate Workaround_ Disable ActiveX Download (26877).bes @@ -0,0 +1,61 @@ + + + + + CVE-2021-40444: Deactivate Workaround: Disable ActiveX Download + Deactivate the Workaround for CVE-2021-40444 + windows of operating system + Product type of operating system = NT Workstation product type + exists keys ("0"; "1"; "2"; "3") whose (exists value "1001" whose (it as string as integer = 3) of it or exists value "1004" whose (it as string as integer = 3) of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" of native registry + Workaround + Trevor Norrey + 2021-09-08 + CVE-2021-40444 + + x-fixlet-modification-time + Sat, 11 Sep 2021 15:04:44 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +if x64 of operating system + +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004" + +else + +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004" + +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-44228 Log4j _ Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) (26898).bes b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-44228 Log4j _ Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) (26898).bes new file mode 100644 index 000000000..df28218cc --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-44228 Log4j _ Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) (26898).bes @@ -0,0 +1,67 @@ + + + + + CVE-2021-44228 Log4j : Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228

+

Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default. In previous releases (>2.10) this behavior can be mitigated by setting system property "log4j2.formatMsgNoLookups" to "true" or by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class). Java 8u121 (see https://www.oracle.com/java/technologies/javase/8u121-relnotes.html) protects against remote code execution by defaulting "com.sun.jndi.rmi.object.trustURLCodebase" and "com.sun.jndi.cosnaming.object.trustURLCodebase" to "false".

+

While it is very much advised to update all affected applications to make use of the corrected Log4j 2.15.0 or higher; or update the individual application to configure log4j2.formatMsgNoLookups=true, there is at least some measure of attack surface reduction that can be performed system-wide by applying the value to the JAVA_TOOL_OPTIONS environment variable.

+

This method is limited, as any Java application may override the JAVA_TOOL_OPTIONS environment as part of its startup, but this Fixlet may provide some measure of improvement.  Additionaly these may only be effective with specific versions of Java or Log4j.

+

Guidance on these values is taken from

+ +

This Fixlet applies the following Envrionment Variable values on Windows:

+
    +
  • JAVA_TOOL_OPTIONS = -Dlog4j.formatMsgNoLookups=true (preserving any existing entries)
  • +
  • JDK_JAVA_OPTIONS = -Dlog4j.formatMsgNoLookups=true (preserving any existing entries)
  • +
  • _JAVA_OPTIONS = -Dlog4j.formatMsgNoLookups=true (preserving any existing entries)
  • +
  • LOG4J_FORMAT_MSG_NO_LOOKUPS = true (overwriting any existing entry)
+


]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + not exists values "JAVA_TOOL_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string OR not exists values "JDK_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string OR not exists values "_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string OR not exists values "LOG4J_FORMAT_MSG_NO_LOOKUPS" whose (it as string = "true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string + Internal + 2021-12-13 + + x-fixlet-modification-time + Tue, 14 Dec 2021 17:50:17 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +if {not exists values "JAVA_TOOL_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} +waithidden cmd.exe /c "setx /M JAVA_TOOL_OPTIONS "-Dlog4j.formatMsgNoLookups=true {value "JAVA_TOOL_OPTIONS" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string | ""}"" +endif + +if {not exists values "JDK_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} +waithidden cmd.exe /c "setx /M JDK_JAVA_OPTIONS "-Dlog4j.formatMsgNoLookups=true {value "JDK_JAVA_OPTIONS" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string | ""}"" +endif + +if {not exists values "_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} +waithidden cmd.exe /c "setx /M _JAVA_OPTIONS "-Dlog4j.formatMsgNoLookups=true {value "_JAVA_OPTIONS" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string | ""}"" +endif + +if {not exists values "LOG4J_FORMAT_MSG_NO_LOOKUPS" whose (it as string = "true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} +waithidden cmd.exe /c "setx /M LOG4J_FORMAT_MSG_NO_LOOKUPS "true"" +endif + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change Built-in Administrator Password - Windows (9150).bes b/Sites/Windows Management/Fixlets/Fixlets/Change Built-in Administrator Password - Windows (9150).bes new file mode 100644 index 000000000..8a7805a93 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Change Built-in Administrator Password - Windows (9150).bes @@ -0,0 +1,46 @@ + + + + + Change Built-in Administrator Password - Windows + + windows of operating system + 8 * day) of it)]]> + Internal + 2016-02-16 + + x-fixlet-modification-time + Tue, 16 Feb 2016 22:18:01 +0000 + + BESC + + + Click + here + to deploy this action. + + +// Related: https://bigfix.me/fixlet/details/3670 +// https://forum.bigfix.com/t/newer-actionscript-commands/11677 + +parameter "username" = "administrator" + +// http://www-01.ibm.com/support/knowledgecenter/SS63NW_9.2.0/com.ibm.tivoli.tem.doc_9.2/Platform/Action/c_action_log.html +action log command + +waithidden net user {parameter "username"} { sha256 of concatenation "" of (it as string) of ( (it / second) of uptime of operating system ; (it / second) of (now - ("01 Jan 1970 00:00:00" as universal time)) ) } + +continue if {exit code of action = 0} + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change Internet Explorer Start Page if unchanged from default (3802).bes b/Sites/Windows Management/Fixlets/Fixlets/Change Internet Explorer Start Page if unchanged from default (3802).bes new file mode 100644 index 000000000..a127ea69b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Change Internet Explorer Start Page if unchanged from default (3802).bes @@ -0,0 +1,37 @@ + + + + + Change Internet Explorer Start Page if unchanged from default + + exists current user AND (1 = number of logged on users) + + /* Windows Only */ windows of operating system + = "5.1"]]> + Internal + 2011-09-21 + + x-fixlet-modification-time + Tue, 01 Jul 2014 16:09:54 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change local user account password (27377).bes b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password (27377).bes new file mode 100644 index 000000000..328922a95 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password (27377).bes @@ -0,0 +1,104 @@ + + + + + Change local user account password +

+
+

+

+

+
    +
  • +
+
+

+

+
+

+

+

Important Notes

+
    +
  • +
    You must enter a password in order to take an action
    +
  • +
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
+

This fixlet is based on the following post on bigfix.me:
https://bigfix.me/fixlet/details/3670

]]>
+ windows of operating system + = "9.5"]]> + not exists service "NTDS" + Accounts + Internal + 2025-07-23 + + bigfixme-ID + 6076 + + + bigfixme-modification-time + Fri, 15 May 2015 06:54:17 GMT + + + bigfixme-added-time + Fri, 15 May 2015 06:54:17 GMT + + + bigfixme-keywords + password secure parameters verification + + + x-fixlet-modification-time + Wed, 23 Jul 2025 12:18:08 +0000 + + BESC + + + + Change + &nbsp;specified local&nbsp;user account password. + + action parameter query "username" with description "Please specify the name of an existing local user account" + +if {exists ((name of it as string as lowercase) of users) whose (it as string as lowercase contains parameter "username" of action)} + +waithidden "C:\Windows\System32\net.exe" user {parameter "username" of action} {parameter "secret" of action} + +continue if {exit code of action = 0} +else +exit 1 +endif + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change local user account password - Windows (3670).bes b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password - Windows (3670).bes new file mode 100644 index 000000000..f18fed34a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password - Windows (3670).bes @@ -0,0 +1,69 @@ + + + + + Change local user account password - Windows +

+
+

+

+

+
    +
  • +
+
+

+

+
+

+

Important Notes

+
    +
  • +
    You must enter a password in order to take an action
    +
  • +
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
]]>
+ windows of operating system + = "9.0"]]> + Accounts + Internal + jbt8@psu.edu + 2013-05-03 + + x-fixlet-modification-time + Fri, 06 Dec 2013 11:16:20 +0000 + + BESC + + + + Change + &nbsp;specified local&nbsp;user account password. + + action parameter query "username" with description "Please specify the name of an existing local user account" + +waithidden "C:\Windows\System32\net.exe" user {parameter "username" of action} {parameter "secret" of action} + +continue if {exit code of action = 0} + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change local user account password with verification - Windows (6076).bes b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password with verification - Windows (6076).bes new file mode 100644 index 000000000..4ceed7119 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password with verification - Windows (6076).bes @@ -0,0 +1,90 @@ + + + + + Change local user account password with verification - Windows +

+
+

+

+

+
    +
  • +
+
+

+

+
+

+

Important Notes

+
    +
  • +
    You must enter a password in order to take an action
    +
  • +
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
]]>
+ windows of operating system + = "9.0"]]> + Accounts + Internal + jbt8@psu.edu + 2013-05-03 + + x-fixlet-modification-time + Fri, 06 Dec 2013 11:16:20 +0000 + + + bigfixme-added-time + Fri, 06 Dec 2013 04:16:50 GMT + + + bigfixme-modification-time + Fri, 06 Dec 2013 04:16:50 GMT + + + bigfixme-keywords + user, net.exe, secure parameter, password + + BESC + + + + Change + &nbsp;specified local&nbsp;user account password. + + action parameter query "username" with description "Please specify the name of an existing local user account" + +waithidden "C:\Windows\System32\net.exe" user {parameter "username" of action} {parameter "secret" of action} + +continue if {exit code of action = 0} + + + + + + Click + here + to review this task in the bigfix.me Content Database. + + http://bigfix.me/cdb/fixlet/3670 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space (11930).bes b/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space (11930).bes new file mode 100644 index 000000000..a70b53588 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space (11930).bes @@ -0,0 +1,57 @@ + + + + + Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space + We've had repeated instances where a Windows 7 x64 client runs out of hard drive space, and found that C:\Windows\TEMP is being consumed with hundreds of files with names following the pattern "cab_XXXX_X", generally 100 MB each, and these files are constantly generated until the system runs out of space.  Upon removing the files & rebooting, the files start being generated again.

+


+

This appears to be caused by large Component-Based Servicing logs.  These are stored at C:\Windows\Logs\CBS.  The current log file is named "cbs.log".  When "cbs.log" reaches a certain size, a cleanup process renames the log to "CbsPersist_YYYYMMDDHHMMSS.log" and then attempts to compress it into a .cab file.

+


+

However, when the cbs.log reaches a size of 2 GB before that cleanup process compresses it, the file is to large to be handled by the makecab.exe utility.  The log file is renamed to CbsPersist_date_time.log, but when the makecab process attempts to compress it the process fails (but only after consuming some 100 MB under \Windows\Temp).  After this, the cleanup process runs repeatedly (approx every 20 minutes in my experience).  The process fails every time, and also consumes a new ~ 100 MB in \Windows\Temp before dying.  This is repeated until the system runs out of drive space.

+

 

+

This Action will remove the log files that are too large to be handled by makecab.exe.  Any \Windows\Logs\CBS\CbsPersist_XXX.log file larger than 1,000 MB is removed, as well as any cab_ files from C:\Windows\Temp.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = version "6"]]> + 1000) of folders "Logs\CBS" of windows folder]]> + Internal + 2015-08-26 + + x-fixlet-modification-time + Thu, 27 Aug 2015 16:21:44 +0000 + + BESC + + + Click + here + to clean up CBS logs. + + 1000) of folders "Logs\CBS" of windows folder} +appendfile {concatenation "%0d%0a" of ("del /q %22" & it & "%22") of pathnames of files whose (name of it as lowercase starts with "cab_" ) of folders "TEMP" of windows folder} +appendfile net start TrustedInstaller + +delete DeleteLog.cmd +move __appendfile DeleteLog.cmd +waithidden cmd /c DeleteLog.cmd > {pathname of windows folder}\TEMP\cbscleanup.txt 2>&1 + + +pause while {exists files whose (name of it as lowercase starts with "cbspersist" and name of it as lowercase ends with ".log" and size of it / 1024 / 1024 > 2100) of folders "Logs\CBS" of windows folder AND (now - active start time of action) < (2 * minute)} + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space.bes b/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space.bes new file mode 100644 index 000000000..a70b53588 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space.bes @@ -0,0 +1,57 @@ + + + + + Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space + We've had repeated instances where a Windows 7 x64 client runs out of hard drive space, and found that C:\Windows\TEMP is being consumed with hundreds of files with names following the pattern "cab_XXXX_X", generally 100 MB each, and these files are constantly generated until the system runs out of space.  Upon removing the files & rebooting, the files start being generated again.

+


+

This appears to be caused by large Component-Based Servicing logs.  These are stored at C:\Windows\Logs\CBS.  The current log file is named "cbs.log".  When "cbs.log" reaches a certain size, a cleanup process renames the log to "CbsPersist_YYYYMMDDHHMMSS.log" and then attempts to compress it into a .cab file.

+


+

However, when the cbs.log reaches a size of 2 GB before that cleanup process compresses it, the file is to large to be handled by the makecab.exe utility.  The log file is renamed to CbsPersist_date_time.log, but when the makecab process attempts to compress it the process fails (but only after consuming some 100 MB under \Windows\Temp).  After this, the cleanup process runs repeatedly (approx every 20 minutes in my experience).  The process fails every time, and also consumes a new ~ 100 MB in \Windows\Temp before dying.  This is repeated until the system runs out of drive space.

+

 

+

This Action will remove the log files that are too large to be handled by makecab.exe.  Any \Windows\Logs\CBS\CbsPersist_XXX.log file larger than 1,000 MB is removed, as well as any cab_ files from C:\Windows\Temp.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = version "6"]]> + 1000) of folders "Logs\CBS" of windows folder]]> + Internal + 2015-08-26 + + x-fixlet-modification-time + Thu, 27 Aug 2015 16:21:44 +0000 + + BESC + + + Click + here + to clean up CBS logs. + + 1000) of folders "Logs\CBS" of windows folder} +appendfile {concatenation "%0d%0a" of ("del /q %22" & it & "%22") of pathnames of files whose (name of it as lowercase starts with "cab_" ) of folders "TEMP" of windows folder} +appendfile net start TrustedInstaller + +delete DeleteLog.cmd +move __appendfile DeleteLog.cmd +waithidden cmd /c DeleteLog.cmd > {pathname of windows folder}\TEMP\cbscleanup.txt 2>&1 + + +pause while {exists files whose (name of it as lowercase starts with "cbspersist" and name of it as lowercase ends with ".log" and size of it / 1024 / 1024 > 2100) of folders "Logs\CBS" of windows folder AND (now - active start time of action) < (2 * minute)} + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Close Magnify.exe - Windows (24573).bes b/Sites/Windows Management/Fixlets/Fixlets/Close Magnify.exe - Windows (24573).bes new file mode 100644 index 000000000..89bc5e1af --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Close Magnify.exe - Windows (24573).bes @@ -0,0 +1,39 @@ + + + + + Close Magnify.exe - Windows + + windows of operating system + exists processes "Magnify.exe" + Internal + 2017-06-18 + + x-fixlet-modification-time + Tue, 04 Jul 2017 18:39:21 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Application Identity Service - Automatic Start - Windows (20699).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Application Identity Service - Automatic Start - Windows (20699).bes new file mode 100644 index 000000000..f248882c1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Application Identity Service - Automatic Start - Windows (20699).bes @@ -0,0 +1,42 @@ + + + + + Config - Applocker Application Identity Service - Automatic Start - Windows + Sets the Applocker Application Identity Service to automatically start

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + NOT in proxy agent context + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + start type of service "appidsvc" != "auto" + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait sc config AppIDSvc start= auto +wait net start AppIDSvc + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows (20591).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows (20591).bes new file mode 100644 index 000000000..4066fc3aa --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows (20591).bes @@ -0,0 +1,40 @@ + + + + + Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows + Sets the maximum log size for the applocker AppX Deployment log to 20mb.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/Packaged app-Deployment" of native registry + Application Whitelisting + Internal + 2016-04-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait wevtutil.exe sl "Microsoft-Windows-AppLocker/Packaged app-Deployment" /ms:20971520 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Execution Max Size - 20mb - Windows (20592).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Execution Max Size - 20mb - Windows (20592).bes new file mode 100644 index 000000000..7f86105f6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Execution Max Size - 20mb - Windows (20592).bes @@ -0,0 +1,40 @@ + + + + + Config - Applocker Log - AppX Execution Max Size - 20mb - Windows + Sets the maximum log size for the applocker AppX Execution log to 20mb

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/Packaged app-Deployment" of native registry + Application Whitelisting + Internal + 2016-04-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait wevtutil.exe sl "Microsoft-Windows-AppLocker/Packaged app-Execution" /ms:20971520 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - EXE_DLL Max Size - 20mb - Windows (20593).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - EXE_DLL Max Size - 20mb - Windows (20593).bes new file mode 100644 index 000000000..d419e5d04 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - EXE_DLL Max Size - 20mb - Windows (20593).bes @@ -0,0 +1,40 @@ + + + + + Config - Applocker Log - EXE/DLL Max Size - 20mb - Windows + Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/EXE and DLL" of native registry + Application Whitelisting + Internal + 2016-04-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait wevtutil.exe sl "Microsoft-Windows-AppLocker/EXE and DLL" /ms:20971520 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - MSI_Script Max Size - 20mb - Windows (20594).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - MSI_Script Max Size - 20mb - Windows (20594).bes new file mode 100644 index 000000000..11bd92328 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - MSI_Script Max Size - 20mb - Windows (20594).bes @@ -0,0 +1,40 @@ + + + + + Config - Applocker Log - MSI/Script Max Size - 20mb - Windows + Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/MSI and Script" of native registry + Application Whitelisting + Internal + 2016-04-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait wevtutil.exe sl "Microsoft-Windows-AppLocker/MSI and Script" /ms:20971520 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows (20595).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows (20595).bes new file mode 100644 index 000000000..673f897ec --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows (20595).bes @@ -0,0 +1,65 @@ + + + + + Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows + This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

+

AppX - Audit

+

Executables - Audit

+

Installers - Audit

+

Scripts - Audit

+

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (not exists (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry)) or ((value "EnforcementMode" of key "Appx" of it as integer != 0) | true or (value "EnforcementMode" of key "Appx" of it as integer != 0) | true or (value "EnforcementMode" of key "Msi" of it as integer != 0) | true or (value "EnforcementMode" of key "Script" of it as integer != 0) | true) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows (20596).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows (20596).bes new file mode 100644 index 000000000..8e1432fca --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows (20596).bes @@ -0,0 +1,65 @@ + + + + + Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows + This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

+

AppX - Enforced

+

Executables - Enforced

+

Installers - Enforced

+

Scripts - Enforced

+

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (not exists (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry)) or ((value "EnforcementMode" of key "Appx" of it as integer != 1) | true or (value "EnforcementMode" of key "Appx" of it as integer != 1) | true or (value "EnforcementMode" of key "Msi" of it as integer != 1) | true or (value "EnforcementMode" of key "Script" of it as integer != 1) | true) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Executables - Windows (20616).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Executables - Windows (20616).bes new file mode 100644 index 000000000..db739b911 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Executables - Windows (20616).bes @@ -0,0 +1,63 @@ + + + + + Config - Applocker Rules - Allow Administrators to run All Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow Administrators to run All Files. 
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* EXE Rules */ (not exists key "fd686d83-a829-4351-8ff4-27c7de5755d2" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Scripts - Windows (20617).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Scripts - Windows (20617).bes new file mode 100644 index 000000000..d4ceb4b82 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Scripts - Windows (20617).bes @@ -0,0 +1,63 @@ + + + + + Config - Applocker Rules - Allow Administrators to run All Scripts - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Scripts

+
    +
  • Allow Administrators to run all scripts
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) or /* Script Rules */ (not exists key "ed97d0cb-15ff-430f-b82c-8d7832957725" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Default - Windows (20599).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Default - Windows (20599).bes new file mode 100644 index 000000000..5c35f6d9c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Default - Windows (20599).bes @@ -0,0 +1,132 @@ + + + + + Config - Applocker Rules - Allow Default - Windows + This policy adds the policies that are configured if you add "Default Rules" to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow all files in C:\Windows, C:\Program Files. +
  • Allow Administrators to run All Files.
+

Installers

+
    +
  • Allow everyone to run signed installers +
  • Allow everyone to run installers in C:\Windows\Installers +
  • Allow Administrators to install all installers
+

Scripts

+
    +
  • Allow all scripts in Program Files folder +
  • Allow all scripts in Windows folder +
  • Allow Administrators to run all scripts
+

AppX

+
    +
  • Allow everyone to run signed AppX
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* AppX Rules */ (not exists key "a9e18c21-ff8f-43cf-b9fc-db40eed693ba" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry) or /* EXE Rules */ (not exists key "921cc481-6e17-4653-8f75-050b80acca20" of it or not exists key "a61c8b2c-a319-4cd0-9690-d2177cad7b51" of it or not exists key "fd686d83-a829-4351-8ff4-27c7de5755d2" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* MSI Rules */ (not exists key "b7af7102-efde-4369-8a89-7a6a392d1473" of it or not exists key "5b290184-345a-4453-b184-45305f6d9a54" of it or not exists key "64ad46ff-0d71-4fa0-a30b-3f3d30c5433d" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) or /* Script Rules */ (not exists key "06dce67b-934c-454f-a263-2515c8796a5d" of it or not exists key "9428c672-5fc3-47f4-808a-a0011f36dd2c" of it or not exists key "ed97d0cb-15ff-430f-b82c-8d7832957725" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows (20619).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows (20619).bes new file mode 100644 index 000000000..cb8cca6d8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows (20619).bes @@ -0,0 +1,63 @@ + + + + + Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Installers

+
    +
  • Allow everyone to run installers in C:\Windows\Installers
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) or /* MSI Rules */ (not exists key "5b290184-345a-4453-b184-45305f6d9a54" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows (20620).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows (20620).bes new file mode 100644 index 000000000..6d9a5ba2f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows (20620).bes @@ -0,0 +1,67 @@ + + + + + Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow all files in C:\Windows, C:\Program Files, C:\Program Files (x86)
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* EXE Rules */ (not exists key "921cc481-6e17-4653-8f75-050b80acca20" of it or not exists key "a61c8b2c-a319-4cd0-9690-d2177cad7b51" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + +_end_ + +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20621).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20621).bes new file mode 100644 index 000000000..0966331db --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20621).bes @@ -0,0 +1,69 @@ + + + + + Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows + This policy adds a number of policies to Applocker. Specifically it configures:

+

Scripts

+
    +
  • Allow all scripts in Program Files folder +
  • Allow all scripts in Windows folder
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) or /* Script Rules */ (not exists key "06dce67b-934c-454f-a263-2515c8796a5d" of it or not exists key "9428c672-5fc3-47f4-808a-a0011f36dd2c" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows (20622).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows (20622).bes new file mode 100644 index 000000000..7cdfdd554 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows (20622).bes @@ -0,0 +1,64 @@ + + + + + Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows + This policy adds a policy Applocker. Specifically it configures:

+

AppX

+
    +
  • Allow everyone to run signed AppX
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry) or /* AppX Rules */ (not exists key "a9e18c21-ff8f-43cf-b9fc-db40eed693ba" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows (20623).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows (20623).bes new file mode 100644 index 000000000..a4f294340 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows (20623).bes @@ -0,0 +1,66 @@ + + + + + Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow everyone to run signed executables
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* EXE Rules */ (not exists key "4e586c7f-c597-46fc-a4e4-20008f03463d" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows (20624).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows (20624).bes new file mode 100644 index 000000000..354ccfba9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows (20624).bes @@ -0,0 +1,65 @@ + + + + + Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Installers

+
    +
  • Allow everyone to run signed installers
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) or /* MSI Rules */ (not exists key "b7af7102-efde-4369-8a89-7a6a392d1473" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Reset Local Rules - Windows (20625).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Reset Local Rules - Windows (20625).bes new file mode 100644 index 000000000..78792d852 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Reset Local Rules - Windows (20625).bes @@ -0,0 +1,53 @@ + + + + + Config - Applocker Rules - Reset Local Rules - Windows + This Task resets the local Applocker Policy. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + 1]]> + Application Whitelisting + Internal + 2016-05-11 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" + +wait gpupdate /target:computer /force +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Add User Account - Windows (23677).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Add User Account - Windows (23677).bes new file mode 100644 index 000000000..a2e993774 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Add User Account - Windows (23677).bes @@ -0,0 +1,81 @@ + + + + + Config - Autologon - Add User Account - Windows + +
+

Configure Autologon!

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists values "AutoAdminLogon" whose (it as string = "1") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" of native registry + Internal + 2017-02-21 + + parametermetadatatag + { "Section1": { "Name": "UserAccount", "Title": "Autologon User", "UIType": "accordion", "Values": [ { "Name": "AutoDomain", "Title": "Active Directory Domain", "Description": "Active Directory Domain", "UIType": "TextBox", "Default": "NetBIOS" }, { "Name": "AutoUsername", "Title": "Account Username", "Description": "Account Username", "UIType": "TextBox", "Default": "Username" }, { "Name": "AutoPassword", "Title": "Account Password", "Description": "Account Password", "UIType": "Textbox", "Encrypt": "true", "SubUIType": "Password" } ] } } + + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + +action uses wow64 redirection {not x64 of operating system} + +prefetch AutoLogon.zip sha1:EEA24BA8E82B7357972B4A5A55B9A424B56F62D3 size:72623 https://download.sysinternals.com/files/AutoLogon.zip sha256:4BA5B92411A9B4B8743BDC479EAD0E3F50ED2C8CB5517A49246EF57F3EBB09C7 + +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +waithidden __Download\unzip.exe -o "{pathname of file "AutoLogon.zip" of folder "__Download" of client folder of current site}" -d "{pathname of folder "__Download" of client folder of current site}" + + +waithidden "__Download\AutoLogon.exe" -accepteula "{Parameter "AutoUsername" of action}" "{parameter "AutoDomain" of action}" "{parameter "AutoPassword" of action}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Disable - Windows (23678).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Disable - Windows (23678).bes new file mode 100644 index 000000000..65a7681aa --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Disable - Windows (23678).bes @@ -0,0 +1,40 @@ + + + + + Config - Autologon - Disable - Windows + + windows of operating system + exists values "AutoAdminLogon" whose (it as string = "1") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" of native registry + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch AutoLogon.zip sha1:EEA24BA8E82B7357972B4A5A55B9A424B56F62D3 size:72623 https://download.sysinternals.com/files/AutoLogon.zip sha256:4BA5B92411A9B4B8743BDC479EAD0E3F50ED2C8CB5517A49246EF57F3EBB09C7 +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +waithidden __Download\unzip.exe -o "{pathname of file "AutoLogon.zip" of folder "__Download" of client folder of current site}" -d "{pathname of folder "__Download" of client folder of current site}" + + +waithidden "__Download\AutoLogon.exe" -accepteula "" "" "" + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Audit All - Windows (20703).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Audit All - Windows (20703).bes new file mode 100644 index 000000000..c6ea037dc --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Audit All - Windows (20703).bes @@ -0,0 +1,66 @@ + + + + + Config - Cache Applocker Method - Audit All - Windows + This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

+

AppX - Audit

+

Executables - Audit

+

Installers - Audit

+

Scripts - Audit

+

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml"]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Enforce All - Windows (20704).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Enforce All - Windows (20704).bes new file mode 100644 index 000000000..4bb671744 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Enforce All - Windows (20704).bes @@ -0,0 +1,66 @@ + + + + + Config - Cache Applocker Method - Enforce All - Windows + This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

+

AppX - Enforced

+

Executables - Enforced

+

Installers - Enforced

+

Scripts - Enforced

+

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml"]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows (20705).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows (20705).bes new file mode 100644 index 000000000..f49b80f24 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows (20705).bes @@ -0,0 +1,63 @@ + + + + + Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow Administrators to run All Files. 
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows (20706).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows (20706).bes new file mode 100644 index 000000000..a62c05afd --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows (20706).bes @@ -0,0 +1,63 @@ + + + + + Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Scripts

+
    +
  • Allow Administrators to run all scripts
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows (20714).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows (20714).bes new file mode 100644 index 000000000..af4de3406 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows (20714).bes @@ -0,0 +1,55 @@ + + + + + Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows + This policy adds a policy to Applocker. Specifically it provides a rule for Script


The rule self describes as: Allow Administrators in to run Scripts in their profiles except for AppData ]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows (20707).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows (20707).bes new file mode 100644 index 000000000..0017f385c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows (20707).bes @@ -0,0 +1,63 @@ + + + + + Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Installers

+
    +
  • Allow everyone to run installers in C:\Windows\Installers
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows (20746).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows (20746).bes new file mode 100644 index 000000000..37e26ca9e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows (20746).bes @@ -0,0 +1,67 @@ + + + + + Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow all files in C:\Windows, C:\Program Files, C:\Program Files (x86)
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml"]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20709).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20709).bes new file mode 100644 index 000000000..5f8d9b291 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20709).bes @@ -0,0 +1,69 @@ + + + + + Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows + This policy adds a number of policies to Applocker. Specifically it configures:

+

Scripts

+
    +
  • Allow all scripts in Program Files folder +
  • Allow all scripts in Windows folder
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows (20738).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows (20738).bes new file mode 100644 index 000000000..13228a2c1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows (20738).bes @@ -0,0 +1,58 @@ + + + + + Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows + This policy adds a policy to Applocker. Specifically it provides a rule for Script

+


The rule self describes as: Allow Everyone to run Scripts in the Program Files Directory

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows (20739).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows (20739).bes new file mode 100644 index 000000000..e4f1d1db4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows (20739).bes @@ -0,0 +1,58 @@ + + + + + Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows + This policy adds a policy to Applocker. Specifically it provides a rule for Script

+


The rule self describes as: Allow Everyone to run Scripts in the Windows Directory except Temp.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows (20740).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows (20740).bes new file mode 100644 index 000000000..872d48400 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows (20740).bes @@ -0,0 +1,58 @@ + + + + + Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows + This policy adds a policy to Applocker. Specifically it provides a rule for Script

+

The rule self describes as: Allow Everyone to run Scripts in their profiles except for AppData

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows (20710).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows (20710).bes new file mode 100644 index 000000000..1294b5a33 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows (20710).bes @@ -0,0 +1,64 @@ + + + + + Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows + This policy adds a policy Applocker. Specifically it configures:

+

AppX

+
    +
  • Allow everyone to run signed AppX
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows (20711).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows (20711).bes new file mode 100644 index 000000000..97e5d1e00 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows (20711).bes @@ -0,0 +1,66 @@ + + + + + Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow everyone to run signed executables
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows (20712).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows (20712).bes new file mode 100644 index 000000000..133530383 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows (20712).bes @@ -0,0 +1,65 @@ + + + + + Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Installers

+
    +
  • Allow everyone to run signed installers
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Disable - Windows (20652).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Disable - Windows (20652).bes new file mode 100644 index 000000000..05a30f3cd --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Disable - Windows (20652).bes @@ -0,0 +1,61 @@ + + + + + Config - Credential Guard - Disable - Windows + This Fixlet disables Credential Guard on Windows devices that support it.

+

Note: This Fixlet should be thoroughly tested in your environment before using as it edits the Windows Bootloader to disable credential guard. For this reason, this fixlet has NO DEFAULT ACTION.

+

For more information on Credential Guard please see: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/credential-guard

]]>
+ windows of operating system + set of (integer values of property "SecurityServicesConfigured" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 /* Credential Guard is Configured */ or set of (integer values of property "SecurityServicesRunning" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 /* Credential Guard is Running */ + Virtualization Based Security + Internal + 2016-05-12 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +// Enter your action script here + +regset "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]" "LsaCfgFlags"=dword:00000000 + +delete __createfile +delete run.bat + +createfile until _end_ + +mountvol X: /s +copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y +bcdedit /create {{0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader +bcdedit /set {{0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi" +bcdedit /set {{bootmgr} bootsequence {{0cb3b571-2f2e-4343-a879-d86a476d7215} +bcdedit /set {{0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO +bcdedit /set {{0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X: +mountvol X: /d + +_end_ +move __createfile run.bat + +wait run.bat + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Enable with UEFI Lock - Windows (20653).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Enable with UEFI Lock - Windows (20653).bes new file mode 100644 index 000000000..f1caca9bc --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Enable with UEFI Lock - Windows (20653).bes @@ -0,0 +1,64 @@ + + + + + Config - Credential Guard - Enable with UEFI Lock - Windows + This Fixlet enables Credential Guard on Windows devices that support it.

+

Credential Guard requires the following:

+
    +
  1. Physical PC (Virtual Machines are not Supported) +
  2. Windows 10 Enterprise +
  3. x64 Architecture +
  4. UEFI 2.3.1 +
  5. Secure Boot +
  6. Intel VT-x or AMD-V +
  7. Second Level Address Translation (SLAT) Support
+

The following features are recommended for Credential Guard:

+
    +
  1. IOMMU +
  2. TPM 1.2 or 2.0
+

Before you can enable Credential Guard you must activate Virtualization Based Security using Secure Boot or Secure Boot and DMA. To do this please use:

+
+

Fixlet: Config - Virtualization Based Security - Using Secure Boot - Windows

+

Fixlet: Config - Virtualization Based Security - Using Secure Boot and DMA - Windows

+

You also must enable Hyper-V and Isolated User Mode. To do this please use:

+
+

Fixlet: Config - Isolated User Mode - Enable - Windows

+

Fixlet: Config - Hyper-V Platform - Enable - Windows

+

For more information on Credential Guard please see: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/credential-guard

]]>
+ windows of operating system + set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 /* Secure Boot is Available */ + (it contains 2) of set of (integer values of property "VirtualizationBasedSecurityStatus" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") /* Virtualization Based Security is Configured */ + (value "EnableVirtualizationBasedSecurity" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceGuard" of native registry as integer = 1) and (value "RequirePlatformSecurityFeatures" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceGuard" of native registry as integer != 0) + (value "LsaCfgFlags" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA" of native registry as integer != 1) | true + Virtualization Based Security + Internal + 2016-05-12 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +regset "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]" "LsaCfgFlags"=dword:00000001 + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Disable SMBv3 Compression - Windows (26668).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Disable SMBv3 Compression - Windows (26668).bes new file mode 100644 index 000000000..ee6bb1f88 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Disable SMBv3 Compression - Windows (26668).bes @@ -0,0 +1,44 @@ + + + + + Config - Disable SMBv3 Compression - Windows + This Fixlet detects if SMBv3 is vulnerable to CVE-2020-0796

+

It takes into account the following items:

+
    +
  1. Vulnerable Windows OS Versions +
  2. SMBv3 Enablement +
  3. SMBv3 Compression Status
+

Actioning this Fixlet against a vulnerable device will disable SMBv3 Compression.

+

NOTE: This will only protect a SMBv3 Server and will not protect a SMBv3 Client. This remediation prevents the "Wormable" part of CVE-2020-0796.

+

This remediation is made available with no warranty expressed or otherwise and should be tested before being applied to any production or otherwise important systems.

]]>
+ windows of operating system + exists it whose (it = "1903" or it = "1909") of preceding text of last ")" of following text of first "(" of (operating system as string) + not exists values "DisableCompression" whose (it = 1) of keys "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" of registry + not exists values "SMB2" whose (it = 0) of keys "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" of registry + Internal + 2020-03-12 + + x-fixlet-modification-time + Thu, 12 Mar 2020 17:38:54 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]" "DisableCompression"=dword:00000001 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows (20801).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows (20801).bes new file mode 100644 index 000000000..dba801fea --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows (20801).bes @@ -0,0 +1,410 @@ + + + + + Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows + This policy sets the default Certificate Pinning Mitigations within EMET. Specifically it configures certificate pinning for the following sites:

+

login.live.com
login.microsoftonline.com
login.skype.com
login.yahoo.com
secure.skype.com
twitter.com
facebook.com

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\CertPinning\Rules" of native registry) != set of ("FacebookCA";"MicrosoftAccountCA";"TwitterCA";"YahooCA") + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + {{d9766177-1512-4c48-84e5-e95e44663eed} + TwitterCA + + + CN=GeoTrust Global CA, O=GeoTrust Inc., C=US + 023456 + 00F92AC34191B6C9C2B83E55F2C0971113A00720 + DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212 + + + Certificate not in current root store + Thumbprint A9E9780814375888F20519B06D2B0D2B6016907D + Certificate not in current root store + A9E9780814375888F20519B06D2B0D2B6016907D + + + CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US + 18ACB56AFD69B6153A636CAFDAFAC4A1 + 2CD5504197158BF08F36615B4AFB6BD999C93392 + 323C118E1BF7B8B65254E2E2100DD6029037F096 + + + CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US + 15AC6E9419B2794B41F627A9C3180F1F + C479CA8EA14E031D1CDC6BDB315B943E3F307F2D + 039EEDB80BE7A03C6953893B20D2D9323A4C2AFD + + + Certificate not in current root store + Thumbprint E621F3354379059A4B68309D8A2F74221587EC79 + Certificate not in current root store + E621F3354379059A4B68309D8A2F74221587EC79 + + + Certificate not in current root store + Thumbprint 379A197B418545350CA60369F33C2EAF474F2079 + Certificate not in current root store + 379A197B418545350CA60369F33C2EAF474F2079 + + + Certificate not in current root store + Thumbprint 204285DCF7EB764195578E136BD4B7D1E98E46A5 + Certificate not in current root store + 204285DCF7EB764195578E136BD4B7D1E98E46A5 + + + Certificate not in current root store + Thumbprint 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 + Certificate not in current root store + 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 + + + Certificate not in current root store + Thumbprint 85371CA6E550143DCE2803471BDE3A09E8F8770F + Certificate not in current root store + 85371CA6E550143DCE2803471BDE3A09E8F8770F + + + CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 009B7E0649A33E62B9D5EE90487129EF57 + F0115C20ABF0D0FE3D0842EF9571E372C11C1256 + 132D0D45534B6997CDB2D5C339E25576609B5CC6 + + + CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 18DAD19E267DE8BB4A2158CDCC6B3B4A + 7FD365A7C2DDECBBF03009F34339FA02AF333133 + 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 + + + CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 401AC46421B31321030EBBE4121AC51D + B677FA6948479F5312D5C2EA07327607D1970719 + 3679CA35668772304D30A5FB873B0FA77BB70D54 + + + CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 083BE056904246B1A1756AC95991C74A + 03DE503556D14CBB66F0A3E21B1BC397B23DD155 + A8985D3A65E5E5C4B2D7D66D40C6DD2FB19C5436 + + + CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 02AC5C266A0B409B8F0B79F2AE462577 + B13EC36903F8BF4701D498261A0802EF63642BC3 + 5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25 + + + CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 0CE7E0E517D846FE8FE560FC1BF03039 + 45EBA2AFF492CB82312D518BA7A7219DF36DC80F + 0563B8630D62D75ABBC8AB1E4BDFB5A899B24D43 + + + 09/01/2017 00:00:00 + + + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + MicrosoftAccountCA + + + CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE + 020000B9 + E59D5930824758CCACFA085436867B3AB5044DF0 + D4DE20D05E66FC53FE1A50882C78DB2852CAE474 + + + CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 18DAD19E267DE8BB4A2158CDCC6B3B4A + 7FD365A7C2DDECBBF03009F34339FA02AF333133 + 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 + + + CN=GlobalSign Root CA, OU=Root CA, O=GlobalSign nv-sa, C=BE + 040000000001154B5AC394 + 607B661A450D97CA89502F7D04CD34A8FFFCFD4B + B1BC968BD4F49D622AA89A81F2150152A41D829C + + + CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US + 01A5 + A60C1D9F61FF0717B5BF3846DB4330D58EB05206 + 97817950D81C9670CC34D809CF794431367EF474 + + + Certificate not in current root store + Thumbprint 912198EEF23DCAC40939312FEE97DD560BAE49B1 + Certificate not in current root store + 912198EEF23DCAC40939312FEE97DD560BAE49B1 + + + Certificate not in current root store + Thumbprint 5F43E5B1BFF8788CAC1CC7CA4A9AC6222BCC34C6 + Certificate not in current root store + 5F43E5B1BFF8788CAC1CC7CA4A9AC6222BCC34C6 + + + 09/01/2017 00:00:00 + + + {{cb1e584f-4ad0-4c6f-9239-317d4a07d24c} + FacebookCA + + + CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 02AC5C266A0B409B8F0B79F2AE462577 + B13EC36903F8BF4701D498261A0802EF63642BC3 + 5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25 + + + OU=Equifax Secure Certificate Authority, O=Equifax, C=US + 35DEF4CF + 0F348320A1DA3FD1CB84DC48CBA4D5E19E66841E + D23209AD23D314232174E40D7F9D62139786633A + + + Certificate not in current root store + Thumbprint 7E784A101C8265CC2DE1F16D47B440CAD90A1945 + Certificate not in current root store + 7E784A101C8265CC2DE1F16D47B440CAD90A1945 + + + CN=GeoTrust Global CA, O=GeoTrust Inc., C=US + 023456 + 00F92AC34191B6C9C2B83E55F2C0971113A00720 + DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212 + + + Certificate not in current root store + Thumbprint A9E9780814375888F20519B06D2B0D2B6016907D + Certificate not in current root store + A9E9780814375888F20519B06D2B0D2B6016907D + + + CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US + 18ACB56AFD69B6153A636CAFDAFAC4A1 + 2CD5504197158BF08F36615B4AFB6BD999C93392 + 323C118E1BF7B8B65254E2E2100DD6029037F096 + + + CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US + 15AC6E9419B2794B41F627A9C3180F1F + C479CA8EA14E031D1CDC6BDB315B943E3F307F2D + 039EEDB80BE7A03C6953893B20D2D9323A4C2AFD + + + Certificate not in current root store + Thumbprint E621F3354379059A4B68309D8A2F74221587EC79 + Certificate not in current root store + E621F3354379059A4B68309D8A2F74221587EC79 + + + CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US + 344ED55720D5EDEC49F42FCE37DB2B6D + 7B5B45CFAFCECB7AFD31921A6AB6F346EB574850 + 91C6D6EE3E8AC86384E548C299295C756C817B81 + + + CN=thawte Primary Root CA - G3, OU="(c) 2008 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US + 600197B746A7EAB4B49AD64B2FF790FB + AD6CAA94609CEDE4FFFA3E0A742B6303F7B659BF + F18B538D1BE903B6A6F056435B171589CAF36BF2 + + + Certificate not in current root store + Thumbprint 85371CA6E550143DCE2803471BDE3A09E8F8770F + Certificate not in current root store + 85371CA6E550143DCE2803471BDE3A09E8F8770F + + + CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 009B7E0649A33E62B9D5EE90487129EF57 + F0115C20ABF0D0FE3D0842EF9571E372C11C1256 + 132D0D45534B6997CDB2D5C339E25576609B5CC6 + + + CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 18DAD19E267DE8BB4A2158CDCC6B3B4A + 7FD365A7C2DDECBBF03009F34339FA02AF333133 + 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 + + + CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 401AC46421B31321030EBBE4121AC51D + B677FA6948479F5312D5C2EA07327607D1970719 + 3679CA35668772304D30A5FB873B0FA77BB70D54 + + + 09/01/2017 00:00:00 + + + {{1d1e83d9-f876-49ab-bbd6-14c3c7dd6338} + YahooCA + + + CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US + 01A5 + A60C1D9F61FF0717B5BF3846DB4330D58EB05206 + 97817950D81C9670CC34D809CF794431367EF474 + + + CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 02AC5C266A0B409B8F0B79F2AE462577 + B13EC36903F8BF4701D498261A0802EF63642BC3 + 5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25 + + + CN=GeoTrust Global CA, O=GeoTrust Inc., C=US + 023456 + 00F92AC34191B6C9C2B83E55F2C0971113A00720 + DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212 + + + Certificate not in current root store + Thumbprint A9E9780814375888F20519B06D2B0D2B6016907D + Certificate not in current root store + A9E9780814375888F20519B06D2B0D2B6016907D + + + CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US + 18ACB56AFD69B6153A636CAFDAFAC4A1 + 2CD5504197158BF08F36615B4AFB6BD999C93392 + 323C118E1BF7B8B65254E2E2100DD6029037F096 + + + CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US + 15AC6E9419B2794B41F627A9C3180F1F + C479CA8EA14E031D1CDC6BDB315B943E3F307F2D + 039EEDB80BE7A03C6953893B20D2D9323A4C2AFD + + + Certificate not in current root store + Thumbprint E621F3354379059A4B68309D8A2F74221587EC79 + Certificate not in current root store + E621F3354379059A4B68309D8A2F74221587EC79 + + + Certificate not in current root store + Thumbprint 204285DCF7EB764195578E136BD4B7D1E98E46A5 + Certificate not in current root store + 204285DCF7EB764195578E136BD4B7D1E98E46A5 + + + Certificate not in current root store + Thumbprint 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 + Certificate not in current root store + 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 + + + Certificate not in current root store + Thumbprint 85371CA6E550143DCE2803471BDE3A09E8F8770F + Certificate not in current root store + 85371CA6E550143DCE2803471BDE3A09E8F8770F + + + CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 009B7E0649A33E62B9D5EE90487129EF57 + F0115C20ABF0D0FE3D0842EF9571E372C11C1256 + 132D0D45534B6997CDB2D5C339E25576609B5CC6 + + + CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 18DAD19E267DE8BB4A2158CDCC6B3B4A + 7FD365A7C2DDECBBF03009F34339FA02AF333133 + 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 + + + CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 401AC46421B31321030EBBE4121AC51D + B677FA6948479F5312D5C2EA07327607D1970719 + 3679CA35668772304D30A5FB873B0FA77BB70D54 + + + 09/01/2017 00:00:00 + + + + + login.microsoftonline.com + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + True + + + secure.skype.com + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + True + + + www.facebook.com + {{cb1e584f-4ad0-4c6f-9239-317d4a07d24c} + True + + + login.yahoo.com + {{1d1e83d9-f876-49ab-bbd6-14c3c7dd6338} + True + + + login.live.com + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + True + + + login.skype.com + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + True + + + twitter.com + {{d9766177-1512-4c48-84e5-e95e44663eed} + True + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Mitigation Actions - Windows (20802).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Mitigation Actions - Windows (20802).bes new file mode 100644 index 000000000..d0b006bef --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Mitigation Actions - Windows (20802).bes @@ -0,0 +1,62 @@ + + + + + Config - EMET Rules - Enable Default Mitigation Actions - Windows + This policy sets the default mitigations and actions within EMET. Specifically it configures EMET to do the following:

+

Exploit Action:
Kill program on exploit detection

+

Advanced Settings:
Enable DeepHook, AntiDetours, and BannedFunction settings

+

Reporting:
Report Telemetry
Show Tray Icon
Log to Event log

+

Mitigations:
Application Opt In to DEP
Application Opt In to SEHOP
Application Opt In to ASLR
Enable Certificate Pinning
Audit Untrusted Font Detection

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + ((value "AntiDetours" of it != 1 or value "BannedFunctions" of it != 1 or value "DeepHooks" of it != 1 or value "ExploitAction" of it != 1 or value "ReportingSettings" of it != 7) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations - Windows (20803).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations - Windows (20803).bes new file mode 100644 index 000000000..7d0e82b6d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations - Windows (20803).bes @@ -0,0 +1,316 @@ + + + + + Config - EMET Rules - Enable Microsoft Application Mitigations - Windows + This policy sets the default application mitigations for various Microsoft applications within EMET.

+

Specifically it configures EMET to detect exploits for the following applications:

+
    +
  • Access
  • +
  • Excel
  • +
  • InfoPath
  • +
  • Internet Explorer
  • +
  • Lync
  • +
  • Outlook
  • +
  • PowerPoint
  • +
  • Publisher
  • +
  • Visio
  • +
  • Word
  • +
  • WordPad
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (size of ((set of ("*\Internet Explorer\iexplore.exe";"*\Windows NT\Accessories\wordpad.exe";"*\OFFICE1*\OUTLOOK.EXE";"*\OFFICE1*\WINWORD.EXE";"*\OFFICE1*\EXCEL.EXE";"*\OFFICE1*\POWERPNT.EXE";"*\OFFICE1*\MSACCESS.EXE";"*\OFFICE1*\MSPUB.EXE";"*\OFFICE1*\INFOPATH.EXE";"*\OFFICE1*\VISIO.EXE";"*\OFFICE1*\VPREVIEW.EXE";"*\OFFICE1*\LYNC.EXE";"*\OFFICE1*\PPTVIEW.EXE";"*\OFFICE1*\OIS.EXE") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + mshtml.dll;flash*.ocx;jscript*.dll;vbscript.dll;vgx.dll + + + + + + + + + + npjpi*.dll;jp2iexp.dll;vgx.dll;msxml4*.dll;wshom.ocx;scrrun.dll;vbscript.dll + 1;2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows (20897).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows (20897).bes new file mode 100644 index 000000000..b6ab99a49 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows (20897).bes @@ -0,0 +1,317 @@ + + + + + Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows + This policy sets the default application mitigations for various Microsoft applications within EMET.

+

Specifically it configures EMET to detect exploits for the following applications:

+
    +
  • Access +
  • Excel +
  • InfoPath +
  • Internet Explorer +
  • Lync +
  • Outlook +
  • PowerPoint +
  • Publisher +
  • Visio +
  • Word +
  • WordPad
+

This Fixlet in particular excludes ALL EAF configurations.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (size of ((set of ("*\Internet Explorer\iexplore.exe";"*\Windows NT\Accessories\wordpad.exe";"*\OFFICE1*\OUTLOOK.EXE";"*\OFFICE1*\WINWORD.EXE";"*\OFFICE1*\EXCEL.EXE";"*\OFFICE1*\POWERPNT.EXE";"*\OFFICE1*\MSACCESS.EXE";"*\OFFICE1*\MSPUB.EXE";"*\OFFICE1*\INFOPATH.EXE";"*\OFFICE1*\VISIO.EXE";"*\OFFICE1*\VPREVIEW.EXE";"*\OFFICE1*\LYNC.EXE";"*\OFFICE1*\PPTVIEW.EXE";"*\OFFICE1*\OIS.EXE") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + mshtml.dll;flash*.ocx;jscript*.dll;vbscript.dll;vgx.dll + + + + + + + + + + npjpi*.dll;jp2iexp.dll;vgx.dll;msxml4*.dll;wshom.ocx;scrrun.dll;vbscript.dll + 1;2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows (21612).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows (21612).bes new file mode 100644 index 000000000..eaa5277a6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows (21612).bes @@ -0,0 +1,308 @@ + + + + + Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows + This policy sets the default application mitigations for various Microsoft applications within EMET.

+

Specifically it configures EMET to detect exploits for the following applications:

+
    +
  • 7-Zip +
  • Adobe Acrobat +
  • Adobe Reader +
  • Adobe Photoshop +
  • Apple Safari +
  • Apple Quicktime +
  • Apple iTunes +
  • FoxIT Reader +
  • Google Chrome +
  • Google Talk +
  • Java +
  • mIRC +
  • Mozilla Firefox +
  • Mozilla Thunderbird +
  • Opera Browser +
  • Pidgin +
  • Real Player +
  • VLC +
  • Winamp +
  • WinRAR +
  • WinZIP
+

Please note, EAF+ has been disabled for Google Chrome due to issues with the latest versions of Chrome and Windows 10.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (size of (set of ("*\Adobe\*\Reader\AcroRd32.exe";"*\Adobe\Acrobat*\Acrobat\Acrobat.exe";"*\Java\jre*\bin\java.exe";"*\Java\jre*\bin\javaw.exe";"*\Java\jre*\bin\javaws.exe";"*\Google\Chrome\Application\chrome.exe";"*\Google\Google Talk\googletalk.exe";"*\Mozilla Firefox\firefox.exe";"*\Mozilla Firefox\plugin-container.exe";"*\Mozilla Thunderbird\thunderbird.exe";"*\Mozilla Thunderbird\plugin-container.exe";"*\Adobe\Adobe Photoshop CS*\Photoshop.exe";"*\Winamp\winamp.exe";"*\Opera\opera.exe";"*\Opera\*\opera.exe";"*\WinRAR\winrar.exe";"*\WinRAR\rar.exe";"*\WinRAR\unrar.exe";"*\WinZip\winzip32.exe";"*\WinZip\winzip64.exe";"*\VideoLAN\VLC\vlc.exe";"*\Real\RealPlayer\realconverter.exe";"*\Real\RealPlayer\realplay.exe";"*\mIRC\mirc.exe";"*\7-Zip\7z.exe";"*\7-Zip\7zG.exe";"*\7-Zip\7zFM.exe";"*\Safari\Safari.exe";"*\QuickTime\QuickTimePlayer.exe";"*\iTunes\iTunes.exe";"*\Pidgin\pidgin.exe";"*\Foxit Reader\Foxit Reader.exe") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + chrome_child.dll + + + + + + + + + + + + + + + + + + + mozjs.dll;xul.dll + + + + + + + + + + + + + + + + + + + + + + + + AcroRd32.dll;Acrofx32.dll;AcroForm.api + + + + + + + AcroRd32.dll;Acrofx32.dll;AcroForm.api + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows (20898).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows (20898).bes new file mode 100644 index 000000000..adc754428 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows (20898).bes @@ -0,0 +1,308 @@ + + + + + Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows + This policy sets the default application mitigations for various Microsoft applications within EMET.

+

Specifically it configures EMET to detect exploits for the following applications:

+
    +
  • 7-Zip +
  • Adobe Acrobat +
  • Adobe Reader +
  • Adobe Photoshop +
  • Apple Safari +
  • Apple Quicktime +
  • Apple iTunes +
  • FoxIT Reader +
  • Google Chrome +
  • Google Talk +
  • Java +
  • mIRC +
  • Mozilla Firefox +
  • Mozilla Thunderbird +
  • Opera Browser +
  • Pidgin +
  • Real Player +
  • VLC +
  • Winamp +
  • WinRAR +
  • WinZIP
+

This Fixlet in particular excludes ALL EAF configurations.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (size of (set of ("*\Adobe\*\Reader\AcroRd32.exe";"*\Adobe\Acrobat*\Acrobat\Acrobat.exe";"*\Java\jre*\bin\java.exe";"*\Java\jre*\bin\javaw.exe";"*\Java\jre*\bin\javaws.exe";"*\Google\Chrome\Application\chrome.exe";"*\Google\Google Talk\googletalk.exe";"*\Mozilla Firefox\firefox.exe";"*\Mozilla Firefox\plugin-container.exe";"*\Mozilla Thunderbird\thunderbird.exe";"*\Mozilla Thunderbird\plugin-container.exe";"*\Adobe\Adobe Photoshop CS*\Photoshop.exe";"*\Winamp\winamp.exe";"*\Opera\opera.exe";"*\Opera\*\opera.exe";"*\WinRAR\winrar.exe";"*\WinRAR\rar.exe";"*\WinRAR\unrar.exe";"*\WinZip\winzip32.exe";"*\WinZip\winzip64.exe";"*\VideoLAN\VLC\vlc.exe";"*\Real\RealPlayer\realconverter.exe";"*\Real\RealPlayer\realplay.exe";"*\mIRC\mirc.exe";"*\7-Zip\7z.exe";"*\7-Zip\7zG.exe";"*\7-Zip\7zFM.exe";"*\Safari\Safari.exe";"*\QuickTime\QuickTimePlayer.exe";"*\iTunes\iTunes.exe";"*\Pidgin\pidgin.exe";"*\Foxit Reader\Foxit Reader.exe") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + chrome_child.dll + + + + + + + + + + + + + + + + + + + mozjs.dll;xul.dll + + + + + + + + + + + + + + + + + + + + + + + + AcroRd32.dll;Acrofx32.dll;AcroForm.api + + + + + + + AcroRd32.dll;Acrofx32.dll;AcroForm.api + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Add 127.0.0.1 FQDN - Windows (23379).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Add 127.0.0.1 FQDN - Windows (23379).bes new file mode 100644 index 000000000..7ea924c0d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Add 127.0.0.1 FQDN - Windows (23379).bes @@ -0,0 +1,52 @@ + + + + + Config - Hosts File - Add 127.0.0.1 FQDN - Windows + This Fixlet adds the BigFix Managed "127.0.0.1 this.machines.hostname" to the hosts file on the machine.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists (it contains "127.0.0.1" and it contains dns name as lowercase) of lines containing "#BigFixManagedEntry" of file "hosts" of folder "drivers\etc" of system x64 folder + Internal + 2017-01-31 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "Hosts"="{pathname of folder "drivers\etc" of system x64 folder}\hosts" +parameter "HostsBackup"="{pathname of folder "drivers\etc" of system x64 folder}\hosts.old" + +delete __createfile + +createfile until _end_ +{(lines whose (it does not contain "#BigFixManagedEntry") of files (parameter "Hosts"))} +127.0.0.1 {dns name as lowercase} " #BigFixManagedEntry" +_end_ + +if {exists file (parameter "Hosts")} + delete "{parameter "HostsBackup"}" + move "{parameter "Hosts"}" "{parameter "HostsBackup"}" +endif + +copy __createfile "{parameter "Hosts"}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Remove 127.0.0.1 FQDN - Windows (23380).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Remove 127.0.0.1 FQDN - Windows (23380).bes new file mode 100644 index 000000000..dc93d0e68 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Remove 127.0.0.1 FQDN - Windows (23380).bes @@ -0,0 +1,51 @@ + + + + + Config - Hosts File - Remove 127.0.0.1 FQDN - Windows + This Fixlet removes the BigFix Managed "127.0.0.1 this.machines.hostname" from the hosts file on the machine.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists (it contains "127.0.0.1" and it contains dns name as lowercase) of lines containing "#BigFixManagedEntry" of file "hosts" of folder "drivers\etc" of system x64 folder + Internal + 2017-01-31 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "Hosts"="{pathname of folder "drivers\etc" of system x64 folder}\hosts" +parameter "HostsBackup"="{pathname of folder "drivers\etc" of system x64 folder}\hosts.old" + +delete __createfile + +createfile until _end_ +{(lines whose (it does not contain "#BigFixManagedEntry") of files (parameter "Hosts"))} +_end_ + +if {exists file (parameter "Hosts")} + delete "{parameter "HostsBackup"}" + move "{parameter "Hosts"}" "{parameter "HostsBackup"}" +endif + +copy __createfile "{parameter "Hosts"}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Reset to Default - Windows (23381).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Reset to Default - Windows (23381).bes new file mode 100644 index 000000000..b52a0bee6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Reset to Default - Windows (23381).bes @@ -0,0 +1,70 @@ + + + + + Config - Hosts File - Reset to Default - Windows + This Fixlet resets the hosts file to its default configuration on Windows. + windows of operating system + exists (lines whose (it does not contain "#" and it does not equal "") of file "hosts" of folder "drivers\etc" of system x64 folder) + Internal + 2017-01-31 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "Hosts"="{pathname of folder "drivers\etc" of system x64 folder}\hosts" +parameter "HostsBackup"="{pathname of folder "drivers\etc" of system x64 folder}\hosts.old" + +delete __createfile + +createfile until _end_ +# Copyright (c) 1993-2009 Microsoft Corp. +# +# This is a sample HOSTS file used by Microsoft TCP/IP for Windows. +# +# This file contains the mappings of IP addresses to host names. Each +# entry should be kept on an individual line. The IP address should +# be placed in the first column followed by the corresponding host name. +# The IP address and the host name should be separated by at least one +# space. +# +# Additionally, comments (such as these) may be inserted on individual +# lines or following the machine name denoted by a '#' symbol. +# +# For example: +# +# 102.54.94.97 rhino.acme.com # source server +# 38.25.63.10 x.acme.com # x client host + +# localhost name resolution is handled within DNS itself. +# 127.0.0.1 localhost +# ::1 localhost +_end_ + +if {exists file (parameter "Hosts")} + delete "{parameter "HostsBackup"}" + move "{parameter "Hosts"}" "{parameter "HostsBackup"}" +endif + +copy __createfile "{parameter "Hosts"}" + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Disable - Windows (20654).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Disable - Windows (20654).bes new file mode 100644 index 000000000..4072f0cab --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Disable - Windows (20654).bes @@ -0,0 +1,38 @@ + + + + + Config - Hyper-V Platform - Disable - Windows + This Fixlet enables Hyper-V Platform in Windows to support the deployment of Credential Guard + windows of operating system + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) contains "Hyper-V Platform" + Virtualization Based Security + Internal + 2016-05-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +// Enter your action script here + +wait dism.exe /NoRestart /Online /Disable-Feature:Microsoft-Hyper-V-Hypervisor + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Enable - Windows (20655).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Enable - Windows (20655).bes new file mode 100644 index 000000000..626100dc3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Enable - Windows (20655).bes @@ -0,0 +1,39 @@ + + + + + Config - Hyper-V Platform - Enable - Windows + This Fixlet enables Hyper-V Platform in Windows to support the deployment of Credential Guard + windows of operating system + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) does not contain "Hyper-V Platform" + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature" of wmi) contains "Hyper-V Platform" + Virtualization Based Security + Internal + 2016-05-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +// Enter your action script here + +wait dism.exe /NoRestart /Online /Enable-Feature:Microsoft-Hyper-V-Hypervisor /all + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Disable - Windows (20656).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Disable - Windows (20656).bes new file mode 100644 index 000000000..f41497c3d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Disable - Windows (20656).bes @@ -0,0 +1,38 @@ + + + + + Config - Isolated User Mode - Disable - Windows + This Fixlet disables Isolated User Mode in Windows to support the removal of Credential Guard + windows of operating system + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) does not contain "Isolated User Mode" + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature" of wmi) contains "Isolated User Mode" + Virtualization Based Security + Internal + 2016-05-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait dism.exe /NoRestart /Online /Disable-Feature:IsolatedUserMode + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Enable - Windows (20657).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Enable - Windows (20657).bes new file mode 100644 index 000000000..de1c6b5a1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Enable - Windows (20657).bes @@ -0,0 +1,38 @@ + + + + + Config - Isolated User Mode - Enable - Windows + This Fixlet enables Isolated User Mode in Windows to support the deployment of Credential Guard + windows of operating system + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) does not contain "Isolated User Mode" + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature" of wmi) contains "Isolated User Mode" + Virtualization Based Security + Internal + 2016-05-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait dism.exe /NoRestart /Online /Enable-Feature:IsolatedUserMode /All + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Microsoft Remote Desktop - Enable RDP - Windows (23555).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Microsoft Remote Desktop - Enable RDP - Windows (23555).bes new file mode 100644 index 000000000..1a34012fc --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Microsoft Remote Desktop - Enable RDP - Windows (23555).bes @@ -0,0 +1,40 @@ + + + + + Config - Microsoft Remote Desktop - Enable RDP - Windows + This Fixlet enables RDP on the targeted machine.

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + exists values "fDenyTSConnections" whose (it != 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of registry + Internal + 2017-02-01 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]" "fDenyTSConnections"=dword:00000000 + +waithidden "{pathname of file "sc.exe" of system folder}" config TermService start= demand + +waithidden "{pathname of file "sc.exe" of system folder}" start TermService + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Balanced - Windows (20557).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Balanced - Windows (20557).bes new file mode 100644 index 000000000..ec43a76bd --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Balanced - Windows (20557).bes @@ -0,0 +1,37 @@ + + + + + Config - Power Policy - Set to Balanced - Windows + For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ "5.1"]]> + string value of selects "ElementName from win32_powerplan where isActive = True" of wmi "Root\CIMV2\power" != "Balanced" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait powercfg -s "381b4222-f694-41f0-9685-ff5bb260df2e" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to High Performance - Windows (20559).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to High Performance - Windows (20559).bes new file mode 100644 index 000000000..4f43b4ec7 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to High Performance - Windows (20559).bes @@ -0,0 +1,37 @@ + + + + + Config - Power Policy - Set to High Performance - Windows + For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ "5.1"]]> + string value of selects "ElementName from win32_powerplan where isActive = True" of wmi "Root\CIMV2\power" != "High Performance" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait powercfg -s "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Power Saver - Windows (20561).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Power Saver - Windows (20561).bes new file mode 100644 index 000000000..23bc1a3e7 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Power Saver - Windows (20561).bes @@ -0,0 +1,37 @@ + + + + + Config - Power Policy - Set to Power Saver - Windows + Sets the Windows Power Policy to Power Saver.

+

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ "5.1"]]> + string value of selects "ElementName from win32_powerplan where isActive = True" of wmi "Root\CIMV2\power" != "Power Saver" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait powercfg -s "a1841308-3541-4fab-bc81-f71556f20b4a" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Presentation Mode - Windows (24032).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Presentation Mode - Windows (24032).bes new file mode 100644 index 000000000..2e69ce841 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Presentation Mode - Windows (24032).bes @@ -0,0 +1,34 @@ + + + + + Config - Power Policy - Set to Presentation Mode - Windows + Sets the power policy to presentation mode

+

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ windows of operating system + Internal + 2016-05-02 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + wait powercfg -s "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Microsoft Search Indexer - Windows (22915).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Microsoft Search Indexer - Windows (22915).bes new file mode 100644 index 000000000..c34d882d5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Microsoft Search Indexer - Windows (22915).bes @@ -0,0 +1,40 @@ + + + + + Config - Process Monitor - Microsoft Search Indexer - Windows + Configures the BES Process monitor to monitor for a process.

+

Specifically, this fixlet configures it to monitor the following Processes:

+
    +
  1. SearchIndexer.exe
+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists processes (substrings separated by ";" of "SearchIndexer.exe") + not exists values whose (it = "SearchIndexer.exe") of settings "besprocessmonitor-microsoft-windows-searchindexer" of client + Service Monitor + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + setting "besprocessmonitor-microsoft-windows-searchindexer"="SearchIndexer.exe" on "{now}" for client + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows (23032).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows (23032).bes new file mode 100644 index 000000000..9f545bea6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows (23032).bes @@ -0,0 +1,36 @@ + + + + + Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows + Configures the BES Process Monitor to only report process failure after 10 minutes of system uptime.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists values whose (it = "10") of settings "besprocessmonitor-audit-delay" of client + Service Monitor + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + setting "besprocessmonitor-audit-delay"="10" on "{now}" for client + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows (23033).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows (23033).bes new file mode 100644 index 000000000..5ba62a7eb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows (23033).bes @@ -0,0 +1,36 @@ + + + + + Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows + Configures the BES Process Monitor to only report process failure after 15 minutes of system uptime.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists values whose (it = "15") of settings "besprocessmonitor-audit-delay" of client + Service Monitor + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + setting "besprocessmonitor-audit-delay"="15" on "{now}" for client + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows (23034).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows (23034).bes new file mode 100644 index 000000000..e50ee6aa6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows (23034).bes @@ -0,0 +1,36 @@ + + + + + Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows + Configures the BES Process Monitor to only report process failure after 5 minutes of system uptime.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists values whose (it = "5") of settings "besprocessmonitor-audit-delay" of client + Service Monitor + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + setting "besprocessmonitor-audit-delay"="5" on "{now}" for client + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Remote Credential Guard - Enable - Windows (23808).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Remote Credential Guard - Enable - Windows (23808).bes new file mode 100644 index 000000000..c9f4ca66b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Remote Credential Guard - Enable - Windows (23808).bes @@ -0,0 +1,44 @@ + + + + + Config - Remote Credential Guard - Enable - Windows + This Fixlet enables Remote Credential Guard on Windows devices that support it.

+

Credential Guard requires the following:

+
    +
  1. Windows 10 Enterprise
+

For more information on Credential Guard please see: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/remote-credential-guard

]]>
+ windows of operating system + "10.0.0.0"]]> + not exists values "DisableRestrictedAdmin" whose (it = 0) of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa" of native registry + Virtualization Based Security + Internal + 2016-05-12 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +regset "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]" "DisableRestrictedAdmin"=dword:00000000 + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Windows Activation - Set to KMS Activation - Windows (23579).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Windows Activation - Set to KMS Activation - Windows (23579).bes new file mode 100644 index 000000000..6789e89be --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Windows Activation - Set to KMS Activation - Windows (23579).bes @@ -0,0 +1,50 @@ + + + + + Config - Windows Activation - Set to KMS Activation - Windows + This Fixlet configures Windows to use KMS activation using a pre-configured set of generic KMS keys. For this fixlet to work you must have a KMS server defined in DNS or have already defined a KMS server on your devices.

+

Kudos, Compliments, and Thanks to @jgstew for providing the source content for this fixlet: https://bigfix.me/fixlet/details/21368 

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + + /* is NOT a KMS Server */ not boolean value of selects "IsKeyManagementServiceMachine from SoftwareLicensingProduct WHERE (LicenseStatus = 1 and (Name LIKE 'Windows(R), Server%25' or Name LIKE 'Windows Server(R), Server%25'))" of wmi | true + + Internal + 2016-12-09 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows - Turn on Synchronize with NTP server (2587).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows - Turn on Synchronize with NTP server (2587).bes new file mode 100644 index 000000000..a62a701a1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows - Turn on Synchronize with NTP server (2587).bes @@ -0,0 +1,39 @@ + + + + + Configuration - Windows - Turn on Synchronize with NTP server + This will turn on NTP time sync in windows if and only if it is currently off. + "NoSync" = value "Type" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" of registry + /* Windows Only */ windows of operating system + = "5.1"]]> + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" of registry + exists value "Type" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" of registry + Configuration + Internal + jgstew + 2011-09-19 + + x-fixlet-modification-time + Thu, 29 Aug 2013 21:57:15 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters]" "Type"="NTP" + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows Update - Allow a Standard User to use Windows Update (2583).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows Update - Allow a Standard User to use Windows Update (2583).bes new file mode 100644 index 000000000..8289a233a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows Update - Allow a Standard User to use Windows Update (2583).bes @@ -0,0 +1,42 @@ + + + + + Configuration - Windows Update - Allow a Standard User to use Windows Update + ]]> + exists value "ElevateNonAdmins" whose (1 != it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" of native registry + /* Windows Only */ windows of operating system + = "6.0"]]> + Configuration + jgs194 + 2013-08-29 + + x-fixlet-source + Windows Registry Wizard + + + x-fixlet-modification-time + Thu, 29 Aug 2013 20:28:31 +0000 + + BESC + + + Click&nbsp; + here&nbsp; + to initiate the deployment process. + + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update]" "ElevateNonAdmins"=dword:00000001 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later TODO (6047).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later TODO (6047).bes new file mode 100644 index 000000000..18dc8c6ef --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later TODO (6047).bes @@ -0,0 +1,60 @@ + + + + + Configuration: Allow Windows Update to be used for Installing Features - Windows 8 or later TODO + + windows of operating system + = "6.2"]]> + not exists values "RepairContentServerSource" whose(it as string = "2") of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing" of (x64 registries;x32 registries) + Configuration + Internal + jgstew + 2015-01-13 + + x-fixlet-modification-time + Tue, 13 Jan 2015 20:26:58 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx +// http://support.microsoft.com/kb/900935 +// http://technet.microsoft.com/en-us/library/hh825020.aspx +// http://community.spiceworks.com/how_to/show/30581-install-net-3-5-on-windows-8 +// http://blogs.technet.com/b/yungchou/archive/2013/12/19/windows-server-2012-r2-installation-options-and-features-on-demand-part-2-of-5.aspx +// https://www.vanstechelman.eu/windows-group-policy-encyclopedia/fbb6a5344049e798501f7b5a273784e6/specify-settings-for-optional-component-installation-and-component +// http://windowsitpro.com/article/windowsserver2012/set-central-wim-file-145040 +// http://windowsitpro.com/article/windowsserver2012/add-net-framework-35-vhd-145039 +// http://www.howtogeek.com/116184/how-to-see-which-group-policies-are-applied-to-your-pc-and-user-account/ +// http://technet.microsoft.com/en-us/library/dn482065.aspx +// http://msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx +// http://msdn.microsoft.com/en-us/library/windows/desktop/hh848079(v=vs.85).aspx +// http://blogs.technet.com/b/joscon/archive/2013/03/29/features-on-demand-part-2.aspx + + +// netsh winhttp set proxy proxyservername:portnumber + + +// Set reg to allow WU to be contacted directly +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later (6067).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later (6067).bes new file mode 100644 index 000000000..231181644 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later (6067).bes @@ -0,0 +1,61 @@ + + + + + Configuration: Allow Windows Update to be used for Installing Features - Windows 8 or later + Needs tested.

+

 

]]>
+ windows of operating system + = "6.2"]]> + not exists values "RepairContentServerSource" whose(it as string = "2") of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing" of (x64 registries;x32 registries) + Configuration + Internal + jgstew + 2015-01-13 + + x-fixlet-modification-time + Tue, 12 May 2015 20:04:00 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx +// http://support.microsoft.com/kb/900935 +// http://technet.microsoft.com/en-us/library/hh825020.aspx +// http://community.spiceworks.com/how_to/show/30581-install-net-3-5-on-windows-8 +// http://blogs.technet.com/b/yungchou/archive/2013/12/19/windows-server-2012-r2-installation-options-and-features-on-demand-part-2-of-5.aspx +// https://www.vanstechelman.eu/windows-group-policy-encyclopedia/fbb6a5344049e798501f7b5a273784e6/specify-settings-for-optional-component-installation-and-component +// http://windowsitpro.com/article/windowsserver2012/set-central-wim-file-145040 +// http://windowsitpro.com/article/windowsserver2012/add-net-framework-35-vhd-145039 +// http://www.howtogeek.com/116184/how-to-see-which-group-policies-are-applied-to-your-pc-and-user-account/ +// http://technet.microsoft.com/en-us/library/dn482065.aspx +// http://msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx +// http://msdn.microsoft.com/en-us/library/windows/desktop/hh848079(v=vs.85).aspx +// http://blogs.technet.com/b/joscon/archive/2013/03/29/features-on-demand-part-2.aspx + + +// netsh winhttp set proxy proxyservername:portnumber + + +// Set reg to allow WU to be contacted directly +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (3864).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (3864).bes new file mode 100644 index 000000000..26bede1db --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (3864).bes @@ -0,0 +1,47 @@ + + + + + Configuration: Disable serial port ForceFifoEnable - Windows + This task will set the ForceFifoEnable registry setting to 0

+

 

+

References:

+

http://technet.microsoft.com/en-us/library/cc962417.aspx

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists values whose(name of it = "ForceFifoEnable" AND it as string as integer = 0) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial" of native registry + Internal + jgstew + 2014-09-29 + + x-fixlet-modification-time + Mon, 29 Sep 2014 21:51:43 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://technet.microsoft.com/en-us/library/cc962417.aspx +regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial]" "ForceFifoEnable"=dword:0 + +// the setting may not take effect until the system has been restarted +action requires restart + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (6044).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (6044).bes new file mode 100644 index 000000000..282df2f02 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (6044).bes @@ -0,0 +1,47 @@ + + + + + Configuration: Disable serial port ForceFifoEnable - Windows + This task will set the ForceFifoEnable registry setting to 0

+

 

+

References:

+

http://technet.microsoft.com/en-us/library/cc962417.aspx

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists values whose(name of it = "ForceFifoEnable" AND it as string as integer = 0) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial" of native registry + Internal + jgstew + 2014-09-29 + + x-fixlet-modification-time + Mon, 29 Sep 2014 21:51:43 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://technet.microsoft.com/en-us/library/cc962417.aspx +regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial]" "ForceFifoEnable"=dword:0 + +// the setting may not take effect until the system has been restarted +action requires restart + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable Kerberos Logging - Windows (3782).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable Kerberos Logging - Windows (3782).bes new file mode 100644 index 000000000..6ce3c4fd1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable Kerberos Logging - Windows (3782).bes @@ -0,0 +1,38 @@ + + + + + Configuration: Enable Kerberos Logging - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters" whose(exists value "LogLevel" whose(it as integer = 1) of it) of native registry + Internal + jgstew + 2014-05-14 + + x-fixlet-modification-time + Wed, 14 May 2014 15:12:11 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters]" "LogLevel"=dword:1 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable NTFS Last Access Update - Windows (6041).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable NTFS Last Access Update - Windows (6041).bes new file mode 100644 index 000000000..f0c183afd --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable NTFS Last Access Update - Windows (6041).bes @@ -0,0 +1,42 @@ + + + + + Configuration: Enable NTFS Last Access Update - Windows + Enable NTFS Last Access Update by setting NtfsDisableLastAccessUpdate to 0.

]]>
+ windows of operating system + exists value "NtfsDisableLastAccessUpdate" whose (0 != it as integer) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of native registry + = "6.0"]]> + Registry Edit + Windows Registry Wizard + jgs194 + 2011-08-02 + + x-fixlet-source + Windows Registry Wizard + + + x-fixlet-modification-time + Wed, 06 May 2015 19:09:23 +0000 + + BESC + + + Click&nbsp; + here&nbsp; + to edit the registry to enable NTFS Last Access Update. + + regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]" "NtfsDisableLastAccessUpdate"=dword:00000000 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Fix console user column width settings - Windows -TODO_Testing (3865).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Fix console user column width settings - Windows -TODO_Testing (3865).bes new file mode 100644 index 000000000..cb4662837 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Fix console user column width settings - Windows -TODO_Testing (3865).bes @@ -0,0 +1,54 @@ + + + + + Configuration: Fix console user column width settings - Windows -TODO:Testing + This task sets the per user computer comlumns that have a width of 0 (hidden) to 100. + exists regapp "BESConsole.exe" + /* Windows Only */ windows of operating system + = "5.1"]]> + FALSE /* THIS IS UNTESTED! */ + Internal + 2014-09-30 + + x-fixlet-modification-time + Tue, 30 Sep 2014 17:28:55 +0000 + + BESC + + + Click + here + to deploy this action. + + "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_editRegistry.bat.log" + +endif + +continue if{ not exists ( keys whose(exists values "width" whose(it as integer = 0) of it) of keys of keys "Software\BigFix\Enterprise Console\Preferences\bes.win.psu.edu\ComputerListCtrlColumns" of keys of key "HKEY_USERS" of registry ) } +]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows (3928).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows (3928).bes new file mode 100644 index 000000000..e1574aec5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows (3928).bes @@ -0,0 +1,116 @@ + + + + + Configuration: Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + /* DELL Only */ exists values "vendor" whose(it as string as uppercase contains "DELL") of structures "bios_information" of smbios + not exists files whose(name of it starts with "results_Dell_Platform_Tags_" AND name of it as lowercase ends with ".log" AND exists lines whose(it contains "ERROR: Could not locate the BIOS interface to access the tags") of it) of folders "__BESData\__Global\Logs" of parent folder of client + ") of following texts of firsts "Asset Tag ...... " of lines whose(it contains "Asset Tag ...... ") of files "results_Dell_Platform_Tags_RPT.log" of folders "__BESData\__Global\Logs" of parent folder of client );( (it as trimmed string) of string values whose(it as trimmed string != "") of selects "ElementName from DCIM_Chassis" of wmi "root\dcim\sysman" ) )]]> + Software Sharing + Internal + jgstew + 2014-11-24 + + x-fixlet-modification-time + Tue, 25 Nov 2014 21:47:24 +0000 + + BESC + + + Click + here + to deploy this action. + + ] [Command] +// +// View/modify Platform Tags +// +// Usage: +// [File:] Specify a path\filename to echo screen text +// [Command] Specify a command to execute +// +// Commands: +// RPT (or ReadPlatformTags) Display All Tag information +// SAT (or SetAssetTag) Set the Asset tag +// DAT (or DeleteAssetTag) Delete the Asset Tag +// SOT (or SetOwnerTag) Set the Owner Tag +// DOT (or DeleteOwnerTag) Delete the Owner Tag +// +// Note: SAT and SOT must be followed by ':' and the string to be used in the tag field +// If spaces are required in the owner tag, use quotes to surround the data +// +// Return Codes: +// 0xFF = Error Condition - Screen will show error +// 0 = Success + +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows (3927).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows (3927).bes new file mode 100644 index 000000000..823366a41 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows (3927).bes @@ -0,0 +1,110 @@ + + + + + Configuration: Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + /* DELL Only */ exists values "vendor" whose(it as string as uppercase contains "DELL") of structures "bios_information" of smbios + /* Only if supported */ not exists files whose(name of it starts with "results_Dell_Platform_Tags_" AND name of it as lowercase ends with ".log" AND exists lines whose(it contains "ERROR: Could not locate the BIOS interface to access the tags") of it) of folders "__BESData\__Global\Logs" of parent folder of client + " AND it != "") of following texts of firsts "Owner Tag ...... " of lines whose(it contains "Owner Tag ...... ") of files "results_Dell_Platform_Tags_RPT.log" of folders "__BESData\__Global\Logs" of parent folder of client ) )]]> + Software Sharing + Internal + jgstew + 2014-11-24 + + x-fixlet-modification-time + Tue, 25 Nov 2014 21:44:23 +0000 + + BESC + + + Click + here + to deploy this action. + + 2 AND it != "abc123@company.com" ) } +waithidden __Download\PlatformTags{if (x64 of operating system) then "64" else "32"}.exe File:"{ pathname of folder "__BESData\__Global\Logs" of parent folder of client }\results_Dell_Platform_Tags_SOT.log" SOT:{ (parameter "Owner_Tag") } + +// GET PlatformTag report +waithidden __Download\PlatformTags{if (x64 of operating system) then "64" else "32"}.exe File:"{ pathname of folder "__BESData\__Global\Logs" of parent folder of client }\results_Dell_Platform_Tags_RPT.log" RPT + +// restart "DSM SA Data Manager" service (to update WMI with new owner tag) +// http://superuser.com/questions/301765/restart-a-windows-service-from-the-command-line +waithidden net stop "DSM SA Data Manager" && net start "DSM SA Data Manager" +// REQUIRE Restart - seems that WMI does not update until the DSM SA Data Manager service is restarted (or perhaps until it is refreshed) +// action requires restart + +// PlatformTags.exe -- Version 4.006 +// (C) Copyright 1993-2012 Dell Inc. +// +// PlatformTags.exe [File:] [Command] +// +// View/modify Platform Tags +// +// Usage: +// [File:] Specify a path\filename to echo screen text +// [Command] Specify a command to execute +// +// Commands: +// RPT (or ReadPlatformTags) Display All Tag information +// SAT (or SetAssetTag) Set the Asset tag +// DAT (or DeleteAssetTag) Delete the Asset Tag +// SOT (or SetOwnerTag) Set the Owner Tag +// DOT (or DeleteOwnerTag) Delete the Owner Tag +// +// Note: SAT and SOT must be followed by ':' and the string to be used in the tag field +// If spaces are required in the owner tag, use quotes to surround the data +// +// Return Codes: +// 0xFF = Error Condition - Screen will show error +// 0 = Success + +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Suppress Balloon Pop-Ups - Windows (3781).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Suppress Balloon Pop-Ups - Windows (3781).bes new file mode 100644 index 000000000..0ebc725eb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Suppress Balloon Pop-Ups - Windows (3781).bes @@ -0,0 +1,44 @@ + + + + + Configuration: Suppress Balloon Pop-Ups - Windows +  Does this work in HKLM?  How do I test if balloon pop ups are actually suppressed?

+

 

+

References:

+

http://msdn.microsoft.com/en-us/library/ms940877(v=winembedded.5).aspx

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" whose(value "EnableBaloonTips" of it = 0) of native registry + Internal + jgs194 + 2014-05-02 + + x-fixlet-modification-time + Fri, 02 May 2014 17:11:57 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://msdn.microsoft.com/en-us/library/ms940877(v=winembedded.5).aspx + +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]" "EnableBaloonTips"=dword:00000000 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (100).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (100).bes new file mode 100644 index 000000000..62f6a8085 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (100).bes @@ -0,0 +1,44 @@ + + + + + Configure Cascading Admin Tools Menu + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-01 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 23:09:39 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + + + + Click + here + to article describing enabling this on xp. + + http://www.liutilities.com/products/registrybooster/tweaklibrary/tweaks/10226/ + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (85).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (85).bes new file mode 100644 index 000000000..eba910e0c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (85).bes @@ -0,0 +1,44 @@ + + + + + Configure Cascading Admin Tools Menu + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-01 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 23:09:39 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + + + + Click + here + to article describing enabling this on xp. + + http://www.liutilities.com/products/registrybooster/tweaklibrary/tweaks/10226/ + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Computer as _Always On_ (2570).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Computer as _Always On_ (2570).bes new file mode 100644 index 000000000..735c3716b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Computer as _Always On_ (2570).bes @@ -0,0 +1,44 @@ + + + + + Configure Computer as "Always On" + This fixlet will "tag" the targeted endpoints with a client setting to exclude it from PowerManagement Settings. + if exists setting "IsAlwaysOn" of client then value of setting "IsAlwaysOn" of client as boolean != true else true + Power Configuration Flag + danielheth@bigfix.me + <Unspecified> + 2013-08-27 + <Unspecified> + + x-fixlet-modification-time + Tue, 27 Aug 2013 19:50:23 +0000 + + SYST + + + Click + here + to configure&nbsp;as an "Always On" computer. + + setting "IsAlwaysOn"="true" on "{now}" for client + + + + Click + here + to configure&nbsp;NOT to be an "Always On" computer + + setting delete "IsAlwaysOn" on "{now}" + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Disk Cleanup_ Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) (6035).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Disk Cleanup_ Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) (6035).bes new file mode 100644 index 000000000..405cdca40 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Disk Cleanup_ Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) (6035).bes @@ -0,0 +1,59 @@ + + + + + Configure Disk Cleanup: Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) + Removes any Files/Folders from the Recycle Bin, that were Recycled more than 7 days ago.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = "6" as version]]> + (exists folders "$Recycle.Bin" of root folders of drives) + Internal + 2015-04-28 + + x-fixlet-modification-time + Tue, 28 Apr 2015 18:33:07 +0000 + + BESC + + + Click + here + to deploy this action. + + . +// For each deleted file, there's a matching Index file $I. that gets created +// +// We can use the modification time of the $I<*> files to determine how long ago the file was deleted, and then remove both the $I file and the $R file +// +// Deleted folders get a whole folder name for $I and $R, and beneath the $R folder the original filenames are kept. So we can remove whole directories at once +// based on the timestamp of the matching $I file - timestamped to when the folder was deleted + +// The following builds a fully-qualified list of both files & folders to remove +// (item 0 of it & "\" & item 1 of it; item 0 of it & "\" & item 2 of it) of (pathname of parent folder of it, name of it, "$R" & following text of first "$I" of name of it) of (files of it; folders of it) whose (name of it starts with "$I" and (now - modification time of it) / day > 7 ) of folders of folders "$Recycle.Bin" of root folders of drives + + +delete __appendfile + +appendfile {concatenation "%0d%0a" of ("attrib -s -h -r %22" & it & "%22%0d%0adel /q %22" & it & "%22%0d%0ard /s /q %22" & it & "%22") of (item 0 of it & "\" & item 1 of it; item 0 of it & "\" & item 2 of it) of (pathname of parent folder of it, name of it, "$R" & following text of first "$I" of name of it)of (descendants of it; descendant folders of it) whose (name of it starts with "$I" and (now - modification time of it) / day > 7 ) of folders "$Recycle.Bin" of root folders of drives} + +delete "empty_recycle.cmd" +move __appendfile "empty_recycle.cmd" +waithidden "empty_recycle.cmd" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (632).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (632).bes new file mode 100644 index 000000000..e3e3ea89f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (632).bes @@ -0,0 +1,42 @@ + + + + + Configure Execution Policy + This will allow you to configure the Execution Policy of powershell on endpoints.

+

This task allows you to configure a policy for your environment.

]]>
+ name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + Setting + danielheth@bigfix.me + <Unspecified> + 2011-04-21 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:28:40 +0000 + + BESC + + + Click + here + to configure this setting. + + action parameter query "ExecutionPolicy" with description "Please specify the setting you want to configure (Restricted, RemoteSigned, or Unrestricted):" +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" +endif + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (74).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (74).bes new file mode 100644 index 000000000..d64ac987a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (74).bes @@ -0,0 +1,42 @@ + + + + + Configure Execution Policy + This will allow you to configure the Execution Policy of powershell on endpoints.

+

This task allows you to configure a policy for your environment.

]]>
+ name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + Setting + danielheth@bigfix.me + <Unspecified> + 2011-04-21 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:28:40 +0000 + + BESC + + + Click + here + to configure this setting. + + action parameter query "ExecutionPolicy" with description "Please specify the setting you want to configure (Restricted, RemoteSigned, or Unrestricted):" +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" +endif + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Internet Explorer Compatibility List for Currently Logged On User (647).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Internet Explorer Compatibility List for Currently Logged On User (647).bes new file mode 100644 index 000000000..20c904118 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Internet Explorer Compatibility List for Currently Logged On User (647).bes @@ -0,0 +1,55 @@ + + + + + Configure Internet Explorer Compatibility List for Currently Logged On User + This task is an example of how to configure the Internet Explorer's Compatibility List as a policy to all of your endpoints.

+

OOB this task configures both "ibm.com" and "red.com" as my list.  If you want to configure your own list, do the following:

+

1. Using a test box, configure your compatibility list exactly the way you want it to be on your endpoints.
2. Export the following registry key:  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData
3. Copy/Past that reg file into the actionscript of this task.
4. Modify the overall relevance #2 with your list.  It's easy to do if you've gotten this far.

+

Save and launch against your target endpoints.

+

Remember this configures the currently logged in user.  So if you have endpoints with multiple users, this task may run more than once as each user logs in.

]]>
+ name of operating system starts with "Win" + + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2012-10-26 + <Unspecified> + + x-fixlet-modification-time + Sat, 27 Oct 2012 00:46:20 +0000 + + BESC + + + Click + here + to deploy this action. + + +//create .reg file +createfile until END +Windows Registry Editor Version 5.00 +[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData] +"UserFilter"=hex:41,1f,00,00,53,08,ad,ba,02,00,00,00,4c,00,00,00,01,00,00,00,\ + 02,00,00,00,0c,00,00,00,a8,23,f2,69,79,b0,cd,01,01,00,00,00,07,00,69,00,62,\ + 00,6d,00,2e,00,63,00,6f,00,6d,00,0c,00,00,00,51,92,b3,23,db,b3,cd,01,01,00,\ + 00,00,07,00,72,00,65,00,64,00,2e,00,63,00,6f,00,6d,00 +END +delete temp.reg +move __createfile temp.reg +// run .reg file +wait regedit -s temp.reg + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Registered Organization and Owner (86).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Registered Organization and Owner (86).bes new file mode 100644 index 000000000..4001734ba --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Registered Organization and Owner (86).bes @@ -0,0 +1,80 @@ + + + + + Configure Registered Organization and Owner + This task will configure the RegisteredOrganization and RegisteredOwner string values within the registry. 

+

For Windows:  These keys are located in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

+

For Non-Windows:  These will be stored within Client Settings.

]]>
+ true + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-05-24 + <Unspecified> + + x-fixlet-modification-time + Tue, 04 Sep 2012 14:21:38 +0000 + + BES + + + Click + here + to configure values. + + action parameter query "Organization" with description "Please enter the name of your Organization (Ex: Moran IT):" and with default value "" +action parameter query "Owner" with description "Please enter the Owner's name (Ex: Daniel):" and with default value "" +if {name of operating system starts with "Win"} + if {x64 of operating system} + if {parameter "Organization" != ""} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOrganization"="{parameter "Organization"}" + endif + if {parameter "Owner" != ""} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOwner"="{parameter "Owner"}" + endif + endif + if {parameter "Organization" != ""} + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOrganization"="{parameter "Organization"}" + endif + if {parameter "Owner" != ""} + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOwner"="{parameter "Owner"}" + endif + if {parameter "Organization" != ""} + continue if {(value "RegisteredOrganization" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) = (parameter "Organization")} + endif + if {parameter "Owner" != ""} + continue if {(value "RegisteredOwner" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) = (parameter "Owner")} + endif +else + if {parameter "Organization" != ""} + setting "Registered Organization"="{parameter "Organization"}" on "{parameter "action issue date" of action}" for client + else + setting delete "Registered Organization" on "{now}" for client + endif + if {parameter "Owner" != ""} + setting "Registered Owner"="{parameter "Owner"}" on "{parameter "action issue date" of action}" for client + else + setting delete "Registered Owner" on "{now}" for client + endif +endif + + + + Click + here + to deploy this action. + + http://danielheth.com/2012/05/30/how-to-tattoo-your-bigfix-endpoints/ + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000 (3938).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000 (3938).bes new file mode 100644 index 000000000..1c52fb754 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000 (3938).bes @@ -0,0 +1,38 @@ + + + + + Configure TCP: MaxUserPort to 60000 + Configures TCP MaxUserPort to 60000 to allow for more user-mode application ports in the pool. + windows of operating system + not exists (value "MaxUserPort" of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" of native registry) whose (it as integer = 60000) + Internal + 2013-08-29 + + x-fixlet-modification-time + Mon, 09 Sep 2013 19:52:33 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +action uses wow64 redirection false +dos reg.exe add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "MaxUserPort" /t REG_DWORD /d 60000 /F +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000.bes b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000.bes new file mode 100644 index 000000000..1c52fb754 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000.bes @@ -0,0 +1,38 @@ + + + + + Configure TCP: MaxUserPort to 60000 + Configures TCP MaxUserPort to 60000 to allow for more user-mode application ports in the pool. + windows of operating system + not exists (value "MaxUserPort" of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" of native registry) whose (it as integer = 60000) + Internal + 2013-08-29 + + x-fixlet-modification-time + Mon, 09 Sep 2013 19:52:33 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +action uses wow64 redirection false +dos reg.exe add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "MaxUserPort" /t REG_DWORD /d 60000 /F +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ TcpTimedWaitDelay to 30 seconds (3937).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ TcpTimedWaitDelay to 30 seconds (3937).bes new file mode 100644 index 000000000..1a5e68402 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ TcpTimedWaitDelay to 30 seconds (3937).bes @@ -0,0 +1,38 @@ + + + + + Configure TCP: TcpTimedWaitDelay to 30 seconds + + windows of operating system + not exists (value "TcpTimedWaitDelay" of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" of native registry) whose (it as integer = 30) + Internal + 2013-08-29 + + x-fixlet-modification-time + Mon, 09 Sep 2013 19:52:33 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +action uses wow64 redirection false +dos reg.exe add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "TcpTimedWaitDelay" /t REG_DWORD /d 30 /F +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop (3974).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop (3974).bes new file mode 100644 index 000000000..e49c10450 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop (3974).bes @@ -0,0 +1,42 @@ + + + + + Configure Windows Firewall: Allow Remote Desktop + Enables the "Remote Desktop" firewall group.  Requires at least Windows Vista and an active Firewall to be relevant.

+

NOTE: This is Relevant if the current state of "Remote Desktop" is disabled; but the fixlet only changes the local configuration.  If the firewall rule set is controlled through Group Policy, this fixlet does not override.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = "6" as version]]> + exists firewall whose (firewall enabled of current profile of local policy of firewall) + not rule group currently enabled "Remote Desktop" of firewall + Internal + 2014-04-08 + + x-fixlet-modification-time + Wed, 04 Feb 2015 21:10:20 +0000 + + BESC + + + Click + here + to deploy this action. + + +action uses wow64 redirection false + +waithidden netsh.exe advfirewall firewall set rule group="remote desktop" new enable=Yes + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop.bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop.bes new file mode 100644 index 000000000..e49c10450 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop.bes @@ -0,0 +1,42 @@ + + + + + Configure Windows Firewall: Allow Remote Desktop + Enables the "Remote Desktop" firewall group.  Requires at least Windows Vista and an active Firewall to be relevant.

+

NOTE: This is Relevant if the current state of "Remote Desktop" is disabled; but the fixlet only changes the local configuration.  If the firewall rule set is controlled through Group Policy, this fixlet does not override.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = "6" as version]]> + exists firewall whose (firewall enabled of current profile of local policy of firewall) + not rule group currently enabled "Remote Desktop" of firewall + Internal + 2014-04-08 + + x-fixlet-modification-time + Wed, 04 Feb 2015 21:10:20 +0000 + + BESC + + + Click + here + to deploy this action. + + +action uses wow64 redirection false + +waithidden netsh.exe advfirewall firewall set rule group="remote desktop" new enable=Yes + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Create Desktop Shortcut (PowerShell) (25589).bes b/Sites/Windows Management/Fixlets/Fixlets/Create Desktop Shortcut (PowerShell) (25589).bes new file mode 100644 index 000000000..805d67bc5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Create Desktop Shortcut (PowerShell) (25589).bes @@ -0,0 +1,73 @@ + + + + + Create Desktop Shortcut (PowerShell) + Deploys a shortcut to the currently logged in user's desktop.

+

Prompts for:

+
    +
  • All Users or Current User +
  • The name of the shorcut +
  • The URL (or file path) +
  • The icon path and code +
      +
    • Many apps and dll files have multiple icons attached to them  For example, the Shell32 Icon (http://help4windows.com/windows_8_shell32_dll.shtml) has a couple dozen (17 or 13 are excellent choices) +
    • Internet Explorer's default icon is set as the default option.  Change it to any program.  You can go to a desktop shortcut and click the "change icon" button to view other icon options and help you pick the one that works for you.
+

 

]]>
+ true + Internal + 2018-11-27 + + x-fixlet-modification-time + Fri, 30 Nov 2018 19:58:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Create Desktop shortcut in User Profile if missing (720).bes b/Sites/Windows Management/Fixlets/Fixlets/Create Desktop shortcut in User Profile if missing (720).bes new file mode 100644 index 000000000..5db95fb6f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Create Desktop shortcut in User Profile if missing (720).bes @@ -0,0 +1,51 @@ + + + + + Create Desktop shortcut in User Profile if missing + + (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it)) of operating system + exists current user AND (1 = number of logged on users) + + + Internal + 2011-11-08 + + x-fixlet-modification-time + Wed, 09 Nov 2011 18:57:35 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Create LS alias for DIR command - Windows (24046).bes b/Sites/Windows Management/Fixlets/Fixlets/Create LS alias for DIR command - Windows (24046).bes new file mode 100644 index 000000000..c33e47af1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Create LS alias for DIR command - Windows (24046).bes @@ -0,0 +1,50 @@ + + + + + Create LS alias for DIR command - Windows + + windows of operating system + not exists lines whose(it contains "@dir %25*") of files "ls.bat" of windows folders + Internal + 2017-04-18 + + x-fixlet-modification-time + Tue, 18 Apr 2017 20:48:17 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://stackoverflow.com/questions/9362692/how-to-create-ls-in-windows-command-prompt +// http://stackoverflow.com/questions/20530996/aliases-in-windows-command-prompt + +delete __createfile + +createfile until END_OF_FILE +@dir %* +@echo off + +REM added with bigfix +REM this is to allow `LS` to be used as an alias for `DIR` +END_OF_FILE + +delete {pathname of windows folders}\ls.bat +copy __createfile {pathname of windows folders}\ls.bat + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Create _Open with Notepad_ Context Menu item - Windows (25531).bes b/Sites/Windows Management/Fixlets/Fixlets/Create _Open with Notepad_ Context Menu item - Windows (25531).bes new file mode 100644 index 000000000..e5748333b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Create _Open with Notepad_ Context Menu item - Windows (25531).bes @@ -0,0 +1,39 @@ + + + + + Create "Open with Notepad" Context Menu item - Windows + + windows of operating system + not exists values "" whose(it as string = "notepad %251") of keys "HKEY_CLASSES_ROOT\*\shell\Open with Notepad\command" of registry + Internal + jgstew + 2018-07-26 + + x-fixlet-modification-time + Thu, 26 Jul 2018 19:54:39 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_CLASSES_ROOT\*\shell\Open with Notepad\command]" ""="notepad %1" + +// https://www.howtogeek.com/107965/how-to-add-any-application-shortcut-to-windows-explorers-context-menu/ + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Custom Patch_Uninstall KB3004394 to clear relevance for KB3024777 (3979).bes b/Sites/Windows Management/Fixlets/Fixlets/Custom Patch_Uninstall KB3004394 to clear relevance for KB3024777 (3979).bes new file mode 100644 index 000000000..f08bbe941 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Custom Patch_Uninstall KB3004394 to clear relevance for KB3024777 (3979).bes @@ -0,0 +1,49 @@ + + + + + Custom Patch:Uninstall KB3004394 to clear relevance for KB3024777 + Microsoft's patch KB3024777 is to remove the broken patch KB3004394.

+

But 3024777 itself fails to install in many instances. 

+

This Fixlet is to manually uninstall KB3004394 so 3024777 stops appearing Relevant.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + version of operating system = "6.1" as version + /* registry says kb3004394 is installed */ exists keys whose ((following text of last "_" of preceding text of first "~" of it = "kb3004394") of (name of it as lowercase) AND (exists value "CurrentState" whose ((it = 96 or it = 112 or it = 6 or it = 7) of (it as integer)) of it)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry + /* cab files for kb3004394 are present */ exists (folders (following text of first "\\?\" of preceding text of last "\inst" of it)) whose (exists files whose (name of it as lowercase ends with ".cab") of it) of (values "InstallLocation" of keys whose ((following text of last "_" of preceding text of first "~" of it = "kb3004394") of (name of it as lowercase) AND (exists value "CurrentState" whose ((it = 96 or it = 112 or it = 6 or it = 7) of (it as integer)) of it)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry as string) + Internal + 2015-02-12 + + x-fixlet-modification-time + Thu, 12 Feb 2015 19:20:01 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Custom Task - Add account to local administrators (3656).bes b/Sites/Windows Management/Fixlets/Fixlets/Custom Task - Add account to local administrators (3656).bes new file mode 100644 index 000000000..2ac6cebc8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Custom Task - Add account to local administrators (3656).bes @@ -0,0 +1,42 @@ + + + + + Custom Task - Add account to local administrators + Add Account to Local Admin

+

This action will prompt you for the domain and username you would like to add to the local administrators group. This prompt occurs before you select the computers you will target with the action.

+

Please enter this in the following format without quotes: DOMAIN\admin_username

+

Example: TESTDOMAIN\admin_abc123

+

Note: Check your spelling!  Take care to apply to the computer you mean to!

+

This task should report completed once the username can be found in the administrators group.

]]>
+ (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2" OR name of it = "WinXPe" OR name of it = "Win8" OR (name of it = "Win8" AND x64 of it)) of operating system AND TRUE + Internal + swi101 + 2013-09-06 + + x-fixlet-modification-time + Wed, 11 Sep 2013 13:02:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action parameter query "DomainAndUsername" with description "Please specify the DOMAIN\admin_username to add to Administrators" + +waithidden "C:\Windows\System32\net.exe" localgroup administrators {parameter "DomainAndUsername" of action} /add + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) (3914).bes b/Sites/Windows Management/Fixlets/Fixlets/CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) (3914).bes new file mode 100644 index 000000000..8e2cc54fc --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) (3914).bes @@ -0,0 +1,73 @@ + + + + + CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) + See https://support.microsoft.com/kb/3009008

+

This Fixlet configures ActiveSetup to disable SSLv3 in Internet Explorer, to mitigate the "POODLE" vulnerability.  As an ActiveSetup component, this runs one time for each user at their next logon time. 

+

The ActiveSetup script edits HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\SecureProtocols.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + windows of operating system + (language of version block of file "kernel32.dll" of system folder contains "English") OR (exists key "HKLM\System\CurrentControlSet\Control\Nls\MUILanguages" whose (exists value of it) of registry) + not ia64 of operating system + (name of it = "Win2003" OR name of it = "WinVista" OR name of it = "Win2008" OR name of it = "Win7" OR name of it = "Win2008R2" OR name of it = "Win8" OR name of it = "Win2012" OR name of it = "Win8.1" OR name of it = "Win2012R2") of operating system + + Internal + 2014-11-03 + + x-fixlet-modification-time + Mon, 03 Nov 2014 19:10:35 +0000 + + BESC + + + Click + here + to deploy this action. + + +REM Update this block as needed +set KEYNAME=KB3009008_POODLE +set TITLE=Installing KB3009008_POODLE +set VERSION=1,0,0,0 +set VALUE=%COMSPEC% /c "{root folder of drive of system folder}\admtools\ActiveSetup\KB3009008_POODLE\ActiveSetup.cmd" +REM end of per-package settings + + +set ACTIVESETUP=HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components + +REG ADD "%ACTIVESETUP%\%KEYNAME%" /f +REG ADD "%ACTIVESETUP%\%KEYNAME%" /ve /t REG_SZ /d "%TITLE%" /f +REG ADD "%ACTIVESETUP%\%KEYNAME%" /v IsInstalled /t REG_DWORD /d 1 /f +REG ADD "%ACTIVESETUP%\%KEYNAME%" /v Version /t REG_SZ /d "%VERSION%" /f +REG ADD "%ACTIVESETUP%\%KEYNAME%" /v StubPath /t REG_EXPAND_SZ /d "%VALUE%" /f + + +delete "ActiveSetup-Registry.cmd" +move __createfile "ActiveSetup-Registry.cmd" +waithidden cmd /c ActiveSetup-Registry.cmd +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/DISM Inventory (1420).bes b/Sites/Windows Management/Fixlets/Fixlets/DISM Inventory (1420).bes new file mode 100644 index 000000000..a24a9f1fa --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/DISM Inventory (1420).bes @@ -0,0 +1,146 @@ + + + + + DISM Inventory + Calls the DISM utility present on Windows computers.

+

This will generate a DISM.txt file in the client path.  This file will contain the Enabled/Disabled state of all the available features.

+

This will also enable many of the feature on/off tasks that are included in this custom site.

+

This task also generates a diffDISM.txt file in the client path.  This file lists a difference between the features available and the "missing" fixlets in the site.   IE:  We can't cover every single feature the instant it comes out.  This results file is pulled into an analysis so new fixlets can be created (manually) for features we don't already have fixlets for.

+

Source: http://bigfix.me/features/

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + exists file "dism.exe" of system folder + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2012-10-02 + <Unspecified> + + bigfixme-added-time + Wed, 17 Oct 2012 09:31:55 GMT + + + bigfixme-modification-time + Wed, 26 Dec 2012 14:41:12 GMT + + + bigfixme-keywords + DISM features fixlets Inventory Calls + + + x-fixlet-modification-time + Mon, 01 Apr 2013 21:01:53 +0000 + + SYST + + + Click + here + to run a DISM inventory. + + "{pathname of parent folder of client}\DISM.txt" +else + appendfile "{pathname of native system folder}\dism.exe" /online /get-features /format:table > "{pathname of parent folder of client}\DISM.txt" +endif +delete __Download\dism.bat +move __appendfile __Download\dism.bat +action uses wow64 redirection {not x64 of operating system} +waithidden __Download\dism.bat +action uses wow64 redirection {x64 of operating system} +//NOW LOOP THROUGH THE OUTPUT COMPARING TO EXISTING FIXLETS. OUTPUT A LIST OF FEATURES WE DONT HAVE FIXLETS FOR WHICH AN ANALYSIS WILL PULL IN. +delete __appendfile +appendfile Set objFSO = CreateObject("Scripting.FileSystemObject") +appendfile subFolderName = Replace("CustomSite_{name of current site}"," ","_") +appendfile objStartFolder = "{pathname of parent folder of client folder of current site}\" & subFolderName & "\" +appendfile Set objFolder = objFSO.GetFolder(objStartFolder) +appendfile Set colFiles = objFolder.Files +appendfile Set dismFile = objFSO.OpenTextFile("{pathname of parent folder of client}\DISM.txt", 1) +appendfile Set objResults = objFSO.CreateTextFile("{pathname of parent folder of client}\diffDISM.txt", true) +appendfile headerLine1 = false +appendfile headerLine2 = false +appendfile Do Until dismFile.AtEndOfStream +appendfile strAvailableFeature = dismFile.ReadLine +appendfile if NOT(headerLine1) AND NOT(headerLine2) then +appendfile if (InStr(strAvailableFeature, "----------")) then +appendfile headerLine1 = true +appendfile end if +appendfile elseif (headerLine1) AND NOT(headerLine2) then +appendfile if (InStr(strAvailableFeature, "----------")) then +appendfile headerLine2 = true +appendfile end if +appendfile else +appendfile if (InStr(strAvailableFeature, "|")) then +appendfile s = Split(strAvailableFeature) +appendfile strFeatureName = Trim(s(0)) +appendfile foundIt = false +appendfile For Each objFile in colFiles +appendfile if UCase(objFSO.GetExtensionName(objFile.name)) = "FXF" then +appendfile Set fixletFile = objFSO.OpenTextFile(objStartFolder & objFile.Name, 1) +appendfile Set objRegEx = CreateObject("VBScript.RegExp") +appendfile objRegEx.Pattern = strFeatureName +appendfile Do Until fixletFile.AtEndOfStream +appendfile strSearchString = fixletFile.ReadLine +appendfile Set colMatches = objRegEx.Execute(strSearchString) +appendfile If colMatches.Count > 0 Then +appendfile For Each strMatch in colMatches +appendfile FeatureString = Replace(strSearchString,objRegEx.Pattern,"") +appendfile foundIt = true +appendfile exit do +appendfile Next +appendfile End If +appendfile Loop +appendfile fixletFile.Close +appendfile end if +appendfile Next +appendfile if NOT (foundIt) then +appendfile objResults.WriteLine strFeatureName +appendfile end if +appendfile end if +appendfile end if +appendfile Loop +appendfile dismFile.Close +delete diffDISM.vbs +move __appendfile diffDISM.vbs +waithidden cmd /c cscript diffDISM.vbs +]]> + not exists file "DISM.txt" of parent folder of client + + + + Click + here + to learn more about the DISM tool. + + http://technet.microsoft.com/en-us/library/dd744566(v=ws.10).aspx + + + + Click + here + to learn more and download the latest versions of Feature Installer tasks. + + http://bigfix.me/winfeatures/ + + + + Click + here + to review this task in the bigfix.me Content Database. + + http://bigfix.me/cdb/fixlet/68 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Delete Identity Finder temp file if one exists over 2GB in size (1415).bes b/Sites/Windows Management/Fixlets/Fixlets/Delete Identity Finder temp file if one exists over 2GB in size (1415).bes new file mode 100644 index 000000000..91daf7159 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Delete Identity Finder temp file if one exists over 2GB in size (1415).bes @@ -0,0 +1,38 @@ + + + + + Delete Identity Finder temp file if one exists over 2GB in size + WARNING: This fixlet should not be used without first investigating the cause, as it should not ever be relevant unless there is a problem. This fixlet was created to deal with a specific issue where Identity Finder left behind temp files over 10GB in size on many machines and this was used to clean it up. This is not normal or typical behavior, so any machine reporting as relevant should be investigated. If for some reason there is more than 1 file over 2GB in the user's IDF temp folder then it will report back as failed even though it deleted one of them since there will still be another. It will take multiple runs to clear it up if that is the case.

+

This fixlet will delete an Identity Finder (IDF) temp file if there is one that is over 2GB in size. This is to address a specific issue that was experienced with Identity Finder that most likely no longer applies. This will not be relevant on most computers and only be relevant if there is at least one IDF temp file over 2GB in size located in the user's temp folder for IDF. This fixlet does not clear out all Identity Finder temp files.

]]>
+ windows of operating system + exists folder "users" of drive of system folder + + exists folders "AppData\Local\Temp\Identity Finder\Identity Finder" of folders of folders of folder "users" of drive of system folder + not exists running application whose(name of it = "IdentityFinder.exe") + Internal + 2012-10-08 + + x-fixlet-modification-time + Mon, 11 Mar 2013 20:55:36 +0000 + + BESC + + + Click + here + to deploy this action. + + delete "{pathname of descendant whose(size of it = maximum of sizes of descendants of folders "AppData\Local\Temp\Identity Finder\Identity Finder" of folders whose (exists folder "AppData\Local\Temp\Identity Finder\Identity Finder" of it) of folder "users" of drive of system folder) of folders "AppData\Local\Temp\Identity Finder\Identity Finder" of folders whose (exists folder "AppData\Local\Temp\Identity Finder\Identity Finder" of it) of folder "users" of drive of system folder}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Delete NAME_OF_NETWORK WiFi Profile - Windows (6171).bes b/Sites/Windows Management/Fixlets/Fixlets/Delete NAME_OF_NETWORK WiFi Profile - Windows (6171).bes new file mode 100644 index 000000000..264876e2d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Delete NAME_OF_NETWORK WiFi Profile - Windows (6171).bes @@ -0,0 +1,40 @@ + + + + + Delete NAME_OF_NETWORK WiFi Profile - Windows + + windows of operating system + = "5.1"]]> + exists node values whose(it as trimmed string = "NAME_OF_NETWORK") of (selects "/WLANProfile/name/text()" of it; selects "/WLANProfile/SSIDConfig/SSID/name/text()" of it) of xml documents of files whose(name of it as lowercase ends with ".xml") of folders of folders "C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces" + Internal + 2015-08-21 + + x-fixlet-modification-time + Sat, 22 Aug 2015 00:21:05 +0000 + + BESC + + + Click + here + to deploy this action. + + +wait netsh wlan delete profile name="NAME_OF_NETWORK" + +notify client ForceRefresh + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Delete large Dell Driver folder from systems with low free space (721).bes b/Sites/Windows Management/Fixlets/Fixlets/Delete large Dell Driver folder from systems with low free space (721).bes new file mode 100644 index 000000000..150c8c361 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Delete large Dell Driver folder from systems with low free space (721).bes @@ -0,0 +1,39 @@ + + + + + Delete large Dell Driver folder from systems with low free space + + windows of operating system + exists (folder "dell" of drive of system folder) + + ((free space of drive of system folder)/(1024 * 1024))]]> + Internal + 2012-10-01 + + x-fixlet-modification-time + Tue, 02 Oct 2012 17:35:24 +0000 + + BESC + + + Click + here + to deploy this action. + + /s /q +waithidden cmd.exe /C rmdir {pathname of (folder "dell" of drive of system folder)} /s /q]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Delete start menu shortcuts containing _uninstall_ (3657).bes b/Sites/Windows Management/Fixlets/Fixlets/Delete start menu shortcuts containing _uninstall_ (3657).bes new file mode 100644 index 000000000..8bc05354d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Delete start menu shortcuts containing _uninstall_ (3657).bes @@ -0,0 +1,40 @@ + + + + + Delete start menu shortcuts containing "uninstall" + This task will delete any start menu shortcuts containing "uninstall"

+

Users without Admin rights cannot delete these shortcuts, and they cannot actually uninstall most programs either. Programs can be uninstalled through the "Add/Remove Programs" UI instead of using these shortcuts.

+

To see what this task will delete, see the property "All Users Start Menu "Uninstall" shortcuts" in the analysis "All Users - Files & Shortcuts - Desktop & Start Menu - Windows"

+

 

]]>
+ windows of operating system + exists descendants whose(name of it as lowercase ends with ".lnk" AND name of it as lowercase contains "uninstall") of folder ((it as string) of value "Common Start Menu" of key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of native registry) + Internal + jgs194 + 2013-11-27 + + x-fixlet-modification-time + Wed, 27 Nov 2013 16:38:16 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Deploy - Windows Management Framework - 4.0 - Windows (23565).bes b/Sites/Windows Management/Fixlets/Fixlets/Deploy - Windows Management Framework - 4.0 - Windows (23565).bes new file mode 100644 index 000000000..7748c39ae --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Deploy - Windows Management Framework - 4.0 - Windows (23565).bes @@ -0,0 +1,46 @@ + + + + + Deploy - Windows Management Framework - 4.0 - Windows + Deploys Windows Management Framework 4.0.

+

Requires .Net 4.5

]]>
+ windows of operating system + /* Must be Windows 7 SP1 or or Windows Server 2008 R2 SP1 */ (version of it equals "6.1" as version and service pack major version of it = 1) of operating system + = "4.5" as version) of key "Microsoft\Net Framework Setup\NDP\v4" of key "HKLM\Software" of x64 registry]]> + = "4.0" as version) of keys "HKLM\Software\Microsoft\Powershell\3\PowerShellEngine" of native registry]]> + Software Distribution + Window Management Framework + <Unspecified> + 2015-01-06 + <Unspecified> + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click&nbsp; + here + &nbsp;to deploy this action + + if {x64 of operating system} + prefetch KB2819745.msu sha1:5d40d059b9ea7f1d596f608a07cca49e4537dc15 size:19304283 https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x64-MultiPkg.msu sha256:fbc0889528656a3bc096f27434249f94cba12e413142aa38946fcdd8edf6f4c5 +else + prefetch KB2819745.msu sha1:378BD9F96B8C898B86BB0C0B92F2C9C000748C5E size:14736102 https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x86-MultiPkg.msu sha256:D5DD77C5CD6370984257C81269CE40F83466D20339E44BB6DE40C22D96641B98 +endif + +wait __Download\KB2819745.msu /quiet /norestart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.5 (2531).bes b/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.5 (2531).bes new file mode 100644 index 000000000..45cecb295 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.5 (2531).bes @@ -0,0 +1,47 @@ + + + + + Deploy Microsoft Office 2011 Update 14.3.5 +
- Requires Microsoft Office 2011 Service Pack 1

This task is applicable on Mac OS X 10.6, Mac OS X 10.7 and Mac OS X 10.8 ]]>
+ mac of operating system + = "10.6" AND system version < "10.9")]]> + exists folder "Microsoft Office 2011" of applications folder + = "14.1.0") OR exists application "Microsoft Excel.app" whose (version of it < "14.3.5" AND version of it >= "14.1.0") OR exists application "Microsoft PowerPoint.app" whose (version of it < "14.3.5" AND version of it >= "14.1.0") OR exists application "Microsoft Outlook.app" whose (version of it < "14.3.5" AND version of it >= "14.1.0")]]> + Software Deployment + Mac Software Deployment Wizard + mah60 + 2026-09-17 + + x-fixlet-source + Mac Software Deployment Wizard + + + x-fixlet-modification-time + Mon, 08 Jul 2013 13:31:37 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch Office2011-1435UpdateEN.dmg sha1:da4767931619e8ec3725c81672a067371c7b92ba size:118529423 http://download.microsoft.com/download/E/1/A/E1A3BFED-FED3-498E-8D02-EF4796F1F8E7/Office2011-1435UpdateEN.dmg +wait /usr/bin/hdiutil attach -quiet -nobrowse -mountpoint "/tmp/OFFICE20111435" "{posix path of file "Office2011-1435UpdateEN.dmg" of folder "__Download" of client folder of current site}" +wait /bin/sh -c "/usr/sbin/installer -pkg /tmp/OFFICE20111435/Office\ 2011\ 14.3.5\ Update.pkg -target /" +wait /usr/bin/hdiutil detach -force "/tmp/OFFICE20111435" + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.6 (2539).bes b/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.6 (2539).bes new file mode 100644 index 000000000..13328cad7 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.6 (2539).bes @@ -0,0 +1,47 @@ + + + + + Deploy Microsoft Office 2011 Update 14.3.6 +
- Requires Microsoft Office 2011 Service Pack 1

This task is applicable on Mac OS X 10.6, Mac OS X 10.7 and Mac OS X 10.8 ]]>
+ mac of operating system + = "10.6" AND system version < "10.9")]]> + exists folder "Microsoft Office 2011" of applications folder + = "14.1.0") OR exists application "Microsoft Excel.app" whose (version of it < "14.3.6" AND version of it >= "14.1.0") OR exists application "Microsoft PowerPoint.app" whose (version of it < "14.3.6" AND version of it >= "14.1.0") OR exists application "Microsoft Outlook.app" whose (version of it < "14.3.6" AND version of it >= "14.1.0")]]> + Software Deployment + Mac Software Deployment Wizard + mah60 + 2026-09-17 + + x-fixlet-source + Mac Software Deployment Wizard + + + x-fixlet-modification-time + Fri, 19 Jul 2013 15:02:03 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch Office2011-1436Update_EN-US.dmg sha1:e55b56088a7ffde3a544b497926a4b4e4874a505 size:118568321 http://download.microsoft.com/download/F/A/2/FA2FBEE4-A7F9-4E59-8474-C580E2CBE412/Office2011-1436Update_EN-US.dmg +wait /usr/bin/hdiutil attach -quiet -nobrowse -mountpoint "/tmp/OFFICE20111436" "{posix path of file "Office2011-1436Update_EN-US.dmg" of folder "__Download" of client folder of current site}" +wait /bin/sh -c "/usr/sbin/installer -pkg /tmp/OFFICE20111436/Office\ 2011\ 14.3.6\ Update.pkg -target /" +wait /usr/bin/hdiutil detach -force "/tmp/OFFICE20111436" + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Designate ALWAYS On Profile (2611).bes b/Sites/Windows Management/Fixlets/Fixlets/Designate ALWAYS On Profile (2611).bes new file mode 100644 index 000000000..2fbeb19cf --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Designate ALWAYS On Profile (2611).bes @@ -0,0 +1,74 @@ + + + + + Designate ALWAYS On Profile + + + + +

+

This Task will make each of the targeted computers a "ALWAYS On Profile" computer.

+

Configure a computer's power profile to never enter the system Standby, Hibernate, or hard-disk power management modes actions that would turn the computer off.

]]>
+ if exists property "in proxy agent context" then ( not in proxy agent context ) else true + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else true) AND (name of operating system starts with "Win" OR name of operating system = "Mac OS X") + = "7.2" AND ((if (name of it= "Mac OS X") then (release of it >= "10.4" as version AND release of it < "10.9" as version) else true) of operating system)]]> + Power Options + danielheth@bigfix.me + <Unspecified> + 2013-10-03 + <Unspecified> + + x-fixlet-modification-time + Fri, 04 Oct 2013 02:16:45 +0000 + + BESC + + + Click + here + to apply an ALWAYS On Power Option. + + __list + + if{exists file "__list" whose(exists line whose(it contains "(ALWAYS On Profile)" ) of it)} + waithidden cmd.exe /C powercfg.exe -setactive {(if(exists lines whose(it contains "(ALWAYS On Profile)") of it ) then(preceding text of first "(" of following text of first ":" of concatenations of( lines whose(it contains "(ALWAYS On Profile)") of it) of file "__list") else("381b4222-f694-41f0-9685-ff5bb260df2e") ) of file "__list"} + delete __list + else + waithidden cmd.exe /C powercfg.exe -duplicatescheme 381b4222-f694-41f0-9685-ff5bb260df2e > __guid + waithidden cmd.exe /C powercfg.exe -changename {preceding text of last "(" of (following text of first ": " of (line 1 of file "__guid"))} "Last Man Standing" + waithidden cmd.exe /C powercfg.exe -setactive {preceding text of last "(" of (following text of first ": " of (line 1 of file "__guid"))} + delete __guid + endif + + waithidden cmd.exe /C powercfg.exe -change -disk-timeout-ac 0 + waithidden cmd.exe /C powercfg.exe -change -standby-timeout-ac 0 + waithidden cmd.exe /C powercfg.exe -hibernate off + else + if{name of operating system contains "Win"} + waithidden "{pathname of system folder & "\powercfg.exe"}" /create "ALWAYS On Profile" + waithidden "{pathname of system folder & "\powercfg.exe"}" /setactive "ALWAYS On Profile" + waithidden "{pathname of system folder & "\powercfg.exe"}" /change "ALWAYS On Profile" /disk-timeout-ac 0 + waithidden "{pathname of system folder & "\powercfg.exe"}" /change "ALWAYS On Profile" /standby-timeout-ac 0 + waithidden "{pathname of system folder & "\powercfg.exe"}" /hibernate off + endif + endif +endif +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Device Control (24645).bes b/Sites/Windows Management/Fixlets/Fixlets/Device Control (24645).bes new file mode 100644 index 000000000..d6e6cea35 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Device Control (24645).bes @@ -0,0 +1,38 @@ + + + + + Device Control + + true + Tom Stacy + 2017-09-26 + + x-fixlet-modification-time + Fri, 08 Sep 2017 21:03:05 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +regset "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" "AllowDeviceIDs"=dword:00000001 +regset "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" "DenyRemovableDevices"=dword:00000001 +regset "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\AllowDeviceIDs\1"=sz:"USBSTOR\\DiskUSB_2.0_USB_Flash_Drive_1100" +regset "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DeniedPolicy\SimpleText"=sz:"InfoSec has prevented this PC from mounting this USB." + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Administrator Account (99).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Administrator Account (99).bes new file mode 100644 index 000000000..56c11a88a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Administrator Account (99).bes @@ -0,0 +1,45 @@ + + + + + Disable Administrator Account + + name of operating system starts with "Win" + exists local user "Administrator" OR exists local user "TheAdministrator" + NOT account disabled flag of local user "Administrator" OR NOT account disabled flag of local user "TheAdministrator" + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-01 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:49:02 +0000 + + BESC + + + Click + here + to deploy this action. + + +if {exists local user "Administrator"} + wait net user Administrator /active:NO +else //if {exists local user "TheAdministrator"} + wait net user TheAdministrator /active:NO +endif + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable AutoAdminLogon (740).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable AutoAdminLogon (740).bes new file mode 100644 index 000000000..6f4fa4cde --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable AutoAdminLogon (740).bes @@ -0,0 +1,40 @@ + + + + + Disable AutoAdminLogon +

This task is applicable on: Windows XP, Windows Vista, Windows 7. ]]>
+ name of operating system = "WinXP" OR name of operating system = "WinXP-2003" OR (name of it = "WinVista" and product type of it = nt workstation product type) of operating system OR name of operating system = "Win7" + exists value "AutoAdminLogon" whose (0 != it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" of native registry + Registry Edit + Windows Registry Wizard + 2026-09-17 + + x-fixlet-source + Windows Registry Wizard + + + x-fixlet-modification-time + Thu, 22 Sep 2011 19:38:02 +0000 + + BESC + + + Click&nbsp; + here&nbsp; + to initiate the deployment process. + + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]" "AutoAdminLogon"="0" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable IE Compatibility Mode for All Websites for Currently Logged On User (646).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable IE Compatibility Mode for All Websites for Currently Logged On User (646).bes new file mode 100644 index 000000000..87016493f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable IE Compatibility Mode for All Websites for Currently Logged On User (646).bes @@ -0,0 +1,48 @@ + + + + + Disable IE Compatibility Mode for All Websites for Currently Logged On User + Disable Internet Explorer Compatibility Mode for All Websites for the Currently Logged On User + name of operating system starts with "Win" + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-26 + <Unspecified> + + x-fixlet-modification-time + Fri, 26 Oct 2012 21:42:32 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + Click + here + to source of information. + + http://www.sevenforums.com/tutorials/1220-internet-explorer-compatilbility-view-all-websites.html + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Microsoft CEIP (3899).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Microsoft CEIP (3899).bes new file mode 100644 index 000000000..d7686fed5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Microsoft CEIP (3899).bes @@ -0,0 +1,54 @@ + + + + + Disable Microsoft CEIP + This fixlet disables the Microsoft Customer Experience Program + name of operating system starts with "Win" + (if exists property "in proxy agent context" then (not in proxy agent context) else true) AND (if exists property "android" of type "operating system" then (not android of operating system) else true) + not exists (key "HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows" of native registry) whose (value "CEIPEnable" of it is 0) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Application Experience\AitAgent" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Application Experience\ProgramDataUpdater" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Autochk\Proxy" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerCeipAssistant" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleCollector" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleUsageCollector" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" and enabled of it) + Configuration + Internal + 2014-10-29 + + x-fixlet-modification-time + Wed, 29 Oct 2014 05:59:28 +0000 + + BESC + + + Click + here + to deploy this action. + + // Disable CEIP by registry +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows]" "CEIPEnable"=dword:0 +else + regset "[HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows]" "CEIPEnable"=dword:0 +endif + +// Disable associated scheduled tasks +waithidden schtasks /change /TN "\Microsoft\Windows\Application Experience\AitAgent" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Application Experience\ProgramDataUpdater" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Autochk\Proxy" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerCeipAssistant" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleCollector" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleUsageCollector" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" /Disable + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (108).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (108).bes new file mode 100644 index 000000000..2b54fb712 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (108).bes @@ -0,0 +1,42 @@ + + + + + Disable Named Pipes + + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-08-20 + <Unspecified> + + x-fixlet-modification-time + Thu, 30 Aug 2012 15:51:56 +0000 + + BESC + + + Click + here + to disable MS SQL Named Pipes. + + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 +else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (642).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (642).bes new file mode 100644 index 000000000..776915ddf --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (642).bes @@ -0,0 +1,42 @@ + + + + + Disable Named Pipes + + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-08-20 + <Unspecified> + + x-fixlet-modification-time + Thu, 30 Aug 2012 15:51:56 +0000 + + BESC + + + Click + here + to disable MS SQL Named Pipes. + + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 +else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable NetBios On All Network Adaptors (Requires Restart) (27372).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable NetBios On All Network Adaptors (Requires Restart) (27372).bes new file mode 100644 index 000000000..20bc6cbcb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable NetBios On All Network Adaptors (Requires Restart) (27372).bes @@ -0,0 +1,36 @@ + + + + + Disable NetBios On All Network Adaptors (Requires Restart) + Executes a powershell script to update the registry to disable NetBios on all network adaptors + true + Internal + 2025-02-20 + + x-fixlet-modification-time + Thu, 20 Feb 2025 10:00:05 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden powershell -ExecutionPolicy Bypass -command "Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces\tcpip* -Name NetbiosOptions -Value 2" +action requires restart + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Remote Desktop (RDP) (659).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Remote Desktop (RDP) (659).bes new file mode 100644 index 000000000..441472210 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Remote Desktop (RDP) (659).bes @@ -0,0 +1,48 @@ + + + + + Disable Remote Desktop (RDP) + Disable remote desktop settings in the registry. (RDP) + name of operating system starts with "Win" + exists value "fDenyTSConnections" whose (it = 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of registry + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-11-05 + <Unspecified> + + x-fixlet-modification-time + Tue, 06 Nov 2012 00:35:31 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]" "fDenyTSConnections"=dword:00000001 + + + + + + Click + here + to learn more about this setting. + + http://technet.microsoft.com/en-us/library/cc782195(v=ws.10).aspx + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24318).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24318).bes new file mode 100644 index 000000000..04bdf2328 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24318).bes @@ -0,0 +1,56 @@ + + + + + Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012" or name of it = "Win2012R2" or name of it = "Win8") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it = 0) of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 20:03:44 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24314).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24314).bes new file mode 100644 index 000000000..1f0ae4b3c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24314).bes @@ -0,0 +1,38 @@ + + + + + Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 + To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it as integer = 0) of (native registries) + Internal + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 17:28:12 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]" "SMB1"=dword:00000000 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Service - Windows (23443).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Service - Windows (23443).bes new file mode 100644 index 000000000..8a3768d0e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Service - Windows (23443).bes @@ -0,0 +1,43 @@ + + + + + Disable SMBv1 Service - Windows + + windows of operating systems + not exists unique values whose(it contains "mrxsmb10") of (it as string as lowercase) of values "DependOnService" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation" of (x64 registries;x32 registries) + exists unique values whose(it != 4) of (it as integer) of values "Start" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrxsmb10" of (x64 registries;x32 registries) + Configuration + Internal + jgstew + 2017-02-14 + + x-fixlet-modification-time + Tue, 14 Feb 2017 23:27:38 +0000 + + BESC + + + Click + here + to deploy this action. + + +// https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012 +waithidden sc.exe config mrxsmb10 start= disabled + +action requires restart "SMBv1_DisableService" + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24316).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24316).bes new file mode 100644 index 000000000..60b95f631 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24316).bes @@ -0,0 +1,41 @@ + + + + + Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 + To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista" or name of it = "Win2012" or name of it = "Win8") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation" whose (exists value "DependOnService" whose (it as string as lowercase does not contain "MRxSmb10" as lowercase)of it) of native registry + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10" whose (value "Start" of it != 4) of native registry + workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 18:54:46 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +wait sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi +wait sc.exe config mrxsmb10 start= disabled + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Skype Auto-update - Improved (3662).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Skype Auto-update - Improved (3662).bes new file mode 100644 index 000000000..7d0919fd1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Skype Auto-update - Improved (3662).bes @@ -0,0 +1,52 @@ + + + + + Disable Skype Auto-update - Improved + The listed computers have Skype installed and configured to check for updates automatically. Deploying the action below will disable Skype auto-update. + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + name of operating system as lowercase starts with "win" + = "7"]]> + not exists values "PROCESSOR_ARCHITECTURE" whose (it as string as lowercase = "ia64") of keys "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry + = "5.0" /* http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx */]]> + /* Only relevant if skype is installed */ exists key "HKLM\Software\Skype" whose(exists key "Phone" of it AND exists value "SkypePath" of key "Phone" of it) of registry + /* Only relevant if skype is installed */ exists file ((value "SkypePath" of key "Phone" of it as string) of key "HKLM\Software\Skype" of registry) + = version 6.5 */ ((version of file (value "SkypePath" of key "Phone" of it as string) >= "6.5") AND (not exist key "Installer" whose (value "InstallUpdates" of it = 0) of it))) of key "HKLM\Software\Skype" of registry]]> + jgstew + 2013-12-04 + + x-fixlet-first-propagation + Thu, 16 Feb 2012 05:41:45 +0000 + + + x-fixlet-modification-time + Wed, 04 Dec 2013 20:26:28 +0000 + + BESC + + + Click + here + to disable Skype Auto-update. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Skype start with windows (727).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Skype start with windows (727).bes new file mode 100644 index 000000000..e8d0b34f8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Skype start with windows (727).bes @@ -0,0 +1,38 @@ + + + + + Disable Skype start with windows + + windows of operating system + exists current user AND (1 = number of logged on users) + (exists keys whose (value "DisplayName" of it as string contains "Skype") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry) AND (exists key "HKLM\Software\Skype\Phone" of registry) + + Internal + 2012-05-31 + + x-fixlet-modification-time + Fri, 01 Jun 2012 14:25:26 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes new file mode 100644 index 000000000..1c5b919e3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes @@ -0,0 +1,67 @@ + + + + + Disable Solution to CVE-2017-8529 - Windows 7 SP1 / 8.1 / 10 / Windows Server 2008 SP2 / 2008 R2 SP1 / 2012 / 2012 R2 / 2016 + +

Use this Fixlet to disable solution to CVE-2017-8529.

+ +
+

File Size:

+Unspecified +
+]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + not ia64 of operating system + ((name of it = "Win2008") AND service pack major version of it = 2 OR (name of it = "Win7" OR name of it = "Win2008R2") AND service pack major version of it = 1 OR name of it = "Win8.1" OR name of it = "Win10" OR name of it = "Win2012" OR name of it = "Win2012R2" OR name of it = "Win2016") of operating system + exist keys "FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX" whose (value "iexplore.exe" of it as integer = 1) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl" of native registry + not pending restart "d43b4c2f9e88dcf95a8171a5d5bb90ae26776e57" + Setting + Microsoft + Unspecified + 2017-09-12 + Unspecified + CVE-2017-8529 + + x-fixlet-product-family + Windows + + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000000 + +if {x64 of operating system} +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000000 +endif + +action requires restart "d43b4c2f9e88dcf95a8171a5d5bb90ae26776e57" + + + + Click + here + to see the Security Guidance Article for this update. + + https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8529 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (1376).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (1376).bes new file mode 100644 index 000000000..1d6aa8078 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (1376).bes @@ -0,0 +1,43 @@ + + + + + Disable UAC + + (name of it = "WinVista" or name of it = "Win7" or name of it = "Win8") of operating system + value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of registry = 1 OR value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of x64 registry = 1 + Configuration + danielheth@bigfix.me + <Unspecified> + 2013-01-14 + <Unspecified> + + x-fixlet-modification-time + Mon, 14 Jan 2013 15:33:10 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:0 +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:0 +endif + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (26610).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (26610).bes new file mode 100644 index 000000000..0f414265c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (26610).bes @@ -0,0 +1,47 @@ + + + + + Disable UAC + + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + Internal + 2019-03-04 + + x-fixlet-modification-time + Wed, 06 Mar 2019 18:16:45 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection false +delete __createfile +Createfile until END_OF_FILE +Windows Registry Editor Version 5.00 + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] +"ConsentPromptBehaviorAdmin"=dword:00000000 +"EnableLUA"=dword:00000000 + +END_OF_FILE +delete uac.reg +move __createfile uac.reg + +waithidden regedit /s uac.reg + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Wake-from-Standby by Magic Packet - Windows XP_Vista_Win7_2008 and Mac OS 10.4_10.5_10.6_10.7 (310).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Wake-from-Standby by Magic Packet - Windows XP_Vista_Win7_2008 and Mac OS 10.4_10.5_10.6_10.7 (310).bes new file mode 100644 index 000000000..088f260eb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Wake-from-Standby by Magic Packet - Windows XP_Vista_Win7_2008 and Mac OS 10.4_10.5_10.6_10.7 (310).bes @@ -0,0 +1,57 @@ + + + + + Disable Wake-from-Standby by Magic Packet - Windows XP/Vista/Win7/2008 and Mac OS 10.4/10.5/10.6/10.7 +

Network adapters can be configured to wake a computer from standby if they receive a Wake-on-LAN Magic Packet.

This Fixlet will disable the ability for network adapters to wake the computer from standby.

Note: This does not affect a computers ability to Wake-on-LAN from the powered off or Hibernate power state.

Note: This Task is not applicable on computers designated as Last Man Standing.

+]]>
+ (it = "WinXP" OR it = "WinXP-2003" OR it = "WinVista" OR it = "Win7" OR it = "Win2008" OR it = "Win2008R2" OR it = "Mac OS X") of name of operating system + if ((it = "WinXP" OR it = "WinXP-2003" OR it = "WinVista" OR it = "Win7" OR it = "Win2008" OR it = "Win2008R2") of name of operating system) then ((exists values whose(name of it = "PnPCapabilities" AND it as integer = 48 ) of keys whose(value "Characteristics" of it as integer = 132) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}" of registry)) else (if (name of operating system ="Mac OS X") then (if exists file "/Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist" then ((if it = 1 then true else false) of integer "Wake On LAN" of dictionary "AC Power" of dictionary "Custom Profile" of dictionary of file "/Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist") else false) else false) + not exists settings whose(name of it contains "PowerManagement_LastManStanding" AND value of it = "1") of client + Wake-on-LAN + BigFix + <Unspecified> + 2010-08-13 + N/A + + x-fixlet-modification-time + Wed, 01 Aug 2012 01:09:07 +0000 + + + x-fixlet-first-propagation + Thu, 17 Nov 2011 19:28:18 +0000 + + + x-fixlet-domain_attributes + Manage_WFSBMP + + BESC + + + Click + here + to disable Wake-from-Standby on all network adapters. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Windows Update (26611).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Windows Update (26611).bes new file mode 100644 index 000000000..402f5f46b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Windows Update (26611).bes @@ -0,0 +1,35 @@ + + + + + Disable Windows Update + + windows of operating system + (exists value "AutoUpdate" whose (it != 1) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" of registry) + Brad Sexton + 2018-10-08 + + x-fixlet-modification-time + Tue, 04 Dec 2018 21:37:41 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +regset [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU] "AutoUpdate"=dword:0000001 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (2549).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (2549).bes new file mode 100644 index 000000000..cb0bc0651 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (2549).bes @@ -0,0 +1,40 @@ + + + + + Disable inactive users + Creates a batch script to disable users who have not logged in for 30 days and are currently active. If their account is disabled, this will skip over them. + name of operating system as lowercase starts with "win" + 30 * day) and name of it does not contain "$" and not account disabled flag of it)]]> + Internal + 2013-08-07 + + x-fixlet-modification-time + Wed, 07 Aug 2013 19:48:11 +0000 + + BESC + + + Click + here + to deploy this action. + + 30 * day) and name of it does not contain "$" and not account disabled flag of it)} +copy __appendfile __disable.bat +waithidden __disable.bat +delete __appendfile +delete __disable.bat]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (3873).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (3873).bes new file mode 100644 index 000000000..a8f494108 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (3873).bes @@ -0,0 +1,40 @@ + + + + + Disable inactive users + Creates a batch script to disable users who have not logged in for 30 days and are currently active. If their account is disabled, this will skip over them. + name of operating system as lowercase starts with "win" + 30 * day) and name of it does not contain "$" and not account disabled flag of it)]]> + Internal + 2013-08-07 + + x-fixlet-modification-time + Wed, 07 Aug 2013 19:48:11 +0000 + + BESC + + + Click + here + to deploy this action. + + 30 * day) and name of it does not contain "$" and not account disabled flag of it)} +copy __appendfile __disable.bat +waithidden __disable.bat +delete __appendfile +delete __disable.bat]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Diskpart Repartition - Shrink C_ Partition & Create M_ Partition (25433).bes b/Sites/Windows Management/Fixlets/Fixlets/Diskpart Repartition - Shrink C_ Partition & Create M_ Partition (25433).bes new file mode 100644 index 000000000..3b1002522 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Diskpart Repartition - Shrink C_ Partition & Create M_ Partition (25433).bes @@ -0,0 +1,78 @@ + + + + + Diskpart Repartition - Shrink C: Partition & Create M: Partition + Requests new partition size to be:

+
    +
  1. Maximum: 49% of drive size if at least 59% of drive is free, leaving at least 10% free +
  2. The greater of: +
      +
    1. Current free space of drive less 10% of total drive size +
    2. 49% of free space of drive +
    3. 20 GB minimum
+

Repartitioning will probably fail on dynamic and dynamic disks, but should work on both GPT and MBR.

+

If you change the drive name (line 22) or drive letter (line 23), please also update the relevance to match.

]]>
+ windows of operating system + = 20 /*gigs*/) else false]]> + Internal + 2018-03-02 + + x-fixlet-modification-time + Wed, 04 Apr 2018 18:22:00 +0000 + + BESC + + + Click + here + to deploy this action. + + (total space of drive of system folder / 1024 / 1024 * 59/100 /* increased to 59% to account for leftover free space */) then (total space of drive of system folder / 1024 / 1024 * 49/100) else ((free space of drive of system folder / 1024 / 1024) - (total space of drive of system folder / 1024 / 1024 * 10/100))} minimum=20000 +create partition primary +format quick fs=ntfs label="MDT" noerr +assign letter="M" +exit +END + +move __createfile mdtdrive.txt +waithidden cmd.exe /c diskpart /s mdtdrive.txt + +waithidden cmd.exe /c diskpart /s mdtreclaim.txt + +delete mdtdrive.txt +delete mdtreclaim.txt]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Administrator Account (615).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Administrator Account (615).bes new file mode 100644 index 000000000..d45c17902 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Administrator Account (615).bes @@ -0,0 +1,45 @@ + + + + + Enable Administrator Account + + name of operating system starts with "Win" + exists local user "Administrator" OR exists local user "TheAdministrator" + account disabled flag of local user "Administrator" OR account disabled flag of local user "TheAdministrator" + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-01 + <Unspecified> + + x-fixlet-modification-time + Mon, 22 Oct 2012 14:43:32 +0000 + + BESC + + + Click + here + to enable the Administrator Account. + + +if {exists local user "Administrator"} + wait net user Administrator /active:YES +else //if {exists local user "TheAdministrator"} + wait net user TheAdministrator /active:YES +endif + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable IE Compatibility Mode for All Websites for Currently Logged On User (645).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable IE Compatibility Mode for All Websites for Currently Logged On User (645).bes new file mode 100644 index 000000000..4789c4de5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable IE Compatibility Mode for All Websites for Currently Logged On User (645).bes @@ -0,0 +1,48 @@ + + + + + Enable IE Compatibility Mode for All Websites for Currently Logged On User + Enable Internet Explorer Compatibility Mode for All Websites for the Currently Logged On User + name of operating system starts with "Win" + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-26 + <Unspecified> + + x-fixlet-modification-time + Fri, 26 Oct 2012 21:42:01 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + Click + here + to source of information. + + http://www.sevenforums.com/tutorials/1220-internet-explorer-compatilbility-view-all-websites.html + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features (20682).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features (20682).bes new file mode 100644 index 000000000..3cb27be35 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features (20682).bes @@ -0,0 +1,58 @@ + + + + + Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features + + x64 of operating system + windows of operating system + exists values whose("Microsoft-Windows-Subsystem-Linux" = name of it AND it as string as integer = 255) of keys "Updates" of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of (x64 registries; x32 registries) + Internal + 2016-05-20 + + x-fixlet-modification-time + Sat, 21 May 2016 04:58:23 +0000 + + BESC + + + Click + here + to deploy this action. + + // disable wow64 redirection if x64 bit OS +action uses wow64 redirection {not x64 of operating system} + +// https://www.raymond.cc/blog/add-or-remove-windows-features-through-the-command-prompt/ +// dism /online /get-features +// dism /online /Get-FeatureInfo /FeatureName:Microsoft-Windows-Subsystem-Linux +//Feature Name : Microsoft-Windows-Subsystem-Linux +//Display Name : Windows Subsystem for Linux (Beta) +//Description : Provides services and environments for running native user-mode Linux shells and tools on Windows. +//Restart Required : Required + + +// http://www.infralib.com/2013/02/running-64bit-cmd-via-32bit-sccm-client/ +waithidden "{pathname of system folder}\dism.exe" /NoRestart /Quiet /online /enable-feature /FeatureName:Microsoft-Windows-Subsystem-Linux + +// Restart Required +action requires restart + +// Raw Registry Location: +// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Microsoft-Windows-Lxss-Optional-Package~31bf3856ad364e35~amd64~~10.0.14342.1000\Updates +// Related: +// https://bigfix.me/fixlet/details/823 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (107).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (107).bes new file mode 100644 index 000000000..eec4c6c66 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (107).bes @@ -0,0 +1,42 @@ + + + + + Enable Named Pipes + + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-08-20 + <Unspecified> + + x-fixlet-modification-time + Thu, 30 Aug 2012 15:51:56 +0000 + + BESC + + + Click + here + to enable MS SQL Named Pipes. + + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 +else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (641).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (641).bes new file mode 100644 index 000000000..104ed5e29 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (641).bes @@ -0,0 +1,42 @@ + + + + + Enable Named Pipes + + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-08-20 + <Unspecified> + + x-fixlet-modification-time + Thu, 30 Aug 2012 15:51:56 +0000 + + BESC + + + Click + here + to enable MS SQL Named Pipes. + + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 +else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable NetFx3 - .NET 2 & 3 - Windows Features (22635).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable NetFx3 - .NET 2 & 3 - Windows Features (22635).bes new file mode 100644 index 000000000..d8fa236c5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable NetFx3 - .NET 2 & 3 - Windows Features (22635).bes @@ -0,0 +1,53 @@ + + + + + Enable NetFx3 - .NET 2 & 3 - Windows Features + + windows of operating system + = "6.2"]]> + not exists (it as version) whose("3.5"=it) of following texts of firsts "v" of names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP" of (x64 registries;x32 registries) + Internal + 2016-05-20 + + x-fixlet-modification-time + Fri, 18 Nov 2016 20:11:32 +0000 + + BESC + + + Click + here + to deploy this action. + + +// disable wow64 redirection if x64 bit OS +action uses wow64 redirection {not x64 of operating system} + + +waithidden "{pathname of system folder}\dism.exe" /NoRestart /Quiet /online /enable-feature /featurename:NetFx3 { if ( (it contains "Win2008R2") of name of operating system ) then "" else "/all" } + +// Restart Required +action requires restart + +// Raw Registry Location: +// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Microsoft-Windows-Lxss-Optional-Package~31bf3856ad364e35~amd64~~10.0.14342.1000\Updates + +// Related: +// https://bigfix.me/fixlet/details/823 +// https://www.raymond.cc/blog/add-or-remove-windows-features-through-the-command-prompt/ +// http://www.infralib.com/2013/02/running-64bit-cmd-via-32bit-sccm-client/ + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (3872).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (3872).bes new file mode 100644 index 000000000..dfbb78209 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (3872).bes @@ -0,0 +1,37 @@ + + + + + Enable Remote Desktop + + name of operating system as lowercase starts with "win" + Internal + 2012-08-20 + + x-fixlet-modification-time + Thu, 09 Oct 2014 13:57:44 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +waithidden cmd.exe /C reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f + +waithidden cmd.exe /C netsh firewall set service type = remotedesktop mode = enable + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (RDP) (2458).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (RDP) (2458).bes new file mode 100644 index 000000000..5d5ed2bad --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (RDP) (2458).bes @@ -0,0 +1,50 @@ + + + + + Enable Remote Desktop (RDP) + Enable remote desktop settings in the registry. (RDP) + name of operating system starts with "Win" + exists value "fDenyTSConnections" whose (it != 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of registry + Configuration + danielheth@bigfix.me + <Unspecified> + 2013-05-08 + <Unspecified> + + x-fixlet-modification-time + Wed, 08 May 2013 17:02:29 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]" "fDenyTSConnections"=dword:00000000 +//thanks sinucus (http://bigfix.me/user/sinucus) for this great addition: +waithidden cmd.exe /C netsh firewall set service type= remotedesktop mode = enable + + + + + + Click + here + to learn more about this setting. + + http://technet.microsoft.com/en-us/library/cc782195(v=ws.10).aspx + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24319).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24319).bes new file mode 100644 index 000000000..6b9c93815 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24319).bes @@ -0,0 +1,56 @@ + + + + + Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012" or name of it = "Win2012R2" or name of it = "Win8") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it != 0) of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 20:03:54 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Set-SmbServerConfiguration -EnableSMB1Protocol $true -Force + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24315).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24315).bes new file mode 100644 index 000000000..a3737f4f6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24315).bes @@ -0,0 +1,38 @@ + + + + + Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 + To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it as integer = 1) of (native registries) + Internal + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 17:28:12 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]" "SMB1"=dword:00000001 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24317).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24317).bes new file mode 100644 index 000000000..38dd0b89a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24317).bes @@ -0,0 +1,41 @@ + + + + + Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 + To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista" or name of it = "Win2012" or name of it = "Win8") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation" whose (exists value "DependOnService" whose (it as string as lowercase contains "MRxSmb10" as lowercase)of it) of native registry + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10" whose (value "Start" of it = 4) of native registry + workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 18:54:46 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +wait sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi +wait sc.exe config mrxsmb10 start= manual + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes new file mode 100644 index 000000000..59d6d31c2 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes @@ -0,0 +1,68 @@ + + + + + Enable Solution to CVE-2017-8529 - Windows 7 SP1 / 8.1 / 10 / Windows Server 2008 SP2 / 2008 R2 SP1 / 2012 / 2012 R2 / 2016 + +

Use this Fixlet to enable solution to CVE-2017-8529.

+ +
+

File Size:

+Unspecified +
+]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + not ia64 of operating system + ((name of it = "Win2008") AND service pack major version of it = 2 OR (name of it = "Win7" OR name of it = "Win2008R2") AND service pack major version of it = 1 OR name of it = "Win8" OR name of it = "Win8.1" OR name of it = "Win10" OR name of it = "Win2012" OR name of it = "Win2012R2" OR name of it = "Win2016") of operating system + 0]]> + not exist keys "FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX" whose (value "iexplore.exe" of it as integer = 1) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl" of native registry + not pending restart "5eae6a9509552040ccf975999b91b3979fc0821d" + Setting + Microsoft + Unspecified + 2017-09-12 + Unspecified + CVE-2017-8529 + + x-fixlet-product-family + Windows + + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000001 + +if {x64 of operating system} +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000001 +endif + +action requires restart "5eae6a9509552040ccf975999b91b3979fc0821d" + + + + Click + here + to see the Security Guidance Article for this update. + + https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8529 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable TRIM on Win7 for SSDs (1385).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable TRIM on Win7 for SSDs (1385).bes new file mode 100644 index 000000000..2a33cc78c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable TRIM on Win7 for SSDs (1385).bes @@ -0,0 +1,38 @@ + + + + + Enable TRIM on Win7 for SSDs + This should only be done on computers with SSDs that support TRIM properly. Some older SSDs require firmware updates for TRIM to work properly. This task does not detect if a system has an SSD, so it will be applicable on systems that do not need this setting changed.

+

 

http://technet.microsoft.com/en-us/library/cc785435(v=ws.10).aspx]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + windows of operating system + "Win7" = name of operating system + 0 != value "DisableDeleteNotification" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of native registry + Internal + 2013-01-18 + + x-fixlet-modification-time + Fri, 18 Jan 2013 16:43:13 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden fsutil behavior set disabledeletenotify 0 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable UAC (1377).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable UAC (1377).bes new file mode 100644 index 000000000..4a2392450 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable UAC (1377).bes @@ -0,0 +1,43 @@ + + + + + Enable UAC + + (name of it = "WinVista" or name of it = "Win7" or name of it = "Win8") of operating system + value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of registry = 0 OR value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of x64 registry = 0 + Configuration + danielheth@bigfix.me + <Unspecified> + 2013-01-14 + <Unspecified> + + x-fixlet-modification-time + Mon, 14 Jan 2013 15:33:44 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:1 +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:1 +endif + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Windows Automatic Updates (97).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Windows Automatic Updates (97).bes new file mode 100644 index 000000000..d204c0a74 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Windows Automatic Updates (97).bes @@ -0,0 +1,58 @@ + + + + + Enable Windows Automatic Updates + Enables Windows Automatic Update + (name of it starts with "WinXP" or name of it = "WinVista" or name of it = "Win7") of operating system + ((if exists value "NoAutoUpdate" of it then value "NoAutoUpdate" of it as integer else 0) of key "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" of registry) != 0 + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-01-20 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:30:05 +0000 + + SYST + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "AUOptions"=dword:00000004 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "AUPowerManagement"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "AutoInstallMinorUpdates"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "IncludeRecommendedUpdates"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAUAsDefaultShutdownOption"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAUShutdownOption"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAutoRebootWithLoggedOnUsers"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAutoUpdate"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RebootWarningTimeout"=dword:0000000f +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RebootWarningTimeoutEnabled"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RescheduleWaitTime"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RescheduleWaitTimeEnabled"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "ScheduledInstallDay"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "ScheduledInstallTime"=dword:00000002 + + + + Click + here + to learn more about this fixlet. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/End of Support - Unsupported Windows OS (25452).bes b/Sites/Windows Management/Fixlets/Fixlets/End of Support - Unsupported Windows OS (25452).bes new file mode 100644 index 000000000..8c2a90528 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/End of Support - Unsupported Windows OS (25452).bes @@ -0,0 +1,45 @@ + + + + + End of Support - Unsupported Windows OS + This task is designed to notify the users of any workstations with unsupported Operating Systems.  The "continue if" line is designed to prevent repeat execution more than once per day, but you can change that time if that is your preference.

+

Please be sure to set "Users" tab to "Run when at least one of the selected users is logged on, and only display the user interface to those users" and "Local users"

+

Windows Lifecycle Fact Sheet: https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet, Some additional server dates excluding 2016: https://support.microsoft.com/en-us/lifecycle/search/1163

+

Google Docs: Reference and Relevance Worksheet

+

Windows 2000, XP, Vista - All support has ended

+

Windows Server 2008 - Standard is EOS, SP2 and R2 SP1 extended support ends Tue January 14 2020

+

Windows 7 - Mainstream support ended, service pack 1 extended support ends Tue January 14 2020

+

Windows 8 - Mainstream support ended, 8.1 requires Update 1 (KB2919355) for support, 8.1 Update 1 extended support ends Tue January 10 2023

+

Windows 10 - Mainstream (1507, 1511) support ended.  1607 end of support on Tue April 10 2018.  1703 end of support on Tue Oct 9 2018.  1709 end of support on Tue April 9 2019.

+

NOTE: value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry may be a better way of retrieving OS version numbers.  Revised to this method.  LTSB completely excluded at this time.  Enterprise and Educational is included with their 6 month extensions set to the 6 month later Patch Tuesday.

]]>
+ windows of operating system + if (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry then (NOT (value "Productname" of it as string as lowercase contains "ltsb") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) else true + date ("Tue, Jan 14 2020") /* Server 2008 SP2 & R2 SP1 EOS */) of operating system) OR ((name of it does not contain "R2" AND service pack major version of it < 1) of operating system)) else false) OR (if (date (local time zone) of (now)) > date ("Tue, 14 Jan 2020") then (version of operating system = "6.1" AND (name of it contains "Win7") of operating system) else false /* Windows 7 EOS */) OR ((name of it = "Win8") of operating system and (version of operating system > "6.3.9600") /* Windows 8.0 */) OR (if ((name of it = "Win2012R2" OR name of it = "Win8.1") of operating system) then (not exists key ("Package_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14"; "Package_for_KB2919355~31bf3856ad364e35~x86~~6.3.1.14") whose (112 = value "CurrentState" of it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry /* Check for mandatory Win 8.1 & Server 2012 Update 2919355 (aka Update 1) */) else if ((name of it = "Win8.1") of operating system AND (date (local time zone) of (now)) > date ("Tue, Jan 10 2023")/* Windows 8.1 EOS */) then true else false) OR (if (NOT ((name of it = "Win2016" /* Exclude Server 2016 */) of operating system) and (name of it = "Win10") of operating system) then (((if (date (local time zone) of (now)) > date ("Tue, 9 Apr 2019") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1709" /* Windows 10 Version 1709 or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 9 Oct 2018") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1703" /* Windows 10 Version 1703 or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 10 Apr 2018") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1607" /* Windows 10 Version 1607 or lower after EOS date */) else ((value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <="1511" /* Windows 10 Version 1511 or lower */) OR ((value "CurrentBuild" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) as string as version <= "15240"))) OR (if (((value "EditionID" of it as string as lowercase contains "educat") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) OR ((value "EditionID" of it as string as lowercase contains "enterp") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry)) then ((if (NOT ((name of it = "Win2016" /* Exclude Server 2016 */) of operating system) and (name of it = "Win10") of operating system) then ((if (date (local time zone) of (now)) > date ("Tue, 8 Oct 2019") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1709" /* Windows 10 Version 1709 Edu/Ent or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 9 Apr 2019") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1703" /* Windows 10 Version 1703 Edu/Ent or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 9 Oct 2018") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1607" /* Windows 10 Version 1607 Edu/Ent or lower after EOS date */) else (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <="1511" /* Windows 10 Version 1511 or lower */)) AND (NOT (name of it contains "2016") of operating system) /* Exclude Server 2016 */) else false)) else false)) AND (NOT (name of it contains "2016") of operating system) /* Exclude Server 2016 */) else false)]]> + Internal + 2017-12-14 + + x-fixlet-modification-time + Fri, 13 Apr 2018 15:09:33 +0000 + + BESC + + + Click + here + to deploy this action.&nbsp; Please be sure to set user messages and user mode. + + (1 * day)) of action}]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enforce Admin Users Compliance (25547).bes b/Sites/Windows Management/Fixlets/Fixlets/Enforce Admin Users Compliance (25547).bes new file mode 100644 index 000000000..5327fea2f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Enforce Admin Users Compliance (25547).bes @@ -0,0 +1,159 @@ + + + + + Enforce Admin Users Compliance + This Fixlet removes users from the local "Administrators" group on a computer if they are not listed in a whitelist file deployed using the task:
"Deploy ComplianceWhitelist File"

+

 

+

Action 1:
Compares users who are Members of the local Administrators group on a computer with a "Compliant Admins" Whitelist file that exists on the client.  It then instructs the endpoint to remove any users that are NOT on the Compliance White List from the Local Administrators group.

+

Action 2:
Prompts for a User ID that is then removed from the local "Administrators" group of the target endpoint.

+

 

+

Note:
1.  Before running this task you must create the file "ComplianceWhitelist.txt" on the BES Server in the following directory:
"<BES Server>\wwwrootbes\CustomDownloads\ComplianceWhitelist"
2.  The Task "Deploy ComplianceWhitelist File" must be run before this Fixlet will work properly.

]]>
+ true + Utility-Manage Windows Admins + Mike Consuegra + 2018-09-07 + + x-fixlet-modification-time + Tue, 18 Sep 2018 04:10:15 +0000 + + BESC + + + + Remove + &nbsp;Users based on a pre-defined whitelist + + + + + + + Remove + &nbsp;the specified User + + // Prompt the user for an ID to delete from the Administrators group of every targetted computer +action parameter query "UserID" with description "Enter the User ID to remove from the local Administrators group of targetted endpoints:" + + +// Remove each user in the 'blacklist.txt' file from the Local Admin Group +dos net localgroup administrators "{parameter "UserID" of action}" /delete + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on C Drive (24331).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on C Drive (24331).bes new file mode 100644 index 000000000..e7591cd72 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on C Drive (24331).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on C Drive + Find files with specified extension on C drive. + name of operating system starts with "Win" + exists folder "c:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:38:53 +0000 + + BESC + + + Click + here + to deploy this action. + + c:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on D Drive (24332).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on D Drive (24332).bes new file mode 100644 index 000000000..3235efb4a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on D Drive (24332).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on D Drive + + name of operating system starts with "Win" + exists folder "d:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:39:06 +0000 + + BESC + + + Click + here + to deploy this action. + + d:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on E Drive (24333).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on E Drive (24333).bes new file mode 100644 index 000000000..f6f145d21 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on E Drive (24333).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on E Drive + + name of operating system starts with "Win" + exists folder "e:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:39:33 +0000 + + BESC + + + Click + here + to deploy this action. + + e:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on F Drive (24334).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on F Drive (24334).bes new file mode 100644 index 000000000..f8efb23b6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on F Drive (24334).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on F Drive + + name of operating system starts with "Win" + exists folder "f:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:38:40 +0000 + + BESC + + + Click + here + to deploy this action. + + f:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on G Drive (24336).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on G Drive (24336).bes new file mode 100644 index 000000000..6dbaca1b3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on G Drive (24336).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on G Drive + + name of operating system starts with "Win" + exists folder "g:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:40:01 +0000 + + BESC + + + Click + here + to deploy this action. + + g:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on H Drive (24337).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on H Drive (24337).bes new file mode 100644 index 000000000..1a2c26a26 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on H Drive (24337).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on H Drive + + name of operating system starts with "Win" + exists folder "h:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:40:26 +0000 + + BESC + + + Click + here + to deploy this action. + + h:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on I Drive (24338).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on I Drive (24338).bes new file mode 100644 index 000000000..4dd95a7ad --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on I Drive (24338).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on I Drive + + name of operating system starts with "Win" + exists folder "i:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:40:52 +0000 + + BESC + + + Click + here + to deploy this action. + + i:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on J Drive (24339).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on J Drive (24339).bes new file mode 100644 index 000000000..49f4e5715 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on J Drive (24339).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on J Drive + + name of operating system starts with "Win" + exists folder "j:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:41:17 +0000 + + BESC + + + Click + here + to deploy this action. + + j:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on K Drive (24340).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on K Drive (24340).bes new file mode 100644 index 000000000..552d44fc5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on K Drive (24340).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on K Drive + + name of operating system starts with "Win" + exists folder "k:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:41:39 +0000 + + BESC + + + Click + here + to deploy this action. + + k:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on L Drive (24341).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on L Drive (24341).bes new file mode 100644 index 000000000..dbb0bd841 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on L Drive (24341).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on L Drive + + name of operating system starts with "Win" + exists folder "l:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:42:01 +0000 + + BESC + + + Click + here + to deploy this action. + + l:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on M Drive (24342).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on M Drive (24342).bes new file mode 100644 index 000000000..57ec1e794 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on M Drive (24342).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on M Drive + + name of operating system starts with "Win" + exists folder "m:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:42:21 +0000 + + BESC + + + Click + here + to deploy this action. + + m:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on N Drive (24343).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on N Drive (24343).bes new file mode 100644 index 000000000..cd14ee7a4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on N Drive (24343).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on N Drive + + name of operating system starts with "Win" + exists folder "n:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:42:45 +0000 + + BESC + + + Click + here + to deploy this action. + + n:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on O Drive (24344).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on O Drive (24344).bes new file mode 100644 index 000000000..b627a5863 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on O Drive (24344).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on O Drive + + name of operating system starts with "Win" + exists folder "o:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:43:05 +0000 + + BESC + + + Click + here + to deploy this action. + + o:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on P Drive (24345).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on P Drive (24345).bes new file mode 100644 index 000000000..950e7f5af --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on P Drive (24345).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on P Drive + + name of operating system starts with "Win" + exists folder "p:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:43:27 +0000 + + BESC + + + Click + here + to deploy this action. + + p:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on X Drive (24346).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on X Drive (24346).bes new file mode 100644 index 000000000..865b40e18 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on X Drive (24346).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on X Drive + + name of operating system starts with "Win" + exists folder "x:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:44:03 +0000 + + BESC + + + Click + here + to deploy this action. + + x:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on Y Drive (24347).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on Y Drive (24347).bes new file mode 100644 index 000000000..98979ea29 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on Y Drive (24347).bes @@ -0,0 +1,35 @@ + + + + + Find Ransomware Files on Y Drive + + name of operating system starts with "Win" + exists folder "y:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:44:26 +0000 + + BESC + + + Click + here + to deploy this action. + + y:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Fix Skype shortcut missing from Start Menu (741).bes b/Sites/Windows Management/Fixlets/Fixlets/Fix Skype shortcut missing from Start Menu (741).bes new file mode 100644 index 000000000..65bdd2160 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Fix Skype shortcut missing from Start Menu (741).bes @@ -0,0 +1,51 @@ + + + + + Fix Skype shortcut missing from Start Menu + Fix Skype shortcut missing from Start Menu + (name of it = "WinVista" or name of it = "Win7") of operating system + exists key whose (value "displayname" of it as string contains "Skype" of it AND value "displayname" of it as string as lowercase does not contain "Click to Call" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry + (value "DisplayIcon" of key whose (value "displayname" of it as string contains "Skype" of it AND value "displayname" of it as string as lowercase does not contain "Click to Call" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry) as string as lowercase contains "Skype.exe" as lowercase + exists file ((value "DisplayIcon" of key whose (value "displayname" of it as string contains "Skype" of it AND value "displayname" of it as string as lowercase does not contain "Click to Call" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry) as string) + not exists file "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Skype.lnk" AND not exists file "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Skype\Skype.lnk" + Internal + 2011-08-04 + + x-fixlet-modification-time + Thu, 04 Aug 2011 21:26:26 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Fix Unquoted Registry Paths (24886).bes b/Sites/Windows Management/Fixlets/Fixlets/Fix Unquoted Registry Paths (24886).bes new file mode 100644 index 000000000..4aabbd8d6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Fix Unquoted Registry Paths (24886).bes @@ -0,0 +1,40 @@ + + + + + Fix Unquoted Registry Paths +
This task uses the PowerShell fix from: https://gallery.technet.microsoft.com/scriptcenter/Windows-Unquoted-Service-190f0341 to correct the unquoted service paths with spaces.  The relevance looks for machines with out a quote that have a space in the service path.]]>
+ exists services whose (exists (image paths of it as lowercase) whose (it does not start with "%22" and preceding text of first ".exe" of it contains " ")) + Software Distribution + Software Distribution Wizard + 2018-01-16 + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 10 Jan 2018 17:26:19 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + //Download the powershell file from https://gallery.technet.microsoft.com/scriptcenter/Windows-Unquoted-Service-190f0341. You will use that to update the unquoted paths. Make sure to add that download command here either as a prefetch or download from Microsoft. +run powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File __Download\fixpaths.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Fix WMI Errors (3652).bes b/Sites/Windows Management/Fixlets/Fixlets/Fix WMI Errors (3652).bes new file mode 100644 index 000000000..5cff0911a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Fix WMI Errors (3652).bes @@ -0,0 +1,91 @@ + + + + + Fix WMI Errors + Created By: Martin Carnegie
Created: Nov 5, 2013
Comments:
NOTE: Please do testing of this fixlet before using in production as this could cause further issues with WMI!

+

This script contains two actions that can be used to fix WMI errors on Windows systems.

WMI Simple should be the first one used as it does not impact the system that much and seems to fix most issues.

+

WMI Advanced should only be used if the WMI Simple does not fix the issue. This will require a reboot

Both wmi_simple and wmi_advanced were provided from a source at Microsoft, but I am unable to find that source.

]]>
+ name of operating system contains "Win" + not exists wmi | true + Troubleshooting + martin@zaazee.ca + 2013-11-05 + Repair WMI on Windows systems + + x-fixlet-modification-time + Tue, 05 Nov 2013 18:27:23 +0000 + + BESC + + + Click + here + to deploy WMI Simple (Recommended). + + {value of variable "temp" of environment}\wmi_simple.log 2>&1]]> + + + + Click + here + to deploy WMI Advanced. + + {value of variable "temp" of environment}\wmi_advanced.log 2>&1 + +//According to the MS script, the system should be restarted after the script is executed. +action requires restart]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer (652).bes b/Sites/Windows Management/Fixlets/Fixlets/Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer (652).bes new file mode 100644 index 000000000..c6340c7da --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer (652).bes @@ -0,0 +1,36 @@ + + + + + Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer + Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer on target machines. This must be run while the user(s) that you wish to enable these settings for is logged in. + name of operating system starts with "Win" + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2012-10-31 + <Unspecified> + + x-fixlet-modification-time + Wed, 31 Oct 2012 14:53:03 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_USERS\{name of key whose (value "Logon User Name" of key "Explorer" of key "CurrentVersion" of key "Windows" of key "Microsoft" of key "Software" of it as string as lowercase = name of current user as string as lowercase) of key "HKEY_USERS" of registry}\Software\Microsoft\Windows\CurrentVersion\Internet Settings]" "SecureProtocols"=dword:000000a8 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Force GP Update for Computer and Reboot (651).bes b/Sites/Windows Management/Fixlets/Fixlets/Force GP Update for Computer and Reboot (651).bes new file mode 100644 index 000000000..14d0cca92 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Force GP Update for Computer and Reboot (651).bes @@ -0,0 +1,36 @@ + + + + + Force GP Update for Computer and Reboot + Run a GPUpdate and rebot target computer + name of operating system starts with "Win" + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2012-10-31 + <Unspecified> + + x-fixlet-modification-time + Wed, 31 Oct 2012 14:50:24 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden cmd.exe /C gpupdate /force /boot /target:computer + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 (22387).bes b/Sites/Windows Management/Fixlets/Fixlets/Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 (22387).bes new file mode 100644 index 000000000..c5a0bed43 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 (22387).bes @@ -0,0 +1,166 @@ + + + + + Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 + This Task will export Local Group Policy Registry.pol files into a defined set of Registry keys. 

+

The purpose is to provide a means of inspecting the Local Group Policy configuration in other Fixlets/Tasks.  Originally we had a large number of Fixlets reading values from Registry.pol files directly; but the Relevance for doing so was complex, resource-intensive, and prone to causing issues due to file locking of the Registry.pol files.

+

This Task will search for both Computer, User, and MLGPO instances of Registry.pol, export them to text files via Microsoft's "LGPO.exe" utility, and import the results into the Registry under a number of keys.  Currently these are exported to HKLM\Software\BES_LGPO with subkeys for "Machine", "User", and (potentially) for each MLGPO-defined policy.

+

MLGPO reference: https://technet.microsoft.com/en-us/library/cc766291%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396

+

This Fixlet adds data at HKLM\Software\BES_LGPO subkeys:

+
    +
  • Machine +
  • User +
  • S-<whatever SIDS defined for MLGPO settings>
+

 Beneath each of these Keys are a number of Values.  The Value Name corresponds to the registy key & value that the LGPO configures; and the Value Data corresponds to the Data Type and Value that the LGPO applies.  Example

+

[HKEY_LOCAL_MACHINE\SOFTWARE\BES_LGPO\User]

+

Software\Policies\Microsoft\Windows\Control Panel\Desktop\ScreenSaveActive

+

REG_SZ:"SZ:1"

+

 

+

This Task should be run as a repeating Policy to ensure the registry values are updated periodically.  The registry values output will be used by a number of Security Policy fixlets.  This should also be added as a task in any Baseline that changes Local Group Policy settings, to ensure the new values are captured after the settings are applied.

+

 v1.1: Updated to handle XP/2003 using ImportRegPol.exe rather than LGPO.exe

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + Data Collection + Internal + 2016-07-05 + + x-fixlet-modification-time + Mon, 01 Aug 2016 21:16:09 +0000 + + BESC + + + Click + here + to deploy this action. + + = version "6"} + add prefetch item name=LGPO.exe sha1=f5a4a8e27b428c2d9a1c1ba7d72ba08b77406a9c size=380208 url=http://MANUAL_BES_CACHING_REQUIRED/LGPO.exe sha256=a8e0b52dea3836071f3f46235c126cb7fe986abdcc3d1b819d7c2cd101999cb3 + else + add prefetch item name=ImportRegPol.exe sha1=69d4881eb10a8f8c121e9ea63323ba6bfc028f31 size=181248 url=http://MANUAL_BES_CACHING_REQUIRED/ImportRegPol.exe + endif + collect prefetch items +end prefetch block + + +action uses wow64 redirection false +if {version of operating system >= version "6"} + parameter "LGPO"="{pathname of download file "LGPO.EXE"}" + utility __Download\LGPO.exe + else + parameter "LGPO"="{pathname of download file "ImportRegPol.EXE"}" + utility __Download\ImportRegPol.exe +endif + +// Path of each registry.pol file to parse, and the context (Computer|User) for the settings +// Split via ";", ", /u" refers to User and ", /m" refers to Machine +// Check Machine\Registry.pol, User\Registry.pol, and each potential MLGPO folder at System32\GroupPolicyUsers +parameter "Registry.pol"="{pathname of system folder}\GroupPolicy\Machine\Registry.pol, /m;{pathname of system folder}\GroupPolicy\User\Registry.pol, /u{(if it !="" then ";" & it else "") of concatenation ";" of (it & ", /u") of pathnames of files "Registry.pol" of folders of folders "GroupPolicyUsers" of native system folder}" + +// Registry key into which we are going to write the output settings - +parameter "RootKey"="HKEY_LOCAL_MACHINE\Software\BES_LGPO" + +// Locate Registry.pol and export it to LGPO Text file +delete __appendfile +// This creates a .inf file corresponding to each Registry.pol file found +// Output .INF files are saved in the __Download folder (taking advantage of the BES Client behavior of keeping the download folder clean) +// Files are named for the parent folder of Registry.pol - should be "Machine", "User", or the SID for an MLGPO user object +// Output is generated by LGPO.exe or ImportRegPol.exe depending on OS +// IF EXIST "PATH\Registry.pol" "PATH\LGPO.EXE" /parse /m "PATH\registry.pol" > __Download\parentdir.inf 2>>__Download\Export_Registry_Pol.err || EXIT /B 1 +if {version of operating system >= version "6"} + appendfile {concatenation "%0d%0a" of ("IF EXIST %22" & tuple string item 0 of it & "%22 %22" & parameter "LGPO" & "%22 /parse " & tuple string item 1 of it & " %22" & tuple string item 0 of it & "%22 > __Download\" & (following text of last "\" of preceding text of last "\" of tuple string item 0 of it) & ".inf 2>>__Download\Export_Registry_Pol.err || EXIT /B 1" ) of substrings separated by ";" of parameter "Registry.pol"} +else + appendfile {concatenation "%0d%0a" of ("IF EXIST %22" & tuple string item 0 of it & "%22 %22" & parameter "LGPO" & "%22 " & tuple string item 1 of it & " %22" & tuple string item 0 of it & "%22 /parseOnly /log __Download\" & (following text of last "\" of preceding text of last "\" of tuple string item 0 of it) & ".inf /error __Download\Export_Registry_Pol.err || EXIT /B 1" ) of substrings separated by ";" of parameter "Registry.pol"} +endif + +delete ExportRegistryPol.cmd +move __appendfile ExportRegistryPol.cmd + +waithidden cmd /c ExportRegistryPol.cmd +// Check for ExportRegistryPol.cmd error output +continue if {not exists lines whose (it contains "Error") of files "Export_Registry_Pol.err" of download folder } + +// If we failed to export any of the registry.pol files to INF, stop here, leaving the prior Registry entries intact +continue if {exit code of action = 0} + +// All targeted Registry.pol files have been exported. +// Delete the output Registry key, +// insert a new CaptureTime, and import all of the outputted Registry.inf files +delete __appendfile +appendfile reg.exe delete "{parameter "RootKey"}" /F +appendfile reg.exe add "{parameter "RootKey"}" /v __CaptureTime /t REG_SZ /d "{now}" /F + +appendfile SET RETCODE=0 +// Include handling for special cases: +// if "value name" is empty substitute "(default)" +// escape any embedded quotes with backslash (%22 ==> \%22 ) +// Double-up on any embedded percent signs ( %25 ==> %25%25 ) +// + +appendfile {concatenation "%0d%0a" of ("reg.exe add %22HKLM\Software\BES_LGPO\" & preceding text of last ".inf" of name of item 3 of it /* Removed: naming the key for "computer" or "user", that's evident already :: & "\" & item 0 of it */ & "%22 /v %22" & item 1 of it & "%22 /t REG_SZ /d %22" & item 2 of it & "%22 /F || SET RETCODE += 1") of ((item 0 of it, next line of item 0 of it & "\" & (if it as trimmed string = "" then "(default)" else it) of next line of next line of item 0 of it, concatenation "\%22" of substrings separated by "%22" of concatenation "%25%25" of substrings separated by "%25" of next line of next line of next line of item 0 of it, item 1 of it)) of (lines whose (previous line of it = "" and it as trimmed string as lowercase = "computer" or it as trimmed string as lowercase = "user") of it, it) of files whose (name of it as lowercase ends with ".inf") of download folder} +appendfile exit /B %RETCODE% + +delete regadd.cmd +move __appendfile regadd.cmd +waithidden cmd /c regadd.cmd + +// If any of the REG ADD commands failed, the batch will return a non-zero code which we should flag here +continue if {exit code of action = 0} + +// Even if we try to force a GPUpdate, the Policies registry key may not update until reboot +runhidden gpupdate.exe /target:computer /wait:0 + + +// ---- Only comments beyond this line ------ + +// Example .inf file format +//; ---------------------------------------------------------- +//; PARSING COMPUTER POLICY +//; Source file: Registry.pol + +//Computer +//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer +//NoInternetOpenWith +//DWORD:1 +// +//Computer +//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer +//NoOnlinePrintsWizard +//DWORD:1 +// +//Computer +//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer +//PreXPSP2ShellProtocolBehavior +//DWORD:0 +// +//Computer +//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer +//DisableLocalMachineRunOnce +//DWORD:1 +// +// Parsing logic: +// * Grab a list of .inf files, and preserve their names (filename is used in naming the output registry key) +// * Find a line that is only "Computer" or "User", preceded by an empty line +// * Grab that line (Computer|User), and the three lines after it, as items +// * The first line (Computer|User) is ignored. Line 2 and 3 are concatenated to make a registry value name (like Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisableLocalMachineRunOnce). If line 3 is empty replace it with (default) +// * The fourth line is used as the value data (DWORD:1). +// Include handling for special cases: +// if "value name" is empty substitute "(default)" +// escape any embedded quotes with backslash (%22 ==> \%22 ) +// Double-up on any embedded percent signs ( %25 ==> %25%25 ) + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Generate PowerCFG Energy Report - Windows (6040).bes b/Sites/Windows Management/Fixlets/Fixlets/Generate PowerCFG Energy Report - Windows (6040).bes new file mode 100644 index 000000000..8a49683d8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Generate PowerCFG Energy Report - Windows (6040).bes @@ -0,0 +1,67 @@ + + + + + Generate PowerCFG Energy Report - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + (now - modification time of it)) of parent folder of client]]> + Internal + jgstew + 2014-03-28 + + x-fixlet-modification-time + Fri, 11 Apr 2014 18:39:56 +0000 + + BESC + + + Click + here + to deploy this action. + + ] [/XML] [/DURATION ] +// POWERCFG /ENERGY /TRACE [/D ] [/XML] [/DURATION ] + +// Parameter List: +// /OUTPUT Specify the path and filename to store the energy report HTML or XML file. +// /XML Format the report file as XML. +// /DURATION Specify the number of seconds to observe system behavior. Default is 60 seconds. +// /TRACE Record system behavior and do not perform analysis. Trace files will be generated in the current path unless the /D parameter is specified. +// /D Specify the directory to store trace data. May only be used with the /TRACE parameter. + +// Examples: +// POWERCFG /ENERGY +// POWERCFG /ENERGY /OUTPUT "longtrace.html" /DURATION 120 + +waithidden {system folder}\powercfg.exe /energy /xml /DURATION 15 /output "{pathname of parent folder of client}\__BESData\__Global\Logs\energy-report.xml" >> "{pathname of parent folder of client}\__BESData\__Global\Logs\energy-report_PowerCFG_CMD.log" +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Get AD Description (3755).bes b/Sites/Windows Management/Fixlets/Fixlets/Get AD Description (3755).bes new file mode 100644 index 000000000..c3ecff075 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Get AD Description (3755).bes @@ -0,0 +1,86 @@ + + + + + Get AD Description + ADLocation.txt' located in the client root directory ]]> + (not exist file "ADDescription.txt" of parent folder of client) OR (exists file "ADDescription.txt" whose (not exist line 1 of it) of parent folder of client) + IBM (mike.english@us.ibm.com) + 2013-06-05 + N/A + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 05 Jun 2013 21:52:45 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + "" Then +appendfile 'wscript.echo sDescription +appendfile objOutputFile.WriteLine(sDescription) +appendfile objOutputFile.Close +appendfile +appendfile Else +appendfile sDescription = "AD Description could not be obtained" +appendfile 'wscript.echo sDescription +appendfile objOutputFile.WriteLine(sDescription) +appendfile objOutputFile.Close +appendfile +appendfile End If +appendfile +appendfile Set objFileSystem = Nothing +appendfile Set oShell = Nothing +appendfile Set oAdSysInfo = Nothing +appendfile Set o = Nothing +appendfile +appendfile WScript.Quit(0) + +move __appendfile GetADDescription.vbs + +// Execute the VBScript silently using cscript.exe +waithidden cscript.exe GetADDescription.vbs + +// Delete the VBScript we just created. +delete GetADDescription.vbs]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Get AD Location (3756).bes b/Sites/Windows Management/Fixlets/Fixlets/Get AD Location (3756).bes new file mode 100644 index 000000000..edc027a2f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Get AD Location (3756).bes @@ -0,0 +1,86 @@ + + + + + Get AD Location + ADLocation.txt' located in the client root directory ]]> + (not exist file "ADLocation.txt" of parent folder of client) OR (exists file "ADLocation.txt" whose (not exist line 1 of it) of parent folder of client) + IBM (mike.english@us.ibm.com) + 2013-06-05 + N/A + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 05 Jun 2013 17:01:40 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + "" Then +appendfile 'wscript.echo sLocation +appendfile objOutputFile.WriteLine(sLocation) +appendfile objOutputFile.Close +appendfile +appendfile Else +appendfile sLocation = "AD Location could not be obtained" +appendfile 'wscript.echo sLocation +appendfile objOutputFile.WriteLine(sLocation) +appendfile objOutputFile.Close +appendfile +appendfile End If +appendfile +appendfile Set objFileSystem = Nothing +appendfile Set oShell = Nothing +appendfile Set oAdSysInfo = Nothing +appendfile Set o = Nothing +appendfile +appendfile WScript.Quit(0) + +move __appendfile GetADLocation.vbs + +// Execute the VBScript silently using cscript.exe +waithidden cscript.exe GetADLocation.vbs + +// Delete the VBScript we just created. +delete GetADLocation.vbs]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24321).bes b/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24321).bes new file mode 100644 index 000000000..67bdec317 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24321).bes @@ -0,0 +1,57 @@ + + + + + Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrxsmb10" of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 21:03:43 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Install-WindowsFeature -Name FS-SMB1 + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24323).bes b/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24323).bes new file mode 100644 index 000000000..083b6dab5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24323).bes @@ -0,0 +1,57 @@ + + + + + Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system + not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\ServicingStorage\ServerComponentCache\FS-SMB1" whose (value "InstallState" of it = 1) of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 23:08:05 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24320).bes b/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24320).bes new file mode 100644 index 000000000..75582f9e0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24320).bes @@ -0,0 +1,57 @@ + + + + + Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrxsmb10" of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 21:03:55 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Remove-WindowsFeature -Name FS-SMB1 + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24322).bes b/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24322).bes new file mode 100644 index 000000000..43dd4bf8f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24322).bes @@ -0,0 +1,57 @@ + + + + + Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\ServicingStorage\ServerComponentCache\FS-SMB1" whose (value "InstallState" of it = 1) of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 23:08:16 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26940).bes b/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26940).bes new file mode 100644 index 000000000..456eb5a9a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26940).bes @@ -0,0 +1,136 @@ + + + + + HCL Labs: Run as Local User without or Without Elevation (Interactive) + + windows of operating system + Internal + 2019-05-20 + + x-fixlet-modification-time + Tue, 19 Jul 2022 16:21:02 +0000 + + BESC + + + Click + here + to run script without elevation. + + %systemroot%\test.out +EOF_EOF_EOF + + +parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" +parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" +// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user +parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" +if {exists logged on users} + +folder create "{parameter "user_profile"}\BES_Action" +delete "{parameter "user_profile"}\BES_Action\test.cmd" +copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" + +// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist +action uses wow64 redirection false + +override wait +hidden=false +runas=localuser +user={parameter "user_domain_name"} +password=impersonate +wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" + +else + parameter "Skipped"="No logged on user" +endif + +]]> + + + + Click + here + to run script with elevation prompt. + + nul 2>&1 + +@REM --> If error flag set, we do not have admin. +@if '%ERRORLEVEL%' NEQ '0' ( + @echo Requesting administrative privileges... + @goto UACPrompt +) else ( @goto gotAdmin ) + +:UACPrompt + @del /q "%temp%\getadmin.vbs" > NUL 2>&1 + @IF EXIST "%temp%\getadmin.vbs" @echo Unable to clear previous getadmin.vbs, aborting... & exit /B 1 + @echo msgbox "A BigFix Action run in user context requires administrative elevation. Please accept the following elevation prompt from User Access Control (UAC)",0,"BigFix Elevation Prompt" > "%temp%\getadmin.vbs" + @echo Set UAC = CreateObject^("Shell.Application"^) >> "%temp%\getadmin.vbs" + @echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" + + @wscript.exe "%temp%\getadmin.vbs" + @exit /B + +:gotAdmin + @if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) + @pushd "%CD%" + @REM CD /D "%~dp0" + +@REM ############################################ +@REM Now do the things that required elevation + +echo test > %systemroot%\test.out +exit /B %ERRORLEVEL% + +@REM ############ End of batch script ########### + + +EOF_EOF_EOF + +//RunAs=currentuser +//asadmin=interactive +parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" +parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" +// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user +parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" +if {exists logged on users} + +folder create "{parameter "user_profile"}\BES_Action" +delete "{parameter "user_profile"}\BES_Action\test.cmd" +copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" + +// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist +action uses wow64 redirection false + +override wait +hidden=false +runas=localuser +user={parameter "user_domain_name"} +password=impersonate +wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" + +else + parameter "Skipped"="No logged on user" +endif + +]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26941).bes b/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26941).bes new file mode 100644 index 000000000..351771b6c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26941).bes @@ -0,0 +1,136 @@ + + + + + HCL Labs: Run as Local User without or Without Elevation (Interactive) + + windows of operating system + Internal + 2019-05-20 + + x-fixlet-modification-time + Tue, 19 Jul 2022 16:21:02 +0000 + + BESC + + + Click + here + to run script without elevation. + + %systemroot%\test.out +EOF_EOF_EOF + + +parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" +parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" +// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user +parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" +if {exists logged on users} + +folder create "{parameter "user_profile"}\BES_Action" +delete "{parameter "user_profile"}\BES_Action\test.cmd" +copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" + +// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist +action uses wow64 redirection false + +override wait +hidden=false +runas=localuser +user={parameter "user_domain_name"} +password=impersonate +wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" + +else + parameter "Skipped"="No logged on user" +endif + +]]> + + + + Click + here + to run script with elevation prompt. + + nul 2>&1 + +@REM --> If error flag set, we do not have admin. +@if '%ERRORLEVEL%' NEQ '0' ( + @echo Requesting administrative privileges... + @goto UACPrompt +) else ( @goto gotAdmin ) + +:UACPrompt + @del /q "%temp%\getadmin.vbs" > NUL 2>&1 + @IF EXIST "%temp%\getadmin.vbs" @echo Unable to clear previous getadmin.vbs, aborting... & exit /B 1 + @echo msgbox "A BigFix Action run in user context requires administrative elevation. Please accept the following elevation prompt from User Access Control (UAC)",0,"BigFix Elevation Prompt" > "%temp%\getadmin.vbs" + @echo Set UAC = CreateObject^("Shell.Application"^) >> "%temp%\getadmin.vbs" + @echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" + + @wscript.exe "%temp%\getadmin.vbs" + @exit /B + +:gotAdmin + @if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) + @pushd "%CD%" + @REM CD /D "%~dp0" + +@REM ############################################ +@REM Now do the things that required elevation + +echo test > %systemroot%\test.out +exit /B %ERRORLEVEL% + +@REM ############ End of batch script ########### + + +EOF_EOF_EOF + +//RunAs=currentuser +//asadmin=interactive +parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" +parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" +// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user +parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" +if {exists logged on users} + +folder create "{parameter "user_profile"}\BES_Action" +delete "{parameter "user_profile"}\BES_Action\test.cmd" +copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" + +// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist +action uses wow64 redirection false + +override wait +hidden=false +runas=localuser +user={parameter "user_domain_name"} +password=impersonate +wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" + +else + parameter "Skipped"="No logged on user" +endif + +]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 2.0 Service Pack 2 (106).bes b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 2.0 Service Pack 2 (106).bes new file mode 100644 index 000000000..a9dc2eacc --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 2.0 Service Pack 2 (106).bes @@ -0,0 +1,55 @@ + + + + + Install Microsoft .NET Framework 2.0 Service Pack 2 +
Please review the supported operating systems for this deployment package in the System Requirements section. The corresponding updates for Windows Vista and Microsoft Windows 2008 are deployed via the full .NET Framework 3.5 service pack 1. ]]>
+ (name of it = "Win2000" OR name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2" OR name of it = "WinXPe") of operating system AND TRUE + Install + danielheth@bigfix.me + <Unspecified> + 2012-10-03 + <Unspecified> + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 03 Oct 2012 16:26:15 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + if {x64 of operating system} + prefetch NetFx20SP2_x64.exe sha1:a7cc6c6e5a4ad9cdf3df16a7d277eb09fec429b7 size:48524296 http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x64.exe + wait __Download\NetFx20SP2_x64.exe /quiet /norestart +else + prefetch NetFx20SP2_x86.exe sha1:22d776d4d204863105a5db99e8b8888be23c61a7 size:25001480 http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe + wait __Download\NetFx20SP2_x86.exe /quiet /norestart +endif + + + + + Click + here + to learn more about this software. + + http://www.microsoft.com/en-us/download/details.aspx?id=1639 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 3.5 (104).bes b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 3.5 (104).bes new file mode 100644 index 000000000..acf44dcb7 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 3.5 (104).bes @@ -0,0 +1,58 @@ + + + + + Install Microsoft .NET Framework 3.5 + +
    +
  • Deep integration of Language Integrated Query (LINQ) and data awareness. This new feature will let you write code written in LINQ-enabled languages to filter, enumerate, and create projections of several types of SQL data, collections, XML, and DataSets by using the same syntax. +
  • ASP.NET AJAX lets you create more efficient, more interactive, and highly-personalized Web experiences that work across all the most popular browsers. +
  • New Web protocol support for building WCF services including AJAX, JSON, REST, POX, RSS, ATOM, and several new WS-* standards. +
  • Full tooling support in Visual Studio 2008 for WF, WCF, and WPF, including the new workflow-enabled services technology. +
  • New classes in .NET Framework 3.5 base class library (BCL) that address many common customer requests.
]]>
+ (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2") of operating system + not exists key "HKLM\SOFTWARE\Microsoft\.NETFramework\v3.0" of native registry + Install + danielheth@bigfix.me + <Unspecified> + 2012-10-02 + <Unspecified> + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 03 Oct 2012 16:04:19 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch dotNetFx35setup.exe sha1:b0ca05c12ebb9a3610206bad7f219e02b7873cbd size:2869264 http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe +wait __Download\dotNetFx35setup.exe /norestart /quiet + + + + + + Click + here + to learn more about this software. + + http://www.microsoft.com/en-us/download/details.aspx?id=21 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 4 (3626).bes b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 4 (3626).bes new file mode 100644 index 000000000..7e2317bf4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 4 (3626).bes @@ -0,0 +1,82 @@ + + + + + Install Microsoft .NET Framework 4 + The .NET Framework is Microsoft's comprehensive and consistent programming model for building applications that have visually stunning user experiences, seamless and secure communication, and the ability to model a range of business processes.

The .NET Framework 4 works side by side with older Framework versions. Applications that are based on earlier versions of the Framework will continue to run on the version targeted by default.

The Microsoft .NET Framework 4 provides the following new features and improvements:

+
    +
  • Improvements in Common Language Runtime (CLR) and Base Class Library (BCL) +
      +
    • Performance improvement including better multicore support, background garbage collection, and profiler attach on server. +
    • New memory mapped file and numeric types. +
    • Easier debugging including dump debugging, Watson minidumps, mixed mode debugging for 64 bit and code contracts. +
    • For a comprehensive list of enhancements to CLR and BCL go here.
    +
  • Innovations in the Visual Basic and C# languages, for example statement lambdas, implicit line continuations, dynamic dispatch, and named/optional parameters. +
  • Improvements in Data Access and Modeling +
      +
    • The Entity Framework enables developers to program against relational databases using .NET objects and Language Integrated Query (LINQ). It has many new features, including persistence ignorance and POCO support, foreign key associations, lazy loading, test-driven development support, functions in the model, and new LINQ operators. Additional features include better n-tier support with self-tracking entities, customizable code generation using T4 templates, model first development, an improved designer experience, better performance, and pluralization of entity sets. For more information go here. +
    • WCF Data Services is a component of the .NET Framework that enables you to create REST-based services and applications that use the Open Data Protocol (OData) to expose and consume data over the Web. WCF Data Services has many new features, including enhanced BLOB support, data binding, row count, feed customization, projections, and request pipeline improvements. Built-in integration with Microsoft Office 2010 now makes it possible to expose Microsoft Office SharePoint Server data as an OData feed and access that data feed by using the WCF Data Services client library. For more information go here.
    +
  • Enhancements to ASP.NET +
      +
    • More control over HTML, element IDs and custom CSS that make it much easier to create standards-compliant and SEO-friendly web forms. +
    • New dynamic data features including new query filters, entity templates, richer support for Entity Framework 4, and validation and templating features that can be easily applied to existing web forms. +
    • Web forms support for new AJAX library improvements including built-in support for content delivery networks (CDNs). +
    • For a comprehensive list of enhancements to ASP.NET go here.
    +
  • Improvements in Windows Presentation Foundation (WPF) +
      +
    • Added support for Windows 7 multi-touch, ribbon controls, and taskbar extensibility features. +
    • Added support for Surface 2.0 SDK. +
    • New line-of-business controls including charting control, smart edit, data grid, and others that improve the experience for developers who build data centric applications. +
    • Improvements in performance and scalability. +
    • Visual improvements in text clarity, layout pixel snapping, localization, and interoperability. +
    • For a comprehensive list of enhancements to WPF go here.
    +
  • Improvements to Windows Workflow (WF) that enable developers to better host and interact with workflows. These include an improved activity programming model, an improved designer experience, a new flowchart modeling style, an expanded activity palette, workflow-rules integration, and new message correlation features. The .NET Framework 4 also offers significant performance gains for WF-based workflows. For a comprehensive list of enhancements to WF go here. +
  • Improvements to Windows Communication Foundation (WCF) such as support for WCF Workflow Services enabling workflow programs with messaging activities, correlation support. Additionally, .NET Framework 4 provides new WCF features such as service discovery, routing service, REST support, diagnostics, and performance. For a comprehensive list of enhancements to WCF go here. +
  • Innovative new parallel-programming features such as parallel loop support, Task Parallel Library (TPL), Parallel LINQ (PLINQ), and coordination data structures which let developers harness the power of multi-core processors.
]]>
+ (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2" OR name of it = "WinXPe") of operating system + not exists key "HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" of native registry + Install + danielheth@bigfix.me + <Unspecified> + 2012-10-03 + <Unspecified> + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 03 Oct 2012 16:07:23 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch dotNetFx40_Full_x86_x64.exe sha1:58da3d74db353aad03588cbb5cea8234166d8b99 size:50449456 http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe + +wait __Download\dotNetFx40_Full_x86_x64.exe /quiet /norestart + + + + + + Click + here + to learn more about this software. + + http://www.microsoft.com/en-us/download/details.aspx?id=17718 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install new wifi certificate - Windows (6247).bes b/Sites/Windows Management/Fixlets/Fixlets/Install new wifi certificate - Windows (6247).bes new file mode 100644 index 000000000..3d5b95d5a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Install new wifi certificate - Windows (6247).bes @@ -0,0 +1,42 @@ + + + + + Install new wifi certificate - Windows + + windows of operating system + = "5.1"]]> + ( exists node values of selects "/WLANProfile/name/text()" of xml documents of files whose(name of it as lowercase ends with ".xml") of folders of folders "C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces" ) OR ( exists wifis of adapters of networks ) + Internal + jgstew + 2015-10-12 + + x-fixlet-modification-time + Mon, 12 Oct 2015 20:29:59 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install_ Debug Diagnostic Tool v2 Update 1 TODO_ Add Relevance (6061).bes b/Sites/Windows Management/Fixlets/Fixlets/Install_ Debug Diagnostic Tool v2 Update 1 TODO_ Add Relevance (6061).bes new file mode 100644 index 000000000..956131554 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Install_ Debug Diagnostic Tool v2 Update 1 TODO_ Add Relevance (6061).bes @@ -0,0 +1,51 @@ + + + + + Install: Debug Diagnostic Tool v2 Update 1 TODO: Add Relevance + This task will deploy: Debug Diagnostic Tool v2 Update 1.

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + Software Distribution + Software Distribution Wizard + jgs194 + 2014-06-03 + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Tue, 12 May 2015 19:10:12 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install_Update_ Debug Diagnostic Tool v2 Update 1 - Windows (6063).bes b/Sites/Windows Management/Fixlets/Fixlets/Install_Update_ Debug Diagnostic Tool v2 Update 1 - Windows (6063).bes new file mode 100644 index 000000000..0477b4244 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Install_Update_ Debug Diagnostic Tool v2 Update 1 - Windows (6063).bes @@ -0,0 +1,55 @@ + + + + + Install/Update: Debug Diagnostic Tool v2 Update 1 - Windows + This task will deploy: Debug Diagnostic Tool v2 Update 1.

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + = "2.1.0.7") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x64 registries;x32 registries)]]> + Software Distribution + Software Distribution Wizard + jgs194 + 2014-06-03 + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Tue, 12 May 2015 19:23:29 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows (22607).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows (22607).bes new file mode 100644 index 000000000..0a5d7c521 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows (22607).bes @@ -0,0 +1,42 @@ + + + + + Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows + This Fixlet adds the currently logged on user, who is an Authorized Admin Requestor, to the Remote Desktop Users group permanently.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ ); ( ( set of ( /*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) + ( set of ( /*Users and Groups in Remote Desktop Users */ sids of members of local group "remote desktop users" as string) ) ) ) + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to grant the current user authorized admin requestor&nbsp;remote desktop access. + + +wait net localgroup "Remote Desktop Users" "{sid of current user}" /add + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows (24153).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows (24153).bes new file mode 100644 index 000000000..f7faad235 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows (24153).bes @@ -0,0 +1,808 @@ + + + + + Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows + This Fixlet adds the currently logged on user, who is an Authorized Admin Requestor, to the administrators group temporarily.

+

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((if (exists sids of groups of logged on user of active directory) then (sids of groups of logged on user of active directory) else (nothing)) as string); /*User Group Memberships. If Statement helps protect against bogus AD Cache results.*/ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights for 1 hour. + + + + + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights for&nbsp;8 hours. + + + + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights for 1 day. + + + + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights for&nbsp;5 days. + + + + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights permanently. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators - Windows (24405).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators - Windows (24405).bes new file mode 100644 index 000000000..0ba034e3c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators - Windows (24405).bes @@ -0,0 +1,41 @@ + + + + + Invoke - Add Current User to Administrators - Windows + This Fixlet adds the currently logged on user to the Administrators group.

+

Applicability Note: This Fixlet will only be relevant if the currently logged on user is not a part of the Administrators group. This Fixlet will not be relevant if the currently logged on user is a part of a group that is part of the Administrators Group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) + Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait net localgroup "administrators" "{sid of current user}" /add + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators Temporarily - Windows (21369).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators Temporarily - Windows (21369).bes new file mode 100644 index 000000000..3787d7f66 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators Temporarily - Windows (21369).bes @@ -0,0 +1,101 @@ + + + + + Invoke - Add Current User to Administrators Temporarily - Windows + This Fixlet can be paired with the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to temporarily grant users administrative rights to workstations.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + not exists members whose (sid of it = sid of logged on user) of local group "administrators" + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to grant the current user administrative rights for 1 hour. + + wait net localgroup "administrators" "{sid of logged on user}" /add + +parameter "Timestamp"="{now as string}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (1 * hour)}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (1 * hour)}" + + + + + + + Click + here + to grant the current user administrative rights for 8 hours. + + wait net localgroup "administrators" "{sid of logged on user}" /add + +parameter "Timestamp"="{now as string}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (8 * hour)}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (8 * hour)}" + + + + + + Click + here + to grant the current user administrative rights for 1 day. + + wait net localgroup "administrators" "{sid of logged on user}" /add + +parameter "Timestamp"="{now as string}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (1 * day)}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (1 * day)}" + + + + + + Click + here + to grant the current user administrative rights for&nbsp;5 days. + + wait net localgroup "administrators" "{sid of logged on user}" /add + +parameter "Timestamp"="{now as string}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (5 * day)}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (5 * day)}" + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Authorized Requestors - Windows (24154).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Authorized Requestors - Windows (24154).bes new file mode 100644 index 000000000..c09ade979 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Authorized Requestors - Windows (24154).bes @@ -0,0 +1,186 @@ + + + + + Invoke - Add Current User to Authorized Requestors - Windows + This Fixlet marks the currently logged on user as being an authorized temporary administrative rights requestor. This can be paired with the other Authorized Admin Requestor content to manage who is allowed to request administrative rights on an endpoint.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + not exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to add the user as an Authorized Temporary Admin Requestor. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Remote Desktop Users - Windows (24406).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Remote Desktop Users - Windows (24406).bes new file mode 100644 index 000000000..33af957fe --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Remote Desktop Users - Windows (24406).bes @@ -0,0 +1,41 @@ + + + + + Invoke - Add Current User to Remote Desktop Users - Windows + This Fixlet adds the currently logged on user to the Remote Desktop Users group.

+

Applicability Note: This Fixlet will not be relevant if the currently logged on user is a part of the Remote Desktop Users group or the Administrators Group. This Fixlet will not be relevant if the currently logged on user is a part of a group that is part of the Administrators Group or the Remote Desktop Users group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ ); ( ( set of ( /*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) + ( set of ( /*Users and Groups in Remote Desktop Users */ sids of members of local group "remote desktop users" as string) ) ) ) + Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait net localgroup "Remote Desktop Users" "{sid of current user}" /add + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Temporary Administrators - Windows (24155).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Temporary Administrators - Windows (24155).bes new file mode 100644 index 000000000..d6cd194bd --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Temporary Administrators - Windows (24155).bes @@ -0,0 +1,807 @@ + + + + + Invoke - Add Current User to Temporary Administrators - Windows + This Fixlet grants a user administrative rights and creates a store of users with their expirations dates/times.

+

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to grant the current user administrative rights for 1 hour. + + + + + + + Click + here + to grant the current user administrative rights for 8 hours. + + + + + + Click + here + to grant the current user administrative rights for 1 day. + + + + + + Click + here + to grant the current user administrative rights for&nbsp;5 days. + + + + + + Click + here + to grant the current user administrative rights for&nbsp;permanently. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Gold Image Hashes to Authorized Files - Windows (21897).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Gold Image Hashes to Authorized Files - Windows (21897).bes new file mode 100644 index 000000000..09fe1c4de --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Gold Image Hashes to Authorized Files - Windows (21897).bes @@ -0,0 +1,84 @@ + + + + + Invoke - Add Gold Image Hashes to Authorized Files - Windows + + exists main gather service + + RES Software + 2016-10-03 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + > $LogFile +} + +#Get List of Files older than the TimeStamp in the Repository (Initialize Empty Array for PS <= 2.0) +$Files = @(Get-ChildItem -force -Recurse (resolve-path $InputDir).path -Filter $InputFilter -ErrorAction SilentlyContinue) + +foreach ($File in $Files) {{ + write-log "Processing $($File.FullName)" + + write-log "Running: & ""$PwrTech"" /importhashes=""$($File.FullName)"" /createifnotexists" + + $Output = & "$PwrTech" /importhashes="$($File.FullName)" /createifnotexists | Out-String + + write-log $Output + + if (($Output -join "`r`n") -like "*Finished importing file hashes*") {{ + write-log "Success. Deleting $($File.FullName)" + remove-item $File.FullName -erroraction silentlycontinue + } else {{ + write-log "Failure. Leaving $($File.FullName)" + } + + write-log "Done Processing $($File.FullName)" +} +_end_ + +move __createfile run.ps1 + +waithidden powershell.exe -executionpolicy bypass -file "run.ps1" -InputDir "{(value "EnterpriseServerFolder" of it as string & "UploadManagerData\BufferDir\sha1") of key "HKEY_LOCAL_MACHINE\Software\BigFix\Enterprise Server" of x32 registry}"]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Permanent Administrators to Authorized Requestors - Windows (24156).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Permanent Administrators to Authorized Requestors - Windows (24156).bes new file mode 100644 index 000000000..be4e6f295 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Permanent Administrators to Authorized Requestors - Windows (24156).bes @@ -0,0 +1,187 @@ + + + + + Invoke - Add Permanent Administrators to Authorized Requestors - Windows + This all all explicit members of the local administrators group as Authorized Temporary Administartive Rights Requestors.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + 0) of ( /* Add All Explicit Members of Administrators */ set of component strings of (sids of members of local group "Administrators") whose (exists user of it) /* Subtract Current Authorized Requestors */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry /* Subtract Current Temporary Administrators */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry /* Subtract Local Administrator (Can't Remove) */ - set of component string of sid of user "Administrator" )]]> + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to add all local administrators&nbsp;as&nbsp;Authorized Temporary Administrative&nbsp;Rights&nbsp;Requestors. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Analyze Application Usage - Windows (21122).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Analyze Application Usage - Windows (21122).bes new file mode 100644 index 000000000..db17e80d0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Analyze Application Usage - Windows (21122).bes @@ -0,0 +1,152 @@ + + + + + Invoke - Analyze Application Usage - Windows + This Fixlet does an extraction of Applocker Logs from the system and stores the results in an XML document in the __Global\C3AppUsage folder. This XML document can then be read to track application usage.

+

For general information or to report issues with C3 Application Usage content please visit GitHub here: https://github.com/strawgate/C3-Application-Usage

]]>
+ windows of operating system + exists keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + Internal + 2016-07-16 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + Monday, January 1, 00010001-01-01T06:00:00.0000000Z' + } +} + +function get-ApplockerLogs {{ + param ( + $EventsAfter + ) + $Logs = get-winevent -logname "Microsoft-Windows-AppLocker/EXE and DLL" -FilterXPath "*[System[TimeCreated[@SystemTime > '$EventsAfter']]]" + + return $Logs | sort-object -property TimeCreated +} + +function set-datetime {{ + param ( + $XMLNode, + [DateTime]$DateTime + ) + $XMLNode.Date = $DateTime.ToString("ddd, dd MMM yyyy") + $XMLNode.Time = $DateTime.ToString("HH:mm:ss") + $XMLNode.DateTime = "$($DateTime.GetDateTimeFormats("o"))" +} + +# Load Application Usage Store +$Usage = load-usage -File $UsageFile + +$Applications = $Usage.SelectSingleNode("/Usage/Applications") + +$FirstUpdate = $Usage.SelectSingleNode("/Usage/FirstUpdate") +$LastUpdate = $Usage.SelectSingleNode("/Usage/LastUpdate") + +#Get Events +$Applocker = get-applockerlogs -EventsAfter ($LastUpdate.DateTime) + +if (!($Applocker)) {{ write-verbose "No new logs. Exiting."; exit} + +#Process Events into Application Usage Store +foreach ($Event in $Applocker){{ + + if (!($Event.Message -match '(.*?\\([^\\]*?)) was allowed to run.')) {{ continue; } + + $Hash = ([System.BitConverter]::ToString($Event.Properties[12].Value)).replace("-","") + + if (!($Applications.SelectSingleNode("/Usage/Applications/App[@Hash = '$Hash']"))){{ + #Pull Out Regex Matches + $Exe = $Matches[2]; $Path = $Matches[1]; $Version = "N/A" + + # Get Version if it's available + if ($Event.Properties[14].Value -match "(\d+\.*)+$") {{ $Version = $Matches[0]} + # If we've never set FirstUpdate, set it now + if (!($FirstUpdate.DateTime)) {{ set-datetime -XMLNode $FirstUpdate -DateTime $Event.TimeCreated } + + # Create XML Node + [xml]$XML = @" + + $Path + $Exe + + + + $Version + 1 + +"@ + set-datetime -XMLNode $XML.App -DateTime $Event.TimeCreated + + $Applications.AppendChild($Usage.ImportNode($XML.app, $true)) | out-null + } else {{ + $Node = $Applications.SelectSingleNode("/Usage/Applications/App[@Hash = '$Hash']") + + set-datetime -XMLNode $Node -DateTime $Event.TimeCreated + + $Node.Count = "$([int]$Node.Count + 1)" + } +} + +#Save TimeStamp +Set-datetime -XMLNode $LastUpdate -DateTime $Event.TimeCreated + +#Output updated Application Usage Store +#$Usage.OuterXml > $Usage +$Usage.Save($UsageFile) + +_end_ + +move __createfile powershell.ps1 + +override wait +hidden=true +completion=job +wait "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -NoProfile -File powershell.ps1 -UsageFile "{parameter "Storage"}\AppUsage.xml"]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Applocker Rule Creation From Blocks and Warnings - Windows (21336).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Applocker Rule Creation From Blocks and Warnings - Windows (21336).bes new file mode 100644 index 000000000..992c40ec6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Applocker Rule Creation From Blocks and Warnings - Windows (21336).bes @@ -0,0 +1,250 @@ + + + + + Invoke - Applocker Rule Creation From Blocks and Warnings - Windows + Creates BigFix Fixlets for denied or audited Applocker events on the target system.

+

Fixlets are placed in the BES Client Directory under __BESData\__Global\ApplockerGeneratedRules

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + Internal + 2016-05-28 + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" +parameter "Storage"="{pathname of data folder of client}\__Global\ApplockerGeneratedRules" + +createfile until __end__ +Function Remove-InvalidFileNameChars {{ +<# +.SYNOPSIS +Removes characters considered invalid by the Windows Operating System for file names. + +.DESCRIPTION +Takes a string over the pipline or as a parameter and removes invalid characters from the file name. +This sanitization allows you safely take the name you have passed and use it to save a file to disk. + +.PARAMETER Name +A string you wish to escape +#> + param( + [Parameter(Mandatory=$true, + Position=0, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true)] + [String]$Name + ) + + $invalidChars = [IO.Path]::GetInvalidFileNameChars() -join '' + $re = "[{{0}%]" -f [RegEx]::Escape($invalidChars) + return ($Name -replace $re) +} + +Function Merge-AppLockerPolicy {{ + Param ( + $Policies + ) + $ExeMethod = "" + $MsiMethod = "" + $ScriptMethod = "" + $AppxMethod = "" + + $ExeRules = "" + $MsiRules = "" + $ScriptRules = "" + $AppXRules = "" + + foreach ($Policy in $Policies) {{ + $xml = select-xml -Path $Ruleset.fullname -XPath "/AppLockerPolicy/RuleCollection" + + foreach ($Collection in $XML) {{ + + if ($Collection.Node.Type -eq "Exe") {{ + if ($Collection.Node.InnerXml.trim()) {{$ExeRules += $Collection.Node.InnerXml.tostring()} + if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $ExeMethod -ne "Enabled") {{ $ExeMethod = 'EnforcementMode="AuditOnly"' } + if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $ExeMethod = 'EnforcementMode="Enabled"' } + } + + if ($Collection.Node.Type -eq "Script") {{ + if ($Collection.Node.InnerXml.trim()) {{$ScriptRules += $Collection.Node.InnerXml.tostring()} + if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $ScriptMethod -ne "Enabled") {{ $ScriptMethod = 'EnforcementMode="AuditOnly"' } + if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $ScriptMethod = 'EnforcementMode="Enabled"' } + } + + if ($Collection.Node.Type -eq "Msi") {{ + if ($Collection.Node.InnerXml.trim()) {{$MsiRules += $Collection.Node.InnerXml.tostring()} + if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $MsiMethod -ne "Enabled") {{ $MsiMethod = 'EnforcementMode="AuditOnly"' } + if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $MsiMethod = 'EnforcementMode="Enabled"' } + } + + if ($Collection.Node.Type -eq "AppX") {{ + if ($Collection.Node.InnerXml.trim()) {{$AppXRules += $Xml.Node.InnerXml.tostring()} + if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $AppXMethod -ne "Enabled") {{ $AppXMethod = 'EnforcementMode="AuditOnly"' } + if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $AppXMethod = 'EnforcementMode="Enabled"' } + } + + } + } + + $Policy = @" +<AppLockerPolicy Version="1"> + <RuleCollection Type="Exe" $ExeMethod> + $ExeRules + </RuleCollection> + <RuleCollection Type="Msi" $MsiMethod> + $MsiRules + </RuleCollection> + <RuleCollection Type="Script" $ScriptMethod> + $ScriptRules + </RuleCollection> + <RuleCollection Type="Appx" $AppxMethod> + $AppxRules + </RuleCollection> +</AppLockerPolicy> +"@ + return $Policy +} + +Function New-ApplockerFixlet {{ + Param ( + $Type, + $Name, + $XML + ) + +$Fixlet = @" +<?xml version="1.0" encoding="UTF-8"?> +<BES xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="BES.xsd"> + <Fixlet> + <Title>Config - Cache Applocker Rules - $Type, $Name - Windows</Title> + <Description><![CDATA[<P>This policy adds a policy to Applocker. Specifically it provides a rule for $Type</P><br>The rule self describes as: $Name]]></Description> + <Relevance>Windows of Operating System</Relevance> + <Relevance><![CDATA[(not exists file (pathname of data folder of client & "\__Global\Applocker\$(Remove-InvalidFileNameChars "$Type-$Name").xml"))]]></Relevance> + <Category>Application Whitelisting</Category> + <Source>Internal</Source> + <SourceID></SourceID> + <SourceReleaseDate>2016-05-10</SourceReleaseDate> + <SourceSeverity></SourceSeverity> + <CVENames></CVENames> + <SANSID></SANSID> + <MIMEField> + <Name>x-fixlet-modification-time</Name> + <Value>Tue, 17 May 2016 21:39:44 +0000</Value> + </MIMEField> + <Domain>BESC</Domain> + <DefaultAction ID="Action1"> + <Description> + <PreLink>Click </PreLink> + <Link>here</Link> + <PostLink> to deploy this action.</PostLink> + </Description> + <ActionScript MIMEType="application/x-Fixlet-Windows-Shell"><![CDATA[action uses wow64 redirection {{not x64 of operating system} + +parameter "RuleName"="$(Remove-InvalidFileNameChars "$Type-$Name")" +parameter "Storage"="{{pathname of data folder of client}\__Global\Applocker" + +delete __createfile + +createfile until _end_ +<AppLockerPolicy Version="1"> +<RuleCollection Type="$Type"> +$($XML) +</RuleCollection> +</AppLockerPolicy> +_end_ + +folder create "{{parameter "Storage"}" + +delete "{{parameter "Storage"}\{{parameter "RuleName"}.xml" +move __createfile "{{parameter "Storage"}\{{parameter "RuleName"}.xml" + +]]></ActionScript> + </DefaultAction> + </Fixlet> +</BES> +"@ + return $Fixlet +} +__end__ + +delete Applocker.psm1 +move __createfile Applocker.psm1 + +createfile until __end__ +param ( + $OutDir = ".\Output" +) + +import-module applocker +import-module ".\Applocker.psm1" -force + +$Policy = Get-AppLockerFileInformation -EventLog -LogPath "Microsoft-Windows-AppLocker/EXE and DLL" -EventType Denied, Audited | New-AppLockerPolicy -RuleType Publisher, Hash, Path -User Everyone -Optimize + +foreach ($CollectionType in $Policy.RuleCollectionTypes){{ + foreach($Rule in $Policy.GetRuleCollection($CollectionType)) {{ + $Action = $Rule.Action + $Name = $Rule.Name + $Type = $CollectionType + $ID = $Rule.ID + + $Fixlet = New-AppLockerFixlet -Name $Name -Type $Type -Xml $Rule.ToXML() + + $Fixlet > "$OutDir\$(Remove-InvalidFileNameChars "$Type-$Name.bes")" + } +} + +$Policy = Get-AppLockerFileInformation -EventLog -LogPath "Microsoft-Windows-AppLocker/Msi and Script" -EventType Denied, Audited | New-AppLockerPolicy -RuleType Publisher, Hash, Path -User Everyone -Optimize + +foreach ($CollectionType in $Policy.RuleCollectionTypes){{ + foreach($Rule in $Policy.GetRuleCollection($CollectionType)) {{ + $Action = $Rule.Action + $Name = $Rule.Name + $Type = $CollectionType + $ID = $Rule.ID + + $Fixlet = New-AppLockerFixlet -Name $Name -Type $Type -Xml $Rule.ToXML() + + $Fixlet > "$OutDir\$(Remove-InvalidFileNameChars "$Type-$Name.bes")" + } +} +__end__ + +delete GenerateRules.ps1 +move __createfile GenerateRules.ps1 + +folder create "{parameter "Storage"}" + +// +// Configure Upload Manager +// + +setting "_BESClient_ArchiveManager_MaxArchiveSize"="2097152" on "{parameter "action issue date" of action}" for client +setting "_BESClient_ArchiveManager_OperatingMode"="2" on "{parameter "action issue date" of action}" for client +setting "_BESClient_ArchiveManager_FileSet-APPLOCKER"="{parameter "Storage"}\*.*" on "{parameter "action issue date" of action}" for client + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File GenerateRules.ps1 -OutDir "{parameter "Storage"}" + +archive now + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Configuration Probe - Windows (20701).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Configuration Probe - Windows (20701).bes new file mode 100644 index 000000000..4dd98dd7b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Configuration Probe - Windows (20701).bes @@ -0,0 +1,78 @@ + + + + + Invoke - Bitlocker Configuration Probe - Windows + This probe grabs the current bitlocker configuration of the system in it's raw format and outputs it to disk to be gathered by analyses.

+

Creates a Volume-Status.txt file in __BESData.

+

Example

+
    +
  • C-Status.txt +
  • D-Status.txt
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> + Disk Encryption + Internal + 2016-04-30 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + "$OutFolder\$($Volume[0])-Status.txt" +} +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}"]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt Secondary Volume - Windows (21696).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt Secondary Volume - Windows (21696).bes new file mode 100644 index 000000000..b59dcf55a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt Secondary Volume - Windows (21696).bes @@ -0,0 +1,255 @@ + + + + + Invoke - Bitlocker Encrypt Secondary Volume - Windows + This fixlet will encrypt the specified drive of a device.

+

The recovery password generated by action 1 is available via the Analysis: Bitlocker - Recovery Password - Windows

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) /* Correct version of Windows */]]> + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") /* TPM Active, Owned, and Enabled */ + = 1) else (false) /* There is a drive to encrypt... This should probable be made more specific*/]]> + 10*minute /* Bitlocker status doesn't change immediately after first reboot */]]> + + + Disk Encryption + Internal + 2016-04-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to encrypt the specified drive using the TPM and a random recovery password. + + "{parameter "InstanceStorage"}\Status.log" +_end_ + +move __createfile status.bat + +createfile until _end_ +manage-bde -on {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Enable.log" +_end_ + +move __createfile enable.bat + +createfile until _end_ +manage-bde -off {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Terminate.log +manage-bde -protectors {parameter "Volume" of action} -delete -type -recoverypassword >> "{parameter "InstanceStorage"}\Terminate.log +_end_ + +move __createfile terminate.bat + +createfile until _end_ +manage-bde -protectors -add {parameter "Volume" of action} -recoverypassword > "{parameter "InstanceStorage"}\AddRecoveryKey.log +_end_ + +move __createfile addrecoverykey.bat + +// +// Get BitLocker Status +// + +wait status.bat + +if {((not exists lines containing "Encryption in Progress" of it) and (not exists lines containing "NOTE: Encryption will begin after the hardware test succeeds." of it)) of file "Status.log" of folder (parameter "InstanceStorage") } + + // DO NOT CONTINUE IF THERE IS AN EXISTING UPLOAD IN PROGRESS + continue if {not exists setting "_BESClient_UploadManager_Progress" of client} + + wait enable.bat + + // No existing recovery key -- add one + if { not exists lines containing "Numerical Password" of file "Status.log" of folder (parameter "InstanceStorage")} + wait addrecoverykey.bat + endif + + // If the action dies here there is a bootable CD or DVD in the drive + if { exists lines containing "ERROR: BitLocker detected a bootable CD or DVD on the computer." of file "Enable.log" of folder (parameter "InstanceStorage")} + // BitLocker is in inconsistent state -- kill encryption + wait terminate.bat + archive now + exit 20 + endif + + // If the action dies here there was another error + if { exists lines containing "ERROR" of file "Enable.log" of folder (parameter "InstanceStorage")} + // BitLocker is in inconsistent state -- kill encryption + wait terminate.bat + archive now + exit 10 + endif + + archive now + + action requires restart + +else + + archive now + + action requires restart + +endif]]> + + + + Click + here + to encrypt the specified drive using just the TPM. + + "{parameter "InstanceStorage"}\Status.log" +_end_ + +move __createfile status.bat + +createfile until _end_ +manage-bde -on {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Enable.log" +_end_ + +move __createfile enable.bat + +createfile until _end_ +manage-bde -off {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Terminate.log +manage-bde -protectors {parameter "Volume" of action} -delete -type -recoverypassword >> "{parameter "InstanceStorage"}\Terminate.log +_end_ + +move __createfile terminate.bat + +createfile until _end_ +manage-bde -protectors -add {parameter "Volume" of action} -recoverypassword > "{parameter "InstanceStorage"}\AddRecoveryKey.log +_end_ + +move __createfile addrecoverykey.bat + +// +// Get BitLocker Status +// + +wait status.bat + +if {((not exists lines containing "Encryption in Progress" of it) and (not exists lines containing "NOTE: Encryption will begin after the hardware test succeeds." of it)) of file "Status.log" of folder (parameter "InstanceStorage") } + + // DO NOT CONTINUE IF THERE IS AN EXISTING UPLOAD IN PROGRESS + continue if {not exists setting "_BESClient_UploadManager_Progress" of client} + + wait enable.bat + + // If the action dies here there is a bootable CD or DVD in the drive + if { exists lines containing "ERROR: BitLocker detected a bootable CD or DVD on the computer." of file "Enable.log" of folder (parameter "InstanceStorage")} + // BitLocker is in inconsistent state -- kill encryption + wait terminate.bat + archive now + exit 20 + endif + + // If the action dies here there was another error + if { exists lines containing "ERROR" of file "Enable.log" of folder (parameter "InstanceStorage")} + // BitLocker is in inconsistent state -- kill encryption + wait terminate.bat + archive now + exit 10 + endif + + archive now + + action requires restart + +else + + archive now + + action requires restart + +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt System Volume - Windows (23093).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt System Volume - Windows (23093).bes new file mode 100644 index 000000000..a810d2418 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt System Volume - Windows (23093).bes @@ -0,0 +1,156 @@ + + + + + Invoke - Bitlocker Encrypt System Volume - Windows + This fixlet will encrypt the system drive of a device.

+

If you choose to encrypt using the TPM and a random recovery password you should enable Analysis: Bitlocker - Recovery Password - Windows

+

The following Exit Codes can be returned:

+

10 - Encryption was Terminated for some reason

+

20 - Encryption was Terminated due to a bootable CD/DVD in the system

+

30 - Encryption was Terminated due to a lack of a numerical password on the system

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) /* Correct version of Windows */]]> + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") /* TPM Active, Owned, and Enabled */ + = 1) else (false) /* There is a drive to encrypt... This should probable be made more specific*/]]> + + + + Disk Encryption + Internal + 2016-04-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to encrypt the system drive using the TPM and a random recovery password. + + "{parameter "Storage"}\Status.log" + +_end_ + +move __createfile status.bat + +// +// Write Termination Script +// +delete terminate.bat + +createfile until _end_ + +manage-bde -off {name of drive of system folder} > "{parameter "Storage"}\Terminate.log +manage-bde -protectors {name of drive of system folder} -delete -type recoverypassword >> "{parameter "Storage"}\Terminate.log + +_end_ + +move __createfile terminate.bat + + +// +// Write Enable Script +// + +delete enable.bat + +createfile until _end_ + +manage-bde -protectors {name of drive of system folder} -delete -type recoverypassword +manage-bde -on {name of drive of system folder} -recoverypassword > "{parameter "Storage"}\Enable.log" + +_end_ + +move __createfile enable.bat + +// +// Get BitLocker Status +// + +wait status.bat + +if {((not exists lines containing "Encryption in Progress" of it) and (not exists lines containing "NOTE: Encryption will begin after the hardware test succeeds." of it)) of file "Status.log" of folder (parameter "Storage") } + + // DO NOT CONTINUE IF THERE IS AN EXISTING UPLOAD IN PROGRESS + continue if {not exists setting "_BESClient_UploadManager_Progress" of client} + + wait enable.bat + + // If the action dies here there was a failure adding the Numerical Password + if { not exists lines containing "Numerical Password" of file "Enable.log" of folder (parameter "Storage")} + wait terminate.bat + archive now + exit 30 + endif + + // If the action dies here there is a bootable CD or DVD in the drive + if { exists lines containing "ERROR: BitLocker detected a bootable CD or DVD on the computer." of file "Enable.log" of folder (parameter "Storage")} + wait terminate.bat + archive now + exit 20 + endif + + // If the action dies here there was another error + if { exists lines containing "ERROR" of file "Enable.log" of folder (parameter "Storage")} + wait terminate.bat + archive now + exit 10 + endif + + archive now + + notify client ForceRefresh + + action requires restart + +else + + archive now + + action requires restart + +endif]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows (23097).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows (23097).bes new file mode 100644 index 000000000..5ec516768 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows (23097).bes @@ -0,0 +1,75 @@ + + + + + Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows + This task will backup the recovery password to Active Directory.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> + Disk Encryption + Internal + 2016-04-30 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Probe - Windows (21335).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Probe - Windows (21335).bes new file mode 100644 index 000000000..34720c769 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Probe - Windows (21335).bes @@ -0,0 +1,118 @@ + + + + + Invoke - Bitlocker Recovery Password Probe - Windows + This probe grabs the current bitlocker recovery password for the system in it's raw format and outputs it to disk to be gathered by analyses. +

Creates a Volume-RecoveryPwd.txt file in __BESData. If there is already a file it checks to see if the recovery key has changed. If it has changed it archives the old one and writes the new recovery key to disk

+

Example

+
    +
  • C-RecoveryPwd.txt +
  • D-RecoveryPwd.txt
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> + Disk Encryption + Internal + 2016-04-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + "$OutFolder\$($Volume[0])-RecoveryPwd.txt"} +} +_end_ + +move __createfile powershell.ps1 + +// +// Configure Upload Manager +// + +setting "_BESClient_ArchiveManager_MaxArchiveSize"="2097152" on "{now}" for client +setting "_BESClient_ArchiveManager_OperatingMode"="2" on "{now}" for client +setting "_BESClient_ArchiveManager_FileSet-RECOVER"="{parameter "Storage"}\*.*" on "{now}" for client + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +archive now +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Refresh System Drive Encryption - Windows (24097).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Refresh System Drive Encryption - Windows (24097).bes new file mode 100644 index 000000000..8026882f7 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Refresh System Drive Encryption - Windows (24097).bes @@ -0,0 +1,56 @@ + + + + + Invoke - Bitlocker Refresh System Drive Encryption - Windows + This Fixlet will suspend and immediately resume BitLocker protection.

+

This should be performed immediately after any TPM/Recovery issues on an endpoint.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + + Disk Encryption + Internal + 2016-09-28 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Resume System Drive Encryption - Windows (24111).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Resume System Drive Encryption - Windows (24111).bes new file mode 100644 index 000000000..f86c4b70c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Resume System Drive Encryption - Windows (24111).bes @@ -0,0 +1,54 @@ + + + + + Invoke - Bitlocker Resume System Drive Encryption - Windows + This Fixlet will resume paused BitLocker protection on the system volume.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + + + Disk Encryption + Internal + 2016-09-28 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ + +manage-bde -protectors -enable "{name of drive of system folder}" + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Suspend System Drive Encryption - Windows (24112).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Suspend System Drive Encryption - Windows (24112).bes new file mode 100644 index 000000000..a067fcfa3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Suspend System Drive Encryption - Windows (24112).bes @@ -0,0 +1,53 @@ + + + + + Invoke - Bitlocker Suspend System Drive Encryption - Windows + This Fixlet will suspend BitLocker protection on the system volume.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + + Disk Encryption + Internal + 2016-09-28 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ + +manage-bde -protectors -disable "{name of drive of system folder}" + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Certificate Store Probe - Windows (24040).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Certificate Store Probe - Windows (24040).bes new file mode 100644 index 000000000..117e9f8da --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Certificate Store Probe - Windows (24040).bes @@ -0,0 +1,107 @@ + + + + + Invoke - Certificate Store Probe - Windows + This fixlet probes the Windows Certificate Store and outputs a report for consumption by BigFix.

+

This fixlet will always be relevant on a Windows system.

+

Information on using this content is available here: https://github.com/strawgate/C3-Inventory/wiki/Certificate-Store

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Certificate Store + Internal + 2016-08-12 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +//Script will not capture bitlocker recovery password with wow64 redirection enabled +action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ +#Requires -Version 3.0 +$RegStorage = "HKLM:\Software\C3 Inventory\Certificate Store" + +function Write-CertToRegistry{{ + param ( + [System.Security.Cryptography.X509Certificates.X509Certificate2] $Certificate, + [string] $Path, + [string] $Childpath + ) + +# $Storage = "$($Global:RegStorage)\$($Certificate.PSParentPath.Replace("Microsoft.PowerShell.Security\Certificate::",''))\$($Certificate.ThumbPrint)" + $Storage = "$Path\$ChildPath\$($Certificate.ThumbPrint)" + + New-Item $Storage -force -ErrorAction SilentlyContinue | out-null + + new-ItemProperty -Path $Storage -Name "Subject" -Value $Certificate.Subject | out-null + new-ItemProperty -Path $Storage -Name "Friendly Name" -Value $Certificate.FriendlyName | out-null + new-ItemProperty -Path $Storage -Name "Issuer" -Value $Certificate.Issuer | out-null + new-ItemProperty -Path $Storage -Name "Serial Number" -Value $Certificate.SerialNumber | out-null + new-ItemProperty -Path $Storage -Name "Not Before" -Value $Certificate.NotBefore | out-null + new-ItemProperty -Path $Storage -Name "Not Before Date" -Value $Certificate.NotBefore.ToString("ddd, dd MMM yyyy") | out-null + new-ItemProperty -Path $Storage -Name "Not Before Time" -Value $Certificate.NotBefore.ToString("HH:mm:ss") | out-null + new-ItemProperty -Path $Storage -Name "Not After" -Value $Certificate.NotAfter | out-null + new-ItemProperty -Path $Storage -Name "Not After Date" -Value $Certificate.NotAfter.ToString("ddd, dd MMM yyyy") | out-null + new-ItemProperty -Path $Storage -Name "Not After Time" -Value $Certificate.NotAfter.ToString("HH:mm:ss") | out-null + new-ItemProperty -Path $Storage -Name "Format" -Value $Certificate.GetFormat() | out-null + new-ItemProperty -Path $Storage -Name "Archived" -Value $Certificate.Archived | out-null + new-ItemProperty -Path $Storage -Name "Private Key" -Value $Certificate.HasPrivateKey | out-null + new-ItemProperty -Path $Storage -Name "Algorithm" -Value ($Certificate.SignatureAlgorithm.FriendlyName -join ",") | out-null + new-ItemProperty -Path $Storage -Name "Usage" -Value ($Certificate.EnhancedKeyUsageList.FriendlyName -join ",") | out-null + new-ItemProperty -Path $Storage -Name "DNS" -Value ($Certificate.DnsNameList.Punycode -join ",") | out-null +} + +#Clean-up previous cert export +Remove-Item "HKLM:\Software\Certificates" -Recurse -ErrorAction SilentlyContinue + +#Pull all the certificate stores +$Certificates = Get-ChildItem -Path Cert:\LocalMachine -Recurse + +#Iterate over each store +foreach ($Store in Get-ChildItem -Path Cert:\LocalMachine) {{ + + #Iterate over each certificate in each store + foreach ($Certificate in Get-ChildItem -Path "Cert:\LocalMachine\$($Store.Name)") {{ + Write-CertToRegistry -Certificate $Certificate -Path "$RegStorage\LocalMachine" -childpath $Store.Name + } +} + +#Print probe run timestamp +$Timestamp = get-date +New-ItemProperty -Path $Global:RegStorage -Name "Last Updated" -Value $Timestamp -Force | out-null +New-ItemProperty -Path $Global:RegStorage -Name "Last Updated Date" -Value $Timestamp.ToString("ddd, dd MMM yyyy") -Force | out-null +New-ItemProperty -Path $Global:RegStorage -Name "Last Updated Time" -Value $Timestamp.ToString("HH:mm:ss") -Force | out-null +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 14 days - Windows (24041).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 14 days - Windows (24041).bes new file mode 100644 index 000000000..12d5bc9ea --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 14 days - Windows (24041).bes @@ -0,0 +1,49 @@ + + + + + Invoke - Cleanup User Profiles older than 14 days - Windows + This Fixlet will use DelProf2 to cleanup user profiles older than 14 days from the system.

+

DelProf2 is free for Non-Profit and Higher Education. For instructions on licensing it for private organizations please visit their homepage: https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Disk Cleanup + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch DelProf2.zip sha1:B4FFB416395941CBF682ADFE472DCAC7D4E7F533 size:235595 https://helgeklein.com/downloads/DelProf2/current/Delprof2 1.6.0.zip sha256:14EE8BAF68AC5B015613ECDF23D1CC49A7045F791E2F7A1952F32AAD5B4A606B + +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "__Download\DelProf2.zip" -d "{pathname of client folder of current site}\__Download" + +override wait +hidden=true +completion=job +wait "__Download\Delprof2 1.6.0\delprof2.exe" /u /d:14 /i + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 30 days - Windows (24042).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 30 days - Windows (24042).bes new file mode 100644 index 000000000..670a28cb9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 30 days - Windows (24042).bes @@ -0,0 +1,49 @@ + + + + + Invoke - Cleanup User Profiles older than 30 days - Windows + This Fixlet will use DelProf2 to cleanup user profiles older than 30 days from the system.

+

DelProf2 is free for Non-Profit and Higher Education. For instructions on licensing it for private organizations please visit their homepage: https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Disk Cleanup + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch DelProf2.zip sha1:B4FFB416395941CBF682ADFE472DCAC7D4E7F533 size:235595 https://helgeklein.com/downloads/DelProf2/current/Delprof2 1.6.0.zip sha256:14EE8BAF68AC5B015613ECDF23D1CC49A7045F791E2F7A1952F32AAD5B4A606B + +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "__Download\DelProf2.zip" -d "{pathname of client folder of current site}\__Download" + +override wait +hidden=true +completion=job +wait "__Download\Delprof2 1.6.0\delprof2.exe" /u /d:30 /i + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 60 days - Windows (24043).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 60 days - Windows (24043).bes new file mode 100644 index 000000000..1aaf98b83 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 60 days - Windows (24043).bes @@ -0,0 +1,49 @@ + + + + + Invoke - Cleanup User Profiles older than 60 days - Windows + This Fixlet will use DelProf2 to cleanup user profiles older than 60 days from the system.

+

DelProf2 is free for Non-Profit and Higher Education. For instructions on licensing it for private organizations please visit their homepage: https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Disk Cleanup + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch DelProf2.zip sha1:B4FFB416395941CBF682ADFE472DCAC7D4E7F533 size:235595 https://helgeklein.com/downloads/DelProf2/current/Delprof2 1.6.0.zip sha256:14EE8BAF68AC5B015613ECDF23D1CC49A7045F791E2F7A1952F32AAD5B4A606B + +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "__Download\DelProf2.zip" -d "{pathname of client folder of current site}\__Download" + +override wait +hidden=true +completion=job +wait "__Download\Delprof2 1.6.0\delprof2.exe" /u /d:60 /i + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using Physical Presence - Windows (24044).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using Physical Presence - Windows (24044).bes new file mode 100644 index 000000000..20516e769 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using Physical Presence - Windows (24044).bes @@ -0,0 +1,54 @@ + + + + + Invoke - Clear TPM using Physical Presence - Windows + + windows of operating system + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ + file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client + Internal + 2016-12-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + > "$($env:SystemDrive)\TPMClear.log" +_end_ + +move __createfile clearTPM.ps1 + +waithidden powershell.exe -executionpolicy bypass -file clearTPM.ps1 + +action requires restart]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using provided Owner Authorization - Windows (24113).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using provided Owner Authorization - Windows (24113).bes new file mode 100644 index 000000000..881dddc67 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using provided Owner Authorization - Windows (24113).bes @@ -0,0 +1,57 @@ + + + + + Invoke - Clear TPM using provided Owner Authorization - Windows + + windows of operating system + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ + Internal + 2016-12-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +action parameter query "OwnerAuth" with description "Provide an Ownership Authorization String" + +parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" + +parameter "OwnerAuth"="{line 0 of file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client}" + +createfile until _end_ +param ( + $OwnerAuthorization +) + +$TPM = Get-WmiObject -Class Win32_TPM -Namespace root\CIMV2\Security\MicrosoftTpm + +$TPM.Clear($OwnerAuthorization) + +_end_ + +move __createfile clearTPM.ps1 + +waithidden powershell.exe -executionpolicy bypass -file clearTPM.ps1 -OwnerAuthorization "{parameter "OwnerAuth" of action}" + +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using saved Owner Authorization - Windows (24114).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using saved Owner Authorization - Windows (24114).bes new file mode 100644 index 000000000..1bf8480b2 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using saved Owner Authorization - Windows (24114).bes @@ -0,0 +1,57 @@ + + + + + Invoke - Clear TPM using saved Owner Authorization - Windows + + windows of operating system + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ + file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client + Internal + 2016-12-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" + +parameter "OwnerAuth"="{line 0 of file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client}" + +createfile until _end_ +param ( + $OwnerAuthorization +) + +$TPM = Get-WmiObject -Class Win32_TPM -Namespace root\CIMV2\Security\MicrosoftTpm + +$TPM.Clear($OwnerAuthorization) + +_end_ + +move __createfile clearTPM.ps1 + +waithidden powershell.exe -executionpolicy bypass -file clearTPM.ps1 -OwnerAuthorization "{parameter "OwnerAuth" of action}" + +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Commit Cached Applocker Rules - Windows (20716).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Commit Cached Applocker Rules - Windows (20716).bes new file mode 100644 index 000000000..2a0439fb8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Commit Cached Applocker Rules - Windows (20716).bes @@ -0,0 +1,116 @@ + + + + + Invoke - Commit Cached Applocker Rules - Windows + + windows of operating system + 0]]> + Internal + 2016-05-28 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + $ExeRules + + + $MsiRules + + + $ScriptRules + + + $AppxRules + + +"@ + +$Rules > "$Indir\Effective.xml" + +_end_ + +delete mergerules.ps1 +move __createfile mergerules.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File mergerules.ps1 -inDir "{parameter "Storage"}" + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -XMLPolicy ""{parameter "Storage"}\Effective.xml"""]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators to Temporary Administrators - Windows (24157).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators to Temporary Administrators - Windows (24157).bes new file mode 100644 index 000000000..c092dd5ae --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators to Temporary Administrators - Windows (24157).bes @@ -0,0 +1,820 @@ + + + + + Invoke - Convert Permanent Administrators to Temporary Administrators - Windows + This Fixlet cycles through all explicitely defined local administrators and marks them as temporary administrators. This can be used to expire administrative rights over time.

+

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + 0) of ( /* Add All Explicit Members of Administrators */ set of component strings of (sids of members of local group "Administrators") whose (exists user of it) /* Subtract Current Temporary Administrators */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry /* Subtract Local Administrator (Can't Remove) */ - set of component string of sid of user "Administrator" )]]> + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to grant all local administrators temporary administrative rights for 1 hour. + + + + + + + Click + here + to grant all local administrators temporary administrative rights for&nbsp;5 hours. + + + + + + Click + here + to grant all local administrators temporary administrative rights for 1 day. + + + + + + Click + here + to grant all local administrators temporary administrative rights for 5 days. + + + + + + Click + here + to grant all local administrators temporary administrative rights permanently. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows (24158).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows (24158).bes new file mode 100644 index 000000000..c09b32d46 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows (24158).bes @@ -0,0 +1,815 @@ + + + + + Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows + This Fixlet cycles through all explicitely defined local administrators and marks them as temporary administrators. This can be used to expire administrative rights over time.

+

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + 0) of ( /*Authorized Requestors who have Permanent Administrative Rights */ intersection of ( /* Authorized Requestors who have any Admin */ set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry; set of component strings of (sids of members of local group "Administrators") whose (exists user of it) ) /* Subtract Current Temporary Administrators */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry )]]> + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for 1 hour. + + + + + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for&nbsp;5 hours. + + + + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for 1 day. + + + + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for 5 days. + + + + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights permanently. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Defragement and Optimize Drives - Windows (23382).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Defragement and Optimize Drives - Windows (23382).bes new file mode 100644 index 000000000..211587795 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Defragement and Optimize Drives - Windows (23382).bes @@ -0,0 +1,36 @@ + + + + + Invoke - Defragement and Optimize Drives - Windows + This Fixlet runs defragmentation or optimization on the targeted devices.

+

This fixlet has generic relevance and should not be set to re-apply without a delay.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Internal + 2016-11-15 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + runhidden schtasks /run /TN "Microsoft\Windows\Defrag\ScheduledDefrag" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Application Usage Log - Windows (21052).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Application Usage Log - Windows (21052).bes new file mode 100644 index 000000000..e69b7d724 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Application Usage Log - Windows (21052).bes @@ -0,0 +1,35 @@ + + + + + Invoke - Delete Application Usage Log - Windows + This fixlet removes the application usage log from the system.

+

For general information or to report issues with C3 Application Usage content please visit GitHub here: https://github.com/strawgate/C3-Application-Usage

]]>
+ windows of operating system + exists pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client + Internal + 2016-07-18 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden cmd.exe /c del /Q /F "{pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Legacy Application Usage Log - Windows (21059).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Legacy Application Usage Log - Windows (21059).bes new file mode 100644 index 000000000..82af3c953 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Legacy Application Usage Log - Windows (21059).bes @@ -0,0 +1,36 @@ + + + + + Invoke - Delete Legacy Application Usage Log - Windows + This fixlet removes legacy-formatted application usage logs from the system.

+

For general information or to report issues with C3 Application Usage content please visit GitHub here: https://github.com/strawgate/C3-Application-Usage

]]>
+ windows of operating system + exists pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client + not exists selects "/Usage/Applications" of xml document of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client + Internal + 2016-07-18 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden cmd.exe /c del /Q /F "{pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Disk Cleanup - Windows (21628).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Disk Cleanup - Windows (21628).bes new file mode 100644 index 000000000..f2156136d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Disk Cleanup - Windows (21628).bes @@ -0,0 +1,107 @@ + + + + + Invoke - Disk Cleanup - Windows + This will invoke a Window Disk Cleanup with aggressive cleanup settings.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +if {x64 of operating system} +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\BranchCache]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameNewsFiles]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameStatisticsFiles]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameUpdateFiles]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Internet Cache Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Memory Dump Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Offline Pages Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Old ChkDsk Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Previous Installations]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\RetailDemo Offline Content]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Service Pack Cleanup]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Setup Log Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error memory dump files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error minidump files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Setup Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Sync Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Upgrade Discarded Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Defender]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Archive Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Queue Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Archive Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Queue Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Temp Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows ESD installation files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Upgrade Log Files]" "StateFlags1337"=dword:00000002 + +else + +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\BranchCache]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameNewsFiles]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameStatisticsFiles]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameUpdateFiles]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Internet Cache Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Memory Dump Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Offline Pages Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Old ChkDsk Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Previous Installations]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\RetailDemo Offline Content]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Service Pack Cleanup]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Setup Log Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error memory dump files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error minidump files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Setup Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Sync Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Upgrade Discarded Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Defender]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Archive Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Queue Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Archive Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Queue Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Temp Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows ESD installation files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Upgrade Log Files]" "StateFlags1337"=dword:00000002 + +endif + +waithidden cleanmgr /sagerun:1337 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Group Policy Refresh - Windows (22887).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Group Policy Refresh - Windows (22887).bes new file mode 100644 index 000000000..744dd3bd1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Group Policy Refresh - Windows (22887).bes @@ -0,0 +1,51 @@ + + + + + Invoke - Group Policy Refresh - Windows + This will invoke a group policy refresh on the target endpoint.

+

NOTE: Performing a group policy refresh may cause a explorer to flash during a user session and it may drop a connected user's remote desktop session.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ "5.1"]]> + exists file "gpupdate.exe" of system folder + Group Policy + Internal + 2016-04-22 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +override wait +completion=job +hidden=true +wait cmd.exe /c "echo n | gpupdate /target:computer /force /wait:120" + +if {exists current user} + override wait + completion=job + hidden=true + runas=currentuser + wait cmd.exe /c "echo n | gpupdate /target:user /force /wait:120" +endif + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Join Active Directory Domain - Windows (23387).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Join Active Directory Domain - Windows (23387).bes new file mode 100644 index 000000000..945eea31a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Join Active Directory Domain - Windows (23387).bes @@ -0,0 +1,99 @@ + + + + + Invoke - Join Active Directory Domain - Windows + +
+

Securely Domain Join a Windows Computer!

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + string value of select "Domain from Win32_ComputerSystem" of wmi as lowercase = "workgroup" + 2016-05-07 + + parametermetadatatag + { "Section1":{ "Name":"ADConfiguration", "Title":"AD Configuration", "UIType":"accordion", "Values":[ { "Name":"ADDomain", "Title":"Active Directory Domain", "Description":"Active Directory Domain", "Override":"True", "ValueType":"relevance", "UIType":"Select", "Values":"unique values of (concatenations \".\" of substrings separated by \",DC=\" of following texts of firsts \"DC=\" of it) whose (it != \"\") of values of results from (bes property \"Active Directory Path\") of bes computers" }, { "Name":"ADUser", "Title":"Active Directory Account Username", "Description":"Active Directory Account Username", "UIType":"TextBox", "Default":"NetBIOS\\Username" }, { "Name":"ADpwd", "Title":"Active Directory Account Password", "Description":"Active Directory Account Password", "UIType":"Textbox", "Encrypt":"true", "SubUIType":"Password" }, { "Name":"ADOU", "Title":"Active Directory Organizational Unit", "Description":"Active Directory Organizational Unit", "Override":"True", "ValueType":"relevance", "UIType":"Select", "Values":"unique values of (concatenations \";\" of substrings separated by \",\" of it) of following texts of firsts \",\" of values of results from (bes property \"Active Directory Path\") of bes computers" } ] } } + + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ +param ( + $Username, + $Password +) + +$domain = "{parameter "ADDomain" of action}" +$OU = "{(concatenations "," of substrings separated by ";" of it) of parameter "ADOU" of action}" + +$password = $Password | ConvertTo-SecureString -asPlainText -Force +$credential = New-Object System.Management.Automation.PSCredential($username,$password) + +#Try Domain Join with OU -- will fail if object already exists +Add-Computer -DomainName $domain -Credential $credential -OUPath $OU -ErrorAction silentlycontinue + +#Try Domain Join without OU +Add-Computer -DomainName $domain -Credential $credential +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -Username "{parameter "ADUser" of action}" -Password "{parameter "ADPwd" of action}" + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Kernel Kext Cache Reset - Mac (20530).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Kernel Kext Cache Reset - Mac (20530).bes new file mode 100644 index 000000000..6a09d5722 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Kernel Kext Cache Reset - Mac (20530).bes @@ -0,0 +1,39 @@ + + + + + Invoke - Kernel Kext Cache Reset - Mac + Invokes a Kernel Kext Cache reset on Mac OS.

+

Reseting the Kernel kext can often reduce the boot time of a Mac device but should only be done as a troubleshooting measure. The first reboot after reseting the kernel kext may take a little while longer.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ mac of operating system + Internal + 2016-05-07 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait sh -c "kextcache -system-prelinked-kernel" +wait sh -c "kextcache -system-caches" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Convert MBR to GPT - Windows (23810).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Convert MBR to GPT - Windows (23810).bes new file mode 100644 index 000000000..b966b10b0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Convert MBR to GPT - Windows (23810).bes @@ -0,0 +1,79 @@ + + + + + Invoke - MBR2GPT Convert MBR to GPT - Windows + This Fixlet will use the Windows 10 MBR2GPT executable to convert the disk from MBR to GPT.

+

Your system WILL NOT BOOT after running this fixlet unless you use a related Vendor-Specific command to switch the machine to boot using UEFI.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ exists file "MBR2GPT.exe" of system x64 folder + not exists Selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi + Internal + 2017-03-11 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "mbr2gpt"="{pathname of file "MBR2GPT.exe" of system x64 folder}" + +// Validate Disk Configuration within Windows +waithidden "{parameter "mbr2gpt"} /convert /allowFullOS + +//Conversion completed successfully. +//continue if {exit code of action != 1} + +//Conversion was cancelled by the user +continue if {exit code of action != 1} + +//Conversion failed due to an internal error +continue if {exit code of action != 2} + +//Conversion failed due to an initialization error +continue if {exit code of action != 3} + +//Conversion failed due to invalid command-line parameters +continue if {exit code of action != 4} + +//Conversion failed due to error reading the geometry and layout of the selected disk. +continue if {exit code of action != 5} + +//Conversion failed because one or more volumes on the disk is encrypted. +continue if {exit code of action != 6} + +//Conversion failed because the geometry and layout of the selected disk do not meet requirements. +continue if {exit code of action != 7} + +//Conversion failed due to error while creating the EFI system partition. +continue if {exit code of action != 8} + +// Conversion failed due to error installing boot files. +continue if {exit code of action != 9} + +//Conversion failed due to error while applying GPT layout. +continue if {exit code of action != 10} + +// Conversion to GPT layout succeeded, but some boot configuration data entries could not be restored. +//continue if {exit code of action != 100} + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Validate MBR to GPT - Windows (23811).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Validate MBR to GPT - Windows (23811).bes new file mode 100644 index 000000000..9ad030d30 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Validate MBR to GPT - Windows (23811).bes @@ -0,0 +1,80 @@ + + + + + Invoke - MBR2GPT Validate MBR to GPT - Windows + This Fixlet will use the Windows 10 MBR2GPT executable to convert the disk from MBR to GPT.

+

Your system WILL NOT BOOT after running this fixlet unless you use a related Vendor-Specific command to switch the machine to boot using UEFI.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ exists file "MBR2GPT.exe" of system x64 folder + not exists Selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi + Internal + 2017-03-11 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "mbr2gpt"="{pathname of file "MBR2GPT.exe" of system x64 folder}" + +// Validate Disk Configuration within Windows +waithidden "{parameter "mbr2gpt"} /validate /allowFullOS + +//Conversion completed successfully. +//continue if {exit code of action != 1} + +//Conversion was cancelled by the user +continue if {exit code of action != 1} + +//Conversion failed due to an internal error +continue if {exit code of action != 2} + +//Conversion failed due to an initialization error +continue if {exit code of action != 3} + +//Conversion failed due to invalid command-line parameters +continue if {exit code of action != 4} + +//Conversion failed due to error reading the geometry and layout of the selected disk. +continue if {exit code of action != 5} + +//Conversion failed because one or more volumes on the disk is encrypted. +continue if {exit code of action != 6} + +//Conversion failed because the geometry and layout of the selected disk do not meet requirements. +continue if {exit code of action != 7} + +//Conversion failed due to error while creating the EFI system partition. +continue if {exit code of action != 8} + +// Conversion failed due to error installing boot files. +continue if {exit code of action != 9} + +//Conversion failed due to error while applying GPT layout. +continue if {exit code of action != 10} + +// Conversion to GPT layout succeeded, but some boot configuration data entries could not be restored. +//continue if {exit code of action != 100} + +exit 0 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21716).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21716).bes new file mode 100644 index 000000000..6f6d8c252 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21716).bes @@ -0,0 +1,48 @@ + + + + + Invoke - Power Efficiency Probe - Windows + Invokes PowerCFG on the Endpoint to print out diagnostic information.

+

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ windows of operating system + Internal + 2016-09-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + "energy-requests.txt" +_end_ + +move __createfile run.bat + +wait run.bat]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21726).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21726).bes new file mode 100644 index 000000000..1f9ac3e42 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21726).bes @@ -0,0 +1,48 @@ + + + + + Invoke - Power Efficiency Probe - Windows + Invokes PowerCFG on the Endpoint to print out diagnostic information.

+

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ windows of operating system + Internal + 2016-09-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + "energy-requests.txt" +_end_ + +move __createfile run.bat + +wait run.bat]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Provision Trusted Platform Module - Windows (23094).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Provision Trusted Platform Module - Windows (23094).bes new file mode 100644 index 000000000..70f6cb005 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Provision Trusted Platform Module - Windows (23094).bes @@ -0,0 +1,241 @@ + + + + + Invoke - Provision Trusted Platform Module - Windows + Provisions the trusted platform module on the device. The device must have an activated TPM in the BIOS before this fixlet will be relevant.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ + /* Verify the TPM isn't fully provisioned */ (not boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") or (not boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") or (not boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + Disk Encryption + Internal + 2016-04-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to provision the trusted platform module, set a random password on TPM ownership, and backup the password to the _BESData folder. + + > "$OutFolder\TPMOwnerAuthorization.txt" + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +action requires restart]]> + + + + Click + here + to provision the trusted platform module and&nbsp;set a password on TPM ownership. + + // Enter your action script here +action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" + +folder create "{parameter "Storage"}" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ +param ( + $OutFolder = "." +) + +import-module Bitlocker + +$guid = [guid]::NewGuid().Guid + +# If we are running on a version newer than Windows 7 use the new TPM cmdlets +if ([Environment]::OSVersion.Version -gt (new-object 'Version' 6,2)) {{ + #Physical Presence Allowed + #$TPMResult = Initialize-Tpm -ForceClearAllowed -PhysicalPresenceAllowed + + #No Physical Presence Allowed + $TPMResult = Initialize-Tpm -allowclear + + #Set TPM Owner Key + Set-TpmOwnerAuth -NewOwnerAuthorization (ConvertTo-TpmOwnerAuth -PassPhrase $guid) + + #Backup Owner Key to Registry + Import-TpmOwnerAuth -OwnershipAuthorization (ConvertTo-TpmOwnerAuth -PassPhrase $guid) + +} else {{ # If we are running on Windows 7 use the old manage-bde method + manage-bde -tpm -turnon + manage-bde -tpm -takeownership "$GUID" +} + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +action requires restart + + + + Click + here + to provision the trusted platform module + + // Enter your action script here +action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" + +folder create "{parameter "Storage"}" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ +param ( + $OutFolder = "." +) + +import-module Bitlocker + + +# If we are running on a version newer than Windows 7 use the new TPM cmdlets +if ([Environment]::OSVersion.Version -gt (new-object 'Version' 6,2)) {{ + #Physical Presence Allowed + #$TPMResult = Initialize-Tpm -ForceClearAllowed -PhysicalPresenceAllowed + + #No Physical Presence Allowed + $TPMResult = Initialize-Tpm -allowclear + +} else {{ # If we are running on Windows 7 use the old manage-bde method + manage-bde -tpm -turnon +} + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +action requires restart + + + + Click + here + to provision the trusted platform module allowing a physical presence requirement, set a random password on TPM ownership, and backup the password to the _BESData folder. + + > "$OutFolder\TPMOwnerAuthorization.txt" + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +action requires restart]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Administrators - Windows (24407).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Administrators - Windows (24407).bes new file mode 100644 index 000000000..1447beea5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Administrators - Windows (24407).bes @@ -0,0 +1,39 @@ + + + + + Invoke - Remove Current User from Administrators - Windows + This Fixlet removes the currently logged on user from the Administrators group.

+

Applicability Note: This Fixlet will be relevant only if the currently logged on user is explicitly a member of the Administrators group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists members whose (sid of it = sid of logged on user) of local group "administrators" + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + wait net localgroup "administrators" "{sid of current user}" /delete + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Authorized Requestors - Windows (24159).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Authorized Requestors - Windows (24159).bes new file mode 100644 index 000000000..cd6877113 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Authorized Requestors - Windows (24159).bes @@ -0,0 +1,185 @@ + + + + + Invoke - Remove Current User from Authorized Requestors - Windows + This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Remote Desktop Users - Windows (24408).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Remote Desktop Users - Windows (24408).bes new file mode 100644 index 000000000..f0b3b2c60 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Remote Desktop Users - Windows (24408).bes @@ -0,0 +1,41 @@ + + + + + Invoke - Remove Current User from Remote Desktop Users - Windows + This Fixlet removes the currently logged on user from the Remote Desktop Users group.

+

Applicability Note: This Fixlet will be relevant if the currently logged on user is explicitely a member of the Remote Desktop Users group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + exists members whose (sid of it = sid of logged on user) of local group "Remote Desktop User" + Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait net localgroup "Remote Desktop Users" "{sid of current user}" /delete + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Temporary Administrators - Windows (24160).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Temporary Administrators - Windows (24160).bes new file mode 100644 index 000000000..df169a7a5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Temporary Administrators - Windows (24160).bes @@ -0,0 +1,185 @@ + + + + + Invoke - Remove Current User from Temporary Administrators - Windows + This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Authorized Requestors - Windows (24161).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Authorized Requestors - Windows (24161).bes new file mode 100644 index 000000000..268c9a3e7 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Authorized Requestors - Windows (24161).bes @@ -0,0 +1,184 @@ + + + + + Invoke - Remove Expired Users from Authorized Requestors - Windows + This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Temporary Administrators - Windows (24162).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Temporary Administrators - Windows (24162).bes new file mode 100644 index 000000000..bcad7cef8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Temporary Administrators - Windows (24162).bes @@ -0,0 +1,184 @@ + + + + + Invoke - Remove Expired Users from Temporary Administrators - Windows + This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Reset Local Group Policy - Windows (22647).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Reset Local Group Policy - Windows (22647).bes new file mode 100644 index 000000000..1353a0b70 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Reset Local Group Policy - Windows (22647).bes @@ -0,0 +1,51 @@ + + + + + Invoke - Reset Local Group Policy - Windows + This Fixlet resets local Group Policy.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists SELECT objects "* FROM RSOP_RegistryPolicySetting WHERE GPOID='LocalGPO' and valueName != ''" /* valueName != '' removes blank keys, not sure if this breaks anything*/ of rsop computer wmi + Group Policy + Internal + 2016-09-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +delete __createfile +delete run.bat + +createfile until _end_ +RD /S /Q "%WinDir%\System32\GroupPolicyUsers" +RD /S /Q "%WinDir%\System32\GroupPolicy" +echo n | gpupdate /target:computer /force /wait:120 +echo n | gpupdate /target:user /force /wait:120 +_end_ + +move __createfile run.bat + +waithidden run.bat + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Sync Client Clock - Windows (24110).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Sync Client Clock - Windows (24110).bes new file mode 100644 index 000000000..222d4f7c6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Sync Client Clock - Windows (24110).bes @@ -0,0 +1,37 @@ + + + + + Invoke - Sync Client Clock - Windows + This fixlet forces a sync of the client clock on Windows.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Internal + 2017-04-21 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden net stop w32time +waithidden net start w32time +waithidden w32tm /resync /rediscover + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - WMI Repository Reset - Windows (22648).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - WMI Repository Reset - Windows (22648).bes new file mode 100644 index 000000000..4aab5bddf --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - WMI Repository Reset - Windows (22648).bes @@ -0,0 +1,57 @@ + + + + + Invoke - WMI Repository Reset - Windows + This fixlet will reset WMI it will be relevant on any Windows computer.

+

NOTE: Setting this fixlet to reapply will cause it to constantly reset the WMI repository. Apply once and DO NOT reapply.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Windows Management Interface + Internal + 2016-04-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + {value of variable "temp" of environment}\wmi_simple.log 2>&1]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Cached Credentials Probe - Windows (20768).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Cached Credentials Probe - Windows (20768).bes new file mode 100644 index 000000000..b62c206e1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Cached Credentials Probe - Windows (20768).bes @@ -0,0 +1,422 @@ + + + + + Invoke - Windows Cached Credentials Probe - Windows + This fixlet uses published methods of extracting password hashes out of Windows systems in order to extract out the user name of the users whose credentials are cached on the workstation.

+

The script used by this fixlet stops short of extracting the password hash and ONLY extracts the user name associated with the cached credential.

+

This script is paired with the Analysis: Credentials - Cached Login Creds - Windows

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Windows-Credentials

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + Credential Caching + Internal + 2016-05-01 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + Get-PassHashes + +.LINK +http://www.labofapenetrationtester.com/2013/05/poshing-hashes-part-2.html?showComment=1386725874167#c8513980725823764060 +https://github.com/samratashok/nishang + +#> +#######################################powerdump written by David Kennedy######################################### + +#######################################powerdump written by David Kennedy######################################### +function LoadApi +{{ + $oldErrorAction = $global:ErrorActionPreference; + $global:ErrorActionPreference = "SilentlyContinue"; + $test = [PowerDump.Native]; + $global:ErrorActionPreference = $oldErrorAction; + if ($test) + {{ + # already loaded + return; + } + +$code = @' +using System; +using System.Security.Cryptography; +using System.Runtime.InteropServices; +using System.Text; + +namespace PowerDump +{{ + public class Native + {{ + [DllImport("advapi32.dll", CharSet = CharSet.Auto)] + public static extern int RegOpenKeyEx( + int hKey, + string subKey, + int ulOptions, + int samDesired, + out int hkResult); + + [DllImport("advapi32.dll", EntryPoint = "RegEnumKeyEx")] + extern public static int RegEnumKeyEx( + int hkey, + int index, + StringBuilder lpName, + ref int lpcbName, + int reserved, + StringBuilder lpClass, + ref int lpcbClass, + out long lpftLastWriteTime); + + [DllImport("advapi32.dll", EntryPoint="RegQueryInfoKey", CallingConvention=CallingConvention.Winapi, SetLastError=true)] + extern public static int RegQueryInfoKey( + int hkey, + StringBuilder lpClass, + ref int lpcbClass, + int lpReserved, + out int lpcSubKeys, + out int lpcbMaxSubKeyLen, + out int lpcbMaxClassLen, + out int lpcValues, + out int lpcbMaxValueNameLen, + out int lpcbMaxValueLen, + out int lpcbSecurityDescriptor, + IntPtr lpftLastWriteTime); + + [DllImport("advapi32.dll", SetLastError=true)] + public static extern int RegCloseKey( + int hKey); + + } + } // end namespace PowerDump + + public class Shift {{ + public static int Right(int x, int count) {{ return x >> count; } + public static uint Right(uint x, int count) {{ return x >> count; } + public static long Right(long x, int count) {{ return x >> count; } + public static ulong Right(ulong x, int count) {{ return x >> count; } + public static int Left(int x, int count) {{ return x << count; } + public static uint Left(uint x, int count) {{ return x << count; } + public static long Left(long x, int count) {{ return x << count; } + public static ulong Left(ulong x, int count) {{ return x << count; } + } +'@ + + $provider = New-Object Microsoft.CSharp.CSharpCodeProvider + $dllName = [PsObject].Assembly.Location + $compilerParameters = New-Object System.CodeDom.Compiler.CompilerParameters + $assemblies = @("System.dll", $dllName) + $compilerParameters.ReferencedAssemblies.AddRange($assemblies) + $compilerParameters.GenerateInMemory = $true + $compilerResults = $provider.CompileAssemblyFromSource($compilerParameters, $code) + if($compilerResults.Errors.Count -gt 0) {{ + $compilerResults.Errors | % {{ Write-Error ("{{0}:`t{{1}" -f $_.Line,$_.ErrorText) } + } + +} + +$antpassword = [Text.Encoding]::ASCII.GetBytes("NTPASSWORD`0"); +$almpassword = [Text.Encoding]::ASCII.GetBytes("LMPASSWORD`0"); +$empty_lm = [byte[]]@(0xaa,0xd3,0xb4,0x35,0xb5,0x14,0x04,0xee,0xaa,0xd3,0xb4,0x35,0xb5,0x14,0x04,0xee); +$empty_nt = [byte[]]@(0x31,0xd6,0xcf,0xe0,0xd1,0x6a,0xe9,0x31,0xb7,0x3c,0x59,0xd7,0xe0,0xc0,0x89,0xc0); +$odd_parity = @( + 1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11, 13, 13, 14, 14, + 16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31, + 32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47, + 49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62, + 64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79, + 81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94, + 97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110, + 112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127, + 128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143, + 145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158, + 161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174, + 176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191, + 193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206, + 208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223, + 224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239, + 241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254 +); + +function sid_to_key($sid) +{{ + $s1 = @(); + $s1 += [char]($sid -band 0xFF); + $s1 += [char]([Shift]::Right($sid,8) -band 0xFF); + $s1 += [char]([Shift]::Right($sid,16) -band 0xFF); + $s1 += [char]([Shift]::Right($sid,24) -band 0xFF); + $s1 += $s1[0]; + $s1 += $s1[1]; + $s1 += $s1[2]; + $s2 = @(); + $s2 += $s1[3]; $s2 += $s1[0]; $s2 += $s1[1]; $s2 += $s1[2]; + $s2 += $s2[0]; $s2 += $s2[1]; $s2 += $s2[2]; + return ,((str_to_key $s1),(str_to_key $s2)); +} + +function str_to_key($s) +{{ + $key = @(); + $key += [Shift]::Right([int]($s[0]), 1 ); + $key += [Shift]::Left( $([int]($s[0]) -band 0x01), 6) -bor [Shift]::Right([int]($s[1]),2); + $key += [Shift]::Left( $([int]($s[1]) -band 0x03), 5) -bor [Shift]::Right([int]($s[2]),3); + $key += [Shift]::Left( $([int]($s[2]) -band 0x07), 4) -bor [Shift]::Right([int]($s[3]),4); + $key += [Shift]::Left( $([int]($s[3]) -band 0x0F), 3) -bor [Shift]::Right([int]($s[4]),5); + $key += [Shift]::Left( $([int]($s[4]) -band 0x1F), 2) -bor [Shift]::Right([int]($s[5]),6); + $key += [Shift]::Left( $([int]($s[5]) -band 0x3F), 1) -bor [Shift]::Right([int]($s[6]),7); + $key += $([int]($s[6]) -band 0x7F); + 0..7 | %{{ + $key[$_] = [Shift]::Left($key[$_], 1); + $key[$_] = $odd_parity[$key[$_]]; + } + return ,$key; +} + +function NewRC4([byte[]]$key) +{{ + return new-object Object | + Add-Member NoteProperty key $key -PassThru | + Add-Member NoteProperty S $null -PassThru | + Add-Member ScriptMethod init {{ + if (-not $this.S) + {{ + [byte[]]$this.S = 0..255; + 0..255 | % -begin{{[long]$j=0;}{{ + $j = ($j + $this.key[$($_ % $this.key.Length)] + $this.S[$_]) % $this.S.Length; + $temp = $this.S[$_]; $this.S[$_] = $this.S[$j]; $this.S[$j] = $temp; + } + } + } -PassThru | + Add-Member ScriptMethod "encrypt" {{ + $data = $args[0]; + $this.init(); + $outbuf = new-object byte[] $($data.Length); + $S2 = $this.S[0..$this.S.Length]; + 0..$($data.Length-1) | % -begin{{$i=0;$j=0;} {{ + $i = ($i+1) % $S2.Length; + $j = ($j + $S2[$i]) % $S2.Length; + $temp = $S2[$i];$S2[$i] = $S2[$j];$S2[$j] = $temp; + $a = $data[$_]; + $b = $S2[ $($S2[$i]+$S2[$j]) % $S2.Length ]; + $outbuf[$_] = ($a -bxor $b); + } + return ,$outbuf; + } -PassThru +} + +function des_encrypt([byte[]]$data, [byte[]]$key) +{{ + return ,(des_transform $data $key $true) +} + +function des_decrypt([byte[]]$data, [byte[]]$key) +{{ + return ,(des_transform $data $key $false) +} + +function des_transform([byte[]]$data, [byte[]]$key, $doEncrypt) +{{ + $des = new-object Security.Cryptography.DESCryptoServiceProvider; + $des.Mode = [Security.Cryptography.CipherMode]::ECB; + $des.Padding = [Security.Cryptography.PaddingMode]::None; + $des.Key = $key; + $des.IV = $key; + $transform = $null; + if ($doEncrypt) {{$transform = $des.CreateEncryptor();} + else{{$transform = $des.CreateDecryptor();} + $result = $transform.TransformFinalBlock($data, 0, $data.Length); + return ,$result; +} + +function Get-RegKeyClass([string]$key, [string]$subkey) +{{ + switch ($Key) {{ + "HKCR" {{ $nKey = 0x80000000} #HK Classes Root + "HKCU" {{ $nKey = 0x80000001} #HK Current User + "HKLM" {{ $nKey = 0x80000002} #HK Local Machine + "HKU" {{ $nKey = 0x80000003} #HK Users + "HKCC" {{ $nKey = 0x80000005} #HK Current Config + default {{ + throw "Invalid Key. Use one of the following options HKCR, HKCU, HKLM, HKU, HKCC" + } + } + $KEYQUERYVALUE = 0x1; + $KEYREAD = 0x19; + $KEYALLACCESS = 0x3F; + $result = ""; + [int]$hkey=0 + if (-not [PowerDump.Native]::RegOpenKeyEx($nkey,$subkey,0,$KEYREAD,[ref]$hkey)) + {{ + $classVal = New-Object Text.Stringbuilder 1024 + [int]$len = 1024 + if (-not [PowerDump.Native]::RegQueryInfoKey($hkey,$classVal,[ref]$len,0,[ref]$null,[ref]$null, + [ref]$null,[ref]$null,[ref]$null,[ref]$null,[ref]$null,0)) + {{ + $result = $classVal.ToString() + } + else + {{ + Write-Error "RegQueryInfoKey failed"; + } + [PowerDump.Native]::RegCloseKey($hkey) | Out-Null + } + else + {{ + Write-Error "Cannot open key"; + } + return $result; +} + +function Get-BootKey +{{ + $s = [string]::Join("",$("JD","Skew1","GBG","Data" | %{{Get-RegKeyClass "HKLM" "SYSTEM\CurrentControlSet\Control\Lsa\$_"})); + $b = new-object byte[] $($s.Length/2); + 0..$($b.Length-1) | %{{$b[$_] = [Convert]::ToByte($s.Substring($($_*2),2),16)} + $b2 = new-object byte[] 16; + 0x8, 0x5, 0x4, 0x2, 0xb, 0x9, 0xd, 0x3, 0x0, 0x6, 0x1, 0xc, 0xe, 0xa, 0xf, 0x7 | % -begin{{$i=0;}{{$b2[$i]=$b[$_];$i++} + return ,$b2; +} + +function Get-HBootKey +{{ + param([byte[]]$bootkey); + $aqwerty = [Text.Encoding]::ASCII.GetBytes("!@#$%^&*()qwertyUIOPAzxcvbnmQQQQQQQQQQQQ)(*@&%`0"); + $anum = [Text.Encoding]::ASCII.GetBytes("0123456789012345678901234567890123456789`0"); + $k = Get-Item HKLM:\SAM\SAM\Domains\Account; + if (-not $k) {{return $null} + [byte[]]$F = $k.GetValue("F"); + if (-not $F) {{return $null} + $rc4key = [Security.Cryptography.MD5]::Create().ComputeHash($F[0x70..0x7F] + $aqwerty + $bootkey + $anum); + $rc4 = NewRC4 $rc4key; + return ,($rc4.encrypt($F[0x80..0x9F])); +} + +function Get-UserName([byte[]]$V) +{{ + if (-not $V) {{return $null}; + $offset = [BitConverter]::ToInt32($V[0x0c..0x0f],0) + 0xCC; + $len = [BitConverter]::ToInt32($V[0x10..0x13],0); + return [Text.Encoding]::Unicode.GetString($V, $offset, $len); +} + +function Get-UserHashes($u, [byte[]]$hbootkey) +{{ + [byte[]]$enc_lm_hash = $null; [byte[]]$enc_nt_hash = $null; + if ($u.HashOffset + 0x28 -lt $u.V.Length) + {{ + $lm_hash_offset = $u.HashOffset + 4; + $nt_hash_offset = $u.HashOffset + 8 + 0x10; + $enc_lm_hash = $u.V[$($lm_hash_offset)..$($lm_hash_offset+0x0f)]; + $enc_nt_hash = $u.V[$($nt_hash_offset)..$($nt_hash_offset+0x0f)]; + } + elseif ($u.HashOffset + 0x14 -lt $u.V.Length) + {{ + $nt_hash_offset = $u.HashOffset + 8; + $enc_nt_hash = [byte[]]$u.V[$($nt_hash_offset)..$($nt_hash_offset+0x0f)]; + } + return ,(DecryptHashes $u.Rid $enc_lm_hash $enc_nt_hash $hbootkey); +} + +function DecryptHashes($rid, [byte[]]$enc_lm_hash, [byte[]]$enc_nt_hash, [byte[]]$hbootkey) +{{ + [byte[]]$lmhash = $empty_lm; [byte[]]$nthash=$empty_nt; + # LM Hash + if ($enc_lm_hash) + {{ + $lmhash = DecryptSingleHash $rid $hbootkey $enc_lm_hash $almpassword; + } + + # NT Hash + if ($enc_nt_hash) + {{ + $nthash = DecryptSingleHash $rid $hbootkey $enc_nt_hash $antpassword; + } + + return ,($lmhash,$nthash) +} + +function DecryptSingleHash($rid,[byte[]]$hbootkey,[byte[]]$enc_hash,[byte[]]$lmntstr) +{{ + $deskeys = sid_to_key $rid; + $md5 = [Security.Cryptography.MD5]::Create(); + $rc4_key = $md5.ComputeHash($hbootkey[0..0x0f] + [BitConverter]::GetBytes($rid) + $lmntstr); + $rc4 = NewRC4 $rc4_key; + $obfkey = $rc4.encrypt($enc_hash); + $hash = (des_decrypt $obfkey[0..7] $deskeys[0]) + + (des_decrypt $obfkey[8..$($obfkey.Length - 1)] $deskeys[1]); + return ,$hash; +} + +function Get-UserKeys +{{ + ls HKLM:\SAM\SAM\Domains\Account\Users | + where {{$_.PSChildName -match "^[0-9A-Fa-f]{{8}$"} | + Add-Member AliasProperty KeyName PSChildName -PassThru | + Add-Member ScriptProperty Rid {{[Convert]::ToInt32($this.PSChildName, 16)} -PassThru | + Add-Member ScriptProperty V {{[byte[]]($this.GetValue("V"))} -PassThru | + Add-Member ScriptProperty UserName {{Get-UserName($this.GetValue("V"))} -PassThru | + Add-Member ScriptProperty HashOffset {{[BitConverter]::ToUInt32($this.GetValue("V")[0x9c..0x9f],0) + 0xCC} -PassThru +} + +function DumpHashes +{{ + LoadApi + $bootkey = Get-BootKey; + $hbootKey = Get-HBootKey $bootkey; + Get-UserKeys | %{{ + $hashes = Get-UserHashes $_ $hBootKey; + "{{0}" -f ($_.UserName);#,$_.Rid, + # [BitConverter]::ToString($hashes[0]).Replace("-","").ToLower(), + # [BitConverter]::ToString($hashes[1]).Replace("-","").ToLower() + + } +} + +DumpHashes | out-file -filePath "{parameter "Storage"}\CachedUsers.txt" -encoding ASCII + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Update Troubleshooter - Windows (21363).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Update Troubleshooter - Windows (21363).bes new file mode 100644 index 000000000..68a677e40 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Update Troubleshooter - Windows (21363).bes @@ -0,0 +1,54 @@ + + + + + Invoke - Windows Update Troubleshooter - Windows + This runs the Windows Update Troubleshooter on the targeted endpoint.

+

For more information on the Windows Update Troubleshooter see:

+ +

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + = "5.1"]]> + Internal + 2016-08-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete run.ps1 + +createfile until _end_ + +Import-Module troubleshootingpack + +Get-TroubleshootingPack -Path "{pathname of windows folder}\diagnostics\system\WindowsUpdate" | Invoke-TroubleshootingPack -Unattended + +_end_ + +move __createfile run.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File run.ps1 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Join Computer to domain - wmic (26947).bes b/Sites/Windows Management/Fixlets/Fixlets/Join Computer to domain - wmic (26947).bes new file mode 100644 index 000000000..dc38b1301 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Join Computer to domain - wmic (26947).bes @@ -0,0 +1,88 @@ + + + + + Join Computer to domain - wmic +

+
+

+ + + + + + + + + + + + + + +

+

Important Notes

+
    +
  • +
    You must enter a password in order to take an action
    +
  • +
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
]]>
+ windows of operating system + = "9.0"]]> + if exists property "in proxy agent context" then not in proxy agent context else true + not exists netbios domainnames of local computers of active directories + Accounts + HCL Lab Services + 2019-05-20 + + x-fixlet-modification-time + Fri, 04 Oct 2019 17:39:01 +0000 + + BESC + + + + Join + &nbsp;the computer to a domain + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/KB2731771_ New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 (2592).bes b/Sites/Windows Management/Fixlets/Fixlets/KB2731771_ New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 (2592).bes new file mode 100644 index 000000000..5fedb81e9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/KB2731771_ New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 (2592).bes @@ -0,0 +1,96 @@ + + + + + KB2731771: New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 + + + + +
When you run an application that requires date interpretation and that uses the new APIs on a computer that is running Windows 7 or Windows Server 2008 R2, the following issues may occur:
+
    +
  • Applications or web pages crash. +
  • You cannot log on to web-based applications. +
  • When you schedule a meeting by using a calendar application, and the recipient of the calendar item is located in a different time zone, the calendar item does not display the correct meeting time. +
  • JavaScript-based stock ticker applications or JavaScript-based chart applications do not work as expected.
+

Note: Affected computers may report back as 'Pending Restart' once the update has run successfully, but will not report back their final status until the computer has been restarted.

Note: This security update is also referenced under KB2731771.

+
+

File Size:

4.67 MB or 6.27 MB
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + NOT(exists names whose (it as string contains "6.1.1.1") of values of keys whose (name of it contains "Package_for_KB2731771") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageIndex" of native registry) + not pending restart "86675d2fd327b328793dc179727ce0ce5107a72e" AND not pending restart "98dba6673cedbc2860c76b9686e895664d463347" + ((name of it = "Win7" OR name of it = "Win2008R2") AND (service pack major version of it = 1 OR service pack major version of it = 0)) of operating system + Security Patch + Microsoft + KB2731771 + 2013-09-09 + Optional + + x-fixlet-superseded_date + 2012-11-14 + + + x-fixlet-first-propagation + Tue, 14 Aug 2012 23:40:59 +0000 + + + x-fixlet-superseded + MS12-075 + + + x-fixlet-modification-time + Mon, 09 Sep 2013 16:24:52 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + + + + + Click + here + to view this Security Bulletin from Microsoft. + + http://support.microsoft.com/kb/2731771 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/KB2953095 - Disable RTF processing in MS Word (3741).bes b/Sites/Windows Management/Fixlets/Fixlets/KB2953095 - Disable RTF processing in MS Word (3741).bes new file mode 100644 index 000000000..11042eac2 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/KB2953095 - Disable RTF processing in MS Word (3741).bes @@ -0,0 +1,101 @@ + + + + + KB2953095 - Disable RTF processing in MS Word +  

+

This fixlet uses Local Group Policy to set per-user registry entries. These entries disable RTF processing in MS Word. See the MS KB2953095.

+

NOTE: This may report back as "failed" but actually succeed due to difficulties with writing relevance to detect the local GPO change.

+

The changes are made the binary file located here:  C:\Windows\System32\GroupPolicy\User\Registry.pol

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + = "11.0" AND version of it < "16")]]> + 0) of it) of keys "word\security" of keys of key "Software\Policies\Microsoft\office" of it) of key "HKEY_USERS" of registry]]> + Internal + jgstew + 2014-03-27 + + x-fixlet-modification-time + Thu, 27 Mar 2014 19:17:58 +0000 + + BESC + + + Click + here + to deploy this action. + + > "{pathname of client folder of current site}\__Download\gpupdate.log" +// Updating GPO as current user might not be needed. +//waithidden __Download\RunAsCurrentUser.exe --w gpupdate /Force /Target:User /Wait:600 >> "{pathname of client folder of current site}\__Download\gpupdate.log" + +// If the above gpupdate commands work correctly, then a restart should not be needed. +action requires restart]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 (153).bes b/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 (153).bes new file mode 100644 index 000000000..b60cb512b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 (153).bes @@ -0,0 +1,88 @@ + + + + + Known issues for Windows Server and/or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 +

Version 8.1.634.0 of Tivoli Endpoint Manager is now available!

The latest version of Tivoli Endpoint Manager provides several enhancements and fixes. Click on the link below for more information on changes in Tivoli Endpoint Manager 8.1.

Windows Installer 3.1 or greater must be installed to perform this upgrade. Use the action below to install Windows Installer 3.1. Once this is complete, you can use to upgrade Tivoli Endpoint Manager Servers and Consoles to version 8.1.634.0.

Note: Affected computers may report back as 'Pending Restart' once the patch has run successfully, but the vulnerability will not be closed until the affected computer is restarted.

If you have any issues during the upgrade, you may want to review the manual upgrade instructions below to help resolve the issues.

+]]>
+ name of operating system as lowercase starts with "win" + = 1) OR ((it = "WinXP" OR it = "WinXP-2003") of name of it AND service pack major version of it >= 2))) of operating system]]> + evaluation of client license = false + = "7.0.1")) of registry) OR (exists regapp "BESConsole.exe" whose (version of it < "8.1.634.0" AND version of it >= "6"))]]> + = "3.1") of system folder)]]> + if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" whose (exists value "value" of it) of registry) then (value "value" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" of registry as string = "BigFix") else ("BigFix"="BigFix") + 11 + IBM + <Unspecified> + 2012-01-09 + Critical + + x-fixlet-first-propagation + Tue, 31 Jan 2012 21:19:33 +0000 + + + x-fixlet-modification-time + Mon, 30 Jul 2012 22:05:05 +0000 + + + x-fixlet-domain-attributes + BES Deploy Server Console + + BESC + + + Click + here + to install Windows Installer 3.1 on relevant computers. + + prefetch WindowsKBforServer.exe sha1:8318455b36ba0a748307459279d46f2f4cdb5a0e size:2585872 http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe +delete __Local/Get/WindowsKBforServer.exe +move __Download/WindowsKBforServer.exe __Local/Get/WindowsKBforServer.exe +wait __Local/Get/WindowsKBforServer.exe /passive /quiet /norestart +delete __Local/Get/WindowsKBforServer.exe +action may require restart + + + + Click + here + for manual upgrade instructions. + + http://support.bigfix.com/bes/install/upgradebes.html + + + + Click + here + to see the new features in Trend Micro Endpoint Security Platform 8.1. + + http://support.bigfix.com/bes/changes/changes-8.1.html + + + + Click + here + to view the Microsoft Windows Installer 3.1 information page. + + http://support.microsoft.com/?id=893803 + + + + Click + here + to see the new features in Tivoli Endpoint Manager 8.1. + + http://support.bigfix.com/bes/changes/changes-8.1.html + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 (129).bes b/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 (129).bes new file mode 100644 index 000000000..bbd9b4579 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 (129).bes @@ -0,0 +1,80 @@ + + + + + Known issues for Windows Server and/or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 +

Version 8.1.634.0 of Trend Micro Endpoint Security Platform is now available!

The latest version of Trend Micro Endpoint Security Platform provides several enhancements and fixes. Click on the link below for more information on changes in Trend Micro Endpoint Security Platform 8.1.

Windows Installer 3.1 or greater must be installed to perform this upgrade. Use the action below to install Windows Installer 3.1. Once this is complete, you can use to upgrade Trend Micro Endpoint Security Platform Servers and Consoles to version 8.1.634.0.

Note: Affected computers may report back as 'Pending Restart' once the patch has run successfully, but the vulnerability will not be closed until the affected computer is restarted.

If you have any issues during the upgrade, you may want to review the manual upgrade instructions below to help resolve the issues.

+]]>
+ name of operating system as lowercase starts with "win" + = 1) OR ((it = "WinXP" OR it = "WinXP-2003") of name of it AND service pack major version of it >= 2))) of operating system]]> + if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" whose (exists value "value" of it) of registry) then (value "value" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" of registry as string = "Trend") else ("Trend"="BigFix") + evaluation of client license = false + = "7.0.1")) of registry) OR (exists regapp "BESConsole.exe" whose (version of it < "8.1.634.0" AND version of it >= "6"))]]> + = "3.1") of system folder)]]> + Upgrade + IBM + <Unspecified> + 2012-01-31 + Critical + + x-fixlet-first-propagation + Tue, 31 Jan 2012 21:19:33 +0000 + + + x-fixlet-modification-time + Mon, 30 Jul 2012 22:05:05 +0000 + + + x-fixlet-domain-attributes + BES Deploy Server Console + + BESC + + + Click + here + to install Windows Installer 3.1 on relevant computers. + + prefetch WindowsKBforServer.exe sha1:8318455b36ba0a748307459279d46f2f4cdb5a0e size:2585872 http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe +delete __Local/Get/WindowsKBforServer.exe +move __Download/WindowsKBforServer.exe __Local/Get/WindowsKBforServer.exe +wait __Local/Get/WindowsKBforServer.exe /passive /quiet /norestart +delete __Local/Get/WindowsKBforServer.exe +action may require restart + + + + Click + here + for manual upgrade instructions. + + http://support.bigfix.com/bes/install/upgradebes.html + + + + Click + here + to see the new features in Trend Micro Endpoint Security Platform 8.1. + + http://support.bigfix.com/bes/changes/changes-8.1.html + + + + Click + here + to view the Microsoft Windows Installer 3.1 information page. + + http://support.microsoft.com/?id=893803 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy (26933).bes b/Sites/Windows Management/Fixlets/Fixlets/LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy (26933).bes new file mode 100644 index 000000000..0782cb80d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy (26933).bes @@ -0,0 +1,110 @@ + + + + + LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy + LGPO v3.0 is described at https://www.microsoft.com/en-us/download/details.aspx?id=55319.  The utility allows for scripted configuration of Local Group Policy (Computer, User, and MLGPO contexts).  

+

LGPO can configure Registry policies, apply Secedit templates, and configure Advanced Audit Policies.  Existing policy settings can be exported or imported from text.

+

This example fixlet demonstrates the use of LGPO by configuring the Security Event Log maximum size to 80 MB. 

+

The LGPO zip file includes a PDF explaining its use. 

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = version "6.1"]]> + /* Sample check to set Security Event Log maximum size to 80 MB */ not exists keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Eventlog\Security" whose (value "MaxSize" of it as integer = 81920) of native registry + LGPO Template Policy + Internal + 2017-08-17 + + bigfixme-added-time + Thu, 17 Aug 2017 14:27:09 GMT + + + bigfixme-modification-time + Thu, 17 Aug 2017 14:27:09 GMT + + + bigfixme-keywords + Local Group Policy, LGPO, Security, MLGPO, Secedit + + + bigfixme-ID + 24619 + + + x-fixlet-modification-time + Mon, 23 May 2022 17:48:53 +0000 + + BESC + + + Click + here + to deploy this action. + + // To use this template, update or remove the following blocks and replace the Relevance + +// Enter your action script here + +begin prefetch block + + add prefetch item name=LGPO.zip sha1=4578a97946102a20505d1e8f09abedd1fd7a8d89 size=531635 url=https://download.microsoft.com/download/8/5/C/85C25433-A1B0-4FFA-9429-7E023E7DA8D8/LGPO.zip sha256=cb7159d134a0a1e7b1ed2ada9a3ce8ce8f4de391d14403d55438af824247cc55 + + // Download UnZip utility + add prefetch item name=unzip.exe sha1=84debf12767785cd9b43811022407de7413beb6f size=204800 url=http://software.bigfix.com/download/redist/unzip-6.0.exe sha256=2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + + +collect prefetch items +end prefetch block + +// Add LGPO.zip to the client utility cache +utility __Download\LGPO.zip + +// Add unzip.exe to the client utility cache +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "{pathname of client folder of current site}\__Download\LGPO.zip" -d "{pathname of client folder of current site}\__Download" + + +action uses wow64 redirection false + +delete __createfile +createfile until EOF_EOF_EOF +; ---------------------------------------------------------------------- +; PARSING COMPUTER POLICY +; Source file: \temp\Registry.pol + +Computer +Software\Policies\Microsoft\Windows\Eventlog\Security +MaxSize +DWORD:81920 + +; PARSING COMPLETED. +; ---------------------------------------------------------------------- + +EOF_EOF_EOF + +delete regpol.txt +move __createfile regpol.txt + +waithidden __Download\LGPO_30\LGPO.exe /t regpol.txt +continue if {exit code of action = 0} + + + + Click + here + to review this task in the bigfix.me Content Database. + + https://bigfix.me/cdb/fixlet/24619 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/List Offline Files (PowerShell) (644).bes b/Sites/Windows Management/Fixlets/Fixlets/List Offline Files (PowerShell) (644).bes new file mode 100644 index 000000000..8c10cacc8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/List Offline Files (PowerShell) (644).bes @@ -0,0 +1,96 @@ + + + + + List Offline Files (PowerShell) + List Offline Files

+

This is considered a brute force search since it recursively looks at every file. 

+

Be careful to try and be specific with which folder to start your search.  If you start at the "c:\" folder, the scan is likely to take a very long time... and this task waits for that search to complete... thus your client will be stalled until this search is finished.

+

The results file is saved in the "parent folder of the client" and named "OfflineFiles.csv".

]]>
+ name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + = "2.0") of registry]]> + Search + danielheth@bigfix.me + <Unspecified> + 2012-10-26 + <Unspecified> + + x-fixlet-modification-time + Fri, 26 Oct 2012 21:05:37 +0000 + + BESC + + + Click&nbsp; + here + &nbsp;to search for offline folders/files. + + action parameter query "startDir" with description "Specify the root folder path you want to scan recursively through:" and with default value "c:\users" +//============================================================================ +//PowerShell Script... +// +//1. Save old ExecutionPolicy value +parameter "PolicyExisted"="{exists value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry)}" +parameter "oldExecutionPolicy"="{if (parameter "PolicyExisted" as boolean) then (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) as string) else ""}" +//2. set to ExecutionPolicy=Unrestricted and Pull PowerShell exe from registry... if 64bit then pull PowerShell x64 +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" + parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +else + //we need to determine what the current execution policy is so we can put it back when we're done. + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" + parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry}" +endif +//3. Create PowerShell script and save to a ps1 file +delete __appendfile +delete script.ps1 +appendfile Get-ChildItem "{parameter "startDir"}" -recurse | Where-Object {$_.Attributes -eq 'offline'} | Export-Csv "{pathname of parent folder of client}\OfflineFiles.csv" +move __appendfile script.ps1 +//4. Execute PowerShell with ps1 script file +action uses wow64 redirection false +waithidden "{parameter "PowerShellexe"}" -file "{pathname of client folder of current site}\script.ps1" +action uses wow64 redirection {x64 of operating system} +//5. Restore ExecutionPolicy back +if {x64 of operating system} + if {parameter "PolicyExisted" as boolean} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" + else + regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" + endif +else + if {parameter "PolicyExisted" as boolean} + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" + else + regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" + endif +endif +//============================================================================ + + + + Click + here + to learn about Ben Shorehill's research into the powershell command we're using. + + http://www.symantec.com/connect/downloads/csv-report-all-offline-files-powershell + + + + Click + here + to learn about Microsoft's Offline Files features. + + http://windows.microsoft.com/en-US/windows-vista/Understanding-offline-files + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Lock Screen - Windows (23995).bes b/Sites/Windows Management/Fixlets/Fixlets/Lock Screen - Windows (23995).bes new file mode 100644 index 000000000..204b298b8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Lock Screen - Windows (23995).bes @@ -0,0 +1,40 @@ + + + + + Lock Screen - Windows + + windows of operating system + exists (current users;logged on users) + not exists processes "LogonUI.exe" + Internal + 2015-11-05 + + x-fixlet-modification-time + Thu, 05 Nov 2015 19:36:31 +0000 + + BESC + + + Click + here + to deploy this action. + + +override wait +runas=currentuser +wait rundll32.exe user32.dll,LockWorkStation + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Lock computer multiple options (26856).bes b/Sites/Windows Management/Fixlets/Fixlets/Lock computer multiple options (26856).bes new file mode 100644 index 000000000..820241b89 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Lock computer multiple options (26856).bes @@ -0,0 +1,66 @@ + + + + + Lock computer multiple options + + true + Internal + 2021-06-09 + + x-fixlet-modification-time + Thu, 10 Jun 2021 07:30:24 +0000 + + BESC + + + Click + here + to lock the computer for 24 hours + + // Lock computer for 24 hours + +action lock until "{now + (24 * hour)}" "{parameter "action issue date" of action}" + + + + Click + here + to to lock the computer for&nbsp;7 days + + // Lock computer for 7 days + +action lock until "{now + (7 * day)}" "{parameter "action issue date" of action}" + + + + Click + here + to to lock the computer for custom&nbsp; time (in hours) + + // Lock computer for custom hours +action parameter query "_hours_lock" with description "Lock the system for this many hours [hh]" + +action lock until "{now + (parameter "_hours_lock" as integer) * hour}" "{parameter "action issue date" of action}" for client + + + + Click + here + to lock the computer indefinitely + + // Lock computer indefinitely +action lock indefinite "{parameter "action issue date" of action}" +continue if { lock string of action lock state = "Yes" } + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Locky malware detection (9275).bes b/Sites/Windows Management/Fixlets/Fixlets/Locky malware detection (9275).bes new file mode 100644 index 000000000..8aee107b0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Locky malware detection (9275).bes @@ -0,0 +1,41 @@ + + + + + Locky malware detection + This fixlet is for the detection of the locky malware on Windows machines. For more information about locky, click on the links below.

+

NOTE: detection for logged in user.

+

Vendor KB on locky - here

+

Blog on Locky - here.

+

 Ransomware called Locky spreads via a malicious macro in a Word document. The malware demands a ransom of half a Bitcoin for the key to unlock the encrypted files. Locky has infected machines in Europe, Russia, Pakistan, Mali, and the US.
-http://www.theregister.co.uk/2016/02/17/locky_ransomware/
-http://www.computerworld.com/article/3033941/security/locky-ransomware-which-inf
ects-like-dridex-hits-the-unlucky.html

-http://arstechnica.com/security/2016/02/locky-crypto-ransomware-rides-in-on-mali
cious-word-document-macro/

-http://www.darkreading.com/vulnerabilities---threats/advanced-threats/here-comes
-locky-a-brand-new-ransomware-threat/d/d-id/1324371?

+

note: this fixlet is not tested against locky or variants. mileage may vary.

]]>
+ name of operating system contains "Win" + + Malware Detection + BigFix.me + 2016-03-11 + CVE-2016-1716 + + x-fixlet-modification-time + Sat, 12 Mar 2016 00:42:14 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Log Unique SMBv1 Connection Server Names - Windows (23554).bes b/Sites/Windows Management/Fixlets/Fixlets/Log Unique SMBv1 Connection Server Names - Windows (23554).bes new file mode 100644 index 000000000..6172bc379 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Log Unique SMBv1 Connection Server Names - Windows (23554).bes @@ -0,0 +1,51 @@ + + + + + Log Unique SMBv1 Connection Server Names - Windows + + windows of operating system + + Internal + jgstew + 2017-02-14 + + x-fixlet-modification-time + Tue, 21 Feb 2017 19:43:50 +0000 + + BESC + + + Click + here + to deploy this action. + + > "{ pathnames of folders "Logs" of folders "__Global" of data folders of clients }\results_SMBv1_ServerNames.log") + +// The following is to provide timeout functionality in case CMD hangs +pause while { now < (active start time of active action + 5 * minute) AND exists items 3 of (pid of it, (active start time of active action | ( if (exists properties whose(it as string starts with "creation time of ")) then creation time of it else start time of it ) of it), set of ("BESClientUI.exe";"BESClientUI"), processes ) whose( creation time of item 3 of it > item 1 of it AND name of item 3 of it is not contained by item 2 of it AND item 0 of it = ppid of item 3 of it) of (processes "BESClient.exe" ; processes "BESClient") } + +if {exists items 3 of (pid of it, (active start time of active action | ( if (exists properties whose(it as string starts with "creation time of ")) then creation time of it else start time of it ) of it), set of ("BESClientUI.exe";"BESClientUI"), processes ) whose( creation time of item 3 of it > item 1 of it AND name of item 3 of it is not contained by item 2 of it AND item 0 of it = ppid of item 3 of it) of (processes "BESClient.exe" ; processes "BESClient") } + parameter "KillingItDueToTimeout"="True" + waithidden Taskkill /T /F { ("/PID " & it) of concatenations " /PID " of (it as string) of pids of items 3 of (pid of it, (active start time of active action | ( if (exists properties whose(it as string starts with "creation time of ")) then creation time of it else start time of it ) of it), set of ("BESClientUI.exe";"BESClientUI"), processes ) whose( creation time of item 3 of it > item 1 of it AND name of item 3 of it is not contained by item 2 of it AND item 0 of it = ppid of item 3 of it) of (processes "BESClient.exe" ; processes "BESClient") } +else + parameter "KillingItDueToTimeout"="False" +endif +]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Look for Wanna Cry encrypted files on the C_ drive - v1.1 (24312).bes b/Sites/Windows Management/Fixlets/Fixlets/Look for Wanna Cry encrypted files on the C_ drive - v1.1 (24312).bes new file mode 100644 index 000000000..b8b457101 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Look for Wanna Cry encrypted files on the C_ drive - v1.1 (24312).bes @@ -0,0 +1,44 @@ + + + + + Look for Wanna Cry encrypted files on the C: drive - v1.1 + Seach for any files with .wncry extenstions that exist on the C: drive.  Old school batch file, so if there are a ton of files, this will take a while and can possibly have a noticable performance impact when it runs.

+

This will create a file (c:\wannacry_files.txt) for the search results.  There is a corresponding property (Wanna Cry Files - C: Drive) that will parse this file for any files that are found and report the results back up.

+

This file is expected to have the following two lines.  Anymore than that is bad.

+

 Volume in drive C has no label.
 Volume Serial Number is 7A01-AEAF

+


 

+

There are three expected results returned by the property:

+

Wanna Cry Encrypted files found (this is bad)

+

No Encrypted Files Found (results file exists, nothing bad found, scan could still be running though)

+

Scan Results File Not Found (this means you have not executed this task yet)

+

 

]]>
+ windows of operating system + exists folder "c:\" + Jason Cordell (jcordell@cbihome.com) + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 13:17:41 +0000 + + BESC + + + Click + here + to deploy this action. + + c:\wannacry_files.txt]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Disable Debug Logging (1410).bes b/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Disable Debug Logging (1410).bes new file mode 100644 index 000000000..a67d04a20 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Disable Debug Logging (1410).bes @@ -0,0 +1,50 @@ + + + + + Net Logon - Disable Debug Logging + If you are having accounts getting locked out... it is helpful to enable netlogon debug logging to track down where the problem is coming from.  This task will enable debug logging on Windows Servers.

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry + exists value "DBFlag" whose (it as integer != 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry + Troubleshooting + dsmith + <Unspecified> + 2013-02-19 + <Unspecified> + + x-fixlet-modification-time + Tue, 19 Feb 2013 18:21:38 +0000 + + BESC + + + Click + here + to Disable Debug Logging. + + //now configure debug setting +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]" "DBFlag"=dword:0 +//restart netlogon service +waithidden net stop "netlogon" +waithidden net start "netlogon" + + + + Click + here + to read the Microsoft KB 109626. + + http://support.microsoft.com/kb/109626 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Enable Debug Logging (1409).bes b/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Enable Debug Logging (1409).bes new file mode 100644 index 000000000..47ba34f42 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Enable Debug Logging (1409).bes @@ -0,0 +1,52 @@ + + + + + Net Logon - Enable Debug Logging + If you are having accounts getting locked out... it is helpful to enable netlogon debug logging to track down where the problem is coming from.  This task will enable debug logging on Windows Servers.

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry + if exists value "DBFlag" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry then exists value "DBFlag" whose (it as integer != 545325055) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry else true + Troubleshooting + dsmith + <Unspecified> + 2013-02-19 + <Unspecified> + + x-fixlet-modification-time + Tue, 19 Feb 2013 18:22:22 +0000 + + BESC + + + Click + here + to Enable Debug Logging. + + //delete registry setting +regdelete "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]" "DBFlag" +//now configure debug setting +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]" "DBFlag"=dword:2080FFFF +//restart netlogon service +waithidden net stop "netlogon" +waithidden net start "netlogon" + + + + Click + here + to read the Microsoft KB 109626. + + http://support.microsoft.com/kb/109626 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Nuke IPv6 - Windows (27385).bes b/Sites/Windows Management/Fixlets/Fixlets/Nuke IPv6 - Windows (27385).bes new file mode 100644 index 000000000..5e8df9aeb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Nuke IPv6 - Windows (27385).bes @@ -0,0 +1,40 @@ + + + + + Nuke IPv6 - Windows + Does what it says on the box + true + Internal + 2025-09-09 + + x-fixlet-modification-time + Tue, 09 Sep 2025 23:05:09 +0000 + + BESC + + + Click + here + to deploy this action. + + dos reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" /v DisabledComponents /t REG_DWORD /d 255 /f +dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /f +dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /v Teredo_State /t REG_SZ /d Disabled /f +dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /v 6to4_State /t REG_SZ /d Disabled /f +dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /v ISATAP_State /t REG_SZ /d Disabled /f + +waithidden cmd.exe /C netsh interface ipv6 uninstall + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/OLDER Version_ Create LS alias for DIR command - Windows (20414).bes b/Sites/Windows Management/Fixlets/Fixlets/OLDER Version_ Create LS alias for DIR command - Windows (20414).bes new file mode 100644 index 000000000..0d8ac11c0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/OLDER Version_ Create LS alias for DIR command - Windows (20414).bes @@ -0,0 +1,49 @@ + + + + + OLDER Version: Create LS alias for DIR command - Windows + This makes me hate windows less + windows of operating system + exists folders "C:\ProgramData\chocolatey\bin" + + not exists lines whose(it contains "@dir %25*") of files "C:\ProgramData\chocolatey\bin\ls.bat" + Internal + jgstew + 2016-04-15 + + x-fixlet-modification-time + Fri, 15 Apr 2016 21:24:52 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://stackoverflow.com/questions/9362692/how-to-create-ls-in-windows-command-prompt +// http://stackoverflow.com/questions/20530996/aliases-in-windows-command-prompt + +delete __createfile +createfile until END_OF_FILE +@dir %* +END_OF_FILE + +delete C:\ProgramData\chocolatey\bin\ls.bat +copy __createfile C:\ProgramData\chocolatey\bin\ls.bat + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Outlook Profile Reset (24867).bes b/Sites/Windows Management/Fixlets/Fixlets/Outlook Profile Reset (24867).bes new file mode 100644 index 000000000..16f30c88d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Outlook Profile Reset (24867).bes @@ -0,0 +1,47 @@ + + + + + Outlook Profile Reset + This task will close Outlook, Skype, and Teams.  It will then delete all mail profiles from the currently logged in user, including OST.  The mail profile will need to be set up from scratch.

]]>
+ windows of operating system + exists folder "C:\Program Files (x86)\Microsoft Office" + Scripting + Internal + 2017-12-13 + + x-fixlet-modification-time + Thu, 14 Dec 2017 20:01:23 +0000 + + BESC + + + Click + here + to deploy this action. + + // Disable wow64 redirection on x64 OSes +//action uses wow64 redirection {not x64 of operating system} + +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM OUTLOOK.EXE +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM lync.exe +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM SkypeHost.exe +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM Teams.exe +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM OneDrive.exe + +dos reg delete "HKEY_USERS\{component string of sid of security account (name of logged on user)}\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" /f +dos reg delete "HKEY_USERS\{component string of sid of security account (name of logged on user)}\Software\Microsoft\Office\16.0\Outlook\Profiles" /f + +folder delete "C:\Users\{name of logged on user}\AppData\Local\Microsoft\Outlook" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Output Drivers using Driverquery - Windows (6060).bes b/Sites/Windows Management/Fixlets/Fixlets/Output Drivers using Driverquery - Windows (6060).bes new file mode 100644 index 000000000..823dce41f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Output Drivers using Driverquery - Windows (6060).bes @@ -0,0 +1,42 @@ + + + + + Output Drivers using Driverquery - Windows + This task will dump the details of the installed windows drivers to log files, which can be reported on using relevance.

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists files whose(name of it as lowercase starts with "info_driverquery_" AND name of it as lowercase ends with ".csv") of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + Internal + jgstew + 2014-03-28 + + x-fixlet-modification-time + Tue, 12 May 2015 18:58:07 +0000 + + BESC + + + Click + here + to deploy this action. + + "{pathname of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) )}\info_driverquery_verbose.csv" +dos driverquery /SI /fo CSV > "{pathname of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) )}\info_driverquery_signed.csv" +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Output Windows Update Results - Windows (23123).bes b/Sites/Windows Management/Fixlets/Fixlets/Output Windows Update Results - Windows (23123).bes new file mode 100644 index 000000000..b7094aa4c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Output Windows Update Results - Windows (23123).bes @@ -0,0 +1,103 @@ + + + + + Output Windows Update Results - Windows + read results with this analysis: https://github.com/jgstew/bigfix-content/blob/master/analyses/Windows%20Update%20check%20results%20-%20Windows.bes

+

 

]]>
+ windows of operating system + + Internal + jgstew + 2016-12-21 + + x-fixlet-modification-time + Fri, 23 Dec 2016 23:36:10 +0000 + + BESC + + + Click + here + to deploy this action. + + WindowsUpdates.ini +' Source: https://msdn.microsoft.com/en-us/library/windows/desktop/aa387102(v=vs.85).aspx +' Modifications by @jgstew in 2016 - Public Domain + +' It is possible to do this "offline": https://msdn.microsoft.com/en-us/library/windows/desktop/aa387290(v=vs.85).aspx + +Set updateSession = CreateObject("Microsoft.Update.Session") +updateSession.ClientApplicationID = "Check for Windows Updates" + +Set updateSearcher = updateSession.CreateUpdateSearcher() + +' Method: https://msdn.microsoft.com/en-us/library/windows/desktop/aa386526(v=vs.85).aspx +Set searchResult = updateSearcher.Search("IsInstalled=0") +' also works as a single line: Set searchResult = CreateObject("Microsoft.Update.Session").CreateUpdateSearcher().Search("IsInstalled=0") + +WScript.Echo "[Windows Updates]" & vbCRLF & "Number= " & searchResult.Updates.Count + +numHidden = 0 +numSoftware = 0 +numDriver = 0 + +For I = 0 To searchResult.Updates.Count-1 +' IUpdate interface: https://msdn.microsoft.com/en-us/library/windows/desktop/aa386099(v=vs.85).aspx + Set update = searchResult.Updates.Item(I) + + ' Update Type Enum: https://msdn.microsoft.com/en-us/library/windows/desktop/aa387284(v=vs.85).aspx + updateTypeStr = "Unknown" + If 1=update.Type Then + updateTypeStr = "Software" + numSoftware = numSoftware + 1 + ElseIf 2=update.Type Then + updateTypeStr = "Driver" + numDriver = numDriver + 1 + End If + + WScript.Echo updateTypeStr & I + 1 & "= " & update.Title + + If update.IsHidden Then + numHidden = numHidden + 1 + End If +Next + +WScript.Echo "Hidden= " & numHidden +WScript.Echo "Software= " & numSoftware +WScript.Echo "Driver= " & numDriver + +' Related: +' - https://thwack.solarwinds.com/community/application-and-server_tht/patchzone/blog/2012/10/05/how-the-windows-update-agent-determines-the-status-of-an-update +' - https://bigfix.me/fixlet/details/23096 +' - https://github.com/jgstew/bigfix-content/blob/master/fixlet/Output%20Windows%20Update%20Results%20-%20Windows.bes + +_END_OF_FILE_ + +delete "{ download path "WUA_Search.vbs" }" +move __createfile "{ download path "WUA_Search.vbs" }" + +waithidden cmd /c cscript __Download\WUA_Search.vbs //Nologo > __Download\results_WindowsUpdates.ini + +delete "{pathnames of folders "__Global\Logs" of data folders of client}\results_WindowsUpdates.ini" +move __Download\results_WindowsUpdates.ini "{pathnames of folders "__Global\Logs" of data folders of client}\results_WindowsUpdates.ini" +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7 (312).bes b/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7 (312).bes new file mode 100644 index 000000000..0bf522b52 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7 (312).bes @@ -0,0 +1,51 @@ + + + + + PC Narcolepsy: Set System Unattended Sleep Timeout - Windows Vista/7 +

By default, systems on standby that are woken by a Wake-on-LAN or Wake-from-Standby event will go back to sleep in two minutes if the system does not receive any user input. This may cause a condition called "PC Narcolepsy" where the computer will fall back asleep before tasks can be run on that system.

Use this Fixlet to configure the amount of time the system will stay awake after recieving a Wake-on-LAN or Wake-from-Standby event on Windows Vista and Windows 7 systems. This setting is called the "System Unattended Sleep Timeout".

Note: This task only changes the System Unattended Sleep Timeout setting on the current power profile. If the power profile is changed, this task may need to be reapplied.

+]]>
+ name of operating system starts with "Win" + (it = "WinVista" OR it = "Win7") of name of operating system + = "7.2"]]> + Standby Behavior + BigFix + <Unspecified> + 2010-08-13 + N/A + + x-fixlet-modification-time + Sat, 12 May 2012 00:55:27 +0000 + + + x-fixlet-first-propagation + Thu, 17 Nov 2011 19:28:18 +0000 + + + x-fixlet-domain_attributes + Manage_Standby_Behavior + + BESC + + + Click + here + to change the System Unattended Sleep Timeout setting on the current power profile. You will be prompted for the number of minutes. + + = 2 AND parameter "inputMinutes" of action as integer <= 1440} +waithidden "{pathname of system folder & "\powercfg.exe"}" -SETACVALUEINDEX {value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of registry as string} {"238c9fa8-0aad-41ed-83f4-97be242c8f20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0"} {parameter "inputMinutes" of action as integer * 60} +waithidden "{pathname of system folder & "\powercfg.exe"}" -SETDCVALUEINDEX {value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of registry as string} {"238c9fa8-0aad-41ed-83f4-97be242c8f20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0"} {parameter "inputMinutes" of action as integer * 60}]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7_8 - altered to set defaults to 35min - testing (1419).bes b/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7_8 - altered to set defaults to 35min - testing (1419).bes new file mode 100644 index 000000000..d3b6a4bca --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7_8 - altered to set defaults to 35min - testing (1419).bes @@ -0,0 +1,68 @@ + + + + + PC Narcolepsy: Set System Unattended Sleep Timeout - Windows Vista/7/8 - altered to set defaults to 35min - testing + + + + +

By default, systems on standby that are woken by a Wake-on-LAN or Wake-from-Standby event will go back to sleep in two minutes if the system does not receive any user input. This may cause a condition called "PC Narcolepsy" where the computer will fall back asleep before tasks can be run on that system.

+

Use this Fixlet to configure the amount of time the system will stay awake after recieving a Wake-on-LAN or Wake-from-Standby event on Windows Vista, 7 and 8 systems. This setting is called the "System Unattended Sleep Timeout".

+

Note: This task only changes the System Unattended Sleep Timeout setting on the current power profile. If the power profile is changed, this task may need to be reapplied.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else true) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (it = "WinVista" OR it = "Win7" OR it = "Win8") of name of operating system + exists keys whose(exists values "AcSettingIndex" of it AND (35*60) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry + Standby Behavior + jgs194 + <Unspecified> + 2010-08-13 + N/A + + x-fixlet-first-propagation + Tue, 29 Mar 2011 23:24:21 +0000 + + + x-fixlet-domain_attributes + Manage_Standby_Behavior + + + x-fixlet-modification-time + Thu, 21 Mar 2013 15:32:32 +0000 + + BESC + + + Click + here + to change the System Unattended Sleep Timeout setting on the current power profile. You will be prompted for the number of minutes. + + = (2*60) AND parameter "secToWaitAfterWakeUpUnattended" of action as integer <= (1440*60)} +//set for balanced +//regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\381b4222-f694-41f0-9685-ff5bb260df2e]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} +//set for high performance +//regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} +//set for power saver +//regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\a1841308-3541-4fab-bc81-f71556f20b4a]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} +//set for any power profile that needs altered, only if it needs altered. +continue if{exists keys whose(exists values "AcSettingIndex" of it AND (parameter "secToWaitAfterWakeUpUnattended" of action as integer) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry} +regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\{(preceding text of first "," of (it & ",") of concatenation "," of names of keys whose(exists values "AcSettingIndex" of it AND (parameter "secToWaitAfterWakeUpUnattended" of action as integer) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry)}]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} +]]> + (parameter "numOfValuesToChange" of action as integer) = (number of values "AcSettingIndex" of keys whose(exists values "AcSettingIndex" of it AND (parameter "secToWaitAfterWakeUpUnattended" of action as integer) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry) + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING (10608).bes b/Sites/Windows Management/Fixlets/Fixlets/Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING (10608).bes new file mode 100644 index 000000000..efda3f710 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING (10608).bes @@ -0,0 +1,50 @@ + + + + + Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING + + /* Windows Only */ windows of operating system + = "5.1"]]> + exists file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) + exists lines containing "Get-WindowsUpdateLog PowerShell" of files "WindowsUpdate.log" of windows folders + Internal + jgstew + 2016-03-29 + + x-fixlet-modification-time + Tue, 29 Mar 2016 20:34:08 +0000 + + BESC + + + Click + here + to deploy this action. + + +parameter "LogLocation" = "{ pathname of folders "Logs" of folders "__Global" of data folders of clients }" + +parameter "SymLocation" = "{ pathname of items 1 of it whose(item 0 of it = maximum of modification times of files "wuapi.mof" of item 1 of it) of (it, folders "WindowsUpdateLog\SymCache" of ( folders "AppData\Local\Temp" of folders of folders "C:\Users" ) ) of maximum of modification times of files "wuapi.mof" of folders "WindowsUpdateLog\SymCache" of ( folders "AppData\Local\Temp" of folders of folders "C:\Users" ) }" + +// https://technet.microsoft.com/en-us/library/mt238376.aspx +// http://powershell-guru.com/dont-19-use-double-quotes-escape-characters/ +// https://msdn.microsoft.com/en-us/library/windows/desktop/ee416588(v=vs.85).aspx#symbol_servers +waithidden powershell -ExecutionPolicy Bypass -command "Get-WindowsUpdateLog -SymbolServer '{ parameter "SymLocation" }' -LogPath '{ parameter "LogLocation" }\WindowsUpdate.log'" + +// http://answers.microsoft.com/en-us/windows/forum/windows_10-update/windowsupdatelog-unreadable/2e6b05ed-ac91-4186-a362-c6b5a7e42911?auth=1 +// It seems like you can specify a folder for -SymbolServer : +// Get-WindowsUpdateLog -SymbolServer C:\Users\user\Documents\MySymbols + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Start Menu (677).bes b/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Start Menu (677).bes new file mode 100644 index 000000000..8e05ea44e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Start Menu (677).bes @@ -0,0 +1,79 @@ + + + + + Pin Calc to Windows 7 Start Menu + Pin the calculator to a Windows 7 Start Menu + name of operating system contains "Win7" + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-11-30 + <Unspecified> + + x-fixlet-modification-time + Fri, 30 Nov 2012 16:55:17 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + Click + here + &nbsp;to read source forum thread. + + + + + + Click + here + to read more about silent pinning. + + http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx + + + + Click + here + to read more about RunAsCurrentUser utility. + + http://www-01.ibm.com/support/docview.wss?uid=swg21506033 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Taskbar (678).bes b/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Taskbar (678).bes new file mode 100644 index 000000000..4d169addf --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Taskbar (678).bes @@ -0,0 +1,79 @@ + + + + + Pin Calc to Windows 7 Taskbar + Pin the calculator to a Windows 7 Taskbar + name of operating system contains "Win7" + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-11-30 + <Unspecified> + + x-fixlet-modification-time + Fri, 30 Nov 2012 16:56:27 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + Click + here + &nbsp;to read source forum thread. + + + + + + Click + here + to read more about silent pinning. + + http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx + + + + Click + here + to read more about RunAsCurrentUser utility. + + http://www-01.ibm.com/support/docview.wss?uid=swg21506033 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/PointAndPrint Mitigation for Printnightmare vulnerability (26861).bes b/Sites/Windows Management/Fixlets/Fixlets/PointAndPrint Mitigation for Printnightmare vulnerability (26861).bes new file mode 100644 index 000000000..30ce0fab3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/PointAndPrint Mitigation for Printnightmare vulnerability (26861).bes @@ -0,0 +1,48 @@ + + + + + PointAndPrint Mitigation for Printnightmare vulnerability + Optionally configure the RestrictDriverInstallationToAdministrators registry value to prevent non-administrators from installing printer drivers on a print server.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + windows of operating system + not exists key "HKEY_LOCAL_MACHINE \Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" whose (value "RestrictDriverInstallationToAdministrators" of it as integer = 1) of native registry + Internal + 2021-07-08 + + x-fixlet-modification-time + Thu, 08 Jul 2021 17:01:57 +0000 + + BESC + + + Click + here + to deploy this action. + + if {x64 of operating system} +regset64 "[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint]" "RestrictDriverInstallationToAdministrators"=dword:00000001 +else +regset "[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint]" "RestrictDriverInstallationToAdministrators"=dword:00000001 +endif + + + + + Click + here + to read more from Microsoft. + + https://support.microsoft.com/en-us/topic/kb5005010-restricting-installation-of-new-printer-drivers-after-applying-the-july-6-2021-updates-31b91c02-05bc-4ada-a7ea-183b129578a7 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Powershell - Assign System Account Folder Rights (Prompt for Path) (26609).bes b/Sites/Windows Management/Fixlets/Fixlets/Powershell - Assign System Account Folder Rights (Prompt for Path) (26609).bes new file mode 100644 index 000000000..fc0eb23b4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Powershell - Assign System Account Folder Rights (Prompt for Path) (26609).bes @@ -0,0 +1,129 @@ + + + + + Powershell - Assign System Account Folder Rights (Prompt for Path) + + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + Software Distribution + OSD + <Unspecified> + 2019-02-21 + <Unspecified> + + x-fixlet-runAsSystem + {"passwordType":"required","username":"","asAdmin":"true","userType":"system","completion":"none","targetuser":""} + + + action-ui-metadata + {"icon":"","size":"9046533","version":"0.0"} + + + x-fixlet-swdCommandOverride + a + + + x-fixlet-swd-wizard-data + {"lastmodified":"Thu Feb 21 20:29:36 GMT-0500 2019","categories":[],"useCommandLine":false,"site":null,"os":[],"vendor":"Wallpaper","pkgvariablekey":"SWD_Package_brad.sexton@sexton.local_1550780131285592","runAsSystem":null,"pkgTag":"","product":"OSD","files":[{"file_url":null,"msi_metadata":null,"sha1":"C861E36BD7A7F119757BCBA945BC6F23515E6715","id":"C861E36BD7A7F119757BCBA945BC6F23515E6715_1550798976595193","filename":"IMG_2071.JPG","appx_metatdata":null,"dateadded":"Thu, 21 Feb 2019 20:29:36 -0500","exe_metadata":null,"compressed_data_for_package":false,"spb_metadata":null,"osd_metadata":null,"size":6131476,"folderoffset":"","ReferenceName":"/C861E36BD7A7F119757BCBA945BC6F23515E6715/IMG_2071.JPG","HasAnonymousReference":false,"sha256":"0b1fbb69323abf4c6d94221626b598ceae46320ffebad240464f0350ec5aa6e2","uploadSuffix":"bfswd","appv_metadata":null,"ReferenceID":"5151","rpm_metadata":null},{"file_url":null,"msi_metadata":null,"sha1":"054E100047CA5C0AAAB3C01CB965313E5994A00F","id":"054E100047CA5C0AAAB3C01CB965313E5994A00F_1550780146769758","filename":"IMG_3675.JPG","appx_metatdata":null,"dateadded":"Thu, 21 Feb 2019 15:15:44 -0500","exe_metadata":null,"compressed_data_for_package":false,"spb_metadata":null,"osd_metadata":null,"size":2915057,"folderoffset":"","ReferenceName":"/054E100047CA5C0AAAB3C01CB965313E5994A00F/IMG_3675.JPG","HasAnonymousReference":false,"sha256":"96f30e46ec7c5faac96da6d17ae69c091eb21dc779db2a9b9e8f1ce60e45e693","uploadSuffix":"bfswd","appv_metadata":null,"ReferenceID":"5067","rpm_metadata":null}],"fullInstallCommand":null,"comment":null,"description":null,"owner":"brad.sexton@sexton.local","version":"0.0","creator":"brad.sexton@sexton.local"} + + + x-fixlet-advancedPathOptions + {"deleteCustomPath":false,"customPath":false,"customPathName":null} + + + x-fixlet-advancedLogOptions + {"individualLogCustomerName":null,"uploadTheLog":false,"individualLog":false} + + + x-fixlet-swdPackageID + SWD_Package_brad.sexton@sexton.local_1550780131285592 + + + x-fixlet-prePostInstall + {"preInstall":null,"postType":null,"preType":null,"selected":false,"postInstall":null} + + + x-fixlet-pkgTag + + + + x-fixlet-pkgType + + + + x-fixlet-swdSelectedFiles + ["C861E36BD7A7F119757BCBA945BC6F23515E6715","054E100047CA5C0AAAB3C01CB965313E5994A00F"] + + + x-fixlet-canPreserveCustom + true + + + x-fixlet-swdUseCommandLine + true + + + x-fixlet-swdDeployCategory + Install + + + x-fixlet-adf-wizard-source + Software Distribution_SoftwareDistribution + + + x-fixlet-adf-wizard-data + "" + + + x-fixlet-modification-time + Tue, 05 Mar 2019 18:20:28 +0000 + + SYST + + + Click&nbsp; + here + &nbsp;to deploy this action + + // Disable wow64 redirection on x64 OSes +action parameter query "Path" with description "Please enter full path of the folder" + + + + +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +set-executionpolicy unrestricted +takeown /f {parameter "Path" of action} /R /D Y /A +icacls {parameter "Path" of action} /Grant ‘System:(OI)(CI)F’ /T + + + +get-help | Out-File "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_powershell.log" + + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy unrestricted -File powershell.ps1 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Powershell Computer Rename (Prompt) (26604).bes b/Sites/Windows Management/Fixlets/Fixlets/Powershell Computer Rename (Prompt) (26604).bes new file mode 100644 index 000000000..aed81eac8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Powershell Computer Rename (Prompt) (26604).bes @@ -0,0 +1,55 @@ + + + + + Powershell Computer Rename (Prompt) + + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + Brad Sexton + 2018-12-04 + + x-fixlet-modification-time + Tue, 12 Feb 2019 17:45:51 +0000 + + BESC + + + Click + here + to deploy this action. + + // Disable wow64 redirection on x64 OSes +action parameter query "PC-Name" with description "Please enter the new PC name" + +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +$computerName = Get-WmiObject Win32_ComputerSystem +$computername.Rename("{parameter "PC-Name" of action}") + + +get-help | Out-File "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_powershell.log" + + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy unrestricted -File powershell.ps1 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Registry.pol Corruption Fix (27373).bes b/Sites/Windows Management/Fixlets/Fixlets/Registry.pol Corruption Fix (27373).bes new file mode 100644 index 000000000..907782408 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Registry.pol Corruption Fix (27373).bes @@ -0,0 +1,45 @@ + + + + + Registry.pol Corruption Fix + Resolves an issue where computers do not retrieve Group Policy updates due to the following file being corrupted:
C:\Windows\System32\GroupPolicy\Machine\Registry.pol

This fixlet deletes Registry.pol and then runs gpupdate /force to update Group Policy.

+

By default this fixlet will remain open, reapply when relevant, and prompt the user to restart 4 hours after the action has finished.

]]>
+ exists native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" + (byte 0 of it, byte 1 of it, byte 2 of it, byte 3 of it) of native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" != (80, 82, 101, 103) + Internal + 2025-02-25 + + x-fixlet-modification-time + Tue, 25 Feb 2025 17:07:31 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +if {exists native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol"} + move "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" "C:\Windows\System32\GroupPolicy\Machine\Registry.pol.bak" + delete "C:\Windows\System32\GroupPolicy\Machine\Registry.pol.bak" +endif + +waithidden gpupdate /force + +continue if {(not exists native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol") or ((byte 0 of it, byte 1 of it, byte 2 of it, byte 3 of it) of native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" = (80, 82, 101, 103))} + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/RemotePrint Disable Mitigation for Printnightmare vulnerability (26862).bes b/Sites/Windows Management/Fixlets/Fixlets/RemotePrint Disable Mitigation for Printnightmare vulnerability (26862).bes new file mode 100644 index 000000000..ae63bda3f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/RemotePrint Disable Mitigation for Printnightmare vulnerability (26862).bes @@ -0,0 +1,66 @@ + + + + + RemotePrint Disable Mitigation for Printnightmare vulnerability + Optionally configure the RegisterSpoolerRemoteRpcEndPoint registry value to disable remote printing
Sets "[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers]" "RegisterSpoolerRemoteRpcEndPoint"=dword:00000002

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + windows of operating system + not exists (keys "HKLM\Software\Policies\Microsoft\Windows NT\Printers" of native registry) whose (exists (value "RegisterSpoolerRemoteRpcEndPoint" of it) whose (it as string = "2" as string)) + exists service "spooler" whose (start type of it != "disabled") + Internal + 2021-07-08 + + x-fixlet-modification-time + Thu, 08 Jul 2021 20:14:50 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + Click + here + to read more from Microsoft. + + https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove MSXML 4.0 SP2 and 3 and updates with msiexec (26634).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove MSXML 4.0 SP2 and 3 and updates with msiexec (26634).bes new file mode 100644 index 000000000..ecc2adaeb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove MSXML 4.0 SP2 and 3 and updates with msiexec (26634).bes @@ -0,0 +1,108 @@ + + + + + Remove MSXML 4.0 SP2 and 3 and updates with msiexec + This fixlet fully scrubs a computer of MSXML Parser 4.0 which is past end of life. It does so by cycling through all of the possible MSIEXEC commands for the various versions of the Parser. + = "5.1"]]> + /* Windows Only */ windows of operating system + exists (it as string as lowercase) whose (it starts with "MSXML 4.0 SP3 Parser" as lowercase) of values "DisplayName" of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x64 registries; x32 registries) + Internal + 2019-01-22 + + x-fixlet-modification-time + Thu, 11 Jul 2019 15:07:01 +0000 + + BESC + + + Click + here + to deploy this action. + + //REM Uninstalling MSXML 4.0 SP2 and updates +//REM Uninstalling MSXML 4.0 SP2 Parser and SDK (Base Installer - msxml.msi) +waithidden MsiExec.exe /uninstall {{716E0306-8318-4364-8B8F-0CC4E9376BAC} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result1"="success" +else + parameter "result1"="failure" +endif +//REM Uninstalling KB925672 (MS06-061 - msxml4-KB925672-enu.exe) +waithidden MsiExec.exe /uninstall {{A9CF9052-F4A0-475D-A00F-A8388C62DD63} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result2"="success" +else + parameter "result2"="failure" +endif +//REM Uninstalling KB927978 (MS06-071 - msxml4-KB927978-enu.exe) +waithidden MsiExec.exe /uninstall {{37477865-A3F1-4772-AD43-AAFC6BCFF99F} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result3"="success" +else + parameter "result3"="failure" +endif +//REM Uninstalling KB936181 (MS07-042 - msxml4-KB936181-enu.exe) +waithidden MsiExec.exe /uninstall {{C04E32E0-0416-434D-AFB9-6969D703A9EF} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result4"="success" +else + parameter "result4"="failure" +endif +//REM Uninstalling KB954430 (MS08-069 - msxml4-KB954430-enu.exe) +waithidden MsiExec.exe /uninstall {{86493ADD-824D-4B8E-BD72-8C5DCDC52A71} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result5"="success" +else + parameter "result5"="failure" +endif +//REM Uninstalling KB973688 (Non Security Update - msxml4-KB973688-enu.exe) +waithidden MsiExec.exe /uninstall {{F662A8E6-F4DC-41A2-901E-8C11F044BDEC} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result6"="success" +else + parameter "result6"="failure" +endif +//REM Uninstalling MSXML 4.0 SP3 and updates +//REM Uninstalling MSXML 4.0 SP3 Parser (Base Installer - msxml.msi) +waithidden MsiExec.exe /uninstall {{196467F1-C11F-4F76-858B-5812ADC83B94} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result7"="success" +else + parameter "result7"="failure" +endif +//REM Uninstalling KB973685 (Non Security Update - msxml4-KB973685-enu.exe) +waithidden MsiExec.exe /uninstall {{859DFA95-E4A6-48CD-B88E-A3E483E89B44} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result8"="success" +else + parameter "result8"="failure" +endif +//REM Uninstalling KB2721691 (MS12-043 - msxml4-KB2721691-enu.exe) +Waithidden MsiExec.exe /uninstall {{355B5AC0-CEEE-42C5-AD4D-7F3CFD806C36} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result9"="success" +else + parameter "result9"="failure" +endif +//REM Uninstalling KB2758694 (MS13-002 - msxml4-KB2758694-enu.exe) +waithidden MsiExec.exe /uninstall {{1D95BA90-F4F8-47EC-A882-441C99D30C1E} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result10"="success" +else + parameter "result10"="failure" +endif +continue if [Parameter "result1" of action = "success" or Parameter "result2" of action = "success" or Parameter "result3" of action = "success" or Parameter "result4" of action = "success" or Parameter "result5" of action = "success" or Parameter "result6" of action = "success" or Parameter "result7" of action = "success" or Parameter "result8" of action = "success" or Parameter "result9" of action = "success" or Parameter "result10" of action = "success"} + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove Scheduled Wake from Standby - those not created by wizard (2528).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove Scheduled Wake from Standby - those not created by wizard (2528).bes new file mode 100644 index 000000000..3ecadfb3c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove Scheduled Wake from Standby - those not created by wizard (2528).bes @@ -0,0 +1,39 @@ + + + + + Remove Scheduled Wake from Standby - those not created by wizard + + windows of operating system + (exists keys whose(name of it starts with "Wakeup Schedule Weekly " OR name of it starts with "Wakeup Schedule Daily ") of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\ScheduledWakeups" of registry) + Internal + jgs194 + 2013-02-28 + + x-fixlet-modification-time + Mon, 04 Mar 2013 17:37:45 +0000 + + BESC + + + Click + here + to deploy this action. + + + (parameter "numOfValuesToChange" of action as integer) > (number of keys whose(name of it starts with "Wakeup Schedule Weekly " OR name of it starts with "Wakeup Schedule Daily ") of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\ScheduledWakeups" of registry) + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove XPS Viewer (648).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove XPS Viewer (648).bes new file mode 100644 index 000000000..b35e50d5b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove XPS Viewer (648).bes @@ -0,0 +1,93 @@ + + + + + Remove XPS Viewer + + name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + = "2.0") of registry]]> + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2011-04-21 + <Unspecified> + + x-fixlet-modification-time + Tue, 30 Oct 2012 19:50:51 +0000 + + BESC + + + Click&nbsp; + here + &nbsp;to deploy this action. + + +//============================================================================ +//PowerShell Script... +// +//1. Save old ExecutionPolicy value +parameter "PolicyExisted"="{exists value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry)}" +parameter "oldExecutionPolicy"="{if (parameter "PolicyExisted" as boolean) then (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) as string) else ""}" +//2. set to ExecutionPolicy=Unrestricted and Pull PowerShell exe from registry... if 64bit then pull PowerShell x64 +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" + parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +else + //we need to determine what the current execution policy is so we can put it back when we're done. + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" + parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry}" +endif +//3. Create PowerShell script and save to a ps1 file +delete __appendfile +delete script.ps1 +createfile until END +Import-Module c:\windows\system32\WindowsPowerShell\v1.0\Modules\ServerManager +New-Item c:\temp\new_file.txt -type file +#Remove-XPS Viewer - no reboot required +$XPS = Get-WindowsFeature XPS-Viewer +if ($XPS.Installed -eq "True") +{ + Write-Host "" + Write-Host "Removing XPS Viewer" + Remove-WindowsFeature XPS-Viewer + Add-Content c:\temp\new_file.txt "XPS Viewer Uninstalled" +} +else +{ + Add-Content c:\temp\new_file.txt "XPS Viewer Not Installed" +} +END +move __createfile script.ps1 +//4. Execute PowerShell with ps1 script file +action uses wow64 redirection false +waithidden "{parameter "PowerShellexe"}" -file "{pathname of client folder of current site}\script.ps1" +action uses wow64 redirection {x64 of operating system} +//5. Restore ExecutionPolicy back +if {x64 of operating system} + if {parameter "PolicyExisted" as boolean} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" + else + regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" + endif +else + if {parameter "PolicyExisted" as boolean} + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" + else + regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" + endif +endif +//============================================================================ + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove _Last Man Standing_ Power Scheme (21436).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove _Last Man Standing_ Power Scheme (21436).bes new file mode 100644 index 000000000..a22420193 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove _Last Man Standing_ Power Scheme (21436).bes @@ -0,0 +1,63 @@ + + + + + Remove "Last Man Standing" Power Scheme + + + +This Task will remove Last Man Standing Power Scheme on selected computers. +

+

After removing Last Man Standing settings, selected computers will no longer be excluded from Power Management tasks, however they will still be configured to never enter standby, and to function as a Wake on LAN forwarders.

+

Note: It will set the Power Scheme to Balanced Power Schecme if the active power scheme is "Last Man Standing"

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else true) AND (name of operating system starts with "Win" OR name of operating system = "Mac OS X") + = "7.2" AND ((if (name of it= "Mac OS X") then (release of it >= "10.4" as version AND release of it < "10.9" as version) else true) of operating system)]]> + = "10.4" as version) else false)) OR (exists main gather service)) AND (if exists property "in proxy agent context" then (not in proxy agent context) else true)]]> + exists keys whose (value "FriendlyName" of it as string as lowercase contains "last man standing") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" of native registry + not exist settings whose(name of it contains "PowerManagement_LastManStanding" AND value of it = "1") of client + Last Man Standing + BigFix + <Unspecified> + 2010-08-13 + N/A + + x-fixlet-first-propagation + Tue, 20 Jul 2010 23:51:34 +0000 + + + x-fixlet-domain_attributes + LMS_Fixlets + + + x-fixlet-modification-time + Mon, 05 Sep 2016 08:44:50 +0000 + + BESC + + + Click + here + to remove Last Man Standing Power Scheme. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove and deactivate Windows license (25208).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove and deactivate Windows license (25208).bes new file mode 100644 index 000000000..3faba76ee --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove and deactivate Windows license (25208).bes @@ -0,0 +1,41 @@ + + + + + Remove and deactivate Windows license + This task will deathorize a Windows license.

+

The task will only be relevant to activated Windows workstations.  It will evaluate as successful after it becomes no longer relevant.

]]>
+ windows of operating system + (select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name like 'Windows(R)%25')" of wmi) as string contains "1" + (select ("ProductType from Win32_OperatingSystem") of WMI) as string contains "1" + Software removal + Internal + 2018-02-28 + + x-fixlet-modification-time + Wed, 28 Feb 2018 16:15:02 +0000 + + BESC + + + Click + here + to deploy this action. + + dos cscript C:\Windows\System32\slmgr.vbs /upk /ato +dos cscript C:\Windows\System32\slmgr.vbs /cpky /ato +dos cscript C:\Windows\System32\slmgr.vbs /rearm /ato +action requires restart + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove logged in user from local Administrators group (24889).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove logged in user from local Administrators group (24889).bes new file mode 100644 index 000000000..4398a3343 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove logged in user from local Administrators group (24889).bes @@ -0,0 +1,36 @@ + + + + + Remove logged in user from local Administrators group + + windows of operating system + (select ("ProductType from Win32_OperatingSystem") of WMI) as string contains "1" + exists (members whose ((it as a string) contains (name of logged on user)) of local group "administrators") + Group Membership + Internal + 2018-01-25 + + x-fixlet-modification-time + Thu, 25 Jan 2018 20:36:20 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Rename Windows Computer (1393).bes b/Sites/Windows Management/Fixlets/Fixlets/Rename Windows Computer (1393).bes new file mode 100644 index 000000000..6df99dd46 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Rename Windows Computer (1393).bes @@ -0,0 +1,55 @@ + + + + + Rename Windows Computer + We can rename a windows computer from command line using WMIC computersystem command. Please see the command below

WMIC computersystem where caption='currentname' rename newname
+

Example: If the current computer name is XP-PC, to change it to Windows7-PC, we can run the below command.

wmic computersystem where caption='xp-pc' rename windows7-pc
+

After running the command, you need to reboot the computer to make the changes effective.

+

This command works on XP, Vista, Windows 7 and also on Server 2003 and Server 2008 editions.

]]>
+ name of operating system starts with "Win" + exists file "wmic.exe" of folder "wbem" of system folder + Configuration + danielheth@bigfix.me + <Unspecified> + 2013-01-30 + <Unspecified> + + x-fixlet-modification-time + Wed, 30 Jan 2013 19:15:31 +0000 + + BESC + + + Click + here + to deploy this action. + + //ask admin for name of new computer +action parameter query "newComputerName" with description "Please enter the new Computer Name (Ex: Daniel-PC):" and with default value "" +//use WMI to change the name +waithidden wmic computersystem where caption='{computer name as string}' call rename '{parameter "newComputerName" as string}' +continue if {exit code of action = 0} +//flag action as requiring a restart +action requires restart + + + + + Click + here + to Command Reference. + + http://www.windows-commandline.com/2011/10/change-computer-name-command-line.html + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Repair WMI (676).bes b/Sites/Windows Management/Fixlets/Fixlets/Repair WMI (676).bes new file mode 100644 index 000000000..5c288e067 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Repair WMI (676).bes @@ -0,0 +1,77 @@ + + + + + Repair WMI + fixlet to repair WMI + windows of operating system + exists wmi + not exists string values of selects "Domain from Win32_ComputerSystem" of wmi + Maintenance + danielheth@bigfix.me + <Unspecified> + 2012-11-30 + <Unspecified> + + x-fixlet-modification-time + Fri, 30 Nov 2012 16:16:26 +0000 + + BESC + + + Click + here + to deploy this action. + + delete wmifix.bat +delete __createfile +createfile until end +@ECHO OFF +if not exist "c:\temp" md "c:\temp" +cd /d c:\temp +if not exist c:\windows\system32\wbem goto TryInstall +cd /d c:\windows\system32\wbem +net stop winmgmt /y +winmgmt /kill +if exist Rep_bak rd Rep_bak /s /q +rename Repository Rep_bak +for %%i in (*.dll) do RegSvr32 -s %%i +for %%i in (*.exe) do call :FixSrv %%i +for %%i in (*.mof,*.mfl) do Mofcomp %%i +net start winmgmt +goto End +:FixSrv +if /I (%1) == (wbemcntl.exe) goto SkipSrv +if /I (%1) == (wbemtest.exe) goto SkipSrv +if /I (%1) == (mofcomp.exe) goto SkipSrv +%1 /RegServer +:SkipSrv +goto End +:TryInstall +if not exist wmicore.exe goto End +wmicore /s +net start winmgmt +:End +end +move __createfile wmifix.bat +waithidden wmifix.bat + + + + Click + here + &nbsp;to read source forum thread. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Replace IP in hosts file on Windows (26953).bes b/Sites/Windows Management/Fixlets/Fixlets/Replace IP in hosts file on Windows (26953).bes new file mode 100644 index 000000000..66dc23d7a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Replace IP in hosts file on Windows (26953).bes @@ -0,0 +1,43 @@ + + + + + Replace IP in hosts file on Windows + + windows of operating system + Internal + 2022-10-13 + + x-fixlet-modification-time + Thu, 13 Oct 2022 12:33:37 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Revoke eDellRoot Certificate - Enable Workaround (6286).bes b/Sites/Windows Management/Fixlets/Fixlets/Revoke eDellRoot Certificate - Enable Workaround (6286).bes new file mode 100644 index 000000000..580c5e8a5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Revoke eDellRoot Certificate - Enable Workaround (6286).bes @@ -0,0 +1,112 @@ + + + + + Revoke eDellRoot Certificate - Enable Workaround + + + + +

Use this Fixlet to revoke the eDellRoot Certificate.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false + exists keys "Root\Certificates\98A04E4163357790C4A79E6D713FF0AF51FE6927" of keys "Software\Microsoft\SystemCertificates" of (keys whose (exists key "Software\Microsoft\SystemCertificates" of it) of key "HKEY_USERS" of it; keys "HKEY_LOCAL_MACHINE" of it) of native registry + not exists key "HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates\Disallowed\Certificates\98A04E4163357790C4A79E6D713FF0AF51FE6927" of native registry + Workaround + Dell + Unspecified + 2015-11-24 + Unspecified + Unspecified + + x-fixlet-component + Unspecified + + + x-fixlet-product + Unspecified + + + x-fixlet-product-family + Windows + + + x-fixlet-modification-time + Wed, 25 Nov 2015 15:52:42 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + delete __appendfile +delete revoke.eDellRoot.reg + +//Revoke eDellRoot certificate from the system Trusted Root Certification Authorities +appendfile REGEDIT4 +appendfile +appendfile [HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates\Disallowed\Certificates\98A04E4163357790C4A79E6D713FF0AF51FE6927] +appendfile "Blob"=hex:03,00,00,00,01,00,00,00,14,00,00,00,98,a0,4e,41,63,35,77,90,c4,a7,\ +appendfile 9e,6d,71,3f,f0,af,51,fe,69,27,19,00,00,00,01,00,00,00,10,00,00,00,ea,63,2f,\ +appendfile 67,70,2d,8b,ae,21,89,7d,c0,56,8b,7a,27,14,00,00,00,01,00,00,00,14,00,00,00,\ +appendfile a0,2b,69,46,00,23,79,56,32,2e,15,11,e1,2d,8c,22,81,5d,0c,c8,0f,00,00,00,01,\ +appendfile 00,00,00,14,00,00,00,37,0c,1a,7b,45,ab,c1,fa,fb,6d,48,ca,11,02,d8,d4,17,49,\ +appendfile fb,fa,04,00,00,00,01,00,00,00,10,00,00,00,fc,3c,91,06,a6,d3,1b,c9,85,3d,7c,\ +appendfile cc,ec,44,ad,96,20,00,00,00,01,00,00,00,f7,02,00,00,30,82,02,f3,30,82,01,df,\ +appendfile a0,03,02,01,02,02,10,6b,c5,7b,95,18,93,aa,97,4b,62,4a,c0,88,fc,3b,b6,30,09,\ +appendfile 06,05,2b,0e,03,02,1d,05,00,30,14,31,12,30,10,06,03,55,04,03,13,09,65,44,65,\ +appendfile 6c,6c,52,6f,6f,74,30,1e,17,0d,31,35,30,34,30,37,31,30,32,33,32,37,5a,17,0d,\ +appendfile 33,39,31,32,33,31,32,33,35,39,35,39,5a,30,14,31,12,30,10,06,03,55,04,03,13,\ +appendfile 09,65,44,65,6c,6c,52,6f,6f,74,30,82,01,22,30,0d,06,09,2a,86,48,86,f7,0d,01,\ +appendfile 01,01,05,00,03,82,01,0f,00,30,82,01,0a,02,82,01,01,00,bd,d1,26,0d,6e,cd,5b,\ +appendfile 84,5f,41,f0,e1,75,86,ce,ce,a8,23,d5,be,a3,b1,d9,75,57,41,30,c5,5b,e0,6c,db,\ +appendfile e2,e6,63,09,33,63,6c,fc,78,6f,c2,cd,14,bd,6e,02,b5,2d,fb,95,55,31,00,ec,39,\ +appendfile 36,37,2e,0f,d7,7b,f5,0d,ba,46,36,6f,ed,25,95,43,b3,cc,16,18,a5,bb,05,71,ca,\ +appendfile 38,9f,a4,ac,4e,f0,e1,36,2e,6d,fa,43,e8,ed,cd,b7,66,b6,01,3e,63,ae,f3,67,84,\ +appendfile 27,a7,1a,be,cf,ed,df,db,be,c0,53,a4,5d,7c,2f,44,28,87,03,f9,56,c8,d5,8d,10,\ +appendfile f8,75,ef,e6,c2,10,fd,ea,e4,df,89,ad,5f,ba,1e,8d,f3,40,f1,2f,e5,05,09,61,d9,\ +appendfile 97,b0,c9,83,d8,23,10,a2,37,90,52,3e,bc,27,dd,4f,e7,0e,41,2a,3b,ab,1b,4c,63,\ +appendfile 8a,fc,e1,4a,88,9e,f7,29,bb,55,1c,0b,16,35,92,71,1b,b0,ff,d5,d5,e8,22,ea,4f,\ +appendfile 22,f9,c6,ba,a2,88,3a,75,b9,33,ae,a8,d8,f7,bb,1c,ad,b3,da,1c,6e,ca,09,5e,ec,\ +appendfile 63,e6,21,18,91,23,35,9e,f2,ee,a4,4b,fe,96,0c,bd,5a,ac,c8,10,53,26,d6,5f,02,\ +appendfile 03,01,00,01,a3,49,30,47,30,45,06,03,55,1d,01,04,3e,30,3c,80,10,60,0f,df,13,\ +appendfile 33,f0,99,a4,5c,66,e4,9a,6b,f5,59,d4,a1,16,30,14,31,12,30,10,06,03,55,04,03,\ +appendfile 13,09,65,44,65,6c,6c,52,6f,6f,74,82,10,6b,c5,7b,95,18,93,aa,97,4b,62,4a,c0,\ +appendfile 88,fc,3b,b6,30,09,06,05,2b,0e,03,02,1d,05,00,03,82,01,01,00,2b,7d,d7,12,72,\ +appendfile c7,b3,8f,ca,28,27,dd,94,c3,09,cf,82,0d,fa,9e,83,a0,89,4b,39,5f,33,cb,3f,88,\ +appendfile 74,26,95,18,41,52,81,f6,16,35,59,30,f0,45,47,d3,28,68,7b,a0,d3,a8,c1,dd,36,\ +appendfile ed,af,eb,55,26,ff,4c,d7,a8,88,92,2f,30,a9,f8,81,bb,d5,09,60,22,1e,13,bc,bb,\ +appendfile 6b,b4,46,41,c2,0d,5b,1a,ed,ed,22,e2,77,29,b9,e5,ac,8a,18,e7,ea,30,6b,63,c4,\ +appendfile fe,ed,e0,d8,c2,21,53,fc,5d,37,03,c3,49,ee,62,b9,95,90,3c,48,57,79,09,30,f2,\ +appendfile dc,40,54,53,95,30,cd,75,1c,e4,7a,08,45,4c,57,48,fc,9c,bb,76,88,05,66,b0,83,\ +appendfile 7b,02,74,a8,80,a2,29,12,70,f0,16,8f,46,cc,d2,f9,ac,3f,ff,10,4a,54,ce,06,a3,\ +appendfile be,40,54,3a,47,cd,81,b5,3b,c1,35,4d,ea,6d,52,02,57,84,0e,6e,cc,62,6f,ef,85,\ +appendfile 00,52,f9,e8,d0,29,3e,ab,24,83,b5,73,2d,f3,48,02,32,9a,6c,75,1c,8d,bb,99,92,\ +appendfile 68,3a,8e,be,01,7d,85,bb,fa,84,03,1c,2b,18,80,00,e3,8c,a1,9d,2b,3f,fc,53,f7,\ +appendfile cf + +move __appendfile revoke.eDellRoot.reg +waithidden regedit /s revoke.eDellRoot.reg + + + + + Click + here + to see the article published by Official Dell Corporate Blog. + + http://en.community.dell.com/dell-blogs/direct2dell/b/direct2dell/archive/2015/11/23/response-to-concerns-regarding-edellroot-certificate + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Roll Back_ MS11-021 (KB2501584) (1412).bes b/Sites/Windows Management/Fixlets/Fixlets/Roll Back_ MS11-021 (KB2501584) (1412).bes new file mode 100644 index 000000000..74e507218 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Roll Back_ MS11-021 (KB2501584) (1412).bes @@ -0,0 +1,46 @@ + + + + + Roll Back: MS11-021 (KB2501584) + +

This task is to prevent the MS11-021 patch bug from causing Microsoft Excel to open slowly and or crash as defind in the following article:

+

The Office File Validation Add-In for Office 2003 and Office 2007 has appeared on Microsoft

+

Update (KB2501584) as an important update. However, it has a negative effect when opening large

+

.XLS files from network shares using Excel 2003. Some large files that have opened in seconds

+

before the add-in is installed now take ten minutes afterwards. The same file copied to the

+

local drive will open in seconds again. This is admitted in KB2501584 under known issues: "Opening files from a

+

network share that have many charts or points of data will take longer to open in Office

+

2003".

+

Please see Microsoft Support article http://support.microsoft.com/kb/2570623 for more information.

]]>
+ ((name of it = "WinXP") AND service pack major version of it = 3) of operating system + EXISTS regapp "EXCEL.EXE" + + EXISTS value "UninstallString" OF key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90140000-2005-0000-0000-0000000FF1CE}" OF registry + Internal + 2011-07-25 + Important + + x-fixlet-modification-time + Mon, 01 Aug 2011 15:57:49 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden {pathname of system folder}\MsiExec.exe /X{{90140000-2005-0000-0000-0000000FF1CE} /qn + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Rollback Internet Explorer to version 9 (3706).bes b/Sites/Windows Management/Fixlets/Fixlets/Rollback Internet Explorer to version 9 (3706).bes new file mode 100644 index 000000000..f1ace2c14 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Rollback Internet Explorer to version 9 (3706).bes @@ -0,0 +1,35 @@ + + + + + Rollback Internet Explorer to version 9 + Rollback Internet Explorer to version 9

+

This task requires a reboot upon completion. This task has been tested in 32 bit Windows 7.

]]>
+ "9")]]> + Internal + 2014-02-03 + + x-fixlet-modification-time + Tue, 04 Feb 2014 22:37:24 +0000 + + BESC + + + Click + here + to deploy this action. + + wait cmd.exe /c FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*11.*.mum /c "cmd /c start /w pkgmgr /up:@fname /quiet /norestart" +wait cmd.exe /c FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*10.*.mum /c "cmd /c start /w pkgmgr /up:@fname /quiet /norestart" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB2871997 - Fix potential Kerberos problem - Windows7+ (3783).bes b/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB2871997 - Fix potential Kerberos problem - Windows7+ (3783).bes new file mode 100644 index 000000000..c9ad3697c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB2871997 - Fix potential Kerberos problem - Windows7+ (3783).bes @@ -0,0 +1,58 @@ + + + + + Rollback Patch Task: KB2871997 - Fix potential Kerberos problem - Windows7+ + This task will roll back the Microsoft Patch: KB2871997.  This may fix a recent problem with Kerberos authentication with the dce.psu.edu realm. This may not be required on all systems.

This task is applicable on: Windows 7+

+

 

+

References:

+

https://technet.microsoft.com/library/security/2871997

+

http://support.microsoft.com/kb/262841

+

 

]]>
+ /* Windows Only */ windows of operating system + = "6.1"]]> + (exists key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" whose ( exists substrings before "~" whose (it contains "KB2871997" as uppercase AND it does not contain "_") of substrings after "for_" of names of keys whose (name of it contains "for_") of it) of native registry) + Rollback + Rollback Task Wizard + jgs194 + 2014-05-14 + + x-fixlet-source + Rollback Task Wizard + + + x-fixlet-modification-time + Wed, 14 May 2014 18:00:21 +0000 + + BESC + + + Click + here + to rollback the patch, requires reboot to complete. + + +if {x64 of operating system} + wait {pathname of windows folder}\sysnative\wusa.exe /uninstall /kb:2871997 /quiet /norestart +else + wait {pathname of system folder}\wusa.exe /uninstall /kb:2871997 /quiet /norestart +endif + + +dos wuauclt /detectnow +dos wuauclt /reportnow + +action requires restart + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB971033 (26600).bes b/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB971033 (26600).bes new file mode 100644 index 000000000..275e72bf9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB971033 (26600).bes @@ -0,0 +1,46 @@ + + + + + Rollback Patch Task: KB971033 +
This task is applicable on: Windows 7, Windows 7 x64. ]]>
+ ( (exists key whose (name of it starts with "x86_microsoft-windows-s..technologies-deploy_31bf3856ad364e35_none" AND exists value "7.1.7600.16395" of keys of it) of it) of item 1 of it) of (key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of it, key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners" of it) of native registry OR (( (exists key whose (name of it starts with "amd64_microsoft-windows-s..technologies-deploy_31bf3856ad364e35_none" AND exists value "7.1.7600.16395" of keys of it) of it) of item 1 of it) of (key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of it, key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners" of it) of native registry) + ((name of it = "Win7" AND not x64 of it AND NOT ia64 of it) of operating system OR (name of it = "Win7" AND x64 of it AND NOT ia64 of it) of operating system) + Rollback + Rollback Task Wizard + 2019-01-25 + + x-fixlet-source + Rollback Task Wizard + + + x-fixlet-modification-time + Sat, 26 Jan 2019 06:00:28 +0000 + + BESC + + + Click + here + to deploy this action. + + if {x64 of operating system} +wait {pathname of windows folder}\sysnative\wusa.exe /uninstall /kb:971033 /quiet /norestart +else +wait {pathname of system folder}\wusa.exe /uninstall /kb:971033 /quiet /norestart +endif +action requires restart + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Run a Full Disk Cleanup (6133).bes b/Sites/Windows Management/Fixlets/Fixlets/Run a Full Disk Cleanup (6133).bes new file mode 100644 index 000000000..851926bd1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Run a Full Disk Cleanup (6133).bes @@ -0,0 +1,170 @@ + + + + + Run a Full Disk Cleanup +

+]]>
+ = "8.2"]]> + windows of operating system + = "5.1" as version]]> + + Internal + 2015-05-19 + + x-fixlet-first-propagation + Tue, 19 May 2015 09:44:13 +0000 + + + x-fixlet-modification-time + Tue, 19 May 2015 09:44:13 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Run_ PowerShell Script - Windows - TEMPLATE (3860).bes b/Sites/Windows Management/Fixlets/Fixlets/Run_ PowerShell Script - Windows - TEMPLATE (3860).bes new file mode 100644 index 000000000..c7be8a4c2 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Run_ PowerShell Script - Windows - TEMPLATE (3860).bes @@ -0,0 +1,58 @@ + + + + + Run: PowerShell Script - Windows - TEMPLATE + Template to run a powershell script

+

 

+

References:

+

http://bigfix.me/fixlet/details/633

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + exists file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) + Internal + jgs194 + 2014-09-22 + + x-fixlet-modification-time + Mon, 22 Sep 2014 19:47:00 +0000 + + BESC + + + Click + here + to deploy this action. + + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +# REPLACE THE FOLLOWING WITH THE SCRIPT YOU WANT TO RUN ON THE ENDPOINT +get-help | Out-File "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_powershell.log" + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Run_ produkey - recover Microsoft product keys - Windows (3941).bes b/Sites/Windows Management/Fixlets/Fixlets/Run_ produkey - recover Microsoft product keys - Windows (3941).bes new file mode 100644 index 000000000..b2fc850a8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Run_ produkey - recover Microsoft product keys - Windows (3941).bes @@ -0,0 +1,49 @@ + + + + + Run: produkey - recover Microsoft product keys - Windows + + = "5.1"]]> + /* Windows Only */ windows of operating system + + Internal + 2015-01-09 + + x-fixlet-modification-time + Fri, 09 Jan 2015 20:43:46 +0000 + + BESC + + + Click + here + to deploy this action. + + +prefetch produkey.zip sha1:55344cc446a2fb45ddd05bb3e307fc6cc80c572c size:57206 http://www.nirsoft.net/utils/produkey.zip + + +// - This unzip is a compiled verion of unzip v5.52 fom http://info-zip.org/ +// - https://www.virustotal.com/en/file/8d9b5190aace52a1db1ac73a65ee9999c329157c8e88f61a772433323d6b7a4a/analysis +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "{pathname of file "produkey.zip" of folder "__Download" of client folder of current site}" ProduKey.exe -d "{pathname of folder "__Download" of client folder of current site}" + +waithidden __Download\produkey.exe /sxml "{folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client}\config_prodkey.xml" + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Secedit Example_ Windows Account Lockout_ 15_10_10 (27000).bes b/Sites/Windows Management/Fixlets/Fixlets/Secedit Example_ Windows Account Lockout_ 15_10_10 (27000).bes new file mode 100644 index 000000000..0666c2bd1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Secedit Example_ Windows Account Lockout_ 15_10_10 (27000).bes @@ -0,0 +1,56 @@ + + + + + Secedit Example: Windows Account Lockout: 15/10/10 + Configure Windows Account Lockout Policy (for Workstation or Member Servers, not Domain Controllers).

+

15 bad attempts in 10 minutes triggers 10 minute lockout.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + /* no domain controllers */ product type of operating system = nt workstation product type or product type of operating system = nt server product type + (account lockout duration of it / minute != 10 or account lockout observation window of it /minute != 10 or account lockout threshold of it != 15) of security database + Internal + 2023-04-10 + + x-fixlet-modification-time + Mon, 10 Apr 2023 23:28:54 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +delete __createfile +createfile until BIGFIX_EOF_MARKER +[Unicode] +Unicode=yes +[System Access] +LockoutBadCount = 15 +ResetLockoutCount = 10 +LockoutDuration = 10 +[Version] +signature="$CHICAGO$" +Revision=1 +BIGFIX_EOF_MARKER + +delete tempdb.sdb +delete tempcfg.inf +move __createfile tempcfg.inf +waithidden secedit.exe /configure /cfg tempcfg.inf /db tempdb.sdb +continue if {exit code of action = 0} + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Default Profile Picture - Windows 10 (25579).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Default Profile Picture - Windows 10 (25579).bes new file mode 100644 index 000000000..eb83b1c9a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Default Profile Picture - Windows 10 (25579).bes @@ -0,0 +1,54 @@ + + + + + Set Default Profile Picture - Windows 10 + Sets the default profile picture for all users in Windows 10.

+

*** Files need to be the same picture, just different names ***

]]>
+ true + Bigfix.me + Internal + n0m4d1c + 2018-10-03 + + x-fixlet-modification-time + Fri, 09 Nov 2018 23:24:00 +0000 + + BESC + + + Click + here + to deploy this action. + + //********************************************************************* +// Insert prefetch for your PNG files +//********************************************************************* + +delete "C:\ProgramData\Microsoft\User Account Pictures\guest.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user-32.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user-40.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user-48.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user-192.png" + +copy "__Download\guest.png" "C:\ProgramData\Microsoft\User Account Pictures\guest.png" +copy "__Download\user.png" "C:\ProgramData\Microsoft\User Account Pictures\user.png" +copy "__Download\user-32.png" "C:\ProgramData\Microsoft\User Account Pictures\user-32.png" +copy "__Download\user-40.png" "C:\ProgramData\Microsoft\User Account Pictures\user-40.png" +copy "__Download\user-48.png" "C:\ProgramData\Microsoft\User Account Pictures\user-48.png" +copy "__Download\user-192.png" "C:\ProgramData\Microsoft\User Account Pictures\user-192.png" + +waithidden cmd.exe /C reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v UseDefaultTile /t REG_DWORD /d 1 /f + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Display Resolution to Maximum Resolution (27420).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Display Resolution to Maximum Resolution (27420).bes new file mode 100644 index 000000000..7597a9f1f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Display Resolution to Maximum Resolution (27420).bes @@ -0,0 +1,471 @@ + + + + + Set Display Resolution to Maximum Resolution + Sets the resolution of a computer to its recommended max resolution. Works best with laptops, may have issues with computers connected to multiple displays of different resolutions.

+

Works utilizing one of two methods:

+
    +
  1. If user logged on and not on lock screen: Utilizes DisplaySettings PowerShell module (embedded in actionscript) which uses the ChangeDisplaySettings function to change the display settings.
  2. +
  3. If no user logged on or on lock screen: Utilizes direct registry edits and then restarts the display driver.
  4. +
      +
    • WARNING: Restarting the display driver will cause the screen to temporarily go black.
    • +
    • WARNING: This will modify ALL display configurations for the device and may have unintended consequences.
]]>
+ (name of it starts with "Win") of operating system + Internal + 2026-07-14 + + x-fixlet-modification-time + Tue, 28 Jul 2026 17:33:18 +0000 + + BESC + + + Click + here + to use ChangeDisplaySettings <STRONG>or</STRONG> registry edit method depending if a user is logged on. + + = 0x0501) + // #define DISP_CHANGE_BADDUALVIEW -6 + // #endif /* _WIN32_WINNT >= 0x0501 */ + + var devMode = GetDisplaySettings(); + + devMode.dmPelsWidth = width; + devMode.dmPelsHeight = height; + + var res = ChangeDisplaySettings(ref devMode, flags); + switch (res) + {{ + case 0: + return "The settings change was successful."; + case 1: + return "The computer must be restarted for the graphics mode to work."; + case -1: + return "The display driver failed the specified graphics mode."; + case -2: + return "The graphics mode is not supported."; + case -3: + return "Unable to write settings to the registry."; + case -4: + return "An invalid set of flags was passed in."; + case -5: + return "An invalid parameter was passed in. This can include an invalid flag or combination of flags."; + case -6: + return "The settings change was unsuccessful because the system is DualView capable."; + default: + return "unknow return code: " + res; + } + } + + [DllImport("user32.dll")] + static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode); + + [DllImport("user32.dll")] + public static extern int ChangeDisplaySettings(ref DEVMODE devMode, int flags); + + public class Flags + {{ + // #define CDS_UPDATEREGISTRY 0x00000001 + // #define CDS_TEST 0x00000002 + // #define CDS_FULLSCREEN 0x00000004 + // #define CDS_GLOBAL 0x00000008 + // #define CDS_SET_PRIMARY 0x00000010 + // #define CDS_RESET 0x40000000 + // #define CDS_NORESET 0x10000000 + + public const int CDS_UPDATEREGISTRY = 0x01; + public const int CDS_TEST = 0x02; + public const int CDS_FULLSCREEN = 0x04; + public const int CDS_GLOBAL = 0x08; + public const int CDS_SET_PRIMARY = 0x10; + public const int CDS_RESET = 0x40000000; + public const int CDS_NORESET = 0x10000000; + } + } + } + "@ + + [Flags()] enum CDSFlags {{ + Dynamically = 0 + UpdateRegistry = 0x01 + Test = 0x02 + FullScreen = 0x04 + Global = 0x08 + SetPrimary = 0x10 + Reset = 0x40000000 + NoReset = 0x10000000 + } + + Add-Type -TypeDefinition $cds + + function Set-DisplayResolution {{ + param ( + [Parameter(Mandatory = $true, Position = 0)] + [int]$Width, + + [Parameter(Mandatory = $true, Position = 1)] + [int]$Height, + + [CDSFlags] + $Flag = [CDSFlags]::Dynamically + ) + + [cds.Helper]::ChangeDisplaySettings($Width, $Height, $Flag) + } + + function Get-DisplayResolution {{ + [cds.Helper]::GetDisplaySettings() + } + + $resolution = Get-WmiObject -Class CIM_VideoControllerResolution | Sort-Object -Property @{{Expression={{$_.HorizontalResolution * $_.VerticalResolution}} -Descending | Select-Object -First 1 -Property HorizontalResolution, VerticalResolution + + Set-DisplayResolution -Width $resolution.HorizontalResolution -Height $resolution.VerticalResolution -Flag "Global, UpdateRegistry" + + ENDOFSCRIPT +endif + +// Run script +copy __createfile "{(parameter "ScriptPath")}" + +if {(exists process "logonui.exe") or (not exists logged on users whose (active of it = True))} + waithidden powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" +else + override wait // SYSTEM user is unable to change display settings w/ ChangeDisplaySettings function, must run as current user + completion=job + hidden=true + runas=currentuser + wait powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" +endif + +//delete "{(parameter "ScriptPath")}"]]> + + + + Click + here + to only use ChangeDisplaySettings method. <STRONG>Requires user to be logged on.</STRONG>&nbsp; + + = 0x0501) + // #define DISP_CHANGE_BADDUALVIEW -6 + // #endif /* _WIN32_WINNT >= 0x0501 */ + + var devMode = GetDisplaySettings(); + + devMode.dmPelsWidth = width; + devMode.dmPelsHeight = height; + + var res = ChangeDisplaySettings(ref devMode, flags); + switch (res) + {{ + case 0: + return "The settings change was successful."; + case 1: + return "The computer must be restarted for the graphics mode to work."; + case -1: + return "The display driver failed the specified graphics mode."; + case -2: + return "The graphics mode is not supported."; + case -3: + return "Unable to write settings to the registry."; + case -4: + return "An invalid set of flags was passed in."; + case -5: + return "An invalid parameter was passed in. This can include an invalid flag or combination of flags."; + case -6: + return "The settings change was unsuccessful because the system is DualView capable."; + default: + return "unknow return code: " + res; + } + } + + [DllImport("user32.dll")] + static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode); + + [DllImport("user32.dll")] + public static extern int ChangeDisplaySettings(ref DEVMODE devMode, int flags); + + public class Flags + {{ + // #define CDS_UPDATEREGISTRY 0x00000001 + // #define CDS_TEST 0x00000002 + // #define CDS_FULLSCREEN 0x00000004 + // #define CDS_GLOBAL 0x00000008 + // #define CDS_SET_PRIMARY 0x00000010 + // #define CDS_RESET 0x40000000 + // #define CDS_NORESET 0x10000000 + + public const int CDS_UPDATEREGISTRY = 0x01; + public const int CDS_TEST = 0x02; + public const int CDS_FULLSCREEN = 0x04; + public const int CDS_GLOBAL = 0x08; + public const int CDS_SET_PRIMARY = 0x10; + public const int CDS_RESET = 0x40000000; + public const int CDS_NORESET = 0x10000000; + } + } +} +"@ + +[Flags()] enum CDSFlags {{ + Dynamically = 0 + UpdateRegistry = 0x01 + Test = 0x02 + FullScreen = 0x04 + Global = 0x08 + SetPrimary = 0x10 + Reset = 0x40000000 + NoReset = 0x10000000 +} + +Add-Type -TypeDefinition $cds + +function Set-DisplayResolution {{ + param ( + [Parameter(Mandatory = $true, Position = 0)] + [int]$Width, + + [Parameter(Mandatory = $true, Position = 1)] + [int]$Height, + + [CDSFlags] + $Flag = [CDSFlags]::Dynamically + ) + + [cds.Helper]::ChangeDisplaySettings($Width, $Height, $Flag) +} + +function Get-DisplayResolution {{ + [cds.Helper]::GetDisplaySettings() +} + +$resolution = Get-WmiObject -Class CIM_VideoControllerResolution | Sort-Object -Property @{{Expression={{$_.HorizontalResolution * $_.VerticalResolution}} -Descending | Select-Object -First 1 -Property HorizontalResolution, VerticalResolution + +Set-DisplayResolution -Width $resolution.HorizontalResolution -Height $resolution.VerticalResolution -Flag "Global, UpdateRegistry" + +ENDOFSCRIPT + +// Run script +copy __createfile "{(parameter "ScriptPath")}" + +override wait // SYSTEM user is unable to change display settings w/ ChangeDisplaySettings function, must run as current user + completion=job + hidden=true + runas=currentuser +wait powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" + +//delete "{(parameter "ScriptPath")}"]]> + + + + Click + here + to only use registry edit method. + + // Create PowerShell script +parameter "ScriptPath" = "__Download\display-resolution.ps1" +delete "{(parameter "ScriptPath")}" + +createfile until ENDOFSCRIPT + +$resolution = Get-WmiObject -Class CIM_VideoControllerResolution | Sort-Object -Property @{{Expression={{$_.HorizontalResolution * $_.VerticalResolution}} -Descending | Select-Object -First 1 -Property HorizontalResolution, VerticalResolution + +$displayConfigs = Get-Item HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\*\00 +$displayConfigs | ForEach-Object {{ + Set-ItemProperty -Path $_.PsPath -Name PrimSurfSize.cx -Value $resolution.HorizontalResolution -Force + Set-ItemProperty -Path $_.PsPath -Name PrimSurfSize.cy -Value $resolution.VerticalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name ActiveSize.cx -Value $resolution.HorizontalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name ActiveSize.cy -Value $resolution.VerticalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.bottom -Value $resolution.VerticalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.left -Value 0 -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.right -Value $resolution.HorizontalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.top -Value 0 -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name PrimSurfSize.cx -Value $resolution.HorizontalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name PrimSurfSize.cy -Value $resolution.VerticalResolution -Force +} + +$displayDriver = Get-PnpDevice | Where-Object {{ $_.Class -like "Display*" } +$displayDriver | Disable-PnpDevice -Confirm:$false +$displayDriver | Enable-PnpDevice -Confirm:$false + +ENDOFSCRIPT + +// Run script +copy __createfile "{(parameter "ScriptPath")}" + +waithidden powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" + +//delete "{(parameter "ScriptPath")}" + + + + Click + here + to view DisplaySettings PowerShell module from PowerShell Gallery. + + https://www.powershellgallery.com/packages/DisplaySettings/0.0.2 + + + + Click + here + to view ChangeDisplaySettings function documentation from Microsoft. + + https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-changedisplaysettingsa + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Hostname and Local Subnet Name to Sharing Name V2 - Mac (3649).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Hostname and Local Subnet Name to Sharing Name V2 - Mac (3649).bes new file mode 100644 index 000000000..378c044b6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Hostname and Local Subnet Name to Sharing Name V2 - Mac (3649).bes @@ -0,0 +1,59 @@ + + + + + Set Hostname and Local Subnet Name to Sharing Name V2 - Mac + This task gets the Sharing Name, Hostname and Local Subnet Name (Bonjour Name). It checks for apostrophes, spaces, and other illegal characters.  It then checks to see if the cleaned Sharing Name matches the Hostname (with .local on the end).  If they don't match it changes the Hostname to correct it.  It also checks to see if the cleaned Sharing Name matches the Local Subnet Name.  If it doesn't match it updates the Local Subnet Name to the Sharing Name with .local on the end. Finally, if the computer name doesn't match the sanitized name, it updates the sharing name.

+

By making these names all match computers should appear in SEP and Secunia using their Sharing Name.

+

Note: The script will replace any spaces in the Sharing Name with hyphens!

]]>
+ name of operating system = "Mac OS X" + = "10.5" as version]]> + (not (hostname contains computer name)) OR ((it contains "_" or it contains "'" or it contains " ") of hostname) + Internal + 2012-04-06 + + x-fixlet-modification-time + Fri, 08 Feb 2013 21:55:41 +0000 + + BESC + + + Click + here + to deploy this action. + + #!/bin/bash + +sharename=`networksetup -getcomputername` +compname=`networksetup -getcomputername | sed 's/ /-/g' | sed "s/'//g" | sed "s/’//g" | sed 's/_/-/g'` +hstname=`hostname` +lclname="`systemsetup -getlocalsubnetname | sed 's/Local Subnet Name: //'`" + +if [ "${compname}.local" != "$hstname" ] +then + scutil --set HostName ${compname}.local +fi + +if [ "$compname" != "$lclname" ] +then + systemsetup -setlocalsubnetname $compname +fi + +if [ "$sharename" != "$compname" ] +then + scutil --set ComputerName $compname +fi + +exit 0 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set LanmanWorkstation service to NOT depend on SMBv1 - Windows (23441).bes b/Sites/Windows Management/Fixlets/Fixlets/Set LanmanWorkstation service to NOT depend on SMBv1 - Windows (23441).bes new file mode 100644 index 000000000..b66892000 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set LanmanWorkstation service to NOT depend on SMBv1 - Windows (23441).bes @@ -0,0 +1,42 @@ + + + + + Set LanmanWorkstation service to NOT depend on SMBv1 - Windows + + exists unique values whose(it contains "mrxsmb10") of (it as string as lowercase) of values "DependOnService" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation" of (x64 registries;x32 registries) + windows of operating systems + Configuration + Internal + jgstew + 2017-02-14 + + x-fixlet-modification-time + Tue, 14 Feb 2017 23:25:37 +0000 + + BESC + + + Click + here + to deploy this action. + + +// https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012 +waithidden sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi + +action requires restart "SMBv1_LanManDepends" + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set MTU to 1400 (2456).bes b/Sites/Windows Management/Fixlets/Fixlets/Set MTU to 1400 (2456).bes new file mode 100644 index 000000000..ffcd03f41 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set MTU to 1400 (2456).bes @@ -0,0 +1,34 @@ + + + + + Set MTU to 1400 + Detects if the MTU for the 10.* interface is NOT set to 1400. If so, this will report as relevant and will change the interface to 1400 + + Internal + 2011-11-07 + + x-fixlet-modification-time + Mon, 07 Nov 2011 20:59:28 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{(names of it) of it whose (exists value "IPAddress" whose (it as string starts with "10.") of it) of (it; keys of it) of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces" of registry}]" "MTU"=dword:00000578 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to Auto - Windows (24613).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to Auto - Windows (24613).bes new file mode 100644 index 000000000..d78cba583 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to Auto - Windows (24613).bes @@ -0,0 +1,46 @@ + + + + + Set Service tzautoupdate to Auto - Windows + + windows of operating system + exists services "tzautoupdate" + not exists keys whose(name of it as lowercase = "tzautoupdate" as lowercase AND not exists values "DelayedAutoStart" whose(it as integer = 1) of it AND exists values "Start" whose(it as integer = 2) of it) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" of registries + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:12:41 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc config tzautoupdate start= auto + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://serverfault.com/questions/599099/windows-service-trigger-start-difference-manual-vs-automatic +// - https://www.tenforums.com/general-support/7464-difference-between-manual-manual-trigger-start-services.html#post924871 +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to DelayedAutoStart - Windows (24612).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to DelayedAutoStart - Windows (24612).bes new file mode 100644 index 000000000..158b9a60c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to DelayedAutoStart - Windows (24612).bes @@ -0,0 +1,44 @@ + + + + + Set Service tzautoupdate to DelayedAutoStart - Windows + + windows of operating system + exists services "tzautoupdate" + not exists keys whose(name of it as lowercase = "tzautoupdate" as lowercase AND exists values "DelayedAutoStart" whose(it as integer = 1) of it AND exists values "Start" whose(it as integer = 2) of it) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" of registries + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:16:08 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc config tzautoupdate start= delayed-auto + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to demand - Windows (24611).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to demand - Windows (24611).bes new file mode 100644 index 000000000..b345f9694 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to demand - Windows (24611).bes @@ -0,0 +1,44 @@ + + + + + Set Service tzautoupdate to demand - Windows + + windows of operating system + exists services "tzautoupdate" + not exists start types whose(it = "demand") of services "tzautoupdate" + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:15:55 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc config tzautoupdate start= demand + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to disabled - Windows (24610).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to disabled - Windows (24610).bes new file mode 100644 index 000000000..e94f220e5 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to disabled - Windows (24610).bes @@ -0,0 +1,44 @@ + + + + + Set Service tzautoupdate to disabled - Windows + + windows of operating system + exists services "tzautoupdate" + not exists start types whose(it = "disabled") of services "tzautoupdate" + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:15:38 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc config tzautoupdate start= disabled + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Timezone - Windows (2613).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Timezone - Windows (2613).bes new file mode 100644 index 000000000..3e5bde58e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Timezone - Windows (2613).bes @@ -0,0 +1,365 @@ + + + + + Set Timezone - Windows + This fixlet will set the timezone on the endpoint. A few popular timezones have been preset but if you need a custom timezone, use the list below. If the timezone needs to have Daylight Saving Time disabled, append the timezone name with _dstoff, i.e. "Pacific Standard Time_dstoff". A list of all valid timezones is below. Copy the name in the right column of the timezone that you want. Do not include any quotes, just the name in the right column.

+

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(UTC-12:00) International Date Line West Dateline Standard Time
(UTC-11:00) Coordinated Universal Time-11 UTC-11
(UTC-11:00) Samoa Samoa Standard Time
(UTC-10:00) Hawaii Hawaiian Standard Time
(UTC-09:00) Alaska Alaskan Standard Time
(UTC-08:00) Baja California Pacific Standard Time (Mexico)
(UTC-08:00) Pacific Time (US & Canada) Pacific Standard Time
(UTC-07:00) Arizona US Mountain Standard Time
(UTC-07:00) Chihuahua, La Paz, Mazatlan Mountain Standard Time (Mexico)
(UTC-07:00) Mountain Time (US & Canada) Mountain Standard Time
(UTC-06:00) Central America Central America Standard Time
(UTC-06:00) Central Time (US & Canada) Central Standard Time
(UTC-06:00) Guadalajara, Mexico City, Monterrey Central Standard Time (Mexico)
(UTC-06:00) Saskatchewan Canada Central Standard Time
(UTC-05:00) Bogota, Lima, Quito SA Pacific Standard Time
(UTC-05:00) Eastern Time (US & Canada) Eastern Standard Time
(UTC-05:00) Indiana (East) US Eastern Standard Time
(UTC-04:30) Caracas Venezuela Standard Time
(UTC-04:00) Asuncion Paraguay Standard Time
(UTC-04:00) Atlantic Time (Canada) Atlantic Standard Time
(UTC-04:00) Cuiaba Central Brazilian Standard Time
(UTC-04:00) Georgetown, La Paz, Manaus, San Juan SA Western Standard Time
(UTC-04:00) Santiago Pacific SA Standard Time
(UTC-03:30) Newfoundland Newfoundland Standard Time
(UTC-03:00) Brasilia E. South America Standard Time
(UTC-03:00) Buenos Aires Argentina Standard Time
(UTC-03:00) Cayenne, Fortaleza SA Eastern Standard Time
(UTC-03:00) Greenland Greenland Standard Time
(UTC-03:00) Montevideo Montevideo Standard Time
(UTC-02:00) Coordinated Universal Time-02 UTC-02
(UTC-02:00) Mid-Atlantic Mid-Atlantic Standard Time
(UTC-01:00) Azores Azores Standard Time
(UTC-01:00) Cape Verde Is. Cape Verde Standard Time
(UTC) Casablanca Morocco Standard Time
(UTC) Coordinated Universal Time UTC
(UTC) Dublin, Edinburgh, Lisbon, London GMT Standard Time
(UTC) Monrovia, Reykjavik Greenwich Standard Time
(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna W. Europe Standard Time
(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague Central Europe Standard Time
(UTC+01:00) Brussels, Copenhagen, Madrid, Paris Romance Standard Time
(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb Central European Standard Time
(UTC+01:00) West Central Africa W. Central Africa Standard Time
(UTC+01:00) Windhoek Namibia Standard Time
(UTC+02:00) Amman Jordan Standard Time
(UTC+02:00) Athens, Bucharest, Istanbul GTB Standard Time
(UTC+02:00) Beirut Middle East Standard Time
(UTC+02:00) Cairo Egypt Standard Time
(UTC+02:00) Damascus Syria Standard Time
(UTC+02:00) Harare, Pretoria South Africa Standard Time
(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius FLE Standard Time
(UTC+02:00) Jerusalem Israel Standard Time
(UTC+02:00) Minsk E. Europe Standard Time
(UTC+03:00) Baghdad Arabic Standard Time
(UTC+03:00) Kuwait, Riyadh Arab Standard Time
(UTC+03:00) Moscow, St. Petersburg, Volgograd Russian Standard Time
(UTC+03:00) Nairobi E. Africa Standard Time
(UTC+03:30) Tehran Iran Standard Time
(UTC+04:00) Abu Dhabi, Muscat Arabian Standard Time
(UTC+04:00) Baku Azerbaijan Standard Time
(UTC+04:00) Port Louis Mauritius Standard Time
(UTC+04:00) Tbilisi Georgian Standard Time
(UTC+04:00) Yerevan Caucasus Standard Time
(UTC+04:30) Kabul Afghanistan Standard Time
(UTC+05:00) Ekaterinburg Ekaterinburg Standard Time
(UTC+05:00) Islamabad, Karachi Pakistan Standard Time
(UTC+05:00) Tashkent West Asia Standard Time
(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi India Standard Time
(UTC+05:30) Sri Jayawardenepura Sri Lanka Standard Time
(UTC+05:45) Kathmandu Nepal Standard Time
(UTC+06:00) Astana Central Asia Standard Time
(UTC+06:00) Dhaka Bangladesh Standard Time
(UTC+06:00) Novosibirsk N. Central Asia Standard Time
(UTC+06:30) Yangon (Rangoon) Myanmar Standard Time
(UTC+07:00) Bangkok, Hanoi, Jakarta SE Asia Standard Time
(UTC+07:00) Krasnoyarsk North Asia Standard Time
(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi China Standard Time
(UTC+08:00) Irkutsk North Asia East Standard Time
(UTC+08:00) Kuala Lumpur, Singapore Singapore Standard Time
(UTC+08:00) Perth W. Australia Standard Time
(UTC+08:00) Taipei Taipei Standard Time
(UTC+08:00) Ulaanbaatar Ulaanbaatar Standard Time
(UTC+09:00) Osaka, Sapporo, Tokyo Tokyo Standard Time
(UTC+09:00) Seoul Korea Standard Time
(UTC+09:00) Yakutsk Yakutsk Standard Time
(UTC+09:30) Adelaide Cen. Australia Standard Time
(UTC+09:30) Darwin AUS Central Standard Time
(UTC+10:00) Brisbane E. Australia Standard Time
(UTC+10:00) Canberra, Melbourne, Sydney AUS Eastern Standard Time
(UTC+10:00) Guam, Port Moresby West Pacific Standard Time
(UTC+10:00) Hobart Tasmania Standard Time
(UTC+10:00) Vladivostok Vladivostok Standard Time
(UTC+11:00) Magadan Magadan Standard Time
(UTC+11:00) Solomon Is., New Caledonia Central Pacific Standard Time
(UTC+12:00) Auckland, Wellington New Zealand Standard Time
(UTC+12:00) Coordinated Universal Time+12 UTC+12
(UTC+12:00) Fiji Fiji Standard Time
(UTC+13:00) Nuku'alofa Tonga Standard Time

+

 

]]>
+ ((name of it = "Win2008R2") OR (name of it = "Win7") OR (name of it = "Win8") OR (name of it = "Win2012")) of operating system + Internal + 2013-10-08 + + x-fixlet-modification-time + Tue, 08 Oct 2013 20:19:55 +0000 + + BESC + + + + Set to Eastern Time. + + + wait cmd.exe /C tzutil /s "Eastern Standard Time" + + + + + Set to custom timezone. + &nbsp; + + action parameter query "Timezone" with description "Please type the timezone that you'd like to set. Use the list from the fixlet details." + +wait cmd.exe /C tzutil /s "{parameter "Timezone" of action}" + + + + + Set to Central Time. + + + wait cmd.exe /C tzutil /s "Central Standard Time" + + + + + Set to Mountain Time. + + + wait cmd.exe /C tzutil /s "Mountain Standard Time" + + + + + Set to Pacific Time. + + + wait cmd.exe /C tzutil /s "Pacific Standard Time" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows (21118).bes b/Sites/Windows Management/Fixlets/Fixlets/Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows (21118).bes new file mode 100644 index 000000000..d3dc15ae0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows (21118).bes @@ -0,0 +1,96 @@ + + + + + Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows + You must set up Upgrade Analytics through Microsoft to get the required "CommerciaId"

+

More info here: https://www.microsoft.com/en-us/WindowsForBusiness/upgrade-analytics

+

 

]]>
+ windows of operating system + not exists lines containing "Script finished successfully" of files whose(name of it as lowercase ends with ".txt" AND exists lines of it) of folders of folders "Temp\UpgradeAnalytics\Logs" of windows folders + Internal + 2016-07-27 + + x-fixlet-modification-time + Wed, 27 Jul 2016 18:16:57 +0000 + + BESC + + + Click + here + to deploy this action. + + +action parameter query "CommerciaId" + +prefetch UpgradeAnalytics.zip sha1:e4ec6b46379428209183f2e5fb872f18ebb78f55 size:53320712 https://download.microsoft.com/download/C/9/3/C9308EB7-26B7-4956-8BC4-1565FD62B8EA/UpgradeAnalytics.zip sha256:fbeedff147a6a9f42ca6146ef8b9979fc669a493b2957a4e13446214f4628d1d + +// - This unzip is a compiled verion of unzip v5.52 fom http://info-zip.org/ +// - https://www.virustotal.com/en/file/8d9b5190aace52a1db1ac73a65ee9999c329157c8e88f61a772433323d6b7a4a/analysis +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +// ADD TO UTILITY CACHE (to use in multiple tasks) +utility __Download\unzip.exe + +// EXTRACT using unzip +waithidden __Download\unzip.exe -o "{pathname of file "UpgradeAnalytics.zip" of folder "__Download" of client folder of current site}" -d "{pathname of folder "temp" of windows folder}" + + +delete __createfile +createfile until _END_OF_FILE_ +@echo off +@echo Running config batch +cd {pathname of folders "Temp\UpgradeAnalytics" of windows folders} +:: File share to store telemetry logs +set logPath={pathname of folders "Temp\UpgradeAnalytics" of windows folders}\Logs + +:: Commercial ID provided to you +set commercialIDValue={parameter "CommerciaId"} + +:: By Default script logs to both console and log file. +:: logMode == 0 log to console only +:: logMode == 1 log to file and console +:: logMode == 2 log to file only +set logMode=1 + +:: To run inventory scan in verbose mode change below value to $true +set isVerboseLogging=$false + +:: To notify users with Pop-up messages about reboot - By default its false +set isPopupMode=$false + +set source=%~dp0 + +powershell -ExecutionPolicy unrestricted -Command "dir %source%\*.ps1 | Unblock-File" + +%source%Psexec.exe -accepteula -si powershell.exe -ExecutionPolicy Bypass -Command %source%ConfigScript.ps1 ^ + -LogPath %logPath% ^ + -FilePath %source% ^ + -CommerciaIdInput %commercialIDValue% ^ + -LogMode %logMode% ^ + -VerboseLogging %isVerboseLogging% ^ + -PopUpMode %isPopupMode% + +_END_OF_FILE_ + +delete {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\RunConfig.bat +move __createfile {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\RunConfig.bat + +waithidden {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\RunConfig.bat + +// waithidden powershell -ExecutionPolicy Bypass -Command {pathname of files "ConfigScript.ps1" of folders "Temp\UpgradeAnalytics" of windows folders} -LogPath {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\Logs -FilePath {pathname of folders "Temp\UpgradeAnalytics" of windows folders} -CommerciaIdInput {parameter "CommerciaId"} -LogMode 1 -VerboseLogging $true -PopUpMode $false + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Software Distribution - Deploy_ Windows Update KB917607 - WinHlp32.exe (1364).bes b/Sites/Windows Management/Fixlets/Fixlets/Software Distribution - Deploy_ Windows Update KB917607 - WinHlp32.exe (1364).bes new file mode 100644 index 000000000..c52525cc9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Software Distribution - Deploy_ Windows Update KB917607 - WinHlp32.exe (1364).bes @@ -0,0 +1,48 @@ + + + + + Software Distribution - Deploy: Windows Update KB917607 - WinHlp32.exe +
This task is applicable on: Windows 7 x64. ]]>
+ x64 of operating system + "Win7" = name of operating system + exists running service "wuauserv" OR NOT exists service "wuauserv" whose (start type of it = "disabled") + not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\UpdateDetect\KB917607" of native registry + + Software Distribution + Software Distribution Wizard + jgstew + 2011-07-27 + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Mon, 07 Jan 2013 15:47:07 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start and Enable Windows Service (26632).bes b/Sites/Windows Management/Fixlets/Fixlets/Start and Enable Windows Service (26632).bes new file mode 100644 index 000000000..643ff801d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Start and Enable Windows Service (26632).bes @@ -0,0 +1,45 @@ + + + + + Start and Enable Windows Service + This task will start (and if necessary enable) a given Windows Service. + windows of operating system + Internal + 2019-06-14 + + x-fixlet-modification-time + Fri, 14 Jun 2019 15:37:52 +0000 + + BESC + + + Click + here + to deploy this action. + + // Which service? +action parameter query "svcname" with description "Please enter the service name to start:" + +// Is Service Disabled? +if {start type of service (parameter "svcname" of action) = "disabled"} + + // Enable service (set Start Type to Automatic) + waithidden cmd /C sc config {parameter "svcname" of action} start= auto + +endif + +// Start service +waithidden cmd /C sc start {parameter "svcname" of action} + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the DCOM Launcher Service (9282).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the DCOM Launcher Service (9282).bes new file mode 100644 index 000000000..c4a0e0b6c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the DCOM Launcher Service (9282).bes @@ -0,0 +1,36 @@ + + + + + Start the DCOM Launcher Service + Starts the DCOM Launcher Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "DcomLaunch" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:35:56 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start DcomLaunch + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the RPC EndPoint Mapper Service (9283).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the RPC EndPoint Mapper Service (9283).bes new file mode 100644 index 000000000..ad1653637 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the RPC EndPoint Mapper Service (9283).bes @@ -0,0 +1,36 @@ + + + + + Start the RPC EndPoint Mapper Service + Starts the RPC Endpoint Mapper Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "RpcEptMapper" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:29:36 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start rpcss + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Procedure Call Service (9284).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Procedure Call Service (9284).bes new file mode 100644 index 000000000..53e3e2eb0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Procedure Call Service (9284).bes @@ -0,0 +1,36 @@ + + + + + Start the Remote Procedure Call Service + Starts the Remote Procdure Call Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "RpcSs" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:25:32 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start rpcss + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Registry Service (9286).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Registry Service (9286).bes new file mode 100644 index 000000000..d9affc135 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Registry Service (9286).bes @@ -0,0 +1,36 @@ + + + + + Start the Remote Registry Service + Starts the Remote Registry Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "RemoteRegistry" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:07:46 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start RemoteRegistry + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the Windows Management Instrumentation Service (9285).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the Windows Management Instrumentation Service (9285).bes new file mode 100644 index 000000000..5d748476d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the Windows Management Instrumentation Service (9285).bes @@ -0,0 +1,36 @@ + + + + + Start the Windows Management Instrumentation Service + Starts the Windows Management Instrumentation Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "Winmgmt" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:20:57 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start winmgmt + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Stop and disable Print Spooler service (26914).bes b/Sites/Windows Management/Fixlets/Fixlets/Stop and disable Print Spooler service (26914).bes new file mode 100644 index 000000000..2fcd618fe --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Stop and disable Print Spooler service (26914).bes @@ -0,0 +1,47 @@ + + + + + Stop and disable Print Spooler service + +

This fixlet will handle a few cases:

+

1. If print spooler service is running and not set to disabled, it will stop it first then set service to disabled

+

2. If print spooler is not running but service is not set to disabled, it will simply set service to disabled

]]>
+ (exists service "spooler" and not exists start types whose(it = "disabled") of services "spooler") and (name of operating system as lowercase contains "win") + Bigfix AVP- Jeff Schafer + 2022-03-10 + + x-fixlet-modification-time + Thu, 10 Mar 2022 22:09:18 +0000 + + BESC + + + Click + here + to deploy this action. + + NUL 2> NUL +move __appendfile netquiet.bat +waithidden "{pathname of client folder of site "BESSupport" & "\RunQuiet.exe"}" netquiet.bat stop "spooler" +delete netquiet.bat +waithidden cmd /C sc config spooler start= disabled +else if {exists not running service "spooler" and not exists start type whose(it = "disabled") of service "spooler"} +waithidden cmd /C sc config spooler start= disabled]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/System Restore Off _ Disable (20643).bes b/Sites/Windows Management/Fixlets/Fixlets/System Restore Off _ Disable (20643).bes new file mode 100644 index 000000000..2c28062db --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/System Restore Off _ Disable (20643).bes @@ -0,0 +1,247 @@ + + + + + System Restore Off / Disable + +

Developer Documentation for System Restore Off

+

Author(s): Sean Seymour

+

Document Version: 2.3

+

Last Updated: 04/05/2016

+

Overview

+

System Restore has been found to cause issues with disk space on certain devices and issues with restoring old versions of programs on other devices. This package fixes the System Restore state if it has been disabled incorrectly, then deletes all system restore points and disables it correctly. On Windows 7 devices, it also disables the built in scheduled task that periodically creates restore points.

+

Affected Device(s)

+

·         Any device with System Restore Information > 10 MB

+

·         Any Win7+ device that has registry data or scheduled tasks indicating System Restore is active (details below)

+

Files Installed

+

Some temporary files are created, then executed and deleted.

+

Installation and Operation

+

From the BigFix console, Take Action on the System Restore Off fixlet. The client will run the actionscript, which does the following:

+

Windows XP

+

·         Sets HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\DiskPercent to 1

+

·         Temporarily sets HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\DisableSR to 0

+

·         If the System Restore service is running, restarts it. Otherwise it sets the System Restore service to automatically start then starts it

+

·         Disables the System Restore service via WMI, which also deletes all System Restore points and sets the DisableSR registry value back to 1.

+

Windows 7+

+

·         Disables the Microsoft\Windows\SystemRestore\SR scheduled task

+

·         Removes any values in HKLM\Software\Microsoft\Windows NT\CurrentVersion\SPP\Clients

+

·         Attempts to remove existing restore points using vssadmin delete shadows /all /quiet

+

·         Creates a scheduled task to run on the next reboot that:

+

o   Deletes the contents of any remaining System Volume Information folders on the drives’ root folders

+

o   Deletes any temporary files that were created

+

o   Deletes the scheduled task

+

Known Issues

+

It’s possible that something in the filesystem continues to use the System Restore files even after a reboot, which would prevent deletion. If this amount of data is more than 10 MB then the result of the BigFix action will show as Failed. In these rare cases I would suggest running the fixlet again. If the issue persists, connect to the device and attempt to delete the existing restore points and disable System Restore manually through the System control panel.

+

Rollback Procedures

+

Configure System Restore via the control panel, or create a fixlet to re-enable it.

+

Notes

+

·         This fixlet requires a restart before completing fully.

+

Document Changelog

+

·         04/05/2016, Sean Seymour: Version 2.3 - Fixed a bug in the actionscript command to create the scheduled task that runs after the reboot.

+

·         03/16/2016, Sean Seymour: Version 2.2 - Added Win7+ info

+

·         11/03/2015, Sean Seymour: Version 2.1  - Clarified that the DisableSR registry value gets set back to 1.

+

·         10/28/2015, Sean Seymour: Version 2.0 with updated information regarding the WMI step

+

·         09/22/2015, Sean Seymour: Version 1.0 of this document created

]]>
+ windows of operating system + 10) or ((windows of operating system and version of operating system >= "6.1") and (exists value whose (name of it is "RPSessionInterval" and it > 0) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" of native registry) or (exists values of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SPP\Clients" of native registry) or exists scheduled task whose (path of it is "\Microsoft\Windows\SystemRestore\SR" and enabled of it))]]> + Internal + 2016-05-17 + + x-fixlet-modification-time + Tue, 17 May 2016 14:50:17 +0000 + + BESC + + + Click + here + to deploy this action. + + = "2.0") of native registry} + parameter "PowerShellExists" = "True" +else + parameter "PowerShellExists" = "False" +endif + +if {(parameter "PowerShellExists") is "True"} + waithidden powershell -executionpolicy bypass "[System.IO.DriveInfo]::GetDrives() | ? {{$_.DriveType -eq 'Fixed'} | % {{Disable-ComputerRestore -Drive $_}" +else + // Disable System Restore via wmi & vbcript. + delete __createfile + delete run.vbs + + createfile until _end_ +' Original source: http://windowsitpro.com/scripting/rem-disabling-system-restore +Option Explicit +Dim SystemRestoreEnabled, objRP, ReturnCode + +' Check if computer has any restore points. +SystemRestoreEnabled = False +For Each objRP In GetObject("winmgmts:{{impersonationlevel=impersonate}!root/default").InstancesOf("SystemRestore") + SystemRestoreEnabled = True + Exit For +Next + +ReturnCode = 0 + +If SystemRestoreEnabled Then + ' Disable System Restore for all drives on the computer + ReturnCode = GetObject("winmgmts:{{impersonationLevel=impersonate}!root/default:SystemRestore").Disable("") +End If + +Wscript.Quit ReturnCode + _end_ + + move __createfile run.vbs + + override wait + hidden=true + completion=job + wait cscript.exe run.vbs +endif + +// The above code for Win7 simply disables the ability to restore system restore points. +// There is additional work needed to: +// 1. Disable the built in scheduled task that periodically creates restore points. +// 2. Remove a registry key that may have some drives as System Restore 'clients'. +// 3. Delete any existing restore points. +// 4. Clean up the System Volume Information folders after the next reboot. +if {windows of operating system and version of operating system >= "6.1"} + // 1. Disable the built in scheduled task that periodically creates restore points. + parameter "SysRestoreTaskPath" = "\Microsoft\Windows\SystemRestore\SR" + if {exists scheduled task whose (path of it is (parameter "SysRestoreTaskPath") and enabled of it)} + waithidden schtasks /change /tn {parameter "SysRestoreTaskPath"} /disable + endif + + // 2. Remove a registry key that may have some drives as System Restore 'clients'. + action uses wow64 redirection false + parameter "SysRestoreClientPath" = "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SPP\Clients" + waithidden reg delete "{parameter "SysRestoreClientPath"}" /va /f + + // 3. Delete any existing restore points. + waithidden vssadmin delete shadows /all /quiet + + // 4. Clean up the System Volume Information folders. + // Any remaining files in the System Volume Information folders are usually + // locked / in use until the next reboot. So create a scheduled task that + // will delete the files at startup then delete itself (the task). + parameter "SysVolInfoBasename" = "DeleteSysVolInfoContents" + parameter "OutputFolder" = "{storage folder of client as string & "\SystemRestoreOff"}" + parameter "TaskScriptPath" = "{parameter "OutputFolder"}\{parameter "SysVolInfoBasename"}.bat" + + if {not exist folder (parameter "OutputFolder")} + folder create "{parameter "OutputFolder"}" + endif + + // Create a script to delete the contents of all files in the System Volume Information + // folder on the root of any fixed drive. + if {(parameter "PowerShellExists") is "True"} + parameter "ScriptCall" = "powershell -executionpolicy bypass -file {"%22"}%~n0.ps1{"%22"}" + parameter "ScriptPath" = "{parameter "OutputFolder"}\{parameter "SysVolInfoBasename"}.ps1" + delete __createfile + createfile until _end_ +[System.IO.DriveInfo]::GetDrives() | ? {{$_.DriveType -eq 'Fixed'} | % {{Get-ChildItem -Path (Join-Path $_ 'System Volume Information') -Recurse | Remove-Item -Force -Recurse} +_end_ + else + parameter "ScriptCall" = "cscript {"%22"}%~n0.vbs{"%22"}" + parameter "ScriptPath" = "{parameter "OutputFolder"}\{parameter "SysVolInfoBasename"}.vbs" + + delete __createfile + createfile until _end_ +option explicit +on error resume next +const FixedDrive = 2 +dim file, folder, objDrive, objFolder, sysVolInfoPath +dim objFSO: set objFSO = CreateObject("Scripting.FileSystemObject") +dim colDrives: set colDrives = objFSO.Drives + +for each objDrive in colDrives + if FixedDrive = objDrive.DriveType then + sysVolInfoPath = objDrive.RootFolder & "System Volume Information" + + set objFolder = objFSO.GetFolder(sysVolInfoPath) + + for each folder in objFolder.SubFolders + objFSO.DeleteFolder folder.path, true + next + + for each file in objFolder.Files + objFSO.DeleteFile file.path, true + next + end if +next +_end_ + endif + + // Copy fails if the file exists, so delete it first. + // Delete calls do not fail if the file is not there. + delete "{parameter "ScriptPath"}" + move __createfile "{parameter "ScriptPath"}" + + // Create the batch file that the scheduled task will use to execute the script. + // When it's done it will delete the task, itself and any helper files in that dir. + // In some instances the call to vssadmin doesn't work pre-reboot, so throw it in here again. + delete __createfile + createfile until _end_ +@echo off +cd /d "%~dp0" +vssadmin delete shadows /all /quiet +{parameter "ScriptCall"} +schtasks /delete /tn "%~n0" /f +cd /d %systemdrive%\ +start cmd /c rd /s/q "%~dp0"&exit /b +_end_ + + // Copy the batch file to the predefined path for the scheduled task. + delete "{parameter "TaskScriptPath"}" + move __createfile "{parameter "TaskScriptPath"}" + + // Create the startup task. + // The tr argument requires the quotes to be escaped if there are spaces in the path. + waithidden schtasks /create /ru System /tn "{parameter "SysVolInfoBasename"}" /sc onstart /tr "\"{parameter "TaskScriptPath"}"\" /f + + action requires restart "SystemRestoreOff" +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/TASK_ Change System Time (773).bes b/Sites/Windows Management/Fixlets/Fixlets/TASK_ Change System Time (773).bes new file mode 100644 index 000000000..915810a17 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/TASK_ Change System Time (773).bes @@ -0,0 +1,37 @@ + + + + + TASK: Change System Time + + (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it)) of operating system + Internal + 2011-08-12 + + x-fixlet-modification-time + Tue, 20 Mar 2012 14:35:38 +0000 + + BESC + + + Click + here + to deploy this action. + + // The following syntax can be used to set the clock to any given time +//waithidden cmd.exe /C time 4:30:00 PM +// The following will set the clock to the current time of the BES Server +set clock + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Run System File Checker tool - SFC _scannow (6038).bes b/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Run System File Checker tool - SFC _scannow (6038).bes new file mode 100644 index 000000000..796974466 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Run System File Checker tool - SFC _scannow (6038).bes @@ -0,0 +1,59 @@ + + + + + TROUBLESHOOTING: Run System File Checker tool - SFC /scannow + From: http://bigfix.me/cdb/fixlet/1369

+

This task will run the Microsoft System File Checker tool.

+

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/system_file_checker.mspx?mfr=true

]]>
+ windows of operating system + exists service "TrustedInstaller" + = "5.1"]]> + exists file "sfc.exe" of system x64 folder + Troubleshooting + Internal + jgs194 + 2011-09-19 + + x-fixlet-modification-time + Wed, 06 May 2015 13:59:23 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/system_file_checker.mspx?mfr=true + +// SFC relies on the "TrustedInstaller" service: +// http://www.winhelponline.com/blog/fix-for-error-windows-resource-protection-could-not-start-the-repair-service-when-running-sfc-in-vista/ +if{not exists running service "TrustedInstaller"} + waithidden cmd.exe /C net start TrustedInstaller +endif + +continue if{ exists running service "TrustedInstaller" } + +// http://pic.dhe.ibm.com/infocenter/tivihelp/v26r1/index.jsp?topic=%2Fcom.ibm.tem.doc_8.2%2FPlatform%2FAction%2Fc_action_launch_preference_low_p.html +// launch exe's with low priority settings to help prevent disrupting the user +action launch preference low-priority + +// Run the System File Checker Utility +// http://support.microsoft.com/kb/929833 +continue if{exists running service "TrustedInstaller"} +waithidden sfc /scannow + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Volume Snapshot Service - VSS - Backups (6043).bes b/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Volume Snapshot Service - VSS - Backups (6043).bes new file mode 100644 index 000000000..4263c795f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Volume Snapshot Service - VSS - Backups (6043).bes @@ -0,0 +1,36 @@ + + + + + TROUBLESHOOTING: Volume Snapshot Service - VSS - Backups + This task will flush all old shadow copies and set the max shadow copy storage to 10GB + windows of operating system + Internal + 2011-08-12 + + x-fixlet-modification-time + Wed, 06 May 2015 19:13:43 +0000 + + BESC + + + Click + here + to deploy this action. + + //Delete all old shadow copies +waithidden cmd.exe /C vssadmin delete shadows /all +//Set max VSS Shadow Copy storage to 10GB +waithidden cmd.exe /C vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=10GB + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10_2016) (TEST!!!) (export) (25565).bes b/Sites/Windows Management/Fixlets/Fixlets/Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10_2016) (TEST!!!) (export) (25565).bes new file mode 100644 index 000000000..075490e5d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10_2016) (TEST!!!) (export) (25565).bes @@ -0,0 +1,196 @@ + + + + + Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10/2016) (TEST!!!) (export) + Example message:

+

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
 and APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
 to the user NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

+

Microsoft article indicates this should be ignored:  https://support.microsoft.com/en-us/help/4022522/dcom-event-id-10016-is-logged-in-windows-10-windows-server

+

Many community forums indicate it may be an actual problem; and the presence of so many error messages from the Event Log hampers troubleshooting in all scenarios.

+

https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/windows-10-error-10016-from-run-time-broker-cannot/3f21a980-7f1e-48e5-85ea-6aa8843ecf40

+

https://social.technet.microsoft.com/Forums/en-US/fd339448-8430-4a60-9377-71fd8aae228d/comdtc-setup-with-powershell?forum=winserverpowershell

+

The DCOM permissions are controlled by REG_BINARY values in a could of locations.
HKLM\Software\Classes\AppID\{guid}
AccessPermission:REG_BINARY
LaunchPermission:REG_BINARY
Each of these are binary-encoded values representing launch permissions. I've come across some PowerShell snippets that might be used to read and write these values. Changing these values first requires taking ownership of the registry key, as these are owned by TrustedInstaller.  Given the complexity of the PowerShell scripts to apply permissions, it appears that it may be simpler to create the appropriate permissions on one host, capture those settings, and simply use reg.exe to distribute that configuration to other hosts.

+

 Task Notes:

+
    +
  • To identify the correct permissions to set, examine the Event Log to determine which security principal is being denied Access or Launch permissions +
  • Take Ownership of the affected AppID by using a modified version of this Task, or the Template (which only takes ownership without changing the DCOM launch/activation permissions themselves).  Then, use DCOMCNFG.EXE to update the permissions of the AppID, and craft a relevance using the updated registry values. +
  • Pro tip:  The Relevance Statement for a given AppID can be auto-generated via the following in the Fixlet Debugger: +
      +
    • +

      q: ("exists keys %22" & pathname of it & "%22 whose (not exists values %22AccessPermission%22 whose (it as string = %22" & value "AccessPermission" of it as string & "%22) of it OR not exists values %22LaunchPermission%22 whose (it as string = %22" & value "LaunchPermission" of it as string & "%22 ) of it) of native registry") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}" of native registry

      +

      A: exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}" whose (not exists values "AccessPermission" whose (it as string = "01001480bc000000c80000001400000034000000020020000100000011001400040000000101000000000010001000000000000002008800060000000000180003000000010200000000000520000000200200000000180003000000010200000000000f0200000001000000000014000300000001010000000000050a000000000014000300000001010000000000051200000000001400030000000101000000000005130000000000140003000000010100000000000514000000010100000000000512000000010100000000000512000000") of it OR not exists values "LaunchPermission" whose (it as string = "01001480a8000000b4000000140000003400000002002000010000001100140004000000010100000000001000100000000000000200740005000000000018000b00000001020000000000052000000020020000000018000b000000010200000000000f0200000001000000000014000b000000010100000000000504000000000014000b00000001010000000000050a000000000014000b000000010100000000000512000000010100000000000512000000010100000000000512000000" ) of it) of native registry

+

Notes on testing.  This task makes changes to some very deep system-level functions so treat it with care! 

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + = version "10"]]> + exists keys "{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}" whose (not exists values "AccessPermission" whose (it as string = "01001480bc000000c80000001400000034000000020020000100000011001400040000000101000000000010001000000000000002008800060000000000180003000000010200000000000520000000200200000000180003000000010200000000000f0200000001000000000014000300000001010000000000050a000000000014000300000001010000000000051200000000001400030000000101000000000005130000000000140003000000010100000000000514000000010100000000000512000000010100000000000512000000") of it OR not exists values "LaunchPermission" whose (it as string = "01001480a8000000b4000000140000003400000002002000010000001100140004000000010100000000001000100000000000000200740005000000000018000b00000001020000000000052000000020020000000018000b000000010200000000000f0200000001000000000014000b000000010100000000000504000000000014000b00000001010000000000050a000000000014000b000000010100000000000512000000010100000000000512000000010100000000000512000000" ) of it) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID" of native registry + Internal + 2018-11-08 + + x-fixlet-modification-time + Thu, 08 Nov 2018 22:51:38 +0000 + + BESC + + + Click + here + to deploy this action. + + Applies to this key only +// "NT AUTHORITY\System","FullControl",@("ObjectInherit","ContainerInherit"),"None","Allow" ==> applies to this key, subkeys, and values + +delete __createfile +createfile until EOF_EOF_EOF + +##Taken with thanks from https://social.technet.microsoft.com/Forums/windowsserver/en-US/e718a560-2908-4b91-ad42-d392e7f8f1ad/take-ownership-of-a-registry-key-and-change-permissions?forum=winserverpowershell + +function enable-privilege { + param( + ## The privilege to adjust. This set is taken from + ## http://msdn.microsoft.com/en-us/library/bb530716(VS.85).aspx + [ValidateSet( + "SeAssignPrimaryTokenPrivilege", "SeAuditPrivilege", "SeBackupPrivilege", + "SeChangeNotifyPrivilege", "SeCreateGlobalPrivilege", "SeCreatePagefilePrivilege", + "SeCreatePermanentPrivilege", "SeCreateSymbolicLinkPrivilege", "SeCreateTokenPrivilege", + "SeDebugPrivilege", "SeEnableDelegationPrivilege", "SeImpersonatePrivilege", "SeIncreaseBasePriorityPrivilege", + "SeIncreaseQuotaPrivilege", "SeIncreaseWorkingSetPrivilege", "SeLoadDriverPrivilege", + "SeLockMemoryPrivilege", "SeMachineAccountPrivilege", "SeManageVolumePrivilege", + "SeProfileSingleProcessPrivilege", "SeRelabelPrivilege", "SeRemoteShutdownPrivilege", + "SeRestorePrivilege", "SeSecurityPrivilege", "SeShutdownPrivilege", "SeSyncAgentPrivilege", + "SeSystemEnvironmentPrivilege", "SeSystemProfilePrivilege", "SeSystemtimePrivilege", + "SeTakeOwnershipPrivilege", "SeTcbPrivilege", "SeTimeZonePrivilege", "SeTrustedCredManAccessPrivilege", + "SeUndockPrivilege", "SeUnsolicitedInputPrivilege")] + $Privilege, + ## The process on which to adjust the privilege. Defaults to the current process. + $ProcessId = $pid, + ## Switch to disable the privilege, rather than enable it. + [Switch] $Disable + ) + + ## Taken from P/Invoke.NET with minor adjustments. + $definition = @' + using System; + using System.Runtime.InteropServices; + + public class AdjPriv + { + [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] + internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, + ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen); + + [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] + internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok); + [DllImport("advapi32.dll", SetLastError = true)] + internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid); + [StructLayout(LayoutKind.Sequential, Pack = 1)] + internal struct TokPriv1Luid + { + public int Count; + public long Luid; + public int Attr; + } + + internal const int SE_PRIVILEGE_ENABLED = 0x00000002; + internal const int SE_PRIVILEGE_DISABLED = 0x00000000; + internal const int TOKEN_QUERY = 0x00000008; + internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020; + public static bool EnablePrivilege(long processHandle, string privilege, bool disable) + { + bool retVal; + TokPriv1Luid tp; + IntPtr hproc = new IntPtr(processHandle); + IntPtr htok = IntPtr.Zero; + retVal = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok); + tp.Count = 1; + tp.Luid = 0; + if(disable) + { + tp.Attr = SE_PRIVILEGE_DISABLED; + } + else + { + tp.Attr = SE_PRIVILEGE_ENABLED; + } + retVal = LookupPrivilegeValue(null, privilege, ref tp.Luid); + retVal = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero); + return retVal; + } + } +'@ + + $processHandle = (Get-Process -id $ProcessId).Handle + $type = Add-Type $definition -PassThru + $type[0]::EnablePrivilege($processHandle, $Privilege, $Disable) +} + +enable-privilege SeTakeOwnershipPrivilege +enable-privilege seRestorePrivilege + +$key = [Microsoft.Win32.Registry]::{parameter "RootKey" of action}.OpenSubKey("{parameter "RegKey" of action}",[Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::takeownership) + +## *** Note from Jason Walker - I find the following to not be true if the system account has at least "Read Permissions" to the key. +## Rather than starting from an empty ACL list, I instead try to start from the existing ACL list on the registry key and then modify it as needed +# You must get a blank acl for the key b/c you do not currently have access +#$acl = $key.GetAccessControl([System.Security.AccessControl.AccessControlSections]::None) + +$acl = $key.GetAccessControl() +$me = [System.Security.Principal.NTAccount]"{parameter "NewOwner" of action}" +$acl.SetOwner($me) +$key.SetAccessControl($acl) + +# After you have set owner you need to get the acl with the perms so you can modify it. +$acl = $key.GetAccessControl() +$rule = New-Object System.Security.AccessControl.RegistryAccessRule ({parameter "AddACL" of action}) +$acl.AddAccessRule($rule) +$key.SetAccessControl($acl) + +$key.Close() + +EOF_EOF_EOF + + +delete TakeOwnerReg.ps1 +move __createfile TakeOwnerReg.ps1 + +waithidden powershell.exe -ExecutionPolicy Bypass -File TakeOwnerReg.ps1 + +continue if {exit code of action = 0} + +waithidden reg.exe add "{parameter "FullKeyPath" of action}" /v AccessPermission /t REG_BINARY /d {parameter "AccessPermission" of action} /f +waithidden reg.exe add "{parameter "FullKeyPath" of action}" /v LaunchPermission /t REG_BINARY /d {parameter "LaunchPermission" of action} /f + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Take Screenshot - Windows (21898).bes b/Sites/Windows Management/Fixlets/Fixlets/Take Screenshot - Windows (21898).bes new file mode 100644 index 000000000..1de08261e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Take Screenshot - Windows (21898).bes @@ -0,0 +1,368 @@ + + + + + Take Screenshot - Windows + This is useful for automated testing. Install something with BigFix on a test VM, open it with BigFix as a logged in test user, take a screenshot, then close application.

+

This requires there to be exactly 1 user logged into the system. It might be possible to do this as the SYSTEM user if executed interactively using something like PSExec or PAExec, but it definitely does not work as the SYSTEM user as executed by BigFix normally.

+

DO NOT USE without the consent of the currently logged on user.

+

 

]]>
+ windows of operating system + 1 = number of unique values of home directories of users of (current users;logged on users) + not exists files "ScreenShot.png.base64" of folders "Logs" of folders "__Global" of data folders of client + Internal + 2016-09-30 + + x-fixlet-modification-time + Tue, 04 Oct 2016 18:03:27 +0000 + + BESC + + + Click + here + to deploy this action. + + nul||@goto :batch +/* +:batch +@echo off +setlocal + +:: find csc.exe +set "csc=" +for /r "%SystemRoot%\Microsoft.NET\Framework\" %%# in ("*csc.exe") do set "csc=%%#" + +if not exist "%csc%" ( + echo no .net framework installed + exit /b 10 +) + +if not exist "%~n0.exe" ( + call %csc% /nologo /r:"Microsoft.VisualBasic.dll" /out:"%~n0.exe" "%~dpsfnx0" || ( + exit /b %errorlevel% + ) +) +%~n0.exe %* +endlocal & exit /b %errorlevel% + +*/ + +// reference +// https://gallery.technet.microsoft.com/scriptcenter/eeff544a-f690-4f6b-a586-11eea6fc5eb8 + +using System; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Drawing.Imaging; +using System.Collections.Generic; +using Microsoft.VisualBasic; + + +/// Provides functions to capture the entire screen, or a particular window, and save it to a file. + +public class ScreenCapture +{{ + + /// Creates an Image object containing a screen shot the active window + + public Image CaptureActiveWindow() + {{ + return CaptureWindow(User32.GetForegroundWindow()); + } + + /// Creates an Image object containing a screen shot of the entire desktop + + public Image CaptureScreen() + {{ + return CaptureWindow(User32.GetDesktopWindow()); + } + + /// Creates an Image object containing a screen shot of a specific window + + private Image CaptureWindow(IntPtr handle) + {{ + // get te hDC of the target window + IntPtr hdcSrc = User32.GetWindowDC(handle); + // get the size + User32.RECT windowRect = new User32.RECT(); + User32.GetWindowRect(handle, ref windowRect); + int width = windowRect.right - windowRect.left; + int height = windowRect.bottom - windowRect.top; + // create a device context we can copy to + IntPtr hdcDest = GDI32.CreateCompatibleDC(hdcSrc); + // create a bitmap we can copy it to, + // using GetDeviceCaps to get the width/height + IntPtr hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc, width, height); + // select the bitmap object + IntPtr hOld = GDI32.SelectObject(hdcDest, hBitmap); + // bitblt over + GDI32.BitBlt(hdcDest, 0, 0, width, height, hdcSrc, 0, 0, GDI32.SRCCOPY); + // restore selection + GDI32.SelectObject(hdcDest, hOld); + // clean up + GDI32.DeleteDC(hdcDest); + User32.ReleaseDC(handle, hdcSrc); + // get a .NET image object for it + Image img = Image.FromHbitmap(hBitmap); + // free up the Bitmap object + GDI32.DeleteObject(hBitmap); + return img; + } + + public void CaptureActiveWindowToFile(string filename, ImageFormat format) + {{ + Image img = CaptureActiveWindow(); + img.Save(filename, format); + } + + public void CaptureScreenToFile(string filename, ImageFormat format) + {{ + Image img = CaptureScreen(); + img.Save(filename, format); + } + + static bool fullscreen = true; + static String file = "screenshot.bmp"; + static System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Bmp; + static String windowTitle = ""; + + static void parseArguments() + {{ + String[] arguments = Environment.GetCommandLineArgs(); + if (arguments.Length == 1) + {{ + printHelp(); + Environment.Exit(0); + } + if (arguments[1].ToLower().Equals("/h") || arguments[1].ToLower().Equals("/help")) + {{ + printHelp(); + Environment.Exit(0); + } + + file = arguments[1]; + Dictionary formats = + new Dictionary(); + + formats.Add("bmp", System.Drawing.Imaging.ImageFormat.Bmp); + formats.Add("emf", System.Drawing.Imaging.ImageFormat.Emf); + formats.Add("exif", System.Drawing.Imaging.ImageFormat.Exif); + formats.Add("jpg", System.Drawing.Imaging.ImageFormat.Jpeg); + formats.Add("jpeg", System.Drawing.Imaging.ImageFormat.Jpeg); + formats.Add("gif", System.Drawing.Imaging.ImageFormat.Gif); + formats.Add("png", System.Drawing.Imaging.ImageFormat.Png); + formats.Add("tiff", System.Drawing.Imaging.ImageFormat.Tiff); + formats.Add("wmf", System.Drawing.Imaging.ImageFormat.Wmf); + + + String ext = ""; + if (file.LastIndexOf('.') > -1) + {{ + ext = file.ToLower().Substring(file.LastIndexOf('.') + 1, file.Length - file.LastIndexOf('.') - 1); + } + else + {{ + Console.WriteLine("Invalid file name - no extension"); + Environment.Exit(7); + } + + try + {{ + format = formats[ext]; + } + catch (Exception e) + {{ + Console.WriteLine("Probably wrong file format:" + ext); + Console.WriteLine(e.ToString()); + Environment.Exit(8); + } + + + if (arguments.Length > 2) + {{ + windowTitle = arguments[2]; + fullscreen = false; + } + + } + + static void printHelp() + {{ + //clears the extension from the script name + String scriptName = Environment.GetCommandLineArgs()[0]; + scriptName = scriptName.Substring(0, scriptName.Length); + Console.WriteLine(scriptName + " captures the screen or the active window and saves it to a file."); + Console.WriteLine(""); + Console.WriteLine("Usage:"); + Console.WriteLine(" " + scriptName + " filename [WindowTitle]"); + Console.WriteLine(""); + Console.WriteLine("finename - the file where the screen capture will be saved"); + Console.WriteLine(" allowed file extensions are - Bmp,Emf,Exif,Gif,Icon,Jpeg,Png,Tiff,Wmf."); + Console.WriteLine("WindowTitle - instead of capture whole screen you can point to a window "); + Console.WriteLine(" with a title which will put on focus and captuted."); + Console.WriteLine(" For WindowTitle you can pass only the first few characters."); + Console.WriteLine(" If don't want to change the current active window pass only \"\""); + } + + public static void Main() + {{ + parseArguments(); + ScreenCapture sc = new ScreenCapture(); + if (!fullscreen && !windowTitle.Equals("")) + {{ + try + {{ + + Interaction.AppActivate(windowTitle); + Console.WriteLine("setting " + windowTitle + " on focus"); + } + catch (Exception e) + {{ + Console.WriteLine("Probably there's no window like " + windowTitle); + Console.WriteLine(e.ToString()); + Environment.Exit(9); + } + + + } + try + {{ + if (fullscreen) + {{ + Console.WriteLine("Taking a capture of the whole screen to " + file); + sc.CaptureScreenToFile(file, format); + } + else + {{ + Console.WriteLine("Taking a capture of the active window to " + file); + sc.CaptureActiveWindowToFile(file, format); + } + } + catch (Exception e) + {{ + Console.WriteLine("Check if file path is valid " + file); + Console.WriteLine(e.ToString()); + } + } + + /// Helper class containing Gdi32 API functions + + private class GDI32 + {{ + + public const int SRCCOPY = 0x00CC0020; // BitBlt dwRop parameter + [DllImport("gdi32.dll")] + public static extern bool BitBlt(IntPtr hObject, int nXDest, int nYDest, + int nWidth, int nHeight, IntPtr hObjectSource, + int nXSrc, int nYSrc, int dwRop); + [DllImport("gdi32.dll")] + public static extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int nWidth, + int nHeight); + [DllImport("gdi32.dll")] + public static extern IntPtr CreateCompatibleDC(IntPtr hDC); + [DllImport("gdi32.dll")] + public static extern bool DeleteDC(IntPtr hDC); + [DllImport("gdi32.dll")] + public static extern bool DeleteObject(IntPtr hObject); + [DllImport("gdi32.dll")] + public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject); + } + + + /// Helper class containing User32 API functions + + private class User32 + {{ + [StructLayout(LayoutKind.Sequential)] + public struct RECT + {{ + public int left; + public int top; + public int right; + public int bottom; + } + [DllImport("user32.dll")] + public static extern IntPtr GetDesktopWindow(); + [DllImport("user32.dll")] + public static extern IntPtr GetWindowDC(IntPtr hWnd); + [DllImport("user32.dll")] + public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDC); + [DllImport("user32.dll")] + public static extern IntPtr GetWindowRect(IntPtr hWnd, ref RECT rect); + [DllImport("user32.dll")] + public static extern IntPtr GetForegroundWindow(); + } +} +_END_OF_FILE_ +// -------------------------------------------------------------------------------------------- + +delete __Download\screenCapture.bat +move __createfile __Download\screenCapture.bat +delete __Download\screenCapture.exe +action uses wow64 redirection {not x64 of operating system} +// reference: https://forum.bigfix.com/t/trying-to-run-a-linux-sh-script-in-a-bigfix-action/17748/6 (using cd &&) +waithidden cmd /c cd __Download && screenCapture.bat +delete {parameter "CurrentUserTempFolder"}\screenCapture.exe +copy __Download\screenCapture.exe {parameter "CurrentUserTempFolder"}\screenCapture.exe + +// take screenshot of currently active window +//override wait +//hidden=true +//runas=currentuser +//wait {parameter "CurrentUserTempFolder"}\screenCapture.exe {parameter "CurrentUserTempFolder"}\ScreenShotActiveWindow.png "" +//delete __Download\ScreenShotActiveWindow.png +//move {parameter "CurrentUserTempFolder"}\ScreenShotActiveWindow.png __Download\ScreenShotActiveWindow.png + +// take screenshot of fullscreen +override wait +hidden=true +runas=currentuser +wait {parameter "CurrentUserTempFolder"}\screenCapture.exe {parameter "CurrentUserTempFolder"}\ScreenShot.png +delete __Download\ScreenShot.png +move {parameter "CurrentUserTempFolder"}\ScreenShot.png __Download\ScreenShot.png + +// Clean up +delete {parameter "CurrentUserTempFolder"}\screenCapture.exe + +delete __Download\ScreenShot.png.base64 +waithidden powershell -ExecutionPolicy Bypass -command "[convert]::ToBase64String((get-content '{ pathname of download file "ScreenShot.png" }' -encoding byte)) | set-content( '__Download\ScreenShot.png.base64' )" +delete "{pathname of folders "Logs" of folders "__Global" of data folders of client}\ScreenShot.png.base64" +copy __Download\ScreenShot.png.base64 "{pathname of folders "Logs" of folders "__Global" of data folders of client}\ScreenShot.png.base64" +notify client ForceRefresh + +// http://optipng.sourceforge.net/ PNG optimizer +// prefetch optipng-0.7.6-win32.zip sha1:5cfaa48f01e354645b4cf415a0eaedcc76f542ea size:142313 http://heanet.dl.sourceforge.net/project/optipng/OptiPNG/optipng-0.7.6/optipng-0.7.6-win32.zip sha256:0012ec30ee5292e1fd19e0f8c45de4cc291fb5872c5bc83355c17e0b6ce662f7 + +// References: +// - http://superuser.com/questions/75614/take-a-screen-shot-from-command-line-in-windows/309290#309290 +// - https://github.com/npocmaka/batch.scripts/blob/master/hybrids/.net/c/screenCapture.bat +// - https://blog.mozilla.org/ted/2009/02/05/command-line-screenshot-tool-for-windows/ +// - https://code.google.com/archive/p/screenshot-cmd/ +// - http://www.nirsoft.net/utils/nircmd.html +// - https://davidwalsh.name/convert-image-data-uri-javascript +// - http://powershellscripts.blogspot.com/2007/02/base64-encode-file.html + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Testing PrintNightmare Spooler Disable mitigation (26860).bes b/Sites/Windows Management/Fixlets/Fixlets/Testing PrintNightmare Spooler Disable mitigation (26860).bes new file mode 100644 index 000000000..d42b04fa8 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Testing PrintNightmare Spooler Disable mitigation (26860).bes @@ -0,0 +1,44 @@ + + + + + Testing PrintNightmare Spooler Disable mitigation + TEST WELL

PrintNightmare, Critical Windows Print Spooler Vulnerability | CISA ]]>
+ windows of operating system + product type of operating system != nt workstation product type /*optionally avoids desktops*/ + exists services "spooler" whose (state of it = "Running" OR start type of it != "disabled") + Internal + 2021-07-01 + + x-fixlet-modification-time + Thu, 01 Jul 2021 19:24:19 +0000 + + BESC + + + Click + here + to deploy this action. + + wait sc.exe stop spooler +wait sc.exe config spooler start= disabled + + + + Click + here + to see more information. + + https://us-cert.cisa.gov/ncas/current-activity/2021/06/30/printnightmare-critical-windows-print-spooler-vulnerability + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Track Primary User v2.8 (2533).bes b/Sites/Windows Management/Fixlets/Fixlets/Track Primary User v2.8 (2533).bes new file mode 100644 index 000000000..e810541b0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Track Primary User v2.8 (2533).bes @@ -0,0 +1,47 @@ + + + + + Track Primary User v2.8 + The "Primary User" of an endpoint is the user who has logged on most frequently in a given history window (e.g. the past 10 logins).

This task monitors each login and records the most recent logins.  This information is stored in the following registry values:

+

[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LoggedIn]
+[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LastLoggedInUser]
+[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LastTime]
+[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LogonHistory]
+[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\PrimaryUser]

+

Note:  This task will not run on domain controllers.
+

Note:  This task will be set as a policy and will run following each logon.

]]>
+ (exists logged on users) AND (((it contains "win2000" OR it contains "winxp" OR it contains "win2003" OR it contains "winvista" OR it contains "win2008" OR it contains "win7") of (name of operating system as lowercase)) AND product type of operating system != nt domain controller product type) AND ((not exists value "LoggedIn" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry) OR (value "LoggedIn" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry != (exists logged on users whose (active of it)) as string) OR (if (exists values "LogonHistory" of keys "HKLM\Software\BigFix\EnterpriseClient\userstats" of registry) then (value "LogonHistory" of keys "HKLM\Software\BigFix\EnterpriseClient\userstats" of registry as string does not contain (maximum of time values of selects "starttime from win32_logonsession where (LogonType=2 OR LogonType=10)" of wmi) as string) else TRUE)) + Policy + Custom + 2007-10-10 + Custom + + x-fixlet-modification-time + Wed, 10 Jul 2013 17:58:26 +0000 + + BESC + + + Click&nbsp; + here + &nbsp;to deploy this action. + + (now - 7 * day)) of it) of ((preceding texts of firsts ";;" of it, following texts of firsts ";;" of it) of (substrings separated by "::" whose (it != "") of (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string))))))))) else ("::" & (tuple string item 0 of concatenation ", " of items 0 of ((item 0 of item 1 of it, item 1 of item 0 of it) of ((it,((preceding texts of firsts "%22" of following texts of firsts "Name=%22" of it, preceding texts of firsts "%22" of following texts of firsts ".LogonId=%22" of it) of ((following texts whose (number of substrings "|" of it is 1) of substrings "|" of preceding texts whose (number of substrings "|" of it mod 2 is 0) of substrings "|" of it) of ("|" & (concatenation "|" of (string values of selects "* from Win32_LoggedOnUser" of wmi)) & "|")))) of ((preceding texts of firsts "|" of it, following texts of firsts "|" of it) of ((following texts whose (number of substrings "|" of it is 1) of substrings "|" of preceding texts whose (number of substrings "|" of it mod 2 is 0) of substrings "|" of it) of ("|" & (concatenation "|" of ((if (it as string contains "LogonId") then (string values of it) else if (it as string contains "StartTime") then (time values of it as string) else "") of (selects "StartTime, LogonId from Win32_LogonSession where (LogonType=2 OR LogonType=10)" of wmi))) & "|")))) whose (item 0 of item 0 of it = item 1 of item 1 of it)) whose (item 1 of it = (maximum of time values of selects "starttime from win32_logonsession where (LogonType=2 OR LogonType=10)" of wmi as string))) & ";;" & (maximum of time values of selects "starttime from win32_logonsession where (LogonType=2 OR LogonType=10)" of wmi as string))) else (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)}" +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats]" "PrimaryUser"="{if (exists (key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" whose (exists value "LogonHistory" of it) of registry)) then (item 0 of ((items 0 whose ((concatenation of (unique values whose ((multiplicity of it = (maximum of multiplicities of unique values of preceding texts of firsts ";;" of substrings separated by "::" of (value "LogonHistory" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)))) of preceding texts of firsts ";;" of substrings separated by "::" of (value "LogonHistory" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)) as string) contains it) of it, items 1 whose (it as time = maximum of (((following texts of firsts ";;" of it) of (substrings separated by "::" whose (it != "") of (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string))) as time)) of it) of (((preceding texts of firsts ";;" of it, following texts of firsts ";;" of it) of (substrings separated by "::" whose (it != "") of (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)))))) else "N/A"}" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Troubleshooting_ Reset Windows Update, Pending Updates, and DISM Repair (27344).bes b/Sites/Windows Management/Fixlets/Fixlets/Troubleshooting_ Reset Windows Update, Pending Updates, and DISM Repair (27344).bes new file mode 100644 index 000000000..a30d161b4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Troubleshooting_ Reset Windows Update, Pending Updates, and DISM Repair (27344).bes @@ -0,0 +1,379 @@ + + + + + Troubleshooting: Reset Windows Update, Pending Updates, and DISM Repair + USE WITH CAUTION

+

 

+

This Task performs several cleanup operations to attempt to resolve failing Windows Updates.  This should be used with care, and only on systems that are failing to install updates after all other troubleshooting steps have been taken, consider this a last effort before reimaging the problem machine.  Making system changes, especially to an already-broken system, may further corrupt the system.  Backup any important data before running this task!

+

 

+

This Task

+
    +
  • +
    Attempts to clear cached Windows Update data to resolve cases where Windows Updates fail to install due to a corruption of the SoftwareDistribution folder.
    +
+

 

+ +

The Second action allows specifying a path to a trusted set of Windows installation files to be used to perform a repair, if original Windows installation files are required, for example 'C:\Windows-Media-Source'.  The path should be accessible to the LocalSystem WIndows account (network UNC shares are generally not accessible and the media should be copied to a client path before running the action).

+

  

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + = version "6.2"]]> + Internal + 2023-10-04 + + x-fixlet-modification-time + Tue, 14 May 2024 17:10:54 +0000 + + BESC + + + Click + here + to attempt repair without specifying an Installation Source. + + "{parameter "LogFolder"}\windows-update-cleanup.txt" 2>&1" + +// DISM Pending Component Updates Reset +delete __createfile +createfile until EOF_EOF_EOF +@echo DISM repair running %DATE% %TIME% + +@echo Kill any running WUSA update +taskkill.exe /im wusa.exe /f + +@echo Package list before servicing: +dism /online /get-packages /format:table + +@echo Removing any Pending Package installations via DISM +for /f %%i in ('dism /online /get-packages /format:table ^|findstr " Pending ^|"') do dism.exe /online /remove-package /PackageName:%%i /NoRestart +@echo DISM command ended with result code %ERRORLEVEL% + +@echo Package list after servicing: +dism /online /get-packages /format:table + + + +@echo DISM repair completed %DATE% %TIME% + +EOF_EOF_EOF + +delete DISM-repair.cmd +move __createfile DISM-repair.cmd + +delete "{parameter "LogFolder"}\DISM-RemovePending.log" +waithidden cmd.exe /c "DISM-repair.cmd >> "{parameter "LogFolder"}\DISM-RemovePending.log" 2>&1" + + + +delete "{parameter "LogFolder"}\DISM-RestoreHealth.log" +delete "{parameter "LogFolder"}\DISM-RestoreHealth.out" + +waithidden cmd /C "DISM.EXE /LogPath:"{parameter "LogFolder"}\DISM-RestoreHealth.log" /LogLevel:4 /NoRestart /Online /Cleanup-Image /RestoreHealth > "{parameter "LogFolder"}\DISM-RestoreHealth.out" 2>&1" + + +action requires restart "windows_update_reset" + +]]> + + + + Click + here + to attempt repair with a specific Windows Installation Source. + + "{parameter "LogFolder"}\windows-update-cleanup.txt" 2>&1" + +// DISM Pending Component Updates Reset +delete __createfile +createfile until EOF_EOF_EOF +@echo DISM repair running %DATE% %TIME% + +@echo Kill any running WUSA update +taskkill.exe /im wusa.exe /f + +@echo Package list before servicing: +dism /online /get-packages /format:table + +@echo Removing any Pending Package installations via DISM +for /f %%i in ('dism /online /get-packages /format:table ^|findstr " Pending ^|"') do dism.exe /online /remove-package /PackageName:%%i /NoRestart +@echo DISM command ended with result code %ERRORLEVEL% + +@echo Package list after servicing: +dism /online /get-packages /format:table + + + +@echo DISM repair completed %DATE% %TIME% + +EOF_EOF_EOF + +delete DISM-repair.cmd +move __createfile DISM-repair.cmd + +delete "{parameter "LogFolder"}\DISM-RemovePending.log" +waithidden cmd.exe /c "DISM-repair.cmd >> "{parameter "LogFolder"}\DISM-RemovePending.log" 2>&1" + + + +delete "{parameter "LogFolder"}\DISM-RestoreHealth.log" +delete "{parameter "LogFolder"}\DISM-RestoreHealth.out" + +waithidden cmd /C "DISM.EXE /LogPath:"{parameter "LogFolder"}\DISM-RestoreHealth.log" /LogLevel:4 /NoRestart /Online /Cleanup-Image /RestoreHealth /Source:"{parameter "RepairSource" of action}" /LimitAccess > "{parameter "LogFolder"}\DISM-RestoreHealth.out" 2>&1" + +action requires restart "windows_update_reset" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/UPDATE_ Microsoft .NET Framework 4.8 Available - Windows 7 SP1 _ Windows 8.1 _ Windows 10 _ Windows Server 2008 R2 SP1 _ Windows Server 2012 _ Windows Server 2012 R2 _ Windows Server 2016 _ Windows Server 2019 (26631).bes b/Sites/Windows Management/Fixlets/Fixlets/UPDATE_ Microsoft .NET Framework 4.8 Available - Windows 7 SP1 _ Windows 8.1 _ Windows 10 _ Windows Server 2008 R2 SP1 _ Windows Server 2012 _ Windows Server 2012 R2 _ Windows Server 2016 _ Windows Server 2019 (26631).bes new file mode 100644 index 000000000..2a0025eaa --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/UPDATE_ Microsoft .NET Framework 4.8 Available - Windows 7 SP1 _ Windows 8.1 _ Windows 10 _ Windows Server 2008 R2 SP1 _ Windows Server 2012 _ Windows Server 2012 R2 _ Windows Server 2016 _ Windows Server 2019 (26631).bes @@ -0,0 +1,86 @@ + + + + + UPDATE: Microsoft .NET Framework 4.8 Available - Windows 7 SP1 / Windows 8.1 / Windows 10 / Windows Server 2008 R2 SP1 / Windows Server 2012 / Windows Server 2012 R2 / Windows Server 2016 / Windows Server 2019 + + + + +
+

The Microsoft .NET Framework 4.8 is a highly compatible, in-place update to the Microsoft .NET Framework 4, Microsoft .NET Framework 4.5, Microsoft .NET Framework 4.5.1, Microsoft .NET Framework 4.5.2, Microsoft .NET Framework 4.6, Microsoft .NET Framework 4.6.1, Microsoft .NET Framework 4.6.2, Microsoft .NET Framework 4.7, Microsoft .NET Framework 4.7.1, and Microsoft .NET Framework 4.7.2. The offline package can be used in situations where the web installer cannot be used due to lack of internet connectivity.

After downloading and installing this update, affected computers will no longer be susceptible to this vulnerability.

Important Note: There are known issues associated with the installation of this update. See the Known Issues section of the Knowledge Base Article for more information.

+

Note: Affected computers may report back as 'Pending Restart' once the update has run successfully, but will not report back their final status until the computer has been restarted.

+
+

File Size:

69.3 MB
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + not ia64 of operating system + (((name of it = "Win7" OR name of it = "Win2008R2") AND service pack major version of it = 1) OR (((name of it = "Win8.1" OR name of it = "Win8" AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.3") OR name of it = "Win2012" OR name of it = "Win2012R2") AND service pack major version of it = 0) OR (name of it = "Win10" OR (it starts with "Win" AND it does not start with "Win20") of name of it AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) OR ((((it starts with "Win20" or it = "Win2016" or it = "Win2019") of name of it AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) AND service pack major version of it = 0))) of operating system + + if (name of it = "Win8.1" OR name of it = "Win8" AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.3") of operating system then exists key ("Package_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14"; "Package_for_KB2919355~31bf3856ad364e35~x86~~6.3.1.14") whose (112 = value "CurrentState" of it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry else true + if ((exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10 of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) then ((it as integer = 1607 OR it as integer = 1703 OR it as integer = 1709 OR it as integer = 1803 OR it as integer = 1809) of value "ReleaseId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) else true + Update + Microsoft + 2018-04-18 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 14 Jun 2018 06:43:49 +0000 + + + x-fixlet-operating-system + Windows 7 SP1 |~| Windows 8 Gold |~| Windows 8.1 Gold |~| Windows Server 2008 R2 SP1 |~| Windows Server 2008 SP2 |~| Windows Server 2012 Gold |~| Windows Server 2012 R2 Gold |~| Windows Vista SP2 (x64) + + + no-relevance-health-check + false + + + x-fixlet-product-family + Windows + + + x-fixlet-component + .NET Framework + + + x-fixlet-product + Win8.1|Win2012|Win2012R2|Win2008R2|Win8|Win7|WinVista|Win2008 + + + x-fixlet-modification-time + Fri, 14 Jun 2019 18:04:11 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch ndp48-x86-x64-allos-enu.exe sha1:0d425249d42a01e7ab3ac243152fa7773c43f0bf size:72721568 https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe sha256:95889D6DE3F2070C07790AD6CF2000D33D9A1BDFC6A381725AB82AB1C314FD53 + +waithidden __Download\ndp48-x86-x64-allos-enu.exe /quiet /norestart + +action may require restart "0d425249d42a01e7ab3ac243152fa7773c43f0bf" + + + + + Click + here + to see the Knowledge Base Article for this update. + + https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/UnSet Service tzautoupdate triggers (Trigger Start) - Windows (24614).bes b/Sites/Windows Management/Fixlets/Fixlets/UnSet Service tzautoupdate triggers (Trigger Start) - Windows (24614).bes new file mode 100644 index 000000000..dcd848246 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/UnSet Service tzautoupdate triggers (Trigger Start) - Windows (24614).bes @@ -0,0 +1,47 @@ + + + + + UnSet Service tzautoupdate triggers (Trigger Start) - Windows + WARNING: This is a bad idea to do to a service without understanding the consequences!!!  You probably shouldn't do this!

+

 

]]>
+ windows of operating system + exists services "tzautoupdate" + exists keys whose(name of it as lowercase = "tzautoupdate" as lowercase AND exists keys "TriggerInfo" whose(exists keys of it) of it AND not exists values "Start" whose(it as integer = 4) of it) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" of registries + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:13:32 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc triggerinfo tzautoupdate delete + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://serverfault.com/questions/599099/windows-service-trigger-start-difference-manual-vs-automatic +// - https://www.tenforums.com/general-support/7464-difference-between-manual-manual-trigger-start-services.html#post924871 +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Uninstall_ Internet-Explorer 11 (Windows 64BIT) (26938).bes b/Sites/Windows Management/Fixlets/Fixlets/Uninstall_ Internet-Explorer 11 (Windows 64BIT) (26938).bes new file mode 100644 index 000000000..57f3ba57d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Uninstall_ Internet-Explorer 11 (Windows 64BIT) (26938).bes @@ -0,0 +1,83 @@ + + + + + Uninstall: Internet-Explorer 11 (Windows 64BIT) + UniInstall Internet explorer 11 via the DISM tool.  This action will be relevant on Windows OS's that have Internet Explorer 11 installed

]]>
+ name of operating systems as lowercase starts with "win" + exists regapp "iexplore.exe" and product version of regapp "iexplore.exe" as string starts with "11." + Uninstall + AVP-Jeff Schafer + 2022-07-13 + CRITICAL + + bigfixme-added-time + Wed, 26 Dec 2012 15:35:15 GMT + + + bigfixme-modification-time + Wed, 26 Dec 2012 15:35:15 GMT + + + bigfixme-keywords + Uninstall Feature Internet Explorer Optional + + + bigfixme-ID + 1048 + + + x-fixlet-modification-time + Wed, 13 Jul 2022 22:18:48 +0000 + + SYST + + + Click + here + to&nbsp;remove IE 11 on targeted systems with no forced reboot (Note: Reboot will be required to complete) + + action uses wow64 redirection {not x64 of operating system} +delete __appendfile +appendfile "{pathname of system folder}\dism.exe" /online /NoRestart /Remove-Capability /CapabilityName:Browser.InternetExplorer~~~~0.0.11.0 /quiet +delete __Download\remove_ie_11.bat +move __appendfile __Download\remove_ie_11.bat +waithidden __Download\remove_ie_11.bat +action requires restart + + + + + + Click + here + to&nbsp;&nbsp;remove IE 11 on targeted system with immediate foreced reboot (Warning). + + action uses wow64 redirection {not x64 of operating system} +delete __appendfile +appendfile "{pathname of system folder}\dism.exe" /online /Remove-Capability /CapabilityName:Browser.InternetExplorer~~~~0.0.11.0 /quiet +delete __Download\remove_ie_11.bat +move __appendfile __Download\remove_ie_11.bat +waithidden __Download\remove_ie_11.bat +action requires restart + + + + Click + here + to review Microsoft website on how to disable IE 11 + + https://docs.microsoft.com/en-us/troubleshoot/developer/browsers/installation/disable-internet-explorer-windows + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Unjoin Domain on Windows Computer - wmic (26948).bes b/Sites/Windows Management/Fixlets/Fixlets/Unjoin Domain on Windows Computer - wmic (26948).bes new file mode 100644 index 000000000..c43ef4b1d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Unjoin Domain on Windows Computer - wmic (26948).bes @@ -0,0 +1,37 @@ + + + + + Unjoin Domain on Windows Computer - wmic + + windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + exists netbios domainnames of local computers of active directories + Internal + 2019-05-20 + + x-fixlet-modification-time + Fri, 04 Oct 2019 17:39:01 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection false +waithidden wmic.exe computersystem where name!=null call unjoindomainorworkgroup +action requires restart RenameComputer + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Unmount PST Files from Outlook (26642).bes b/Sites/Windows Management/Fixlets/Fixlets/Unmount PST Files from Outlook (26642).bes new file mode 100644 index 000000000..79693d8a4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Unmount PST Files from Outlook (26642).bes @@ -0,0 +1,134 @@ + + + + + Unmount PST Files from Outlook + Unmount PST files from Outlook for Current User and close Outlook to unlock the file + windows of operating system + "15.0.0.0") AND (version of regapp "outlook.exe" < "16.0.0.0")) then (if exists (names of values of key "Software\Microsoft\Office\15.0\Outlook\Search\Catalog" of keys of key "HKEY_USERS" of registry) whose (it as string contains ".pst") then true else false) else false) else false) OR (if exists regapp "outlook.exe" then (if version of regapp "outlook.exe" > "16.0.0.0" then (if exists (names of values of key "Software\Microsoft\Office\16.0\Outlook\Search\Catalog" of keys of key "HKEY_USERS" of registry) whose (it as string contains ".pst") then true else false) else false) else false) OR (if exists regapp "outlook.exe" then (if version of regapp "outlook.exe" = "10" then (if exists values whose (it as string contains ".pst") of keys of keys of keys "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" of keys of keys "HKEY_USERS" of registry then true else false) else false) else false)]]> + Internal + 2019-08-20 + + x-fixlet-modification-time + Fri, 23 Aug 2019 19:47:09 +0000 + + BESC + + + Click + here + to Unmount using PowerShell + + + + + + + Click + here + to Unmount using VBScript + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows (24602).bes b/Sites/Windows Management/Fixlets/Fixlets/Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows (24602).bes new file mode 100644 index 000000000..ef3aaa381 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows (24602).bes @@ -0,0 +1,48 @@ + + + + + Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows + + x64 of operating system + windows of operating system + "6.3.9200") of operating systems]]> + + Internal + jgstew + 2017-07-19 + + x-fixlet-modification-time + Wed, 19 Jul 2017 19:18:02 +0000 + + BESC + + + Click + here + to deploy this action. + + +// https://www.microsoft.com/en-us/wdsi/definitions +prefetch mpam-fe.exe sha1:d118361ac364a7dd8e78062228f513f22adac505 size:131255056 https://definitionupdates.microsoft.com/download/DefinitionUpdates/VersionedSignatures/AM/1.247.1082.0/amd64/mpam-fe.exe sha256:d9fd34cc92f00d0ae4d0905656dce783c4bc271970bac8608c834f973179863c + +wait __Download\mpam-fe.exe /q + +// References: +// - http://www.itninja.com/link/install-the-latest-microsoft-security-essentials-definition-updates-get-the-latest-definitions-microsoft-malware-protection-center +// - https://bigfix.me/analysis/details/2994634 +// - https://bigfix.me/analysis/details/2998358 +// - https://bigfix.me/analysis/details/2996952 +// - https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Update Windows Experience Index - WinSAT (6045).bes b/Sites/Windows Management/Fixlets/Fixlets/Update Windows Experience Index - WinSAT (6045).bes new file mode 100644 index 000000000..260a4b4a0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Update Windows Experience Index - WinSAT (6045).bes @@ -0,0 +1,46 @@ + + + + + Update Windows Experience Index - WinSAT + + windows of operating system + = "6.0"/* Windows Vista or later */]]> + exists name whose(it does not contain "Win2008" AND it does not contain "Win2012") of operating system/* Exclude Windows Server */ + /* This does not need to run on virtual machines */ "Physical" = /* The following is from the Physical/Virtual Computer Type Analysis - Improved */ (if (mac of operating system) then /* the Mac BES client does not currently support the smbios inspector. This needs refinement, but for now just assuming apple devices are physical since virtualiztion of OS X is relatively rare */ "Physical" else (if ((it contains "VMware" or (it contains "Microsoft" AND /* This check is needed to exclude Microsoft Surface devices */ ((value "product_name" of structure "system_information" of smbios) as string contains "Virtual Machine")) or it contains "Xen" or /* This check is needed to properly identify Parallels VMs as virtual instead of physical */ it contains "Parallels Software") of (value "manufacturer" of structure "system_information" of smbios as string)) then "Virtual" else "Physical")) + + Internal + jgs194 + 2013-08-22 + + x-fixlet-modification-time + Fri, 15 Nov 2013 19:51:53 +0000 + + BESC + + + Click + here + to deploy this action. + + // http://technet.microsoft.com/en-us/library/cc742136.aspx +// http://blogs.technet.com/b/mniehaus/archive/2009/08/26/prepopulating-windows-experience-index-wei-a-k-a-winsat-numbers-in-windows-7.aspx + +parameter "iNumResultsBefore" = "{((it as string) of number of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment") of folder "Performance\WinSAT\DataStore" of windows folder)}" + +//waithidden cmd /c winsat prepop +waithidden cmd /c winsat formal -restart + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Upload DISM.txt (1049).bes b/Sites/Windows Management/Fixlets/Fixlets/Upload DISM.txt (1049).bes new file mode 100644 index 000000000..1f43e3805 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Upload DISM.txt (1049).bes @@ -0,0 +1,52 @@ + + + + + Upload DISM.txt + http://bigfix.me/features/import database. +

Source: http://bigfix.me/features/

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + exists file "DISM.txt" of parent folder of client + Upload + danielheth@bigfix.me + <Unspecified> + 2012-10-02 + <Unspecified> + + x-fixlet-modification-time + Wed, 26 Dec 2012 21:34:45 +0000 + + BESC + + + Click + here + to upload the DISM.txt file. + + parameter "current_time"="{(now - "01 Jan 1970 00:00:00" as local time)/second}" +// set max size to 20 MB to prevent too much data +setting "_BESClient_ArchiveManager_MaxArchiveSize"="20971520" on "{parameter "action issue date" of action}" for client +setting "_BESClient_ArchiveManager_OperatingMode"="2" on "{parameter "action issue date" of action}" for client +setting "_BESClient_ArchiveManager_FileSet-DISM{parameter "current_time"}"="{pathname of parent folder of client}\DISM.txt" on "{parameter "action issue date" of action}" for client +// send results +archive now + + + + Click + here + to learn more and download the latest versions of Feature Installer tasks. + + http://bigfix.me/features/ + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4013).bes b/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4013).bes new file mode 100644 index 000000000..67fcc11fd --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4013).bes @@ -0,0 +1,77 @@ + + + + + WARNING: Possible Memory Leak in ITM OS Client + + + +The listed computers have ITM OS Agents with high memory usage. This may indicate a possible memory leak. This fixlet message is triggered when the ITM OS Windows agent is using more than 150 MB of memory. The recommended action is to restart the ITM OS Agent in order to free memory. +

Revision History

+
    +
  • 31/03/2015 - zanesand - Initial Creation
]]>
+ name of operating system starts with "Win" + = "8.0"]]> + 200 OR (ia64 of operating system AND ((page file usage of it) / (1024*1024)) > 300) OR ((page file usage of it) > size of ram / 2)))]]> + Support + BigFix.me + <Unspecified> + 2015-03-31 + Important + + bigfixme-added-time + Wed, 17 Oct 2012 13:14:46 GMT + + + bigfixme-modification-time + Wed, 17 Oct 2012 13:14:46 GMT + + + x-fixlet-first-propagation + Thu, 03 Feb 2011 17:36:14 +0000 + + + x-fixlet-domain_attributes + BES Warn Important + + + bigfixme-keywords + BES Client TABLE TBODY memory + + + x-fixlet-modification-time + Tue, 31 Mar 2015 22:53:48 +0000 + + BESC + + + Click + here + to restart the ITM OS Agent. + + delete __appendfile +appendfile net stop KNTCMA_Primary +appendfile net start KNTCMA_Primary +delete agentRestart.bat +copy __appendfile agentRestart.bat +runhidden agentRestart.bat + + + + Click + here + to review this task in the bigfix.me Content Database. + + http://bigfix.me/cdb/fixlet/306 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4014).bes b/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4014).bes new file mode 100644 index 000000000..69bf02495 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4014).bes @@ -0,0 +1,49 @@ + + + + + WARNING: Possible Memory Leak in ITM OS Client + + + +The listed computers have ITM OS Agents with high memory usage. This may indicate a possible memory leak. This fixlet message is triggered when the ITM OS Windows agent (kntcma.exe) is using more than 150 MB of memory. The recommended action is to restart the ITM OS Agent in order to free memory. +

Revision History

+
    +
  • 31/03/2015 - zanesand - Initial Creation
]]>
+ name of operating system starts with "Win" + = "8.0"]]> + 200 OR (ia64 of operating system AND ((page file usage of it) / (1024*1024)) > 300) OR ((page file usage of it) > size of ram / 2)))]]> + Support + SMI + <Unspecified> + 2015-04-01 + Important + + x-fixlet-modification-time + Wed, 01 Apr 2015 03:27:47 +0000 + + BESC + + + Click + here + to restart the ITM OS Agent + + delete __appendfile +appendfile net stop KNTCMA_Primary +appendfile net start KNTCMA_Primary +delete agentRestart.bat +copy __appendfile agentRestart.bat +runhidden agentRestart.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/WUAUSERV Enable (21611).bes b/Sites/Windows Management/Fixlets/Fixlets/WUAUSERV Enable (21611).bes new file mode 100644 index 000000000..09a783d33 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/WUAUSERV Enable (21611).bes @@ -0,0 +1,34 @@ + + + + + WUAUSERV Enable + This will change the wuauserv service to a manual/demand state + windows of operating system + value "Start" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv" of native registry as string = "4" + Internal + 2016-09-13 + + x-fixlet-modification-time + Tue, 13 Sep 2016 21:33:58 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wuauserv]" "Start"=dword:00000003 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Application Identity service may not be running (22654).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Application Identity service may not be running (22654).bes new file mode 100644 index 000000000..97390644e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Application Identity service may not be running (22654).bes @@ -0,0 +1,40 @@ + + + + + Warning - Applocker Application Identity service may not be running + This fixlet will be applicable on machines that do not have the application identity service running.

+

The Application Identity Service is required for Applocker to work.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + NOT in proxy agent context + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + state of service "AppIDSvc" != "Running" + Application Whitelisting + Internal + 2016-04-19 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + wait sc config AppIDSvc start= auto +wait net start AppIDSvc + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but AppIDSvc is stopped - Windows (22655).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but AppIDSvc is stopped - Windows (22655).bes new file mode 100644 index 000000000..15b05e98d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but AppIDSvc is stopped - Windows (22655).bes @@ -0,0 +1,36 @@ + + + + + Warning - Applocker Rules exist but AppIDSvc is stopped - Windows + There are Applocker rules defined but the AppIDSvc is stopped! This means rules may be ENFORCED.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ state of service "AppIDSvc" != "Running" + exists keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + Internal + 2016-05-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + wait sc config AppIDSvc start= auto +wait net start AppIDSvc + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows (20664).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows (20664).bes new file mode 100644 index 000000000..bf05db9ef --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows (20664).bes @@ -0,0 +1,27 @@ + + + + + Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows + There are Applocker rules defined but no Enforcement mode is set! This means the rule are ENFORCED.

+

https://technet.microsoft.com/en-us/library/dd759115(v=ws.11).aspx

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ exists keys whose (exists keys of it and not exists value "EnforcementMode" of it) of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + Internal + 2016-05-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker cannot run on non-enterprise versions of Windows (20223).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker cannot run on non-enterprise versions of Windows (20223).bes new file mode 100644 index 000000000..f5821a8e4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker cannot run on non-enterprise versions of Windows (20223).bes @@ -0,0 +1,28 @@ + + + + + Warning - Applocker cannot run on non-enterprise versions of Windows + This fixlet is relevant on Windows computers that cannot run AppLocker because it is not supported by the edition or version of the Operating System. + windows of operating system + NOT in proxy agent context + (product info string of operating system does not contain "Enterprise" and product info string of operating system does not contain "Server") + Application Whitelisting + Internal + 2016-04-19 + + x-fixlet-modification-time + Tue, 19 Apr 2016 19:00:51 +0000 + + BESC + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker maximum event log size may be too small (20583).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker maximum event log size may be too small (20583).bes new file mode 100644 index 000000000..ad3adce45 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker maximum event log size may be too small (20583).bes @@ -0,0 +1,31 @@ + + + + + Warning - Applocker maximum event log size may be too small + The Applocker logs on the system are at their default values or set to a value less than 20 Megabytes

+

Consider increasing the applocker log sizes to store more log data regarding Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + + Application Whitelisting + Internal + 2016-04-19 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows (20584).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows (20584).bes new file mode 100644 index 000000000..3e01057ac --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows (20584).bes @@ -0,0 +1,31 @@ + + + + + Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows + This fixlet is relevant on machines where BigFix is storing current or previous BitLocker Recovery keys on an unencrypted drive.

+

This occurs can occur if the BigFix Client is stored on a drive other than the system drive but only the system drive is encrypted.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + exists (files whose (Name of it contains "RecoveryPwd") of folder "BitLocker" of folder "__Global" of data folder of client) + Disk Encryption + Internal + 2016-04-30 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - CBS Log files are too large to compress - Windows (23431).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - CBS Log files are too large to compress - Windows (23431).bes new file mode 100644 index 000000000..5b8af3e51 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - CBS Log files are too large to compress - Windows (23431).bes @@ -0,0 +1,56 @@ + + + + + Warning - CBS Log files are too large to compress - Windows + This fixlet corrects an issue with the Windows Component-Based Servicing system.

+

The issue originates from the cbs.log file becoming too large to compress into an archive cab causing the files to fill up the Windows Temp directory.

+

This fixlet will remove CBS Log files and any cab files from the Windows Temp Directory.

+

Kudos and Compliments to Jason Walker for his work on the original fixlet here: https://bigfix.me/fixlet/details/11930

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = version "6"]]> + 1000) of folders "Logs\CBS" of windows folder]]> + Internal + 2017-02-09 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + 1000) of folders "Logs\CBS" of windows folder} +appendfile {concatenation "%0d%0a" of ("del /q %22" & it & "%22") of pathnames of files whose (name of it as lowercase starts with "cab_" ) of folders "TEMP" of windows folder} +appendfile net start TrustedInstaller + +delete DeleteLog.cmd + +move __appendfile DeleteLog.cmd + +waithidden cmd /c DeleteLog.cmd > {pathname of windows folder}\TEMP\cbscleanup.txt 2>&1 + +pause while {exists files whose (name of it as lowercase starts with "cbspersist" and name of it as lowercase ends with ".log" and size of it / 1024 / 1024 > 2100) of folders "Logs\CBS" of windows folder AND (now - active start time of action) < (2 * minute)} +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Control+Alt+Delete Injection may not be allowed (23558).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Control+Alt+Delete Injection may not be allowed (23558).bes new file mode 100644 index 000000000..939c1f778 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Control+Alt+Delete Injection may not be allowed (23558).bes @@ -0,0 +1,31 @@ + + + + + Warning - Control+Alt+Delete Injection may not be allowed + Control Alt Delete is a Secure Attention Sequence that brings the user to a secure desktop.

+

By design, neither a remote user, nor an application or service can inject the Secure Attention Sequence. This prevents malicious applications from answering questions on the secure desktop or proceeding through winlogon. This potentially impacts remote assistance and other remote help software because it will prevent a remote user from answering a UAC prompt for elevation instead requiring the user to accept on behalf of the remote user.

+

If this fixlet is relevant than Control+Alt+Delete injection is not corrently allowed for remote assistance software. You should enable this via Group Policy under: "Computer Configuration -> Administrative Templates -> Windows Components -> Windows Logon Options" the setting is called, "Disable or enable software Secure Attention Sequence Policy" and should be set to enabled with the dropdown set to "Services"

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + = "6.0"]]> + NOT in proxy agent context + (if (it = 0 or it = 2) then (true) else (false)) of ((value "SoftwareSASGeneration" of key "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" of native registry as string as integer) | 0) + Internal + 2016-04-18 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Dell_Drivers folder of System Drive - Windows (21631).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Dell_Drivers folder of System Drive - Windows (21631).bes new file mode 100644 index 000000000..0aca870be --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Dell_Drivers folder of System Drive - Windows (21631).bes @@ -0,0 +1,47 @@ + + + + + Warning - Files exist in Dell\Drivers folder of System Drive - Windows + This fixlet will delete any files in the folder System Drive:\Dell\Drivers

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "Drivers" of folder "Dell" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + delete __createfile +delete run.bat + +createfile until _end_ + +rmdir /s /q "{pathname of folder "Drivers" of folder "Dell" of drive of system folder}" + +_end_ + +move __createfile run.bat + +waithidden run.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Drivers folder of System Drive - Windows (21632).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Drivers folder of System Drive - Windows (21632).bes new file mode 100644 index 000000000..3b3ac80ef --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Drivers folder of System Drive - Windows (21632).bes @@ -0,0 +1,48 @@ + + + + + Warning - Files exist in Drivers folder of System Drive - Windows + This will delete any files in the SystemDrive:\Drivers folder.

+

SystemDrive:\Drivers is typically used by vendor driver installers and various programs. If there is ever a file that is not safe to delete shame on whomever put it here.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "Drivers" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + delete __createfile +delete run.bat + +createfile until _end_ + +rmdir /s /q "{pathname of folder "drivers" of drive of system folder}" + +_end_ + +move __createfile run.bat + +waithidden run.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Logs folder of System Drive - Windows (21633).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Logs folder of System Drive - Windows (21633).bes new file mode 100644 index 000000000..4a4e7636c --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Logs folder of System Drive - Windows (21633).bes @@ -0,0 +1,48 @@ + + + + + Warning - Files exist in Logs folder of System Drive - Windows + This will delete any files in the SystemDrive:\Logs folder.

+

SystemDrive:\Logs is typically used by Intel installers and various programs. If there is ever a log that is not safe to delete shame on whomever put it here.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "logs" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + delete __createfile +delete run.bat + +createfile until _end_ + +rmdir /s /q "{pathname of folder "logs" of drive of system folder}" + +_end_ + +move __createfile run.bat + +waithidden run.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in adobeTemp folder of System Drive - Windows (21634).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in adobeTemp folder of System Drive - Windows (21634).bes new file mode 100644 index 000000000..315dc7ea0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in adobeTemp folder of System Drive - Windows (21634).bes @@ -0,0 +1,48 @@ + + + + + Warning - Files exist in adobeTemp folder of System Drive - Windows + This will delete any files in the SystemDrive:\adobeTemp folder.

+

SystemDrive:\adobeTemp is typically used by adobe installers. If there is ever a file that is not safe to delete shame on whomever put it here.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "adobeTemp" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + delete __createfile +delete run.bat + +createfile until _end_ + +rmdir /s /q "{pathname of folder "adobeTEmp" of drive of system folder}" + +_end_ + +move __createfile run.bat + +waithidden run.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Folder _Program_ exists in Root of System Drive - Windows (21635).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Folder _Program_ exists in Root of System Drive - Windows (21635).bes new file mode 100644 index 000000000..da239d599 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Folder _Program_ exists in Root of System Drive - Windows (21635).bes @@ -0,0 +1,50 @@ + + + + + Warning - Folder "Program" exists in Root of System Drive - Windows + If there exists a folder called, "Progam" exists in the root of the system drive. Users logging in will receive an error.

+

This Fixlet removes the folder. This fixlet will fail if the folder is not empty.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "Program" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + Critical + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to remove this folder if it is empty. + + // Enter your action script here + +folder delete "{pathname of folder "Program" of drive of system folder}" + + + + Click + here + to remove this folder regardless of if it is empty. + + // Enter your action script here + +waithidden cmd.exe /c rmdir /s /q "{pathname of folder "Program" of drive of system folder}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug logging may be enabled - Windows (21636).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug logging may be enabled - Windows (21636).bes new file mode 100644 index 000000000..b561e539a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug logging may be enabled - Windows (21636).bes @@ -0,0 +1,29 @@ + + + + + Warning - Group Policy Preferences debug logging may be enabled - Windows + This fixlet is relevant if tracing is enabled for one or more Group Policy Preferences Extensions.

+

Tracing creates detailed log files on the system and may reduce performance of the Group Policy client. This could impact start-up and login time.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists keys whose (value "LogLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry + Group Policy + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug tracing may be enabled - Windows (21637).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug tracing may be enabled - Windows (21637).bes new file mode 100644 index 000000000..0131c7554 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug tracing may be enabled - Windows (21637).bes @@ -0,0 +1,29 @@ + + + + + Warning - Group Policy Preferences debug tracing may be enabled - Windows + This fixlet is relevant if tracing is enabled for one or more Group Policy Preferences Extensions.

+

Tracing creates detailed log files on the system and may reduce performance of the Group Policy client. This could impact start-up and login times.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists keys whose (value "TraceLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry + Group Policy + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Service debug logging may be enabled - Windows (21638).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Service debug logging may be enabled - Windows (21638).bes new file mode 100644 index 000000000..c6844d964 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Service debug logging may be enabled - Windows (21638).bes @@ -0,0 +1,28 @@ + + + + + Warning - Group Policy Service debug logging may be enabled - Windows + This fixlet evaluates to true if Group Policy debug logging is enabled on the target system.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists value "GPSvcDebugLevel" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion" of native registry + Group Policy + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Hosts files contains manually defined hosts - Win_Mac (20536).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Hosts files contains manually defined hosts - Win_Mac (20536).bes new file mode 100644 index 000000000..c695dbdff --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Hosts files contains manually defined hosts - Win_Mac (20536).bes @@ -0,0 +1,27 @@ + + + + + Warning - Hosts files contains manually defined hosts - Win\Mac + This fixlet is relevant if there are manually defined hosts in the system's hosts file.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system or mac of operating system + 0]]> + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Incorrect User Shell Folders values may cause Installer errors - Windows (21687).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Incorrect User Shell Folders values may cause Installer errors - Windows (21687).bes new file mode 100644 index 000000000..430d3a9e1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Incorrect User Shell Folders values may cause Installer errors - Windows (21687).bes @@ -0,0 +1,124 @@ + + + + + Warning - Incorrect User Shell Folders values may cause Installer errors - Windows + This fixlet detects and remediates the issue outlined in this Microsoft KB Article: https://support.microsoft.com/en-us/kb/886549

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ "6.0"]]> + (value "{374DE290-123F-4565-9164-39C4925E467B}" of it as string != "%25USERPROFILE%25\Downloads%00" or value "AppData" of it as string != "%25USERPROFILE%25\AppData\Roaming%00" or value "Desktop" of it as string != "%25USERPROFILE%25\Desktop%00" or value "Favorites" of it as string != "%25USERPROFILE%25\Favorites%00" or value "History" of it as string != "%25USERPROFILE%25\AppData\Local\Microsoft\Windows\History%00" or value "Local AppData" of it as string != "%25USERPROFILE%25\AppData\Local%00" or value "My Music" of it as string != "%25USERPROFILE%25\Music%00" or value "My Pictures" of it as string != "%25USERPROFILE%25\Pictures%00" or value "My Video" of it as string != "%25USERPROFILE%25\Videos%00" or value "NetHood" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Network Shortcuts%00" or value "Personal" of it as string != "%25USERPROFILE%25\Documents%00" or value "PrintHood" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Printer Shortcuts%00" or value "Programs" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Start Menu\Programs%00" or value "Recent" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Recent%00" or value "SendTo" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\SendTo%00" or value "Start Menu" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Start Menu%00" or value "Startup" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup%00" or value "Templates" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Templates%00") of key "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" of native registry + Internal + 2016-09-21 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +delete __createfile +delete import.reg + +createfile until _end_ +Windows Registry Editor Version 5.00 + +[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] +"AppData"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,00,00 +"Desktop"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,44,00,65,00,73,00,6b,00,74,00,6f,00,70,00,00,00 +"Favorites"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,46,00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,\ + 00,00,00 +"History"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,\ + 00,6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,\ + 66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,48,00,69,\ + 00,73,00,74,00,6f,00,72,00,79,00,00,00 +"Local AppData"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,\ + 49,00,4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,\ + 00,4c,00,6f,00,63,00,61,00,6c,00,00,00 +"My Music"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,4d,00,75,00,73,00,69,00,63,00,00,00 +"My Pictures"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,\ + 00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,\ + 00,00 +"My Video"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,56,00,69,00,64,00,65,00,6f,00,73,00,00,00 +"NetHood"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,4e,00,65,00,74,00,77,00,6f,00,72,00,6b,00,20,00,53,00,68,00,6f,00,72,00,\ + 74,00,63,00,75,00,74,00,73,00,00,00 +"Personal"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,74,00,73,\ + 00,00,00 +"PrintHood"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,50,00,72,00,69,00,6e,00,74,00,65,00,72,00,20,00,53,00,68,00,6f,00,72,00,\ + 74,00,63,00,75,00,74,00,73,00,00,00 +"Programs"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,53,00,74,00,61,00,72,00,74,00,20,00,4d,00,65,00,6e,00,75,00,5c,00,50,00,\ + 72,00,6f,00,67,00,72,00,61,00,6d,00,73,00,00,00 +"Recent"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\ + 00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,00,\ + 6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,\ + 00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,\ + 52,00,65,00,63,00,65,00,6e,00,74,00,00,00 +"SendTo"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\ + 00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,00,\ + 6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,\ + 00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,\ + 53,00,65,00,6e,00,64,00,54,00,6f,00,00,00 +"Start Menu"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,\ + 00,4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,\ + 52,00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,\ + 00,73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,\ + 5c,00,53,00,74,00,61,00,72,00,74,00,20,00,4d,00,65,00,6e,00,75,00,00,00 +"Startup"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,53,00,74,00,61,00,72,00,74,00,20,00,4d,00,65,00,6e,00,75,00,5c,00,50,00,\ + 72,00,6f,00,67,00,72,00,61,00,6d,00,73,00,5c,00,53,00,74,00,61,00,72,00,74,\ + 00,75,00,70,00,00,00 +"Templates"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,54,00,65,00,6d,00,70,00,6c,00,61,00,74,00,65,00,73,00,00,00 +"{{374DE290-123F-4565-9164-39C4925E467B}"=hex(2):25,00,55,00,53,00,45,00,52,00,\ + 50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,44,00,6f,00,77,00,6e,\ + 00,6c,00,6f,00,61,00,64,00,73,00,00,00 + + +_end_ + +move __createfile import.reg + +waithidden reg import import.reg + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows (24269).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows (24269).bes new file mode 100644 index 000000000..e982e144b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows (24269).bes @@ -0,0 +1,29 @@ + + + + + Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows + This Fixlet is relevant than the system is exposed to exploitation of Intel SA 00075.

+

Please use the Fixlet: Invoke - Intel SA 00075 Probe - Windows to populate results for a system. You can view more details of this in the Analysis: Vulnerabilities - Intel SA 00075 - Windows

+

More information on this vulnerability is available here: https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00075&languageid=en-fr

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + (if (it = 1) then (true) else (false)) of (value "Exposed" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Intel\Setup and Configuration Software\INTEL-SA-00075 Discovery Tool\ME Firmware Information" of x32 registry) + Internal + 2017-05-09 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee Endoint Security is installed but may not be running (20225).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee Endoint Security is installed but may not be running (20225).bes new file mode 100644 index 000000000..f2d678985 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee Endoint Security is installed but may not be running (20225).bes @@ -0,0 +1,29 @@ + + + + + Warning - McAfee Endoint Security is installed but may not be running + This fixlet is relevant if McAfee Endpoint Security is installed but not running.

+

This likely indicates an error with the McAfee client.

]]>
+ windows of operating system + + (not exists running application "vshwin32.exe") AND (not exists running application "mcshield.exe") + Anti-Virus + Internal + 2016-04-18 + + x-fixlet-modification-time + Tue, 19 Apr 2016 18:58:18 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee VirusScan Enterprise is installed but may not be running (20226).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee VirusScan Enterprise is installed but may not be running (20226).bes new file mode 100644 index 000000000..8e46c19a6 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee VirusScan Enterprise is installed but may not be running (20226).bes @@ -0,0 +1,29 @@ + + + + + Warning - McAfee VirusScan Enterprise is installed but may not be running + This fixlet is relevant if McAfee VirusScan Enterprise is installed but not running.

+

This likely indicates an error with the McAfee client.

]]>
+ windows of operating system + + (not exists running application "vshwin32.exe") AND (not exists running application "mcshield.exe") + Anti-Virus + Internal + 2016-04-18 + + x-fixlet-modification-time + Tue, 19 Apr 2016 18:58:08 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows (23734).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows (23734).bes new file mode 100644 index 000000000..e502dd9ef --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows (23734).bes @@ -0,0 +1,42 @@ + + + + + Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows + This Fixlet detects an Office 2010 install on the same machine as an Office 2013 install and uses the Office Cleanup tool to remove the Microsoft Office 2010 Installation.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "15.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "14.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +prefetch o14-ctrremove.diagcab sha1:84860CDAF2DD94FDF37F7519079195EFD1DE7777 size:401870 http://download.microsoft.com/download/2/8/5/28568719-AD79-41EB-B0F2-76E16817DD0E/MicrosoftFixit20055.mini.diagcab sha256:1F4BF79BA164A975279FBA37C82B6927BA2908C44624F8A80AEAFBC1B422313A + +waithidden expand -i "__Download\O14-CTRRemove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub10.vbs" ALL /Quiet /NoCancel /Force + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows (23735).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows (23735).bes new file mode 100644 index 000000000..2b44cbebb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows (23735).bes @@ -0,0 +1,42 @@ + + + + + Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows + This Fixlet detects an Office 2010 install on the same machine as an Office 2016 install and uses the Office Cleanup tool to remove the Microsoft Office 2010 Installation.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "16.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "14.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +prefetch o14-ctrremove.diagcab sha1:84860CDAF2DD94FDF37F7519079195EFD1DE7777 size:401870 http://download.microsoft.com/download/2/8/5/28568719-AD79-41EB-B0F2-76E16817DD0E/MicrosoftFixit20055.mini.diagcab sha256:1F4BF79BA164A975279FBA37C82B6927BA2908C44624F8A80AEAFBC1B422313A + +waithidden expand -i "__Download\O14-CTRRemove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub10.vbs" ALL /Quiet /NoCancel /Force + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows (23818).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows (23818).bes new file mode 100644 index 000000000..fa95ba613 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows (23818).bes @@ -0,0 +1,4134 @@ + + + + + Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows + This Fixlet detects an Office 2013 install on the same machine as an Office 2016 install and uses the Office Cleanup tool to remove the Microsoft Office 2013 Installation.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "15.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "16.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + "fForce" will kill running applications which can result in data loss! <- CAUTION +Dim fForce : fForce = False +'CAUTION! -> "fForce" will kill running applications which can result in data loss! <- CAUTION +Dim fLogInitialized : fLogInitialized = False +Dim fBypass_Stage1 : fBypass_Stage1 = True 'Component Detection +Dim fBypass_Stage2 : fBypass_Stage2 = False 'Setup +Dim fBypass_Stage3 : fBypass_Stage3 = False 'Msiexec +Dim fBypass_Stage4 : fBypass_Stage4 = False 'CleanUp +Dim fRebootRequired : fRebootRequired = False + +'Create required objects +Set oWmiLocal = GetObject("winmgmts:{{(Debug)}\\.\root\cimv2") +Set oWShell = CreateObject("Wscript.Shell") +Set oShellApp = CreateObject("Shell.Application") +Set oFso = CreateObject("Scripting.FileSystemObject") +Set oMsi = CreateObject("WindowsInstaller.Installer") +Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv") + +'Get environment path info +sAppData = oWShell.ExpandEnvironmentStrings("%appdata%") +sLocalAppData = oWShell.ExpandEnvironmentStrings("%localappdata%") +sTemp = oWShell.ExpandEnvironmentStrings("%temp%") +sAllUsersProfile = oWShell.ExpandEnvironmentStrings("%allusersprofile%") +RegReadValue HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "ProfilesDirectory", sProfilesDirectory, "REG_EXPAND_SZ" +If NOT oFso.FolderExists(sProfilesDirectory) Then + sProfilesDirectory = oFso.GetParentFolderName(oWShell.ExpandEnvironmentStrings("%userprofile%")) +End If +sProgramFiles = oWShell.ExpandEnvironmentStrings("%programfiles%") +'Deferred until after architecture check +'sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") + +sCommonProgramFiles = oWShell.ExpandEnvironmentStrings("%commonprogramfiles%") +'Deferred until after architecture check +'sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") + +sProgramData = oWSHell.ExpandEnvironmentStrings("%programdata%") +sWinDir = oWShell.ExpandEnvironmentStrings("%windir%") +sWICacheDir = sWinDir & "\" & "Installer" +sScrubDir = sTemp & "\" & SCRIPTNAME +sScriptDir = wscript.ScriptFullName +sScriptDir = Left(sScriptDir, InStrRev(sScriptDir, "\")) + +' Get current script host +fCScript = UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" + +'Detect if we're running on a 64 bit OS +Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_ComputerSystem") +For Each Item In ComputerItem + f64 = Instr(Left(Item.SystemType,3),"64") > 0 + If f64 Then Exit For +Next +If f64 Then sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") +If f64 Then sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") + +'Get OS details and VersionNT +Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_OperatingSystem") +For Each Item in ComputerItem + sOSinfo = sOSinfo & Item.Caption + sOSinfo = sOSinfo & Item.OtherTypeDescription + sOSinfo = sOSinfo & ", " & "SP " & Item.ServicePackMajorVersion + sOSinfo = sOSinfo & ", " & "Version: " & Item.Version + sOsVersion = Item.Version + sOSinfo = sOSinfo & ", " & "Codepage: " & Item.CodeSet + sOSinfo = sOSinfo & ", " & "Country Code: " & Item.CountryCode + sOSinfo = sOSinfo & ", " & "Language: " & Item.OSLanguage +Next + +'Build the VersionNT number +arrVersion = Split(sOsVersion, Delimiter(sOsVersion)) +iVersionNt = CInt(arrVersion (0)) * 100 + CInt(arrVersion (1)) + +'Check if we're running as 32 bit process on a 64 bit OS +If InStr(LCase(wscript.path), "syswow64") > 0 Then RelaunchAs64Host + +fElevated = CheckRegPermissions +If NOT fElevated AND NOT fNoElevate Then + 'Try to relaunch elevated + RelaunchElevated + + 'Can't relaunch. Exit out + If UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" Then + If Not fLogInitialized Then CreateLog + Log "Insufficient registry access permissions - exiting" + End If + 'Undo temporary entries created in ARP + TmpKeyCleanUp + wscript.quit 3 +End If + +'Create Dictionaries +Set dictionaryKeepProd = CreateObject("Scripting.Dictionary") +Set dicInstalledSku = CreateObject("Scripting.Dictionary") +Set dicRemoveSku = CreateObject("Scripting.Dictionary") +Set dictionaryKeepSku = CreateObject("Scripting.Dictionary") +Set dictionaryKeepLis = CreateObject("Scripting.Dictionary") +Set dictionaryKeepFolder = CreateObject("Scripting.Dictionary") +Set dicApps = CreateObject("Scripting.Dictionary") +Set dicDelRegKey = CreateObject("Scripting.Dictionary") +Set dictionaryKeepReg = CreateObject("Scripting.Dictionary") +Set dicSrv = CreateObject("Scripting.Dictionary") +Set dicCSuite = CreateObject("Scripting.Dictionary") +Set dicCSingle = CreateObject("Scripting.Dictionary") + +'Create the temp folder +If Not oFso.FolderExists(sScrubDir) Then oFso.CreateFolder sScrubDir + +'Set the default logging directory +sLogDir = sScrubDir + +'Call the command line parser +ParseCmdLine + +'Ensure CScript as engine +If NOT fCScript AND NOT fQuiet Then RelaunchAsCScript + +'Get Office Install Folder +If NOT RegReadValue(HKLM,"SOFTWARE\Microsoft\Office\"&OVERSION&"\Common\InstallRoot","Path",sOInstallRoot,"REG_SZ") Then + sOInstallRoot = sProgramFiles & "\Microsoft Office\"&OREF +End If + +'Ensure integrity of WI metadata which could fail used APIs otherwise +EnsureValidWIMetadata HKCU,"Software\Classes\Installer\Products",COMPRESSED +EnsureValidWIMetadata HKCR,"Installer\Products",COMPRESSED +EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products",COMPRESSED +EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components",COMPRESSED +EnsureValidWIMetadata HKCR,"Installer\Components",COMPRESSED + +'Add initial known .exe files that might need to be closed +dicApps.Add "communicator.exe", "communicator.exe" +dicApps.Add "setup.exe", "setup.exe" +Select Case OVERSIONMAJOR +Case "12" +Case "14" + dicApps.Add "bcssync.exe","bcssync.exe" + dicApps.Add "officesas.exe","officesas.exe" + dicApps.Add "officesasscheduler.exe","officesasscheduler.exe" + dicApps.Add "msosync.exe","msosync.exe" + dicApps.Add "onenotem.exe","onenotem.exe" +Case "15" +Case Else +End Select + +'------------------- +'Stage # 0 - Basics | +'------------------- +'Build a list with installed/registered Office products +sTmp = "Stage # 0 " & chr(34) & "Basics" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf + +FindInstalledOProducts +If dicInstalledSku.Count > 0 Then Log "Found registered product(s): " & Join(RemoveDuplicates(dicInstalledSku.Items),",") &vbCrLf + +'Validate the list of products we got from the command line if applicable +ValidateRemoveSkuList + +'Log detection results +If dicRemoveSku.Count > 0 Then Log "Product(s) to be removed: " & Join(RemoveDuplicates(dicRemoveSku.Items),",") +sMode = "Selected " & ONAME & " products" +If NOT dicRemoveSku.Count > 0 Then sMode = "Orphaned " & ONAME & " products" +If fRemoveAll Then sMode = "All " & ONAME & " products" +Log "Final removal mode: " & sMode +Log "Remove OSE service: " & fRemoveOse &vbCrLf + +'Log preview mode if applicable +If fDetectOnly Then Log "*************************************************************************" +If fDetectOnly Then Log "* PREVIEW MODE *" +If fDetectOnly Then Log "* All uninstall and delete operations will only be logged not executed! *" +If fDetectOnly Then Log "*************************************************************************" & vbCrLf + +'Check if there are legacy products installed +CheckForLegacyProducts +If fLegacyProductFound Then Log "Found legacy Office products that will not be removed." Else Log "No legacy Office products found." + +'Cache .msi files +If dicRemoveSku.Count > 0 Then CacheMsiFiles + +'Log Sku/Prod detection results +LogSkuResults + +'UnPin Shortcuts +If NOT fSkipSD AND dicRemoveSku.Count > 0 Then + On Error Resume Next + Log " Searching for pinned shortcuts" + CleanShortcuts sAllUsersProfile, False, True + CleanShortcuts sProfilesDirectory, False, True + On Error Goto 0 +End If 'NOT SkipSD + + +'-------------------------------- +'Stage # 1 - Component Detection | +'-------------------------------- +sTmp = "Stage # 1 " & chr(34) & "Component Detection" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage1 OR fForce Then + 'Build a list with files which are installed/registered to a product that's going to be removed + Log "Prepare for CleanUp stages." + Log "Identifying removable elements. This can take several minutes." + ScanComponents +Else + Log "Not running Component Detection in default removal." +End If + +'End all running Office applications +If fForce OR fQuiet OR fPassive Then CloseOfficeApps + +'---------------------- +'Stage # 2 - Setup.exe | +'---------------------- +sTmp = "Stage # 2 " & chr(34) & "Setup.exe" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage2 Then + SetupExeRemoval +Else + Log "Skipping Setup.exe because bypass was requested." +End If + +'------------------------ +'Stage # 3 - Msiexec.exe | +'------------------------ +sTmp = "Stage # 3 " & chr(34) & "Msiexec.exe" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage3 Then + MsiexecRemoval +Else + Log "Skipping Msiexec.exe because bypass was requested." +End If + +'-------------------- +'Stage # 4 - CleanUp | +'-------------------- +'Removal of files and registry settings +sTmp = "Stage # 4 " & chr(34) & "CleanUp" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage4 Then + + 'Office Source Engine + If fRemoveOse Then RemoveOSE + + 'Local Installation Source (MSOCache) + WipeLIS + + 'Obsolete files + If fRemoveAll Then + FileWipeAll + Else + FileWipeIndividual + End If + + 'Empty Folders + DeleteEmptyFolders + + 'Restore Explorer if needed + If fForce OR fQuiet OR fPassive Then RestoreExplorer + + 'Registry data + RegWipe + + 'Wipe orphaned files from Windows Installer cache + MsiClearOrphanedFiles + + 'Temporary .msi files in scrubcache + DeleteMsiScrubCache + + 'Temporary files + DelScrubTmp + +Else + Log "Skipping CleanUp because bypass was requested." +End If + +If Not sMoveMessage = "" Then Log vbCrLf & "Please remove this folder after next reboot: " & sMoveMessage + +'THE END +Log vbCrLf & "End removal: " & Now & vbCrLf +Log vbCrLf & "For detailed logging please refer to the log in folder " &chr(34)&sScrubDir&chr(34)&vbCrLf + +If fRebootRequired Then + Log vbCrLf & "A restart is required to complete the operation!" + If NOT (fQuiet OR fPassive OR fNoReboot) Then + If MsgBox("Do you want to reboot now?",vbYesNo,"Reboot Required") = VB_YES Then + Dim colOS, oOS + Dim oWmiReboot + Set oWmiReboot = GetObject("winmgmts:{{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2") + Set colOS = oWmiReboot.ExecQuery ("Select * from Win32_OperatingSystem") + For Each oOS in colOS + oOS.Reboot() + Next + End If + End If +End If + +If NOT (fQuiet OR fPassive) Then + For Each Item in Wscript.Arguments + If Item = "UAC" Then + If fCscript Then wscript.stdout.write "Press to close this window" + sTemp = wscript.stdin.read(1) + End If + Next 'Argument +End If +'======================================================================================================= +'======================================================================================================= + +'Stage 0 - 4 Subroutines +'======================================================================================================= + +'Office configuration products are listed with their configuration product name in the "Uninstall" key +'To identify an Office configuration product all of these condiditions have to be met: +' - "SystemComponent" does not have a value of "1" (DWORD) +' - "OPACKAGE" (see constant declaration) entry exists and is not empty +' - "DisplayVersion" exists and the 2 leftmost digits are "OVERSIONMAJOR" +Sub FindInstalledOProducts + Dim ArpItem, File + Dim sCurKey, sValue, sConfigName, sProdC, sCVHValue + Dim sProductCodeList, sProductCode + Dim arrKeys, arrMultiSzValues + Dim fSystemComponent0, fPackages, fDisplayVersion, fReturn, fCategorized + + If dicInstalledSku.Count > 0 Then Exit Sub 'Already done from InputBox prompt + + 'Handle orphaned products to get them added to the detection scope + If fTryReconcile Then + For Each File in oFso.GetFolder(sWICacheDir).Files + If Len(File.Name)>3 Then + Select Case LCase(Right(File.Name, 4)) + Case ".msi" + sProductCode = "" + sProductCode = GetMsiProductCode(File.Path) + If InScope(sProductCode) Then + If NOT RegKeyExists(HKLM, REG_ARP & sProductCode) Then + 'Ensure the orphaned item is getting removed + If Len(sSkuRemoveList) > 0 Then + sSkuRemoveList = sSkuRemoveList & "," & GetProductID(Mid(sProductCode, 11, 4)) + Else + sSkuRemoveList = GetProductID(Mid(sProductCode, 11, 4)) + End If + 'Add to ScrubDir + oFso.CopyFile File.Path,sScrubDir & "\" & sProductCode & ".msi",True + 'Register the product with MSI + MsiRegisterProduct File.Path + End If 'NOT sProductCode + End If 'InScope + Case Else + End Select + End If '>3 + Next 'File + End If 'fTryReconcile + + 'Locate standalone Office products that have no configuration product entry and create a + 'temporary configuration entry + ReDim arrTmpSKUs(-1) + If RegEnumKey(HKLM, REG_ARP, arrKeys) Then + For Each ArpItem in arrKeys + If InScope(ArpItem) Then + sCurKey = REG_ARP & ArpItem & "\" + fSystemComponent0 = Not (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) + If fSystemComponent0 Then + RegReadValue HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ" + Redim arrMultiSzValues(0) + 'Logic changed to drop the LCID identifier + 'sConfigName = GetProductID(Mid(ArpItem,11,4)) & "_" & CInt("&h" & Mid(ArpItem,16,4)) + sConfigName = OREGREF & GetProductID(Mid(ArpItem, 11, 4)) + If NOT RegKeyExists(HKLM, REG_ARP&sConfigName) Then + 'Create a new ARP item + ReDim Preserve arrTmpSKUs(UBound(arrTmpSKUs) + 1) + arrTmpSKUs(UBound(arrTmpSKUs)) = sConfigName + oReg.CreateKey HKLM, REG_ARP & sConfigName + arrMultiSzValues(0) = sConfigName + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, OPACKAGE, arrMultiSzValues + arrMultiSzValues(0) = ArpItem + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "Comment", "Temporary OffScrub generated key. Please delete this key!" + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", arrMultiSzValues + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayVersion", sValue + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayName", SCRIPTNAME & "_" & sConfigName + oReg.SetDWordValue HKLM, REG_ARP & sConfigName, "SystemComponent", 0 + Else + 'Update the existing temporary ARP item + fReturn = RegReadValue(HKLM, REG_ARP&sConfigName, "ProductCodes", sProdC, "REG_MULTI_SZ") + If NOT InStr(sProdC, ArpItem) > 0 Then sProdC = sProdC & chr(34) & ArpItem + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", Split(sProdC, Chr(34)) + End If 'RegKeyExists + End If 'fSystemComponent0 + End If 'InScope + Next 'ArpItem + End If 'RegEnumKey + + 'Find the configuration products + If RegEnumKey(HKLM, REG_ARP, arrKeys) Then + For Each ArpItem in arrKeys + sCurKey = REG_ARP & ArpItem & "\" + sValue = "" + fSystemComponent0 = NOT (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) + fPackages = RegReadValue(HKLM, sCurKey, OPACKAGE, sValue, "REG_MULTI_SZ") + fDisplayVersion = RegReadValue(HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ") + If fDisplayVersion Then + If Len(sValue) > 1 Then + fDisplayVersion = (Left(sValue, 2) = OVERSIONMAJOR) + Else + fDisplayVersion = False + End If + End If + 'fSystemComponent0 filter causes issues if the ARP entries have been hidden + 'If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then + If (fPackages AND fDisplayVersion) Then + If InStr(ArpItem,".") > 0 Then sConfigName = UCase(Mid(ArpItem, InStr(ArpItem, ".") + 1)) Else sConfigName = UCase(ArpItem) + If NOT dicInstalledSku.Exists(sConfigName) Then dicInstalledSku.Add sConfigName, sConfigName + + 'Categorize the SKU + 'Four categories are available: ClientSuite, ClientSingleProduct, Server, C2R + If RegReadValue(HKLM, REG_ARP & OREGREF & sConfigName, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then + fCategorized = False + For Each sProductCode in Split(sProductCodeList, Chr(34)) + If Len(sProductCode) = 38 Then + If Mid(sProductCode, 11, 1) = "1" Then + 'Server product + If NOT dicSrv.Exists(UCase(sConfigName)) Then dicSrv.Add UCase(sConfigName), sConfigName + fCategorized = True + Exit For + Else + Select Case Mid(sProductCode, 11, 4) + 'Client Suites + Case "000F","0011","0012","0013","0014","0015","0016","0017","0018","0019","001A","001B","0029","002B","002E","002F","0030","0031","0033","0035","0037","003D","0044","0049","0061","0062","0066","006C","006D","006F","0074","00A1","00A3","00A9","00BA","00CA","00E0","0100","0103","011A" + If NOT dicCSuite.Exists(UCase(sConfigName)) Then dicCSuite.Add UCase(sConfigName), sConfigName + fCategorized = True + Exit For + + Case "007E", "008F", "008C", "24E1", "237A" + If NOT dictionaryKeepProd.Exists(sProductCode) Then dictionaryKeepProd.Add sProductCode, sConfigName + fC2rInstalled = True + Case Else + End Select + End If + End If 'Len 38 + Next 'sProductCode + If NOT fCategorized Then + If NOT dicCSingle.Exists(UCase(sConfigName)) Then dicCSingle.Add UCase(sConfigName), sConfigName + End If 'fCategorized + End If 'RegReadValue "ProductCodes" + End If + Next 'ArpItem + End If 'RegEnumKey +End Sub 'FindInstalledOProducts +'======================================================================================================= + +'Check if there are Office products from previous versions on the computer +Sub CheckForLegacyProducts + Const OLEGACY = "78E1-11D2-B60F-006097C998E7}.6000-11D3-8CFE-0050048383C9}.6000-11D3-8CFE-0150048383C9}.BDCA-11D1-B7AE-00C04FB92F3D}.6D54-11D4-BEE3-00C04F990354}" + Dim Product + + 'Set safe default + fLegacyProductFound = True + + For Each Product in oMsi.Products + If Len(Product) = 38 Then + 'Handle O09 - O11 Products + If InStr(OLEGACY, UCase(Right(Product, 28))) > 0 Then + 'Found legacy Office product. Keep flag in default and exit + Exit Sub + End If + If UCase(Right(Product,PRODLEN)) = OFFICEID Then + Select Case Mid(Product,4,2) + Case "12", "14" + 'Found legacy Office product. Keep flag in default and exit + Exit Sub + Case Else + End Select + End If + End If '38 + Next 'Product + fLegacyProductFound = False + +End Sub 'CheckForLegacyProducts +'======================================================================================================= + +'Create clean list of Products to remove. +'Strip off bad & empty contents +Sub ValidateRemoveSkuList + Dim Sku, Key, sProductCode, sProductCodeList + Dim arrRemoveSKUs + + If fRemoveAll Then + 'Remove all mode + For Each Key in dicInstalledSku.Keys + dicRemoveSku.Add Key,dicInstalledSku.Item(Key) + Next 'Key + Else + 'Remove individual products or preconfigured configurations mode + + 'Ensure to have a string with no unexpected contents + sSkuRemoveList = Replace(sSkuRemoveList,";",",") + sSkuRemoveList = Replace(sSkuRemoveList," ","") + sSkuRemoveList = Replace(sSkuRemoveList,Chr(34),"") + While InStr(sSkuRemoveList,",,")>0 + sSkuRemoveList = Replace(sSkuRemoveList,",,",",") + Wend + + 'Prepare 'remove' and 'keep' dictionaries to determine what has to be removed + + 'Initial pre-fill of 'keep' dic + For Each Key in dicInstalledSku.Keys + dictionaryKeepSku.Add Key,dicInstalledSku.Item(Key) + Next 'Key + + 'Determine contents of keep and remove dic + 'Individual products + arrRemoveSKUs = Split(UCase(sSkuRemoveList),",") + For Each Sku in arrRemoveSKUs + If Sku = "OSE" Then fRemoveOse = True + If dictionaryKeepSku.Exists(Sku) Then + 'A Sku to remove has been passed in + 'remove the item from the keep dic + dictionaryKeepSku.Remove(Sku) + 'Now add it to the remove dic + If NOT dicRemoveSku.Exists(Sku) Then dicRemoveSku.Add Sku,Sku + End If + Next 'Sku + + 'Client Suite Category + If fRemoveCSuites Then + For Each Key in dicInstalledSku.Keys + If dicCSuite.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveCSuites + + 'Client Single/Standalone Category + If fRemoveCSingle Then + For Each Key in dicInstalledSku.Keys + If dicCSingle.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveCSingle + + 'Server Category + If fRemoveSrv Then + For Each Key in dicInstalledSku.Keys + If dicSrv.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveSrv + + If NOT dictionaryKeepSku.Count > 0 Then fRemoveAll = True + + End If 'fRemoveAll + + 'Fill the KeepProd dic + For Each Sku in dictionaryKeepSku.Keys + If RegReadValue(HKLM, REG_ARP & OREGREF & Sku, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then + For Each sProductCode in Split(sProductCodeList, chr(34)) + If Len(sProductCode) = 38 Then + If NOT dictionaryKeepProd.Exists(sProductCode) Then + dictionaryKeepProd.Add sProductCode, Sku + ' also add the UpgradeCode + If Not dictionaryKeepProd.Exists(GetUpgradeCode(sProductCode)) Then dictionaryKeepProd.Add GetUpgradeCode(sProductCode), Sku & "_UpgradeCode" + End If + End If '38 + Next 'sProductCode + End If + Next 'Sku + + If fRemoveAll OR fRemoveOse Then CheckRemoveOSE + If fRemoveAll OR fRemoveOspp Then CheckRemoveOspp + +End Sub 'ValidateRemoveSkuList +'======================================================================================================= + +'Check if OSE service can be scrubbed +Sub CheckRemoveOSE + Const O11 = "6000-11D3-8CFE-0150048383C9}" + Dim Product + + If fRemoveOse Then Exit Sub + For Each Product in oMsi.Products + If Len(Product) = 38 Then + If UCase(Right(Product, 28)) = O11 Then + 'Found Office 2003 Product. Set flag to not remove the OSE service + Exit Sub + End If + If UCase(Right(Product, PRODLEN))= OFFICEID Then + Select Case Mid(Product, 4, 2) + Case "12","14","15","16","17" + If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then + 'Found another Office product. Set flag to keep the OSE service + fRemoveOse = False + Exit Sub + End If + Case Else + End Select + End If + End If '38 + Next 'Product + fRemoveOse = True +End Sub 'CheckRemoveOSE +'======================================================================================================= + +'Check if OSPP service can be scrubbed +Sub CheckRemoveOSPP + Dim Product + + If NOT CInt(OVERSIONMAJOR) > 12 Then + fRemoveOspp = False + Exit Sub + End If + + If fRemoveOspp Then Exit Sub + + If fC2rInstalled Then + fRemoveOspp = False + Exit Sub + End If + + For Each Product in oMsi.Products + If Len(Product) = 38 Then + If UCase(Right(Product, PRODLEN)) = OFFICEID Then + Select Case Mid(Product, 4, 2) + Case "14","15","16","17" + If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then + 'Found another Office product. Set flag to keep the OSPP service + fRemoveOspp = False + Exit Sub + End If + Case Else + End Select + End If + End If '38 + Next 'Product + fRemoveOspp = True +End Sub 'CheckRemoveOSPP +'======================================================================================================= + +'Cache .msi files for products that will be removed in case they are needed for later file detection +Sub CacheMsiFiles + Dim Product + Dim sMsiFile + + 'Non critical routine for failures. + 'Errors will be logged but must not fail the execution + On Error Resume Next + Log " Cache .msi files to temporary Scrub folder" + 'Cache the files + For Each Product in oMsi.Products + 'Ensure valid GUID length + If CheckDeleteEx(Product) Then + CheckError "CacheMsiFiles" + sMsiFile = oMsi.ProductInfo(Product,"LocalPackage") : CheckError "CacheMsiFiles" + LogOnly " - " & Product & ".msi" + If oFso.FileExists(sMsiFile) Then oFso.CopyFile sMsiFile,sScrubDir & "\" & Product & ".msi",True + CheckError "CacheMsiFiles" + End If 'InScope + Next 'Product + + Err.Clear +End Sub 'CacheMsiFiles +'======================================================================================================= + +'Build a list of all files that will be deleted +Sub ScanComponents + Const MSIINSTALLSTATE_LOCAL = 3 + + Dim FileList, RegList, ComponentID, CompClient, Record, qView, MsiDb, CompVerbose + Dim Processes, Process, Prop, prod + Dim sQuery, sSubKeyName, sPath, sFile, sMsiFile, sCompClient, sComponent, sCompReg + Dim fRemoveComponent, fAffectedComponent, fIsPermanent, fIsFile, fIsFolder + Dim i, iProgress, iCompCnt, iRemCnt + Dim dicFLError, oDic, oFolderDic, dicCompPath + Dim hDefKey + + 'Logfile + Set FileList = oFso.OpenTextFile(sScrubDir & "\FileList.txt",FOR_WRITING,True,True) + Set RegList = oFso.OpenTextFile(sScrubDir & "\RegList.txt",FOR_WRITING,True,True) + Set CompVerbose = oFso.OpenTextFile(sScrubDir & "\CompVerbose.txt",FOR_WRITING,True,True) + + 'FileListError dic + Set dicFLError = CreateObject("Scripting.Dictionary") + + Set oDic = CreateObject("Scripting.Dictionary") + Set oFolderDic = CreateObject("Scripting.Dictionary") + Set dicCompPath = CreateObject("Scripting.Dictionary") + + 'Prevent that API errors fail script execution + On Error Resume Next + + iCompCnt = oMsi.Components.Count + If NOT Err = 0 Then + 'API failure + Log "Error during components detection. Cannot complete this task." + Err.Clear + Exit Sub + End If + + 'Ensure to not divide by zero + If iCompCnt = 0 Then iCompCnt = 1 + LogOnly " Scanning " & iCompCnt & " components" + 'Enum all Components + For Each ComponentID In oMsi.Components + CompVerbose.WriteLine vbCrLf & "Checking Component: " & ComponentID + + 'Progress bar + i = i + 1 + If iProgress < (i / iCompCnt) * 100 Then + If fCScript Then wscript.stdout.write "." : LogStream.Write "." + iProgress = iProgress + 1 + If iProgress = 35 OR iProgress = 70 Then Log "" + End If + + 'Check if all ComponentClients will be removed + sCompClient = "" + iRemCnt = 0 + fIsPermanent = False + fRemoveComponent = False 'Flag to track if the component will be completely removed + fAffectedComponent = False 'Flag to track if some clients remain installed who have a none shared location + dicCompPath.RemoveAll + Err.Clear + For Each CompClient In oMsi.ComponentClients(ComponentID) + CompVerbose.Write " CompClient " & CompClient & "-> " + If Err = 0 Then + 'Ensure valid guid length + If Len(CompClient) = 38 Then + fRemoveComponent = InScope(CompClient) + If fRemoveComponent OR (CompClient = "{{00000000-0000-0000-0000-000000000000}") Then + sPath = "" + sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + 'Scan for msidbComponentAttributesPermanent flag + If CompClient = "{{00000000-0000-0000-0000-000000000000}" Then + fIsPermanent = True + iRemCnt = iRemCnt + 1 + End If + If fRemoveComponent Then fRemoveComponent = CheckDelete(CompClient) + CompVerbose.Write "CheckDelete: " & fRemoveComponent & "; " + If fRemoveComponent Then + iRemCnt = iRemCnt + 1 + fAffectedComponent = True + 'Since the scope remains within one Office family the keypath for the component + 'is assumed to be identical + If sCompClient = "" Then sCompClient = CompClient + ' flag the CompClient entry for removal + sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKCR + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKLM + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + Else + If NOT dicCompPath.Exists(sPath) Then dicCompPath.Add sPath,CompClient + End If + CompVerbose.WriteLine "AffectedComponent: " & fAffectedComponent + CompVerbose.WriteLine " CompClient now set to: " & sCompClient + Else + CompVerbose.Write "InScope: " & fRemoveComponent & "; " + End If + Else + CompVerbose.WriteLine "Error: Invalid metadata" + If NOT dicFLError.Exists("Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient) Then _ + dicFLError.Add "Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient, ComponentID + End If '38 + Else + CompVerbose.WriteLine "Error: " & Err.number & " " & Err.Description + Err.Clear + End If 'Err = 0 + Next 'CompClient + + 'Determine if the component resources go away + sPath = "" + fRemoveComponent = fAffectedComponent AND (iRemCnt = oMsi.ComponentClients(ComponentID).Count) + CompVerbose.WriteLine " Component goes away: " & fRemoveComponent +' This caused unintentional removals +' If NOT fRemoveComponent AND fAffectedComponent Then +' 'Flag as removable if component has a unique keypath +' sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) +' sPath = Replace(sPath,"?",":") +' fRemoveComponent = NOT dicCompPath.Exists(sPath) +' End If + If fRemoveComponent Then + 'Check msidbComponentAttributesPermanent flag + If fIsPermanent AND NOT fForce Then fRemoveComponent = False + CompVerbose.WriteLine " msidbComponentAttributesPermanent: " & NOT fRemoveComponent + End If + + If fRemoveComponent Then + CompVerbose.WriteLine " RESULT: Component IN SCOPE for removal" + fIsFile = False : fIsFolder = False + + 'Component resources go away for this product + Err.Clear + 'Add the component registration key to ensure removal + sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\" + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKCR + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\" + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKLM + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + 'Get the component path + If sPath = "" Then + sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + End If + CompVerbose.WriteLine " Path: " & sPath + If Len(sPath) > 4 Then + If Left(sPath,1) = "0" Then + 'Registry keypath + + Select Case Left(sPath,2) + Case "00" + sPath = Mid(sPath,5) + hDefKey = HKCR + Case "01" + sPath = Mid(sPath,5) + hDefKey = HKCU + Case "02","22" + sPath = Mid(sPath,5) + hDefKey = HKLM + Case Else + ' + End Select + + 'Go for the safe way and just reset the default entry + 'compared to deleting the whole key + If Right(sPath,1) = "\" Then sPath = sPath & "(Default)" + + If NOT dicDelRegKey.Exists(sPath) Then + dicDelRegKey.Add sPath,hDefKey + RegList.WriteLine HiveString(hDefKey)&"\"&sPath + End If + Else + + 'File or Folder + If oFso.FileExists(sPath) OR oFso.FolderExists(sPath) Then + If Right(sPath,1) = "\" Then + fIsFolder = True + CompVerbose.WriteLine " Folder check OK" + Else + fIsFile = True + CompVerbose.WriteLine " File check OK" + End If + If fIsFile Then sPath = oFso.GetFile(sPath).ParentFolder + If Not oFolderDic.Exists(sPath) Then + oFolderDic.Add sPath,sPath + FileList.WriteLine sPath & vbTab & "(FOLDER)" + End If + 'Get the .msi file + If oFso.FileExists(sScrubDir & "\" & sCompClient & ".msi") Then + sMsiFile = sScrubDir & "\" & sCompClient & ".msi" + Else + sMsiFile = oMsi.ProductInfo(sCompClient,"LocalPackage") + End If + CompVerbose.WriteLine " Set msi file to : " & sMsiFile + If Not Err = 0 Then + CompVerbose.WriteLine " Error: Failed to obtain .msi file for product " & sCompClient + If NOT dicFLError.Exists("Failed to obtain .msi file for product "&sCompClient) Then _ + dicFLError.Add "Failed to obtain .msi file for product "&sCompClient, ComponentID + Err.Clear + End If + CompVerbose.Write " Open .msi file for reading returned: " + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + + If Err = 0 Then + CompVerbose.WriteLine " SUCCESS" + 'Get the component name from the 'Component' table + sQuery = "SELECT `Component`,`ComponentId` FROM Component WHERE `ComponentId` = '" & ComponentID &"'" + Set qView = MsiDb.OpenView(sQuery) : qView.Execute + Set Record = qView.Fetch() + If Not Record Is Nothing Then sComponent = Record.Stringdata(1) + CompVerbose.WriteLine " Obtained ComponentId as: " & sComponent + + 'Get filenames from the 'File' table + sQuery = "SELECT `Component_`,`FileName` FROM File WHERE `Component_` = '" & sComponent &"'" + Set qView = MsiDb.OpenView(sQuery) : qView.Execute + Set Record = qView.Fetch() + Do Until Record Is Nothing + 'Read the filename + sFile = Record.StringData(2) + If InStr(sFile,"|") > 0 Then sFile = Mid(sFile,InStr(sFile,"|")+1,Len(sFile)) + 'sFile = sPath & "\" & sFile + CompVerbose.WriteLine " File: " & sPath& "\" & sFile + If Not oDic.Exists(sPath & "\" & sFile) Then + 'Exception handler + fAdd = True + Select Case UCase(sFile) + Case "FPERSON.DLL" + 'Catch exception caused by changed .msi keypath authoring logic for smart tags + For Each prod in oMsi.Products + If NOT Checkdelete(prod) Then + If oMsi.FeatureState(prod, "MSTagPluginNamesFiles") = MSIINSTALLSTATE_LOCAL Then + fAdd = False + Exit For + End If + End If + Next 'prod + Case Else + End Select + If fAdd Then + CompVerbose.WriteLine " Added as new file to dictionary" + oDic.Add sPath & "\" & sFile,sFile + FileList.WriteLine sFile & vbTab & sPath & "\" & sFile + If Len(sFile)>4 Then + sFile = LCase(sFile) + If Right(sFile,4) = ".exe" Then + If NOT dicApps.Exists(sFile) Then + Select Case sFile + Case "setup.exe","ose.exe","osppsvc.exe","explorer.exe" + Case Else + dicApps.Add sFile,LCase(sPath) & "\" & sFile + CompVerbose.WriteLine " Added to the list of processes that need to be closed." + End Select + End If 'dicApps.Exists + End If '.exe + End If 'Len > 4 + End If 'fAdd + End If 'oDic.Exists + Set Record = qView.Fetch() + Loop + Set Record = Nothing + qView.Close + Set qView = Nothing + Else + CompVerbose.WriteLine " Error: Could not read from .msi file" + If NOT dicFLError.Exists("Error: Could not read from .msi file: "&sMsiFile) Then _ + dicFLError.Add "Error: Could not read from .msi file: "&sMsiFile, ComponentID + Err.Clear + End If 'Err = 0 + Else + CompVerbose.WriteLine " Error: File check FAILED" + End If 'FileExists(sPath) + End If + End If 'Len(sPath) > 4 + Else + CompVerbose.WriteLine " RESULT: Component NOT in scope for removal" + If fAffectedComponent Then + 'Add the path to the 'Keep' dictionary + Err.Clear + For Each CompClient In oMsi.ComponentClients(ComponentID) + 'Get the component path + sPath = "" : sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + + If Len(sPath) > 4 Then + If Left(sPath,1) = "0" Then + 'Registry keypath + + Select Case Left(sPath,2) + Case "00" + sPath = Mid(sPath,5) + hDefKey = HKCR + Case "01" + sPath = Mid(sPath,5) + hDefKey = HKCU + Case "02","22" + sPath = Mid(sPath,5) + hDefKey = HKLM + Case Else + ' + End Select + If NOT dictionaryKeepReg.Exists(LCase(sPath)) Then + dictionaryKeepReg.Add LCase(sPath),hDefKey + End If + Else + 'File keypath + If oFso.FileExists(sPath) Then + If NOT dictionaryKeepFolder.Exists(LCase(sPath)) Then dictionaryKeepFolder.Add LCase(sPath) + sPath = LCase(oFso.GetFile(sPath).ParentFolder) & "\" + If NOT dictionaryKeepFolder.Exists(sPath) Then AddKeepFolder sPath + End If + 'Folder keypath + If oFso.FolderExists(sPath) Then AddKeepFolder sPath + End If 'Is Registry + End If 'sPath > 4 + Next 'CompClient + End If 'fAffectedComponent + End If 'fRemoveComponent + Err.Clear + Next 'ComponentID + On Error Goto 0 + + Log " Done" & vbCrLf + If dicFLError.Count > 0 Then LogOnly Join(dicFLError.Keys,vbCrLf) + If Not oFolderDic.Count = 0 Then arrDeleteFolders = oFolderDic.Keys Else Set arrDeleteFolders = Nothing + If Not oDic.Count = 0 Then arrDeleteFiles = oDic.Keys Else Set arrDeleteFiles = Nothing +End Sub 'ScanComponents +'======================================================================================================= + + +'Try to remove the products by calling setup.exe +Sub SetupExeRemoval + Dim OseService, Service, TextStream + Dim iSetupCnt, RetVal + Dim Sku, sConfigFile, sUninstallCmd, sCatalyst, sDll, sDisplayLevel, sNoCancel + iSetupCnt = 0 + If Not dicRemoveSku.Count > 0 Then + Log " Nothing to remove for Setup.exe" + Exit Sub + End If + + 'Ensure that the OSE service is *installed, *not disabled, *running under System context. + 'If validation fails exit out of this sub. + Set OseService = oWmiLocal.Execquery("Select * From Win32_Service Where Name like 'ose%'") + If OseService.Count = 0 Then Exit Sub + For Each Service in OseService + If (Service.StartMode = "Disabled") AND (Not Service.ChangeStartMode("Manual")=0) Then Exit Sub + If (Not Service.StartName = "LocalSystem") AND (Service.Change( , , , , , , "LocalSystem", "")) Then Exit Sub + Next 'Service + + For Each Sku in dicRemoveSku.Keys + + If Sku="CLICK2RUN" Then + 'Already done + Else + 'Create an "unattended" config.xml file for uninstall + If fQuiet Then sDisplayLevel = "None" Else sDisplayLevel="Basic" + If fNoCancel Then sNoCancel="Yes" Else sNoCancel="No" + Set TextStream = oFso.OpenTextFile(sScrubDir & "\config.xml",FOR_WRITING,True,True) + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Close + Set TextStream = Nothing + + 'Ensure path to setup.exe is valid to prevent errors + sDll = "" + If RegReadValue(HKLM,REG_ARP & OREGREF & Sku,"UninstallString",sCatalyst,"REG_SZ") Then + If InStr(LCase(sCatalyst),"/dll")>0 Then sDll = Right(sCatalyst,Len(sCatalyst)-InStr(LCase(sCatalyst),"/dll")+2) + If InStr(sCatalyst,"/")>0 Then sCatalyst = Left(sCatalyst,InStr(sCatalyst,"/")-1) + sCatalyst = Trim(Replace(sCatalyst,Chr(34),"")) + If NOT oFso.FileExists(sCatalyst) Then + sCatalyst = sCommonProgramFiles & "\" & OREF & "\Office Setup Controller\setup.exe" + If NOT oFso.FileExists(sCatalyst) AND f64 Then + sCatalyst = sCommonProgramFilesX86 & "" & OREF & "\Office Setup Controller\setup.exe" + End If + End If + If oFso.FileExists(sCatalyst) Then + sUninstallCmd = Chr(34) & sCatalyst & Chr(34) & " /uninstall " & Sku & " /config " & Chr(34) & sScrubDir & "\config.xml" & Chr(34) & sDll + iSetupCnt = iSetupCnt + 1 + Log " - Calling Setup.exe to remove " & Sku '& vbCrLf & sUninstallCmd + If Not fDetectOnly Then + On Error Resume Next + ' end other instances of setup + EndCurrentInstalls + ' call uninstall + RetVal = oWShell.Run(sUninstallCmd,0,True) : CheckError "SetupExeRemoval" + Log " - Setup.exe returned: " & SetupRetVal(Retval) & " (" & RetVal & ")" & vbCrLf + fRebootRequired = fRebootRequired OR (RetVal = "3010") + On Error Goto 0 + Else + Log " -> Removal suppressed in preview mode." + End If + Else + Log " Error: Office setup.exe appears to be missing" + End If 'RetVal = 0) AND oFso.FileExists + End If 'RegReadValue + End If + Next 'Sku + If iSetupCnt = 0 Then Log " Nothing to remove for setup." +End Sub 'SetupExeRemoval +'======================================================================================================= + +'Invoke msiexec to remove individual .MSI packages +Sub MsiexecRemoval + + Dim Product + Dim i + Dim sCmd, sReturn, sMsiProp + Dim fRegWipe + + fRegWipe = False + + Select Case OVERSIONMAJOR + Case "11" + sMsiProp = " REBOOT=ReallySuppress NOLOCALCACHEROLLBACK=1" + Case "12" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case "14" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case "15" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case Else + End Select + + 'Clear up ARP first to avoid possible custom action dependencies + If fRegWipe Then RegWipeARP + + 'Check MSI registered products + 'Office System does only support per machine installation so it's sufficient to use Installer.Products + i = 0 + sMsiProp = " MSIRESTARTMANAGERCONTROL=Disable" & sMsiProp + For Each Product in oMsi.Products + If CheckDeleteEx(Product) Then + i = i + 1 + Log " Calling msiexec.exe to remove " & Product + sCmd = "msiexec.exe /x" & Product & sMsiProp + If fQuiet AND NOT fBasic Then + sCmd = sCmd & " /q" + Else + sCmd = sCmd & " /qb-" + End If + sCmd = sCmd & " /l*v+ "&chr(34)&sLogDir&"\Uninstall_"&Product&".log"&chr(34) + If NOT fDetectOnly Then + ' end other instances of setup + EndCurrentInstalls + + 'Execute the uninstall + LogOnly " - Calling msiexec with '"&sCmd&"'" + sReturn = oWShell.Run(sCmd, 0, True) + Log " - msiexec returned: " & SetupRetVal(sReturn) & " (" & sReturn & ")" & vbCrLf + fRebootRequired = fRebootRequired OR (sReturn = "3010") OR (sReturn = "1618") + Else + Log " -> Removal suppressed in preview mode." + LogOnly " -> Command: "&sCmd + End If + End If 'InScope + Next 'Product + If i = 0 Then Log " Nothing to remove for msiexec" +End Sub 'MsiexecRemoval +'======================================================================================================= + +'Remove the OSE (Office Source Engine) service +Sub RemoveOSE + On Error Resume Next + Log vbCrLf & "OSE CleanUp" + DeleteService "ose" + 'Delete the folder + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\Source Engine" + 'Delete the registration + RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\ose\" +End Sub 'RemoveOSE +'======================================================================================================= + + +'File cleanup operations for the Local Installation Source (MSOCache) +Sub WipeLIS + Const LISROOT = "MSOCache\All Users\" + Dim LogicalDisks, Disk, Folder, SubFolder, MseFolder, File, Files + Dim arrSubFolders + Dim sFolder + Dim fRemoveFolder + + Log vbCrLf & "LIS CleanUp" + 'Search all hard disks + Set LogicalDisks = oWmiLocal.ExecQuery("Select * From Win32_LogicalDisk WHERE DriveType=3") + For Each Disk in LogicalDisks + If oFso.FolderExists(Disk.DeviceID & "\" & LISROOT) Then + Set Folder = oFso.GetFolder(Disk.DeviceID & "\" & LISROOT) + For Each Subfolder in Folder.Subfolders + If Len(Subfolder) > 37 Then + If fRemoveAll Then + If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) OR _ + LCase(Right(Subfolder.Name,7)) = OVERSIONMAJOR &".data" Then DeleteFolder Subfolder.Path + Else + If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) AND _ + CheckDelete(UCase(Left(Subfolder.Name,38))) AND _ + UCase(Right(Subfolder,1))= UCase(Left(Disk.DeviceID,1))Then DeleteFolder Subfolder.Path + End If + End If 'Len > 37 + Next 'Subfolder + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + sFolder = Folder.Path + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If 'oFso.FolderExists + Next 'Disk + + 'MSECache + If EnumFolders(sProgramFiles,arrSubFolders) Then + For Each SubFolder in arrSubFolders + If UCase(Right(SubFolder,9))="\MSECACHE" Then + ReDim arrMseFolders(-1) + Set Folder = oFso.GetFolder(SubFolder) + GetMseFolderStructure Folder + For Each MseFolder in arrMseFolders + If oFso.FolderExists(MseFolder) Then + fRemoveFolder = False + Set Folder = oFso.GetFolder(MseFolder) + Set Files = Folder.Files + For Each File in Files + If (LCase(Right(File.Name,4))=".msi") Then + If CheckDelete(ProductCode(File.Path)) Then + fRemoveFolder = True + Exit For + End If 'CheckDelete + End If + Next 'File + Set Files = Nothing + Set Folder = Nothing + If fRemoveFolder Then SmartDeleteFolder MseFolder + End If 'oFso.FolderExists(MseFolder) + Next 'MseFolder + End If + Next 'SubFolder + End If 'oFso.FolderExists +End Sub 'WipeLis +'======================================================================================================= + +'Wipe files and folders as documented in KB 928218 +Sub FileWipeAll + Dim sFolder + Dim Folder, Subfolder + + If fForce OR fQuiet OR fPassive Then CloseOfficeApps + + 'Handle other services. + Select Case OVERSIONMAJOR + Case "11" + Case "12" + Case "14" + DeleteService "odserv" + DeleteService "Microsoft Office Groove Audit Service" + DeleteService "Microsoft SharePoint Workspace Audit Service" + Case "15" + Case Else + End Select + + 'User specific files + If NOT fKeepUser Then + 'Delete files that should be backed up before deleting them + CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normal.dotm" + CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normalemail.dotm" + sFolder = sAppdata & "\microsoft\document building blocks" + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder In Folder.Subfolders + If oFso.FileExists(Subfolder & "\blocks.dotx") Then CopyAndDeleteFile Subfolder & "\blocks.dotx" + Next 'Subfolder + Set Folder = Nothing + End If 'oFso.FolderExists(sFolder) + End If + + 'Run the individual filewipe from component detection first + FileWipeIndividual + If fC2rInstalled AND NOT fForce Then Exit Sub + + 'Take care of the rest + DeleteFolder sOInstallRoot + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF + DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" + DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" + DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" + DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" + If (fRemoveOspp OR fForce) AND CInt(OVERSIONMAJOR) > 12 Then + If CInt(OVERSIONMAJOR) = 15 Then CleanOSPP + DeleteService "osppsvc" + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\OfficeSoftwareProtectionPlatform" + DeleteFolder sAllUsersProfile & "\Microsoft\OfficeSoftwareProtectionPlatform" + End If + Select Case OVERSIONMAJOR + Case "12" + Case "14" + DeleteFile oWShell.SpecialFolders("AllUsersStartup")&"\OfficeSAS.lnk" + DeleteFile oWShell.SpecialFolders("Startup")&"\OneNote 2010 Screen Clipper and Launcher.lnk" + Case "15" + Case Else + End Select + DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF + DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" + DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" & OREF + DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" + +End Sub 'FileWipeAll +'======================================================================================================= + +'Wipe individual files & folders related to SKU's that are no longer installed +Sub FileWipeIndividual + Dim LogicalDisks, Disk,sc + Dim File, Files, XmlFile, scFiles, oFile, Folder, SubFolder, Processes, Process, item + Dim sFile, sFolder, sPath, sConfigName, sContents, sProductCode, sLocalDrives,sScQuery + Dim sValue, sScRoots + Dim arrSubfolders, arrShortCutRoots + Dim fKeepFolder, fDeleteSC + Dim iRet,iCnt,iPos + + Log vbCrLf & "File CleanUp" + If IsArray(arrDeleteFiles) Then + If fForce OR fQuiet Then + Log " Doing Action: StopOSE" + iRet = StopService("ose") + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like 'ose%.exe'") + For Each Process in Processes + LogOnly " - Running process : " & Process.Name + Log " -> Ending process: " & Process.Name + iRet = Process.Terminate() + Next 'Process + LogOnly " End Action: StopOSE" + CloseOfficeApps + End If + 'Wipe individual files detected earlier + LogOnly " Removing left behind files" + For Each sFile in arrDeleteFiles + If oFso.FileExists(sFile) Then DeleteFile sFile + Next 'File + End If 'IsArray + + 'Wipe Catalyst in commonfiles + sFolder = sCommonProgramFiles & "\microsoft shared\"&OREF&"\Office Setup Controller\" + If EnumFolderNames(sFolder,arrSubFolders) Then + For Each SubFolder in arrSubFolders + sPath = sFolder & SubFolder + If InStr(SubFolder, ".") > 0 Then sConfigName = UCase(Left(SubFolder, InStr(SubFolder, ".") - 1)) Else sConfigName = UCase(Subfolder) + If GetFolderPath(sPath) Then + Set Folder = oFso.GetFolder(sPath) + Set Files = Folder.Files + fKeepFolder = False + For Each File In Files + If Len(File.Name)>3 Then + If (LCase(Right(File.Name,4))=".xml") Then + If Len(File.Name) >= Len(sConfigName) Then + If (UCase(Left(File.Name,Len(sConfigName)))=sConfigName) Then + Set XmlFile = oFso.OpenTextFile(File,1) + sContents = XmlFile.ReadAll + Set XmlFile = Nothing + sProductCode = "" + On Error Resume Next + sProductCode = Mid(sContents,InStr(sContents,"ProductCode=")+Len("ProductCode=")+1,38) + On Error Goto 0 + If Len(sProductCode) = 38 Then + If CheckDelete(sProductCode) Then DeleteFile File.Path Else fKeepFolder = True + End If + End If 'sConfigName + End If 'Len >= + End If '.xml + End If 'Len(File.Name)>3 + Next 'File + Set Files = Nothing + Set Folder = Nothing + If Not fKeepFolder Then DeleteFolder sPath + End If 'GetFolderPath + Next 'SubFolder + End If 'EnumFolderNames + + 'Wipe Shortcuts + If NOT fSkipSD Then + On Error Resume Next + Log " Searching for shortcuts" + CleanShortcuts sAllUsersProfile, True, False + CleanShortcuts sProfilesDirectory, True, False + On Error Goto 0 + End If 'NOT SkipSD + Err.Clear + +End Sub 'FileWipeIndividual +'======================================================================================================= + +'------------------------------------------------------------------------------- +' CleanShortcuts +' +' Recursively search all profile folders for Office shortcuts in scope +'------------------------------------------------------------------------------- +Sub CleanShortcuts (sFolder, fDelete, fUnPin) + Dim oFolder, fld, file, sc, item + Dim fDeleteSC + + Set oFolder = oFso.GetFolder(sFolder) + ' exclude system protected link folders + If CBool(oFolder.Attributes AND 1024) Then Exit Sub + + On Error Resume Next + For Each fld In oFolder.SubFolders + If Err <> 0 Then + CheckError "CleanShortcuts: " & vbTab & sFolder + Else + CleanShortcuts fld.Path, fDelete, fUnPin + End If + Next + For Each file In oFolder.Files + If LCase(Right(file.Path, 4)) = ".lnk" Then + fDeleteSC = False + LogOnly " check file: " & file.Path + set sc = oWShell.CreateShortcut(file.Path) + If Err <> 0 Then + CheckError "CleanShortcutsSC: " & vbTab & sFolder + Else + 'Compare if the shortcut target is in the list of executables that will be removed + 'LogOnly " - SC.TargetPath: " & sc.TargetPath + If Len(sc.TargetPath) > 0 Then + If InStr(sc.TargetPath,"{{") > 0 Then + 'Handle Windows Installer shortcuts + If Len(sc.TargetPath) >= InStr(sc.TargetPath,"{{") + 37 Then + If CheckDelete(Mid(sc.TargetPath, InStr(sc.TargetPath,"{{"), 38)) Then fDeleteSC = True + End If + Else + 'Handle regular shortcuts + If NOT fBypass_Stage1 Then + ' Compare against results from component scan + For Each item in dicApps.Items + If LCase(sc.TargetPath) = item Then + LogOnly " - removing shortcut per match from component detection: " & file.Path + fDeleteSC = True + Exit For + End If + Next 'item + Else + End If + If NOT oFso.FileExists(sc.TargetPath) Then + ' Shortcut target does not exist + If InStr (sc.TargetPath, OREF) > 0 Then + LogOnly " - removing Office shortcut with non-existent target: " & file.Path & " - " & sc.TargetPath + fDeleteSC = True + Else + 'LogOnly " - keep orphaned SC as target is not in scope: " & sc.TargetPath + End If + Else + 'LogOnly " - keep SC as shortcut target does still exist: " & sc.TargetPath + End If + End If + End If + End If + If fDeleteSC Then + If Not IsArray(arrDeleteFolders) Then ReDim arrDeleteFolders(0) + sFolder = file.Drive & file.Path + If Not arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder Then + ReDim Preserve arrDeleteFolders(UBound(arrDeleteFolders) + 1) + arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder + End If + If fUnPin Then UnPin file + If fDelete Then + If fBypass_Stage1 Then UnPin file + DeleteFile file.Path + End If + fDeleteSC = False + End If 'fDeleteSC + End If + Next + On Error Goto 0 +End Sub 'CleanShortcuts + +'------------------------------------------------------------------------------- +' UnPin +' +' Unpins a shortcut from the taskbar or start menu +'------------------------------------------------------------------------------- +Sub UnPin(file) + Dim fldItem, verb + + On Error Resume Next + Set fldItem = oShellApp.NameSpace(file.ParentFolder.Path).ParseName(file.Name) + For Each verb in fldItem.Verbs + Select Case Replace(verb, "&", "") + Case "Unpin from Taskbar", "Von Taskleiste lösen", "Détacher du barre des tâches", "Détacher de la barre des tâches", "Desanclar de la barra de tareas", "Ta bort från Aktivitetsfältet", "??? ????????(K)", "?? ????? ??(K)", "????????? ?? ?????? ?????" + verb.DoIt + Case "Unpin from Start Menu", "Vom Startmenü lösen", "Détacher du menu Démarrer", "Détacher de la menu Démarrer" + If iVersionNT = 601 Then verb.DoIt + End Select + Next + On Error Goto 0 +End Sub + + +'======================================================================================================= + +Sub DelScrubTmp + + On Error Resume Next + If oFso.FolderExists(sScrubDir & "\ScrubTmp") Then oFso.DeleteFolder sScrubDir & "\ScrubTmp",True + +End Sub 'DelScrubTmp +'======================================================================================================= + +'Ensure there are no unexpected .msi files in the scrub folder +Sub DeleteMsiScrubCache + Dim Folder, File, Files + + Log vbCrLf & "ScrubCache CleanUp" + Set Folder = oFso.GetFolder(sScrubDir) : CheckError "DeleteMsiScrubCache" + Set Files = Folder.Files + For Each File in Files + CheckError "DeleteMsiScrubCache" + If LCase(Right(File.Name,4))=".msi" Then + CheckError "DeleteMsiScrubCache" + DeleteFile File.Path : CheckError "DeleteMsiScrubCache" + End If + Next 'File +End Sub 'DeleteMsiScrubCache +'======================================================================================================= + +Sub MsiClearOrphanedFiles + Const USERSIDEVERYONE = "s-1-1-0" + Const MSIINSTALLCONTEXT_ALL = 7 + Const MSIPATCHSTATE_ALL = 15 + + 'Error handling inlined + On Error Resume Next + + Dim Patch, AllPatches, Product, AllProducts + Dim File, Files, Folder + Dim sFName, sLocalMsp, sLocalMsi, sPatchList, sMsiList + + Set Folder = oFso.GetFolder(sWinDir & "\Installer") + Set Files = Folder.Files + + Log vbCrLf & "Windows Installer cache CleanUp" + 'Get a complete list of patches + Err.Clear + Set AllPatches = oMsi.PatchesEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL,MSIPATCHSTATE_ALL) + If Err <> 0 Then + CheckError "MsiClearOrphanedFiles (msp)" + Else + 'Fill a comma separated stringlist with all .msp patchfiles + For Each Patch in AllPatches + sLocalMsp = "" : sLocalMsp = LCase(Patch.Patchproperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msp)" + sPatchList = sPatchList & sLocalMsp & "," + Next 'Patch + + 'Delete all non referenced .msp files from %windir%\installer + For Each File in Files + sFName = "" : sFName = LCase(File.Path) + If LCase(Right(sFName,4)) = ".msp" Then + If Not InStr(sPatchList,sFName) > 0 Then + 'While this is an orphaned file keep the scope of Office only + If InStr(UCase(MspTargets(File.Path)),OFFICEID)>0 Then DeleteFile File.Path + End If + End If 'LCase(Right(sFName,4)) + Next 'File + End If 'Err=0 + + 'Get a complete list products + Err.Clear + Set AllProducts = oMsi.ProductsEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL) + If Err <> 0 Then + CheckError "MsiClearOrphanedFiles (msi)" + Else + 'Fill a comma separated stringlist with all .msi files + For Each Product in AllProducts + sLocalMsi = "" : sLocalMsi = LCase(Product.InstallProperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msi)" + sMsiList = sMsiList & sLocalMsi & "," + Next 'Product + + 'Delete all non referenced .msi files from %windir%\installer + For Each File in Files + sFName = "" : sFName = LCase(File.Path) + If LCase(Right(sFName,4)) = ".msi" Then + If Not InStr(sMsiList,sFName) > 0 Then + 'While this is an orphaned file keep the scope of Office only + If UCase(Right(ProductCode(File.Path),PRODLEN))=OFFICEID Then DeleteFile File.Path + End If + End If 'LCase(Right(sFName,4)) = ".msi" + Next 'File + End If 'Err=0 + +End Sub 'MsiClearOrphanedFiles +'======================================================================================================= + +Sub RegWipe + Dim Item, Name, Sku, key + Dim hDefKey, sSubKeyName, sCurKey, value, sValue, sGuid + Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion + Dim arrKeys, arrNames, arrTypes, arrMultiSzValues, arrMultiSzNewValues + Dim arrTestNames, arrTestTypes + Dim i, iLoopCnt, iPos + Dim fDelReg + + Log vbCrLf & "Registry CleanUp" + 'Wipe registry data + + 'User Profile settings + Log " - User Policies" + RegDeleteKey HKCU,"Software\Policies\Microsoft\Office\" & OVERSION & "\" + If NOT fKeepUser Then + RegDeleteKey HKCU,"Software\Microsoft\Office\" & OVERSION & "\" + Log " - User Settings" + End If 'fKeepUser + + 'Computer specific settings + If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then + Log " - Machine Settings" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\" & OVERSION & "\" + If fRemoveOse OR fForce Then + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office Test\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","LastAccessInstall", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","MID", False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Excel\Addins\Microsoft.PerformancePoint.Planning.Client.Excel\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerExcelImport\Versions\",OVERSION, False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerWordImport\Versions\",OVERSION, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Outlook\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\MEWord12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word97\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\MEWord12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word97\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","GrooveMonitor", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","LobiServer", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","BCSSync", False + RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\Outlook\" + End If + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Office\" & OVERSION & "\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" + + Select Case OVERSIONMAJOR + Case "11" + 'Jet_Replication + sValue = "" + If RegReadValue(HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32","SystemDB",sValue,"REG_SZ") Then + If Len(sValue) > Len(sOInstallRoot) Then + If LCase(Left(sValue,Len(sOInstallRoot))) = LCase(sOInstallRoot) Then RegDeleteKey HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32\" + End If + End If + Case "12" + Case "14" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform_Test\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Common\ActiveX Compatibility\{{00024512-0000-0000-C000-000000000046}\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\OneNote\Adapters\","{{456B0D0E-49DD-4C95-8DB6-175F54DE69A3}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{42042206-2D85-11D3-8CFF-005004838597}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{993BE281-6695-4BA5-8A2A-7AACBFAAB69E}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{0006F045-0000-0000-C000-000000000046}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{C41662BB-1FA0-4CE0-8DC5-9B7F8279FF97}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{7CCA70DB-DE7A-4FB7-9B2B-52E2335A3B5A}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{506F4668-F13E-4AA1-BB04-B43203AB3CC0}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{D66DC78C-4F61-447F-942B-3FB6980118CF}", False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{B4F3A835-0E21-4959-BA22-42B3008E02FF}\" + 'Groove Extensions + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{99FD978C-D287-4F50-827F-B2C658EDA8E7}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{AB5C5600-7E6E-4B06-9197-9ECEF74D31CC}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{920E6DB1-9907-4370-B3A0-BAFC03D81399}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{16F3DD56-1AF5-4347-846D-7C10C4192619}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2916C86E-86A6-43FE-8112-43ABE6BF8DCC}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{6C467336-8281-4E60-8204-430CED96822D}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2A541AE1-5BF6-4665-A8A3-CFA9672E4291}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{A449600E-1DC6-4232-B948-9BD794D62056}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{3D60EDA7-9AB4-4DA8-864C-D9B5F2E7281D}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{387E725D-DC16-4D76-B310-2C93ED4752A0}", False + RegDeleteKey HKLM,"SOFTWARE\Classes\*\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Folder\ShellEx\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\Background\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 1 (GFS Unread Stub)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2 (GFS Stub)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2.5 (GFS Unread Folder)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 3 (GFS Folder)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 4 (GFS Unread Mark)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}\" + + Case 15 + + Case Else + End Select + + 'Win32Assemblies + Log " - Win32Assemblies" + If RegEnumKey(HKCR,"Installer\Win32Assemblies\",arrKeys) Then + For Each Item in arrKeys + If InStr(UCase(Item),OREF)>0 Then RegDeleteKey HKCR,"Installer\Win32Assemblies\"&Item & "\" + Next 'Item + End If 'RegEnumKey + 'Groove blocks reinstall if it locates groove.exe over this key + If RegKeyExists(HKCR,"GrooveFile\Shell\Open\Command\") Then + sValue = "" + RegReadValue HKCR,"GrooveFile\Shell\Open\Command\","",sValue,"REG_SZ" + If InStr(sValue,"\"&OREF&"\")>0 Then RegDeleteKey HKCR,"GrooveFile\" + End If 'RegKeyExists + End If 'fRemoveAll + + Select Case OVERSIONMAJOR + Case "11" + For iLoopCnt = 1 to 3 + Select Case iLoopCnt + Case 1 + 'CIW - HKCU + sSubKeyName = "Software\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" + hDefKey = HKCU + Case 2 + 'CIW - HKLM + sSubKeyName = "SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" + hDefKey = HKLM + Case 3 + 'Add/Remove Programs + sSubKeyName = REG_ARP + hDefKey = HKLM + End Select + + If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'OFFICEID id + If Len(Item)>37 Then + sGuid = UCase(Left(Item,38)) + If Right(sGuid,PRODLEN)=OFFICEID Then + If CheckDelete(sGuid) Then + RegDeleteKey hDefKey, sSubKeyName & Item & "\" + End If + End If 'Right(Item,PRODLEN)=OFFICEID + End If 'Len(Item)>37 + Next 'Item + If iLoopCnt < 3 Then + If RegEnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) Then + i = 0 + For Each Name in arrNames + If RegReadValue(hDefKey,sSubKeyName,Name,sValue,arrTypes(i)) Then + If sValue = sGuid Then RegDeleteValue hDefKey,sSubKeyName,Name, False + End If + i = i + 1 + Next + End If + End If + End If + If NOT RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\" + If NOT RegEnumKey(hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\",arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\" + Next 'iLoopCnt + Case "12" + 'Add/Remove Programs + RegWipeARP + Case "14" + 'Add/Remove Programs + RegWipeARP + Case Else + End Select + + 'UpgradeCodes, WI config, WI global config + For iLoopCnt = 1 to 5 + Select Case iLoopCnt + Case 1 + Log " - HKLM UpgradeCodes" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\" + hDefKey = HKLM + Case 2 + Log " - HKCR UpgradeCodes" + sSubKeyName = "Installer\UpgradeCodes\" + hDefKey = HKCR + Case 3 + Log " - HKLM Products" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" + hDefKey = HKLM + Case 4 + Log " - HKCR Features" + sSubKeyName = "Installer\Features\" + hDefKey = HKCR + Case 5 + Log " - HKCR Products" + sSubKeyName = "Installer\Products\" + hDefKey = HKCR + Case Else + sSubKeyName = "" + hDefKey = "" + End Select + If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + 'Expand the GUID + sGuid = GetExpandedGuid(Item) + 'Check if it's an Office key + If CheckDeleteEx (sGuid) Then + RegDeleteKey hDefKey,sSubKeyName & Item & "\" + Else + If iLoopCnt < 3 Then + 'Enum all entries + RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes + If IsArray(arrNames) Then + 'Delete entries within removal scope + For Each Name in arrNames + If Len(Name)=32 Then + sGuid = GetExpandedGuid(Name) + If CheckDelete(sGuid) Then RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True + Else + 'Invalid data -> delete the value + RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True + End If + Next 'Name + End If 'IsArray(arrNames) + 'If all entries were removed - delete the key + RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes + If Not IsArray(arrNames) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" + Else 'iLoopCnt >= 3 + If CheckDelete(sGuid) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" + End If 'iLoopCnt < 3 + End If 'fRemoveAll + End If 'Len(Item)=32 + Next 'Item + End If 'RegEnumKey + Next 'iLoopCnt + + 'Components + Log " - Global Components" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + If RegEnumValues(HKLM,sSubKeyName & Item,arrNames,arrTypes) Then + If IsArray(arrNames) Then + For Each Name in arrNames + If Len(Name)=32 Then + sGuid = GetExpandedGuid(Name) + If CheckDelete(sGuid) Then + RegDeleteValue HKLM, sSubKeyName & Item & "\", Name, False + 'Check if the key is now empty + If NOT RegEnumValues(HKLM,sSubKeyName & Item,arrTestNames,arrTestTypes) Then + If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR + End If + End If + End If '32 + Next 'Name + End If 'IsArray + End If 'RegEnumValues + End If '32 + Next 'Item + End If 'RegEnumKey + + 'Published Components + Log " - Published Components" + sSubKeyName = "Installer\Components\" + If RegEnumKey(HKCR,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + If RegEnumValues(HKCR,sSubKeyName & Item,arrNames,arrTypes) Then + If IsArray(arrNames) Then + For Each Name in arrNames + If RegReadValue (HKCR,sSubKeyName & Item, Name, sValue,"REG_MULTI_SZ") Then + arrMultiSzValues = Split(sValue,chr(34)) + If IsArray(arrMultiSzValues) Then + i = -1 + ReDim arrMultiSzNewValues(-1) + fDelReg = False + For Each value in arrMultiSzValues + If Len(value) > 19 Then + sGuid = "" + If GetDecodedGuid(Left(value,SQUISHED),sGuid) Then + If CheckDelete(sGuid) Then + fDelReg = True + Else + i = i + 1 + ReDim Preserve arrMultiSzNewValues(i) + arrMultiSzNewValues(i) = value + End If 'CheckDelete + End If 'decode + End If '19 + Next 'Value + If NOT (i = -1) Then + If NOT fDetectOnly Then + If NOT UBound(arrMultiSzValues) = i Then oReg.SetMultiStringValue HKCR,sSubKeyName & Item,Name,arrMultiSzNewValues + End If + Else + If fDelReg Then + RegDeleteValue HKCR,sSubKeyName & Item & "\", Name, False + 'Check if the key is now empty + If NOT RegEnumValues(HKCR,sSubKeyName & Item,arrTestNames,arrTestTypes) Then + If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR + End If + End If 'DelReg + End If + End If 'IsArray + End If + Next 'Name + End If 'IsArray + End If 'RegEnumValues + End If '32 + Next 'Item + End If 'RegEnumKey + + 'Delivery + Log " - Delivery" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\Delivery\SourceEngine\Downloads\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item) > 37 Then + If fRemoveAll Then + If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) OR _ + LCase(Right(Item,7))=OVERSIONMAJOR&".data" Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + Else + If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) AND _ + CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + End If '37 + Next 'Item + End If 'RegEnumKey + + 'Registration + Log " - HKLM Registration" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\Registration\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item)>37 Then + If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + Next 'Item + End If 'RegEnumKey + + 'User Preconfigurations + Log " - HKLM User Preconfigurations" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\User Settings\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item)>37 Then + If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + Next 'Item + End If 'RegEnumKey + + 'Known Keypath settings + Log " - Detcted KeyPath settings" + For Each key in dicDelRegKey.Keys + If Right(key,1) = "\" Then + RegDeleteKey dicDelRegKey.Item(key),key + Else + iPos = InStrRev(Key,"\") + If iPos > 0 Then RegDeleteValue dicDelRegKey.Item(key), Left(key,iPos - 1), Mid(key,iPos+1), False + End If + Next + + 'Temporary entries in ARP + TmpKeyCleanUp +End Sub 'RegWipe +'======================================================================================================= + +'Clean up Add/Remove Programs registry +Sub RegWipeARP + + Dim Item, Name, Sku, key + Dim sSubKeyName, sCurKey, sValue, sGuid + Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion + Dim arrKeys + + 'Add/Remove Programs + sSubKeyName = REG_ARP + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + '*0FF1CE* + If Len(Item)>37 Then + sGuid = UCase(Left(Item,38)) + If CheckDeleteEx(sGuid) Then RegDeleteKey HKLM, sSubKeyName & Item + End If 'Len(Item)>37 + + 'Config entries + sCurKey = sSubKeyName & Item & "\" + fSystemComponent0 = Not (RegReadValue(HKLM,sCurKey,"SystemComponent",sValue,"REG_DWORD") AND (sValue = "1")) + fPackages = RegReadValue(HKLM,sCurKey,OPACKAGE,sValue,"REG_MULTI_SZ") + fDisplayVersion = RegReadValue(HKLM,sCurKey,"DisplayVersion",sValue,"REG_SZ") + If fDisplayVersion AND Len(sValue) > 1 Then + fDisplayVersion = (Left(sValue,2) = OVERSIONMAJOR) + End If + If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then + fKeep = False + If Not fRemoveAll Then + For Each Sku in dictionaryKeepSku.Keys + If UCase(Item) = OREGREF & Sku Then + fkeep = True + Exit For + End If + Next 'Sku + End If + If Not fkeep Then RegDeleteKey HKLM, sSubKeyName & Item + End If + Next 'Item + End If 'RegEnumKey + +End Sub 'RegWipeARP +'======================================================================================================= + +'Clean up temporary registry keys +Sub TmpKeyCleanUp + Dim TmpKey + + If fLogInitialized Then Log " - temporary OffScrub registry entries" + If IsArray(arrTmpSKUs) Then + For Each TmpKey in arrTmpSKUs + oReg.DeleteKey HKLM, REG_ARP & TmpKey + Next 'Item + End If 'IsArray +End Sub 'TmpKeyCleanUp + +'======================================================================================================= +' Helper Functions +'======================================================================================================= + +'Create a log with the results of the SKU detection +Sub LogSkuResults + Dim SkuLog, SkuKey , p + + On Error Resume Next 'Don't fail on logging + + Set SkuLog = oFso.OpenTextFile(sScrubDir & "\SkuLog.txt",FOR_WRITING,True,True) + + SkuLog.WriteLine "Installed SKUs (All):" + SkuLog.WriteLine "=====================" + For Each SkuKey in dicInstalledSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Server SKUs:" + SkuLog.WriteLine "============" + For Each SkuKey in dicSrv.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Client Suite SKUs:" + SkuLog.WriteLine "==================" + For Each SkuKey in dicCSuite.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Client Standalone SKUs:" + SkuLog.WriteLine "=======================" + For Each SkuKey in dicCSingle.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Installed Products (All):" + SkuLog.WriteLine "=========================" + For Each p in oMsi.Products + If InScope(p) Then + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + End If + Next 'Product + + SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf + + SkuLog.WriteLine vbCrLf & "SKUs to keep:" + SkuLog.WriteLine "=============" + For Each SkuKey in dictionaryKeepSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Products to keep:" + SkuLog.WriteLine "=================" + For Each p in dictionaryKeepProd.Keys + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + Next 'Key + + SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf + + SkuLog.WriteLine vbCrLf & "SKUs to remove:" + SkuLog.WriteLine "===============" + For Each SkuKey in dicRemoveSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Products to remove:" + SkuLog.WriteLine "===================" + For Each p in oMsi.Products + If CheckDeleteEx(p) Then + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + End If 'InScope + Next 'Product + + SkuLog.Close + Set SkuLog = Nothing + +End Sub 'LogSkuResults +'======================================================================================================= + +'End all running instances of applications that will be removed +Sub CloseOfficeApps + Dim Processes, Process, prop + Dim fWait + Dim iRet + + On Error Resume Next + + fWait = False + Log " Doing Action: CloseOfficeApps" + + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process") + For Each Process in Processes + If dicApps.Exists(LCase(Process.Name)) Then + Log " - End process " & Process.Name + iRet = Process.Terminate() + CheckError "CloseOfficeApps: " & "Process.Name" + Else + For Each prop in Process.Properties_ + If prop.Name = "ExecutablePath" Then + If InStr(UCase(prop.Value), UCase(sOInstallRoot)) > 0 Then + Log " - End process '" & Process.Name + iRet = Process.Terminate() + CheckError "CloseOfficeApps: " & "Process.Name" + fWait = True + End If + End If 'ExcecutablePath + Next 'prop + End If + Next 'Process + If fWait Then + wscript.sleep 10000 + End If + LogOnly " End Action: CloseOfficeApps" +End Sub 'CloseOfficeApps +'======================================================================================================= + +'Ensure Windows Explorer is restarted if needed +Sub RestoreExplorer + Dim Processes, Result, oAT, DateTime, JobID + Dim sCmd + + 'Non critical routine. Don't fail on error + On Error Resume Next + wscript.sleep 1000 + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='explorer.exe'") + If Processes.Count < 1 Then + oWShell.Run "explorer.exe" + 'To handle this in case of System context, schedule and run as interactive task + If iVersionNT > 502 Then + 'Vista and later + oWShell.Run "SCHTASKS /Create /TN OffScrEx /TR explorer /SC ONCE /ST 12:00 /IT",0,True + oWShell.Run "SCHTASKS /Run /TN OffScrEx", 0, True + oWShell.Run "SCHTASKS /Delete /TN OffScrEx /F", 0, False + Else + Set oAT = oWmiLocal.Get("Win32_ScheduledJob") + Set DateTime = CreateObject("WbemScripting.SWbemDateTime") + DateTime.SetVarDate DateAdd("n",1,Now),True + Result = oAT.Create("explorer.exe", DateTime.Value, , , , True, JobID) + End If 'iVersionNT + End If +End Sub 'RestoreExploer +'======================================================================================================= + +'Returns the delimiter for a passed in string +Function Delimiter (sVersion) + + Dim iCnt, iAsc + + Delimiter = " " + For iCnt = 1 To Len(sVersion) + iAsc = Asc(Mid(sVersion, iCnt, 1)) + If Not (iASC >= 48 And iASC <= 57) Then + Delimiter = Mid(sVersion, iCnt, 1) + Exit Function + End If + Next 'iCnt +End Function +'======================================================================================================= + +'Check registry access permissions. Failure will terminate the script +Function CheckRegPermissions + Const KEY_QUERY_VALUE = &H0001 + Const KEY_SET_VALUE = &H0002 + Const KEY_CREATE_SUB_KEY = &H0004 + Const DELETE = &H00010000 + + Dim sSubKeyName + Dim fReturn + + CheckRegPermissions = True + sSubKeyName = "Software\Microsoft\Windows\" + oReg.CheckAccess HKLM, sSubKeyName, KEY_QUERY_VALUE, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, KEY_SET_VALUE, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, KEY_CREATE_SUB_KEY, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, DELETE, fReturn + If Not fReturn Then CheckRegPermissions = False + +End Function 'CheckRegPermissions +'======================================================================================================= + +'Check if a product will be removed +Function CheckDeleteEx (sProductCode) + + CheckDeleteEx = False + If CheckDelete (sProductCode) Then + CheckDeleteEx = True + Exit Function + End If + If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then + CheckDeleteEx = InScope(sProductCode) AND NOT dictionaryKeepProd.Exists(UCase(sProductCode)) + End If +End Function 'CheckDelete +'======================================================================================================= + +'Check if an Office product is still registered with a SKU that stays on the computer +Function CheckDelete (sProductCode) + + 'Ensure valid GUID length + If NOT Len(sProductCode) = 38 Then + CheckDelete = False + Exit Function + End If + + 'If it's a non Office ProductCode exit with false right away + CheckDelete = InScope(sProductCode) + If Not CheckDelete Then Exit Function + If dictionaryKeepProd.Exists(UCase(sProductCode)) Then CheckDelete = False + +End Function 'CheckDelete +'======================================================================================================= + +'Check if ProductCode is in scope +Function InScope(sProductCode) + + Dim fInScope + Dim sProd + + fInScope = False + If Len(sProductCode) = 38 Then + sProd = UCase(sProductCode) + Select Case OVERSIONMAJOR + Case "11" + If Right(sProd,PRODLEN)=OFFICEID Then fInScope = True + Case "12" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True + Case "14" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True + Case "15" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then + Select Case Mid(sProd, 11, 4) + Case "007E", "008F", "008C", "24E1", "237A" + ' C2R products - keep them + Case Else + fInScope = True + End Select + End If + Case Else + End Select + End If '38 + + InScope = fInScope +End Function 'InScope +'======================================================================================================= + +'Register an orphaned .msi product as installed for MSI +Sub MsiRegisterProduct (sMsiFile) + + Dim sDisplayVersion, sCurKey, sDisplayName, sLang, sProductCode, sTmpKey + Dim iCnt + + 'Create a temporary keys to simulate an installed product + sProductCode = "" + sProductCode = GetMsiProductCode(sMsiFile) + sDisplayVersion = GetMsiProductVersion(sMsiFile) + If sDisplayVersion = "" Then sDisplayVersion = OVERSION & ".0000.0000" + sDisplayName = GetMsiProductName(sMsiFile) + If sDisplayName = "" Then sDisplayName = sProductCode + Select Case OVERSIONMAJOR + Case "9","10","11" + sLang = CInt("&h" & Mid(sProductCode,6,4)) + Case "12","14" + sLang = CInt("&h" & Mid(sProductCode,16,4)) + Case Else + End Select + + For iCnt = 1 To 3 + Select Case iCnt + Case 1 + sCurKey = REG_ARP & sProductCode + oReg.CreateKey HKLM,sCurKey + Case 2 + sCurKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & GetCompressedGuid(sProductCode) + oReg.CreateKey HKLM,sCurKey + oReg.CreateKey HKLM,sCurKey & "\Features" + oReg.CreateKey HKLM,sCurKey & "\InstallProperties" + oReg.CreateKey HKLM,sCurKey & "\Patches" + oReg.CreateKey HKLM,sCurKey & "\Usage" + sCurKey = sCurKey & "\InstallProperties" + oReg.SetStringValue HKLM,sCurKey,"LocalPackage",sMsiFile + Case 3 + sCurKey = "Installer\Products\" & GetCompressedGuid(sProductCode) + sTmpKey = sCurKey + oReg.CreateKey HKCR,sCurKey + oReg.SetDWordValue HKCR,sCurKey,"AdvertiseFlags",388 + oReg.SetDWordValue HKCR,sCurKey,"Assignment",1 + oReg.SetDWordValue HKCR,sCurKey,"AuthorizedLUAApp",0 + oReg.SetStringValue HKCR,sCurKey,"Clients",":" + oReg.SetDWordValue HKCR,sCurKey,"DeploymentFlags",3 + oReg.SetDWordValue HKCR,sCurKey,"InstanceType",0 + oReg.SetDWordValue HKCR,sCurKey,"Language",sLang + oReg.SetStringValue HKCR,sCurKey,"PackageCode",GetMsiPackageCode(sMsiFile) + oReg.SetStringValue HKCR,sCurKey,"ProductName",sDisplayName + oReg.SetDWordValue HKCR,sCurKey,"VersionMinor",0 + sCurKey = sTmpKey & "\SourceList" + oReg.CreateKey HKCR,sCurKey + oReg.SetExpandedStringValue HKCR,sCurKey,"LastUsedSource",sScrubDir + oReg.SetStringValue HKCR,sCurKey,"PackageName",Mid(sMsiFile,InstrRev(sMsiFile,"\")+1) + sCurKey = sTmpKey & "\SourceList\Media" + oReg.CreateKey HKCR,sCurKey + oReg.SetStringValue HKCR,sCurKey,"1",OREF & ";1" + oReg.SetStringValue HKCR,sCurKey,"DiskPrompt",sDisplayName + sCurKey = sTmpKey & "\SourceList\Net" + oReg.CreateKey HKCR,sCurKey + oReg.SetExpandedStringValue HKCR,sCurKey,"1",sScrubDir + + Case Else + End Select + If iCnt <3 Then + oReg.SetStringValue HKLM,sCurKey,"Comments","" + oReg.SetStringValue HKLM,sCurKey,"Contact","" + oReg.SetStringValue HKLM,sCurKey,"DisplayName",sDisplayName + oReg.SetStringValue HKLM,sCurKey,"DisplayVersion",sDisplayVersion + oReg.SetDWordValue HKLM,sCurKey,"EstimatedSize",0 + oReg.SetStringValue HKLM,sCurKey,"HelpLink","" + oReg.SetStringValue HKLM,sCurKey,"HelpTelephone","" + oReg.SetStringValue HKLM,sCurKey,"InstallDate","20100101" + If f64 Then + oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFilesX86 + Else + oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFiles + End If + oReg.SetStringValue HKLM,sCurKey,"InstallSource",sScrubDir + oReg.SetDWordValue HKLM,sCurKey,"Language",sLang + oReg.SetExpandedStringValue HKLM,sCurKey,"ModifyPath","MsiExec.exe /X" & sProductCode + oReg.SetDWordValue HKLM,sCurKey,"NoModify",1 + oReg.SetStringValue HKLM,sCurKey,"Publisher","Microsoft Corporation" + oReg.SetStringValue HKLM,sCurKey,"Readme","" + oReg.SetStringValue HKLM,sCurKey,"Size","" + oReg.SetDWordValue HKLM,sCurKey,"SystemComponent",0 + oReg.SetExpandedStringValue HKLM,sCurKey,"UninstallString","MsiExec.exe /X" & sProductCode + oReg.SetStringValue HKLM,sCurKey,"URLInfoAbout","" + oReg.SetStringValue HKLM,sCurKey,"URLUpdateInfo","" + oReg.SetDWordValue HKLM,sCurKey,"Version",0 + oReg.SetDWordValue HKLM,sCurKey,"VersionMajor",OVERSIONMAJOR + oReg.SetDWordValue HKLM,sCurKey,"VersionMinor",0 + oReg.SetDWordValue HKLM,sCurKey,"WindowsInstaller",1 + End If '< 3 + Next 'iCnt + +End Sub 'MsiRegisterProduct +'======================================================================================================= + +'Obtain the ProductCode (GUID) from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductCode(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductCode = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductCode'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductCode = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductCode +'======================================================================================================= + +'Obtain the ProductVersion from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductVersion(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductVersion = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductVersion'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductVersion = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductVersion +'======================================================================================================= + +'Obtain the ProductVersion from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductName(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductName = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductName'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductName = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductVersion +'======================================================================================================= + +'Obtain the PackageCode (GUID) from a .msi package +'The function will the .msi'S SummaryInformation stream +Function GetMsiPackageCode(sMsiFile) + + On Error Resume Next + + Const PID_REVNUMBER = 9 + + GetMsiPackageCode = "" + GetMsiPackageCode = GetCompressedGuid(oMsi.SummaryInformation(sMsiFile,MSIOPENDATABASEREADONLY).Property(PID_REVNUMBER)) + +End Function 'GetMsiPackageCode +'======================================================================================================= + +'Returns a string with a list of ProductCodes from the summary information stream +Function MspTargets (sMspFile) + Const MSIOPENDATABASEMODE_PATCHFILE = 32 + Const PID_TEMPLATE = 7 + + Dim Msp + 'Non critical routine. Don't fail on error + On Error Resume Next + MspTargets = "" + If oFso.FileExists(sMspFile) Then + Set Msp = Msi.OpenDatabase(WScript.Arguments(0),MSIOPENDATABASEMODE_PATCHFILE) + If Err = 0 Then MspTargets = Msp.SummaryInformation.Property(PID_TEMPLATE) + End If 'oFso.FileExists(sMspFile) +End Function 'MspTargets +'======================================================================================================= + +'Return the ProductCode {{GUID} from a .MSI package +Function ProductCode(sMsi) + Const MSIUILEVELNONE = 2 'No UI + Dim MsiSession + + On Error Resume Next + 'Non critical routine. Don't fail on error + If oFso.FileExists(sMsi) Then + oMsi.UILevel = MSIUILEVELNONE + Set MsiSession = oMsi.OpenPackage(sMsi,1) + ProductCode = MsiSession.ProductProperty("ProductCode") + Set MsiSession = Nothing + Else + ProductCode = "" + End If 'oFso.FileExists(sMsi) +End Function 'ProductCode +'======================================================================================================= + +Function GetUpgradeCode(sGuid) + + 'Ensure Valid Length + If NOT Len(sGuid) = 38 Then Exit Function + + GetUpgradeCode = "{{00" & Mid(sGuid, 4, 2) & "0000-" & Mid(sGuid, 11, 4) & "-0000-" & Mid(sGuid, 21, 1) & "000-" & Mid(sGuid, 26, 1) & "000000FF1CE}" + +End Function 'GetUpgradeCode +'======================================================================================================= + +Function GetExpandedGuid (sGuid) + Dim i + + 'Ensure valid length + If NOT Len(sGuid) = 32 Then Exit Function + + GetExpandedGuid = "{{" & StrReverse(Mid(sGuid,1,8)) & "-" & _ + StrReverse(Mid(sGuid,9,4)) & "-" & _ + StrReverse(Mid(sGuid,13,4))& "-" + For i = 17 To 20 + If i Mod 2 Then + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) + Else + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) + End If + Next + GetExpandedGuid = GetExpandedGuid & "-" + For i = 21 To 32 + If i Mod 2 Then + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) + Else + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) + End If + Next + GetExpandedGuid = GetExpandedGuid & "}" +End Function +'======================================================================================================= + +'Converts a GUID into the compressed format +Function GetCompressedGuid (sGuid) + Dim sCompGUID + Dim i + + 'Ensure Valid Length + If NOT Len(sGuid) = 38 Then Exit Function + + sCompGUID = StrReverse(Mid(sGuid,2,8)) & _ + StrReverse(Mid(sGuid,11,4)) & _ + StrReverse(Mid(sGuid,16,4)) + For i = 21 To 24 + If i Mod 2 Then + sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) + Else + sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) + End If + Next + For i = 26 To 37 + If i Mod 2 Then + sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) + Else + sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) + End If + Next + GetCompressedGuid = sCompGUID +End Function +'======================================================================================================= + +'Unsquish GUID +Function GetDecodedGuid(sEncGuid, sGuid) + +Dim sDecode, sTable, sHex, iChr +Dim arrTable +Dim i, iAsc, pow85, decChar +Dim lTotal +Dim fFailed + + fFailed = False + + sTable = "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ + "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ + "0xff,0x00,0xff,0xff,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff," & _ + "0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0xff,0xff,0xff,0x16,0xff,0x17," & _ + "0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27," & _ + "0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0xff,0x34,0x35,0x36," & _ + "0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46," & _ + "0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xff,0x53,0x54,0xff" + arrTable = Split(sTable,",") + lTotal = 0 : pow85 = 1 + For i = 0 To 19 + fFailed = True + If i Mod 5 = 0 Then + lTotal = 0 : pow85 = 1 + End If ' i Mod 5 = 0 + iAsc = Asc(Mid(sEncGuid,i+1,1)) + sHex = arrTable(iAsc) + If iAsc >=128 Then Exit For + If sHex = "0xff" Then Exit For + iChr = CInt("&h"&Right(sHex,2)) + lTotal = lTotal + (iChr * pow85) + If i Mod 5 = 4 Then sDecode = sDecode & DecToHex(lTotal) + pow85 = pow85 * 85 + fFailed = False + Next 'i + If NOT fFailed Then sGuid = "{{"&Mid(sDecode,1,8)&"-"& _ + Mid(sDecode,13,4)&"-"& _ + Mid(sDecode,9,4)&"-"& _ + Mid(sDecode,23,2) & Mid(sDecode,21,2)&"-"& _ + Mid(sDecode,19,2) & Mid(sDecode,17,2) & Mid(sDecode,31,2) & Mid(sDecode,29,2) & Mid(sDecode,27,2) & Mid(sDecode,25,2) &"}" + + GetDecodedGuid = NOT fFailed + +End Function 'GetDecodedGuid +'======================================================================================================= + +'Convert a long decimal to hex +Function DecToHex(lDec) + + Dim sHex + Dim iLen + Dim lVal, lExp + Dim arrChr + + arrChr = Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F") + sHex = "" + lVal = lDec + lExp = 16^10 + While lExp >= 1 + If lVal >= lExp Then + sHex = sHex & arrChr(Int(lVal / lExp)) + lVal = lVal - lExp * Int(lVal / lExp) + Else + sHex = sHex & "0" + If sHex = "0" Then sHex = "" + End If + lExp = lExp / 16 + Wend + + iLen = 8 - Len(sHex) + If iLen > 0 Then sHex = String(iLen,"0") & sHex + DecToHex = sHex +End Function +'======================================================================================================= + +'Ensures that only valid metadata entries exist to avoid API failures +Sub EnsureValidWIMetadata (hDefKey,sKey,iValidLength) + +Dim arrKeys +Dim SubKey + +If Len(sKey) > 1 Then + If Right(sKey,1) = "\" Then sKey = Left(sKey,Len(sKey)-1) +End If + +If RegEnumKey(hDefKey,sKey,arrKeys) Then + For Each SubKey in arrKeys + If NOT Len(SubKey) = iValidLength Then + RegDeleteKey hDefKey,sKey & "\" & SubKey & "\" + End If + Next 'SubKey +End If + +End Sub 'EnsureValidWIMetadata +'======================================================================================================= + +'------------------------------------------------------------------------------- +' CleanOSPP +' +' Clean out licenses from the Office Software Protection Platform +'------------------------------------------------------------------------------- +Sub CleanOSPP + Dim oProductInstances, pi + Dim sCleanOSPP, sCmd, sRetVal + + CONST OfficeAppId = "0ff1ce15-a989-479d-af46-f275c6370663" 'Office 2013 + + sCleanOSPP = "x64\CleanOSPP.exe" + If Not f64 Then sCleanOSPP = "x86\CleanOSPP.exe" + If oFso.FileExists(sScriptDir & sCleanOSPP) Then + sCmd = sScriptDir & sCleanOSPP + Log " Running: " & sCmd + On Error Resume Next + sRetVal = oWShell.Run(sCmd, 0, True) + Log " Return value: " & sRetVal + On Error Goto 0 + Exit Sub + End If + + On Error Resume Next + ' Initialize the software protection platform object with a filter on Office 2013 products + If iVersionNT > 601 Then + Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM SoftwareLicensingProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") + Else + Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM OfficeSoftwareProtectionProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") + End If + + ' Remove all licenses + For Each pi in oProductInstances + If NOT IsNull(pi) Then + pi.UninstallProductKey( pi.ProductKeyID) + End If + Next 'pi + +End Sub 'CleanOSPP +'======================================================================================================= + + +'Create a backup copy of the file in the ScrubDir then delete the file +Sub CopyAndDeleteFile(sFile) + Dim File + + 'Error handling inlined + On Error Resume Next + If oFso.FileExists(sFile) Then + Set File = oFso.GetFile(sFile) + If Not oFso.FolderExists(sScrubDir & "\" & File.ParentFolder.Name) Then oFso.CreateFolder sScrubDir & "\" & File.ParentFolder.Name + If Not fDetectOnly Then + LogOnly " - Backing up file: " & sFile + oFso.CopyFile sFile,sScrubDir & "\" & File.ParentFolder.Name & "\" & File.Name,True : CheckError "CopyAndDeleteFile" + Set File = Nothing + DeleteFile(sFile) + Else + LogOnly " - Simulate CopyAndDelete file: " & sFile + End If + End If 'oFso.FileExists +End Sub 'CopyAndDeleteFile +'======================================================================================================= + +'Wrapper to delete a file +Sub DeleteFile(sFile) + Dim File + Dim sFileName, sNewPath + + On Error Resume Next + + If dictionaryKeepFolder.Exists(LCase(sFile)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFile + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFile + LogOnly " Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFile))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFile + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFile + LogOnly " Remaining applications will need a repair!" + End If + End If + End If + + If oFso.FileExists(sFile) Then + LogOnly " - Delete file: " & sFile + If Not fDetectOnly Then oFso.DeleteFile sFile,True + If Err <> 0 Then + CheckError "DeleteFile" + If fForce Then + 'Try to move the file and delete from there + Set File = oFso.GetFile(sFile) + sFileName = File.Name + sNewPath = sScrubDir & "\ScrubTmp" + Set File = Nothing + If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) + 'Move the file + LogOnly " - Move file to: " & sNewPath & "\" & sFileName + oFso.MoveFile sFile,sNewPath & "\" & sFileName + If Err <> 0 Then + CheckError "DeleteFile (move)" + End If 'Err <> 0 + Else + fRebootRequired = True + End If 'fForce + End If 'Err <> 0 + End If 'oFso.FileExists +End Sub 'DeleteFile +'======================================================================================================= + +'64 bit aware wrapper to return the requested folder +Function GetFolderPath(sPath) + GetFolderPath = True + If oFso.FolderExists(sPath) Then Exit Function + If f64 AND oFso.FolderExists(Wow64Folder(sPath)) Then + sPath = Wow64Folder(sPath) + Exit Function + End If + GetFolderPath = False +End Function 'GetFolderPath +'======================================================================================================= + +'Enumerates subfolder names of a folder and returns True if subfolders exist +Function EnumFolderNames (sFolder, arrSubFolders) + Dim Folder, Subfolder + Dim sSubFolders + + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Name & "," + Next 'Subfolder + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Name & "," + Next 'Subfolder + End If + If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) + EnumFolderNames = Len(sSubFolders)>0 +End Function 'EnumFolderNames +'======================================================================================================= + +'Enumerates subfolders of a folder and returns True if subfolders exist +Function EnumFolders (sFolder, arrSubFolders) + Dim Folder, Subfolder + Dim sSubFolders + + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Path & "," + Next 'Subfolder + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Path & "," + Next 'Subfolder + End If + If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) + EnumFolders = Len(sSubFolders)>0 +End Function 'EnumFolders +'======================================================================================================= + +Sub GetMseFolderStructure (Folder) + Dim SubFolder + + For Each SubFolder in Folder.SubFolders + ReDim Preserve arrMseFolders(UBound(arrMseFolders)+1) + arrMseFolders(UBound(arrMseFolders)) = SubFolder.Path + GetMseFolderStructure SubFolder + Next 'SubFolder +End Sub 'GetMseFolderStructure +'======================================================================================================= + +'Wrapper to delete a folder +Sub DeleteFolder(sFolder) + Dim Folder + Dim sDelFolder, sFolderName, sNewPath + + 'Ensure trailing "\" + sFolder = sFolder & "\" + While InStr(sFolder,"\\")>0 + sFolder = Replace(sFolder,"\\","\") + Wend + + If dictionaryKeepFolder.Exists(LCase(sFolder)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFolder + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFolder + LogOnly " Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFolder))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFolder + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFolder + LogOnly " Remaining applications will need a repair!" + End If + End If + End If + + 'Strip trailing "\" + If Len(sFolder) > 1 Then + sFolder = Left(sFolder,Len(sFolder)-1) + End If + + On Error Resume Next + If oFso.FolderExists(sFolder) Then + sDelFolder = sFolder + ElseIf f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + sDelFolder = Wow64Folder(sFolder) + Else + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete folder: " & sDelFolder + oFso.DeleteFolder sDelFolder,True + Else + LogOnly " - Simulate delete folder: " & sDelFolder + End If + If Err <> 0 Then + CheckError "DeleteFolder" + 'Try to move the folder and delete from there + Set Folder = oFso.GetFolder(sDelFolder) + sFolderName = Folder.Name + sNewPath = sScrubDir & "\ScrubTmp" + Set Folder = Nothing + 'Ensure we stay within the same drive + If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) + 'Move the folder + LogOnly " - Moving folder to: " & sNewPath & "\" & sFolderName + oFso.MoveFolder sFolder,sNewPath & "\" & sFolderName + If Err <> 0 Then + CheckError "DeleteFolder (move)" + End If 'Err <> 0 + End If 'Err <> 0 +End Sub 'DeleteFolder +'======================================================================================================= + +'Delete empty folder structures +Sub DeleteEmptyFolders + Dim Folder + Dim sFolder + + ' cosmetic' task don't fail on error + On Error Resume Next + If Not IsArray(arrDeleteFolders) Then Exit Sub + Log vbCrLf & "Empty Folder Cleanup" + For Each sFolder in arrDeleteFolders + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + If CBool(Folder.Attributes AND 1024) Then + 'exclude protected folder + Else + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If + End If + Next 'sFolder + CheckError "DeleteEmptyFolders" + On Error Goto 0 +End Sub 'DeleteEmptyFolders +'======================================================================================================= + +'Delete indivdual empty folder structures +Sub DeleteEmptyFolder (sFolder) + Dim Folder + + ' cosmetic' task don't fail on error + On Error Resume Next + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + If CBool(Folder.Attributes AND 1024) Then + 'exclude protected folder + Else + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If + End If + + CheckError "DeleteEmptyFolder" + On Error Goto 0 +End Sub 'DeleteEmptyFolder +'======================================================================================================= + +'Wrapper to delete a folder and remove the empty parent folder structure +Sub SmartDeleteFolder(sFolder) + If oFso.FolderExists(sFolder) Then + If Not fDetectOnly Then + LogOnly " Request SmartDelete for folder: " & sFolder + SmartDeleteFolderEx sFolder + Else + LogOnly " Simulate request SmartDelete for folder: " & sFolder + End If + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + If Not fDetectOnly Then + LogOnly "Request SmartDelete for folder: " & Wow64Folder(sFolder) + SmartDeleteFolderEx Wow64Folder(sFolder) + Else + LogOnly "Simulate request SmartDelete for folder: " & Wow64Folder(sFolder) + End If + End If +End Sub 'SmartDeleteFolder +'======================================================================================================= + +'Executes the folder delete operation +Sub SmartDeleteFolderEx(sFolder) + Dim Folder + + On Error Resume Next + DeleteFolder sFolder : CheckError "SmartDeleteFolderEx" + On Error Goto 0 + Set Folder = oFso.GetFolder(oFso.GetParentFolderName(sFolder)) + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then SmartDeleteFolderEx(Folder.Path) +End Sub 'SmartDeleteFolderEx +'======================================================================================================= + +'Adds the folder structure to the 'KeepFolder' dictionary +Sub AddKeepFolder(sPath) + + Dim Folder + + 'Ensure trailing "\" + sPath = LCase(sPath) & "\" + While InStr(sPath,"\\")>0 + sPath = Replace(sPath,"\\","\") + Wend + + If NOT dictionaryKeepFolder.Exists (sPath) Then + dictionaryKeepFolder.Add sPath,sPath + Else + Exit Sub + End If + sPath = LCase(oFso.GetParentFolderName(sPath)) & "\" + If oFso.FolderExists(sPath) Then AddKeepFolder(sPath) +End Sub +'======================================================================================================= + +'Handles additional folder-path operations on 64 bit environments +Function Wow64Folder(sFolder) + If LCase(Left(sFolder,Len(sWinDir & "\System32"))) = LCase(sWinDir & "\System32") Then + Wow64Folder = sWinDir & "\syswow64" & Right(sFolder,Len(sFolder)-Len(sSys32Dir)) + ElseIf LCase(Left(sFolder,Len(sProgramFiles))) = LCase(sProgramFiles) Then + Wow64Folder = sProgramFilesX86 & Right(sFolder,Len(sFolder)-Len(sProgramFiles)) + Else + Wow64Folder = "?" 'Return invalid string to ensure the folder cannot exist + End If +End Function 'Wow64Folder +'======================================================================================================= + +Function HiveString(hDefKey) + On Error Resume Next + Select Case hDefKey + Case HKCR : HiveString = "HKEY_CLASSES_ROOT" + Case HKCU : HiveString = "HKEY_CURRENT_USER" + Case HKLM : HiveString = "HKEY_LOCAL_MACHINE" + Case HKU : HiveString = "HKEY_USERS" + Case Else : HiveString = hDefKey + End Select +End Function +'======================================================================================================= + +Function RegKeyExists(hDefKey,sSubKeyName) + Dim arrKeys + RegKeyExists = False + If oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) = 0 Then RegKeyExists = True +End Function +'======================================================================================================= + +Function RegValExists(hDefKey,sSubKeyName,sName) + Dim arrValueTypes, arrValueNames + Dim i + + RegValExists = False + If Not RegKeyExists(hDefKey,sSubKeyName) Then Exit Function + If sName = "" Then + RegValExists = True + Exit Function + End If + If oReg.EnumValues(hDefKey,sSubKeyName,arrValueNames,arrValueTypes) = 0 AND IsArray(arrValueNames) Then + For i = 0 To UBound(arrValueNames) + If LCase(arrValueNames(i)) = Trim(LCase(sName)) Then RegValExists = True + Next + End If 'oReg.EnumValues +End Function +'======================================================================================================= + +'Read the value of a given registry entry +Function RegReadValue(hDefKey, sSubKeyName, sName, sValue, sType) + Dim RetVal + Dim Item + Dim arrValues + + Select Case UCase(sType) + Case "1","REG_SZ" + RetVal = oReg.GetStringValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "2","REG_EXPAND_SZ" + RetVal = oReg.GetExpandedStringValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetExpandedStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "7","REG_MULTI_SZ" + RetVal = oReg.GetMultiStringValue(hDefKey,sSubKeyName,sName,arrValues) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetMultiStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,arrValues) + If RetVal = 0 Then sValue = Join(arrValues,chr(34)) + + Case "4","REG_DWORD" + RetVal = oReg.GetDWORDValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then + RetVal = oReg.GetDWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + End If + + Case "3","REG_BINARY" + RetVal = oReg.GetBinaryValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetBinaryValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "11","REG_QWORD" + RetVal = oReg.GetQWORDValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetQWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case Else + RetVal = -1 + End Select 'sValue + + RegReadValue = (RetVal = 0) +End Function 'RegReadValue +'======================================================================================================= + +'Enumerate a registry key to return all values +Function RegEnumValues(hDefKey,sSubKeyName,arrNames, arrTypes) + Dim RetVal, RetVal64 + Dim arrNames32, arrNames64, arrTypes32, arrTypes64 + + If f64 Then + RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames32,arrTypes32) + RetVal64 = oReg.EnumValues(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrNames64,arrTypes64) + If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrTypes32) Then + arrNames = arrNames32 + arrTypes = arrTypes32 + End If + If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames64) AND IsArray(arrTypes64) Then + arrNames = arrNames64 + arrTypes = arrTypes64 + End If + If (RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrNames64) AND IsArray(arrTypes32) AND IsArray(arrTypes64) Then + arrNames = RemoveDuplicates(Split((Join(arrNames32,"\") & "\" & Join(arrNames64,"\")),"\")) + arrTypes = RemoveDuplicates(Split((Join(arrTypes32,"\") & "\" & Join(arrTypes64,"\")),"\")) + End If + Else + RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) + End If 'f64 + RegEnumValues = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrNames) AND IsArray(arrTypes) +End Function 'RegEnumValues +'======================================================================================================= + +'Enumerate a registry key to return all subkeys +Function RegEnumKey(hDefKey,sSubKeyName,arrKeys) + Dim RetVal, RetVal64 + Dim arrKeys32, arrKeys64 + + If f64 Then + RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys32) + RetVal64 = oReg.EnumKey(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrKeys64) + If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrKeys32) Then arrKeys = arrKeys32 + If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrKeys64) Then arrKeys = arrKeys64 + If (RetVal = 0) AND (RetVal64 = 0) Then + If IsArray(arrKeys32) AND IsArray (arrKeys64) Then + arrKeys = RemoveDuplicates(Split((Join(arrKeys32,"\") & "\" & Join(arrKeys64,"\")),"\")) + ElseIf IsArray(arrKeys64) Then + arrKeys = arrKeys64 + Else + arrKeys = arrKeys32 + End If + End If + Else + RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) + End If 'f64 + RegEnumKey = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrKeys) +End Function 'RegEnumKey +'======================================================================================================= + +'Wrapper around oReg.DeleteValue to handle 64 bit +Sub RegDeleteValue(hDefKey, sSubKeyName, sName, fRegMultiSZ) + Dim sWow64Key,sRealName + Dim iRetVal + + sRealName = sName + If UCase(sName) = "(DEFAULT)" Then sRealName = "" + + If dictionaryKeepReg.Exists(LCase(sSubKeyName & sName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName) & sName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + End If + + If RegValExists(hDefKey,sSubKeyName,sRealName) Then + On Error Resume Next + If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then + LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName + iRetVal = 0 + iRetVal = oReg.DeleteValue(hDefKey, sSubKeyName, sRealName) + CheckError "RegDeleteValue" + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + Else + LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName + End If + On Error Goto 0 + End If 'RegValExists + If f64 Then + sWow64Key = Wow64Key(hDefKey, sSubKeyName) + If RegValExists(hDefKey,sWow64Key,sRealName) Then + On Error Resume Next + If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then + LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName + iRetVal = 0 + iRetVal = oReg.DeleteValue(hDefKey, sWow64Key, sRealName) + CheckError "RegDeleteValue" + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + Else + LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName + End If + On Error Goto 0 + End If 'RegKeyExists + End If +End Sub 'RegDeleteValue +'======================================================================================================= + +'Wrappper around RegDeleteKeyEx to handle 64bit scenrios +Sub RegDeleteKey(hDefKey, sSubKeyName) + Dim sWow64Key + + 'Ensure trailing "\" + sSubKeyName = sSubKeyName & "\" + While InStr(sSubKeyName,"\\")>0 + sSubKeyName = Replace(sSubKeyName,"\\","\") + Wend + + If dictionaryKeepReg.Exists(LCase(sSubKeyName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + End If + + If Len(sSubKeyName) > 1 Then + 'Strip of trailing "\" + sSubKeyName = Left(sSubKeyName,Len(sSubKeyName)-1) + End If + + If RegKeyExists(hDefKey, sSubKeyName) Then + If Not fDetectOnly Then + LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName + On Error Resume Next + RegDeleteKeyEx hDefKey, sSubKeyName + On Error Goto 0 + Else + LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName + End If + End If 'RegKeyExists + If f64 Then + sWow64Key = Wow64Key(hDefKey, sSubKeyName) + If RegKeyExists(hDefKey,sWow64Key) Then + If Not fDetectOnly Then + LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key + On Error Resume Next + RegDeleteKeyEx hDefKey, sWow64Key + On Error Goto 0 + Else + LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key + End If + End If 'RegKeyExists + End If +End Sub 'RegDeleteKey +'======================================================================================================= + +'Recursively delete a registry structure +Sub RegDeleteKeyEx(hDefKey, sSubKeyName) + Dim arrSubkeys + Dim sSubkey + Dim iRetVal + + On Error Resume Next + oReg.EnumKey hDefKey, sSubKeyName, arrSubkeys + If IsArray(arrSubkeys) Then + For Each sSubkey In arrSubkeys + RegDeleteKeyEx hDefKey, sSubKeyName & "\" & sSubkey + Next + End If + If Not fDetectOnly Then + iRetVal = 0 + iRetVal = oReg.DeleteKey(hDefKey,sSubKeyName) + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + End If +End Sub 'RegDeleteKeyEx +'======================================================================================================= + +'Return the alternate regkey location on 64bit environment +Function Wow64Key(hDefKey, sSubKeyName) + Dim iPos + + Select Case hDefKey + Case HKCU + If Left(sSubKeyName,17) = "Software\Classes\" Then + Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) + Else + iPos = InStr(sSubKeyName,"\") + Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) + End If + + Case HKLM + If Left(sSubKeyName,17) = "Software\Classes\" Then + Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) + Else + iPos = InStr(sSubKeyName,"\") + Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) + End If + + Case Else + Wow64Key = "Wow6432Node\" & sSubKeyName + + End Select 'hDefKey +End Function 'Wow64Key +'======================================================================================================= + +'Remove duplicate entries from a one dimensional array +Function RemoveDuplicates(Array) + Dim Item + Dim oDic + + Set oDic = CreateObject("Scripting.Dictionary") + For Each Item in Array + If Not oDic.Exists(Item) Then oDic.Add Item,Item + Next 'Item + RemoveDuplicates = oDic.Keys +End Function 'RemoveDuplicates +'======================================================================================================= + +'End running instances of setup +Sub EndCurrentInstalls () + Dim Processes, Process + Dim iRet + + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like '%setup%' OR Name like '%install%'") + For Each Process in Processes + Log " - End process " & Process.Name + iRet = Process.Terminate() + CheckError "EndCurrentInstalls: " & "Process.Name" + Next 'Process + StopService "msiserver" +End Sub 'EndCurrentInstalls +'======================================================================================================= + +'Uses WMI to stop a service +Function StopService(sService) + Dim Services, Service + Dim sQuery + Dim iRet + + On Error Resume Next + + iRet = 0 + sQuery = "Select * From Win32_Service Where Name='" & sService & "'" + Set Services = oWmiLocal.Execquery(sQuery) + 'Stop the service + For Each Service in Services + If UCase(Service.State) = "STARTED" Then iRet = Service.StopService + If UCase(Service.State) = "RUNNING" Then iRet = Service.StopService + + Next 'Service + StopService = (iRet = 0) +End Function 'StopService +'======================================================================================================= + +'Delete a service +Sub DeleteService(sService) + Dim Services, Service, Processes, Process + Dim sQuery, sStates + Dim iRet + + On Error Resume Next + + sStates = "STARTED;RUNNING" + sQuery = "Select * From Win32_Service Where Name='" & sService & "'" + Set Services = oWmiLocal.Execquery(sQuery) + + 'Stop and delete the service + For Each Service in Services + Log " Found service " & sService & " in state " & Service.State + If InStr(sStates,UCase(Service.State))>0 Then iRet = Service.StopService() + 'Ensure no more instances of the service are running + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='" & sService & ".exe'") + For Each Process in Processes + iRet = Process.Terminate() + Next 'Process + If Not fDetectOnly Then + Log " - Deleting Service -> " & sService + iRet = Service.Delete() + Else + Log " - Simulate deleting Service -> " & sService + End If + Next 'Service + Set Services = Nothing + Err.Clear + +End Sub 'DeleteService +'======================================================================================================= + +'Translation for setup.exe error codes +Function SetupRetVal(RetVal) + Select Case RetVal + Case 0 : SetupRetVal = "Success" + Case 30001,1 : SetupRetVal = "AbstractMethod" + Case 30002,2 : SetupRetVal = "ApiProhibited" + Case 30003,3 : SetupRetVal = "AlreadyImpersonatingAUser" + Case 30004,4 : SetupRetVal = "AlreadyInitialized" + Case 30005,5 : SetupRetVal = "ArgumentNullException" + Case 30006,6 : SetupRetVal = "AssertionFailed" + Case 30007,7 : SetupRetVal = "CABFileAddFailed" + Case 30008,8 : SetupRetVal = "CommandFailed" + Case 30009,9 : SetupRetVal = "ConcatenationFailed" + Case 30010,10 : SetupRetVal = "CopyFailed" + Case 30011,11 : SetupRetVal = "CreateEventFailed" + Case 30012,12 : SetupRetVal = "CustomizationPatchNotFound" + Case 30013,13 : SetupRetVal = "CustomizationPatchNotApplicable" + Case 30014,14 : SetupRetVal = "DuplicateDefinition" + Case 30015,15 : SetupRetVal = "ErrorCodeOnly - Passthrough for Win32 error" + Case 30016,16 : SetupRetVal = "ExceptionNotThrown" + Case 30017,17 : SetupRetVal = "FailedToImpersonateUser" + Case 30018,18 : SetupRetVal = "FailedToInitializeFlexDataSource" + Case 30019,19 : SetupRetVal = "FailedToStartClassFactories" + Case 30020,20 : SetupRetVal = "FileNotFound" + Case 30021,21 : SetupRetVal = "FileNotOpen" + Case 30022,22 : SetupRetVal = "FlexDialogAlreadyInitialized" + Case 30023,23 : SetupRetVal = "HResultOnly - Passthrough for HRESULT errors" + Case 30024,24 : SetupRetVal = "HWNDNotFound" + Case 30025,25 : SetupRetVal = "IncompatibleCacheAction" + Case 30026,26 : SetupRetVal = "IncompleteProductAddOns" + Case 30027,27 : SetupRetVal = "InstalledProductStateCorrupt" + Case 30028,28 : SetupRetVal = "InsufficientBuffer" + Case 30029,29 : SetupRetVal = "InvalidArgument" + Case 30030,30 : SetupRetVal = "InvalidCDKey" + Case 30031,31 : SetupRetVal = "InvalidColumnType" + Case 30032,31 : SetupRetVal = "InvalidConfigAddLanguage" + Case 30033,33 : SetupRetVal = "InvalidData" + Case 30034,34 : SetupRetVal = "InvalidDirectory" + Case 30035,35 : SetupRetVal = "InvalidFormat" + Case 30036,36 : SetupRetVal = "InvalidInitialization" + Case 30037,37 : SetupRetVal = "InvalidMethod" + Case 30038,38 : SetupRetVal = "InvalidOperation" + Case 30039,39 : SetupRetVal = "InvalidParameter" + Case 30040,40 : SetupRetVal = "InvalidProductFromARP" + Case 30041,41 : SetupRetVal = "InvalidProductInConfigXml" + Case 30042,42 : SetupRetVal = "InvalidReference" + Case 30043,43 : SetupRetVal = "InvalidRegistryValueType" + Case 30044,44 : SetupRetVal = "InvalidXMLProperty" + Case 30045,45 : SetupRetVal = "InvalidMetadataFile" + Case 30046,46 : SetupRetVal = "LogNotInitialized" + Case 30047,47 : SetupRetVal = "LogAlreadyInitialized" + Case 30048,48 : SetupRetVal = "MissingXMLNode" + Case 30049,49 : SetupRetVal = "MsiTableNotFound" + Case 30050,50 : SetupRetVal = "MsiAPICallFailure" + Case 30051,51 : SetupRetVal = "NodeNotOfTypeElement" + Case 30052,52 : SetupRetVal = "NoMoreGraceBoots" + Case 30053,53 : SetupRetVal = "NoProductsFound" + Case 30054,54 : SetupRetVal = "NoSupportedCulture" + Case 30055,55 : SetupRetVal = "NotYetImplemented" + Case 30056,56 : SetupRetVal = "NotAvailableCulture" + Case 30057,57 : SetupRetVal = "NotCustomizationPatch" + Case 30058,58 : SetupRetVal = "NullReference" + Case 30059,59 : SetupRetVal = "OCTPatchForbidden" + Case 30060,60 : SetupRetVal = "OCTWrongMSIDll" + Case 30061,61 : SetupRetVal = "OutOfBoundsIndex" + Case 30062,62 : SetupRetVal = "OutOfDiskSpace" + Case 30063,63 : SetupRetVal = "OutOfMemory" + Case 30064,64 : SetupRetVal = "OutOfRange" + Case 30065,65 : SetupRetVal = "PatchApplicationFailure" + Case 30066,66 : SetupRetVal = "PreReqCheckFailure" + Case 30067,67 : SetupRetVal = "ProcessAlreadyStarted" + Case 30068,68 : SetupRetVal = "ProcessNotStarted" + Case 30069,69 : SetupRetVal = "ProcessNotFinished" + Case 30070,70 : SetupRetVal = "ProductAlreadyDefined" + Case 30071,71 : SetupRetVal = "ResourceAlreadyTracked" + Case 30072,72 : SetupRetVal = "ResourceNotFound" + Case 30073,73 : SetupRetVal = "ResourceNotTracked" + Case 30074,74 : SetupRetVal = "SQLAlreadyConnected" + Case 30075,75 : SetupRetVal = "SQLFailedToAllocateHandle" + Case 30076,76 : SetupRetVal = "SQLFailedToConnect" + Case 30077,77 : SetupRetVal = "SQLFailedToExecuteStatement" + Case 30078,78 : SetupRetVal = "SQLFailedToRetrieveData" + Case 30079,79 : SetupRetVal = "SQLFailedToSetAttribute" + Case 30080,80 : SetupRetVal = "StorageNotCreated" + Case 30081,81 : SetupRetVal = "StreamNameTooLong" + Case 30082,82 : SetupRetVal = "SystemError" + Case 30083,83 : SetupRetVal = "ThreadAlreadyStarted" + Case 30084,84 : SetupRetVal = "ThreadNotStarted" + Case 30085,85 : SetupRetVal = "ThreadNotFinished" + Case 30086,86 : SetupRetVal = "TooManyProducts" + Case 30087,87 : SetupRetVal = "UnexpectedXMLNodeType" + Case 30088,88 : SetupRetVal = "UnexpectedError" + Case 30089,89 : SetupRetVal = "Unitialized" + Case 30090,90 : SetupRetVal = "UserCancel" + Case 30091,91 : SetupRetVal = "ExternalCommandFailed" + Case 30092,92 : SetupRetVal = "SPDatabaseOverSize" + Case 30093,93 : SetupRetVal = "IntegerTruncation" + 'msiexec return values + Case 1259 : SetupRetVal = "APPHELP_BLOCK" + Case 1601 : SetupRetVal = "INSTALL_SERVICE_FAILURE" + Case 1602 : SetupRetVal = "INSTALL_USEREXIT" + Case 1603 : SetupRetVal = "INSTALL_FAILURE" + Case 1604 : SetupRetVal = "INSTALL_SUSPEND" + Case 1605 : SetupRetVal = "UNKNOWN_PRODUCT" + Case 1606 : SetupRetVal = "UNKNOWN_FEATURE" + Case 1607 : SetupRetVal = "UNKNOWN_COMPONENT" + Case 1608 : SetupRetVal = "UNKNOWN_PROPERTY" + Case 1609 : SetupRetVal = "INVALID_HANDLE_STATE" + Case 1610 : SetupRetVal = "BAD_CONFIGURATION" + Case 1611 : SetupRetVal = "INDEX_ABSENT" + Case 1612 : SetupRetVal = "INSTALL_SOURCE_ABSENT" + Case 1613 : SetupRetVal = "INSTALL_PACKAGE_VERSION" + Case 1614 : SetupRetVal = "PRODUCT_UNINSTALLED" + Case 1615 : SetupRetVal = "BAD_QUERY_SYNTAX" + Case 1616 : SetupRetVal = "INVALID_FIELD" + Case 1618 : SetupRetVal = "INSTALL_ALREADY_RUNNING" + Case 1619 : SetupRetVal = "INSTALL_PACKAGE_OPEN_FAILED" + Case 1620 : SetupRetVal = "INSTALL_PACKAGE_INVALID" + Case 1621 : SetupRetVal = "INSTALL_UI_FAILURE" + Case 1622 : SetupRetVal = "INSTALL_LOG_FAILURE" + Case 1623 : SetupRetVal = "INSTALL_LANGUAGE_UNSUPPORTED" + Case 1624 : SetupRetVal = "INSTALL_TRANSFORM_FAILURE" + Case 1625 : SetupRetVal = "INSTALL_PACKAGE_REJECTED" + Case 1626 : SetupRetVal = "FUNCTION_NOT_CALLED" + Case 1627 : SetupRetVal = "FUNCTION_FAILED" + Case 1628 : SetupRetVal = "INVALID_TABLE" + Case 1629 : SetupRetVal = "DATATYPE_MISMATCH" + Case 1630 : SetupRetVal = "UNSUPPORTED_TYPE" + Case 1631 : SetupRetVal = "CREATE_FAILED" + Case 1632 : SetupRetVal = "INSTALL_TEMP_UNWRITABLE" + Case 1633 : SetupRetVal = "INSTALL_PLATFORM_UNSUPPORTED" + Case 1634 : SetupRetVal = "INSTALL_NOTUSED" + Case 1635 : SetupRetVal = "PATCH_PACKAGE_OPEN_FAILED" + Case 1636 : SetupRetVal = "PATCH_PACKAGE_INVALID" + Case 1637 : SetupRetVal = "PATCH_PACKAGE_UNSUPPORTED" + Case 1638 : SetupRetVal = "PRODUCT_VERSION" + Case 1639 : SetupRetVal = "INVALID_COMMAND_LINE" + Case 1640 : SetupRetVal = "INSTALL_REMOTE_DISALLOWED" + Case 1641 : SetupRetVal = "SUCCESS_REBOOT_INITIATED" + Case 1642 : SetupRetVal = "PATCH_TARGET_NOT_FOUND" + Case 1643 : SetupRetVal = "PATCH_PACKAGE_REJECTED" + Case 1644 : SetupRetVal = "INSTALL_TRANSFORM_REJECTED" + Case 1645 : SetupRetVal = "INSTALL_REMOTE_PROHIBITED" + Case 1646 : SetupRetVal = "PATCH_REMOVAL_UNSUPPORTED" + Case 1647 : SetupRetVal = "UNKNOWN_PATCH" + Case 1648 : SetupRetVal = "PATCH_NO_SEQUENCE" + Case 1649 : SetupRetVal = "PATCH_REMOVAL_DISALLOWED" + Case 1650 : SetupRetVal = "INVALID_PATCH_XML" + Case 3010 : SetupRetVal = "SUCCESS_REBOOT_REQUIRED" + Case Else : SetupRetVal = "Unknown Return Value" + End Select +End Function 'SetupRetVal +'======================================================================================================= + +Function GetProductID(sProdID) + Dim sReturn + + Select Case sProdId + + Case "000F" : sReturn = "MONDO" + Case "0010" : sReturn = "WEBFLDRS" + Case "0011" : sReturn = "PROPLUS" + Case "0012" : sReturn = "STANDARD" + Case "0013" : sReturn = "BASIC" + Case "0014" : sReturn = "PRO" + Case "0015" : sReturn = "ACCESS" + Case "0016" : sReturn = "EXCEL" + Case "0017" : sReturn = "SharePointDesigner" + Case "0018" : sReturn = "PowerPoint" + Case "0019" : sReturn = "Publisher" + Case "001A" : sReturn = "Outlook" + Case "001B" : sReturn = "Word" + Case "001C" : sReturn = "AccessRuntime" + Case "001F" : sReturn = "Proof" + Case "0020" : sReturn = "O2007CNV" + Case "0021" : sReturn = "VisualWebDeveloper" + Case "0026" : sReturn = "ExpressionWeb" + Case "0029" : sReturn = "Excel" + Case "002A" : sReturn = "Office64" + Case "002B" : sReturn = "Word" + Case "002C" : sReturn = "Proofing" + Case "002E" : sReturn = "Ultimate" + Case "002F" : sReturn = "HomeAndStudent" + Case "0028" : sReturn = "IME" + Case "0030" : sReturn = "Enterprise" + Case "0031" : sReturn = "ProfessionalHybrid" + Case "0033" : sReturn = "Personal" + Case "0035" : sReturn = "ProfessionalHybrid" + Case "0037" : sReturn = "PowerPoint" + Case "0038" : sReturn = "OlTimeZoneTool" + Case "003A" : sReturn = "PrjStd" + Case "003B" : sReturn = "PrjPro" + Case "003D" : sReturn = "SINGLEIMAGE" + Case "0043" : sReturn = "OFFICE32" + Case "0044" : sReturn = "InfoPath" + Case "0045" : sReturn = "XWEB" + Case "0048" : sReturn = "OLC" + Case "0049" : sReturn = "ACADEMIC" + Case "004A" : sReturn = "OWC11" + Case "0051" : sReturn = "VISPRO" + Case "0052" : sReturn = "VisView" + Case "0053" : sReturn = "VisStd" + Case "0054" : sReturn = "VisMUI" + Case "0055" : sReturn = "VisMUI" + Case "0057" : sReturn = "VISIO" + Case "0061" : sReturn = "CLICK2RUN" + Case "0062" : sReturn = "CLICK2RUN" + Case "0066" : sReturn = "CLICK2RUN" + Case "006C" : sReturn = "CLICK2RUN" + Case "006D" : sReturn = "CLICK2RUN" + Case "006E" : sReturn = "Shared" + Case "006F" : sReturn = "OFFICE" + Case "0070" : sReturn = "OOBE" + Case "0074" : sReturn = "STARTER" + Case "007A" : sReturn = "OLC" 'Outlook Connector + Case "007C" : sReturn = "OSCFB" 'Outlook Social Connector for FaceBook + Case "007D" : sReturn = "OSCWL" 'Outlook Social Connector for Windows Live Messenger + Case "007F" : sReturn = "OLC" 'Outlook Social Connector + Case "008A" : sReturn = "RecentDocs" + Case "008B" : sReturn = "SmallBusinessBasics" + Case "00A1" : sReturn = "ONENOTE" + Case "00A3" : sReturn = "OneNoteHomeStudent" + Case "00A4" : sReturn = "OWC11" + Case "00A7" : sReturn = "CPAO" + Case "00A9" : sReturn = "InterConnect" + Case "00AF" : sReturn = "PPtView" + Case "00B0" : sReturn = "ExPdf" + Case "00B1" : sReturn = "ExXps" + Case "00B2" : sReturn = "ExPdfXps" + Case "00B4" : sReturn = "PrjMUI" + Case "00B5" : sReturn = "PrjtMUI" + Case "00B9" : sReturn = "AER" + Case "00BA" : sReturn = "Groove" + Case "00CA" : sReturn = "SmallBusiness" + Case "00E0" : sReturn = "Outlook" + Case "00D1" : sReturn = "ACE" + Case "0100" : sReturn = "OfficeMUI" + Case "0101" : sReturn = "OfficeXMUI" + Case "0103" : sReturn = "PTK" + Case "0114" : sReturn = "GrooveSetupMetadata" + Case "0115" : sReturn = "SharedSetupMetadata" + Case "0116" : sReturn = "SharedSetupMetadata" + Case "0117" : sReturn = "AccessSetupMetadata" + Case "011A" : sReturn = "SendASmile" + Case "011D" : sReturn = "ProPlusSubscription" + Case "011F" : sReturn = "OLConnect" + Case "0126" : sReturn = "WWLIBCXM" + + Case "1014" : sReturn = "STS" + Case "1015" : sReturn = "WSSMUI" + Case "1032" : sReturn = "PJSVRAPP" + Case "104B" : sReturn = "SPS" + Case "104E" : sReturn = "SPSMUI" + Case "107F" : sReturn = "OSrv" + Case "1080" : sReturn = "OSrv" + Case "1088" : sReturn = "lpsrvwfe" + Case "10D7" : sReturn = "IFS" + Case "10D8" : sReturn = "IFSMUI" + Case "10EB" : sReturn = "DLCAPP" + Case "10F5" : sReturn = "XLSRVAPP" + Case "10F6" : sReturn = "XlSrvWFE" + Case "10F7" : sReturn = "DLC" + Case "10F8" : sReturn = "SlSrvMui" + Case "10FB" : sReturn = "OSrchWFE" + Case "10FC" : sReturn = "OSRCHAPP" + Case "10FD" : sReturn = "OSrchMUI" + Case "1103" : sReturn = "DLC" + Case "1104" : sReturn = "LHPSRV" + Case "1105" : sReturn = "PIA" + Case "1106" : sReturn = "GRVMGMTSRV" + Case "1109" : sReturn = "GSERVERRELAY" + Case "110D" : sReturn = "OSERVER" + Case "110F" : sReturn = "PSERVER" + Case "1110" : sReturn = "WSS" + Case "1121" : sReturn = "SPSSDK" + Case "1122" : sReturn = "SPSDev" + Case "1163" : sReturn = "SCC" 'SharePoint Client Components + Case Else : sReturn = sProdID + + End Select 'sProdId + GetProductID = sReturn +End Function 'GetProductID +'======================================================================================================= + +Sub Log (sLog) + If NOT fQuiet AND fCScript Then wscript.echo sLog + LogStream.WriteLine sLog +End Sub 'Log +'======================================================================================================= + +Sub LogOnly (sLog) + LogStream.WriteLine sLog +End Sub 'Log +'======================================================================================================= + +Sub CheckError(sModule) + If Err <> 0 Then + LogOnly " " & Now & " - " & sModule & " - Source: " & Err.Source & "; Err# (Hex): " & Hex( Err ) & _ + "; Err# (Dec): " & Err & "; Description : " & Err.Description + End If 'Err = 0 + Err.Clear +End Sub +'======================================================================================================= + +'Command line parser +Sub ParseCmdLine + + Dim iCnt, iArgCnt + Dim arrArguments + Dim sArg0, sArguments + + iArgCnt = Wscript.Arguments.Count + If iArgCnt > 1 Then + If wscript.Arguments(1) = "UAC" Then + If wscript.arguments.count = 2 Then iArgCnt = 0 + End If + End If + + sArguments = "" + If iArgCnt = 0 Then + If sDefault = "" Then + 'Create the log + CreateLog + Log "No argument specified. Preparing user prompt" & vbCrLf + fPassive = False + FindInstalledOProducts + If dicInstalledSku.Count > 0 Then sDefault = Join(RemoveDuplicates(dicInstalledSku.Items),",") Else sDefault = "CLIENTALL" + sDefault = InputBox("Enter a list of " & ONAME & " products to remove" & vbCrLf & vbCrLf & _ + "Examples:" & vbCrLf & _ + "CLIENTALL" & vbTab & "-> all Client products" & vbCrLf & _ + "SERVER" & vbTab & "-> all Server products" & vbCrLf & _ + "ALL" & vbTab & vbTab & "-> all Server & Client products" & vbCrLf & _ + "ProPlus,PrjPro" & vbTab & "-> ProPlus and Project" & vbCrLf &_ + "?" & vbTab & vbTab & "-> display Help", _ + SCRIPTFILE & " - " & ONAME & " remover", _ + sDefault) + + If IsEmpty(sDefault) Then 'User cancelled + Log "User cancelled. CleanUp & Exit." + 'Undo temporary entries created in ARP + TmpKeyCleanUp + wscript.quit 1602 + End If 'IsEmpty(sDefault) + Log "Answer from prompt: " & sDefault & vbCrLf + End If + sDefault = Trim(UCase(Trim(Replace(sDefault, Chr(34), "")))) + arrArguments = Split(Trim(sDefault), " ") + If UBound(arrArguments) = -1 Then ReDim arrArguments(0) + Else + ReDim arrArguments(iArgCnt-1) + For iCnt = 0 To (iArgCnt-1) + sArguments = sArguments & arrArguments(iCnt) & " " + arrArguments(iCnt) = UCase(Wscript.Arguments(iCnt)) + Next 'iCnt + End If 'iArgCnt = 0 + + 'Handle the SKU list + sArg0 = Replace(arrArguments(0), "/", "") + If Left(sArg0, 1) = "-" Then sArg0 = Mid(sArg0, 2) + + Select Case UCase(sArg0) + + Case "?" + ShowSyntax + + Case "ALL" + fRemoveAll = True + fRemoveOse = False + + Case "CLIENTSUITES" + fRemoveCSuites = True + fRemoveOse = False + + Case "CLIENTSTANDALONE" + fRemoveCSingle = True + fRemoveOse = False + + Case "CLIENTALL" + fRemoveCSuites = True + fRemoveCSingle = True + fRemoveOse = False + + Case "SERVER" + fRemoveSrv = True + fRemoveOse = False + + Case "ALL,OSE" + fRemoveAll = True + fRemoveOse = True + + Case Else + fRemoveAll = False + fRemoveOse = False + sSkuRemoveList = sArg0 + + End Select + + For iCnt = 0 To UBound(arrArguments) + + Select Case arrArguments(iCnt) + + Case "?", "/?", "-?" + ShowSyntax + + Case "/B", "/BYPASS" + If UBound(arrArguments) > iCnt Then + If InStr(arrArguments(iCnt + 1), "1") > 0 Then fBypass_Stage1 = True + If InStr(arrArguments(iCnt + 1), "2") > 0 Then fBypass_Stage2 = True + If InStr(arrArguments(iCnt + 1), "3") > 0 Then fBypass_Stage3 = True + If InStr(arrArguments(iCnt + 1), "4") > 0 Then fBypass_Stage4 = True + End If + + Case "/D", "/DELETEUSERSETTINGS" + fKeepUser = False + + Case "/FR", "/FASTREMOVE" + fBypass_Stage1 = True + fSkipSD = True + + Case "/F", "/FORCE" + fForce = True + + Case "/K", "/KEEPUSERSETTINGS" + fKeepUser = True + + Case "/KEEPSG", "/KEEPSOFTGRID" + fKeepSG = True + + Case "/KEEPLYNC" + fRemoveLync = False + + Case "/REMOVELYNC" + fRemoveLync = True + + Case "/L", "/LOG" + fLogInitialized = False + If UBound(arrArguments) > iCnt Then + If oFso.FolderExists(arrArguments(iCnt + 1)) Then + sLogDir = arrArguments(iCnt + 1) + Else + On Error Resume Next + oFso.CreateFolder(arrArguments(iCnt + 1)) + If Err <> 0 Then sLogDir = sScrubDir Else sLogDir = arrArguments(iCnt + 1) + End If + End If + + Case "/NOCANCEL" + fNoCancel = True + + Case "/NOREBOOT" + fNoReboot = True + + Case "/NE", "/NOELEVATE" + fNoElevate = True + + Case "/O", "/OSE" + fRemoveOse = True + + Case "/P", "/PREVIEW", "/DETECTONLY" + fDetectOnly = True + + Case "/PASSIVE", "/QB-" + fPassive = True + + Case "/Q", "/QUIET" + fQuiet = True + + Case "/QB" + fQuiet = True + fBasic = True + + Case "/QND" + fBypass_Stage1 = True + fBypass_Stage2 = True + fBypass_Stage3 = True + fRemoveOse = True + fRemoveOspp = True + fRemoveAll = True + fSkipSD = True + fForce = True + + Case "/R", "/RECONCILE" + fTryReconcile = True + + Case "/REMOVEOSPP" , "/CLEANOSPP" + fRemoveOspp = True + + Case "/S", "/SKIPSD", "/SKIPSHORTCUTDETECTION" + fSkipSD = True + + Case "/SC", "/SCANCOMPONENTS" + fBypass_Stage1 = False + + Case Else + + End Select + Next 'iCnt + If Not fLogInitialized Then CreateLog + LogOnly "Arguments: " & sArguments & vbCrLf + +End Sub 'ParseCmdLine +'======================================================================================================= + +Sub CreateLog + Dim DateTime + Dim sLogName + + On Error Resume Next + 'Create the log file + Set DateTime = CreateObject("WbemScripting.SWbemDateTime") + DateTime.SetVarDate Now,True + sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") + sLogName = sLogName & "_" & Left(DateTime.Value,14) + sLogName = sLogName & "_ScrubLog.txt" + Err.Clear + Set LogStream = oFso.CreateTextFile(sLogName,True,True) + If Err <> 0 Then + Err.Clear + sLogDir = sScrubDir + sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") + sLogName = sLogName & "_" & Left(DateTime.Value,14) + sLogName = sLogName & "_ScrubLog.txt" + Set LogStream = oFso.CreateTextFile(sLogName,True,True) + End If + + Log "Microsoft Customer Support Services - " & ONAME & " Removal Utility" & vbCrLf & vbCrLf & _ + "OffScrub Version: " & SCRIPTVERSION & vbCrLf & _ + "64 bit OS: " & f64 + LogOnly "OS Details: " & sOSinfo & vbCrLf + Log "Start removal: " & Now & vbCrLf + fLogInitialized = True +End Sub 'CreateLog +'======================================================================================================= +'------------------------------------------------------------------------------- +' RelaunchAs64Host +' +' Relaunch self with 64 bit WScript host +'------------------------------------------------------------------------------- +Sub RelaunchAs64Host + Dim Argument, sCmd + + sCmd = Replace (LCase(wscript.Path), "syswow64", "sysnative") & "\cscript.exe " & Chr(34) & WScript.scriptFullName & Chr(34) + If fQuiet AND NOT fCScript Then sCmd = Replace (sCmd, "\cscript.exe", "\wscript.exe") + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + sCmd = sCmd & " " & chr(34) & Argument & chr(34) + Next 'Argument + Else + If Not sDefault = "" Then sCmd = sCmd & " " & chr(34) & sDefault & chr(34) + End If + sCmd = sCmd & " /ChangedHostBitness" + Wscript.Quit oWShell.Run(sCmd, 1, True) + +End Sub 'RelaunchAs64Host +'======================================================================================================= + +Sub RelaunchAsCScript + Dim Argument + Dim sCmdLine + + sCmdLine = "cmd.exe /c " & WScript.Path & "\cscript.exe //NOLOGO " & Chr(34) & WScript.scriptFullName & Chr(34) + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) + Next 'Argument + End If + Log "Relaunching with CScript as host. Full command: " & sCmdLine + Wscript.Quit oWShell.Run(sCmdLine, 1, True) +End Sub 'RelaunchAsCScript +'======================================================================================================= + +Sub RelaunchElevated + Dim Argument + Dim sCmdLine + Dim oShell + + Set oShell = CreateObject("Shell.Application") + + sCmdLine = Chr(34) & WScript.scriptFullName & Chr(34) + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + Select Case UCase(Argument) + Case "/Q","/QUIET" + 'Don't try to relaunch in quiet mode + Exit Sub + Case "UAC" + 'Already tried elevated relaunch + Exit Sub + Case Else + sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) + End Select + Next 'Argument + Else + If Not sDefault = "" Then sCmdLine = sCmdLine & " " & chr(34) & sDefault & chr(34) + End If + oShell.ShellExecute "cscript.exe", sCmdLine & " /NoElevate UAC", "", "runas", 1 + Wscript.Quit 5 +End Sub 'RelaunchElevated +'======================================================================================================= + +'Show the expected syntax for the script usage +Sub ShowSyntax + TmpKeyCleanUp + Wscript.Echo sErr & vbCrLf & _ + SCRIPTFILE & " V " & SCRIPTVERSION & vbCrLf & _ + "Copyright (c) Microsoft Corporation. All Rights Reserved" & vbCrLf & vbCrLf & _ + SCRIPTFILE & " helps to remove " & ONAME & " Server & Client products" & vbCrLf & _ + "when a regular uninstall is no longer possible" & vbCrLf & vbCrLf & _ + "Usage:" & vbTab & SCRIPTFILE & " [List of config ProductIDs] [Options]" & vbCrLf & vbCrLf & _ + vbTab & "/? ' Displays this help"& vbCrLf &_ + vbTab & "/Log [LogfolderPath] ' Custom folder for log files" & vbCrLf & _ + vbTab & "/SkipSD ' Skips the ShortcutDetection in local profiles" & vbCrLf & _ + vbTab & "/NoCancel ' Setup.exe and Msiexec.exe have no Cancel button" & vbCrLf &_ + vbTab & "/Quiet ' Script, Setup.exe and Msiexec.exe run quiet with no UI" & vbCrLf &_ + vbTab & "/Preview ' Run this script to preview what would get removed"& vbCrLf & vbCrLf & _ + "Examples:"& vbCrLf & _ + vbTab & SCRIPTFILE & " CLIENTSUITES ' Remove all " & ONAME & " Client suites/products" & vbCrLf &_ + vbTab & SCRIPTFILE & " CLIENTALL ' Remove all " & ONAME & " Client products" & vbCrLf &_ + vbTab & SCRIPTFILE & " SERVER ' Remove all " & ONAME & " Server products" & vbCrLf &_ + vbTab & SCRIPTFILE & " ALL ' Remove all " & ONAME & " Server & Client products" & vbCrLf &_ + vbTab & SCRIPTFILE & " ProPlus,PrjPro ' Remove ProPlus and Project" & vbCrLf + Wscript.Quit +End Sub 'ShowSyntax +'======================================================================================================= +_end_ + +move __createfile "OffScrub_O15msi.vbs" + +waithidden cscript "OffScrub_O15msi.vbs"]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - NXLog is installed but not running - Windows (22649).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - NXLog is installed but not running - Windows (22649).bes new file mode 100644 index 000000000..a0fdcc737 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - NXLog is installed but not running - Windows (22649).bes @@ -0,0 +1,39 @@ + + + + + Warning - NXLog is installed but not running - Windows + This Fixlet identifies and starts a stopped NXLog Client.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "nxlog" + state of service "NXLog" != "Running" + NXLog CE + Internal + 2016-11-08 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +waithidden net start nxlog + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Pagefile has non-default configuration - Windows (20537).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Pagefile has non-default configuration - Windows (20537).bes new file mode 100644 index 000000000..52b1df7f1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Pagefile has non-default configuration - Windows (20537).bes @@ -0,0 +1,27 @@ + + + + + Warning - Pagefile has non-default configuration - Windows + The system pagefile has a non-default configuration.

+

This is normally done as a troubleshooting step but is often not undone after troubleshooting.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ (value "PagingFiles" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" of native registry as string) != "?:\pagefile.sys%00%00" + Internal + 2016-04-21 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Power Policy set to High Performance - Windows (21429).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Power Policy set to High Performance - Windows (21429).bes new file mode 100644 index 000000000..bf382184a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Power Policy set to High Performance - Windows (21429).bes @@ -0,0 +1,27 @@ + + + + + Warning - Power Policy set to High Performance - Windows + For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ "5.1"]]> + (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\Default\PowerSchemes" of native registry as string) = "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Remote Assistance may not be installed (23559).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Remote Assistance may not be installed (23559).bes new file mode 100644 index 000000000..a8397b53b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Remote Assistance may not be installed (23559).bes @@ -0,0 +1,39 @@ + + + + + Warning - Remote Assistance may not be installed + The Windows Remote Assistance feature is not installed by default on Windows Server Operating Systems.

+

This fixlet uses DISM to enable the Remote Assistance feature.

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + name of operating system as string starts with "Win2" + not exists selects "* from Win32_ServerFeature where (Name like 'Remote Assistance')" of wmi + Internal + 2016-04-14 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +wait dism.exe /online /enable-feature /featurename=RemoteAssistance + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows (21744).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows (21744).bes new file mode 100644 index 000000000..aba6f83d3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows (21744).bes @@ -0,0 +1,28 @@ + + + + + Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows + This Fixlet is relevant if the Symantec Client has not had a successful client communication in 30 days.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists regapp "smc.exe" + + Internal + 2016-09-27 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec File System Auto-Protect is Disabled - Windows (21745).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec File System Auto-Protect is Disabled - Windows (21745).bes new file mode 100644 index 000000000..e2a0532f0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec File System Auto-Protect is Disabled - Windows (21745).bes @@ -0,0 +1,28 @@ + + + + + Warning - Symantec File System Auto-Protect is Disabled - Windows + This Fixlet is relevant if the Symantec Client has File System Auto-Protect Disabled.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists regapp "smc.exe" + exists values "OnOff" whose (it=0)of key "AV\Storages\InternetMail\RealTimeScan" of keys "HKEY_LOCAL_MACHINE\Software\Symantec\Symantec Endpoint Protection" of (x32 registries; x64 registries) + Internal + 2016-09-27 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec has recursive whole drive exceptions defined - Windows (21746).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec has recursive whole drive exceptions defined - Windows (21746).bes new file mode 100644 index 000000000..b1b82e71b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec has recursive whole drive exceptions defined - Windows (21746).bes @@ -0,0 +1,29 @@ + + + + + Warning - Symantec has recursive whole drive exceptions defined - Windows + This Fixlet is relevant if the client has a Real Time Scanning or Heuristic recursive drive exception defined.

+

An example of this would be a C:\* exclusion. This Fixlet only looks at exclusions targeted towards drives that exist on the system.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists regapp "smc.exe" + + Internal + 2016-09-27 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - System ignores driver's digital signature state - Windows (20538).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - System ignores driver's digital signature state - Windows (20538).bes new file mode 100644 index 000000000..ea22ff40a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - System ignores driver's digital signature state - Windows (20538).bes @@ -0,0 +1,29 @@ + + + + + Warning - System ignores driver's digital signature state - Windows + If this fixlet is relevant then the system is configured to ignore (not prompt on installation) when an attempt is made to install a driver that does not have a digital signature.

+

This is a potentially dangerous non-default configuration. 

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ NOT in proxy agent context + = "5.1"]]> + (value "Policy" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Non-Driver Signing" of native registry as string) = "00" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - System is set to store a large number of cached credentials - Windows (20631).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - System is set to store a large number of cached credentials - Windows (20631).bes new file mode 100644 index 000000000..7b1997261 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - System is set to store a large number of cached credentials - Windows (20631).bes @@ -0,0 +1,28 @@ + + + + + Warning - System is set to store a large number of cached credentials - Windows + For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + 3]]> + Credential Caching + Internal + 2016-05-01 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unsolicited Remote Assistance may not be allowed (23560).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unsolicited Remote Assistance may not be allowed (23560).bes new file mode 100644 index 000000000..867e7f17e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unsolicited Remote Assistance may not be allowed (23560).bes @@ -0,0 +1,39 @@ + + + + + Warning - Unsolicited Remote Assistance may not be allowed + Unsolicited Windows Remote Assistance requires setting a Group Policy setting:

+

GP Path: Computer Configuration/Policies/Administrative Templates/System/Remote Assistance

+
+

Setting Name: Configure Remote Assistance
Required State: Enabled
Required Value: Allow Helpers to remotely control this computer

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + (value "fAllowUnsolicitedFullControl" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer | 0) = 0 + Internal + 2016-04-14 + Critical + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2003 Components can be removed - Windows (23819).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2003 Components can be removed - Windows (23819).bes new file mode 100644 index 000000000..4acfbc963 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2003 Components can be removed - Windows (23819).bes @@ -0,0 +1,43 @@ + + + + + Warning - Unused Microsoft Office 2003 Components can be removed - Windows + This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2003 Installation.

+

This Fixlet will be relevant if none of the standard office apps (Access, Excel, Outlook, Powerpoint, or Word) exist on the system but the Office suite still appears in programs and features.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + not exists keys ("Access";"Excel";"Outlook";"PowerPoint";"Word") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0" of (x32 registries;x64 registries) + exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Edition 2003") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +prefetch o11-remove.diagcab sha1:0AD69E36F707FE4A2BB254F9DCDF7BD6A4EDAB97 size:145218 http://download.microsoft.com/download/F/0/F/F0F9BC5C-45A4-41F4-B9AC-30D678FBC428/MicrosoftEasyFix20054.mini.diagcab sha256:E9BAC8DD32094F77A31DCB94C32950CB209EE4B6BFB8781949B926E420BFA992 + +waithidden expand -i "__Download\O11-Remove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub03.vbs" ALL /Quiet + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2007 Components can be removed - Windows (23820).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2007 Components can be removed - Windows (23820).bes new file mode 100644 index 000000000..2a5cbafc4 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2007 Components can be removed - Windows (23820).bes @@ -0,0 +1,41 @@ + + + + + Warning - Unused Microsoft Office 2007 Components can be removed - Windows + This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2007 Installation.

+

This Fixlet will be relevant if none of the standard office apps (Access, Excel, OneNote, Outlook, Powerpoint, Publisher, or Word) exist on the system but the Office suite still appears in programs and features.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + not exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "12.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Plus 2007") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch o12-remove.diagcab sha1:985027E630CBBC9497F3F257A3E62B8956926DEF size:388756 http://download.microsoft.com/download/4/7/A/47A0D191-D6F9-4C95-92E6-28D1DFF80F64/MicrosoftFixit20052.mini.diagcab sha256:5168D686CDC5A51F27CB96CA97B51DCC65931F504C63D2672DAF9A1F83F33669 + +waithidden expand -i "__Download\O12-Remove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub07.vbs" ALL /Quiet /NoCancel /Force + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2010 Components can be removed - Windows (23821).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2010 Components can be removed - Windows (23821).bes new file mode 100644 index 000000000..c31668720 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2010 Components can be removed - Windows (23821).bes @@ -0,0 +1,43 @@ + + + + + Warning - Unused Microsoft Office 2010 Components can be removed - Windows + This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2010 Installation.

+

This Fixlet will be relevant if none of the standard office apps (Access, Excel, OneNote, Outlook, Powerpoint, Publisher, or Word) exist on the system but the Office suite still appears in programs and features.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + not exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "14.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Plus 2010") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +prefetch o14-ctrremove.diagcab sha1:84860CDAF2DD94FDF37F7519079195EFD1DE7777 size:401870 http://download.microsoft.com/download/2/8/5/28568719-AD79-41EB-B0F2-76E16817DD0E/MicrosoftFixit20055.mini.diagcab sha256:1F4BF79BA164A975279FBA37C82B6927BA2908C44624F8A80AEAFBC1B422313A + +waithidden expand -i "__Download\O14-CTRRemove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub10.vbs" ALL /Quiet /NoCancel /Force + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2013 Components can be removed - Windows (23822).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2013 Components can be removed - Windows (23822).bes new file mode 100644 index 000000000..4ffdf0d93 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2013 Components can be removed - Windows (23822).bes @@ -0,0 +1,4135 @@ + + + + + Warning - Unused Microsoft Office 2013 Components can be removed - Windows + This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2013 Installation.

+

This Fixlet will be relevant if none of the standard office apps (Access, Excel, InfoPath, OneNote, Outlook, Powerpoint, Publisher, or Word) exist on the system but the Office suite still appears in programs and features.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + not exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word|InfoPath) MUI.*")) of keys "15.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Plus 2013") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + "fForce" will kill running applications which can result in data loss! <- CAUTION +Dim fForce : fForce = False +'CAUTION! -> "fForce" will kill running applications which can result in data loss! <- CAUTION +Dim fLogInitialized : fLogInitialized = False +Dim fBypass_Stage1 : fBypass_Stage1 = True 'Component Detection +Dim fBypass_Stage2 : fBypass_Stage2 = False 'Setup +Dim fBypass_Stage3 : fBypass_Stage3 = False 'Msiexec +Dim fBypass_Stage4 : fBypass_Stage4 = False 'CleanUp +Dim fRebootRequired : fRebootRequired = False + +'Create required objects +Set oWmiLocal = GetObject("winmgmts:{{(Debug)}\\.\root\cimv2") +Set oWShell = CreateObject("Wscript.Shell") +Set oShellApp = CreateObject("Shell.Application") +Set oFso = CreateObject("Scripting.FileSystemObject") +Set oMsi = CreateObject("WindowsInstaller.Installer") +Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv") + +'Get environment path info +sAppData = oWShell.ExpandEnvironmentStrings("%appdata%") +sLocalAppData = oWShell.ExpandEnvironmentStrings("%localappdata%") +sTemp = oWShell.ExpandEnvironmentStrings("%temp%") +sAllUsersProfile = oWShell.ExpandEnvironmentStrings("%allusersprofile%") +RegReadValue HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "ProfilesDirectory", sProfilesDirectory, "REG_EXPAND_SZ" +If NOT oFso.FolderExists(sProfilesDirectory) Then + sProfilesDirectory = oFso.GetParentFolderName(oWShell.ExpandEnvironmentStrings("%userprofile%")) +End If +sProgramFiles = oWShell.ExpandEnvironmentStrings("%programfiles%") +'Deferred until after architecture check +'sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") + +sCommonProgramFiles = oWShell.ExpandEnvironmentStrings("%commonprogramfiles%") +'Deferred until after architecture check +'sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") + +sProgramData = oWSHell.ExpandEnvironmentStrings("%programdata%") +sWinDir = oWShell.ExpandEnvironmentStrings("%windir%") +sWICacheDir = sWinDir & "\" & "Installer" +sScrubDir = sTemp & "\" & SCRIPTNAME +sScriptDir = wscript.ScriptFullName +sScriptDir = Left(sScriptDir, InStrRev(sScriptDir, "\")) + +' Get current script host +fCScript = UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" + +'Detect if we're running on a 64 bit OS +Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_ComputerSystem") +For Each Item In ComputerItem + f64 = Instr(Left(Item.SystemType,3),"64") > 0 + If f64 Then Exit For +Next +If f64 Then sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") +If f64 Then sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") + +'Get OS details and VersionNT +Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_OperatingSystem") +For Each Item in ComputerItem + sOSinfo = sOSinfo & Item.Caption + sOSinfo = sOSinfo & Item.OtherTypeDescription + sOSinfo = sOSinfo & ", " & "SP " & Item.ServicePackMajorVersion + sOSinfo = sOSinfo & ", " & "Version: " & Item.Version + sOsVersion = Item.Version + sOSinfo = sOSinfo & ", " & "Codepage: " & Item.CodeSet + sOSinfo = sOSinfo & ", " & "Country Code: " & Item.CountryCode + sOSinfo = sOSinfo & ", " & "Language: " & Item.OSLanguage +Next + +'Build the VersionNT number +arrVersion = Split(sOsVersion, Delimiter(sOsVersion)) +iVersionNt = CInt(arrVersion (0)) * 100 + CInt(arrVersion (1)) + +'Check if we're running as 32 bit process on a 64 bit OS +If InStr(LCase(wscript.path), "syswow64") > 0 Then RelaunchAs64Host + +fElevated = CheckRegPermissions +If NOT fElevated AND NOT fNoElevate Then + 'Try to relaunch elevated + RelaunchElevated + + 'Can't relaunch. Exit out + If UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" Then + If Not fLogInitialized Then CreateLog + Log "Insufficient registry access permissions - exiting" + End If + 'Undo temporary entries created in ARP + TmpKeyCleanUp + wscript.quit 3 +End If + +'Create Dictionaries +Set dictionaryKeepProd = CreateObject("Scripting.Dictionary") +Set dicInstalledSku = CreateObject("Scripting.Dictionary") +Set dicRemoveSku = CreateObject("Scripting.Dictionary") +Set dictionaryKeepSku = CreateObject("Scripting.Dictionary") +Set dictionaryKeepLis = CreateObject("Scripting.Dictionary") +Set dictionaryKeepFolder = CreateObject("Scripting.Dictionary") +Set dicApps = CreateObject("Scripting.Dictionary") +Set dicDelRegKey = CreateObject("Scripting.Dictionary") +Set dictionaryKeepReg = CreateObject("Scripting.Dictionary") +Set dicSrv = CreateObject("Scripting.Dictionary") +Set dicCSuite = CreateObject("Scripting.Dictionary") +Set dicCSingle = CreateObject("Scripting.Dictionary") + +'Create the temp folder +If Not oFso.FolderExists(sScrubDir) Then oFso.CreateFolder sScrubDir + +'Set the default logging directory +sLogDir = sScrubDir + +'Call the command line parser +ParseCmdLine + +'Ensure CScript as engine +If NOT fCScript AND NOT fQuiet Then RelaunchAsCScript + +'Get Office Install Folder +If NOT RegReadValue(HKLM,"SOFTWARE\Microsoft\Office\"&OVERSION&"\Common\InstallRoot","Path",sOInstallRoot,"REG_SZ") Then + sOInstallRoot = sProgramFiles & "\Microsoft Office\"&OREF +End If + +'Ensure integrity of WI metadata which could fail used APIs otherwise +EnsureValidWIMetadata HKCU,"Software\Classes\Installer\Products",COMPRESSED +EnsureValidWIMetadata HKCR,"Installer\Products",COMPRESSED +EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products",COMPRESSED +EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components",COMPRESSED +EnsureValidWIMetadata HKCR,"Installer\Components",COMPRESSED + +'Add initial known .exe files that might need to be closed +dicApps.Add "communicator.exe", "communicator.exe" +dicApps.Add "setup.exe", "setup.exe" +Select Case OVERSIONMAJOR +Case "12" +Case "14" + dicApps.Add "bcssync.exe","bcssync.exe" + dicApps.Add "officesas.exe","officesas.exe" + dicApps.Add "officesasscheduler.exe","officesasscheduler.exe" + dicApps.Add "msosync.exe","msosync.exe" + dicApps.Add "onenotem.exe","onenotem.exe" +Case "15" +Case Else +End Select + +'------------------- +'Stage # 0 - Basics | +'------------------- +'Build a list with installed/registered Office products +sTmp = "Stage # 0 " & chr(34) & "Basics" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf + +FindInstalledOProducts +If dicInstalledSku.Count > 0 Then Log "Found registered product(s): " & Join(RemoveDuplicates(dicInstalledSku.Items),",") &vbCrLf + +'Validate the list of products we got from the command line if applicable +ValidateRemoveSkuList + +'Log detection results +If dicRemoveSku.Count > 0 Then Log "Product(s) to be removed: " & Join(RemoveDuplicates(dicRemoveSku.Items),",") +sMode = "Selected " & ONAME & " products" +If NOT dicRemoveSku.Count > 0 Then sMode = "Orphaned " & ONAME & " products" +If fRemoveAll Then sMode = "All " & ONAME & " products" +Log "Final removal mode: " & sMode +Log "Remove OSE service: " & fRemoveOse &vbCrLf + +'Log preview mode if applicable +If fDetectOnly Then Log "*************************************************************************" +If fDetectOnly Then Log "* PREVIEW MODE *" +If fDetectOnly Then Log "* All uninstall and delete operations will only be logged not executed! *" +If fDetectOnly Then Log "*************************************************************************" & vbCrLf + +'Check if there are legacy products installed +CheckForLegacyProducts +If fLegacyProductFound Then Log "Found legacy Office products that will not be removed." Else Log "No legacy Office products found." + +'Cache .msi files +If dicRemoveSku.Count > 0 Then CacheMsiFiles + +'Log Sku/Prod detection results +LogSkuResults + +'UnPin Shortcuts +If NOT fSkipSD AND dicRemoveSku.Count > 0 Then + On Error Resume Next + Log " Searching for pinned shortcuts" + CleanShortcuts sAllUsersProfile, False, True + CleanShortcuts sProfilesDirectory, False, True + On Error Goto 0 +End If 'NOT SkipSD + + +'-------------------------------- +'Stage # 1 - Component Detection | +'-------------------------------- +sTmp = "Stage # 1 " & chr(34) & "Component Detection" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage1 OR fForce Then + 'Build a list with files which are installed/registered to a product that's going to be removed + Log "Prepare for CleanUp stages." + Log "Identifying removable elements. This can take several minutes." + ScanComponents +Else + Log "Not running Component Detection in default removal." +End If + +'End all running Office applications +If fForce OR fQuiet OR fPassive Then CloseOfficeApps + +'---------------------- +'Stage # 2 - Setup.exe | +'---------------------- +sTmp = "Stage # 2 " & chr(34) & "Setup.exe" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage2 Then + SetupExeRemoval +Else + Log "Skipping Setup.exe because bypass was requested." +End If + +'------------------------ +'Stage # 3 - Msiexec.exe | +'------------------------ +sTmp = "Stage # 3 " & chr(34) & "Msiexec.exe" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage3 Then + MsiexecRemoval +Else + Log "Skipping Msiexec.exe because bypass was requested." +End If + +'-------------------- +'Stage # 4 - CleanUp | +'-------------------- +'Removal of files and registry settings +sTmp = "Stage # 4 " & chr(34) & "CleanUp" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage4 Then + + 'Office Source Engine + If fRemoveOse Then RemoveOSE + + 'Local Installation Source (MSOCache) + WipeLIS + + 'Obsolete files + If fRemoveAll Then + FileWipeAll + Else + FileWipeIndividual + End If + + 'Empty Folders + DeleteEmptyFolders + + 'Restore Explorer if needed + If fForce OR fQuiet OR fPassive Then RestoreExplorer + + 'Registry data + RegWipe + + 'Wipe orphaned files from Windows Installer cache + MsiClearOrphanedFiles + + 'Temporary .msi files in scrubcache + DeleteMsiScrubCache + + 'Temporary files + DelScrubTmp + +Else + Log "Skipping CleanUp because bypass was requested." +End If + +If Not sMoveMessage = "" Then Log vbCrLf & "Please remove this folder after next reboot: " & sMoveMessage + +'THE END +Log vbCrLf & "End removal: " & Now & vbCrLf +Log vbCrLf & "For detailed logging please refer to the log in folder " &chr(34)&sScrubDir&chr(34)&vbCrLf + +If fRebootRequired Then + Log vbCrLf & "A restart is required to complete the operation!" + If NOT (fQuiet OR fPassive OR fNoReboot) Then + If MsgBox("Do you want to reboot now?",vbYesNo,"Reboot Required") = VB_YES Then + Dim colOS, oOS + Dim oWmiReboot + Set oWmiReboot = GetObject("winmgmts:{{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2") + Set colOS = oWmiReboot.ExecQuery ("Select * from Win32_OperatingSystem") + For Each oOS in colOS + oOS.Reboot() + Next + End If + End If +End If + +If NOT (fQuiet OR fPassive) Then + For Each Item in Wscript.Arguments + If Item = "UAC" Then + If fCscript Then wscript.stdout.write "Press to close this window" + sTemp = wscript.stdin.read(1) + End If + Next 'Argument +End If +'======================================================================================================= +'======================================================================================================= + +'Stage 0 - 4 Subroutines +'======================================================================================================= + +'Office configuration products are listed with their configuration product name in the "Uninstall" key +'To identify an Office configuration product all of these condiditions have to be met: +' - "SystemComponent" does not have a value of "1" (DWORD) +' - "OPACKAGE" (see constant declaration) entry exists and is not empty +' - "DisplayVersion" exists and the 2 leftmost digits are "OVERSIONMAJOR" +Sub FindInstalledOProducts + Dim ArpItem, File + Dim sCurKey, sValue, sConfigName, sProdC, sCVHValue + Dim sProductCodeList, sProductCode + Dim arrKeys, arrMultiSzValues + Dim fSystemComponent0, fPackages, fDisplayVersion, fReturn, fCategorized + + If dicInstalledSku.Count > 0 Then Exit Sub 'Already done from InputBox prompt + + 'Handle orphaned products to get them added to the detection scope + If fTryReconcile Then + For Each File in oFso.GetFolder(sWICacheDir).Files + If Len(File.Name)>3 Then + Select Case LCase(Right(File.Name, 4)) + Case ".msi" + sProductCode = "" + sProductCode = GetMsiProductCode(File.Path) + If InScope(sProductCode) Then + If NOT RegKeyExists(HKLM, REG_ARP & sProductCode) Then + 'Ensure the orphaned item is getting removed + If Len(sSkuRemoveList) > 0 Then + sSkuRemoveList = sSkuRemoveList & "," & GetProductID(Mid(sProductCode, 11, 4)) + Else + sSkuRemoveList = GetProductID(Mid(sProductCode, 11, 4)) + End If + 'Add to ScrubDir + oFso.CopyFile File.Path,sScrubDir & "\" & sProductCode & ".msi",True + 'Register the product with MSI + MsiRegisterProduct File.Path + End If 'NOT sProductCode + End If 'InScope + Case Else + End Select + End If '>3 + Next 'File + End If 'fTryReconcile + + 'Locate standalone Office products that have no configuration product entry and create a + 'temporary configuration entry + ReDim arrTmpSKUs(-1) + If RegEnumKey(HKLM, REG_ARP, arrKeys) Then + For Each ArpItem in arrKeys + If InScope(ArpItem) Then + sCurKey = REG_ARP & ArpItem & "\" + fSystemComponent0 = Not (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) + If fSystemComponent0 Then + RegReadValue HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ" + Redim arrMultiSzValues(0) + 'Logic changed to drop the LCID identifier + 'sConfigName = GetProductID(Mid(ArpItem,11,4)) & "_" & CInt("&h" & Mid(ArpItem,16,4)) + sConfigName = OREGREF & GetProductID(Mid(ArpItem, 11, 4)) + If NOT RegKeyExists(HKLM, REG_ARP&sConfigName) Then + 'Create a new ARP item + ReDim Preserve arrTmpSKUs(UBound(arrTmpSKUs) + 1) + arrTmpSKUs(UBound(arrTmpSKUs)) = sConfigName + oReg.CreateKey HKLM, REG_ARP & sConfigName + arrMultiSzValues(0) = sConfigName + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, OPACKAGE, arrMultiSzValues + arrMultiSzValues(0) = ArpItem + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "Comment", "Temporary OffScrub generated key. Please delete this key!" + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", arrMultiSzValues + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayVersion", sValue + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayName", SCRIPTNAME & "_" & sConfigName + oReg.SetDWordValue HKLM, REG_ARP & sConfigName, "SystemComponent", 0 + Else + 'Update the existing temporary ARP item + fReturn = RegReadValue(HKLM, REG_ARP&sConfigName, "ProductCodes", sProdC, "REG_MULTI_SZ") + If NOT InStr(sProdC, ArpItem) > 0 Then sProdC = sProdC & chr(34) & ArpItem + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", Split(sProdC, Chr(34)) + End If 'RegKeyExists + End If 'fSystemComponent0 + End If 'InScope + Next 'ArpItem + End If 'RegEnumKey + + 'Find the configuration products + If RegEnumKey(HKLM, REG_ARP, arrKeys) Then + For Each ArpItem in arrKeys + sCurKey = REG_ARP & ArpItem & "\" + sValue = "" + fSystemComponent0 = NOT (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) + fPackages = RegReadValue(HKLM, sCurKey, OPACKAGE, sValue, "REG_MULTI_SZ") + fDisplayVersion = RegReadValue(HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ") + If fDisplayVersion Then + If Len(sValue) > 1 Then + fDisplayVersion = (Left(sValue, 2) = OVERSIONMAJOR) + Else + fDisplayVersion = False + End If + End If + 'fSystemComponent0 filter causes issues if the ARP entries have been hidden + 'If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then + If (fPackages AND fDisplayVersion) Then + If InStr(ArpItem,".") > 0 Then sConfigName = UCase(Mid(ArpItem, InStr(ArpItem, ".") + 1)) Else sConfigName = UCase(ArpItem) + If NOT dicInstalledSku.Exists(sConfigName) Then dicInstalledSku.Add sConfigName, sConfigName + + 'Categorize the SKU + 'Four categories are available: ClientSuite, ClientSingleProduct, Server, C2R + If RegReadValue(HKLM, REG_ARP & OREGREF & sConfigName, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then + fCategorized = False + For Each sProductCode in Split(sProductCodeList, Chr(34)) + If Len(sProductCode) = 38 Then + If Mid(sProductCode, 11, 1) = "1" Then + 'Server product + If NOT dicSrv.Exists(UCase(sConfigName)) Then dicSrv.Add UCase(sConfigName), sConfigName + fCategorized = True + Exit For + Else + Select Case Mid(sProductCode, 11, 4) + 'Client Suites + Case "000F","0011","0012","0013","0014","0015","0016","0017","0018","0019","001A","001B","0029","002B","002E","002F","0030","0031","0033","0035","0037","003D","0044","0049","0061","0062","0066","006C","006D","006F","0074","00A1","00A3","00A9","00BA","00CA","00E0","0100","0103","011A" + If NOT dicCSuite.Exists(UCase(sConfigName)) Then dicCSuite.Add UCase(sConfigName), sConfigName + fCategorized = True + Exit For + + Case "007E", "008F", "008C", "24E1", "237A" + If NOT dictionaryKeepProd.Exists(sProductCode) Then dictionaryKeepProd.Add sProductCode, sConfigName + fC2rInstalled = True + Case Else + End Select + End If + End If 'Len 38 + Next 'sProductCode + If NOT fCategorized Then + If NOT dicCSingle.Exists(UCase(sConfigName)) Then dicCSingle.Add UCase(sConfigName), sConfigName + End If 'fCategorized + End If 'RegReadValue "ProductCodes" + End If + Next 'ArpItem + End If 'RegEnumKey +End Sub 'FindInstalledOProducts +'======================================================================================================= + +'Check if there are Office products from previous versions on the computer +Sub CheckForLegacyProducts + Const OLEGACY = "78E1-11D2-B60F-006097C998E7}.6000-11D3-8CFE-0050048383C9}.6000-11D3-8CFE-0150048383C9}.BDCA-11D1-B7AE-00C04FB92F3D}.6D54-11D4-BEE3-00C04F990354}" + Dim Product + + 'Set safe default + fLegacyProductFound = True + + For Each Product in oMsi.Products + If Len(Product) = 38 Then + 'Handle O09 - O11 Products + If InStr(OLEGACY, UCase(Right(Product, 28))) > 0 Then + 'Found legacy Office product. Keep flag in default and exit + Exit Sub + End If + If UCase(Right(Product,PRODLEN)) = OFFICEID Then + Select Case Mid(Product,4,2) + Case "12", "14" + 'Found legacy Office product. Keep flag in default and exit + Exit Sub + Case Else + End Select + End If + End If '38 + Next 'Product + fLegacyProductFound = False + +End Sub 'CheckForLegacyProducts +'======================================================================================================= + +'Create clean list of Products to remove. +'Strip off bad & empty contents +Sub ValidateRemoveSkuList + Dim Sku, Key, sProductCode, sProductCodeList + Dim arrRemoveSKUs + + If fRemoveAll Then + 'Remove all mode + For Each Key in dicInstalledSku.Keys + dicRemoveSku.Add Key,dicInstalledSku.Item(Key) + Next 'Key + Else + 'Remove individual products or preconfigured configurations mode + + 'Ensure to have a string with no unexpected contents + sSkuRemoveList = Replace(sSkuRemoveList,";",",") + sSkuRemoveList = Replace(sSkuRemoveList," ","") + sSkuRemoveList = Replace(sSkuRemoveList,Chr(34),"") + While InStr(sSkuRemoveList,",,")>0 + sSkuRemoveList = Replace(sSkuRemoveList,",,",",") + Wend + + 'Prepare 'remove' and 'keep' dictionaries to determine what has to be removed + + 'Initial pre-fill of 'keep' dic + For Each Key in dicInstalledSku.Keys + dictionaryKeepSku.Add Key,dicInstalledSku.Item(Key) + Next 'Key + + 'Determine contents of keep and remove dic + 'Individual products + arrRemoveSKUs = Split(UCase(sSkuRemoveList),",") + For Each Sku in arrRemoveSKUs + If Sku = "OSE" Then fRemoveOse = True + If dictionaryKeepSku.Exists(Sku) Then + 'A Sku to remove has been passed in + 'remove the item from the keep dic + dictionaryKeepSku.Remove(Sku) + 'Now add it to the remove dic + If NOT dicRemoveSku.Exists(Sku) Then dicRemoveSku.Add Sku,Sku + End If + Next 'Sku + + 'Client Suite Category + If fRemoveCSuites Then + For Each Key in dicInstalledSku.Keys + If dicCSuite.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveCSuites + + 'Client Single/Standalone Category + If fRemoveCSingle Then + For Each Key in dicInstalledSku.Keys + If dicCSingle.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveCSingle + + 'Server Category + If fRemoveSrv Then + For Each Key in dicInstalledSku.Keys + If dicSrv.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveSrv + + If NOT dictionaryKeepSku.Count > 0 Then fRemoveAll = True + + End If 'fRemoveAll + + 'Fill the KeepProd dic + For Each Sku in dictionaryKeepSku.Keys + If RegReadValue(HKLM, REG_ARP & OREGREF & Sku, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then + For Each sProductCode in Split(sProductCodeList, chr(34)) + If Len(sProductCode) = 38 Then + If NOT dictionaryKeepProd.Exists(sProductCode) Then + dictionaryKeepProd.Add sProductCode, Sku + ' also add the UpgradeCode + If Not dictionaryKeepProd.Exists(GetUpgradeCode(sProductCode)) Then dictionaryKeepProd.Add GetUpgradeCode(sProductCode), Sku & "_UpgradeCode" + End If + End If '38 + Next 'sProductCode + End If + Next 'Sku + + If fRemoveAll OR fRemoveOse Then CheckRemoveOSE + If fRemoveAll OR fRemoveOspp Then CheckRemoveOspp + +End Sub 'ValidateRemoveSkuList +'======================================================================================================= + +'Check if OSE service can be scrubbed +Sub CheckRemoveOSE + Const O11 = "6000-11D3-8CFE-0150048383C9}" + Dim Product + + If fRemoveOse Then Exit Sub + For Each Product in oMsi.Products + If Len(Product) = 38 Then + If UCase(Right(Product, 28)) = O11 Then + 'Found Office 2003 Product. Set flag to not remove the OSE service + Exit Sub + End If + If UCase(Right(Product, PRODLEN))= OFFICEID Then + Select Case Mid(Product, 4, 2) + Case "12","14","15","16","17" + If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then + 'Found another Office product. Set flag to keep the OSE service + fRemoveOse = False + Exit Sub + End If + Case Else + End Select + End If + End If '38 + Next 'Product + fRemoveOse = True +End Sub 'CheckRemoveOSE +'======================================================================================================= + +'Check if OSPP service can be scrubbed +Sub CheckRemoveOSPP + Dim Product + + If NOT CInt(OVERSIONMAJOR) > 12 Then + fRemoveOspp = False + Exit Sub + End If + + If fRemoveOspp Then Exit Sub + + If fC2rInstalled Then + fRemoveOspp = False + Exit Sub + End If + + For Each Product in oMsi.Products + If Len(Product) = 38 Then + If UCase(Right(Product, PRODLEN)) = OFFICEID Then + Select Case Mid(Product, 4, 2) + Case "14","15","16","17" + If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then + 'Found another Office product. Set flag to keep the OSPP service + fRemoveOspp = False + Exit Sub + End If + Case Else + End Select + End If + End If '38 + Next 'Product + fRemoveOspp = True +End Sub 'CheckRemoveOSPP +'======================================================================================================= + +'Cache .msi files for products that will be removed in case they are needed for later file detection +Sub CacheMsiFiles + Dim Product + Dim sMsiFile + + 'Non critical routine for failures. + 'Errors will be logged but must not fail the execution + On Error Resume Next + Log " Cache .msi files to temporary Scrub folder" + 'Cache the files + For Each Product in oMsi.Products + 'Ensure valid GUID length + If CheckDeleteEx(Product) Then + CheckError "CacheMsiFiles" + sMsiFile = oMsi.ProductInfo(Product,"LocalPackage") : CheckError "CacheMsiFiles" + LogOnly " - " & Product & ".msi" + If oFso.FileExists(sMsiFile) Then oFso.CopyFile sMsiFile,sScrubDir & "\" & Product & ".msi",True + CheckError "CacheMsiFiles" + End If 'InScope + Next 'Product + + Err.Clear +End Sub 'CacheMsiFiles +'======================================================================================================= + +'Build a list of all files that will be deleted +Sub ScanComponents + Const MSIINSTALLSTATE_LOCAL = 3 + + Dim FileList, RegList, ComponentID, CompClient, Record, qView, MsiDb, CompVerbose + Dim Processes, Process, Prop, prod + Dim sQuery, sSubKeyName, sPath, sFile, sMsiFile, sCompClient, sComponent, sCompReg + Dim fRemoveComponent, fAffectedComponent, fIsPermanent, fIsFile, fIsFolder + Dim i, iProgress, iCompCnt, iRemCnt + Dim dicFLError, oDic, oFolderDic, dicCompPath + Dim hDefKey + + 'Logfile + Set FileList = oFso.OpenTextFile(sScrubDir & "\FileList.txt",FOR_WRITING,True,True) + Set RegList = oFso.OpenTextFile(sScrubDir & "\RegList.txt",FOR_WRITING,True,True) + Set CompVerbose = oFso.OpenTextFile(sScrubDir & "\CompVerbose.txt",FOR_WRITING,True,True) + + 'FileListError dic + Set dicFLError = CreateObject("Scripting.Dictionary") + + Set oDic = CreateObject("Scripting.Dictionary") + Set oFolderDic = CreateObject("Scripting.Dictionary") + Set dicCompPath = CreateObject("Scripting.Dictionary") + + 'Prevent that API errors fail script execution + On Error Resume Next + + iCompCnt = oMsi.Components.Count + If NOT Err = 0 Then + 'API failure + Log "Error during components detection. Cannot complete this task." + Err.Clear + Exit Sub + End If + + 'Ensure to not divide by zero + If iCompCnt = 0 Then iCompCnt = 1 + LogOnly " Scanning " & iCompCnt & " components" + 'Enum all Components + For Each ComponentID In oMsi.Components + CompVerbose.WriteLine vbCrLf & "Checking Component: " & ComponentID + + 'Progress bar + i = i + 1 + If iProgress < (i / iCompCnt) * 100 Then + If fCScript Then wscript.stdout.write "." : LogStream.Write "." + iProgress = iProgress + 1 + If iProgress = 35 OR iProgress = 70 Then Log "" + End If + + 'Check if all ComponentClients will be removed + sCompClient = "" + iRemCnt = 0 + fIsPermanent = False + fRemoveComponent = False 'Flag to track if the component will be completely removed + fAffectedComponent = False 'Flag to track if some clients remain installed who have a none shared location + dicCompPath.RemoveAll + Err.Clear + For Each CompClient In oMsi.ComponentClients(ComponentID) + CompVerbose.Write " CompClient " & CompClient & "-> " + If Err = 0 Then + 'Ensure valid guid length + If Len(CompClient) = 38 Then + fRemoveComponent = InScope(CompClient) + If fRemoveComponent OR (CompClient = "{{00000000-0000-0000-0000-000000000000}") Then + sPath = "" + sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + 'Scan for msidbComponentAttributesPermanent flag + If CompClient = "{{00000000-0000-0000-0000-000000000000}" Then + fIsPermanent = True + iRemCnt = iRemCnt + 1 + End If + If fRemoveComponent Then fRemoveComponent = CheckDelete(CompClient) + CompVerbose.Write "CheckDelete: " & fRemoveComponent & "; " + If fRemoveComponent Then + iRemCnt = iRemCnt + 1 + fAffectedComponent = True + 'Since the scope remains within one Office family the keypath for the component + 'is assumed to be identical + If sCompClient = "" Then sCompClient = CompClient + ' flag the CompClient entry for removal + sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKCR + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKLM + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + Else + If NOT dicCompPath.Exists(sPath) Then dicCompPath.Add sPath,CompClient + End If + CompVerbose.WriteLine "AffectedComponent: " & fAffectedComponent + CompVerbose.WriteLine " CompClient now set to: " & sCompClient + Else + CompVerbose.Write "InScope: " & fRemoveComponent & "; " + End If + Else + CompVerbose.WriteLine "Error: Invalid metadata" + If NOT dicFLError.Exists("Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient) Then _ + dicFLError.Add "Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient, ComponentID + End If '38 + Else + CompVerbose.WriteLine "Error: " & Err.number & " " & Err.Description + Err.Clear + End If 'Err = 0 + Next 'CompClient + + 'Determine if the component resources go away + sPath = "" + fRemoveComponent = fAffectedComponent AND (iRemCnt = oMsi.ComponentClients(ComponentID).Count) + CompVerbose.WriteLine " Component goes away: " & fRemoveComponent +' This caused unintentional removals +' If NOT fRemoveComponent AND fAffectedComponent Then +' 'Flag as removable if component has a unique keypath +' sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) +' sPath = Replace(sPath,"?",":") +' fRemoveComponent = NOT dicCompPath.Exists(sPath) +' End If + If fRemoveComponent Then + 'Check msidbComponentAttributesPermanent flag + If fIsPermanent AND NOT fForce Then fRemoveComponent = False + CompVerbose.WriteLine " msidbComponentAttributesPermanent: " & NOT fRemoveComponent + End If + + If fRemoveComponent Then + CompVerbose.WriteLine " RESULT: Component IN SCOPE for removal" + fIsFile = False : fIsFolder = False + + 'Component resources go away for this product + Err.Clear + 'Add the component registration key to ensure removal + sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\" + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKCR + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\" + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKLM + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + 'Get the component path + If sPath = "" Then + sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + End If + CompVerbose.WriteLine " Path: " & sPath + If Len(sPath) > 4 Then + If Left(sPath,1) = "0" Then + 'Registry keypath + + Select Case Left(sPath,2) + Case "00" + sPath = Mid(sPath,5) + hDefKey = HKCR + Case "01" + sPath = Mid(sPath,5) + hDefKey = HKCU + Case "02","22" + sPath = Mid(sPath,5) + hDefKey = HKLM + Case Else + ' + End Select + + 'Go for the safe way and just reset the default entry + 'compared to deleting the whole key + If Right(sPath,1) = "\" Then sPath = sPath & "(Default)" + + If NOT dicDelRegKey.Exists(sPath) Then + dicDelRegKey.Add sPath,hDefKey + RegList.WriteLine HiveString(hDefKey)&"\"&sPath + End If + Else + + 'File or Folder + If oFso.FileExists(sPath) OR oFso.FolderExists(sPath) Then + If Right(sPath,1) = "\" Then + fIsFolder = True + CompVerbose.WriteLine " Folder check OK" + Else + fIsFile = True + CompVerbose.WriteLine " File check OK" + End If + If fIsFile Then sPath = oFso.GetFile(sPath).ParentFolder + If Not oFolderDic.Exists(sPath) Then + oFolderDic.Add sPath,sPath + FileList.WriteLine sPath & vbTab & "(FOLDER)" + End If + 'Get the .msi file + If oFso.FileExists(sScrubDir & "\" & sCompClient & ".msi") Then + sMsiFile = sScrubDir & "\" & sCompClient & ".msi" + Else + sMsiFile = oMsi.ProductInfo(sCompClient,"LocalPackage") + End If + CompVerbose.WriteLine " Set msi file to : " & sMsiFile + If Not Err = 0 Then + CompVerbose.WriteLine " Error: Failed to obtain .msi file for product " & sCompClient + If NOT dicFLError.Exists("Failed to obtain .msi file for product "&sCompClient) Then _ + dicFLError.Add "Failed to obtain .msi file for product "&sCompClient, ComponentID + Err.Clear + End If + CompVerbose.Write " Open .msi file for reading returned: " + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + + If Err = 0 Then + CompVerbose.WriteLine " SUCCESS" + 'Get the component name from the 'Component' table + sQuery = "SELECT `Component`,`ComponentId` FROM Component WHERE `ComponentId` = '" & ComponentID &"'" + Set qView = MsiDb.OpenView(sQuery) : qView.Execute + Set Record = qView.Fetch() + If Not Record Is Nothing Then sComponent = Record.Stringdata(1) + CompVerbose.WriteLine " Obtained ComponentId as: " & sComponent + + 'Get filenames from the 'File' table + sQuery = "SELECT `Component_`,`FileName` FROM File WHERE `Component_` = '" & sComponent &"'" + Set qView = MsiDb.OpenView(sQuery) : qView.Execute + Set Record = qView.Fetch() + Do Until Record Is Nothing + 'Read the filename + sFile = Record.StringData(2) + If InStr(sFile,"|") > 0 Then sFile = Mid(sFile,InStr(sFile,"|")+1,Len(sFile)) + 'sFile = sPath & "\" & sFile + CompVerbose.WriteLine " File: " & sPath& "\" & sFile + If Not oDic.Exists(sPath & "\" & sFile) Then + 'Exception handler + fAdd = True + Select Case UCase(sFile) + Case "FPERSON.DLL" + 'Catch exception caused by changed .msi keypath authoring logic for smart tags + For Each prod in oMsi.Products + If NOT Checkdelete(prod) Then + If oMsi.FeatureState(prod, "MSTagPluginNamesFiles") = MSIINSTALLSTATE_LOCAL Then + fAdd = False + Exit For + End If + End If + Next 'prod + Case Else + End Select + If fAdd Then + CompVerbose.WriteLine " Added as new file to dictionary" + oDic.Add sPath & "\" & sFile,sFile + FileList.WriteLine sFile & vbTab & sPath & "\" & sFile + If Len(sFile)>4 Then + sFile = LCase(sFile) + If Right(sFile,4) = ".exe" Then + If NOT dicApps.Exists(sFile) Then + Select Case sFile + Case "setup.exe","ose.exe","osppsvc.exe","explorer.exe" + Case Else + dicApps.Add sFile,LCase(sPath) & "\" & sFile + CompVerbose.WriteLine " Added to the list of processes that need to be closed." + End Select + End If 'dicApps.Exists + End If '.exe + End If 'Len > 4 + End If 'fAdd + End If 'oDic.Exists + Set Record = qView.Fetch() + Loop + Set Record = Nothing + qView.Close + Set qView = Nothing + Else + CompVerbose.WriteLine " Error: Could not read from .msi file" + If NOT dicFLError.Exists("Error: Could not read from .msi file: "&sMsiFile) Then _ + dicFLError.Add "Error: Could not read from .msi file: "&sMsiFile, ComponentID + Err.Clear + End If 'Err = 0 + Else + CompVerbose.WriteLine " Error: File check FAILED" + End If 'FileExists(sPath) + End If + End If 'Len(sPath) > 4 + Else + CompVerbose.WriteLine " RESULT: Component NOT in scope for removal" + If fAffectedComponent Then + 'Add the path to the 'Keep' dictionary + Err.Clear + For Each CompClient In oMsi.ComponentClients(ComponentID) + 'Get the component path + sPath = "" : sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + + If Len(sPath) > 4 Then + If Left(sPath,1) = "0" Then + 'Registry keypath + + Select Case Left(sPath,2) + Case "00" + sPath = Mid(sPath,5) + hDefKey = HKCR + Case "01" + sPath = Mid(sPath,5) + hDefKey = HKCU + Case "02","22" + sPath = Mid(sPath,5) + hDefKey = HKLM + Case Else + ' + End Select + If NOT dictionaryKeepReg.Exists(LCase(sPath)) Then + dictionaryKeepReg.Add LCase(sPath),hDefKey + End If + Else + 'File keypath + If oFso.FileExists(sPath) Then + If NOT dictionaryKeepFolder.Exists(LCase(sPath)) Then dictionaryKeepFolder.Add LCase(sPath) + sPath = LCase(oFso.GetFile(sPath).ParentFolder) & "\" + If NOT dictionaryKeepFolder.Exists(sPath) Then AddKeepFolder sPath + End If + 'Folder keypath + If oFso.FolderExists(sPath) Then AddKeepFolder sPath + End If 'Is Registry + End If 'sPath > 4 + Next 'CompClient + End If 'fAffectedComponent + End If 'fRemoveComponent + Err.Clear + Next 'ComponentID + On Error Goto 0 + + Log " Done" & vbCrLf + If dicFLError.Count > 0 Then LogOnly Join(dicFLError.Keys,vbCrLf) + If Not oFolderDic.Count = 0 Then arrDeleteFolders = oFolderDic.Keys Else Set arrDeleteFolders = Nothing + If Not oDic.Count = 0 Then arrDeleteFiles = oDic.Keys Else Set arrDeleteFiles = Nothing +End Sub 'ScanComponents +'======================================================================================================= + + +'Try to remove the products by calling setup.exe +Sub SetupExeRemoval + Dim OseService, Service, TextStream + Dim iSetupCnt, RetVal + Dim Sku, sConfigFile, sUninstallCmd, sCatalyst, sDll, sDisplayLevel, sNoCancel + iSetupCnt = 0 + If Not dicRemoveSku.Count > 0 Then + Log " Nothing to remove for Setup.exe" + Exit Sub + End If + + 'Ensure that the OSE service is *installed, *not disabled, *running under System context. + 'If validation fails exit out of this sub. + Set OseService = oWmiLocal.Execquery("Select * From Win32_Service Where Name like 'ose%'") + If OseService.Count = 0 Then Exit Sub + For Each Service in OseService + If (Service.StartMode = "Disabled") AND (Not Service.ChangeStartMode("Manual")=0) Then Exit Sub + If (Not Service.StartName = "LocalSystem") AND (Service.Change( , , , , , , "LocalSystem", "")) Then Exit Sub + Next 'Service + + For Each Sku in dicRemoveSku.Keys + + If Sku="CLICK2RUN" Then + 'Already done + Else + 'Create an "unattended" config.xml file for uninstall + If fQuiet Then sDisplayLevel = "None" Else sDisplayLevel="Basic" + If fNoCancel Then sNoCancel="Yes" Else sNoCancel="No" + Set TextStream = oFso.OpenTextFile(sScrubDir & "\config.xml",FOR_WRITING,True,True) + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Close + Set TextStream = Nothing + + 'Ensure path to setup.exe is valid to prevent errors + sDll = "" + If RegReadValue(HKLM,REG_ARP & OREGREF & Sku,"UninstallString",sCatalyst,"REG_SZ") Then + If InStr(LCase(sCatalyst),"/dll")>0 Then sDll = Right(sCatalyst,Len(sCatalyst)-InStr(LCase(sCatalyst),"/dll")+2) + If InStr(sCatalyst,"/")>0 Then sCatalyst = Left(sCatalyst,InStr(sCatalyst,"/")-1) + sCatalyst = Trim(Replace(sCatalyst,Chr(34),"")) + If NOT oFso.FileExists(sCatalyst) Then + sCatalyst = sCommonProgramFiles & "\" & OREF & "\Office Setup Controller\setup.exe" + If NOT oFso.FileExists(sCatalyst) AND f64 Then + sCatalyst = sCommonProgramFilesX86 & "" & OREF & "\Office Setup Controller\setup.exe" + End If + End If + If oFso.FileExists(sCatalyst) Then + sUninstallCmd = Chr(34) & sCatalyst & Chr(34) & " /uninstall " & Sku & " /config " & Chr(34) & sScrubDir & "\config.xml" & Chr(34) & sDll + iSetupCnt = iSetupCnt + 1 + Log " - Calling Setup.exe to remove " & Sku '& vbCrLf & sUninstallCmd + If Not fDetectOnly Then + On Error Resume Next + ' end other instances of setup + EndCurrentInstalls + ' call uninstall + RetVal = oWShell.Run(sUninstallCmd,0,True) : CheckError "SetupExeRemoval" + Log " - Setup.exe returned: " & SetupRetVal(Retval) & " (" & RetVal & ")" & vbCrLf + fRebootRequired = fRebootRequired OR (RetVal = "3010") + On Error Goto 0 + Else + Log " -> Removal suppressed in preview mode." + End If + Else + Log " Error: Office setup.exe appears to be missing" + End If 'RetVal = 0) AND oFso.FileExists + End If 'RegReadValue + End If + Next 'Sku + If iSetupCnt = 0 Then Log " Nothing to remove for setup." +End Sub 'SetupExeRemoval +'======================================================================================================= + +'Invoke msiexec to remove individual .MSI packages +Sub MsiexecRemoval + + Dim Product + Dim i + Dim sCmd, sReturn, sMsiProp + Dim fRegWipe + + fRegWipe = False + + Select Case OVERSIONMAJOR + Case "11" + sMsiProp = " REBOOT=ReallySuppress NOLOCALCACHEROLLBACK=1" + Case "12" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case "14" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case "15" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case Else + End Select + + 'Clear up ARP first to avoid possible custom action dependencies + If fRegWipe Then RegWipeARP + + 'Check MSI registered products + 'Office System does only support per machine installation so it's sufficient to use Installer.Products + i = 0 + sMsiProp = " MSIRESTARTMANAGERCONTROL=Disable" & sMsiProp + For Each Product in oMsi.Products + If CheckDeleteEx(Product) Then + i = i + 1 + Log " Calling msiexec.exe to remove " & Product + sCmd = "msiexec.exe /x" & Product & sMsiProp + If fQuiet AND NOT fBasic Then + sCmd = sCmd & " /q" + Else + sCmd = sCmd & " /qb-" + End If + sCmd = sCmd & " /l*v+ "&chr(34)&sLogDir&"\Uninstall_"&Product&".log"&chr(34) + If NOT fDetectOnly Then + ' end other instances of setup + EndCurrentInstalls + + 'Execute the uninstall + LogOnly " - Calling msiexec with '"&sCmd&"'" + sReturn = oWShell.Run(sCmd, 0, True) + Log " - msiexec returned: " & SetupRetVal(sReturn) & " (" & sReturn & ")" & vbCrLf + fRebootRequired = fRebootRequired OR (sReturn = "3010") OR (sReturn = "1618") + Else + Log " -> Removal suppressed in preview mode." + LogOnly " -> Command: "&sCmd + End If + End If 'InScope + Next 'Product + If i = 0 Then Log " Nothing to remove for msiexec" +End Sub 'MsiexecRemoval +'======================================================================================================= + +'Remove the OSE (Office Source Engine) service +Sub RemoveOSE + On Error Resume Next + Log vbCrLf & "OSE CleanUp" + DeleteService "ose" + 'Delete the folder + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\Source Engine" + 'Delete the registration + RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\ose\" +End Sub 'RemoveOSE +'======================================================================================================= + + +'File cleanup operations for the Local Installation Source (MSOCache) +Sub WipeLIS + Const LISROOT = "MSOCache\All Users\" + Dim LogicalDisks, Disk, Folder, SubFolder, MseFolder, File, Files + Dim arrSubFolders + Dim sFolder + Dim fRemoveFolder + + Log vbCrLf & "LIS CleanUp" + 'Search all hard disks + Set LogicalDisks = oWmiLocal.ExecQuery("Select * From Win32_LogicalDisk WHERE DriveType=3") + For Each Disk in LogicalDisks + If oFso.FolderExists(Disk.DeviceID & "\" & LISROOT) Then + Set Folder = oFso.GetFolder(Disk.DeviceID & "\" & LISROOT) + For Each Subfolder in Folder.Subfolders + If Len(Subfolder) > 37 Then + If fRemoveAll Then + If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) OR _ + LCase(Right(Subfolder.Name,7)) = OVERSIONMAJOR &".data" Then DeleteFolder Subfolder.Path + Else + If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) AND _ + CheckDelete(UCase(Left(Subfolder.Name,38))) AND _ + UCase(Right(Subfolder,1))= UCase(Left(Disk.DeviceID,1))Then DeleteFolder Subfolder.Path + End If + End If 'Len > 37 + Next 'Subfolder + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + sFolder = Folder.Path + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If 'oFso.FolderExists + Next 'Disk + + 'MSECache + If EnumFolders(sProgramFiles,arrSubFolders) Then + For Each SubFolder in arrSubFolders + If UCase(Right(SubFolder,9))="\MSECACHE" Then + ReDim arrMseFolders(-1) + Set Folder = oFso.GetFolder(SubFolder) + GetMseFolderStructure Folder + For Each MseFolder in arrMseFolders + If oFso.FolderExists(MseFolder) Then + fRemoveFolder = False + Set Folder = oFso.GetFolder(MseFolder) + Set Files = Folder.Files + For Each File in Files + If (LCase(Right(File.Name,4))=".msi") Then + If CheckDelete(ProductCode(File.Path)) Then + fRemoveFolder = True + Exit For + End If 'CheckDelete + End If + Next 'File + Set Files = Nothing + Set Folder = Nothing + If fRemoveFolder Then SmartDeleteFolder MseFolder + End If 'oFso.FolderExists(MseFolder) + Next 'MseFolder + End If + Next 'SubFolder + End If 'oFso.FolderExists +End Sub 'WipeLis +'======================================================================================================= + +'Wipe files and folders as documented in KB 928218 +Sub FileWipeAll + Dim sFolder + Dim Folder, Subfolder + + If fForce OR fQuiet OR fPassive Then CloseOfficeApps + + 'Handle other services. + Select Case OVERSIONMAJOR + Case "11" + Case "12" + Case "14" + DeleteService "odserv" + DeleteService "Microsoft Office Groove Audit Service" + DeleteService "Microsoft SharePoint Workspace Audit Service" + Case "15" + Case Else + End Select + + 'User specific files + If NOT fKeepUser Then + 'Delete files that should be backed up before deleting them + CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normal.dotm" + CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normalemail.dotm" + sFolder = sAppdata & "\microsoft\document building blocks" + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder In Folder.Subfolders + If oFso.FileExists(Subfolder & "\blocks.dotx") Then CopyAndDeleteFile Subfolder & "\blocks.dotx" + Next 'Subfolder + Set Folder = Nothing + End If 'oFso.FolderExists(sFolder) + End If + + 'Run the individual filewipe from component detection first + FileWipeIndividual + If fC2rInstalled AND NOT fForce Then Exit Sub + + 'Take care of the rest + DeleteFolder sOInstallRoot + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF + DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" + DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" + DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" + DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" + If (fRemoveOspp OR fForce) AND CInt(OVERSIONMAJOR) > 12 Then + If CInt(OVERSIONMAJOR) = 15 Then CleanOSPP + DeleteService "osppsvc" + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\OfficeSoftwareProtectionPlatform" + DeleteFolder sAllUsersProfile & "\Microsoft\OfficeSoftwareProtectionPlatform" + End If + Select Case OVERSIONMAJOR + Case "12" + Case "14" + DeleteFile oWShell.SpecialFolders("AllUsersStartup")&"\OfficeSAS.lnk" + DeleteFile oWShell.SpecialFolders("Startup")&"\OneNote 2010 Screen Clipper and Launcher.lnk" + Case "15" + Case Else + End Select + DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF + DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" + DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" & OREF + DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" + +End Sub 'FileWipeAll +'======================================================================================================= + +'Wipe individual files & folders related to SKU's that are no longer installed +Sub FileWipeIndividual + Dim LogicalDisks, Disk,sc + Dim File, Files, XmlFile, scFiles, oFile, Folder, SubFolder, Processes, Process, item + Dim sFile, sFolder, sPath, sConfigName, sContents, sProductCode, sLocalDrives,sScQuery + Dim sValue, sScRoots + Dim arrSubfolders, arrShortCutRoots + Dim fKeepFolder, fDeleteSC + Dim iRet,iCnt,iPos + + Log vbCrLf & "File CleanUp" + If IsArray(arrDeleteFiles) Then + If fForce OR fQuiet Then + Log " Doing Action: StopOSE" + iRet = StopService("ose") + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like 'ose%.exe'") + For Each Process in Processes + LogOnly " - Running process : " & Process.Name + Log " -> Ending process: " & Process.Name + iRet = Process.Terminate() + Next 'Process + LogOnly " End Action: StopOSE" + CloseOfficeApps + End If + 'Wipe individual files detected earlier + LogOnly " Removing left behind files" + For Each sFile in arrDeleteFiles + If oFso.FileExists(sFile) Then DeleteFile sFile + Next 'File + End If 'IsArray + + 'Wipe Catalyst in commonfiles + sFolder = sCommonProgramFiles & "\microsoft shared\"&OREF&"\Office Setup Controller\" + If EnumFolderNames(sFolder,arrSubFolders) Then + For Each SubFolder in arrSubFolders + sPath = sFolder & SubFolder + If InStr(SubFolder, ".") > 0 Then sConfigName = UCase(Left(SubFolder, InStr(SubFolder, ".") - 1)) Else sConfigName = UCase(Subfolder) + If GetFolderPath(sPath) Then + Set Folder = oFso.GetFolder(sPath) + Set Files = Folder.Files + fKeepFolder = False + For Each File In Files + If Len(File.Name)>3 Then + If (LCase(Right(File.Name,4))=".xml") Then + If Len(File.Name) >= Len(sConfigName) Then + If (UCase(Left(File.Name,Len(sConfigName)))=sConfigName) Then + Set XmlFile = oFso.OpenTextFile(File,1) + sContents = XmlFile.ReadAll + Set XmlFile = Nothing + sProductCode = "" + On Error Resume Next + sProductCode = Mid(sContents,InStr(sContents,"ProductCode=")+Len("ProductCode=")+1,38) + On Error Goto 0 + If Len(sProductCode) = 38 Then + If CheckDelete(sProductCode) Then DeleteFile File.Path Else fKeepFolder = True + End If + End If 'sConfigName + End If 'Len >= + End If '.xml + End If 'Len(File.Name)>3 + Next 'File + Set Files = Nothing + Set Folder = Nothing + If Not fKeepFolder Then DeleteFolder sPath + End If 'GetFolderPath + Next 'SubFolder + End If 'EnumFolderNames + + 'Wipe Shortcuts + If NOT fSkipSD Then + On Error Resume Next + Log " Searching for shortcuts" + CleanShortcuts sAllUsersProfile, True, False + CleanShortcuts sProfilesDirectory, True, False + On Error Goto 0 + End If 'NOT SkipSD + Err.Clear + +End Sub 'FileWipeIndividual +'======================================================================================================= + +'------------------------------------------------------------------------------- +' CleanShortcuts +' +' Recursively search all profile folders for Office shortcuts in scope +'------------------------------------------------------------------------------- +Sub CleanShortcuts (sFolder, fDelete, fUnPin) + Dim oFolder, fld, file, sc, item + Dim fDeleteSC + + Set oFolder = oFso.GetFolder(sFolder) + ' exclude system protected link folders + If CBool(oFolder.Attributes AND 1024) Then Exit Sub + + On Error Resume Next + For Each fld In oFolder.SubFolders + If Err <> 0 Then + CheckError "CleanShortcuts: " & vbTab & sFolder + Else + CleanShortcuts fld.Path, fDelete, fUnPin + End If + Next + For Each file In oFolder.Files + If LCase(Right(file.Path, 4)) = ".lnk" Then + fDeleteSC = False + LogOnly " check file: " & file.Path + set sc = oWShell.CreateShortcut(file.Path) + If Err <> 0 Then + CheckError "CleanShortcutsSC: " & vbTab & sFolder + Else + 'Compare if the shortcut target is in the list of executables that will be removed + 'LogOnly " - SC.TargetPath: " & sc.TargetPath + If Len(sc.TargetPath) > 0 Then + If InStr(sc.TargetPath,"{{") > 0 Then + 'Handle Windows Installer shortcuts + If Len(sc.TargetPath) >= InStr(sc.TargetPath,"{{") + 37 Then + If CheckDelete(Mid(sc.TargetPath, InStr(sc.TargetPath,"{{"), 38)) Then fDeleteSC = True + End If + Else + 'Handle regular shortcuts + If NOT fBypass_Stage1 Then + ' Compare against results from component scan + For Each item in dicApps.Items + If LCase(sc.TargetPath) = item Then + LogOnly " - removing shortcut per match from component detection: " & file.Path + fDeleteSC = True + Exit For + End If + Next 'item + Else + End If + If NOT oFso.FileExists(sc.TargetPath) Then + ' Shortcut target does not exist + If InStr (sc.TargetPath, OREF) > 0 Then + LogOnly " - removing Office shortcut with non-existent target: " & file.Path & " - " & sc.TargetPath + fDeleteSC = True + Else + 'LogOnly " - keep orphaned SC as target is not in scope: " & sc.TargetPath + End If + Else + 'LogOnly " - keep SC as shortcut target does still exist: " & sc.TargetPath + End If + End If + End If + End If + If fDeleteSC Then + If Not IsArray(arrDeleteFolders) Then ReDim arrDeleteFolders(0) + sFolder = file.Drive & file.Path + If Not arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder Then + ReDim Preserve arrDeleteFolders(UBound(arrDeleteFolders) + 1) + arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder + End If + If fUnPin Then UnPin file + If fDelete Then + If fBypass_Stage1 Then UnPin file + DeleteFile file.Path + End If + fDeleteSC = False + End If 'fDeleteSC + End If + Next + On Error Goto 0 +End Sub 'CleanShortcuts + +'------------------------------------------------------------------------------- +' UnPin +' +' Unpins a shortcut from the taskbar or start menu +'------------------------------------------------------------------------------- +Sub UnPin(file) + Dim fldItem, verb + + On Error Resume Next + Set fldItem = oShellApp.NameSpace(file.ParentFolder.Path).ParseName(file.Name) + For Each verb in fldItem.Verbs + Select Case Replace(verb, "&", "") + Case "Unpin from Taskbar", "Von Taskleiste lösen", "Détacher du barre des tâches", "Détacher de la barre des tâches", "Desanclar de la barra de tareas", "Ta bort från Aktivitetsfältet", "??? ????????(K)", "?? ????? ??(K)", "????????? ?? ?????? ?????" + verb.DoIt + Case "Unpin from Start Menu", "Vom Startmenü lösen", "Détacher du menu Démarrer", "Détacher de la menu Démarrer" + If iVersionNT = 601 Then verb.DoIt + End Select + Next + On Error Goto 0 +End Sub + + +'======================================================================================================= + +Sub DelScrubTmp + + On Error Resume Next + If oFso.FolderExists(sScrubDir & "\ScrubTmp") Then oFso.DeleteFolder sScrubDir & "\ScrubTmp",True + +End Sub 'DelScrubTmp +'======================================================================================================= + +'Ensure there are no unexpected .msi files in the scrub folder +Sub DeleteMsiScrubCache + Dim Folder, File, Files + + Log vbCrLf & "ScrubCache CleanUp" + Set Folder = oFso.GetFolder(sScrubDir) : CheckError "DeleteMsiScrubCache" + Set Files = Folder.Files + For Each File in Files + CheckError "DeleteMsiScrubCache" + If LCase(Right(File.Name,4))=".msi" Then + CheckError "DeleteMsiScrubCache" + DeleteFile File.Path : CheckError "DeleteMsiScrubCache" + End If + Next 'File +End Sub 'DeleteMsiScrubCache +'======================================================================================================= + +Sub MsiClearOrphanedFiles + Const USERSIDEVERYONE = "s-1-1-0" + Const MSIINSTALLCONTEXT_ALL = 7 + Const MSIPATCHSTATE_ALL = 15 + + 'Error handling inlined + On Error Resume Next + + Dim Patch, AllPatches, Product, AllProducts + Dim File, Files, Folder + Dim sFName, sLocalMsp, sLocalMsi, sPatchList, sMsiList + + Set Folder = oFso.GetFolder(sWinDir & "\Installer") + Set Files = Folder.Files + + Log vbCrLf & "Windows Installer cache CleanUp" + 'Get a complete list of patches + Err.Clear + Set AllPatches = oMsi.PatchesEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL,MSIPATCHSTATE_ALL) + If Err <> 0 Then + CheckError "MsiClearOrphanedFiles (msp)" + Else + 'Fill a comma separated stringlist with all .msp patchfiles + For Each Patch in AllPatches + sLocalMsp = "" : sLocalMsp = LCase(Patch.Patchproperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msp)" + sPatchList = sPatchList & sLocalMsp & "," + Next 'Patch + + 'Delete all non referenced .msp files from %windir%\installer + For Each File in Files + sFName = "" : sFName = LCase(File.Path) + If LCase(Right(sFName,4)) = ".msp" Then + If Not InStr(sPatchList,sFName) > 0 Then + 'While this is an orphaned file keep the scope of Office only + If InStr(UCase(MspTargets(File.Path)),OFFICEID)>0 Then DeleteFile File.Path + End If + End If 'LCase(Right(sFName,4)) + Next 'File + End If 'Err=0 + + 'Get a complete list products + Err.Clear + Set AllProducts = oMsi.ProductsEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL) + If Err <> 0 Then + CheckError "MsiClearOrphanedFiles (msi)" + Else + 'Fill a comma separated stringlist with all .msi files + For Each Product in AllProducts + sLocalMsi = "" : sLocalMsi = LCase(Product.InstallProperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msi)" + sMsiList = sMsiList & sLocalMsi & "," + Next 'Product + + 'Delete all non referenced .msi files from %windir%\installer + For Each File in Files + sFName = "" : sFName = LCase(File.Path) + If LCase(Right(sFName,4)) = ".msi" Then + If Not InStr(sMsiList,sFName) > 0 Then + 'While this is an orphaned file keep the scope of Office only + If UCase(Right(ProductCode(File.Path),PRODLEN))=OFFICEID Then DeleteFile File.Path + End If + End If 'LCase(Right(sFName,4)) = ".msi" + Next 'File + End If 'Err=0 + +End Sub 'MsiClearOrphanedFiles +'======================================================================================================= + +Sub RegWipe + Dim Item, Name, Sku, key + Dim hDefKey, sSubKeyName, sCurKey, value, sValue, sGuid + Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion + Dim arrKeys, arrNames, arrTypes, arrMultiSzValues, arrMultiSzNewValues + Dim arrTestNames, arrTestTypes + Dim i, iLoopCnt, iPos + Dim fDelReg + + Log vbCrLf & "Registry CleanUp" + 'Wipe registry data + + 'User Profile settings + Log " - User Policies" + RegDeleteKey HKCU,"Software\Policies\Microsoft\Office\" & OVERSION & "\" + If NOT fKeepUser Then + RegDeleteKey HKCU,"Software\Microsoft\Office\" & OVERSION & "\" + Log " - User Settings" + End If 'fKeepUser + + 'Computer specific settings + If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then + Log " - Machine Settings" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\" & OVERSION & "\" + If fRemoveOse OR fForce Then + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office Test\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","LastAccessInstall", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","MID", False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Excel\Addins\Microsoft.PerformancePoint.Planning.Client.Excel\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerExcelImport\Versions\",OVERSION, False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerWordImport\Versions\",OVERSION, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Outlook\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\MEWord12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word97\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\MEWord12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word97\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","GrooveMonitor", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","LobiServer", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","BCSSync", False + RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\Outlook\" + End If + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Office\" & OVERSION & "\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" + + Select Case OVERSIONMAJOR + Case "11" + 'Jet_Replication + sValue = "" + If RegReadValue(HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32","SystemDB",sValue,"REG_SZ") Then + If Len(sValue) > Len(sOInstallRoot) Then + If LCase(Left(sValue,Len(sOInstallRoot))) = LCase(sOInstallRoot) Then RegDeleteKey HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32\" + End If + End If + Case "12" + Case "14" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform_Test\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Common\ActiveX Compatibility\{{00024512-0000-0000-C000-000000000046}\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\OneNote\Adapters\","{{456B0D0E-49DD-4C95-8DB6-175F54DE69A3}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{42042206-2D85-11D3-8CFF-005004838597}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{993BE281-6695-4BA5-8A2A-7AACBFAAB69E}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{0006F045-0000-0000-C000-000000000046}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{C41662BB-1FA0-4CE0-8DC5-9B7F8279FF97}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{7CCA70DB-DE7A-4FB7-9B2B-52E2335A3B5A}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{506F4668-F13E-4AA1-BB04-B43203AB3CC0}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{D66DC78C-4F61-447F-942B-3FB6980118CF}", False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{B4F3A835-0E21-4959-BA22-42B3008E02FF}\" + 'Groove Extensions + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{99FD978C-D287-4F50-827F-B2C658EDA8E7}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{AB5C5600-7E6E-4B06-9197-9ECEF74D31CC}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{920E6DB1-9907-4370-B3A0-BAFC03D81399}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{16F3DD56-1AF5-4347-846D-7C10C4192619}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2916C86E-86A6-43FE-8112-43ABE6BF8DCC}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{6C467336-8281-4E60-8204-430CED96822D}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2A541AE1-5BF6-4665-A8A3-CFA9672E4291}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{A449600E-1DC6-4232-B948-9BD794D62056}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{3D60EDA7-9AB4-4DA8-864C-D9B5F2E7281D}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{387E725D-DC16-4D76-B310-2C93ED4752A0}", False + RegDeleteKey HKLM,"SOFTWARE\Classes\*\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Folder\ShellEx\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\Background\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 1 (GFS Unread Stub)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2 (GFS Stub)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2.5 (GFS Unread Folder)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 3 (GFS Folder)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 4 (GFS Unread Mark)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}\" + + Case 15 + + Case Else + End Select + + 'Win32Assemblies + Log " - Win32Assemblies" + If RegEnumKey(HKCR,"Installer\Win32Assemblies\",arrKeys) Then + For Each Item in arrKeys + If InStr(UCase(Item),OREF)>0 Then RegDeleteKey HKCR,"Installer\Win32Assemblies\"&Item & "\" + Next 'Item + End If 'RegEnumKey + 'Groove blocks reinstall if it locates groove.exe over this key + If RegKeyExists(HKCR,"GrooveFile\Shell\Open\Command\") Then + sValue = "" + RegReadValue HKCR,"GrooveFile\Shell\Open\Command\","",sValue,"REG_SZ" + If InStr(sValue,"\"&OREF&"\")>0 Then RegDeleteKey HKCR,"GrooveFile\" + End If 'RegKeyExists + End If 'fRemoveAll + + Select Case OVERSIONMAJOR + Case "11" + For iLoopCnt = 1 to 3 + Select Case iLoopCnt + Case 1 + 'CIW - HKCU + sSubKeyName = "Software\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" + hDefKey = HKCU + Case 2 + 'CIW - HKLM + sSubKeyName = "SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" + hDefKey = HKLM + Case 3 + 'Add/Remove Programs + sSubKeyName = REG_ARP + hDefKey = HKLM + End Select + + If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'OFFICEID id + If Len(Item)>37 Then + sGuid = UCase(Left(Item,38)) + If Right(sGuid,PRODLEN)=OFFICEID Then + If CheckDelete(sGuid) Then + RegDeleteKey hDefKey, sSubKeyName & Item & "\" + End If + End If 'Right(Item,PRODLEN)=OFFICEID + End If 'Len(Item)>37 + Next 'Item + If iLoopCnt < 3 Then + If RegEnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) Then + i = 0 + For Each Name in arrNames + If RegReadValue(hDefKey,sSubKeyName,Name,sValue,arrTypes(i)) Then + If sValue = sGuid Then RegDeleteValue hDefKey,sSubKeyName,Name, False + End If + i = i + 1 + Next + End If + End If + End If + If NOT RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\" + If NOT RegEnumKey(hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\",arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\" + Next 'iLoopCnt + Case "12" + 'Add/Remove Programs + RegWipeARP + Case "14" + 'Add/Remove Programs + RegWipeARP + Case Else + End Select + + 'UpgradeCodes, WI config, WI global config + For iLoopCnt = 1 to 5 + Select Case iLoopCnt + Case 1 + Log " - HKLM UpgradeCodes" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\" + hDefKey = HKLM + Case 2 + Log " - HKCR UpgradeCodes" + sSubKeyName = "Installer\UpgradeCodes\" + hDefKey = HKCR + Case 3 + Log " - HKLM Products" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" + hDefKey = HKLM + Case 4 + Log " - HKCR Features" + sSubKeyName = "Installer\Features\" + hDefKey = HKCR + Case 5 + Log " - HKCR Products" + sSubKeyName = "Installer\Products\" + hDefKey = HKCR + Case Else + sSubKeyName = "" + hDefKey = "" + End Select + If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + 'Expand the GUID + sGuid = GetExpandedGuid(Item) + 'Check if it's an Office key + If CheckDeleteEx (sGuid) Then + RegDeleteKey hDefKey,sSubKeyName & Item & "\" + Else + If iLoopCnt < 3 Then + 'Enum all entries + RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes + If IsArray(arrNames) Then + 'Delete entries within removal scope + For Each Name in arrNames + If Len(Name)=32 Then + sGuid = GetExpandedGuid(Name) + If CheckDelete(sGuid) Then RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True + Else + 'Invalid data -> delete the value + RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True + End If + Next 'Name + End If 'IsArray(arrNames) + 'If all entries were removed - delete the key + RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes + If Not IsArray(arrNames) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" + Else 'iLoopCnt >= 3 + If CheckDelete(sGuid) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" + End If 'iLoopCnt < 3 + End If 'fRemoveAll + End If 'Len(Item)=32 + Next 'Item + End If 'RegEnumKey + Next 'iLoopCnt + + 'Components + Log " - Global Components" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + If RegEnumValues(HKLM,sSubKeyName & Item,arrNames,arrTypes) Then + If IsArray(arrNames) Then + For Each Name in arrNames + If Len(Name)=32 Then + sGuid = GetExpandedGuid(Name) + If CheckDelete(sGuid) Then + RegDeleteValue HKLM, sSubKeyName & Item & "\", Name, False + 'Check if the key is now empty + If NOT RegEnumValues(HKLM,sSubKeyName & Item,arrTestNames,arrTestTypes) Then + If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR + End If + End If + End If '32 + Next 'Name + End If 'IsArray + End If 'RegEnumValues + End If '32 + Next 'Item + End If 'RegEnumKey + + 'Published Components + Log " - Published Components" + sSubKeyName = "Installer\Components\" + If RegEnumKey(HKCR,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + If RegEnumValues(HKCR,sSubKeyName & Item,arrNames,arrTypes) Then + If IsArray(arrNames) Then + For Each Name in arrNames + If RegReadValue (HKCR,sSubKeyName & Item, Name, sValue,"REG_MULTI_SZ") Then + arrMultiSzValues = Split(sValue,chr(34)) + If IsArray(arrMultiSzValues) Then + i = -1 + ReDim arrMultiSzNewValues(-1) + fDelReg = False + For Each value in arrMultiSzValues + If Len(value) > 19 Then + sGuid = "" + If GetDecodedGuid(Left(value,SQUISHED),sGuid) Then + If CheckDelete(sGuid) Then + fDelReg = True + Else + i = i + 1 + ReDim Preserve arrMultiSzNewValues(i) + arrMultiSzNewValues(i) = value + End If 'CheckDelete + End If 'decode + End If '19 + Next 'Value + If NOT (i = -1) Then + If NOT fDetectOnly Then + If NOT UBound(arrMultiSzValues) = i Then oReg.SetMultiStringValue HKCR,sSubKeyName & Item,Name,arrMultiSzNewValues + End If + Else + If fDelReg Then + RegDeleteValue HKCR,sSubKeyName & Item & "\", Name, False + 'Check if the key is now empty + If NOT RegEnumValues(HKCR,sSubKeyName & Item,arrTestNames,arrTestTypes) Then + If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR + End If + End If 'DelReg + End If + End If 'IsArray + End If + Next 'Name + End If 'IsArray + End If 'RegEnumValues + End If '32 + Next 'Item + End If 'RegEnumKey + + 'Delivery + Log " - Delivery" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\Delivery\SourceEngine\Downloads\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item) > 37 Then + If fRemoveAll Then + If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) OR _ + LCase(Right(Item,7))=OVERSIONMAJOR&".data" Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + Else + If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) AND _ + CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + End If '37 + Next 'Item + End If 'RegEnumKey + + 'Registration + Log " - HKLM Registration" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\Registration\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item)>37 Then + If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + Next 'Item + End If 'RegEnumKey + + 'User Preconfigurations + Log " - HKLM User Preconfigurations" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\User Settings\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item)>37 Then + If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + Next 'Item + End If 'RegEnumKey + + 'Known Keypath settings + Log " - Detcted KeyPath settings" + For Each key in dicDelRegKey.Keys + If Right(key,1) = "\" Then + RegDeleteKey dicDelRegKey.Item(key),key + Else + iPos = InStrRev(Key,"\") + If iPos > 0 Then RegDeleteValue dicDelRegKey.Item(key), Left(key,iPos - 1), Mid(key,iPos+1), False + End If + Next + + 'Temporary entries in ARP + TmpKeyCleanUp +End Sub 'RegWipe +'======================================================================================================= + +'Clean up Add/Remove Programs registry +Sub RegWipeARP + + Dim Item, Name, Sku, key + Dim sSubKeyName, sCurKey, sValue, sGuid + Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion + Dim arrKeys + + 'Add/Remove Programs + sSubKeyName = REG_ARP + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + '*0FF1CE* + If Len(Item)>37 Then + sGuid = UCase(Left(Item,38)) + If CheckDeleteEx(sGuid) Then RegDeleteKey HKLM, sSubKeyName & Item + End If 'Len(Item)>37 + + 'Config entries + sCurKey = sSubKeyName & Item & "\" + fSystemComponent0 = Not (RegReadValue(HKLM,sCurKey,"SystemComponent",sValue,"REG_DWORD") AND (sValue = "1")) + fPackages = RegReadValue(HKLM,sCurKey,OPACKAGE,sValue,"REG_MULTI_SZ") + fDisplayVersion = RegReadValue(HKLM,sCurKey,"DisplayVersion",sValue,"REG_SZ") + If fDisplayVersion AND Len(sValue) > 1 Then + fDisplayVersion = (Left(sValue,2) = OVERSIONMAJOR) + End If + If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then + fKeep = False + If Not fRemoveAll Then + For Each Sku in dictionaryKeepSku.Keys + If UCase(Item) = OREGREF & Sku Then + fkeep = True + Exit For + End If + Next 'Sku + End If + If Not fkeep Then RegDeleteKey HKLM, sSubKeyName & Item + End If + Next 'Item + End If 'RegEnumKey + +End Sub 'RegWipeARP +'======================================================================================================= + +'Clean up temporary registry keys +Sub TmpKeyCleanUp + Dim TmpKey + + If fLogInitialized Then Log " - temporary OffScrub registry entries" + If IsArray(arrTmpSKUs) Then + For Each TmpKey in arrTmpSKUs + oReg.DeleteKey HKLM, REG_ARP & TmpKey + Next 'Item + End If 'IsArray +End Sub 'TmpKeyCleanUp + +'======================================================================================================= +' Helper Functions +'======================================================================================================= + +'Create a log with the results of the SKU detection +Sub LogSkuResults + Dim SkuLog, SkuKey , p + + On Error Resume Next 'Don't fail on logging + + Set SkuLog = oFso.OpenTextFile(sScrubDir & "\SkuLog.txt",FOR_WRITING,True,True) + + SkuLog.WriteLine "Installed SKUs (All):" + SkuLog.WriteLine "=====================" + For Each SkuKey in dicInstalledSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Server SKUs:" + SkuLog.WriteLine "============" + For Each SkuKey in dicSrv.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Client Suite SKUs:" + SkuLog.WriteLine "==================" + For Each SkuKey in dicCSuite.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Client Standalone SKUs:" + SkuLog.WriteLine "=======================" + For Each SkuKey in dicCSingle.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Installed Products (All):" + SkuLog.WriteLine "=========================" + For Each p in oMsi.Products + If InScope(p) Then + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + End If + Next 'Product + + SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf + + SkuLog.WriteLine vbCrLf & "SKUs to keep:" + SkuLog.WriteLine "=============" + For Each SkuKey in dictionaryKeepSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Products to keep:" + SkuLog.WriteLine "=================" + For Each p in dictionaryKeepProd.Keys + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + Next 'Key + + SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf + + SkuLog.WriteLine vbCrLf & "SKUs to remove:" + SkuLog.WriteLine "===============" + For Each SkuKey in dicRemoveSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Products to remove:" + SkuLog.WriteLine "===================" + For Each p in oMsi.Products + If CheckDeleteEx(p) Then + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + End If 'InScope + Next 'Product + + SkuLog.Close + Set SkuLog = Nothing + +End Sub 'LogSkuResults +'======================================================================================================= + +'End all running instances of applications that will be removed +Sub CloseOfficeApps + Dim Processes, Process, prop + Dim fWait + Dim iRet + + On Error Resume Next + + fWait = False + Log " Doing Action: CloseOfficeApps" + + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process") + For Each Process in Processes + If dicApps.Exists(LCase(Process.Name)) Then + Log " - End process " & Process.Name + iRet = Process.Terminate() + CheckError "CloseOfficeApps: " & "Process.Name" + Else + For Each prop in Process.Properties_ + If prop.Name = "ExecutablePath" Then + If InStr(UCase(prop.Value), UCase(sOInstallRoot)) > 0 Then + Log " - End process '" & Process.Name + iRet = Process.Terminate() + CheckError "CloseOfficeApps: " & "Process.Name" + fWait = True + End If + End If 'ExcecutablePath + Next 'prop + End If + Next 'Process + If fWait Then + wscript.sleep 10000 + End If + LogOnly " End Action: CloseOfficeApps" +End Sub 'CloseOfficeApps +'======================================================================================================= + +'Ensure Windows Explorer is restarted if needed +Sub RestoreExplorer + Dim Processes, Result, oAT, DateTime, JobID + Dim sCmd + + 'Non critical routine. Don't fail on error + On Error Resume Next + wscript.sleep 1000 + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='explorer.exe'") + If Processes.Count < 1 Then + oWShell.Run "explorer.exe" + 'To handle this in case of System context, schedule and run as interactive task + If iVersionNT > 502 Then + 'Vista and later + oWShell.Run "SCHTASKS /Create /TN OffScrEx /TR explorer /SC ONCE /ST 12:00 /IT",0,True + oWShell.Run "SCHTASKS /Run /TN OffScrEx", 0, True + oWShell.Run "SCHTASKS /Delete /TN OffScrEx /F", 0, False + Else + Set oAT = oWmiLocal.Get("Win32_ScheduledJob") + Set DateTime = CreateObject("WbemScripting.SWbemDateTime") + DateTime.SetVarDate DateAdd("n",1,Now),True + Result = oAT.Create("explorer.exe", DateTime.Value, , , , True, JobID) + End If 'iVersionNT + End If +End Sub 'RestoreExploer +'======================================================================================================= + +'Returns the delimiter for a passed in string +Function Delimiter (sVersion) + + Dim iCnt, iAsc + + Delimiter = " " + For iCnt = 1 To Len(sVersion) + iAsc = Asc(Mid(sVersion, iCnt, 1)) + If Not (iASC >= 48 And iASC <= 57) Then + Delimiter = Mid(sVersion, iCnt, 1) + Exit Function + End If + Next 'iCnt +End Function +'======================================================================================================= + +'Check registry access permissions. Failure will terminate the script +Function CheckRegPermissions + Const KEY_QUERY_VALUE = &H0001 + Const KEY_SET_VALUE = &H0002 + Const KEY_CREATE_SUB_KEY = &H0004 + Const DELETE = &H00010000 + + Dim sSubKeyName + Dim fReturn + + CheckRegPermissions = True + sSubKeyName = "Software\Microsoft\Windows\" + oReg.CheckAccess HKLM, sSubKeyName, KEY_QUERY_VALUE, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, KEY_SET_VALUE, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, KEY_CREATE_SUB_KEY, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, DELETE, fReturn + If Not fReturn Then CheckRegPermissions = False + +End Function 'CheckRegPermissions +'======================================================================================================= + +'Check if a product will be removed +Function CheckDeleteEx (sProductCode) + + CheckDeleteEx = False + If CheckDelete (sProductCode) Then + CheckDeleteEx = True + Exit Function + End If + If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then + CheckDeleteEx = InScope(sProductCode) AND NOT dictionaryKeepProd.Exists(UCase(sProductCode)) + End If +End Function 'CheckDelete +'======================================================================================================= + +'Check if an Office product is still registered with a SKU that stays on the computer +Function CheckDelete (sProductCode) + + 'Ensure valid GUID length + If NOT Len(sProductCode) = 38 Then + CheckDelete = False + Exit Function + End If + + 'If it's a non Office ProductCode exit with false right away + CheckDelete = InScope(sProductCode) + If Not CheckDelete Then Exit Function + If dictionaryKeepProd.Exists(UCase(sProductCode)) Then CheckDelete = False + +End Function 'CheckDelete +'======================================================================================================= + +'Check if ProductCode is in scope +Function InScope(sProductCode) + + Dim fInScope + Dim sProd + + fInScope = False + If Len(sProductCode) = 38 Then + sProd = UCase(sProductCode) + Select Case OVERSIONMAJOR + Case "11" + If Right(sProd,PRODLEN)=OFFICEID Then fInScope = True + Case "12" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True + Case "14" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True + Case "15" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then + Select Case Mid(sProd, 11, 4) + Case "007E", "008F", "008C", "24E1", "237A" + ' C2R products - keep them + Case Else + fInScope = True + End Select + End If + Case Else + End Select + End If '38 + + InScope = fInScope +End Function 'InScope +'======================================================================================================= + +'Register an orphaned .msi product as installed for MSI +Sub MsiRegisterProduct (sMsiFile) + + Dim sDisplayVersion, sCurKey, sDisplayName, sLang, sProductCode, sTmpKey + Dim iCnt + + 'Create a temporary keys to simulate an installed product + sProductCode = "" + sProductCode = GetMsiProductCode(sMsiFile) + sDisplayVersion = GetMsiProductVersion(sMsiFile) + If sDisplayVersion = "" Then sDisplayVersion = OVERSION & ".0000.0000" + sDisplayName = GetMsiProductName(sMsiFile) + If sDisplayName = "" Then sDisplayName = sProductCode + Select Case OVERSIONMAJOR + Case "9","10","11" + sLang = CInt("&h" & Mid(sProductCode,6,4)) + Case "12","14" + sLang = CInt("&h" & Mid(sProductCode,16,4)) + Case Else + End Select + + For iCnt = 1 To 3 + Select Case iCnt + Case 1 + sCurKey = REG_ARP & sProductCode + oReg.CreateKey HKLM,sCurKey + Case 2 + sCurKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & GetCompressedGuid(sProductCode) + oReg.CreateKey HKLM,sCurKey + oReg.CreateKey HKLM,sCurKey & "\Features" + oReg.CreateKey HKLM,sCurKey & "\InstallProperties" + oReg.CreateKey HKLM,sCurKey & "\Patches" + oReg.CreateKey HKLM,sCurKey & "\Usage" + sCurKey = sCurKey & "\InstallProperties" + oReg.SetStringValue HKLM,sCurKey,"LocalPackage",sMsiFile + Case 3 + sCurKey = "Installer\Products\" & GetCompressedGuid(sProductCode) + sTmpKey = sCurKey + oReg.CreateKey HKCR,sCurKey + oReg.SetDWordValue HKCR,sCurKey,"AdvertiseFlags",388 + oReg.SetDWordValue HKCR,sCurKey,"Assignment",1 + oReg.SetDWordValue HKCR,sCurKey,"AuthorizedLUAApp",0 + oReg.SetStringValue HKCR,sCurKey,"Clients",":" + oReg.SetDWordValue HKCR,sCurKey,"DeploymentFlags",3 + oReg.SetDWordValue HKCR,sCurKey,"InstanceType",0 + oReg.SetDWordValue HKCR,sCurKey,"Language",sLang + oReg.SetStringValue HKCR,sCurKey,"PackageCode",GetMsiPackageCode(sMsiFile) + oReg.SetStringValue HKCR,sCurKey,"ProductName",sDisplayName + oReg.SetDWordValue HKCR,sCurKey,"VersionMinor",0 + sCurKey = sTmpKey & "\SourceList" + oReg.CreateKey HKCR,sCurKey + oReg.SetExpandedStringValue HKCR,sCurKey,"LastUsedSource",sScrubDir + oReg.SetStringValue HKCR,sCurKey,"PackageName",Mid(sMsiFile,InstrRev(sMsiFile,"\")+1) + sCurKey = sTmpKey & "\SourceList\Media" + oReg.CreateKey HKCR,sCurKey + oReg.SetStringValue HKCR,sCurKey,"1",OREF & ";1" + oReg.SetStringValue HKCR,sCurKey,"DiskPrompt",sDisplayName + sCurKey = sTmpKey & "\SourceList\Net" + oReg.CreateKey HKCR,sCurKey + oReg.SetExpandedStringValue HKCR,sCurKey,"1",sScrubDir + + Case Else + End Select + If iCnt <3 Then + oReg.SetStringValue HKLM,sCurKey,"Comments","" + oReg.SetStringValue HKLM,sCurKey,"Contact","" + oReg.SetStringValue HKLM,sCurKey,"DisplayName",sDisplayName + oReg.SetStringValue HKLM,sCurKey,"DisplayVersion",sDisplayVersion + oReg.SetDWordValue HKLM,sCurKey,"EstimatedSize",0 + oReg.SetStringValue HKLM,sCurKey,"HelpLink","" + oReg.SetStringValue HKLM,sCurKey,"HelpTelephone","" + oReg.SetStringValue HKLM,sCurKey,"InstallDate","20100101" + If f64 Then + oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFilesX86 + Else + oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFiles + End If + oReg.SetStringValue HKLM,sCurKey,"InstallSource",sScrubDir + oReg.SetDWordValue HKLM,sCurKey,"Language",sLang + oReg.SetExpandedStringValue HKLM,sCurKey,"ModifyPath","MsiExec.exe /X" & sProductCode + oReg.SetDWordValue HKLM,sCurKey,"NoModify",1 + oReg.SetStringValue HKLM,sCurKey,"Publisher","Microsoft Corporation" + oReg.SetStringValue HKLM,sCurKey,"Readme","" + oReg.SetStringValue HKLM,sCurKey,"Size","" + oReg.SetDWordValue HKLM,sCurKey,"SystemComponent",0 + oReg.SetExpandedStringValue HKLM,sCurKey,"UninstallString","MsiExec.exe /X" & sProductCode + oReg.SetStringValue HKLM,sCurKey,"URLInfoAbout","" + oReg.SetStringValue HKLM,sCurKey,"URLUpdateInfo","" + oReg.SetDWordValue HKLM,sCurKey,"Version",0 + oReg.SetDWordValue HKLM,sCurKey,"VersionMajor",OVERSIONMAJOR + oReg.SetDWordValue HKLM,sCurKey,"VersionMinor",0 + oReg.SetDWordValue HKLM,sCurKey,"WindowsInstaller",1 + End If '< 3 + Next 'iCnt + +End Sub 'MsiRegisterProduct +'======================================================================================================= + +'Obtain the ProductCode (GUID) from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductCode(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductCode = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductCode'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductCode = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductCode +'======================================================================================================= + +'Obtain the ProductVersion from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductVersion(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductVersion = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductVersion'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductVersion = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductVersion +'======================================================================================================= + +'Obtain the ProductVersion from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductName(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductName = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductName'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductName = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductVersion +'======================================================================================================= + +'Obtain the PackageCode (GUID) from a .msi package +'The function will the .msi'S SummaryInformation stream +Function GetMsiPackageCode(sMsiFile) + + On Error Resume Next + + Const PID_REVNUMBER = 9 + + GetMsiPackageCode = "" + GetMsiPackageCode = GetCompressedGuid(oMsi.SummaryInformation(sMsiFile,MSIOPENDATABASEREADONLY).Property(PID_REVNUMBER)) + +End Function 'GetMsiPackageCode +'======================================================================================================= + +'Returns a string with a list of ProductCodes from the summary information stream +Function MspTargets (sMspFile) + Const MSIOPENDATABASEMODE_PATCHFILE = 32 + Const PID_TEMPLATE = 7 + + Dim Msp + 'Non critical routine. Don't fail on error + On Error Resume Next + MspTargets = "" + If oFso.FileExists(sMspFile) Then + Set Msp = Msi.OpenDatabase(WScript.Arguments(0),MSIOPENDATABASEMODE_PATCHFILE) + If Err = 0 Then MspTargets = Msp.SummaryInformation.Property(PID_TEMPLATE) + End If 'oFso.FileExists(sMspFile) +End Function 'MspTargets +'======================================================================================================= + +'Return the ProductCode {{GUID} from a .MSI package +Function ProductCode(sMsi) + Const MSIUILEVELNONE = 2 'No UI + Dim MsiSession + + On Error Resume Next + 'Non critical routine. Don't fail on error + If oFso.FileExists(sMsi) Then + oMsi.UILevel = MSIUILEVELNONE + Set MsiSession = oMsi.OpenPackage(sMsi,1) + ProductCode = MsiSession.ProductProperty("ProductCode") + Set MsiSession = Nothing + Else + ProductCode = "" + End If 'oFso.FileExists(sMsi) +End Function 'ProductCode +'======================================================================================================= + +Function GetUpgradeCode(sGuid) + + 'Ensure Valid Length + If NOT Len(sGuid) = 38 Then Exit Function + + GetUpgradeCode = "{{00" & Mid(sGuid, 4, 2) & "0000-" & Mid(sGuid, 11, 4) & "-0000-" & Mid(sGuid, 21, 1) & "000-" & Mid(sGuid, 26, 1) & "000000FF1CE}" + +End Function 'GetUpgradeCode +'======================================================================================================= + +Function GetExpandedGuid (sGuid) + Dim i + + 'Ensure valid length + If NOT Len(sGuid) = 32 Then Exit Function + + GetExpandedGuid = "{{" & StrReverse(Mid(sGuid,1,8)) & "-" & _ + StrReverse(Mid(sGuid,9,4)) & "-" & _ + StrReverse(Mid(sGuid,13,4))& "-" + For i = 17 To 20 + If i Mod 2 Then + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) + Else + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) + End If + Next + GetExpandedGuid = GetExpandedGuid & "-" + For i = 21 To 32 + If i Mod 2 Then + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) + Else + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) + End If + Next + GetExpandedGuid = GetExpandedGuid & "}" +End Function +'======================================================================================================= + +'Converts a GUID into the compressed format +Function GetCompressedGuid (sGuid) + Dim sCompGUID + Dim i + + 'Ensure Valid Length + If NOT Len(sGuid) = 38 Then Exit Function + + sCompGUID = StrReverse(Mid(sGuid,2,8)) & _ + StrReverse(Mid(sGuid,11,4)) & _ + StrReverse(Mid(sGuid,16,4)) + For i = 21 To 24 + If i Mod 2 Then + sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) + Else + sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) + End If + Next + For i = 26 To 37 + If i Mod 2 Then + sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) + Else + sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) + End If + Next + GetCompressedGuid = sCompGUID +End Function +'======================================================================================================= + +'Unsquish GUID +Function GetDecodedGuid(sEncGuid, sGuid) + +Dim sDecode, sTable, sHex, iChr +Dim arrTable +Dim i, iAsc, pow85, decChar +Dim lTotal +Dim fFailed + + fFailed = False + + sTable = "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ + "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ + "0xff,0x00,0xff,0xff,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff," & _ + "0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0xff,0xff,0xff,0x16,0xff,0x17," & _ + "0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27," & _ + "0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0xff,0x34,0x35,0x36," & _ + "0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46," & _ + "0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xff,0x53,0x54,0xff" + arrTable = Split(sTable,",") + lTotal = 0 : pow85 = 1 + For i = 0 To 19 + fFailed = True + If i Mod 5 = 0 Then + lTotal = 0 : pow85 = 1 + End If ' i Mod 5 = 0 + iAsc = Asc(Mid(sEncGuid,i+1,1)) + sHex = arrTable(iAsc) + If iAsc >=128 Then Exit For + If sHex = "0xff" Then Exit For + iChr = CInt("&h"&Right(sHex,2)) + lTotal = lTotal + (iChr * pow85) + If i Mod 5 = 4 Then sDecode = sDecode & DecToHex(lTotal) + pow85 = pow85 * 85 + fFailed = False + Next 'i + If NOT fFailed Then sGuid = "{{"&Mid(sDecode,1,8)&"-"& _ + Mid(sDecode,13,4)&"-"& _ + Mid(sDecode,9,4)&"-"& _ + Mid(sDecode,23,2) & Mid(sDecode,21,2)&"-"& _ + Mid(sDecode,19,2) & Mid(sDecode,17,2) & Mid(sDecode,31,2) & Mid(sDecode,29,2) & Mid(sDecode,27,2) & Mid(sDecode,25,2) &"}" + + GetDecodedGuid = NOT fFailed + +End Function 'GetDecodedGuid +'======================================================================================================= + +'Convert a long decimal to hex +Function DecToHex(lDec) + + Dim sHex + Dim iLen + Dim lVal, lExp + Dim arrChr + + arrChr = Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F") + sHex = "" + lVal = lDec + lExp = 16^10 + While lExp >= 1 + If lVal >= lExp Then + sHex = sHex & arrChr(Int(lVal / lExp)) + lVal = lVal - lExp * Int(lVal / lExp) + Else + sHex = sHex & "0" + If sHex = "0" Then sHex = "" + End If + lExp = lExp / 16 + Wend + + iLen = 8 - Len(sHex) + If iLen > 0 Then sHex = String(iLen,"0") & sHex + DecToHex = sHex +End Function +'======================================================================================================= + +'Ensures that only valid metadata entries exist to avoid API failures +Sub EnsureValidWIMetadata (hDefKey,sKey,iValidLength) + +Dim arrKeys +Dim SubKey + +If Len(sKey) > 1 Then + If Right(sKey,1) = "\" Then sKey = Left(sKey,Len(sKey)-1) +End If + +If RegEnumKey(hDefKey,sKey,arrKeys) Then + For Each SubKey in arrKeys + If NOT Len(SubKey) = iValidLength Then + RegDeleteKey hDefKey,sKey & "\" & SubKey & "\" + End If + Next 'SubKey +End If + +End Sub 'EnsureValidWIMetadata +'======================================================================================================= + +'------------------------------------------------------------------------------- +' CleanOSPP +' +' Clean out licenses from the Office Software Protection Platform +'------------------------------------------------------------------------------- +Sub CleanOSPP + Dim oProductInstances, pi + Dim sCleanOSPP, sCmd, sRetVal + + CONST OfficeAppId = "0ff1ce15-a989-479d-af46-f275c6370663" 'Office 2013 + + sCleanOSPP = "x64\CleanOSPP.exe" + If Not f64 Then sCleanOSPP = "x86\CleanOSPP.exe" + If oFso.FileExists(sScriptDir & sCleanOSPP) Then + sCmd = sScriptDir & sCleanOSPP + Log " Running: " & sCmd + On Error Resume Next + sRetVal = oWShell.Run(sCmd, 0, True) + Log " Return value: " & sRetVal + On Error Goto 0 + Exit Sub + End If + + On Error Resume Next + ' Initialize the software protection platform object with a filter on Office 2013 products + If iVersionNT > 601 Then + Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM SoftwareLicensingProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") + Else + Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM OfficeSoftwareProtectionProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") + End If + + ' Remove all licenses + For Each pi in oProductInstances + If NOT IsNull(pi) Then + pi.UninstallProductKey( pi.ProductKeyID) + End If + Next 'pi + +End Sub 'CleanOSPP +'======================================================================================================= + + +'Create a backup copy of the file in the ScrubDir then delete the file +Sub CopyAndDeleteFile(sFile) + Dim File + + 'Error handling inlined + On Error Resume Next + If oFso.FileExists(sFile) Then + Set File = oFso.GetFile(sFile) + If Not oFso.FolderExists(sScrubDir & "\" & File.ParentFolder.Name) Then oFso.CreateFolder sScrubDir & "\" & File.ParentFolder.Name + If Not fDetectOnly Then + LogOnly " - Backing up file: " & sFile + oFso.CopyFile sFile,sScrubDir & "\" & File.ParentFolder.Name & "\" & File.Name,True : CheckError "CopyAndDeleteFile" + Set File = Nothing + DeleteFile(sFile) + Else + LogOnly " - Simulate CopyAndDelete file: " & sFile + End If + End If 'oFso.FileExists +End Sub 'CopyAndDeleteFile +'======================================================================================================= + +'Wrapper to delete a file +Sub DeleteFile(sFile) + Dim File + Dim sFileName, sNewPath + + On Error Resume Next + + If dictionaryKeepFolder.Exists(LCase(sFile)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFile + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFile + LogOnly " Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFile))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFile + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFile + LogOnly " Remaining applications will need a repair!" + End If + End If + End If + + If oFso.FileExists(sFile) Then + LogOnly " - Delete file: " & sFile + If Not fDetectOnly Then oFso.DeleteFile sFile,True + If Err <> 0 Then + CheckError "DeleteFile" + If fForce Then + 'Try to move the file and delete from there + Set File = oFso.GetFile(sFile) + sFileName = File.Name + sNewPath = sScrubDir & "\ScrubTmp" + Set File = Nothing + If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) + 'Move the file + LogOnly " - Move file to: " & sNewPath & "\" & sFileName + oFso.MoveFile sFile,sNewPath & "\" & sFileName + If Err <> 0 Then + CheckError "DeleteFile (move)" + End If 'Err <> 0 + Else + fRebootRequired = True + End If 'fForce + End If 'Err <> 0 + End If 'oFso.FileExists +End Sub 'DeleteFile +'======================================================================================================= + +'64 bit aware wrapper to return the requested folder +Function GetFolderPath(sPath) + GetFolderPath = True + If oFso.FolderExists(sPath) Then Exit Function + If f64 AND oFso.FolderExists(Wow64Folder(sPath)) Then + sPath = Wow64Folder(sPath) + Exit Function + End If + GetFolderPath = False +End Function 'GetFolderPath +'======================================================================================================= + +'Enumerates subfolder names of a folder and returns True if subfolders exist +Function EnumFolderNames (sFolder, arrSubFolders) + Dim Folder, Subfolder + Dim sSubFolders + + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Name & "," + Next 'Subfolder + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Name & "," + Next 'Subfolder + End If + If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) + EnumFolderNames = Len(sSubFolders)>0 +End Function 'EnumFolderNames +'======================================================================================================= + +'Enumerates subfolders of a folder and returns True if subfolders exist +Function EnumFolders (sFolder, arrSubFolders) + Dim Folder, Subfolder + Dim sSubFolders + + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Path & "," + Next 'Subfolder + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Path & "," + Next 'Subfolder + End If + If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) + EnumFolders = Len(sSubFolders)>0 +End Function 'EnumFolders +'======================================================================================================= + +Sub GetMseFolderStructure (Folder) + Dim SubFolder + + For Each SubFolder in Folder.SubFolders + ReDim Preserve arrMseFolders(UBound(arrMseFolders)+1) + arrMseFolders(UBound(arrMseFolders)) = SubFolder.Path + GetMseFolderStructure SubFolder + Next 'SubFolder +End Sub 'GetMseFolderStructure +'======================================================================================================= + +'Wrapper to delete a folder +Sub DeleteFolder(sFolder) + Dim Folder + Dim sDelFolder, sFolderName, sNewPath + + 'Ensure trailing "\" + sFolder = sFolder & "\" + While InStr(sFolder,"\\")>0 + sFolder = Replace(sFolder,"\\","\") + Wend + + If dictionaryKeepFolder.Exists(LCase(sFolder)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFolder + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFolder + LogOnly " Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFolder))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFolder + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFolder + LogOnly " Remaining applications will need a repair!" + End If + End If + End If + + 'Strip trailing "\" + If Len(sFolder) > 1 Then + sFolder = Left(sFolder,Len(sFolder)-1) + End If + + On Error Resume Next + If oFso.FolderExists(sFolder) Then + sDelFolder = sFolder + ElseIf f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + sDelFolder = Wow64Folder(sFolder) + Else + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete folder: " & sDelFolder + oFso.DeleteFolder sDelFolder,True + Else + LogOnly " - Simulate delete folder: " & sDelFolder + End If + If Err <> 0 Then + CheckError "DeleteFolder" + 'Try to move the folder and delete from there + Set Folder = oFso.GetFolder(sDelFolder) + sFolderName = Folder.Name + sNewPath = sScrubDir & "\ScrubTmp" + Set Folder = Nothing + 'Ensure we stay within the same drive + If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) + 'Move the folder + LogOnly " - Moving folder to: " & sNewPath & "\" & sFolderName + oFso.MoveFolder sFolder,sNewPath & "\" & sFolderName + If Err <> 0 Then + CheckError "DeleteFolder (move)" + End If 'Err <> 0 + End If 'Err <> 0 +End Sub 'DeleteFolder +'======================================================================================================= + +'Delete empty folder structures +Sub DeleteEmptyFolders + Dim Folder + Dim sFolder + + ' cosmetic' task don't fail on error + On Error Resume Next + If Not IsArray(arrDeleteFolders) Then Exit Sub + Log vbCrLf & "Empty Folder Cleanup" + For Each sFolder in arrDeleteFolders + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + If CBool(Folder.Attributes AND 1024) Then + 'exclude protected folder + Else + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If + End If + Next 'sFolder + CheckError "DeleteEmptyFolders" + On Error Goto 0 +End Sub 'DeleteEmptyFolders +'======================================================================================================= + +'Delete indivdual empty folder structures +Sub DeleteEmptyFolder (sFolder) + Dim Folder + + ' cosmetic' task don't fail on error + On Error Resume Next + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + If CBool(Folder.Attributes AND 1024) Then + 'exclude protected folder + Else + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If + End If + + CheckError "DeleteEmptyFolder" + On Error Goto 0 +End Sub 'DeleteEmptyFolder +'======================================================================================================= + +'Wrapper to delete a folder and remove the empty parent folder structure +Sub SmartDeleteFolder(sFolder) + If oFso.FolderExists(sFolder) Then + If Not fDetectOnly Then + LogOnly " Request SmartDelete for folder: " & sFolder + SmartDeleteFolderEx sFolder + Else + LogOnly " Simulate request SmartDelete for folder: " & sFolder + End If + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + If Not fDetectOnly Then + LogOnly "Request SmartDelete for folder: " & Wow64Folder(sFolder) + SmartDeleteFolderEx Wow64Folder(sFolder) + Else + LogOnly "Simulate request SmartDelete for folder: " & Wow64Folder(sFolder) + End If + End If +End Sub 'SmartDeleteFolder +'======================================================================================================= + +'Executes the folder delete operation +Sub SmartDeleteFolderEx(sFolder) + Dim Folder + + On Error Resume Next + DeleteFolder sFolder : CheckError "SmartDeleteFolderEx" + On Error Goto 0 + Set Folder = oFso.GetFolder(oFso.GetParentFolderName(sFolder)) + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then SmartDeleteFolderEx(Folder.Path) +End Sub 'SmartDeleteFolderEx +'======================================================================================================= + +'Adds the folder structure to the 'KeepFolder' dictionary +Sub AddKeepFolder(sPath) + + Dim Folder + + 'Ensure trailing "\" + sPath = LCase(sPath) & "\" + While InStr(sPath,"\\")>0 + sPath = Replace(sPath,"\\","\") + Wend + + If NOT dictionaryKeepFolder.Exists (sPath) Then + dictionaryKeepFolder.Add sPath,sPath + Else + Exit Sub + End If + sPath = LCase(oFso.GetParentFolderName(sPath)) & "\" + If oFso.FolderExists(sPath) Then AddKeepFolder(sPath) +End Sub +'======================================================================================================= + +'Handles additional folder-path operations on 64 bit environments +Function Wow64Folder(sFolder) + If LCase(Left(sFolder,Len(sWinDir & "\System32"))) = LCase(sWinDir & "\System32") Then + Wow64Folder = sWinDir & "\syswow64" & Right(sFolder,Len(sFolder)-Len(sSys32Dir)) + ElseIf LCase(Left(sFolder,Len(sProgramFiles))) = LCase(sProgramFiles) Then + Wow64Folder = sProgramFilesX86 & Right(sFolder,Len(sFolder)-Len(sProgramFiles)) + Else + Wow64Folder = "?" 'Return invalid string to ensure the folder cannot exist + End If +End Function 'Wow64Folder +'======================================================================================================= + +Function HiveString(hDefKey) + On Error Resume Next + Select Case hDefKey + Case HKCR : HiveString = "HKEY_CLASSES_ROOT" + Case HKCU : HiveString = "HKEY_CURRENT_USER" + Case HKLM : HiveString = "HKEY_LOCAL_MACHINE" + Case HKU : HiveString = "HKEY_USERS" + Case Else : HiveString = hDefKey + End Select +End Function +'======================================================================================================= + +Function RegKeyExists(hDefKey,sSubKeyName) + Dim arrKeys + RegKeyExists = False + If oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) = 0 Then RegKeyExists = True +End Function +'======================================================================================================= + +Function RegValExists(hDefKey,sSubKeyName,sName) + Dim arrValueTypes, arrValueNames + Dim i + + RegValExists = False + If Not RegKeyExists(hDefKey,sSubKeyName) Then Exit Function + If sName = "" Then + RegValExists = True + Exit Function + End If + If oReg.EnumValues(hDefKey,sSubKeyName,arrValueNames,arrValueTypes) = 0 AND IsArray(arrValueNames) Then + For i = 0 To UBound(arrValueNames) + If LCase(arrValueNames(i)) = Trim(LCase(sName)) Then RegValExists = True + Next + End If 'oReg.EnumValues +End Function +'======================================================================================================= + +'Read the value of a given registry entry +Function RegReadValue(hDefKey, sSubKeyName, sName, sValue, sType) + Dim RetVal + Dim Item + Dim arrValues + + Select Case UCase(sType) + Case "1","REG_SZ" + RetVal = oReg.GetStringValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "2","REG_EXPAND_SZ" + RetVal = oReg.GetExpandedStringValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetExpandedStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "7","REG_MULTI_SZ" + RetVal = oReg.GetMultiStringValue(hDefKey,sSubKeyName,sName,arrValues) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetMultiStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,arrValues) + If RetVal = 0 Then sValue = Join(arrValues,chr(34)) + + Case "4","REG_DWORD" + RetVal = oReg.GetDWORDValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then + RetVal = oReg.GetDWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + End If + + Case "3","REG_BINARY" + RetVal = oReg.GetBinaryValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetBinaryValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "11","REG_QWORD" + RetVal = oReg.GetQWORDValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetQWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case Else + RetVal = -1 + End Select 'sValue + + RegReadValue = (RetVal = 0) +End Function 'RegReadValue +'======================================================================================================= + +'Enumerate a registry key to return all values +Function RegEnumValues(hDefKey,sSubKeyName,arrNames, arrTypes) + Dim RetVal, RetVal64 + Dim arrNames32, arrNames64, arrTypes32, arrTypes64 + + If f64 Then + RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames32,arrTypes32) + RetVal64 = oReg.EnumValues(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrNames64,arrTypes64) + If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrTypes32) Then + arrNames = arrNames32 + arrTypes = arrTypes32 + End If + If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames64) AND IsArray(arrTypes64) Then + arrNames = arrNames64 + arrTypes = arrTypes64 + End If + If (RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrNames64) AND IsArray(arrTypes32) AND IsArray(arrTypes64) Then + arrNames = RemoveDuplicates(Split((Join(arrNames32,"\") & "\" & Join(arrNames64,"\")),"\")) + arrTypes = RemoveDuplicates(Split((Join(arrTypes32,"\") & "\" & Join(arrTypes64,"\")),"\")) + End If + Else + RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) + End If 'f64 + RegEnumValues = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrNames) AND IsArray(arrTypes) +End Function 'RegEnumValues +'======================================================================================================= + +'Enumerate a registry key to return all subkeys +Function RegEnumKey(hDefKey,sSubKeyName,arrKeys) + Dim RetVal, RetVal64 + Dim arrKeys32, arrKeys64 + + If f64 Then + RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys32) + RetVal64 = oReg.EnumKey(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrKeys64) + If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrKeys32) Then arrKeys = arrKeys32 + If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrKeys64) Then arrKeys = arrKeys64 + If (RetVal = 0) AND (RetVal64 = 0) Then + If IsArray(arrKeys32) AND IsArray (arrKeys64) Then + arrKeys = RemoveDuplicates(Split((Join(arrKeys32,"\") & "\" & Join(arrKeys64,"\")),"\")) + ElseIf IsArray(arrKeys64) Then + arrKeys = arrKeys64 + Else + arrKeys = arrKeys32 + End If + End If + Else + RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) + End If 'f64 + RegEnumKey = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrKeys) +End Function 'RegEnumKey +'======================================================================================================= + +'Wrapper around oReg.DeleteValue to handle 64 bit +Sub RegDeleteValue(hDefKey, sSubKeyName, sName, fRegMultiSZ) + Dim sWow64Key,sRealName + Dim iRetVal + + sRealName = sName + If UCase(sName) = "(DEFAULT)" Then sRealName = "" + + If dictionaryKeepReg.Exists(LCase(sSubKeyName & sName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName) & sName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + End If + + If RegValExists(hDefKey,sSubKeyName,sRealName) Then + On Error Resume Next + If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then + LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName + iRetVal = 0 + iRetVal = oReg.DeleteValue(hDefKey, sSubKeyName, sRealName) + CheckError "RegDeleteValue" + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + Else + LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName + End If + On Error Goto 0 + End If 'RegValExists + If f64 Then + sWow64Key = Wow64Key(hDefKey, sSubKeyName) + If RegValExists(hDefKey,sWow64Key,sRealName) Then + On Error Resume Next + If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then + LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName + iRetVal = 0 + iRetVal = oReg.DeleteValue(hDefKey, sWow64Key, sRealName) + CheckError "RegDeleteValue" + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + Else + LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName + End If + On Error Goto 0 + End If 'RegKeyExists + End If +End Sub 'RegDeleteValue +'======================================================================================================= + +'Wrappper around RegDeleteKeyEx to handle 64bit scenrios +Sub RegDeleteKey(hDefKey, sSubKeyName) + Dim sWow64Key + + 'Ensure trailing "\" + sSubKeyName = sSubKeyName & "\" + While InStr(sSubKeyName,"\\")>0 + sSubKeyName = Replace(sSubKeyName,"\\","\") + Wend + + If dictionaryKeepReg.Exists(LCase(sSubKeyName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + End If + + If Len(sSubKeyName) > 1 Then + 'Strip of trailing "\" + sSubKeyName = Left(sSubKeyName,Len(sSubKeyName)-1) + End If + + If RegKeyExists(hDefKey, sSubKeyName) Then + If Not fDetectOnly Then + LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName + On Error Resume Next + RegDeleteKeyEx hDefKey, sSubKeyName + On Error Goto 0 + Else + LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName + End If + End If 'RegKeyExists + If f64 Then + sWow64Key = Wow64Key(hDefKey, sSubKeyName) + If RegKeyExists(hDefKey,sWow64Key) Then + If Not fDetectOnly Then + LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key + On Error Resume Next + RegDeleteKeyEx hDefKey, sWow64Key + On Error Goto 0 + Else + LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key + End If + End If 'RegKeyExists + End If +End Sub 'RegDeleteKey +'======================================================================================================= + +'Recursively delete a registry structure +Sub RegDeleteKeyEx(hDefKey, sSubKeyName) + Dim arrSubkeys + Dim sSubkey + Dim iRetVal + + On Error Resume Next + oReg.EnumKey hDefKey, sSubKeyName, arrSubkeys + If IsArray(arrSubkeys) Then + For Each sSubkey In arrSubkeys + RegDeleteKeyEx hDefKey, sSubKeyName & "\" & sSubkey + Next + End If + If Not fDetectOnly Then + iRetVal = 0 + iRetVal = oReg.DeleteKey(hDefKey,sSubKeyName) + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + End If +End Sub 'RegDeleteKeyEx +'======================================================================================================= + +'Return the alternate regkey location on 64bit environment +Function Wow64Key(hDefKey, sSubKeyName) + Dim iPos + + Select Case hDefKey + Case HKCU + If Left(sSubKeyName,17) = "Software\Classes\" Then + Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) + Else + iPos = InStr(sSubKeyName,"\") + Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) + End If + + Case HKLM + If Left(sSubKeyName,17) = "Software\Classes\" Then + Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) + Else + iPos = InStr(sSubKeyName,"\") + Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) + End If + + Case Else + Wow64Key = "Wow6432Node\" & sSubKeyName + + End Select 'hDefKey +End Function 'Wow64Key +'======================================================================================================= + +'Remove duplicate entries from a one dimensional array +Function RemoveDuplicates(Array) + Dim Item + Dim oDic + + Set oDic = CreateObject("Scripting.Dictionary") + For Each Item in Array + If Not oDic.Exists(Item) Then oDic.Add Item,Item + Next 'Item + RemoveDuplicates = oDic.Keys +End Function 'RemoveDuplicates +'======================================================================================================= + +'End running instances of setup +Sub EndCurrentInstalls () + Dim Processes, Process + Dim iRet + + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like '%setup%' OR Name like '%install%'") + For Each Process in Processes + Log " - End process " & Process.Name + iRet = Process.Terminate() + CheckError "EndCurrentInstalls: " & "Process.Name" + Next 'Process + StopService "msiserver" +End Sub 'EndCurrentInstalls +'======================================================================================================= + +'Uses WMI to stop a service +Function StopService(sService) + Dim Services, Service + Dim sQuery + Dim iRet + + On Error Resume Next + + iRet = 0 + sQuery = "Select * From Win32_Service Where Name='" & sService & "'" + Set Services = oWmiLocal.Execquery(sQuery) + 'Stop the service + For Each Service in Services + If UCase(Service.State) = "STARTED" Then iRet = Service.StopService + If UCase(Service.State) = "RUNNING" Then iRet = Service.StopService + + Next 'Service + StopService = (iRet = 0) +End Function 'StopService +'======================================================================================================= + +'Delete a service +Sub DeleteService(sService) + Dim Services, Service, Processes, Process + Dim sQuery, sStates + Dim iRet + + On Error Resume Next + + sStates = "STARTED;RUNNING" + sQuery = "Select * From Win32_Service Where Name='" & sService & "'" + Set Services = oWmiLocal.Execquery(sQuery) + + 'Stop and delete the service + For Each Service in Services + Log " Found service " & sService & " in state " & Service.State + If InStr(sStates,UCase(Service.State))>0 Then iRet = Service.StopService() + 'Ensure no more instances of the service are running + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='" & sService & ".exe'") + For Each Process in Processes + iRet = Process.Terminate() + Next 'Process + If Not fDetectOnly Then + Log " - Deleting Service -> " & sService + iRet = Service.Delete() + Else + Log " - Simulate deleting Service -> " & sService + End If + Next 'Service + Set Services = Nothing + Err.Clear + +End Sub 'DeleteService +'======================================================================================================= + +'Translation for setup.exe error codes +Function SetupRetVal(RetVal) + Select Case RetVal + Case 0 : SetupRetVal = "Success" + Case 30001,1 : SetupRetVal = "AbstractMethod" + Case 30002,2 : SetupRetVal = "ApiProhibited" + Case 30003,3 : SetupRetVal = "AlreadyImpersonatingAUser" + Case 30004,4 : SetupRetVal = "AlreadyInitialized" + Case 30005,5 : SetupRetVal = "ArgumentNullException" + Case 30006,6 : SetupRetVal = "AssertionFailed" + Case 30007,7 : SetupRetVal = "CABFileAddFailed" + Case 30008,8 : SetupRetVal = "CommandFailed" + Case 30009,9 : SetupRetVal = "ConcatenationFailed" + Case 30010,10 : SetupRetVal = "CopyFailed" + Case 30011,11 : SetupRetVal = "CreateEventFailed" + Case 30012,12 : SetupRetVal = "CustomizationPatchNotFound" + Case 30013,13 : SetupRetVal = "CustomizationPatchNotApplicable" + Case 30014,14 : SetupRetVal = "DuplicateDefinition" + Case 30015,15 : SetupRetVal = "ErrorCodeOnly - Passthrough for Win32 error" + Case 30016,16 : SetupRetVal = "ExceptionNotThrown" + Case 30017,17 : SetupRetVal = "FailedToImpersonateUser" + Case 30018,18 : SetupRetVal = "FailedToInitializeFlexDataSource" + Case 30019,19 : SetupRetVal = "FailedToStartClassFactories" + Case 30020,20 : SetupRetVal = "FileNotFound" + Case 30021,21 : SetupRetVal = "FileNotOpen" + Case 30022,22 : SetupRetVal = "FlexDialogAlreadyInitialized" + Case 30023,23 : SetupRetVal = "HResultOnly - Passthrough for HRESULT errors" + Case 30024,24 : SetupRetVal = "HWNDNotFound" + Case 30025,25 : SetupRetVal = "IncompatibleCacheAction" + Case 30026,26 : SetupRetVal = "IncompleteProductAddOns" + Case 30027,27 : SetupRetVal = "InstalledProductStateCorrupt" + Case 30028,28 : SetupRetVal = "InsufficientBuffer" + Case 30029,29 : SetupRetVal = "InvalidArgument" + Case 30030,30 : SetupRetVal = "InvalidCDKey" + Case 30031,31 : SetupRetVal = "InvalidColumnType" + Case 30032,31 : SetupRetVal = "InvalidConfigAddLanguage" + Case 30033,33 : SetupRetVal = "InvalidData" + Case 30034,34 : SetupRetVal = "InvalidDirectory" + Case 30035,35 : SetupRetVal = "InvalidFormat" + Case 30036,36 : SetupRetVal = "InvalidInitialization" + Case 30037,37 : SetupRetVal = "InvalidMethod" + Case 30038,38 : SetupRetVal = "InvalidOperation" + Case 30039,39 : SetupRetVal = "InvalidParameter" + Case 30040,40 : SetupRetVal = "InvalidProductFromARP" + Case 30041,41 : SetupRetVal = "InvalidProductInConfigXml" + Case 30042,42 : SetupRetVal = "InvalidReference" + Case 30043,43 : SetupRetVal = "InvalidRegistryValueType" + Case 30044,44 : SetupRetVal = "InvalidXMLProperty" + Case 30045,45 : SetupRetVal = "InvalidMetadataFile" + Case 30046,46 : SetupRetVal = "LogNotInitialized" + Case 30047,47 : SetupRetVal = "LogAlreadyInitialized" + Case 30048,48 : SetupRetVal = "MissingXMLNode" + Case 30049,49 : SetupRetVal = "MsiTableNotFound" + Case 30050,50 : SetupRetVal = "MsiAPICallFailure" + Case 30051,51 : SetupRetVal = "NodeNotOfTypeElement" + Case 30052,52 : SetupRetVal = "NoMoreGraceBoots" + Case 30053,53 : SetupRetVal = "NoProductsFound" + Case 30054,54 : SetupRetVal = "NoSupportedCulture" + Case 30055,55 : SetupRetVal = "NotYetImplemented" + Case 30056,56 : SetupRetVal = "NotAvailableCulture" + Case 30057,57 : SetupRetVal = "NotCustomizationPatch" + Case 30058,58 : SetupRetVal = "NullReference" + Case 30059,59 : SetupRetVal = "OCTPatchForbidden" + Case 30060,60 : SetupRetVal = "OCTWrongMSIDll" + Case 30061,61 : SetupRetVal = "OutOfBoundsIndex" + Case 30062,62 : SetupRetVal = "OutOfDiskSpace" + Case 30063,63 : SetupRetVal = "OutOfMemory" + Case 30064,64 : SetupRetVal = "OutOfRange" + Case 30065,65 : SetupRetVal = "PatchApplicationFailure" + Case 30066,66 : SetupRetVal = "PreReqCheckFailure" + Case 30067,67 : SetupRetVal = "ProcessAlreadyStarted" + Case 30068,68 : SetupRetVal = "ProcessNotStarted" + Case 30069,69 : SetupRetVal = "ProcessNotFinished" + Case 30070,70 : SetupRetVal = "ProductAlreadyDefined" + Case 30071,71 : SetupRetVal = "ResourceAlreadyTracked" + Case 30072,72 : SetupRetVal = "ResourceNotFound" + Case 30073,73 : SetupRetVal = "ResourceNotTracked" + Case 30074,74 : SetupRetVal = "SQLAlreadyConnected" + Case 30075,75 : SetupRetVal = "SQLFailedToAllocateHandle" + Case 30076,76 : SetupRetVal = "SQLFailedToConnect" + Case 30077,77 : SetupRetVal = "SQLFailedToExecuteStatement" + Case 30078,78 : SetupRetVal = "SQLFailedToRetrieveData" + Case 30079,79 : SetupRetVal = "SQLFailedToSetAttribute" + Case 30080,80 : SetupRetVal = "StorageNotCreated" + Case 30081,81 : SetupRetVal = "StreamNameTooLong" + Case 30082,82 : SetupRetVal = "SystemError" + Case 30083,83 : SetupRetVal = "ThreadAlreadyStarted" + Case 30084,84 : SetupRetVal = "ThreadNotStarted" + Case 30085,85 : SetupRetVal = "ThreadNotFinished" + Case 30086,86 : SetupRetVal = "TooManyProducts" + Case 30087,87 : SetupRetVal = "UnexpectedXMLNodeType" + Case 30088,88 : SetupRetVal = "UnexpectedError" + Case 30089,89 : SetupRetVal = "Unitialized" + Case 30090,90 : SetupRetVal = "UserCancel" + Case 30091,91 : SetupRetVal = "ExternalCommandFailed" + Case 30092,92 : SetupRetVal = "SPDatabaseOverSize" + Case 30093,93 : SetupRetVal = "IntegerTruncation" + 'msiexec return values + Case 1259 : SetupRetVal = "APPHELP_BLOCK" + Case 1601 : SetupRetVal = "INSTALL_SERVICE_FAILURE" + Case 1602 : SetupRetVal = "INSTALL_USEREXIT" + Case 1603 : SetupRetVal = "INSTALL_FAILURE" + Case 1604 : SetupRetVal = "INSTALL_SUSPEND" + Case 1605 : SetupRetVal = "UNKNOWN_PRODUCT" + Case 1606 : SetupRetVal = "UNKNOWN_FEATURE" + Case 1607 : SetupRetVal = "UNKNOWN_COMPONENT" + Case 1608 : SetupRetVal = "UNKNOWN_PROPERTY" + Case 1609 : SetupRetVal = "INVALID_HANDLE_STATE" + Case 1610 : SetupRetVal = "BAD_CONFIGURATION" + Case 1611 : SetupRetVal = "INDEX_ABSENT" + Case 1612 : SetupRetVal = "INSTALL_SOURCE_ABSENT" + Case 1613 : SetupRetVal = "INSTALL_PACKAGE_VERSION" + Case 1614 : SetupRetVal = "PRODUCT_UNINSTALLED" + Case 1615 : SetupRetVal = "BAD_QUERY_SYNTAX" + Case 1616 : SetupRetVal = "INVALID_FIELD" + Case 1618 : SetupRetVal = "INSTALL_ALREADY_RUNNING" + Case 1619 : SetupRetVal = "INSTALL_PACKAGE_OPEN_FAILED" + Case 1620 : SetupRetVal = "INSTALL_PACKAGE_INVALID" + Case 1621 : SetupRetVal = "INSTALL_UI_FAILURE" + Case 1622 : SetupRetVal = "INSTALL_LOG_FAILURE" + Case 1623 : SetupRetVal = "INSTALL_LANGUAGE_UNSUPPORTED" + Case 1624 : SetupRetVal = "INSTALL_TRANSFORM_FAILURE" + Case 1625 : SetupRetVal = "INSTALL_PACKAGE_REJECTED" + Case 1626 : SetupRetVal = "FUNCTION_NOT_CALLED" + Case 1627 : SetupRetVal = "FUNCTION_FAILED" + Case 1628 : SetupRetVal = "INVALID_TABLE" + Case 1629 : SetupRetVal = "DATATYPE_MISMATCH" + Case 1630 : SetupRetVal = "UNSUPPORTED_TYPE" + Case 1631 : SetupRetVal = "CREATE_FAILED" + Case 1632 : SetupRetVal = "INSTALL_TEMP_UNWRITABLE" + Case 1633 : SetupRetVal = "INSTALL_PLATFORM_UNSUPPORTED" + Case 1634 : SetupRetVal = "INSTALL_NOTUSED" + Case 1635 : SetupRetVal = "PATCH_PACKAGE_OPEN_FAILED" + Case 1636 : SetupRetVal = "PATCH_PACKAGE_INVALID" + Case 1637 : SetupRetVal = "PATCH_PACKAGE_UNSUPPORTED" + Case 1638 : SetupRetVal = "PRODUCT_VERSION" + Case 1639 : SetupRetVal = "INVALID_COMMAND_LINE" + Case 1640 : SetupRetVal = "INSTALL_REMOTE_DISALLOWED" + Case 1641 : SetupRetVal = "SUCCESS_REBOOT_INITIATED" + Case 1642 : SetupRetVal = "PATCH_TARGET_NOT_FOUND" + Case 1643 : SetupRetVal = "PATCH_PACKAGE_REJECTED" + Case 1644 : SetupRetVal = "INSTALL_TRANSFORM_REJECTED" + Case 1645 : SetupRetVal = "INSTALL_REMOTE_PROHIBITED" + Case 1646 : SetupRetVal = "PATCH_REMOVAL_UNSUPPORTED" + Case 1647 : SetupRetVal = "UNKNOWN_PATCH" + Case 1648 : SetupRetVal = "PATCH_NO_SEQUENCE" + Case 1649 : SetupRetVal = "PATCH_REMOVAL_DISALLOWED" + Case 1650 : SetupRetVal = "INVALID_PATCH_XML" + Case 3010 : SetupRetVal = "SUCCESS_REBOOT_REQUIRED" + Case Else : SetupRetVal = "Unknown Return Value" + End Select +End Function 'SetupRetVal +'======================================================================================================= + +Function GetProductID(sProdID) + Dim sReturn + + Select Case sProdId + + Case "000F" : sReturn = "MONDO" + Case "0010" : sReturn = "WEBFLDRS" + Case "0011" : sReturn = "PROPLUS" + Case "0012" : sReturn = "STANDARD" + Case "0013" : sReturn = "BASIC" + Case "0014" : sReturn = "PRO" + Case "0015" : sReturn = "ACCESS" + Case "0016" : sReturn = "EXCEL" + Case "0017" : sReturn = "SharePointDesigner" + Case "0018" : sReturn = "PowerPoint" + Case "0019" : sReturn = "Publisher" + Case "001A" : sReturn = "Outlook" + Case "001B" : sReturn = "Word" + Case "001C" : sReturn = "AccessRuntime" + Case "001F" : sReturn = "Proof" + Case "0020" : sReturn = "O2007CNV" + Case "0021" : sReturn = "VisualWebDeveloper" + Case "0026" : sReturn = "ExpressionWeb" + Case "0029" : sReturn = "Excel" + Case "002A" : sReturn = "Office64" + Case "002B" : sReturn = "Word" + Case "002C" : sReturn = "Proofing" + Case "002E" : sReturn = "Ultimate" + Case "002F" : sReturn = "HomeAndStudent" + Case "0028" : sReturn = "IME" + Case "0030" : sReturn = "Enterprise" + Case "0031" : sReturn = "ProfessionalHybrid" + Case "0033" : sReturn = "Personal" + Case "0035" : sReturn = "ProfessionalHybrid" + Case "0037" : sReturn = "PowerPoint" + Case "0038" : sReturn = "OlTimeZoneTool" + Case "003A" : sReturn = "PrjStd" + Case "003B" : sReturn = "PrjPro" + Case "003D" : sReturn = "SINGLEIMAGE" + Case "0043" : sReturn = "OFFICE32" + Case "0044" : sReturn = "InfoPath" + Case "0045" : sReturn = "XWEB" + Case "0048" : sReturn = "OLC" + Case "0049" : sReturn = "ACADEMIC" + Case "004A" : sReturn = "OWC11" + Case "0051" : sReturn = "VISPRO" + Case "0052" : sReturn = "VisView" + Case "0053" : sReturn = "VisStd" + Case "0054" : sReturn = "VisMUI" + Case "0055" : sReturn = "VisMUI" + Case "0057" : sReturn = "VISIO" + Case "0061" : sReturn = "CLICK2RUN" + Case "0062" : sReturn = "CLICK2RUN" + Case "0066" : sReturn = "CLICK2RUN" + Case "006C" : sReturn = "CLICK2RUN" + Case "006D" : sReturn = "CLICK2RUN" + Case "006E" : sReturn = "Shared" + Case "006F" : sReturn = "OFFICE" + Case "0070" : sReturn = "OOBE" + Case "0074" : sReturn = "STARTER" + Case "007A" : sReturn = "OLC" 'Outlook Connector + Case "007C" : sReturn = "OSCFB" 'Outlook Social Connector for FaceBook + Case "007D" : sReturn = "OSCWL" 'Outlook Social Connector for Windows Live Messenger + Case "007F" : sReturn = "OLC" 'Outlook Social Connector + Case "008A" : sReturn = "RecentDocs" + Case "008B" : sReturn = "SmallBusinessBasics" + Case "00A1" : sReturn = "ONENOTE" + Case "00A3" : sReturn = "OneNoteHomeStudent" + Case "00A4" : sReturn = "OWC11" + Case "00A7" : sReturn = "CPAO" + Case "00A9" : sReturn = "InterConnect" + Case "00AF" : sReturn = "PPtView" + Case "00B0" : sReturn = "ExPdf" + Case "00B1" : sReturn = "ExXps" + Case "00B2" : sReturn = "ExPdfXps" + Case "00B4" : sReturn = "PrjMUI" + Case "00B5" : sReturn = "PrjtMUI" + Case "00B9" : sReturn = "AER" + Case "00BA" : sReturn = "Groove" + Case "00CA" : sReturn = "SmallBusiness" + Case "00E0" : sReturn = "Outlook" + Case "00D1" : sReturn = "ACE" + Case "0100" : sReturn = "OfficeMUI" + Case "0101" : sReturn = "OfficeXMUI" + Case "0103" : sReturn = "PTK" + Case "0114" : sReturn = "GrooveSetupMetadata" + Case "0115" : sReturn = "SharedSetupMetadata" + Case "0116" : sReturn = "SharedSetupMetadata" + Case "0117" : sReturn = "AccessSetupMetadata" + Case "011A" : sReturn = "SendASmile" + Case "011D" : sReturn = "ProPlusSubscription" + Case "011F" : sReturn = "OLConnect" + Case "0126" : sReturn = "WWLIBCXM" + + Case "1014" : sReturn = "STS" + Case "1015" : sReturn = "WSSMUI" + Case "1032" : sReturn = "PJSVRAPP" + Case "104B" : sReturn = "SPS" + Case "104E" : sReturn = "SPSMUI" + Case "107F" : sReturn = "OSrv" + Case "1080" : sReturn = "OSrv" + Case "1088" : sReturn = "lpsrvwfe" + Case "10D7" : sReturn = "IFS" + Case "10D8" : sReturn = "IFSMUI" + Case "10EB" : sReturn = "DLCAPP" + Case "10F5" : sReturn = "XLSRVAPP" + Case "10F6" : sReturn = "XlSrvWFE" + Case "10F7" : sReturn = "DLC" + Case "10F8" : sReturn = "SlSrvMui" + Case "10FB" : sReturn = "OSrchWFE" + Case "10FC" : sReturn = "OSRCHAPP" + Case "10FD" : sReturn = "OSrchMUI" + Case "1103" : sReturn = "DLC" + Case "1104" : sReturn = "LHPSRV" + Case "1105" : sReturn = "PIA" + Case "1106" : sReturn = "GRVMGMTSRV" + Case "1109" : sReturn = "GSERVERRELAY" + Case "110D" : sReturn = "OSERVER" + Case "110F" : sReturn = "PSERVER" + Case "1110" : sReturn = "WSS" + Case "1121" : sReturn = "SPSSDK" + Case "1122" : sReturn = "SPSDev" + Case "1163" : sReturn = "SCC" 'SharePoint Client Components + Case Else : sReturn = sProdID + + End Select 'sProdId + GetProductID = sReturn +End Function 'GetProductID +'======================================================================================================= + +Sub Log (sLog) + If NOT fQuiet AND fCScript Then wscript.echo sLog + LogStream.WriteLine sLog +End Sub 'Log +'======================================================================================================= + +Sub LogOnly (sLog) + LogStream.WriteLine sLog +End Sub 'Log +'======================================================================================================= + +Sub CheckError(sModule) + If Err <> 0 Then + LogOnly " " & Now & " - " & sModule & " - Source: " & Err.Source & "; Err# (Hex): " & Hex( Err ) & _ + "; Err# (Dec): " & Err & "; Description : " & Err.Description + End If 'Err = 0 + Err.Clear +End Sub +'======================================================================================================= + +'Command line parser +Sub ParseCmdLine + + Dim iCnt, iArgCnt + Dim arrArguments + Dim sArg0, sArguments + + iArgCnt = Wscript.Arguments.Count + If iArgCnt > 1 Then + If wscript.Arguments(1) = "UAC" Then + If wscript.arguments.count = 2 Then iArgCnt = 0 + End If + End If + + sArguments = "" + If iArgCnt = 0 Then + If sDefault = "" Then + 'Create the log + CreateLog + Log "No argument specified. Preparing user prompt" & vbCrLf + fPassive = False + FindInstalledOProducts + If dicInstalledSku.Count > 0 Then sDefault = Join(RemoveDuplicates(dicInstalledSku.Items),",") Else sDefault = "CLIENTALL" + sDefault = InputBox("Enter a list of " & ONAME & " products to remove" & vbCrLf & vbCrLf & _ + "Examples:" & vbCrLf & _ + "CLIENTALL" & vbTab & "-> all Client products" & vbCrLf & _ + "SERVER" & vbTab & "-> all Server products" & vbCrLf & _ + "ALL" & vbTab & vbTab & "-> all Server & Client products" & vbCrLf & _ + "ProPlus,PrjPro" & vbTab & "-> ProPlus and Project" & vbCrLf &_ + "?" & vbTab & vbTab & "-> display Help", _ + SCRIPTFILE & " - " & ONAME & " remover", _ + sDefault) + + If IsEmpty(sDefault) Then 'User cancelled + Log "User cancelled. CleanUp & Exit." + 'Undo temporary entries created in ARP + TmpKeyCleanUp + wscript.quit 1602 + End If 'IsEmpty(sDefault) + Log "Answer from prompt: " & sDefault & vbCrLf + End If + sDefault = Trim(UCase(Trim(Replace(sDefault, Chr(34), "")))) + arrArguments = Split(Trim(sDefault), " ") + If UBound(arrArguments) = -1 Then ReDim arrArguments(0) + Else + ReDim arrArguments(iArgCnt-1) + For iCnt = 0 To (iArgCnt-1) + sArguments = sArguments & arrArguments(iCnt) & " " + arrArguments(iCnt) = UCase(Wscript.Arguments(iCnt)) + Next 'iCnt + End If 'iArgCnt = 0 + + 'Handle the SKU list + sArg0 = Replace(arrArguments(0), "/", "") + If Left(sArg0, 1) = "-" Then sArg0 = Mid(sArg0, 2) + + Select Case UCase(sArg0) + + Case "?" + ShowSyntax + + Case "ALL" + fRemoveAll = True + fRemoveOse = False + + Case "CLIENTSUITES" + fRemoveCSuites = True + fRemoveOse = False + + Case "CLIENTSTANDALONE" + fRemoveCSingle = True + fRemoveOse = False + + Case "CLIENTALL" + fRemoveCSuites = True + fRemoveCSingle = True + fRemoveOse = False + + Case "SERVER" + fRemoveSrv = True + fRemoveOse = False + + Case "ALL,OSE" + fRemoveAll = True + fRemoveOse = True + + Case Else + fRemoveAll = False + fRemoveOse = False + sSkuRemoveList = sArg0 + + End Select + + For iCnt = 0 To UBound(arrArguments) + + Select Case arrArguments(iCnt) + + Case "?", "/?", "-?" + ShowSyntax + + Case "/B", "/BYPASS" + If UBound(arrArguments) > iCnt Then + If InStr(arrArguments(iCnt + 1), "1") > 0 Then fBypass_Stage1 = True + If InStr(arrArguments(iCnt + 1), "2") > 0 Then fBypass_Stage2 = True + If InStr(arrArguments(iCnt + 1), "3") > 0 Then fBypass_Stage3 = True + If InStr(arrArguments(iCnt + 1), "4") > 0 Then fBypass_Stage4 = True + End If + + Case "/D", "/DELETEUSERSETTINGS" + fKeepUser = False + + Case "/FR", "/FASTREMOVE" + fBypass_Stage1 = True + fSkipSD = True + + Case "/F", "/FORCE" + fForce = True + + Case "/K", "/KEEPUSERSETTINGS" + fKeepUser = True + + Case "/KEEPSG", "/KEEPSOFTGRID" + fKeepSG = True + + Case "/KEEPLYNC" + fRemoveLync = False + + Case "/REMOVELYNC" + fRemoveLync = True + + Case "/L", "/LOG" + fLogInitialized = False + If UBound(arrArguments) > iCnt Then + If oFso.FolderExists(arrArguments(iCnt + 1)) Then + sLogDir = arrArguments(iCnt + 1) + Else + On Error Resume Next + oFso.CreateFolder(arrArguments(iCnt + 1)) + If Err <> 0 Then sLogDir = sScrubDir Else sLogDir = arrArguments(iCnt + 1) + End If + End If + + Case "/NOCANCEL" + fNoCancel = True + + Case "/NOREBOOT" + fNoReboot = True + + Case "/NE", "/NOELEVATE" + fNoElevate = True + + Case "/O", "/OSE" + fRemoveOse = True + + Case "/P", "/PREVIEW", "/DETECTONLY" + fDetectOnly = True + + Case "/PASSIVE", "/QB-" + fPassive = True + + Case "/Q", "/QUIET" + fQuiet = True + + Case "/QB" + fQuiet = True + fBasic = True + + Case "/QND" + fBypass_Stage1 = True + fBypass_Stage2 = True + fBypass_Stage3 = True + fRemoveOse = True + fRemoveOspp = True + fRemoveAll = True + fSkipSD = True + fForce = True + + Case "/R", "/RECONCILE" + fTryReconcile = True + + Case "/REMOVEOSPP" , "/CLEANOSPP" + fRemoveOspp = True + + Case "/S", "/SKIPSD", "/SKIPSHORTCUTDETECTION" + fSkipSD = True + + Case "/SC", "/SCANCOMPONENTS" + fBypass_Stage1 = False + + Case Else + + End Select + Next 'iCnt + If Not fLogInitialized Then CreateLog + LogOnly "Arguments: " & sArguments & vbCrLf + +End Sub 'ParseCmdLine +'======================================================================================================= + +Sub CreateLog + Dim DateTime + Dim sLogName + + On Error Resume Next + 'Create the log file + Set DateTime = CreateObject("WbemScripting.SWbemDateTime") + DateTime.SetVarDate Now,True + sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") + sLogName = sLogName & "_" & Left(DateTime.Value,14) + sLogName = sLogName & "_ScrubLog.txt" + Err.Clear + Set LogStream = oFso.CreateTextFile(sLogName,True,True) + If Err <> 0 Then + Err.Clear + sLogDir = sScrubDir + sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") + sLogName = sLogName & "_" & Left(DateTime.Value,14) + sLogName = sLogName & "_ScrubLog.txt" + Set LogStream = oFso.CreateTextFile(sLogName,True,True) + End If + + Log "Microsoft Customer Support Services - " & ONAME & " Removal Utility" & vbCrLf & vbCrLf & _ + "OffScrub Version: " & SCRIPTVERSION & vbCrLf & _ + "64 bit OS: " & f64 + LogOnly "OS Details: " & sOSinfo & vbCrLf + Log "Start removal: " & Now & vbCrLf + fLogInitialized = True +End Sub 'CreateLog +'======================================================================================================= +'------------------------------------------------------------------------------- +' RelaunchAs64Host +' +' Relaunch self with 64 bit WScript host +'------------------------------------------------------------------------------- +Sub RelaunchAs64Host + Dim Argument, sCmd + + sCmd = Replace (LCase(wscript.Path), "syswow64", "sysnative") & "\cscript.exe " & Chr(34) & WScript.scriptFullName & Chr(34) + If fQuiet AND NOT fCScript Then sCmd = Replace (sCmd, "\cscript.exe", "\wscript.exe") + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + sCmd = sCmd & " " & chr(34) & Argument & chr(34) + Next 'Argument + Else + If Not sDefault = "" Then sCmd = sCmd & " " & chr(34) & sDefault & chr(34) + End If + sCmd = sCmd & " /ChangedHostBitness" + Wscript.Quit oWShell.Run(sCmd, 1, True) + +End Sub 'RelaunchAs64Host +'======================================================================================================= + +Sub RelaunchAsCScript + Dim Argument + Dim sCmdLine + + sCmdLine = "cmd.exe /c " & WScript.Path & "\cscript.exe //NOLOGO " & Chr(34) & WScript.scriptFullName & Chr(34) + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) + Next 'Argument + End If + Log "Relaunching with CScript as host. Full command: " & sCmdLine + Wscript.Quit oWShell.Run(sCmdLine, 1, True) +End Sub 'RelaunchAsCScript +'======================================================================================================= + +Sub RelaunchElevated + Dim Argument + Dim sCmdLine + Dim oShell + + Set oShell = CreateObject("Shell.Application") + + sCmdLine = Chr(34) & WScript.scriptFullName & Chr(34) + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + Select Case UCase(Argument) + Case "/Q","/QUIET" + 'Don't try to relaunch in quiet mode + Exit Sub + Case "UAC" + 'Already tried elevated relaunch + Exit Sub + Case Else + sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) + End Select + Next 'Argument + Else + If Not sDefault = "" Then sCmdLine = sCmdLine & " " & chr(34) & sDefault & chr(34) + End If + oShell.ShellExecute "cscript.exe", sCmdLine & " /NoElevate UAC", "", "runas", 1 + Wscript.Quit 5 +End Sub 'RelaunchElevated +'======================================================================================================= + +'Show the expected syntax for the script usage +Sub ShowSyntax + TmpKeyCleanUp + Wscript.Echo sErr & vbCrLf & _ + SCRIPTFILE & " V " & SCRIPTVERSION & vbCrLf & _ + "Copyright (c) Microsoft Corporation. All Rights Reserved" & vbCrLf & vbCrLf & _ + SCRIPTFILE & " helps to remove " & ONAME & " Server & Client products" & vbCrLf & _ + "when a regular uninstall is no longer possible" & vbCrLf & vbCrLf & _ + "Usage:" & vbTab & SCRIPTFILE & " [List of config ProductIDs] [Options]" & vbCrLf & vbCrLf & _ + vbTab & "/? ' Displays this help"& vbCrLf &_ + vbTab & "/Log [LogfolderPath] ' Custom folder for log files" & vbCrLf & _ + vbTab & "/SkipSD ' Skips the ShortcutDetection in local profiles" & vbCrLf & _ + vbTab & "/NoCancel ' Setup.exe and Msiexec.exe have no Cancel button" & vbCrLf &_ + vbTab & "/Quiet ' Script, Setup.exe and Msiexec.exe run quiet with no UI" & vbCrLf &_ + vbTab & "/Preview ' Run this script to preview what would get removed"& vbCrLf & vbCrLf & _ + "Examples:"& vbCrLf & _ + vbTab & SCRIPTFILE & " CLIENTSUITES ' Remove all " & ONAME & " Client suites/products" & vbCrLf &_ + vbTab & SCRIPTFILE & " CLIENTALL ' Remove all " & ONAME & " Client products" & vbCrLf &_ + vbTab & SCRIPTFILE & " SERVER ' Remove all " & ONAME & " Server products" & vbCrLf &_ + vbTab & SCRIPTFILE & " ALL ' Remove all " & ONAME & " Server & Client products" & vbCrLf &_ + vbTab & SCRIPTFILE & " ProPlus,PrjPro ' Remove ProPlus and Project" & vbCrLf + Wscript.Quit +End Sub 'ShowSyntax +'======================================================================================================= +_end_ + +move __createfile "OffScrub_O15msi.vbs" + +waithidden cscript "OffScrub_O15msi.vbs"]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Update installation may cause WU reboot prompt (20539).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Update installation may cause WU reboot prompt (20539).bes new file mode 100644 index 000000000..381dda3ef --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Update installation may cause WU reboot prompt (20539).bes @@ -0,0 +1,28 @@ + + + + + Warning - Update installation may cause WU reboot prompt + This fixlet is relevant on computers where Windows Updates is configured to prompt after update installation if the update itself requires a reboot.

+

This should likely be disabled if using BigFix to perform update installation.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + (value "NoAutoRebootWithLoggedOnUsers" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" of native registry as string | "-1") != "1" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BES +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository backups exist in System Directory - Windows (21639).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository backups exist in System Directory - Windows (21639).bes new file mode 100644 index 000000000..2a98cacd0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository backups exist in System Directory - Windows (21639).bes @@ -0,0 +1,38 @@ + + + + + Warning - WMI Repository backups exist in System Directory - Windows + When WMI corruption occurs Windows makes a back-up of the WMI repository and stores it on Disk. This Fixlet deletes the oldest available WMI Repository if multiple exist.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder whose (name of it starts with "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder))) + Disk Cleanup + Internal + 2016-04-18 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection false +dos rmdir /s /q "{folder whose (name of it contains "repository." AND creation time of it = minimum of creation times of folders whose(name of it contains "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder)))) of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder)))}" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository is very large - Windows (22650).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository is very large - Windows (22650).bes new file mode 100644 index 000000000..d10b82b21 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository is very large - Windows (22650).bes @@ -0,0 +1,37 @@ + + + + + Warning - WMI Repository is very large - Windows + This fixlet is relevant on machines with large WMI repositories (> 1 GB).

+

A large WMI repository can cause lots of seemingly random issues on an endpoint from slow boot time to slow login.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + 1 /*byte*/ * 1024 /*KB*/ * 1024 /*MB*/ * 1024 /*GB*/]]> + Windows Management Interface + Internal + 2016-04-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI is not responding to queries - Windows (22651).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI is not responding to queries - Windows (22651).bes new file mode 100644 index 000000000..217b25405 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI is not responding to queries - Windows (22651).bes @@ -0,0 +1,37 @@ + + + + + Warning - WMI is not responding to queries - Windows + This fixlet is relevant on machines where WMI is failing.

+

Failing WMI causes a number of issues from slow login, failing group policy, etc.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists string values of selects "Domain from Win32_ComputerSystem" of wmi | true + Windows Management Interface + Internal + 2016-04-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows 10 Security Center may present notification during AV installation (20586).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows 10 Security Center may present notification during AV installation (20586).bes new file mode 100644 index 000000000..a0b0cf3e9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows 10 Security Center may present notification during AV installation (20586).bes @@ -0,0 +1,28 @@ + + + + + Warning - Windows 10 Security Center may present notification during AV installation + The Windows Security Center is enabled.

+

On initial installation of an Anti-virus product the security center may prompt the user indicating a lack of up-to-date definitions.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ "10.0.0" and name of operating system does not contain "Win2"]]> + Anti-Virus + Internal + 2016-04-16 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows Firewall may be blocking Remote Assistance (23561).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows Firewall may be blocking Remote Assistance (23561).bes new file mode 100644 index 000000000..122190280 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows Firewall may be blocking Remote Assistance (23561).bes @@ -0,0 +1,37 @@ + + + + + Warning - Windows Firewall may be blocking Remote Assistance + If this fixlet is relevant than not all of the firewall rules required for Remote Assistance to be working may not be enabled.

+

NOTE: This fixlet may appear relevant even if you have the right rules in place. This can commonly happen if you have created custom rules (not using the ones Group Policy generates) or if you are using a third-party Firewall. In this case you can ignore this fixlet once you've confirmed Remote Assistance is working in your environment.

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ = "6.1"]]> + not (exists (names of (rules of firewall) whose (enabled of it = true and application name of it is "C:\Windows\system32\msra.exe")) and exists (names of (rules of firewall) whose (enabled of it = true and application name of it is "C:\Windows\system32\raserver.exe")) and exists (names of (rules of firewall) whose (enabled of it = true and application name of it is "C:\Windows\system32\svchost.exe"))) + Internal + 2016-04-14 + Critical + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to add the rules to the Windows Firewall. + + wait netsh advfirewall firewall set rule group="remote assistance" new enable=Yes + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and Disable (24607).bes b/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and Disable (24607).bes new file mode 100644 index 000000000..979933a33 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and Disable (24607).bes @@ -0,0 +1,36 @@ + + + + + Wifi + LAN Detect and Disable + Detects if there is both an active LAN network connection and an active WIFI network connection. If there are both, the action will disable the WIFI adapter. + (Exists (select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'TRUE' and ServiceName = 'NETwNb64'" whose (string value of it != "") of WMI)) AND (exists adapter whose (friendly name of it != "" AND enabled of wifi of it and exists gateway of it and address of it as string != "0.0.0.0") of network) AND (exists adapter whose (not exists wifi of it and gateway of it as string!= "0.0.0.0" and address of it as string!= "0.0.0.0") of network) + Internal + 2017-08-08 + + x-fixlet-modification-time + Tue, 08 Aug 2017 20:09:04 +0000 + + BESC + + + Click + here + to deploy this action. + + //Alpha code - does not accomodate multiple wifi adapters +wait netsh interface set interface "{string value of select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'TRUE' and ServiceName = 'NETwNb64'" of WMI}" admin=disable +wait ipconfig /release +wait ipconfig /renew + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and enable (24608).bes b/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and enable (24608).bes new file mode 100644 index 000000000..64565a4d2 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and enable (24608).bes @@ -0,0 +1,36 @@ + + + + + Wifi + LAN Detect and enable + + (exists select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'FALSE' and PhysicalAdapter='TRUE' and ServiceName = 'NETwNb64'" whose (string value of it != "") of WMI) AND (NOT exists adapter whose (not exists wifi of it and gateway of it as string!= "0.0.0.0" and address of it as string!= "0.0.0.0") of network) + Internal + 2017-08-08 + + x-fixlet-modification-time + Tue, 08 Aug 2017 20:10:19 +0000 + + BESC + + + Click + here + to deploy this action. + + //Alpha code - does not accomodate multiple wifi adapters +wait netsh interface set interface "{string value of select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'FALSE' and PhysicalAdapter='TRUE' and ServiceName = 'NETwNb64'" of WMI}" admin=enable +wait ipconfig /release +wait ipconfig /renew + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE1__Stage Installation Files (25518).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE1__Stage Installation Files (25518).bes new file mode 100644 index 000000000..1b2c77205 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE1__Stage Installation Files (25518).bes @@ -0,0 +1,92 @@ + + + + + ~Win10-1803::STAGE1::Stage Installation Files + +

Win10-1803::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1803::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1803
+

Win10-1803::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + x64 of operating system AND not ia64 of operating system + (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + exists regapp "powershell.exe" + operating system as string does not contain "1803" + system ui language as string as lowercase = "English (United States)" as lowercase + exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + if exists key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry and exists value "ClearCaseMajorVersion" of key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry then False else True + if exist file "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" then false else true + Upgrade + Microsoft + Unspecified + 2017-10-17 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 02 Nov 2017 11:52:26 +0000 + + + x-fixlet-product-family + Windows + + + no-relevance-health-check + false + + + x-fixlet-product + Win10 + + + x-fixlet-component + Unspecified + + + x-fixlet-modification-time + Wed, 06 Jun 2018 17:41:14 +0000 + + BESC + + + Click + here + to execute this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE2__Install (25519).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE2__Install (25519).bes new file mode 100644 index 000000000..9ed7b5654 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE2__Install (25519).bes @@ -0,0 +1,134 @@ + + + + + ~Win10-1803::STAGE2::Install + Win10-1803::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1803::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1803
+

Win10-1803::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + x64 of operating system AND not ia64 of operating system + (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + exists regapp "powershell.exe" + operating system as string does not contain "1803" + system ui language as string as lowercase = "English (United States)" as lowercase + exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + if exists key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry and exists value "ClearCaseMajorVersion" of key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry then False else True + if exist file "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" then true else false + Upgrade + Microsoft + Unspecified + 2017-10-17 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 02 Nov 2017 11:52:26 +0000 + + + no-relevance-health-check + false + + + x-fixlet-product-family + Windows + + + x-fixlet-component + Unspecified + + + x-fixlet-product + Win10 + + + x-fixlet-modification-time + Wed, 06 Jun 2018 17:41:40 +0000 + + BESC + + + Click + here + to execute this action. + + 5000000000} + +parameter "workISO" = "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" +continue if {exists file (parameter "workISO")} +continue if {sha1 of file (parameter "workISO") = "28681742fe850aa4bfc7075811c5244b61d462cf"} + +// prepare a workpath to temporary files. +parameter "workPath" = "{(value of variable "SystemDrive" of environment) & "\win10_upgrade_temp"}" +waithidden cmd /C rmdir /S /Q "{parameter "workPath"}" +waithidden cmd /C mkdir "{parameter "workPath"}" + +// Create the cleanup file. +delete __appendfile +delete setupcomplete.cmd + +appendfile @echo off +appendfile SET WindowsISO="{parameter "workISO"}" +// appendfile powershell.exe "Dismount-DiskImage ""%WindowsISO%""" +// appendfile rmdir /S /Q "{parameter "workPath"}" + +move __appendfile setupcomplete.cmd + + +// Create a debug invocation batch to help in case of failures. +// This batch does not perform an update but with the scanonly option allows you to determine what the problem is. +delete __appendfile + +appendfile @echo off +appendfile SET WindowsISO="{parameter "workISO"}" +appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO %%I:\setup.exe /auto upgrade /Compat ScanOnly /DynamicUpdate disable" +appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" + +move __appendfile "{(parameter "workPath") & "/upgradeCheck.bat"}" + +// Create the actual invocation script +// Sleep and Dir were added or command would fail with %errorlevel% 183. Possibly a delay on mount. +delete __appendfile +delete mount.and.install.bat + +appendfile @echo on +appendfile SET WindowsISO="{parameter "workISO"}" +appendfile powershell.exe "Mount-DiskImage ""%WindowsISO%""" +appendfile TIMEOUT 10 +appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO dir %%I: > "{parameter "workPath"}\dir.log" && %%I:\setup.exe /auto upgrade /Quiet /DynamicUpdate disable /postoobe "{pathname of client folder of current site & "\setupcomplete.cmd"}" +appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" +move __appendfile mount.and.install.bat + +wait mount.and.install.bat > "{parameter "workPath"}\cmd.log" + +wait setupcomplete.cmd >"{parameter "workPath"}\setupcomplete.log" + +// setup must finish with RC=0 at this stage if things are ok. If that is not the case content of C:\"\win10_upgrade_temp dir holds useful info. +// Apart from log files, you can run upgradeCheck manually to check with the UI what the problem is. + +action requires restart "28681742fe850aa4bfc7075811c5244b61d462cf" +endif + +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE3__Cleanup (25520).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE3__Cleanup (25520).bes new file mode 100644 index 000000000..723c321fb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE3__Cleanup (25520).bes @@ -0,0 +1,44 @@ + + + + + ~Win10-1803::STAGE3::Cleanup + Win10-1803::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1803::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1803
+

Win10-1803::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ if exist file "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" then true else false + version of operating system as string contains "17134" + ARRIS Management + Internal + 2017-07-31 + + x-fixlet-modification-time + Mon, 04 Jun 2018 09:44:58 +0000 + + BESC + + + Click + here + to deploy this action. + + folder delete "C:\temp\Win10" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE1__Stage Installation Files (25593).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE1__Stage Installation Files (25593).bes new file mode 100644 index 000000000..17fcf77bc --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE1__Stage Installation Files (25593).bes @@ -0,0 +1,92 @@ + + + + + ~Win10-1809::STAGE1::Stage Installation Files + +

Win10-1809::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1809::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1809
+

Win10-1809::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + x64 of operating system AND not ia64 of operating system + (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + exists regapp "powershell.exe" + system ui language as string as lowercase = "English (United States)" as lowercase + exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + operating system as string does not contain "1809" + + if exist file "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" then false else true + Upgrade + Microsoft + Unspecified + 2017-10-17 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 02 Nov 2017 11:52:26 +0000 + + + no-relevance-health-check + false + + + x-fixlet-product-family + Windows + + + x-fixlet-component + Unspecified + + + x-fixlet-product + Win10 + + + x-fixlet-modification-time + Mon, 07 Jan 2019 15:55:58 +0000 + + BESC + + + Click + here + to execute this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE2__Install (25594).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE2__Install (25594).bes new file mode 100644 index 000000000..5f82eaea0 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE2__Install (25594).bes @@ -0,0 +1,134 @@ + + + + + ~Win10-1809::STAGE2::Install + Win10-1809::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1809::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1809
+

Win10-1809::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + x64 of operating system AND not ia64 of operating system + (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + exists regapp "powershell.exe" + system ui language as string as lowercase = "English (United States)" as lowercase + exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + operating system as string does not contain "1809" + + if exist file "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" then true else false + Upgrade + Microsoft + Unspecified + 2019-01-07 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 02 Nov 2017 11:52:26 +0000 + + + x-fixlet-product-family + Windows + + + no-relevance-health-check + false + + + x-fixlet-product + Win10 + + + x-fixlet-component + Unspecified + + + x-fixlet-modification-time + Tue, 08 Jan 2019 11:36:20 +0000 + + BESC + + + Click + here + to execute this action. + + 5000000000} + +parameter "workISO" = "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" +continue if {exists file (parameter "workISO")} +continue if {sha1 of file (parameter "workISO") = "6208b319de3aaf0d8ec5b8d0f710e2744f89d0b4"} + +// prepare a workpath to temporary files. +parameter "workPath" = "{(value of variable "SystemDrive" of environment) & "\win10_upgrade_temp"}" +waithidden cmd /C rmdir /S /Q "{parameter "workPath"}" +waithidden cmd /C mkdir "{parameter "workPath"}" + +// Create the cleanup file. +delete __appendfile +delete setupcomplete.cmd + +appendfile @echo off +appendfile SET WindowsISO="{parameter "workISO"}" +// appendfile powershell.exe "Dismount-DiskImage ""%WindowsISO%""" +// appendfile rmdir /S /Q "{parameter "workPath"}" + +move __appendfile setupcomplete.cmd + + +// Create a debug invocation batch to help in case of failures. +// This batch does not perform an update but with the scanonly option allows you to determine what the problem is. +delete __appendfile + +appendfile @echo off +appendfile SET WindowsISO="{parameter "workISO"}" +appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO %%I:\setup.exe /auto upgrade /Compat ScanOnly /DynamicUpdate disable" +appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" + +move __appendfile "{(parameter "workPath") & "/upgradeCheck.bat"}" + +// Create the actual invocation script +// Sleep and Dir were added or command would fail with %errorlevel% 183. Possibly a delay on mount. +delete __appendfile +delete mount.and.install.bat + +appendfile @echo on +appendfile SET WindowsISO="{parameter "workISO"}" +appendfile powershell.exe "Mount-DiskImage ""%WindowsISO%""" +appendfile TIMEOUT 10 +appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO dir %%I: > "{parameter "workPath"}\dir.log" && %%I:\setup.exe /auto upgrade /Quiet /DynamicUpdate disable /postoobe "{pathname of client folder of current site & "\setupcomplete.cmd"}" +appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" +move __appendfile mount.and.install.bat + +wait mount.and.install.bat > "{parameter "workPath"}\cmd.log" + +wait setupcomplete.cmd >"{parameter "workPath"}\setupcomplete.log" + +// setup must finish with RC=0 at this stage if things are ok. If that is not the case content of C:\"\win10_upgrade_temp dir holds useful info. +// Apart from log files, you can run upgradeCheck manually to check with the UI what the problem is. + +action requires restart "6208b319de3aaf0d8ec5b8d0f710e2744f89d0b4" +endif + +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE3__Cleanup (25595).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE3__Cleanup (25595).bes new file mode 100644 index 000000000..5f5d5e386 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE3__Cleanup (25595).bes @@ -0,0 +1,45 @@ + + + + + ~Win10-1809::STAGE3::Cleanup + Win10-1809::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1809::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1809
+

Win10-1809::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ if exist file "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" then true else false + name of operating system contains "Win10" + version of operating system as string contains "17763" + ARRIS Management + Internal + 2017-07-31 + + x-fixlet-modification-time + Mon, 07 Jan 2019 15:57:58 +0000 + + BESC + + + Click + here + to deploy this action. + + folder delete "C:\temp\Win10" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/WinGet (WinGet method) (27387).bes b/Sites/Windows Management/Fixlets/Fixlets/WinGet (WinGet method) (27387).bes new file mode 100644 index 000000000..628c6f504 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/WinGet (WinGet method) (27387).bes @@ -0,0 +1,48 @@ + + + + + WinGet (WinGet method) + Installs latest version of WinGet using WinGet. + = "10.0.16299.0") of operating system and true]]> + exists key whose (value "DisplayName" of it as string starts with "Microsoft Visual C++ 2015-2022 Redistributable (x64)") of key "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" of native registry and true + exists files "winget.exe" of folders whose (name of it starts with "Microsoft.DesktopAppInstaller" and name of it ends with "x64__8wekyb3d8bbwe") of folder "C:\Program Files\WindowsApps" and true + = "1.24.25180.0") of folders whose (name of it starts with "Microsoft.DesktopAppInstaller" and name of it ends with "x64__8wekyb3d8bbwe") of folder "C:\Program Files\WindowsApps"]]> + Internal + 2025-07-21 + + x-fixlet-modification-time + Mon, 21 Jul 2025 19:19:18 +0000 + + BESC + + + Click + here + to deploy this action. + + # Get winget location that SYSTEM user can access +$wingetPath = (Resolve-Path 'C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe\winget.exe')[-1].Path + +# Attempt to install winget using winget +$process = Start-Process $wingetPath -ArgumentList 'install --id Microsoft.AppInstaller --accept-source-agreements --accept-package-agreements' -Wait -PassThru + +# If install failed, attempt install with Repair-WinGetPackageManager +if ($process.ExitCode -ne 0) { + $progressPreference = 'SilentlyContinue' + Install-PackageProvider -Name NuGet -Force + Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery + Repair-WinGetPackageManager +} + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows - New local user definition (27388).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows - New local user definition (27388).bes new file mode 100644 index 000000000..2e60570bb --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows - New local user definition (27388).bes @@ -0,0 +1,134 @@ + + + + + Windows - New local user definition + +

There are times when your Windows systems are not joined to a domain and you need to define and use a common user on many systems (e.g.: an specific application user) that cannot be inherited by the Active Directory definition.

+

Defining and managing a common local user at scale can be cumbersome or overwhelming.

+

This task prompts for user/password combination to define a new windows local user and assigning it to a LocalGroup. Password travels encrypted and is not visible nor reusable.

+

User is defined with an attribute to not Expire the given password.

+

Error Conditions:

+
+
    +
  • If the user already exists the action will fail +
  • If a Password policy enforces the minimum password lenght on the target system, task execution will stop when the provided password is not compliant.
+

If the specfied local group doesn't exists or the group is not specified, the command will NOT try to create a new group but will proceed successfully without assigning the user to the group.
 

+]]>
+ windows of operating system + if exists true whose (if true then in proxy agent context else false) then false else true + Utility + andrea.capasso@hcl-software.com + 2025-10-24 + + parametermetadatatag + +{ + "NewUser": { + "Name": "NewUser", + "Title": "New User Name: ", + "Description": "Enter the new account name: ", + "UIType": "Textbox", + "Default": "NewUser", + "Required": "1" + }, + "RDPW": { + "Name": "RDPW", + "Title": "User Password: ", + "Description": "Define user's access Password: ", + "Encrypt": "true", + "UIType": "Textbox", + "SubUIType": "Password", + "Required": "1" + }, + "Groupname": { + "Name": "Groupname", + "Title": "Group Name: ", + "Description": "Enter the group to assign the new account: ", + "UIType": "Textbox", + "Default": "Guests", + "Required": "0" + }, + "NewUserDescription": { + "Name": "NewUserDescription", + "Title": "New User Description: ", + "Description": "Enter the group to assign the new account: ", + "UIType": "Textbox", + "Default": "Local User created by BigFix Fixlet", + "Required": "0" + } +} + + + + x-fixlet-modification-time + Fri, 24 Oct 2025 14:32:35 +0000 + + BESC + + + Click + here + &nbsp;to deploy this action with NET USER. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows 10 Configuration__ Set Telemetry Level to _Basic_ (11671).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows 10 Configuration__ Set Telemetry Level to _Basic_ (11671).bes new file mode 100644 index 000000000..fffc657a1 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows 10 Configuration__ Set Telemetry Level to _Basic_ (11671).bes @@ -0,0 +1,47 @@ + + + + + <Windows 10 Configuration>: Set Telemetry Level to "Basic" + Sets the registry value to control the telemetery setting for Windows 10

+

Configure telemetry and other settings in your organization (Windows)
https://technet.microsoft.com/en-us/library/mt577208(v=vs.85).aspx

+

 

]]>
+ /* Windows Only */ windows of operating system + /* True if not set to Basic */ exists values "AllowTelemetry" whose (it != "1") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\DataCollection" of (x32 registries; x64 registries) + /* Windows 10 Only */ (version of it as string starts with "10.") of operating system + Internal + 2016-04-05 + + x-fixlet-modification-time + Tue, 05 Apr 2016 20:07:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Set Registry value to Basic for Windows 10 Telemetry + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\DataCollection]" "AllowTelemetry"=dword:00000001 + + else + + regset "[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\DataCollection]" "AllowTelemetry"=dword:00000001 + +endif + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 (26867).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 (26867).bes new file mode 100644 index 000000000..8972127fe --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 (26867).bes @@ -0,0 +1,88 @@ + + + + + Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 + Windows 10 Elevation of Privilege Vulnerability

+

CVE 2021-36934

+

SAM hives readable by everyone account as of Windows 10 (1809)
Current Fixlet relevance includes Windows 10 without limiting to (1809)

Deletes all VSS Shadow copies, as recommended by Microsoft.

Added Windows Server 2019 to relevance after udpates to the Microsoft guidance

+

 

+

Please test well before using as this is BigFix.me community content

]]>
+ windows of operating system + exists files "config/SAM" whose (exists entries whose (account name of trustee of it = "Users" and generic read permission of it and not deny type of it) of dacls of security descriptors of it) of native system folder + name of operating system = "Win10" OR name of operating system = "Win2019" + Alpha BigFix.me community content + 2021-07-21 + CVE 2021-36934 + + x-fixlet-modification-time + Wed, 21 Jul 2021 17:11:46 +0000 + + + bigfixme-added-time + Wed, 21 Jul 2021 10:13:29 GMT + + + bigfixme-modification-time + Wed, 21 Jul 2021 10:13:29 GMT + + + bigfixme-keywords + alpha test vulnerability SAM + + + bigfixme-ID + 26866 + + BESC + + + Click + here + to deploy this action. + + //redirect to 64 bit versions +action uses wow64 redirection false + +//icacls command to add inheritance to current permissions +waithidden cmd.exe /C icacls.exe "{pathname of windows folder}\system32\config\*.*" /inheritance:e + +//delete prior VSS shadow copies +waithidden cmd.exe /C vssadmin delete shadows /all /quiet + + + + + Click + here + &nbsp;for vunlerability information from Microsoft + + https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-36934 + + + + Click + here + to information about VSSAdmin to delete shadow copies + + https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/vssadmin-delete-shadows + + + + Click + here + to review this task in the bigfix.me Content Database. + + https://bigfix.me/cdb/fixlet/26866 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows 11 Upgrade Eligibility probe (26878).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows 11 Upgrade Eligibility probe (26878).bes new file mode 100644 index 000000000..8706f1981 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows 11 Upgrade Eligibility probe (26878).bes @@ -0,0 +1,44 @@ + + + + + Windows 11 Upgrade Eligibility probe +


This task runs a dxdiag executable to generate results for Video Card Check property in analysis. Please run this task on all of your Windows 10 devices.

]]>
+ if exists property "in proxy agent context" then ( not in proxy agent context ) else true + name of operating system as lowercase starts with "win10" + Internal + 2021-09-28 + + x-fixlet-modification-time + Wed, 29 Sep 2021 03:43:54 +0000 + + + x-fixlet-win11-eligibility + probeTask + + BESC + + + Click + here + to deploy this action. + + parameter "folderpath" = "{pathname of parent folder of client}\win11-eligibility" + +folder create "{parameter "folderpath"}" +delete "{parameter "folderpath"}\dxdiag" + +wait dxdiag.exe /whql:off /dontskip /t "{parameter "folderpath"}\dxdiag" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows Installer 3.1 Redistributable (v2) (103).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows Installer 3.1 Redistributable (v2) (103).bes new file mode 100644 index 000000000..03f0a926b --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows Installer 3.1 Redistributable (v2) (103).bes @@ -0,0 +1,62 @@ + + + + + Windows Installer 3.1 Redistributable (v2) +
This task is applicable on: Windows 2000, Windows XP, Windows XP x64, Windows 2003 and Windows 2003 x64. ]]>
+ (name of it = "Win2000" OR name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it)) of operating system AND TRUE + exists value "InstallerLocation" of key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer" of native registry + exists file "MSI.DLL" of folder (value "InstallerLocation" of key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer" of native registry) + + Install + danielheth@bigfix.me + <Unspecified> + 2012-10-03 + <Unspecified> + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 03 Oct 2012 16:07:35 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch WindowsInstaller-KB893803-v2-x86.exe sha1:8318455b36ba0a748307459279d46f2f4cdb5a0e size:2585872 http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe +wait __Download\WindowsInstaller-KB893803-v2-x86.exe /quiet /norestart + + + + + + Click + here + to learn more about this software. + + http://www.microsoft.com/en-us/download/details.aspx?id=25 + + + + Click + here + &nbsp;to learn more about this software. + + http://msdn.microsoft.com/en-us/library/windows/desktop/aa372856(v=vs.85).aspx + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) (22466).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) (22466).bes new file mode 100644 index 000000000..177754781 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) (22466).bes @@ -0,0 +1,79 @@ + + + + + Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) + Windows Management Framework 5.0 includes updates to Windows PowerShell, Windows PowerShell Desired State Configuration (DSC), Windows Remote Management (WinRM), Windows Management Instrumentation (WMI). Release notes:

+

Windows Management Framework (WMF) 5.0 brings functionality that has been updated from WMF 4.0. WMF 5.0 is available for installation only on Windows Server 2012 R2, Windows Server 2012, Windows 2008 R2, Windows 8.1, and Windows 7 SP1. Some of the new and updated features in this release include:

+
    +
  • Just Enough Administration (JEA) +
  • Creating Custom Types using PowerShell Classes +
  • Improvements in PowerShell Script Debugging +
  • Improvements in Desired State Configuration (DSC) +
  • Audit PowerShell Usage using Transcription and Logging +
  • Software Discovery, Install and Inventory with PackageManagement +
  • PowerShell Module Discovery, Install and Inventory with PowerShellGet +
  • PowerShell Script Discovery, Install and Management with PowerShellGet +
  • New and updated cmdlets based on community feedback +
  • Information Stream +
  • Generate PowerShell Cmdlets based on OData Endpoint +
  • Network Switch Management with PowerShell +
  • Software Inventory Logging (SIL)
+
Supported Operating System (s)
+

Windows 7 Service Pack 1, Windows 8.1, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2

+
    +
      +
    • Windows Server 2012 R2 +
    • Windows Server 2012 +
    • Windows Server 2008 R2 SP1 +
    • Windows 8.1 +
    • Windows 7 SP1

    **IMPORTANT**
    +
      +
    • Please see release notes for the list of products that are compatible and incompatible with Windows Management Framework 5.0. +
    • WMF 5.0 requires Microsoft .NET Framework 4.5 or above. You can install Microsoft .NET Framework 4.5 or above by following the instructions at Installing the .NET Framework.
    +
  • Note: Some computers may report back as 'Pending Restart' once the update has run successfully, but will not report back their final status until the computer has been restarted.
+

Size of File:20.7 MB

]]>
+ x64 of operating system + not ia64 of operating system + Windows Updates + www.dkforeman.com + KB3134760 + 2016-10-28 + Update + + x-fixlet-modification-time + Sat, 29 Oct 2016 10:43:17 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + Click + here + &nbsp;to&nbsp;read up on&nbsp;the Knowledge Base Article for this update. + + http://go.microsoft.com/fwlink/?LinkID=717903 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3964).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3964).bes new file mode 100644 index 000000000..bdd068c6e --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3964).bes @@ -0,0 +1,98 @@ + + + + + Windows PowerShell 2.0 Available + Install Windows PowerShell version 2.0

+

After the installation of PowerShell in Windows 2008 servers it will be required reboot the server.

]]>
+ (name of it = "WinXP" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR name of it = "WinXPe") of operating system AND TRUE + + Update + rafansm@br.ibm.com + <Unspecified> + 2015-01-23 + + IEM GTS Support Team + PowerShell + + + bigfixme-modification-time + Fri, 23 Jan 2015 13:46:56 GMT + + + x-fixlet-modification-time + Fri, 23 Jan 2015 17:41:03 +0000 + + BESC + + + Click + here + to deploy this software. + + + + + + + Click + here + to learn more about PowerShell v2.0. + + http://support.microsoft.com/kb/968929 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3966).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3966).bes new file mode 100644 index 000000000..ab7c12cc9 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3966).bes @@ -0,0 +1,98 @@ + + + + + Windows PowerShell 2.0 Available + Install Windows PowerShell version 2.0

+

After the installation of PowerShell in Windows 2008 servers it will be required reboot the server.

]]>
+ (name of it = "WinXP" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR name of it = "WinXPe") of operating system AND TRUE + + Update + rafansm@br.ibm.com + <Unspecified> + 2015-01-23 + + IEM GTS Support Team + PowerShell + + + bigfixme-modification-time + Fri, 23 Jan 2015 13:46:56 GMT + + + x-fixlet-modification-time + Fri, 23 Jan 2015 17:41:03 +0000 + + BESC + + + Click + here + to deploy this software. + + + + + + + Click + here + to learn more about PowerShell v2.0. + + http://support.microsoft.com/kb/968929 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (634).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (634).bes new file mode 100644 index 000000000..8c7f655d2 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (634).bes @@ -0,0 +1,91 @@ + + + + + Windows PowerShell 2.0 Available + Install Windows PowerShell version 2.0 + (name of it = "WinXP" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR name of it = "WinXPe") of operating system AND TRUE + + Update + danielheth@bigfix.me + <Unspecified> + 2011-04-21 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:29:34 +0000 + + BESC + + + Click + here + to deploy this software. + + +//Windows XP and XPe +if {((name of it = "WinXP") OR (name of it = "WinXPe")) of operating system AND TRUE} + download http://download.microsoft.com/download/E/C/E/ECE99583-2003-455D-B681-68DB610B44A4/WindowsXP-KB968930-x86-ENG.exe + continue if {(size of it = 6156064 AND sha1 of it = "540d661066953d76a6907b6ee0d1cd4531c1e1c6") of file "WindowsXP-KB968930-x86-ENG.exe" of folder "__Download"} + wait __Download\WindowsXP-KB968930-x86-ENG.exe /quiet /norestart +//Windows Vista x64 +elseif {(name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) of operating system AND TRUE} + download http://download.microsoft.com/download/3/C/8/3C8CF51E-1D9D-4DAA-AAEA-5C48D1CD055C/Windows6.0-KB968930-x64.msu + continue if {(size of it = 35922892 AND sha1 of it = "4de013d593181a2a04217ce3b0e7536ab56995aa") of file "Windows6.0-KB968930-x64.msu" of folder "__Download"} + wait __Download\Windows6.0-KB968930-x64.msu /quiet /norestart +//Windows Vista x86 +elseif {((name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/A/7/5/A75BC017-63CE-47D6-8FA4-AFB5C21BAC54/Windows6.0-KB968930-x86.msu + continue if {(size of it = 34059625 AND sha1 of it = "16fd2e93be2e7265821191119ddfc0cdaa6f4243") of file "Windows6.0-KB968930-x86.msu" of folder "__Download"} + wait __Download\Windows6.0-KB968930-x86.msu /quiet /norestart +//Windows Server 2003 x64 +elseif {((name of it = "Win2003" AND x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/B/D/9/BD9BB1FF-6609-4B10-9334-6D0C58066AA7/WindowsServer2003-KB968930-x64-ENG.exe + continue if {(size of it = 10334496 AND sha1 of it = "8ba702aa016e4c5aed581814647f4d55635eff5c") of file "WindowsServer2003-KB968930-x64-ENG.exe" of folder "__Download"} + wait __Download\WindowsServer2003-KB968930-x64-ENG.exe /quiet /norestart +//Windows Server 2003 x86 +elseif {((name of it = "Win2003" AND NOT x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/1/1/7/117FB25C-BB2D-41E1-B01E-0FEB0BC72C30/WindowsServer2003-KB968930-x86-ENG.exe + continue if {(size of it = 6300960 AND sha1 of it = "843dca5f32b47a3bc36cb4d7f3a92dfd2fcdddb3") of file "WindowsServer2003-KB968930-x86-ENG.exe" of folder "__Download"} + wait __Download\WindowsServer2003-KB968930-x86-ENG.exe /quiet /norestart +//Windows 2008 x64 +elseif {(((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/2/8/6/28686477-3242-4E96-9009-30B16BED89AF/Windows6.0-KB968930-x64.msu + continue if {(size of it = 35922892 AND sha1 of it = "4de013d593181a2a04217ce3b0e7536ab56995aa") of file "Windows6.0-KB968930-x64.msu" of folder "__Download"} + wait __Download\Windows6.0-KB968930-x64.msu /quiet /norestart +//Windows 2008 x86 +elseif {(((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/F/9/E/F9EF6ACB-2BA8-4845-9C10-85FC4A69B207/Windows6.0-KB968930-x86.msu + continue if {(size of it = 34059625 AND sha1 of it = "16fd2e93be2e7265821191119ddfc0cdaa6f4243") of file "Windows6.0-KB968930-x86.msu" of folder "__Download"} + wait __Download\Windows6.0-KB968930-x86.msu /quiet /norestart +endif +//we want to be able to import modules... thus set to remotesigned if it is not set +parameter "curExecutionPolicy"="{if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) then if exists value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) then (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) as string) else "" else ""}" +if {(parameter "curExecutionPolicy" = "") OR (parameter "curExecutionPolicy" = "Restricted")} + if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="RemoteSigned" + else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="RemoteSigned" + endif +endif + + + + + Click + here + to learn more about PowerShell v2.0. + + http://support.microsoft.com/kb/968929 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) (26617).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) (26617).bes new file mode 100644 index 000000000..58e3bb28f --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) (26617).bes @@ -0,0 +1,242 @@ + + + + + Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) + This installs the latest Windows updates.

+

Last tested on Windows 10 v1803 with PowerShell 5.1.  This version requires PS 5.0+ due to module usage.

+
    +
  1. Checks for existing scripting policy LGPO registry item (cannot override GPO) +
  2. If exists, back up and disable existing policy +
  3. Install prerequisite: NuGet 2.8.5.201+ +
  4. Install Windows Update PowerShell Module v2.0.0.4 (tested, feel free to drop that requirement) +
  5. Run Windows Update via newly added module +
  6. Action 6 is a separate action to uninstall Windows Update PowerShell Module "PSWindowsUpdate" if you would like to scrub the environment.
+

It will not ask questions, and not provide options - it will simply install everything it is able to install in one round.

+

This version will NOT install Windows Feature Updates, such as Windows 10 version 1803 to version 1809.

+

By running this task you accept the Microsoft TechNet terms of use.

+

Module Credit Michal Gajda, source: https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc/

]]>
+ exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + x64 of operating system + windows of operating system + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3" whose (value "Install" of it as integer = 1) of registry + = "5.0") of registry]]> + Internal + 2018-06-13 + + bigfixme-added-time + Mon, 18 Jun 2018 12:07:16 GMT + + + bigfixme-modification-time + Tue, 26 Jun 2018 19:07:42 GMT + + + bigfixme-keywords + Windows Update Powershell Module MichalGajda + + + bigfixme-ID + 25528 + + + bigfixme-versions-ids + 25522,25523,25524,25527 + + + x-fixlet-modification-time + Thu, 11 Apr 2019 19:38:58 +0000 + + BESC + + + Click + here + &nbsp;to install Windows + Microsoft Updates without rebooting or notifying the user. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" + +// Check for and install Windows Updates +waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -MicrosoftUpdate -AcceptAll -IgnoreReboot -Confirm:$false" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + &nbsp;to install Windows + Microsoft Updates and automatically reboot without asking to reboot. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" + +// Check for and install Windows Updates +waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -MicrosoftUpdate -AcceptAll -AutoReboot -Confirm:$false" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + &nbsp;to install Windows Updates and automatically reboot without asking to reboot. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" + +// Check for and install Windows Updates +waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -AcceptAll -AutoReboot -Confirm:$false" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + &nbsp;to install Windows Updates without rebooting or notifying the user. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" + +// Check for and install Windows Updates +waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -AcceptAll -IgnoreReboot -Confirm:$false" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + to go to the TechNet page on this PowerShell module. + + https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc/ + + + + Click + here + to uninstall the PowerShell module. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Uninstall-Module -Name PSWindowsUpdate -Force" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + to review this task in the bigfix.me Content Database. + + https://bigfix.me/cdb/fixlet/25528 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows7810DeviceControl (24647).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows7810DeviceControl (24647).bes new file mode 100644 index 000000000..3a52e2914 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows7810DeviceControl (24647).bes @@ -0,0 +1,58 @@ + + + + + Windows7810DeviceControl +

This task is applicable on: Windows 7, Windows 8, Windows 8.1, Windows 10. ]]>
+ (name of operating system = "Win7" OR name of operating system = "Win8" OR name of operating system = "Win8.1" OR name of operating system = "Win10") AND (NOT exists value "DenyUnspecified" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" of native registry) + Registry Edit + Windows Registry Wizard + 2017-09-26 + + x-fixlet-source + Windows Registry Wizard + + + x-fixlet-modification-time + Tue, 26 Sep 2017 23:34:12 +0000 + + BESC + + + Click&nbsp; + here&nbsp; + to initiate the deployment process. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Workaround - Disable the MSDT URL Protocol (26935).bes b/Sites/Windows Management/Fixlets/Fixlets/Workaround - Disable the MSDT URL Protocol (26935).bes new file mode 100644 index 000000000..7f1162c21 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Workaround - Disable the MSDT URL Protocol (26935).bes @@ -0,0 +1,37 @@ + + + + + Workaround - Disable the MSDT URL Protocol + Workaroud provided by Microsoft for CVE-2022-30190. + = "6.0.0.0") AND (exists true whose (if true then (exists (operating system) whose (it as string as lowercase contains "win" as lowercase)) else false))]]> + exists key "HKEY_CLASSES_ROOT\ms-msdt" of registry + Workaround + Internal + 2022-06-01 + CVE-2022-30190 + + x-fixlet-modification-time + Wed, 01 Jun 2022 02:39:09 +0000 + + BESC + + + Click + here + to deploy this action. + + dos reg export HKEY_CLASSES_ROOT\ms-msdt C:\ms-msdt_bak +dos reg delete HKEY_CLASSES_ROOT\ms-msdt /f + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Workaround Undo - Disable the MSDT URL Protocol (26936).bes b/Sites/Windows Management/Fixlets/Fixlets/Workaround Undo - Disable the MSDT URL Protocol (26936).bes new file mode 100644 index 000000000..bfd4515e3 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/Workaround Undo - Disable the MSDT URL Protocol (26936).bes @@ -0,0 +1,37 @@ + + + + + Workaround Undo - Disable the MSDT URL Protocol + Undo workaroud provided by Microsoft for CVE-2022-30190. + = "6.0.0.0") AND (exists true whose (if true then (exists (operating system) whose (it as string as lowercase contains "win" as lowercase)) else false))]]> + exists file "C:\ms-msdt_bak" + Workaround + Internal + 2022-06-01 + CVE-2022-30190 + + x-fixlet-modification-time + Wed, 01 Jun 2022 03:14:38 +0000 + + BESC + + + Click + here + to deploy this action. + + dos reg import C:\ms-msdt_bak +dos del C:\ms-msdt_bak + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (21333).bes b/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (21333).bes new file mode 100644 index 000000000..84667cdda --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (21333).bes @@ -0,0 +1,50 @@ + + + + + dump DNS Cache - Windows + + windows of operating system + + Internal + jgstew + 2016-03-12 + + x-fixlet-modification-time + Sat, 12 Mar 2016 21:28:49 +0000 + + BESC + + + Click + here + to deploy this action. + + "{parameter "LogFolder"}\results_dns_cache.txt" + +delete __createfile + +createfile until END_OF_FILE +{ concatenations "%0d%0a" of unique values of ( (following text of last ": " of it & " ;; " & following text of last ": " of unique value of previous lines of previous lines of previous lines of previous lines of previous lines of it) | it) of lines whose(it contains "A (Host) Record" OR it contains " ;; ") of (files "results_dns_cache.txt" of it; files "results_dns_cache_history.txt" of it) of folders "__Global\Logs" of data folders of client } +END_OF_FILE + +delete "{parameter "LogFolder"}\results_dns_cache_history.txt" + +copy __createfile "{parameter "LogFolder"}\results_dns_cache_history.txt" +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (9281).bes b/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (9281).bes new file mode 100644 index 000000000..f623f6b3a --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (9281).bes @@ -0,0 +1,50 @@ + + + + + dump DNS Cache - Windows + + windows of operating system + + Internal + jgstew + 2016-03-12 + + x-fixlet-modification-time + Sat, 12 Mar 2016 21:28:49 +0000 + + BESC + + + Click + here + to deploy this action. + + "{parameter "LogFolder"}\results_dns_cache.txt" + +delete __createfile + +createfile until END_OF_FILE +{ concatenations "%0d%0a" of unique values of ( (following text of last ": " of it & " ;; " & following text of last ": " of unique value of previous lines of previous lines of previous lines of previous lines of previous lines of it) | it) of lines whose(it contains "A (Host) Record" OR it contains " ;; ") of (files "results_dns_cache.txt" of it; files "results_dns_cache_history.txt" of it) of folders "__Global\Logs" of data folders of client } +END_OF_FILE + +delete "{parameter "LogFolder"}\results_dns_cache_history.txt" + +copy __createfile "{parameter "LogFolder"}\results_dns_cache_history.txt" +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/set Windows KMS key - Windows BETA (21368).bes b/Sites/Windows Management/Fixlets/Fixlets/set Windows KMS key - Windows BETA (21368).bes new file mode 100644 index 000000000..6dc250d4d --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/set Windows KMS key - Windows BETA (21368).bes @@ -0,0 +1,67 @@ + + + + + set Windows KMS key - Windows BETA + This will only work properly with known KMSkey/OSversion combinations that are contained within the embedded relevance statements.

+

There are definitely missing combinations which this will NOT work for.

+

The relevance used could be expanded and adapted to work with more KMSkeys.

+

This is meant to be taken as a policy action, applied to all computers all of the time.

+

Known Issue: the relevance that checks to see if windows is activated doesn't account for MS Office being installed, which may make this not relevant on a machine where it SHOULD be relevant

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists unique values whose(1 = it) of integer values of selects "LicenseStatus from SoftwareLicensingProduct WHERE PartialProductKey is not null" of wmis + 1*day ) of subscribe times of sites]]> + exists values "KeyManagementServiceName" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x32 registries; x64 registries) + + + Internal + 2016-08-31 + + x-fixlet-modification-time + Thu, 01 Sep 2016 01:11:06 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell (25582).bes b/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell (25582).bes new file mode 100644 index 000000000..905c21474 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell (25582).bes @@ -0,0 +1,110 @@ + + + + + _template XML Editing Template Powershell + Sample template fixlet to modify an XML file. 

+

This Fixlet demonstrates opening an XML file with PowerShell, and replacing a value in the XML content.

+

Originally written to allow removing an NVidia driver without rebooting.  NVidia, in their admin-unfriendliness, decided that uninstalling a driver should immediately trigger a reboot without providing any options to delay the reboot or to warn the user that a reboot is going to occur.  There are no command-line parameters available to modify this behavior, but we can skip the reboot by modifying a value in their nv.xml configuration file. 

+

This fixlet, being an example of the PowerShell usage, generates on-the-fly an XML file similar to NVidia's format, and then uses PowerShell to replace one of the attribute values in that file.

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + Internal + 2018-08-23 + + x-fixlet-modification-time + Mon, 12 Nov 2018 18:48:14 +0000 + + BESC + + + Click + here + to deploy this action. + + -xpath -name -value [-out ] [-showdetail] + +.EXAMPLE +powershell -ExecutionPolicy Bypass -File $MyInvocation.ScriptName -file "C:\temp\nv.xml" -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out "c:\temp\nv-output.xml" -showdetail + +.NOTES +Originally written to change brain-dead NVidia driver uninstallers to not force a reboot without warning on uninstall. The NVidia XML config files needed to be updated to remove the forced reboot. + + + +#> + + + +param ( + [Parameter(Mandatory=$true)][string]$file, + [string]$out=$file, + [Parameter(Mandatory=$true)][string]$xpath, + [Parameter(Mandatory=$true)][string]$name, + [Parameter(Mandatory=$true)][string]$value, + [switch]$showdetail=$false + +) +if ($showdetail) {{ + write-host "Parameters:" + write-host "file: $file" + write-host "Selection Search: $select" + write-host "Node to change: $name" + write-host "New value to set: $value" + write-host "Output File: $out" +} + #$path=$file + [xml]$xml=(Get-Content $file) + [System.Xml.XmlElement] $root = $xml.get_DocumentElement() + $nodes=$root.SelectNodes($xpath) + foreach ($node in $nodes) {{ + if ($showdetail) {{ write-host "Found node " $node.OuterXml } + $node.$name=$value + } + if ($showdetail) {{ write-host "Saving output to " $out } + $xml.save($out) + EOF_EOF_EOF_EOF + + delete updatexml.ps1 + move __createfile updatexml.ps1 + + +// Create a sample XML file to update, will change "uninstallReboot" to "false" +delete __createfile +createfile until EOF_EOF_EOF_EOF + + + + + + + + + +EOF_EOF_EOF_EOF +delete sample.xml +move __createfile sample.xml + +// Now, use powershell to modify an attribute within the sample file and output it to a new XML +waithidden powershell.exe -ExecutionPolicy Bypass -File updatexml.ps1 -file sample.xml -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out sample-output.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell.bes b/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell.bes new file mode 100644 index 000000000..905c21474 --- /dev/null +++ b/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell.bes @@ -0,0 +1,110 @@ + + + + + _template XML Editing Template Powershell + Sample template fixlet to modify an XML file. 

+

This Fixlet demonstrates opening an XML file with PowerShell, and replacing a value in the XML content.

+

Originally written to allow removing an NVidia driver without rebooting.  NVidia, in their admin-unfriendliness, decided that uninstalling a driver should immediately trigger a reboot without providing any options to delay the reboot or to warn the user that a reboot is going to occur.  There are no command-line parameters available to modify this behavior, but we can skip the reboot by modifying a value in their nv.xml configuration file. 

+

This fixlet, being an example of the PowerShell usage, generates on-the-fly an XML file similar to NVidia's format, and then uses PowerShell to replace one of the attribute values in that file.

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + Internal + 2018-08-23 + + x-fixlet-modification-time + Mon, 12 Nov 2018 18:48:14 +0000 + + BESC + + + Click + here + to deploy this action. + + -xpath -name -value [-out ] [-showdetail] + +.EXAMPLE +powershell -ExecutionPolicy Bypass -File $MyInvocation.ScriptName -file "C:\temp\nv.xml" -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out "c:\temp\nv-output.xml" -showdetail + +.NOTES +Originally written to change brain-dead NVidia driver uninstallers to not force a reboot without warning on uninstall. The NVidia XML config files needed to be updated to remove the forced reboot. + + + +#> + + + +param ( + [Parameter(Mandatory=$true)][string]$file, + [string]$out=$file, + [Parameter(Mandatory=$true)][string]$xpath, + [Parameter(Mandatory=$true)][string]$name, + [Parameter(Mandatory=$true)][string]$value, + [switch]$showdetail=$false + +) +if ($showdetail) {{ + write-host "Parameters:" + write-host "file: $file" + write-host "Selection Search: $select" + write-host "Node to change: $name" + write-host "New value to set: $value" + write-host "Output File: $out" +} + #$path=$file + [xml]$xml=(Get-Content $file) + [System.Xml.XmlElement] $root = $xml.get_DocumentElement() + $nodes=$root.SelectNodes($xpath) + foreach ($node in $nodes) {{ + if ($showdetail) {{ write-host "Found node " $node.OuterXml } + $node.$name=$value + } + if ($showdetail) {{ write-host "Saving output to " $out } + $xml.save($out) + EOF_EOF_EOF_EOF + + delete updatexml.ps1 + move __createfile updatexml.ps1 + + +// Create a sample XML file to update, will change "uninstallReboot" to "false" +delete __createfile +createfile until EOF_EOF_EOF_EOF + + + + + + + + + +EOF_EOF_EOF_EOF +delete sample.xml +move __createfile sample.xml + +// Now, use powershell to modify an attribute within the sample file and output it to a new XML +waithidden powershell.exe -ExecutionPolicy Bypass -File updatexml.ps1 -file sample.xml -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out sample-output.xml]]> + +
+
From 8648d7dc633eb1bced8356f7ff0b8034a176e0bf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 17 Sep 2026 21:32:32 +0000 Subject: [PATCH 2/2] [bot] Apply pre-commit auto-fixes --- .../Apache Commons Text Scan Analysis.bes | 68 +- .../Fixlets/Analyses/ESET Installed (76).bes | 66 +- ...nux package info - RPM & DEB (2998050).bes | 54 +- .../Analyses/SSH Public Keys (2998546).bes | 48 +- .../Fixlets/Analyses/Shellshock (2994719).bes | 50 +- ... Available and Installed Packages (95).bes | 52 +- ... - Security Center - Windows (2996952).bes | 54 +- ...dobe Update Server - Windows (2994671).bes | 68 +- ...te Server Settings - Windows (2994676).bes | 68 +- ... Shortcuts, RunKey - Windows (2994785).bes | 66 +- .../Apache Commons Text Scan Analysis.bes | 68 +- .../Audit Policy - Windows (2998298).bes | 92 +- ...toAdminLogon audit - Windows (2994788).bes | 56 +- .../BitLockerEncryptionStatus (96).bes | 52 +- .../Bitlocker - Audit - Windows (2998433).bes | 70 +- ...er - Compatibility - Windows (2998299).bes | 46 +- ...r - Key Protectors - Windows (2998300).bes | 50 +- .../Bitlocker - Logs - Windows (2998437).bes | 46 +- ... Recovery Password - Windows (2998160).bes | 50 +- .../Bitlocker - TPM Status (2998637).bes | 56 +- .../Bitlocker - TPM Status (2998646).bes | 56 +- .../Bitlocker Info - Windows (2994754).bes | 84 +- .../Boot Up Analysis - Windows (2994790).bes | 60 +- .../Certificate Audit - Windows (2994825).bes | 54 +- .../Certificates - Windows (2998390).bes | 72 +- .../ChkDsk Audit - Windows (2994739).bes | 80 +- .../Chocolatey Audit - Windows (2994810).bes | 72 +- ...lient Clock Audit - Kerberos (2994647).bes | 64 +- ...osoft Product Keys - Windows (2994759).bes | 56 +- ...Cached Login Creds - Windows (2998301).bes | 50 +- ...Current Memory Configuration (2995862).bes | 50 +- ...Current Memory Configuration (2998506).bes | 52 +- .../DNS Cache - Windows (2995861).bes | 52 +- ...eviceQuery Results - Windows (2994799).bes | 62 +- .../Fixlets/Analyses/Devices (50).bes | 54 +- .../Analyses/Devices - Windows (2994709).bes | 100 +- .../Distinguished Name of User (2998580).bes | 48 +- .../Driver Audit - Windows (2994712).bes | 56 +- .../Analyses/Drivers - Windows (2998242).bes | 44 +- ...ET - Configuration - Windows (2998302).bes | 64 +- .../EMET - Logs - Windows (2998438).bes | 46 +- .../Event Log - Windows (2998243).bes | 50 +- ...onfiguration Audit - Windows (2994783).bes | 54 +- ...ll - Configuration - Windows (2998518).bes | 62 +- .../Group Policy - Windows (2998487).bes | 88 +- .../Analyses/Groups - Windows (2998456).bes | 78 +- .../Hard Drive Audit - Windows (2994706).bes | 88 +- .../Analyses/Hardware - Windows (2998512).bes | 74 +- .../Hyper-V Guest - Windows (2998484).bes | 50 +- .../Hyper-V Host - Windows (2998252).bes | 46 +- ... Upgrade Failure Information (2998651).bes | 52 +- .../Analyses/Inactive Users (2994557).bes | 48 +- .../Intel vPro Audit - Windows (2995830).bes | 50 +- .../Internet Explorer - Windows (2998393).bes | 42 +- ...orer Configuration - Windows (2994779).bes | 54 +- .../Fixlets/Analyses/Is Docked (74).bes | 42 +- .../KB5022842 on Win 2022 (2998680).bes | 66 +- ...ptop Battery Audit - Windows (2994755).bes | 102 +- ...l Admin_User Audit - Windows (2994547).bes | 56 +- .../Local Client Administrators (78).bes | 50 +- .../Lockout Events from DC (2998671).bes | 52 +- ...sers with local admin rights (2998581).bes | 52 +- ...7-010 verify (WannaCry &co.) (2998568).bes | 54 +- ...s 7 _ Windows Server 2008 R2 (2998556).bes | 62 +- ...dows 8 _ Windows Server 2012 (2998557).bes | 62 +- ...8.1 _ Windows Server 2012 R2 (2998558).bes | 62 +- ... Vista _ Windows Server 2008 (2998560).bes | 62 +- .../Fixlets/Analyses/MSSQL (2994632).bes | 88 +- ...Deployment Toolkit - Windows (2998513).bes | 60 +- .../Microsoft IIS - Windows (2998511).bes | 54 +- ... Information - KMS - Windows (2994711).bes | 68 +- ...ce Settings - Extended - RDP (2994595).bes | 86 +- .../Microsoft SQL - Windows (2998470).bes | 60 +- ...ts for Available Windows Features (12).bes | 54 +- .../Analyses/Network - Windows (2998477).bes | 64 +- .../Network Info - Windows (2994562).bes | 56 +- .../Operating System - Windows (2998541).bes | 62 +- ...rmation (Windows) - Expanded (2994800).bes | 140 +- ...(Windows) - metric inspector (2994628).bes | 84 +- .../Analyses/PageFile - Windows (2994592).bes | 58 +- .../Analyses/Pagefile - Win_Mac (2998262).bes | 44 +- .../Analyses/Pagefile - Windows (2998263).bes | 46 +- .../Pending Restart - Windows (2998394).bes | 52 +- ...er - Configuration - Windows (2998419).bes | 58 +- ...lan Settings - Windows TODO (2994762).bes | 54 +- .../Analyses/PowerShell x64 Status (19).bes | 62 +- .../Analyses/PowerShell x86 Status (20).bes | 60 +- ...erShell x86 Status - Windows (2994540).bes | 86 +- .../Primary User - Windows (2995831).bes | 62 +- .../Printer Audit - Windows (2994742).bes | 86 +- .../Analyses/Printers - Windows (2998542).bes | 46 +- ...perties (Windows) - Extended (2994574).bes | 64 +- ...eal-time Downtime Validation (2998602).bes | 68 +- ...ce - Configuration - Windows (2998523).bes | 62 +- ...tance - Event Logs - Windows (2998524).bes | 50 +- ...nce - Session Logs - Windows (2998525).bes | 86 +- .../Remote Assistance - Windows (2998526).bes | 50 +- ...top - Session Logs - Windows (2998527).bes | 44 +- ...estart information - Windows (2998686).bes | 62 +- .../Analyses/SCCM - Windows (2998488).bes | 64 +- .../Analyses/SNMP - Windows (2998459).bes | 50 +- .../Analyses/SNMP Configuration (2994764).bes | 52 +- ...tion and Licensing - Windows (2994757).bes | 68 +- ...sage Analysis Info - Windows (2994536).bes | 92 +- .../Scheduled Tasks - Windows (2998472).bes | 56 +- .../Analyses/Service Error (2994723).bes | 48 +- .../Service Monitor - Windows (2998502).bes | 66 +- .../Analyses/Services - Windows (2998543).bes | 54 +- .../Analyses/Services info (2994720).bes | 58 +- .../Analyses/Shares - Windows (2998467).bes | 60 +- ...ogon or GPO issues - Windows (2994789).bes | 78 +- .../Stability - Windows (2998544).bes | 60 +- .../Stability Audit - Windows (2994781).bes | 78 +- .../System File Checker results (2994541).bes | 60 +- ... Security Analysis - Windows (2998604).bes | 124 +- ...ship Authorization - Windows (2998307).bes | 42 +- .../Analyses/TPM - Windows (2998504).bes | 50 +- .../Analyses/TSM Backup Audit - Windows.bes | 110 +- ...ders, Logs, etc... - Windows (2994784).bes | 54 +- ...ary Administrators - Windows (2998399).bes | 50 +- ... - Missing Patches - Windows (2998276).bes | 44 +- ...ow Boot Slow Logon - Windows (2998474).bes | 46 +- .../Analyses/UEFI - Windows (2998369).bes | 46 +- .../Analyses/Uninstall Analysis (54).bes | 50 +- .../Analyses/Users - Windows (2998571).bes | 66 +- .../VMWare Guest - Windows (2998379).bes | 48 +- .../Analyses/VPN - Windows (2998351).bes | 64 +- ...and Monitor _ OMCI & others) (2994763).bes | 170 +- ...ion Based Security - Windows (2998545).bes | 62 +- ... Antimalware Audit - Windows (2994634).bes | 80 +- .../Analyses/WMI - Windows (2998282).bes | 52 +- ...er - Configuration - Windows (2998309).bes | 78 +- ...- Applocker - Logs - Windows (2998440).bes | 52 +- ...isting - Applocker - Windows (2998311).bes | 46 +- ...rade Eligibility Information (2998656).bes | 120 +- ...dmin Users Compliance Status (2998597).bes | 160 +- ...Results - WinVista and later (2994570).bes | 90 +- .../Windows License Information (2998636).bes | 108 +- ...indows Power Scheme Settings (2994768).bes | 68 +- ... Information - KMS - Windows (2998367).bes | 64 +- ...s System Volume Size & Usage (2994588).bes | 58 +- .../Windows Update & WSUS Audit (69).bes | 54 +- ...ors while Installing Updates (2998673).bes | 48 +- ...date check results - Windows (2998507).bes | 60 +- .../Windows Updates - Windows (2998397).bes | 52 +- .../Analyses/Windows Upgrades (2998608).bes | 50 +- ...wsUpdate.log Audit - Windows (2995914).bes | 52 +- .../Analyses/dotNET Framework (2994589).bes | 64 +- ...rcfg energy report - Windows (2994793).bes | 52 +- ...rtcut for all users on Windows (25073).bes | 166 +- ...ith KMS - set server - Windows (22632).bes | 120 +- ...ws with KMS over VPN - Windows (22633).bes | 136 +- ...arch List if missing - Windows (26706).bes | 96 +- ...r to Remote Desktop Users Group (3794).bes | 122 +- ...r to Local Administrators Group (3624).bes | 66 +- ...specific domain - www.domain.tld (715).bes | 76 +- ... Commons Text detection scan (Windows).bes | 190 +- ...plocker Configuration Template (25578).bes | 212 +- .../BCDedit Hypervisor Command (24885).bes | 104 +- ...BigSpeak Audio Health Dashboard (6218).bes | 306 +- ...board Scheduled Task Setup v1.0 (6217).bes | 300 +- ...Tweet Scheduled Task Setup v2.1 (6113).bes | 190 +- .../Fixlets/Fixlets/BigTweet v2.1 (6112).bes | 184 +- ...17 - MS Office Issues - Windows (9143).bes | 150 +- ...k Regsvr32 in Windows Firewall (20257).bes | 116 +- ...ound_ Disable ActiveX Download (26876).bes | 122 +- ...ound_ Disable ActiveX Download (26877).bes | 122 +- ...nvironment variables (Windows) (26898).bes | 134 +- ...dministrator Password - Windows (9150).bes | 92 +- ... Page if unchanged from default (3802).bes | 74 +- ...ge local user account password (27377).bes | 208 +- ...user account password - Windows (3670).bes | 138 +- ...ord with verification - Windows (6076).bes | 180 +- ...ay run out of hard drive space (11930).bes | 114 +- ...system may run out of hard drive space.bes | 114 +- .../Close Magnify.exe - Windows (24573).bes | 78 +- ...ce - Automatic Start - Windows (20699).bes | 84 +- ...ment Max Size - 20mb - Windows (20591).bes | 80 +- ...tion Max Size - 20mb - Windows (20592).bes | 80 +- ..._DLL Max Size - 20mb - Windows (20593).bes | 80 +- ...ript Max Size - 20mb - Windows (20594).bes | 80 +- ... AppX,EXE,MSI,Script - Windows (20595).bes | 130 +- ... AppX,EXE,MSI,Script - Windows (20596).bes | 130 +- ... run All Executables - Windows (20616).bes | 126 +- ...s to run All Scripts - Windows (20617).bes | 126 +- ...ules - Allow Default - Windows (20599).bes | 264 +- ...un Cached Installers - Windows (20619).bes | 126 +- ...nstalled Executables - Windows (20620).bes | 134 +- ...un Installed Scripts - Windows (20621).bes | 138 +- ...e to run Signed AppX - Windows (20622).bes | 128 +- ...n Signed Executables - Windows (20623).bes | 132 +- ...un Signed Installers - Windows (20624).bes | 130 +- ... - Reset Local Rules - Windows (20625).bes | 106 +- ...n - Add User Account - Windows (23677).bes | 162 +- ... Autologon - Disable - Windows (23678).bes | 80 +- ...r Method - Audit All - Windows (20703).bes | 132 +- ...Method - Enforce All - Windows (20704).bes | 132 +- ... run All Executables - Windows (20705).bes | 126 +- ...s to run All Scripts - Windows (20706).bes | 126 +- ...ts in their Profiles - Windows (20714).bes | 110 +- ...un Cached Installers - Windows (20707).bes | 126 +- ...nstalled Executables - Windows (20746).bes | 134 +- ...un Installed Scripts - Windows (20709).bes | 138 +- ...pts in Program Files - Windows (20738).bes | 116 +- ...irectory except Temp - Windows (20739).bes | 116 +- ...files except AppData - Windows (20740).bes | 116 +- ...e to run Signed AppX - Windows (20710).bes | 128 +- ...n Signed Executables - Windows (20711).bes | 132 +- ...un Signed Installers - Windows (20712).bes | 130 +- ...tial Guard - Disable - Windows (20652).bes | 122 +- ...nable with UEFI Lock - Windows (20653).bes | 128 +- ...le SMBv3 Compression - Windows (26668).bes | 88 +- ... Pinning Mitigations - Windows (20801).bes | 820 +- ...t Mitigation Actions - Windows (20802).bes | 124 +- ...lication Mitigations - Windows (20803).bes | 632 +- ...igations without EAF - Windows (20897).bes | 634 +- ...rd-Party Mitigations - Windows (21612).bes | 616 +- ...igations without EAF - Windows (20898).bes | 616 +- ...- Add 127.0.0.1 FQDN - Windows (23379).bes | 104 +- ...emove 127.0.0.1 FQDN - Windows (23380).bes | 102 +- ...e - Reset to Default - Windows (23381).bes | 140 +- ...V Platform - Disable - Windows (20654).bes | 76 +- ...-V Platform - Enable - Windows (20655).bes | 78 +- ... User Mode - Disable - Windows (20656).bes | 76 +- ...d User Mode - Enable - Windows (20657).bes | 76 +- ...Desktop - Enable RDP - Windows (23555).bes | 80 +- ...cy - Set to Balanced - Windows (20557).bes | 74 +- ... to High Performance - Windows (20559).bes | 74 +- ...- Set to Power Saver - Windows (20561).bes | 74 +- ...to Presentation Mode - Windows (24032).bes | 68 +- ...osoft Search Indexer - Windows (22915).bes | 80 +- ... Delay to 10 Minutes - Windows (23032).bes | 72 +- ... Delay to 15 Minutes - Windows (23033).bes | 72 +- ...t Delay to 5 Minutes - Windows (23034).bes | 72 +- ...ntial Guard - Enable - Windows (23808).bes | 88 +- ...et to KMS Activation - Windows (23579).bes | 100 +- ... on Synchronize with NTP server (2587).bes | 78 +- ...dard User to use Windows Update (2583).bes | 84 +- ...res - Windows 8 or later TODO (6047).bes | 120 +- ...g Features - Windows 8 or later (6067).bes | 122 +- ... port ForceFifoEnable - Windows (3864).bes | 94 +- ... port ForceFifoEnable - Windows (6044).bes | 94 +- ...able Kerberos Logging - Windows (3782).bes | 76 +- ...FS Last Access Update - Windows (6041).bes | 84 +- ...ettings - Windows -TODO_Testing (3865).bes | 108 +- ...rm Tags Utility 4.006 - Windows (3928).bes | 232 +- ...rm Tags Utility 4.006 - Windows (3927).bes | 220 +- ...press Balloon Pop-Ups - Windows (3781).bes | 88 +- ...igure Cascading Admin Tools Menu (100).bes | 88 +- ...figure Cascading Admin Tools Menu (85).bes | 88 +- ...nfigure Computer as _Always On_ (2570).bes | 88 +- ... ago (Windows Vista and Higher) (6035).bes | 118 +- .../Configure Execution Policy (632).bes | 84 +- .../Configure Execution Policy (74).bes | 84 +- ...ist for Currently Logged On User (647).bes | 110 +- ...Registered Organization and Owner (86).bes | 160 +- ...igure TCP_ MaxUserPort to 60000 (3938).bes | 76 +- .../Configure TCP_ MaxUserPort to 60000.bes | 76 +- ...TcpTimedWaitDelay to 30 seconds (3937).bes | 76 +- ... Firewall_ Allow Remote Desktop (3974).bes | 84 +- ...Windows Firewall_ Allow Remote Desktop.bes | 84 +- ... Desktop Shortcut (PowerShell) (25589).bes | 146 +- ...rtcut in User Profile if missing (720).bes | 102 +- ...lias for DIR command - Windows (24046).bes | 100 +- ...d_ Context Menu item - Windows (25531).bes | 78 +- ...o clear relevance for KB3024777 (3979).bes | 98 +- ...account to local administrators (3656).bes | 84 +- ...ings using ActiveSetup (POODLE) (3914).bes | 146 +- .../Fixlets/Fixlets/DISM Inventory (1420).bes | 292 +- ... if one exists over 2GB in size (1415).bes | 76 +- ..._NETWORK WiFi Profile - Windows (6171).bes | 80 +- ...from systems with low free space (721).bes | 78 +- ...hortcuts containing _uninstall_ (3657).bes | 80 +- ...ment Framework - 4.0 - Windows (23565).bes | 92 +- ...osoft Office 2011 Update 14.3.5 (2531).bes | 94 +- ...osoft Office 2011 Update 14.3.6 (2539).bes | 94 +- .../Designate ALWAYS On Profile (2611).bes | 148 +- .../Fixlets/Device Control (24645).bes | 76 +- .../Disable Administrator Account (99).bes | 90 +- .../Fixlets/Disable AutoAdminLogon (740).bes | 80 +- ...tes for Currently Logged On User (646).bes | 96 +- .../Fixlets/Disable Microsoft CEIP (3899).bes | 108 +- .../Fixlets/Disable Named Pipes (108).bes | 84 +- .../Fixlets/Disable Named Pipes (642).bes | 84 +- ...rk Adaptors (Requires Restart) (27372).bes | 72 +- .../Disable Remote Desktop (RDP) (659).bes | 96 +- ...dows 8 and Windows Server 2012 (24318).bes | 112 +- ...ows Vista, Windows Server 2008 (24314).bes | 76 +- ...isable SMBv1 Service - Windows (23443).bes | 86 +- ...ows 8, and Windows Server 2012 (24316).bes | 82 +- ...le Skype Auto-update - Improved (3662).bes | 104 +- ...Disable Skype start with windows (727).bes | 76 +- ...R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes | 134 +- .../Fixlets/Fixlets/Disable UAC (1376).bes | 86 +- .../Fixlets/Fixlets/Disable UAC (26610).bes | 94 +- ...8 and Mac OS 10.4_10.5_10.6_10.7 (310).bes | 114 +- .../Disable Windows Update (26611).bes | 70 +- .../Fixlets/Disable inactive users (2549).bes | 80 +- .../Fixlets/Disable inactive users (3873).bes | 80 +- ...artition & Create M_ Partition (25433).bes | 156 +- .../Enable Administrator Account (615).bes | 90 +- ...tes for Currently Logged On User (645).bes | 96 +- ...buntu BASH) - Windows Features (20682).bes | 116 +- .../Fixlets/Enable Named Pipes (107).bes | 84 +- .../Fixlets/Enable Named Pipes (641).bes | 84 +- ... .NET 2 & 3 - Windows Features (22635).bes | 106 +- .../Fixlets/Enable Remote Desktop (3872).bes | 74 +- .../Enable Remote Desktop (RDP) (2458).bes | 100 +- ...dows 8 and Windows Server 2012 (24319).bes | 112 +- ...ows Vista, Windows Server 2008 (24315).bes | 76 +- ...ows 8, and Windows Server 2012 (24317).bes | 82 +- ...R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes | 136 +- .../Enable TRIM on Win7 for SSDs (1385).bes | 76 +- .../Fixlets/Fixlets/Enable UAC (1377).bes | 86 +- .../Enable Windows Automatic Updates (97).bes | 116 +- ...pport - Unsupported Windows OS (25452).bes | 90 +- ...Enforce Admin Users Compliance (25547).bes | 318 +- ...nd Ransomware Files on C Drive (24331).bes | 70 +- ...nd Ransomware Files on D Drive (24332).bes | 70 +- ...nd Ransomware Files on E Drive (24333).bes | 70 +- ...nd Ransomware Files on F Drive (24334).bes | 70 +- ...nd Ransomware Files on G Drive (24336).bes | 70 +- ...nd Ransomware Files on H Drive (24337).bes | 70 +- ...nd Ransomware Files on I Drive (24338).bes | 70 +- ...nd Ransomware Files on J Drive (24339).bes | 70 +- ...nd Ransomware Files on K Drive (24340).bes | 70 +- ...nd Ransomware Files on L Drive (24341).bes | 70 +- ...nd Ransomware Files on M Drive (24342).bes | 70 +- ...nd Ransomware Files on N Drive (24343).bes | 70 +- ...nd Ransomware Files on O Drive (24344).bes | 70 +- ...nd Ransomware Files on P Drive (24345).bes | 70 +- ...nd Ransomware Files on X Drive (24346).bes | 70 +- ...nd Ransomware Files on Y Drive (24347).bes | 70 +- ...shortcut missing from Start Menu (741).bes | 102 +- .../Fix Unquoted Registry Paths (24886).bes | 80 +- .../Fixlets/Fixlets/Fix WMI Errors (3652).bes | 182 +- ...and SSL 3.0 in Internet Explorer (652).bes | 72 +- ...P Update for Computer and Reboot (651).bes | 72 +- ... info to Registry (Policy) 1.1 (22387).bes | 332 +- ...owerCFG Energy Report - Windows (6040).bes | 134 +- .../Fixlets/Get AD Description (3755).bes | 172 +- .../Fixlets/Get AD Location (3756).bes | 172 +- ...12 R2, and Windows Server 2016 (24321).bes | 114 +- ...12 R2, and Windows Server 2016 (24323).bes | 114 +- ...12 R2, and Windows Server 2016 (24320).bes | 114 +- ...12 R2, and Windows Server 2016 (24322).bes | 114 +- ...ithout Elevation (Interactive) (26940).bes | 272 +- ...ithout Elevation (Interactive) (26941).bes | 272 +- ...NET Framework 2.0 Service Pack 2 (106).bes | 110 +- ...all Microsoft .NET Framework 3.5 (104).bes | 116 +- ...tall Microsoft .NET Framework 4 (3626).bes | 164 +- ... new wifi certificate - Windows (6247).bes | 84 +- ...pdate 1 TODO_ Add Relevance (6061).bes | 102 +- ...stic Tool v2 Update 1 - Windows (6063).bes | 110 +- ...Remote Desktop Users - Windows (22607).bes | 84 +- ...orary Administrators - Windows (24153).bes | 1616 ++-- ...er to Administrators - Windows (24405).bes | 82 +- ...strators Temporarily - Windows (21369).bes | 202 +- ...uthorized Requestors - Windows (24154).bes | 372 +- ...Remote Desktop Users - Windows (24406).bes | 82 +- ...orary Administrators - Windows (24155).bes | 1614 ++-- ... to Authorized Files - Windows (21897).bes | 168 +- ...uthorized Requestors - Windows (24156).bes | 374 +- ...ze Application Usage - Windows (21122).bes | 304 +- ... Blocks and Warnings - Windows (21336).bes | 500 +- ... Configuration Probe - Windows (20701).bes | 156 +- ...ypt Secondary Volume - Windows (21696).bes | 510 +- ...ncrypt System Volume - Windows (23093).bes | 312 +- ... to Active Directory - Windows (23097).bes | 150 +- ...overy Password Probe - Windows (21335).bes | 236 +- ...tem Drive Encryption - Windows (24097).bes | 112 +- ...tem Drive Encryption - Windows (24111).bes | 108 +- ...tem Drive Encryption - Windows (24112).bes | 106 +- ...tificate Store Probe - Windows (24040).bes | 214 +- ...s older than 14 days - Windows (24041).bes | 98 +- ...s older than 30 days - Windows (24042).bes | 98 +- ...s older than 60 days - Windows (24043).bes | 98 +- ...ng Physical Presence - Windows (24044).bes | 108 +- ... Owner Authorization - Windows (24113).bes | 114 +- ... Owner Authorization - Windows (24114).bes | 114 +- ...ched Applocker Rules - Windows (20716).bes | 232 +- ...orary Administrators - Windows (24157).bes | 1640 ++-- ...orary Administrators - Windows (24158).bes | 1630 ++-- ... and Optimize Drives - Windows (23382).bes | 72 +- ...pplication Usage Log - Windows (21052).bes | 70 +- ...pplication Usage Log - Windows (21059).bes | 72 +- ...nvoke - Disk Cleanup - Windows (21628).bes | 214 +- ...Group Policy Refresh - Windows (22887).bes | 102 +- ...ive Directory Domain - Windows (23387).bes | 198 +- ... Kernel Kext Cache Reset - Mac (20530).bes | 78 +- ...T Convert MBR to GPT - Windows (23810).bes | 158 +- ... Validate MBR to GPT - Windows (23811).bes | 160 +- ...wer Efficiency Probe - Windows (21716).bes | 96 +- ...wer Efficiency Probe - Windows (21726).bes | 96 +- ...sted Platform Module - Windows (23094).bes | 482 +- ... from Administrators - Windows (24407).bes | 78 +- ...uthorized Requestors - Windows (24159).bes | 370 +- ...Remote Desktop Users - Windows (24408).bes | 82 +- ...orary Administrators - Windows (24160).bes | 370 +- ...uthorized Requestors - Windows (24161).bes | 368 +- ...orary Administrators - Windows (24162).bes | 368 +- ...t Local Group Policy - Windows (22647).bes | 102 +- ... - Sync Client Clock - Windows (24110).bes | 74 +- ...WMI Repository Reset - Windows (22648).bes | 114 +- ...ed Credentials Probe - Windows (20768).bes | 844 +- ...pdate Troubleshooter - Windows (21363).bes | 108 +- ...Join Computer to domain - wmic (26947).bes | 176 +- ... x64) and Windows Server 2008r2 (2592).bes | 192 +- ...sable RTF processing in MS Word (3741).bes | 202 +- ...dpoint Manager version 8.1.634.0 (153).bes | 176 +- ...urity Platform version 8.1.634.0 (129).bes | 160 +- ...o 80 MB via Local Group Policy (26933).bes | 220 +- .../List Offline Files (PowerShell) (644).bes | 192 +- .../Fixlets/Lock Screen - Windows (23995).bes | 80 +- ...Lock computer multiple options (26856).bes | 132 +- .../Locky malware detection (9275).bes | 82 +- ...nection Server Names - Windows (23554).bes | 102 +- ...d files on the C_ drive - v1.1 (24312).bes | 88 +- ...t Logon - Disable Debug Logging (1410).bes | 100 +- ...et Logon - Enable Debug Logging (1409).bes | 104 +- .../Fixlets/Nuke IPv6 - Windows (27385).bes | 80 +- ...lias for DIR command - Windows (20414).bes | 98 +- .../Fixlets/Outlook Profile Reset (24867).bes | 94 +- ...ers using Driverquery - Windows (6060).bes | 84 +- ...ndows Update Results - Windows (23123).bes | 206 +- ... Sleep Timeout - Windows Vista_7 (312).bes | 102 +- ...set defaults to 35min - testing (1419).bes | 136 +- ...date.log - Windows NOT WORKING (10608).bes | 100 +- ...Pin Calc to Windows 7 Start Menu (677).bes | 158 +- .../Pin Calc to Windows 7 Taskbar (678).bes | 158 +- ...r Printnightmare vulnerability (26861).bes | 96 +- ...older Rights (Prompt for Path) (26609).bes | 258 +- ...shell Computer Rename (Prompt) (26604).bes | 110 +- .../Registry.pol Corruption Fix (27373).bes | 90 +- ...r Printnightmare vulnerability (26862).bes | 132 +- ...and 3 and updates with msiexec (26634).bes | 216 +- ...y - those not created by wizard (2528).bes | 78 +- .../Fixlets/Remove XPS Viewer (648).bes | 186 +- ...ast Man Standing_ Power Scheme (21436).bes | 126 +- ...and deactivate Windows license (25208).bes | 82 +- ...rom local Administrators group (24889).bes | 72 +- .../Rename Windows Computer (1393).bes | 110 +- .../Fixlets/Fixlets/Repair WMI (676).bes | 154 +- ...ce IP in hosts file on Windows (26953).bes | 86 +- ...Certificate - Enable Workaround (6286).bes | 224 +- ...Roll Back_ MS11-021 (KB2501584) (1412).bes | 92 +- ... Internet Explorer to version 9 (3706).bes | 70 +- ...al Kerberos problem - Windows7+ (3783).bes | 116 +- .../Rollback Patch Task_ KB971033 (26600).bes | 92 +- .../Run a Full Disk Cleanup (6133).bes | 340 +- ...ell Script - Windows - TEMPLATE (3860).bes | 116 +- ...icrosoft product keys - Windows (3941).bes | 98 +- ...dows Account Lockout_ 15_10_10 (27000).bes | 112 +- ...t Profile Picture - Windows 10 (25579).bes | 108 +- ...solution to Maximum Resolution (27420).bes | 942 +- ...t Name to Sharing Name V2 - Mac (3649).bes | 118 +- ... NOT depend on SMBv1 - Windows (23441).bes | 84 +- .../Fixlets/Set MTU to 1400 (2456).bes | 68 +- ...tzautoupdate to Auto - Windows (24613).bes | 92 +- ... to DelayedAutoStart - Windows (24612).bes | 88 +- ...autoupdate to demand - Windows (24611).bes | 88 +- ...toupdate to disabled - Windows (24610).bes | 88 +- .../Fixlets/Set Timezone - Windows (2613).bes | 730 +- ...de Analytics Preview - Windows (21118).bes | 192 +- ... Update KB917607 - WinHlp32.exe (1364).bes | 96 +- ...art and Enable Windows Service (26632).bes | 90 +- ...Start the DCOM Launcher Service (9282).bes | 72 +- ...the RPC EndPoint Mapper Service (9283).bes | 72 +- ...e Remote Procedure Call Service (9284).bes | 72 +- ...art the Remote Registry Service (9286).bes | 72 +- ...agement Instrumentation Service (9285).bes | 72 +- ... disable Print Spooler service (26914).bes | 94 +- .../System Restore Off _ Disable (20643).bes | 494 +- .../TASK_ Change System Time (773).bes | 74 +- ...ile Checker tool - SFC _scannow (6038).bes | 118 +- ...napshot Service - VSS - Backups (6043).bes | 72 +- ...Win10_2016) (TEST!!!) (export) (25565).bes | 392 +- .../Take Screenshot - Windows (21898).bes | 736 +- ...are Spooler Disable mitigation (26860).bes | 88 +- .../Track Primary User v2.8 (2533).bes | 94 +- ...nding Updates, and DISM Repair (27344).bes | 758 +- ...ver 2016 _ Windows Server 2019 (26631).bes | 172 +- ...gers (Trigger Start) - Windows (24614).bes | 94 +- ...et-Explorer 11 (Windows 64BIT) (26938).bes | 166 +- ...ain on Windows Computer - wmic (26948).bes | 74 +- ...Unmount PST Files from Outlook (26642).bes | 268 +- ...1.247.1082.0 - 64bit - Windows (24602).bes | 96 +- ...ndows Experience Index - WinSAT (6045).bes | 92 +- .../Fixlets/Upload DISM.txt (1049).bes | 104 +- ...le Memory Leak in ITM OS Client (4013).bes | 154 +- ...le Memory Leak in ITM OS Client (4014).bes | 98 +- .../Fixlets/WUAUSERV Enable (21611).bes | 68 +- ...ity service may not be running (22654).bes | 80 +- ... AppIDSvc is stopped - Windows (22655).bes | 72 +- ...orcement Mode is Set - Windows (20664).bes | 54 +- ...enterprise versions of Windows (20223).bes | 56 +- ...vent log size may be too small (20583).bes | 62 +- ...on Unencrypted Drive - Windows (20584).bes | 62 +- ...oo large to compress - Windows (23431).bes | 112 +- ...e Injection may not be allowed (23558).bes | 62 +- ...lder of System Drive - Windows (21631).bes | 94 +- ...lder of System Drive - Windows (21632).bes | 96 +- ...lder of System Drive - Windows (21633).bes | 96 +- ...lder of System Drive - Windows (21634).bes | 96 +- ...Root of System Drive - Windows (21635).bes | 100 +- ...gging may be enabled - Windows (21636).bes | 58 +- ...acing may be enabled - Windows (21637).bes | 58 +- ...gging may be enabled - Windows (21638).bes | 56 +- ...nually defined hosts - Win_Mac (20536).bes | 54 +- ...use Installer errors - Windows (21687).bes | 248 +- ...ty SA 00075 Exposure - Windows (24269).bes | 58 +- ...stalled but may not be running (20225).bes | 58 +- ...stalled but may not be running (20226).bes | 58 +- ...stalled Side-by-Side - Windows (23734).bes | 84 +- ...stalled Side-by-Side - Windows (23735).bes | 84 +- ...stalled Side-by-Side - Windows (23818).bes | 8268 ++++++++-------- ...lled but not running - Windows (22649).bes | 78 +- ...efault configuration - Windows (20537).bes | 54 +- ... to High Performance - Windows (21429).bes | 54 +- ...ssistance may not be installed (23559).bes | 78 +- ...municated in 30 Days - Windows (21744).bes | 56 +- ...-Protect is Disabled - Windows (21745).bes | 56 +- ...e exceptions defined - Windows (21746).bes | 58 +- ...ital signature state - Windows (20538).bes | 58 +- ...f cached credentials - Windows (20631).bes | 56 +- ... Assistance may not be allowed (23560).bes | 78 +- ...nents can be removed - Windows (23819).bes | 86 +- ...nents can be removed - Windows (23820).bes | 82 +- ...nents can be removed - Windows (23821).bes | 86 +- ...nents can be removed - Windows (23822).bes | 8270 ++++++++--------- ...ion may cause WU reboot prompt (20539).bes | 56 +- ... in System Directory - Windows (21639).bes | 76 +- ...sitory is very large - Windows (22650).bes | 74 +- ...esponding to queries - Windows (22651).bes | 74 +- ...ication during AV installation (20586).bes | 56 +- ... be blocking Remote Assistance (23561).bes | 74 +- .../Wifi + LAN Detect and Disable (24607).bes | 72 +- .../Wifi + LAN Detect and enable (24608).bes | 72 +- ...AGE1__Stage Installation Files (25518).bes | 184 +- .../Win10-1803__STAGE2__Install (25519).bes | 268 +- .../Win10-1803__STAGE3__Cleanup (25520).bes | 88 +- ...AGE1__Stage Installation Files (25593).bes | 184 +- .../Win10-1809__STAGE2__Install (25594).bes | 268 +- .../Win10-1809__STAGE3__Cleanup (25595).bes | 90 +- .../WinGet (WinGet method) (27387).bes | 96 +- ...ws - New local user definition (27388).bes | 268 +- ...Set Telemetry Level to _Basic_ (11671).bes | 94 +- ...ty CVE 2021-36934 (TESTING) v2 (26867).bes | 176 +- ...s 11 Upgrade Eligibility probe (26878).bes | 88 +- ...staller 3.1 Redistributable (v2) (103).bes | 124 +- ..., Windows Server 2012 R2 (x64) (22466).bes | 158 +- ...indows PowerShell 2.0 Available (3964).bes | 196 +- ...indows PowerShell 2.0 Available (3966).bes | 196 +- ...Windows PowerShell 2.0 Available (634).bes | 182 +- ...stall-Module (PS 5.0+ version) (26617).bes | 484 +- .../Windows7810DeviceControl (24647).bes | 116 +- ... Disable the MSDT URL Protocol (26935).bes | 74 +- ... Disable the MSDT URL Protocol (26936).bes | 74 +- .../dump DNS Cache - Windows (21333).bes | 100 +- .../dump DNS Cache - Windows (9281).bes | 100 +- ...Windows KMS key - Windows BETA (21368).bes | 134 +- ...ML Editing Template Powershell (25582).bes | 220 +- ...mplate XML Editing Template Powershell.bes | 220 +- 563 files changed, 44549 insertions(+), 44549 deletions(-) diff --git a/Sites/Linux Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes b/Sites/Linux Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes index 4a80fec3b..7ab92a171 100644 --- a/Sites/Linux Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes +++ b/Sites/Linux Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes @@ -1,34 +1,34 @@ - - - - - Apache Commons Text Scan Analysis - This is Community Content. When you use these solutions, it is incumbent on your organization to test any solutions provided across the broadest available system base including various OS, storage solutions, and application inventory. -

-

Please see the Community Solution Testing Statement

-

This Analysis retrieves results of a filesystem scan to attempt detecting Apache Commons Text versions that may be vulnerable to one of the following vulnerabilty CVE-2022-42889 reported in October 2022:

- -

This Analysis attempts to detect the presence and versions of Apache Commons Text java library, without distinction between vulnerable or updated versions.  These results should be considered only a starting point in determining whether a system is actually vulnerable, along with other information such as the version of Java Virtual Machine and specific application or code configurations as referenced in the security bulletins above.

]]>
- if exists property "in proxy agent context" then not in proxy agent context else true - = "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite")))]]> - - x-fixlet-modification-time - Tue, 18 Oct 2022 16:15:23 +0000 - - BESC - (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) - number of (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) - unique values of (unique value of following texts of lasts "-" of preceding texts of lasts ".jar" of (it as lowercase) | "unknown") of lines whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) -
-
+ + + + + Apache Commons Text Scan Analysis + This is Community Content. When you use these solutions, it is incumbent on your organization to test any solutions provided across the broadest available system base including various OS, storage solutions, and application inventory. +

+

Please see the Community Solution Testing Statement

+

This Analysis retrieves results of a filesystem scan to attempt detecting Apache Commons Text versions that may be vulnerable to one of the following vulnerabilty CVE-2022-42889 reported in October 2022:

+ +

This Analysis attempts to detect the presence and versions of Apache Commons Text java library, without distinction between vulnerable or updated versions.  These results should be considered only a starting point in determining whether a system is actually vulnerable, along with other information such as the version of Java Virtual Machine and specific application or code configurations as referenced in the security bulletins above.

]]>
+ if exists property "in proxy agent context" then not in proxy agent context else true + = "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite")))]]> + + x-fixlet-modification-time + Tue, 18 Oct 2022 16:15:23 +0000 + + BESC + (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) + number of (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) + unique values of (unique value of following texts of lasts "-" of preceding texts of lasts ".jar" of (it as lowercase) | "unknown") of lines whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) +
+
diff --git a/Sites/Linux Management/Fixlets/Analyses/ESET Installed (76).bes b/Sites/Linux Management/Fixlets/Analyses/ESET Installed (76).bes index a804960b0..516f07a1f 100644 --- a/Sites/Linux Management/Fixlets/Analyses/ESET Installed (76).bes +++ b/Sites/Linux Management/Fixlets/Analyses/ESET Installed (76).bes @@ -1,33 +1,33 @@ - - - - - ESET Installed - This analysis will show Machines that have ESET installed

-

pulls back

-
    -
  1. signature of AV db
  2. -
  3. version of NOD32
  4. -
  5. Age of AV db
-

 

]]>
- windows of operating system - exists key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry - - x-fixlet-modification-time - Mon, 04 Feb 2013 11:38:54 +0000 - - BES - value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry - current date - date (( last 2 of (preceding text of first ")" of (following text of first "(" of (value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry as string))) & " " & first 3 of (month (last 2 of first 6 of (preceding text of first ")" of (following text of first "(" of (value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry as string))) as integer) as string) & " " & first 4 of (preceding text of first ")" of (following text of first "(" of (value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry as string))))) - value "ProductVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry -
-
+ + + + + ESET Installed + This analysis will show Machines that have ESET installed

+

pulls back

+
    +
  1. signature of AV db
  2. +
  3. version of NOD32
  4. +
  5. Age of AV db
+

 

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry + + x-fixlet-modification-time + Mon, 04 Feb 2013 11:38:54 +0000 + + BES + value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry + current date - date (( last 2 of (preceding text of first ")" of (following text of first "(" of (value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry as string))) & " " & first 3 of (month (last 2 of first 6 of (preceding text of first ")" of (following text of first "(" of (value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry as string))) as integer) as string) & " " & first 4 of (preceding text of first ")" of (following text of first "(" of (value "ScannerVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry as string))))) + value "ProductVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" of native registry +
+
diff --git a/Sites/Linux Management/Fixlets/Analyses/Linux package info - RPM & DEB (2998050).bes b/Sites/Linux Management/Fixlets/Analyses/Linux package info - RPM & DEB (2998050).bes index 831972dc9..b05a4773c 100644 --- a/Sites/Linux Management/Fixlets/Analyses/Linux package info - RPM & DEB (2998050).bes +++ b/Sites/Linux Management/Fixlets/Analyses/Linux package info - RPM & DEB (2998050).bes @@ -1,27 +1,27 @@ - - - - - Linux package info - RPM & DEB - This analysis gathers data from both RPMs and Debianpackages - (if exists properties whose(it as string contains "debianpackage:") then TRUE else if exists properties whose(it as string contains "rpm:") then TRUE else ERROR "The operators are not defined.") - - x-fixlet-modification-time - Fri, 06 May 2016 21:46:52 +0000 - - BESC - packages whose(if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") - (it as string) of versions of packages whose("yum" = name of it AND (if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE)) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") - (it as string) of versions of packages whose("apt" = name of it AND (if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE)) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") - packages whose( ("apt" = name of it OR "aptitude" = name of it OR "yum" = name of it OR "emerge" = name of it OR "pacman" = name of it OR "zypp" = name of it OR "dnf" = name of it OR "urpmi" = name of it) AND (if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE)) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") - - + + + + + Linux package info - RPM & DEB + This analysis gathers data from both RPMs and Debianpackages + (if exists properties whose(it as string contains "debianpackage:") then TRUE else if exists properties whose(it as string contains "rpm:") then TRUE else ERROR "The operators are not defined.") + + x-fixlet-modification-time + Fri, 06 May 2016 21:46:52 +0000 + + BESC + packages whose(if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") + (it as string) of versions of packages whose("yum" = name of it AND (if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE)) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") + (it as string) of versions of packages whose("apt" = name of it AND (if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE)) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") + packages whose( ("apt" = name of it OR "aptitude" = name of it OR "yum" = name of it OR "emerge" = name of it OR "pacman" = name of it OR "zypp" = name of it OR "dnf" = name of it OR "urpmi" = name of it) AND (if exists properties whose(it as string contains "currently installed of ") then (currently installed of it) else TRUE)) of (if exists properties whose(it as string contains "debianpackage:") then debianpackages else if exists properties whose(it as string contains "rpm:") then rpms else ERROR "The operators are not defined.") + + diff --git a/Sites/Linux Management/Fixlets/Analyses/SSH Public Keys (2998546).bes b/Sites/Linux Management/Fixlets/Analyses/SSH Public Keys (2998546).bes index 129cf2446..3fe7eff2b 100644 --- a/Sites/Linux Management/Fixlets/Analyses/SSH Public Keys (2998546).bes +++ b/Sites/Linux Management/Fixlets/Analyses/SSH Public Keys (2998546).bes @@ -1,24 +1,24 @@ - - - - - SSH Public Keys - - exists files "id_rsa.pub" of folders ".ssh" of home directory folders of users - - x-fixlet-modification-time - Tue, 18 Apr 2017 23:07:23 +0000 - - BESC - unique values whose(it as trimmed string != "") of lines of files "id_rsa.pub" of folders ".ssh" of home directory folders of users - - + + + + + SSH Public Keys + + exists files "id_rsa.pub" of folders ".ssh" of home directory folders of users + + x-fixlet-modification-time + Tue, 18 Apr 2017 23:07:23 +0000 + + BESC + unique values whose(it as trimmed string != "") of lines of files "id_rsa.pub" of folders ".ssh" of home directory folders of users + + diff --git a/Sites/Linux Management/Fixlets/Analyses/Shellshock (2994719).bes b/Sites/Linux Management/Fixlets/Analyses/Shellshock (2994719).bes index 6b5de3d1a..9882fa8dc 100644 --- a/Sites/Linux Management/Fixlets/Analyses/Shellshock (2994719).bes +++ b/Sites/Linux Management/Fixlets/Analyses/Shellshock (2994719).bes @@ -1,25 +1,25 @@ - - - - - Shellshock - This will look for the vulnerable version of bash in RHEL 5/6/7 x64 systems. This is fairly simple to modify if you are testing for a different distro or architecture. - exists file "/etc/redhat-release" - - x-fixlet-modification-time - Mon, 29 Sep 2014 00:41:37 +0000 - - BESC - rpm version record of package "bash" of rpm - ((exists package "bash" whose (rpm version record of it < rpm package version record "4.1.2-15.el6_5.2" AND rpm version record of it > rpm package version record "4.1.0-0.el1_0.0" AND architecture of it = "x86_64") of it AND (not exists package "bash" whose (rpm version record of it >= rpm package version record "4.1.2-15.el6_5.2" AND architecture of it = "x86_64") of it)) OR (exists package "bash" whose (rpm version record of it < rpm package version record "3.2-33.el5_11.4" AND rpm version record of it > rpm package version record "3.2-0.el1_0.0" AND architecture of it = "x86_64") of it AND (not exists package "bash" whose (rpm version record of it >= rpm package version record "3.2-33.el5_11.4" AND architecture of it = "x86_64") of it)) OR (exists package "bash" whose (rpm version record of it < rpm package version record "4.2.45-5.el7_0.4" AND rpm version record of it > rpm package version record "4.2.0-0.el1_0.1" AND architecture of it = "x86_64") of it AND (not exists package "bash" whose (rpm version record of it >= rpm package version record "4.2.45-5.el7_0.4" AND architecture of it = "x86_64") of it))) of rpm - - + + + + + Shellshock + This will look for the vulnerable version of bash in RHEL 5/6/7 x64 systems. This is fairly simple to modify if you are testing for a different distro or architecture. + exists file "/etc/redhat-release" + + x-fixlet-modification-time + Mon, 29 Sep 2014 00:41:37 +0000 + + BESC + rpm version record of package "bash" of rpm + ((exists package "bash" whose (rpm version record of it < rpm package version record "4.1.2-15.el6_5.2" AND rpm version record of it > rpm package version record "4.1.0-0.el1_0.0" AND architecture of it = "x86_64") of it AND (not exists package "bash" whose (rpm version record of it >= rpm package version record "4.1.2-15.el6_5.2" AND architecture of it = "x86_64") of it)) OR (exists package "bash" whose (rpm version record of it < rpm package version record "3.2-33.el5_11.4" AND rpm version record of it > rpm package version record "3.2-0.el1_0.0" AND architecture of it = "x86_64") of it AND (not exists package "bash" whose (rpm version record of it >= rpm package version record "3.2-33.el5_11.4" AND architecture of it = "x86_64") of it)) OR (exists package "bash" whose (rpm version record of it < rpm package version record "4.2.45-5.el7_0.4" AND rpm version record of it > rpm package version record "4.2.0-0.el1_0.1" AND architecture of it = "x86_64") of it AND (not exists package "bash" whose (rpm version record of it >= rpm package version record "4.2.45-5.el7_0.4" AND architecture of it = "x86_64") of it))) of rpm + + diff --git a/Sites/Linux Management/Fixlets/Analyses/Ubuntu Available and Installed Packages (95).bes b/Sites/Linux Management/Fixlets/Analyses/Ubuntu Available and Installed Packages (95).bes index b02100141..2f546d084 100644 --- a/Sites/Linux Management/Fixlets/Analyses/Ubuntu Available and Installed Packages (95).bes +++ b/Sites/Linux Management/Fixlets/Analyses/Ubuntu Available and Installed Packages (95).bes @@ -1,26 +1,26 @@ - - - - - Ubuntu Available and Installed Packages - Using our package inventoring task... this analysis will pull in results making them available via WebReports - name of operating system contains "Ubuntu" - exists file "availableApps.txt" of parent folder of client OR exists file "installedApps.txt" of parent folder of client - - x-fixlet-modification-time - Wed, 01 May 2013 02:48:02 +0000 - - BESC - if exists file "installedApps.txt" of parent folder of client then lines of file "installedApps.txt" of parent folder of client else "<missing file>" - if exists file "availableApps.txt" of parent folder of client then lines of file "availableApps.txt" of parent folder of client else "<missing file>" - - + + + + + Ubuntu Available and Installed Packages + Using our package inventoring task... this analysis will pull in results making them available via WebReports + name of operating system contains "Ubuntu" + exists file "availableApps.txt" of parent folder of client OR exists file "installedApps.txt" of parent folder of client + + x-fixlet-modification-time + Wed, 01 May 2013 02:48:02 +0000 + + BESC + if exists file "installedApps.txt" of parent folder of client then lines of file "installedApps.txt" of parent folder of client else "<missing file>" + if exists file "availableApps.txt" of parent folder of client then lines of file "availableApps.txt" of parent folder of client else "<missing file>" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/AV Antivirus Audit - Security Center - Windows (2996952).bes b/Sites/Windows Management/Fixlets/Analyses/AV Antivirus Audit - Security Center - Windows (2996952).bes index 38ed7f0b5..cd8942572 100644 --- a/Sites/Windows Management/Fixlets/Analyses/AV Antivirus Audit - Security Center - Windows (2996952).bes +++ b/Sites/Windows Management/Fixlets/Analyses/AV Antivirus Audit - Security Center - Windows (2996952).bes @@ -1,27 +1,27 @@ - - - - - AV Antivirus Audit - Security Center - Windows - This analysis should identify all AV products registered with the Windows Security Center APIs.

-

The `ProductState` should be a bit set of some sort that contains info about the state of the AV products detected.

]]>
- windows of operating system - - x-fixlet-modification-time - Wed, 20 Apr 2016 05:20:26 +0000 - - BESC - unique values of string values of selects "displayname from AntiVirusProduct" of (if exists (wmis "root\SecurityCenter2") then (wmis "root\SecurityCenter2") else (wmis "root\SecurityCenter")) - unique values of (string value of property "displayName" of it & ": state=" & string value of property "productState" of it) of select objects "displayName,productState from AntiVirusProduct" of wmis "root\SecurityCenter2" - ( concatenations ", " of following texts of firsts "True, " of (it as string) of (true, (it) ) of properties whose(it as string does not start with "__") of it) of select objects "* from AntiVirusProduct" of (wmis "root\SecurityCenter";wmis "root\SecurityCenter2") -
-
+ + + + + AV Antivirus Audit - Security Center - Windows + This analysis should identify all AV products registered with the Windows Security Center APIs.

+

The `ProductState` should be a bit set of some sort that contains info about the state of the AV products detected.

]]>
+ windows of operating system + + x-fixlet-modification-time + Wed, 20 Apr 2016 05:20:26 +0000 + + BESC + unique values of string values of selects "displayname from AntiVirusProduct" of (if exists (wmis "root\SecurityCenter2") then (wmis "root\SecurityCenter2") else (wmis "root\SecurityCenter")) + unique values of (string value of property "displayName" of it & ": state=" & string value of property "productState" of it) of select objects "displayName,productState from AntiVirusProduct" of wmis "root\SecurityCenter2" + ( concatenations ", " of following texts of firsts "True, " of (it as string) of (true, (it) ) of properties whose(it as string does not start with "__") of it) of select objects "* from AntiVirusProduct" of (wmis "root\SecurityCenter";wmis "root\SecurityCenter2") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server - Windows (2994671).bes b/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server - Windows (2994671).bes index cd1217ae8..6588b9014 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server - Windows (2994671).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server - Windows (2994671).bes @@ -1,34 +1,34 @@ - - - - - Adobe Update Server - Windows - This analysis reports on the information about the configured Adobe Update Server

-

 

-

References:

-

http://helpx.adobe.com/creative-cloud/packager/update-server-setup-tool.html

-

http://helpx.adobe.com/creative-cloud/packager/provisioning-toolkit-enterprise.html

-

http://helpx.adobe.com/creative-cloud/packager/preparing-deploy.html

-

http://helpx.adobe.com/creative-cloud/packager/creative-cloud-packager.html

-

http://www.regexr.com/395i4

-

http://www.regexr.com/395de

-

 

]]>
- windows of operating system - exists lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders - - x-fixlet-modification-time - Wed, 16 Jul 2014 22:12:15 +0000 - - BESC - lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders -
-
+ + + + + Adobe Update Server - Windows + This analysis reports on the information about the configured Adobe Update Server

+

 

+

References:

+

http://helpx.adobe.com/creative-cloud/packager/update-server-setup-tool.html

+

http://helpx.adobe.com/creative-cloud/packager/provisioning-toolkit-enterprise.html

+

http://helpx.adobe.com/creative-cloud/packager/preparing-deploy.html

+

http://helpx.adobe.com/creative-cloud/packager/creative-cloud-packager.html

+

http://www.regexr.com/395i4

+

http://www.regexr.com/395de

+

 

]]>
+ windows of operating system + exists lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders + + x-fixlet-modification-time + Wed, 16 Jul 2014 22:12:15 +0000 + + BESC + lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server Settings - Windows (2994676).bes b/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server Settings - Windows (2994676).bes index 44d360dfa..190588610 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server Settings - Windows (2994676).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Adobe Update Server Settings - Windows (2994676).bes @@ -1,34 +1,34 @@ - - - - - Adobe Update Server Settings - Windows - This analysis reports on the information about the configured Adobe Update Server

-

 

-

References:

-

http://helpx.adobe.com/creative-cloud/packager/update-server-setup-tool.html

-

http://helpx.adobe.com/creative-cloud/packager/provisioning-toolkit-enterprise.html

-

http://helpx.adobe.com/creative-cloud/packager/preparing-deploy.html

-

http://helpx.adobe.com/creative-cloud/packager/creative-cloud-packager.html

-

http://www.regexr.com/395i4

-

http://www.regexr.com/395de

-

 

]]>
- windows of operating system - exists lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders - - x-fixlet-modification-time - Wed, 16 Jul 2014 23:19:44 +0000 - - BESC - lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders -
-
+ + + + + Adobe Update Server Settings - Windows + This analysis reports on the information about the configured Adobe Update Server

+

 

+

References:

+

http://helpx.adobe.com/creative-cloud/packager/update-server-setup-tool.html

+

http://helpx.adobe.com/creative-cloud/packager/provisioning-toolkit-enterprise.html

+

http://helpx.adobe.com/creative-cloud/packager/preparing-deploy.html

+

http://helpx.adobe.com/creative-cloud/packager/creative-cloud-packager.html

+

http://www.regexr.com/395i4

+

http://www.regexr.com/395de

+

 

]]>
+ windows of operating system + exists lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders + + x-fixlet-modification-time + Wed, 16 Jul 2014 23:19:44 +0000 + + BESC + lines of files "AdobeUpdater.Overrides" of folders of (folders "ProgramData\Adobe\AAMUpdater" of it;folders "Documents and Settings\All Users\Application Data\Adobe\AAMUpdater" of it) of root folders of drives of system folders +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/All Users - Files, Shortcuts, RunKey - Windows (2994785).bes b/Sites/Windows Management/Fixlets/Analyses/All Users - Files, Shortcuts, RunKey - Windows (2994785).bes index d2724101d..44b8f4035 100644 --- a/Sites/Windows Management/Fixlets/Analyses/All Users - Files, Shortcuts, RunKey - Windows (2994785).bes +++ b/Sites/Windows Management/Fixlets/Analyses/All Users - Files, Shortcuts, RunKey - Windows (2994785).bes @@ -1,33 +1,33 @@ - - - - - All Users - Files, Shortcuts, RunKey - Windows -  

-

The latest version of this analysis is found here: http://bigfix.me/analysis/details/2994608

-

See the task "Delete start menu shortcuts containing "uninstall"" to delete the shortcuts found in the property "All Users Start Menu "Uninstall" shortcuts" of this analysis. The task is found here: http://bigfix.me/fixlet/details/3657

]]>
- windows of operating system - - x-fixlet-modification-time - Wed, 06 May 2015 16:34:10 +0000 - - BESC - unique values whose(it != "") of (it as string as trimmed string) of values "Common Desktop" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries) - names whose(it as lowercase != "desktop.ini") of files of folders (unique values whose(it != "") of (it as string as trimmed string) of values "Common Desktop" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) - unique values whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries) - (following text of first (unique value whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries) & "\") of it) of pathnames of descendants whose(name of it as lowercase ends with ".lnk") of folders (unique values whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) - (following text of first ((unique value whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) & "\") of it) of pathnames of descendants whose(name of it as lowercase ends with ".lnk" AND name of it as lowercase contains "uninstall") of folders (unique values whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) - unique values of (preceding text of last "%00" of it | it) of (it as string as trimmed string) whose(it != "") of values of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" of (x64 registries; x32 registries) - unique values of (preceding text of last "%00" of it | it) of (it as string as trimmed string) whose(it != "") of values of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" of (x64 registries; x32 registries) - (unique values whose(it != "") of (preceding text of last "%00" of it | it) of (it as string as trimmed string) of values of keys "Software\Microsoft\Windows\CurrentVersion\Run" of keys of keys "HKEY_USERS" of (x64 registries; x32 registries)) -
-
+ + + + + All Users - Files, Shortcuts, RunKey - Windows +  

+

The latest version of this analysis is found here: http://bigfix.me/analysis/details/2994608

+

See the task "Delete start menu shortcuts containing "uninstall"" to delete the shortcuts found in the property "All Users Start Menu "Uninstall" shortcuts" of this analysis. The task is found here: http://bigfix.me/fixlet/details/3657

]]>
+ windows of operating system + + x-fixlet-modification-time + Wed, 06 May 2015 16:34:10 +0000 + + BESC + unique values whose(it != "") of (it as string as trimmed string) of values "Common Desktop" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries) + names whose(it as lowercase != "desktop.ini") of files of folders (unique values whose(it != "") of (it as string as trimmed string) of values "Common Desktop" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) + unique values whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries) + (following text of first (unique value whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries) & "\") of it) of pathnames of descendants whose(name of it as lowercase ends with ".lnk") of folders (unique values whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) + (following text of first ((unique value whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) & "\") of it) of pathnames of descendants whose(name of it as lowercase ends with ".lnk" AND name of it as lowercase contains "uninstall") of folders (unique values whose(it != "") of (it as string as trimmed string) of values "Common Start Menu" of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of (x64 registries; x32 registries)) + unique values of (preceding text of last "%00" of it | it) of (it as string as trimmed string) whose(it != "") of values of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" of (x64 registries; x32 registries) + unique values of (preceding text of last "%00" of it | it) of (it as string as trimmed string) whose(it != "") of values of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" of (x64 registries; x32 registries) + (unique values whose(it != "") of (preceding text of last "%00" of it | it) of (it as string as trimmed string) of values of keys "Software\Microsoft\Windows\CurrentVersion\Run" of keys of keys "HKEY_USERS" of (x64 registries; x32 registries)) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes b/Sites/Windows Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes index 4a80fec3b..7ab92a171 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes +++ b/Sites/Windows Management/Fixlets/Analyses/Apache Commons Text Scan Analysis.bes @@ -1,34 +1,34 @@ - - - - - Apache Commons Text Scan Analysis - This is Community Content. When you use these solutions, it is incumbent on your organization to test any solutions provided across the broadest available system base including various OS, storage solutions, and application inventory. -

-

Please see the Community Solution Testing Statement

-

This Analysis retrieves results of a filesystem scan to attempt detecting Apache Commons Text versions that may be vulnerable to one of the following vulnerabilty CVE-2022-42889 reported in October 2022:

- -

This Analysis attempts to detect the presence and versions of Apache Commons Text java library, without distinction between vulnerable or updated versions.  These results should be considered only a starting point in determining whether a system is actually vulnerable, along with other information such as the version of Java Virtual Machine and specific application or code configurations as referenced in the security bulletins above.

]]>
- if exists property "in proxy agent context" then not in proxy agent context else true - = "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite")))]]> - - x-fixlet-modification-time - Tue, 18 Oct 2022 16:15:23 +0000 - - BESC - (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) - number of (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) - unique values of (unique value of following texts of lasts "-" of preceding texts of lasts ".jar" of (it as lowercase) | "unknown") of lines whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) -
-
+ + + + + Apache Commons Text Scan Analysis + This is Community Content. When you use these solutions, it is incumbent on your organization to test any solutions provided across the broadest available system base including various OS, storage solutions, and application inventory. +

+

Please see the Community Solution Testing Statement

+

This Analysis retrieves results of a filesystem scan to attempt detecting Apache Commons Text versions that may be vulnerable to one of the following vulnerabilty CVE-2022-42889 reported in October 2022:

+ +

This Analysis attempts to detect the presence and versions of Apache Commons Text java library, without distinction between vulnerable or updated versions.  These results should be considered only a starting point in determining whether a system is actually vulnerable, along with other information such as the version of Java Virtual Machine and specific application or code configurations as referenced in the security bulletins above.

]]>
+ if exists property "in proxy agent context" then not in proxy agent context else true + = "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite")))]]> + + x-fixlet-modification-time + Tue, 18 Oct 2022 16:15:23 +0000 + + BESC + (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) + number of (if exists property "locked lines" then locked lines of it else lines of it) whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) + unique values of (unique value of following texts of lasts "-" of preceding texts of lasts ".jar" of (it as lowercase) | "unknown") of lines whose (it does not start with "::") of files "apache-commons-text.txt" of folders "Scans" of folders ((if (version of client >= "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Audit Policy - Windows (2998298).bes b/Sites/Windows Management/Fixlets/Analyses/Audit Policy - Windows (2998298).bes index cf190181b..28fc92005 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Audit Policy - Windows (2998298).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Audit Policy - Windows (2998298).bes @@ -1,46 +1,46 @@ - - - - - Audit Policy - Windows - This Analysis provides information on the current Windows Audit Policy on the system.

-

Policies queried include:

-
    -
  1. Account Lockout
  2. -
  3. Account Password
  4. -
  5. Audit Logging for Accounts
  6. -
  7. Audit Logging for Object Access
  8. -
  9. Audit Logging for Policy Changes
  10. -
  11. Audit Logging for Privilege Use
  12. -
  13. Audit Logging for System Policies
-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - BESC - password history length of security database - minimum password length of security database - minimum password age of security database - maximum password age of security database | error "none" - force logoff interval of security database | "none" - account lockout threshold of security database - account lockout observation window of security database - account lockout duration of security database - (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of account logon category of audit policy - (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of account management category of audit policy - (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of detailed tracking category of audit policy - (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of ds access category of audit policy - (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of logon logoff category of audit policy - (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of object access category of audit policy - (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of policy change category of audit policy - (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of privilege use category of audit policy - (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of system category of audit policy -
-
+ + + + + Audit Policy - Windows + This Analysis provides information on the current Windows Audit Policy on the system.

+

Policies queried include:

+
    +
  1. Account Lockout
  2. +
  3. Account Password
  4. +
  5. Audit Logging for Accounts
  6. +
  7. Audit Logging for Object Access
  8. +
  9. Audit Logging for Policy Changes
  10. +
  11. Audit Logging for Privilege Use
  12. +
  13. Audit Logging for System Policies
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + BESC + password history length of security database + minimum password length of security database + minimum password age of security database + maximum password age of security database | error "none" + force logoff interval of security database | "none" + account lockout threshold of security database + account lockout observation window of security database + account lockout duration of security database + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of account logon category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of account management category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of detailed tracking category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of ds access category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of logon logoff category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of object access category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of policy change category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of privilege use category of audit policy + (name of it, (if (audit failure of it and audit success of it) then ("Success, Failure") else (if (audit failure of it) then ("Failure") else (if (audit success of it) then ("Success") else ("No Auditing")))) of system policy of it) of subcategories of system category of audit policy +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/AutoAdminLogon audit - Windows (2994788).bes b/Sites/Windows Management/Fixlets/Analyses/AutoAdminLogon audit - Windows (2994788).bes index c8a3cec13..ffcda438f 100644 --- a/Sites/Windows Management/Fixlets/Analyses/AutoAdminLogon audit - Windows (2994788).bes +++ b/Sites/Windows Management/Fixlets/Analyses/AutoAdminLogon audit - Windows (2994788).bes @@ -1,28 +1,28 @@ - - - - - AutoAdminLogon audit - Windows - - windows of operating system - = "5.0"]]> - (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" whose(value "AutoAdminLogon" of it as string as trimmed string as integer = 1) of (x64 registries; x32 registries)) - - x-fixlet-modification-time - Wed, 06 May 2015 16:48:28 +0000 - - BESC - (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" whose(value "AutoAdminLogon" of it as string as trimmed string as integer = 1) of (x64 registries; x32 registries)) - unique values whose(it != "") of (it as string as trimmed string) of values "DefaultUserName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" of (x64 registries; x32 registries) - lengths of unique values whose(it != "") of (it as string as trimmed string) of values "DefaultPassword" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" of (x64 registries; x32 registries) - - + + + + + AutoAdminLogon audit - Windows + + windows of operating system + = "5.0"]]> + (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" whose(value "AutoAdminLogon" of it as string as trimmed string as integer = 1) of (x64 registries; x32 registries)) + + x-fixlet-modification-time + Wed, 06 May 2015 16:48:28 +0000 + + BESC + (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" whose(value "AutoAdminLogon" of it as string as trimmed string as integer = 1) of (x64 registries; x32 registries)) + unique values whose(it != "") of (it as string as trimmed string) of values "DefaultUserName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" of (x64 registries; x32 registries) + lengths of unique values whose(it != "") of (it as string as trimmed string) of values "DefaultPassword" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" of (x64 registries; x32 registries) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/BitLockerEncryptionStatus (96).bes b/Sites/Windows Management/Fixlets/Analyses/BitLockerEncryptionStatus (96).bes index 84833623c..19c2a39b3 100644 --- a/Sites/Windows Management/Fixlets/Analyses/BitLockerEncryptionStatus (96).bes +++ b/Sites/Windows Management/Fixlets/Analyses/BitLockerEncryptionStatus (96).bes @@ -1,26 +1,26 @@ - - - - - BitLockerEncryptionStatus - "Microsoft-Windows-BitLocker-Driver"]]> - true - - x-fixlet-modification-time - Thu, 02 May 2013 14:05:58 +0000 - - SCVM - times generated of records whose ((source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase AND event id of it = 24577)) of system event log - times generated of records whose ((source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase AND event id of it = 24579)) of system event log - times generated of records whose ((source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase AND event id of it = 24636)) of system event log - - + + + + + BitLockerEncryptionStatus + "Microsoft-Windows-BitLocker-Driver"]]> + true + + x-fixlet-modification-time + Thu, 02 May 2013 14:05:58 +0000 + + SCVM + times generated of records whose ((source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase AND event id of it = 24577)) of system event log + times generated of records whose ((source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase AND event id of it = 24579)) of system event log + times generated of records whose ((source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase AND event id of it = 24636)) of system event log + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Audit - Windows (2998433).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Audit - Windows (2998433).bes index be4081fae..91e3a0561 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Audit - Windows (2998433).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Audit - Windows (2998433).bes @@ -1,35 +1,35 @@ - - - - - Bitlocker - Audit - Windows - This Analysis provides information on the current Bitlocker status on the system.

-

This analysis does not provide the drive letter alongside each property which means that the first row for each property (where applicable) should correspond to the same volume.

-

This analysis is only applicable on computers that are Bitlocker capable.

-

This analysis uses information provided by the Bitlocker Configuration Probe: Invoke - Bitlocker Configuration Probe - Windows

-

Credit, kudos, and compliments to jgstew for providing the basis for this: https://www.bigfix.me/analysis/details/2994754

-

Credit, kudos, and compliments to geeksikh for providing the encryption started and finished properties: https://bigfix.me/analysis/details/96

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> - BESC - number of select objects ("* from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" - string values of selects ("DriveLetter from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" - tuple string items (integer values of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Protection Off, Protection On, Protection Unknown" - tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "EncryptionMethod") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "N/A, AES 128 With Diffuser, AES 256 With Diffuser, AES 128, AES 256" - tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "ConversionStatus") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Fully Decrypted, Fully Encrypted, Encryption In Progress, Decryption In Progress, Encryption Paused, Decryption Paused" - (selects ("* from win32_EncryptableVolume") whose(name of it = "VolumeType") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") - (preceding text of first "-" of name of it, (it as trimmed string) of following text of first ":" of (concatenations "" of substrings separated by "%00" of it as trimmed string) whose (it contains "Conversion Status") of lines of it) of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client - (preceding text of first "-" of name of it, (it as trimmed string) of following text of first ":" of (concatenations "" of substrings separated by "%00" of it as trimmed string) whose (it contains "Percentage Encrypted") of lines of it) of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client -
-
+ + + + + Bitlocker - Audit - Windows + This Analysis provides information on the current Bitlocker status on the system.

+

This analysis does not provide the drive letter alongside each property which means that the first row for each property (where applicable) should correspond to the same volume.

+

This analysis is only applicable on computers that are Bitlocker capable.

+

This analysis uses information provided by the Bitlocker Configuration Probe: Invoke - Bitlocker Configuration Probe - Windows

+

Credit, kudos, and compliments to jgstew for providing the basis for this: https://www.bigfix.me/analysis/details/2994754

+

Credit, kudos, and compliments to geeksikh for providing the encryption started and finished properties: https://bigfix.me/analysis/details/96

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> + BESC + number of select objects ("* from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + string values of selects ("DriveLetter from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + tuple string items (integer values of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Protection Off, Protection On, Protection Unknown" + tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "EncryptionMethod") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "N/A, AES 128 With Diffuser, AES 256 With Diffuser, AES 128, AES 256" + tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "ConversionStatus") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Fully Decrypted, Fully Encrypted, Encryption In Progress, Decryption In Progress, Encryption Paused, Decryption Paused" + (selects ("* from win32_EncryptableVolume") whose(name of it = "VolumeType") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") + (preceding text of first "-" of name of it, (it as trimmed string) of following text of first ":" of (concatenations "" of substrings separated by "%00" of it as trimmed string) whose (it contains "Conversion Status") of lines of it) of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client + (preceding text of first "-" of name of it, (it as trimmed string) of following text of first ":" of (concatenations "" of substrings separated by "%00" of it as trimmed string) whose (it contains "Percentage Encrypted") of lines of it) of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Compatibility - Windows (2998299).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Compatibility - Windows (2998299).bes index 588164f51..1e86c886c 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Compatibility - Windows (2998299).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Compatibility - Windows (2998299).bes @@ -1,23 +1,23 @@ - - - - - Bitlocker - Compatibility - Windows - Provides information on whether or not the OS is compatible with Bitlocker and whether the WMI node required for Bitlocker exists on the system.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - BESC - (windows of operating system) AND (version of operating system >= "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) - if (exists WMI "root\CIMv2\Security\MicrosoftVolumeEncryption") then true else false -
-
+ + + + + Bitlocker - Compatibility - Windows + Provides information on whether or not the OS is compatible with Bitlocker and whether the WMI node required for Bitlocker exists on the system.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + BESC + (windows of operating system) AND (version of operating system >= "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) + if (exists WMI "root\CIMv2\Security\MicrosoftVolumeEncryption") then true else false +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Key Protectors - Windows (2998300).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Key Protectors - Windows (2998300).bes index de0b7a3e5..a52de7144 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Key Protectors - Windows (2998300).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Key Protectors - Windows (2998300).bes @@ -1,25 +1,25 @@ - - - - - Bitlocker - Key Protectors - Windows - This analysis provides the key protectors protecting each bitlocker encrypted volume.

-

This analysis relies on the information provided by the Fixlet: Invoke - Bitlocker Configuration Probe - Windows

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists files whose (name of it contains "Status") of folder "Bitlocker" of folder "__Global" of data folder of client - BESC - (preceding text of first "-" of name of it , concatenation "" of substrings separated by "%00" of (lines of it as string) contains "TPM") of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client - (preceding text of first "-" of name of it , concatenation "" of substrings separated by "%00" of (lines of it as string) contains "Numerical Password") of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client -
-
+ + + + + Bitlocker - Key Protectors - Windows + This analysis provides the key protectors protecting each bitlocker encrypted volume.

+

This analysis relies on the information provided by the Fixlet: Invoke - Bitlocker Configuration Probe - Windows

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists files whose (name of it contains "Status") of folder "Bitlocker" of folder "__Global" of data folder of client + BESC + (preceding text of first "-" of name of it , concatenation "" of substrings separated by "%00" of (lines of it as string) contains "TPM") of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client + (preceding text of first "-" of name of it , concatenation "" of substrings separated by "%00" of (lines of it as string) contains "Numerical Password") of files whose (Name of it contains "Status") of folder "BitLocker" of folder "__Global" of data folder of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Logs - Windows (2998437).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Logs - Windows (2998437).bes index bfa6af47e..984ab3ebb 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Logs - Windows (2998437).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Logs - Windows (2998437).bes @@ -1,23 +1,23 @@ - - - - - Bitlocker - Logs - Windows - Provides logs from the system event log related to Bitlocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - if (exists WMI "root\CIMv2\Security\MicrosoftVolumeEncryption") then true else false - exists (tuple string items (integer values of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Protection Off, Protection On, Protection Unknown") whose (it = "Protection On") - BESC - (time generated of it, description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) whose (source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase) of system event log -
-
+ + + + + Bitlocker - Logs - Windows + Provides logs from the system event log related to Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + if (exists WMI "root\CIMv2\Security\MicrosoftVolumeEncryption") then true else false + exists (tuple string items (integer values of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Protection Off, Protection On, Protection Unknown") whose (it = "Protection On") + BESC + (time generated of it, description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) whose (source of it as lowercase = "Microsoft-Windows-BitLocker-Driver" as lowercase) of system event log +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Recovery Password - Windows (2998160).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Recovery Password - Windows (2998160).bes index f5c085990..c0e53f198 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Recovery Password - Windows (2998160).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - Recovery Password - Windows (2998160).bes @@ -1,25 +1,25 @@ - - - - - Bitlocker - Recovery Password - Windows - Provides the recovery password for locally encrypted bitlocker drives configured to use a recovery password. This is separate from a pin or password -- a recovery password is a hard-coded value that allows a technician to unlock the drive.

-

This analysis requires Fixlet: Invoke - Bitlocker Recovery Password Probe - Windows to be run on the device before it can retrieve the recovery password.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists (file whose (name of it contains "RecoveryPwd") of folder "BitLocker" of folder "__Global" of data folder of client) or (exists file "Enable.log" of folder "__Global\Bitlocker" of data folder of client) - BESC - (preceding text of first "-" of name of it & ":", following text of first "%ff%fe" of concatenations "" of substrings separated by "%00" of lines of it | line 1 of it) of files whose (Name of it contains "RecoveryPwd.txt") of folder "BitLocker" of folder "__Global" of data folder of client - (preceding text of first "-" of name of it & ":", modification time of it, following text of first "%ff%fe" of concatenations "" of substrings separated by "%00" of lines of it | line 1 of it) of files whose (Name of it contains "-RecoveryPwd-") of folder "BitLocker" of folder "__Global" of data folder of client -
-
+ + + + + Bitlocker - Recovery Password - Windows + Provides the recovery password for locally encrypted bitlocker drives configured to use a recovery password. This is separate from a pin or password -- a recovery password is a hard-coded value that allows a technician to unlock the drive.

+

This analysis requires Fixlet: Invoke - Bitlocker Recovery Password Probe - Windows to be run on the device before it can retrieve the recovery password.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists (file whose (name of it contains "RecoveryPwd") of folder "BitLocker" of folder "__Global" of data folder of client) or (exists file "Enable.log" of folder "__Global\Bitlocker" of data folder of client) + BESC + (preceding text of first "-" of name of it & ":", following text of first "%ff%fe" of concatenations "" of substrings separated by "%00" of lines of it | line 1 of it) of files whose (Name of it contains "RecoveryPwd.txt") of folder "BitLocker" of folder "__Global" of data folder of client + (preceding text of first "-" of name of it & ":", modification time of it, following text of first "%ff%fe" of concatenations "" of substrings separated by "%00" of lines of it | line 1 of it) of files whose (Name of it contains "-RecoveryPwd-") of folder "BitLocker" of folder "__Global" of data folder of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998637).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998637).bes index 5bfbe073c..3555dc969 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998637).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998637).bes @@ -1,28 +1,28 @@ - - - - - Bitlocker - TPM Status - - windows of operating system - - x-fixlet-modification-time - Thu, 19 Mar 2020 12:25:37 +0000 - - BESC - if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsEnabled_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Enabled" ELSE "Disabled") else ERROR "TPM not visible to OS" - if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Activated" ELSE "Not Activated") else ERROR "TPM not visible to OS" - if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Owned" ELSE "Not Owned") else ERROR "TPM not visible to OS" - exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" - tuple string item 0 of string value of selects "SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" - - + + + + + Bitlocker - TPM Status + + windows of operating system + + x-fixlet-modification-time + Thu, 19 Mar 2020 12:25:37 +0000 + + BESC + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsEnabled_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Enabled" ELSE "Disabled") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Activated" ELSE "Not Activated") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Owned" ELSE "Not Owned") else ERROR "TPM not visible to OS" + exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" + tuple string item 0 of string value of selects "SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998646).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998646).bes index a283e25cf..b2953731d 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998646).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker - TPM Status (2998646).bes @@ -1,28 +1,28 @@ - - - - - Bitlocker - TPM Status - - windows of operating system - - x-fixlet-modification-time - Thu, 19 Mar 2020 12:25:37 +0000 - - BESC - if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsEnabled_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Enabled" ELSE "Disabled") else ERROR "TPM not visible to OS" - if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Activated" ELSE "Not Activated") else ERROR "TPM not visible to OS" - if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Owned" ELSE "Not Owned") else ERROR "TPM not visible to OS" - exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" - tuple string item 0 of string value of selects "SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" - - + + + + + Bitlocker - TPM Status + + windows of operating system + + x-fixlet-modification-time + Thu, 19 Mar 2020 12:25:37 +0000 + + BESC + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsEnabled_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Enabled" ELSE "Disabled") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Activated" ELSE "Not Activated") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Owned" ELSE "Not Owned") else ERROR "TPM not visible to OS" + exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" + tuple string item 0 of string value of selects "SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Bitlocker Info - Windows (2994754).bes b/Sites/Windows Management/Fixlets/Analyses/Bitlocker Info - Windows (2994754).bes index 891601dfb..ff8953cfa 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Bitlocker Info - Windows (2994754).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Bitlocker Info - Windows (2994754).bes @@ -1,42 +1,42 @@ - - - - - Bitlocker Info - Windows -  

-

 

-

References:

-

https://en.wikipedia.org/wiki/BitLocker

-

http://msdn.microsoft.com/en-us/library/windows/desktop/aa376483(v=vs.85).aspx

-

http://msdn.microsoft.com/en-us/library/aa376433(v=VS.85).aspx

-

http://www.normanbauer.com/2010/09/28/how-to-get-some-information-on-bitlocker-using-vbscript-and-wmi/

-

 

]]>
- windows of operating system - = "6.0"]]> - - x-fixlet-modification-time - Fri, 12 Dec 2014 15:10:49 +0000 - - BESC - (exists WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") - number of select objects ("* from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" - (windows of operating system) AND (version of operating system >= "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) - selects ("* from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" - number of integer values whose(it = 1) of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" - tuple string items (integer values of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Protection Off, Protection On, Protection Unknown" - tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "EncryptionMethod") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "N/A, AES 128 With Diffuser, AES 256 With Diffuser, AES 128, AES 256" - tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "ConversionStatus") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Fully Decrypted, Fully Encrypted, Encryption In Progress, Decryption In Progress, Encryption Paused, Decryption Paused" - (selects ("* from win32_EncryptableVolume") whose(name of it = "VolumeType") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") - (string values of selects ("* from win32_EncryptableVolume") whose(name of it = "IsVolumeInitializedForProtection") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") - selects ("* from win32_EncryptableVolume") whose( (integer value of it < 0) AND (name of it != "IsVolumeInitializedForProtection") ) of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" -
-
+ + + + + Bitlocker Info - Windows +  

+

 

+

References:

+

https://en.wikipedia.org/wiki/BitLocker

+

http://msdn.microsoft.com/en-us/library/windows/desktop/aa376483(v=vs.85).aspx

+

http://msdn.microsoft.com/en-us/library/aa376433(v=VS.85).aspx

+

http://www.normanbauer.com/2010/09/28/how-to-get-some-information-on-bitlocker-using-vbscript-and-wmi/

+

 

]]>
+ windows of operating system + = "6.0"]]> + + x-fixlet-modification-time + Fri, 12 Dec 2014 15:10:49 +0000 + + BESC + (exists WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") + number of select objects ("* from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + (windows of operating system) AND (version of operating system >= "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) + selects ("* from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + number of integer values whose(it = 1) of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" + tuple string items (integer values of selects ("ProtectionStatus from win32_EncryptableVolume") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Protection Off, Protection On, Protection Unknown" + tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "EncryptionMethod") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "N/A, AES 128 With Diffuser, AES 256 With Diffuser, AES 128, AES 256" + tuple string items (integer values of selects ("* from win32_EncryptableVolume") whose(name of it = "ConversionStatus") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") of "Fully Decrypted, Fully Encrypted, Encryption In Progress, Decryption In Progress, Encryption Paused, Decryption Paused" + (selects ("* from win32_EncryptableVolume") whose(name of it = "VolumeType") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") + (string values of selects ("* from win32_EncryptableVolume") whose(name of it = "IsVolumeInitializedForProtection") of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption") + selects ("* from win32_EncryptableVolume") whose( (integer value of it < 0) AND (name of it != "IsVolumeInitializedForProtection") ) of WMIs "root\CIMv2\Security\MicrosoftVolumeEncryption" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Boot Up Analysis - Windows (2994790).bes b/Sites/Windows Management/Fixlets/Analyses/Boot Up Analysis - Windows (2994790).bes index c19a98dbd..2e7a56910 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Boot Up Analysis - Windows (2994790).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Boot Up Analysis - Windows (2994790).bes @@ -1,30 +1,30 @@ - - - - - Boot Up Analysis - Windows - The idea is to include any properties that effect windows boot up time in one place. Many of these properties are applicable to Windows Vista, but this was only tested on Windows 7 & 8. Please suggest additions to the this analysis, it could use some expansion.

-

http://www.msfn.org/board/topic/152622-hotfixes-for-faster-windows-7-bootstartup/

-

http://www.msfn.org/board/topic/140262-how-to-speed-up-boot-process-under-windows-vista-or-windows-7/

-

For best performance, "Size of RdyBoostBootPlan" should be less than 524288.

]]>
- windows of operating system - (it = "Win8" OR it = "Win7" OR it = "WinVista") of name of operating system - - x-fixlet-modification-time - Wed, 06 May 2015 17:54:07 +0000 - - BESC - unique values of sizes of values "BootPlan" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\rdyboost\Parameters" of (x64 registries; x32 registries) - values "EnablePrefetcher" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" of (x64 registries; x32 registries) - values "EnableSuperfetch" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" of (x64 registries; x32 registries) -
-
+ + + + + Boot Up Analysis - Windows + The idea is to include any properties that effect windows boot up time in one place. Many of these properties are applicable to Windows Vista, but this was only tested on Windows 7 & 8. Please suggest additions to the this analysis, it could use some expansion.

+

http://www.msfn.org/board/topic/152622-hotfixes-for-faster-windows-7-bootstartup/

+

http://www.msfn.org/board/topic/140262-how-to-speed-up-boot-process-under-windows-vista-or-windows-7/

+

For best performance, "Size of RdyBoostBootPlan" should be less than 524288.

]]>
+ windows of operating system + (it = "Win8" OR it = "Win7" OR it = "WinVista") of name of operating system + + x-fixlet-modification-time + Wed, 06 May 2015 17:54:07 +0000 + + BESC + unique values of sizes of values "BootPlan" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\rdyboost\Parameters" of (x64 registries; x32 registries) + values "EnablePrefetcher" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" of (x64 registries; x32 registries) + values "EnableSuperfetch" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" of (x64 registries; x32 registries) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Certificate Audit - Windows (2994825).bes b/Sites/Windows Management/Fixlets/Analyses/Certificate Audit - Windows (2994825).bes index e47fd2e23..8a8c96d9c 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Certificate Audit - Windows (2994825).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Certificate Audit - Windows (2994825).bes @@ -1,27 +1,27 @@ - - - - - Certificate Audit - Windows - - windows of operating system - exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) - - x-fixlet-modification-time - Thu, 26 Nov 2015 04:14:23 +0000 - - BESC - ( concatenations " ; " of (preceding text of first "%82%01" of it | it) whose(it != "" AND it does not contain "%00%00%00%01%00%00%00") of (preceding text of first "%82%0f" of it | it) of (preceding text of first "0%82" of it | it) of (preceding text of first "0%81" of it | it) of (preceding text of first "0%1e%17" of it | it) of (preceding text of last "1" of it | it) of (following text of (start of first (first matches (regex "[\u1300-\u13ff]") of it) of it) | it) whose(exists (first matches (regex "[\u1300-\u13ff]") of it)) of (preceding text of first "%06%03" of it | it) of substrings separated by "U%04" of it) of it whose(it contains "U%04") of (hexadecimal string it) of ( unique values of (it as string) of values "blob" of keys of keys "Certificates" of keys whose(name of it as uppercase contains "CA" OR name of it as uppercase contains "ROOT") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) ) - exists (hexadecimal string it) whose(it contains "eDellRoot") of ( unique values of (it as string) of values "blob" of keys of keys "Certificates" of keys whose(name of it as uppercase contains "CA" OR name of it as uppercase contains "ROOT") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) ) - exists (hexadecimal string it) whose(it contains "DSDTestProvider") of ( unique values of (it as string) of values "blob" of keys of keys "Certificates" of keys whose(name of it as uppercase contains "CA" OR name of it as uppercase contains "ROOT") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) ) - - + + + + + Certificate Audit - Windows + + windows of operating system + exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) + + x-fixlet-modification-time + Thu, 26 Nov 2015 04:14:23 +0000 + + BESC + ( concatenations " ; " of (preceding text of first "%82%01" of it | it) whose(it != "" AND it does not contain "%00%00%00%01%00%00%00") of (preceding text of first "%82%0f" of it | it) of (preceding text of first "0%82" of it | it) of (preceding text of first "0%81" of it | it) of (preceding text of first "0%1e%17" of it | it) of (preceding text of last "1" of it | it) of (following text of (start of first (first matches (regex "[\u1300-\u13ff]") of it) of it) | it) whose(exists (first matches (regex "[\u1300-\u13ff]") of it)) of (preceding text of first "%06%03" of it | it) of substrings separated by "U%04" of it) of it whose(it contains "U%04") of (hexadecimal string it) of ( unique values of (it as string) of values "blob" of keys of keys "Certificates" of keys whose(name of it as uppercase contains "CA" OR name of it as uppercase contains "ROOT") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) ) + exists (hexadecimal string it) whose(it contains "eDellRoot") of ( unique values of (it as string) of values "blob" of keys of keys "Certificates" of keys whose(name of it as uppercase contains "CA" OR name of it as uppercase contains "ROOT") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) ) + exists (hexadecimal string it) whose(it contains "DSDTestProvider") of ( unique values of (it as string) of values "blob" of keys of keys "Certificates" of keys whose(name of it as uppercase contains "CA" OR name of it as uppercase contains "ROOT") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates" of (x64 registries; x32 registries) ) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Certificates - Windows (2998390).bes b/Sites/Windows Management/Fixlets/Analyses/Certificates - Windows (2998390).bes index 98e489f87..1f72a73ad 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Certificates - Windows (2998390).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Certificates - Windows (2998390).bes @@ -1,36 +1,36 @@ - - - - - Certificates - Windows - This analysis provides information on the current state of the Windows Certificate Store.

-

This analysis relies on Fixlet: Invoke - Certificate Store Probe - Windows in the C3-Inventory site

-

Information on using this content is available here: https://github.com/strawgate/C3-Inventory/wiki/Certificate-Store

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists value "Last Updated Date" of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store" of native registry - BESC - values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\AuthRoot" of native registry - values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\CA" of native registry - values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\Root" of native registry - values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\TrustedPublisher" of native registry - values "subject" of keys whose (value "Private Key" of it as string as boolean = true) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\Root" of native registry - values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\Remote Desktop" of native registry - values "subject" of keys whose (value "Usage" of it as string contains "Code Signing") of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine" of native registry - (values "subject" of it, value "Not Before" of it, value "Not After" of it) of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry - (value "Last Updated Date" of it as string as date & (value "Last Updated Time" of it as string as time_of_day & local time zone)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store" of native registry - (values "subject" of it, value "Not After" of it) of keys whose ((it > 0 * day and it < 30 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry - (values "subject" of it, value "Not After" of it) of keys whose ((it > 0 * day and it < 7 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry - (values "subject" of it, value "Not After" of it) of keys whose ((it > 0 * day and it < 1 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry - (values "subject" of it, value "Not After" of it) of keys whose ((it < 0 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry -
-
+ + + + + Certificates - Windows + This analysis provides information on the current state of the Windows Certificate Store.

+

This analysis relies on Fixlet: Invoke - Certificate Store Probe - Windows in the C3-Inventory site

+

Information on using this content is available here: https://github.com/strawgate/C3-Inventory/wiki/Certificate-Store

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists value "Last Updated Date" of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store" of native registry + BESC + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\AuthRoot" of native registry + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\CA" of native registry + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\Root" of native registry + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\TrustedPublisher" of native registry + values "subject" of keys whose (value "Private Key" of it as string as boolean = true) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\Root" of native registry + values "subject" of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\Remote Desktop" of native registry + values "subject" of keys whose (value "Usage" of it as string contains "Code Signing") of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine" of native registry + (values "subject" of it, value "Not Before" of it, value "Not After" of it) of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry + (value "Last Updated Date" of it as string as date & (value "Last Updated Time" of it as string as time_of_day & local time zone)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store" of native registry + (values "subject" of it, value "Not After" of it) of keys whose ((it > 0 * day and it < 30 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry + (values "subject" of it, value "Not After" of it) of keys whose ((it > 0 * day and it < 7 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry + (values "subject" of it, value "Not After" of it) of keys whose ((it > 0 * day and it < 1 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry + (values "subject" of it, value "Not After" of it) of keys whose ((it < 0 * day) of (value "Not After Date" of it as string as date & (value "Not After Time" of it as string as time_of_day & local time zone) - now)) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Certificate Store\LocalMachine\My" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/ChkDsk Audit - Windows (2994739).bes b/Sites/Windows Management/Fixlets/Analyses/ChkDsk Audit - Windows (2994739).bes index ca1c0c734..da121dec4 100644 --- a/Sites/Windows Management/Fixlets/Analyses/ChkDsk Audit - Windows (2994739).bes +++ b/Sites/Windows Management/Fixlets/Analyses/ChkDsk Audit - Windows (2994739).bes @@ -1,40 +1,40 @@ - - - - - ChkDsk Audit - Windows -  

-

References:

-

http://ask-leo.com/how_do_i_see_the_results_of_a_chkdsk_that_ran_on_boot.html

-

http://www.sevenforums.com/tutorials/96938-check-disk-chkdsk-read-event-viewer-log.html

-

http://kmwoley.com/blog/?p=441

-

http://superuser.com/questions/214209/where-are-the-results-of-chkdsk-located-in-windows-7

-

http://ericphelps.com/uncheck/index.htm

-

https://www.raymond.cc/blog/how-to-recover-chk-files-created-by-chkdsk-and-scandisk/

-

 

-

 

]]>
- windows of operating system - ( exists files of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") ) OR ( exists files of folders whose(name of it as lowercase starts with "found.") of root folders of drives whose(type of it = "DRIVE_FIXED") ) OR ( exists records whose (source of it as lowercase contains "chkdsk") of (application event log) ) OR ( exists records whose(source of it as lowercase ends with "wininit" AND description of it as lowercase contains "chkdsk") of (application event log) ) - - x-fixlet-modification-time - Tue, 14 Oct 2014 20:47:36 +0000 - - BESC - number of records whose (source of it as lowercase contains "chkdsk") of application event log - number of records whose(source of it as lowercase ends with "wininit" AND description of it as lowercase contains "chkdsk") of application event log - pathnames of files whose((name of it as lowercase ends with ".log") AND (name of it as lowercase starts with "chkdsk")) of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") - number of files whose((name of it as lowercase ends with ".log") AND (name of it as lowercase starts with "chkdsk")) of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") - sum of ( ( number of files whose((name of it as lowercase ends with ".log") AND (name of it as lowercase starts with "chkdsk")) of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") );( number of records whose (source of it as lowercase contains "chkdsk") of application event log );( number of records whose(source of it as lowercase ends with "wininit" AND description of it as lowercase contains "chkdsk") of application event log ) ) - pathnames of files of folders whose(name of it as lowercase starts with "found.") of root folders of drives whose(type of it = "DRIVE_FIXED") - number of files whose(name of it as lowercase starts with "file" AND name of it as lowercase ends with ".chk") of folders whose(name of it as lowercase starts with "found.") of root folders of drives whose(type of it = "DRIVE_FIXED") -
-
+ + + + + ChkDsk Audit - Windows +  

+

References:

+

http://ask-leo.com/how_do_i_see_the_results_of_a_chkdsk_that_ran_on_boot.html

+

http://www.sevenforums.com/tutorials/96938-check-disk-chkdsk-read-event-viewer-log.html

+

http://kmwoley.com/blog/?p=441

+

http://superuser.com/questions/214209/where-are-the-results-of-chkdsk-located-in-windows-7

+

http://ericphelps.com/uncheck/index.htm

+

https://www.raymond.cc/blog/how-to-recover-chk-files-created-by-chkdsk-and-scandisk/

+

 

+

 

]]>
+ windows of operating system + ( exists files of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") ) OR ( exists files of folders whose(name of it as lowercase starts with "found.") of root folders of drives whose(type of it = "DRIVE_FIXED") ) OR ( exists records whose (source of it as lowercase contains "chkdsk") of (application event log) ) OR ( exists records whose(source of it as lowercase ends with "wininit" AND description of it as lowercase contains "chkdsk") of (application event log) ) + + x-fixlet-modification-time + Tue, 14 Oct 2014 20:47:36 +0000 + + BESC + number of records whose (source of it as lowercase contains "chkdsk") of application event log + number of records whose(source of it as lowercase ends with "wininit" AND description of it as lowercase contains "chkdsk") of application event log + pathnames of files whose((name of it as lowercase ends with ".log") AND (name of it as lowercase starts with "chkdsk")) of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") + number of files whose((name of it as lowercase ends with ".log") AND (name of it as lowercase starts with "chkdsk")) of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") + sum of ( ( number of files whose((name of it as lowercase ends with ".log") AND (name of it as lowercase starts with "chkdsk")) of folders "System Volume Information\Chkdsk" of root folders of drives whose(type of it = "DRIVE_FIXED") );( number of records whose (source of it as lowercase contains "chkdsk") of application event log );( number of records whose(source of it as lowercase ends with "wininit" AND description of it as lowercase contains "chkdsk") of application event log ) ) + pathnames of files of folders whose(name of it as lowercase starts with "found.") of root folders of drives whose(type of it = "DRIVE_FIXED") + number of files whose(name of it as lowercase starts with "file" AND name of it as lowercase ends with ".chk") of folders whose(name of it as lowercase starts with "found.") of root folders of drives whose(type of it = "DRIVE_FIXED") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Chocolatey Audit - Windows (2994810).bes b/Sites/Windows Management/Fixlets/Analyses/Chocolatey Audit - Windows (2994810).bes index d647cbcd0..b391182be 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Chocolatey Audit - Windows (2994810).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Chocolatey Audit - Windows (2994810).bes @@ -1,36 +1,36 @@ - - - - - Chocolatey Audit - Windows -  

-

https://chocolatey.org/

-

 

-

 

]]>
- windows of operating system - "5.1"]]> - (exists folders "C:\Chocolatey") OR ( exists values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) OR ( exists (substrings separated by ";" of it) whose(it as lowercase contains "\chocolatey\") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) - - x-fixlet-modification-time - Sun, 07 Jun 2015 15:43:46 +0000 - - BESC - unique values of versions of files "choco.exe" of ( parent folders of folders ( unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ; folders ( unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) - unique values of pathnames of ( parent folders of folders ( unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ; folders ( unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) - (item 1 of /* -> This "it" refers to the last 100 lines of the file -> */ it) whose( /* -> remove empty lines, which is why this relevance can return less than 100 lines per file -> */ it as trimmed string != "") of ( /* -> this is the number of lines of the file from the previous statement -> */ item 1 of it, (lines of /* -> the file object -> */ item 0 of it) ) /* -> This whose statement is responsible for filtering for only the last 100 lines of the file -> */ whose ( (line number of /* -> lines of the file -> */ item 1 of it) > ( /* -> number of lines of the file -> */ item 0 of it - 100 /* <- This is the number of lines to return, which is subtracted from the total # of lines <- */ ) ) of ( /* -> the parent file object itself -> */ it, number of lines of it) of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) - (it as trimmed string) of unique values of ( (preceding text of first "has been installed successfully." of it | preceding text of first "was successful." of it) of (following text of first "The install of" of it | following text of first " - " of it) ) of lines whose(it contains "has been installed successfully." OR it contains "was successful.") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) - sums of (it as trimmed string as integer) of ( (preceding text of first "packages installed." of it | preceding text of first "/" of it) of (following text of first "Chocolatey installed" of it | following text of first " - " of it) ) of lines whose(it contains "Chocolatey installed" OR it contains "packages installed.") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) - sums of (it as trimmed string as integer) of (preceding text of first "package(s) failed." of following text of first "package(s)." of it) of lines whose(it contains "Chocolatey installed" AND it contains "package(s) failed." AND it contains "package(s).") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) - sums of (it as trimmed string as integer) of (preceding text of first "package(s) had warnings." of it) of lines whose(it contains "package(s) had warnings.") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) - pathnames of folders of folders "chocolatey" of (folders "Temp" of windows folders ; folders "AppData\Local\Temp" of folders of folders "C:\Users") -
-
+ + + + + Chocolatey Audit - Windows +  

+

https://chocolatey.org/

+

 

+

 

]]>
+ windows of operating system + "5.1"]]> + (exists folders "C:\Chocolatey") OR ( exists values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) OR ( exists (substrings separated by ";" of it) whose(it as lowercase contains "\chocolatey\") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) + + x-fixlet-modification-time + Sun, 07 Jun 2015 15:43:46 +0000 + + BESC + unique values of versions of files "choco.exe" of ( parent folders of folders ( unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ; folders ( unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + unique values of pathnames of ( parent folders of folders ( unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ; folders ( unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + (item 1 of /* -> This "it" refers to the last 100 lines of the file -> */ it) whose( /* -> remove empty lines, which is why this relevance can return less than 100 lines per file -> */ it as trimmed string != "") of ( /* -> this is the number of lines of the file from the previous statement -> */ item 1 of it, (lines of /* -> the file object -> */ item 0 of it) ) /* -> This whose statement is responsible for filtering for only the last 100 lines of the file -> */ whose ( (line number of /* -> lines of the file -> */ item 1 of it) > ( /* -> number of lines of the file -> */ item 0 of it - 100 /* <- This is the number of lines to return, which is subtracted from the total # of lines <- */ ) ) of ( /* -> the parent file object itself -> */ it, number of lines of it) of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + (it as trimmed string) of unique values of ( (preceding text of first "has been installed successfully." of it | preceding text of first "was successful." of it) of (following text of first "The install of" of it | following text of first " - " of it) ) of lines whose(it contains "has been installed successfully." OR it contains "was successful.") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + sums of (it as trimmed string as integer) of ( (preceding text of first "packages installed." of it | preceding text of first "/" of it) of (following text of first "Chocolatey installed" of it | following text of first " - " of it) ) of lines whose(it contains "Chocolatey installed" OR it contains "packages installed.") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + sums of (it as trimmed string as integer) of (preceding text of first "package(s) failed." of following text of first "package(s)." of it) of lines whose(it contains "Chocolatey installed" AND it contains "package(s) failed." AND it contains "package(s).") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + sums of (it as trimmed string as integer) of (preceding text of first "package(s) had warnings." of it) of lines whose(it contains "package(s) had warnings.") of files "chocolatey.log" of folders "logs" of (folder it) of unique values of pathnames of ( ( (folder it) of unique values of (it as string as trimmed string) of values "ChocolateyInstall" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) );( parent folders of (folder it) of unique values of (substrings separated by ";" of it) whose(it as lowercase contains "choco") of unique values of (it as string as trimmed string) of values "Path" of keys "Control\Session Manager\Environment" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of (x64 registries;x32 registries) ) ) + pathnames of folders of folders "chocolatey" of (folders "Temp" of windows folders ; folders "AppData\Local\Temp" of folders of folders "C:\Users") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Client Clock Audit - Kerberos (2994647).bes b/Sites/Windows Management/Fixlets/Analyses/Client Clock Audit - Kerberos (2994647).bes index 5723fada0..7c23b31d7 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Client Clock Audit - Kerberos (2994647).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Client Clock Audit - Kerberos (2994647).bes @@ -1,32 +1,32 @@ - - - - - Client Clock Audit - Kerberos - The amount of clock skew matters for Keberos Authentication. By default requests off by more than 5 minutes are rejected.

-

 

-

References:

-

http://technet.microsoft.com/en-us/library/cc779260(v=ws.10).aspx

-

http://support.bigfix.com/inspectors/World%20Objects_Any.html

-

http://blogs.msdn.com/b/asiatech/archive/2009/04/27/kerberos-authentication-failed-due-to-time-skew.aspx

-

http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/Clock-Skew.html

-

 

]]>
- true - - x-fixlet-modification-time - Wed, 14 May 2014 18:39:45 +0000 - - BESC - (absolute value of (apparent registration server time - now)) - (absolute value of (apparent registration server time - now)) < (4 * minute) -
-
+ + + + + Client Clock Audit - Kerberos + The amount of clock skew matters for Keberos Authentication. By default requests off by more than 5 minutes are rejected.

+

 

+

References:

+

http://technet.microsoft.com/en-us/library/cc779260(v=ws.10).aspx

+

http://support.bigfix.com/inspectors/World%20Objects_Any.html

+

http://blogs.msdn.com/b/asiatech/archive/2009/04/27/kerberos-authentication-failed-due-to-time-skew.aspx

+

http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/Clock-Skew.html

+

 

]]>
+ true + + x-fixlet-modification-time + Wed, 14 May 2014 18:39:45 +0000 + + BESC + (absolute value of (apparent registration server time - now)) + (absolute value of (apparent registration server time - now)) < (4 * minute) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Configuration_ Microsoft Product Keys - Windows (2994759).bes b/Sites/Windows Management/Fixlets/Analyses/Configuration_ Microsoft Product Keys - Windows (2994759).bes index d56ff007e..577de6aa3 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Configuration_ Microsoft Product Keys - Windows (2994759).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Configuration_ Microsoft Product Keys - Windows (2994759).bes @@ -1,28 +1,28 @@ - - - - - Configuration: Microsoft Product Keys - Windows - This analysis requires this task to be run to have results: http://bigfix.me/fixlet/details/3941 - - = "5.1"]]> - /* Windows Only */ windows of operating system - exists file "config_prodkey.xml" of folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client - - x-fixlet-modification-time - Fri, 09 Jan 2015 20:32:15 +0000 - - BESC - node values of xpaths "/product_key_list/item/product_name/text()" of xml documents of file "config_prodkey.xml" of folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client - (node value of xpath "product_name/text()" of it & " -- " & node value of xpath "product_key/text()" of it) of xpaths "/product_key_list/item" whose( "Internet Explorer" != node value of xpath "product_name/text()" of it ) of xml documents of file "config_prodkey.xml" of folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client - - + + + + + Configuration: Microsoft Product Keys - Windows + This analysis requires this task to be run to have results: http://bigfix.me/fixlet/details/3941 + + = "5.1"]]> + /* Windows Only */ windows of operating system + exists file "config_prodkey.xml" of folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client + + x-fixlet-modification-time + Fri, 09 Jan 2015 20:32:15 +0000 + + BESC + node values of xpaths "/product_key_list/item/product_name/text()" of xml documents of file "config_prodkey.xml" of folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client + (node value of xpath "product_name/text()" of it & " -- " & node value of xpath "product_key/text()" of it) of xpaths "/product_key_list/item" whose( "Internet Explorer" != node value of xpath "product_name/text()" of it ) of xml documents of file "config_prodkey.xml" of folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Credentials - Cached Login Creds - Windows (2998301).bes b/Sites/Windows Management/Fixlets/Analyses/Credentials - Cached Login Creds - Windows (2998301).bes index ddcf04c58..ca0ba25a2 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Credentials - Cached Login Creds - Windows (2998301).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Credentials - Cached Login Creds - Windows (2998301).bes @@ -1,25 +1,25 @@ - - - - - Credentials - Cached Login Creds - Windows - This analysis grabs information on the current cached logon credentials on a Windows system.

-

This analysis scraps information put in place by Fixlet: Invoke - Windows Cached Credentials Probe - Windows

-

Information provided by this fixlet is useful in determining which user accounts need password resets if a machine is compromised.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Windows-Credentials

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists file "CachedUsers.txt" of folder "WinCreds" of folder "__Global" of data folder of client - BESC - (concatenations "" of substrings separated by "%00" of (following text of first "%ff%fe" of it | it)) of lines whose (it !="%00") of file "CachedUsers.txt" of folder "WinCreds" of folder "__Global" of folder "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\" -
-
+ + + + + Credentials - Cached Login Creds - Windows + This analysis grabs information on the current cached logon credentials on a Windows system.

+

This analysis scraps information put in place by Fixlet: Invoke - Windows Cached Credentials Probe - Windows

+

Information provided by this fixlet is useful in determining which user accounts need password resets if a machine is compromised.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Windows-Credentials

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "CachedUsers.txt" of folder "WinCreds" of folder "__Global" of data folder of client + BESC + (concatenations "" of substrings separated by "%00" of (following text of first "%ff%fe" of it | it)) of lines whose (it !="%00") of file "CachedUsers.txt" of folder "WinCreds" of folder "__Global" of folder "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2995862).bes b/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2995862).bes index ce15e9502..4d14384bd 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2995862).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2995862).bes @@ -1,25 +1,25 @@ - - - - - Current Memory Configuration - Returns the current configuration of Physical Memory installed. - windows of operating system - exists wmi - - x-fixlet-modification-time - Mon, 14 Mar 2016 14:31:57 +0000 - - BESC - ((((string value of it as integer)/(1024*1024)) as string) & " MB") of (selects "Capacity from Win32_PhysicalMemory where MemoryType!='11'" of wmi) - - + + + + + Current Memory Configuration + Returns the current configuration of Physical Memory installed. + windows of operating system + exists wmi + + x-fixlet-modification-time + Mon, 14 Mar 2016 14:31:57 +0000 + + BESC + ((((string value of it as integer)/(1024*1024)) as string) & " MB") of (selects "Capacity from Win32_PhysicalMemory where MemoryType!='11'" of wmi) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2998506).bes b/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2998506).bes index 3bda08755..5ba390f9e 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2998506).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Current Memory Configuration (2998506).bes @@ -1,26 +1,26 @@ - - - - - Current Memory Configuration - Returns the current configuration of Physical Memory installed. - windows of operating system - exists wmi - - x-fixlet-modification-time - Fri, 25 Mar 2016 18:14:04 +0000 - - BESC - ((((string value of it as integer)/(1024*1024)) as string) & " MB") of (selects "Capacity from Win32_PhysicalMemory where MemoryType!='11'" of wmi) - ((((string value of Property "Capacity" of it as integer)/(1024*1024*1024)) as string) & " GB | " & (string value of property "Speed" of it)& " MHz") of select objects "* from Win32_PhysicalMemory where MemoryType!='11'" of wmi - - + + + + + Current Memory Configuration + Returns the current configuration of Physical Memory installed. + windows of operating system + exists wmi + + x-fixlet-modification-time + Fri, 25 Mar 2016 18:14:04 +0000 + + BESC + ((((string value of it as integer)/(1024*1024)) as string) & " MB") of (selects "Capacity from Win32_PhysicalMemory where MemoryType!='11'" of wmi) + ((((string value of Property "Capacity" of it as integer)/(1024*1024*1024)) as string) & " GB | " & (string value of property "Speed" of it)& " MHz") of select objects "* from Win32_PhysicalMemory where MemoryType!='11'" of wmi + + diff --git a/Sites/Windows Management/Fixlets/Analyses/DNS Cache - Windows (2995861).bes b/Sites/Windows Management/Fixlets/Analyses/DNS Cache - Windows (2995861).bes index 8fb151ef2..deeee282c 100644 --- a/Sites/Windows Management/Fixlets/Analyses/DNS Cache - Windows (2995861).bes +++ b/Sites/Windows Management/Fixlets/Analyses/DNS Cache - Windows (2995861).bes @@ -1,26 +1,26 @@ - - - - - DNS Cache - Windows - - windows of operating system - exists files "results_dns_cache.txt" of folders "__Global\Logs" of data folders of client - - x-fixlet-modification-time - Sat, 12 Mar 2016 21:24:46 +0000 - - BESC - unique values of (following text of last ": " of it & " ;; " & following text of last ": " of unique value of previous lines of previous lines of previous lines of previous lines of previous lines of it) of lines whose(it contains "A (Host) Record" OR it contains " ;; ") of files "results_dns_cache.txt" of folders "__Global\Logs" of data folders of client - unique values of (it as trimmed string) of lines whose(it contains " ;; ") of files "results_dns_cache_history.txt" of folders "__Global\Logs" of data folders of client - - + + + + + DNS Cache - Windows + + windows of operating system + exists files "results_dns_cache.txt" of folders "__Global\Logs" of data folders of client + + x-fixlet-modification-time + Sat, 12 Mar 2016 21:24:46 +0000 + + BESC + unique values of (following text of last ": " of it & " ;; " & following text of last ": " of unique value of previous lines of previous lines of previous lines of previous lines of previous lines of it) of lines whose(it contains "A (Host) Record" OR it contains " ;; ") of files "results_dns_cache.txt" of folders "__Global\Logs" of data folders of client + unique values of (it as trimmed string) of lines whose(it contains " ;; ") of files "results_dns_cache_history.txt" of folders "__Global\Logs" of data folders of client + + diff --git a/Sites/Windows Management/Fixlets/Analyses/DeviceQuery Results - Windows (2994799).bes b/Sites/Windows Management/Fixlets/Analyses/DeviceQuery Results - Windows (2994799).bes index a49a3f934..92e184a9f 100644 --- a/Sites/Windows Management/Fixlets/Analyses/DeviceQuery Results - Windows (2994799).bes +++ b/Sites/Windows Management/Fixlets/Analyses/DeviceQuery Results - Windows (2994799).bes @@ -1,31 +1,31 @@ - - - - - DeviceQuery Results - Windows -  

-

http://bigfix.me/fixlet/details/6060

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - exists files whose(name of it as lowercase starts with "info_driverquery_" AND name of it as lowercase ends with ".csv") of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) - - x-fixlet-modification-time - Tue, 12 May 2015 20:57:15 +0000 - - BESC - unique values of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_signed.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) - unique values of ((if item 0 of it contains item 1 of it then item 0 of it else item 2 of it) of (tuple string item 0 of it, tuple string item 3 of it, tuple string item 3 of it &" "& tuple string item 0 of it) of concatenations "" of substrings separated by "%22" of concatenations ", " of substrings separated by "," of it) of (it as trimmed string) of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_signed.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) - unique values of (it whose(tuple string item 6 of it != "OK" AND tuple string item 6 of it != "Status") of concatenations "" of substrings separated by "%22" of concatenations "%22, %22" of (if it does not contain "," then it else ( concatenations "" of substrings separated by "," of it )) of (it as trimmed string) of substrings separated by "%22,%22" of it) of (it as trimmed string) of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_verbose.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) - unique values of ( (tuple string item 1 of it; tuple string item 2 of it) of concatenations "" of substrings separated by "%22" of concatenations "%22, %22" of (if it does not contain "," then it else ( concatenations "" of substrings separated by "," of it )) of (it as trimmed string) of substrings separated by "%22,%22" of it) of (it as trimmed string) of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_verbose.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) -
-
+ + + + + DeviceQuery Results - Windows +  

+

http://bigfix.me/fixlet/details/6060

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + exists files whose(name of it as lowercase starts with "info_driverquery_" AND name of it as lowercase ends with ".csv") of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + + x-fixlet-modification-time + Tue, 12 May 2015 20:57:15 +0000 + + BESC + unique values of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_signed.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + unique values of ((if item 0 of it contains item 1 of it then item 0 of it else item 2 of it) of (tuple string item 0 of it, tuple string item 3 of it, tuple string item 3 of it &" "& tuple string item 0 of it) of concatenations "" of substrings separated by "%22" of concatenations ", " of substrings separated by "," of it) of (it as trimmed string) of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_signed.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + unique values of (it whose(tuple string item 6 of it != "OK" AND tuple string item 6 of it != "Status") of concatenations "" of substrings separated by "%22" of concatenations "%22, %22" of (if it does not contain "," then it else ( concatenations "" of substrings separated by "," of it )) of (it as trimmed string) of substrings separated by "%22,%22" of it) of (it as trimmed string) of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_verbose.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + unique values of ( (tuple string item 1 of it; tuple string item 2 of it) of concatenations "" of substrings separated by "%22" of concatenations "%22, %22" of (if it does not contain "," then it else ( concatenations "" of substrings separated by "," of it )) of (it as trimmed string) of substrings separated by "%22,%22" of it) of (it as trimmed string) of lines whose(exists (it as trimmed string) whose(it does not end with ",%22Manufacturer%22" AND it does not contain ",%22Microsoft" AND it does not contain ",%22(Standard " AND it does not end with ",%22N/A%22")) of files "info_driverquery_verbose.csv" of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Devices (50).bes b/Sites/Windows Management/Fixlets/Analyses/Devices (50).bes index 2df43a534..72056a3ef 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Devices (50).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Devices (50).bes @@ -1,27 +1,27 @@ - - - - - Devices - - windows of operating system - - x-fixlet-modification-time - Thu, 29 Nov 2012 16:33:35 +0000 - - BESC - (if exists ( position 1000 of it ) then ( preceding text of position 1000 of it ) else it) of concatenation ", " of unique values of friendly names whose (it as string does not contain "ATA Channel" AND it as string does not contain " (LPT" AND it as string does not contain " (COM" AND it as string does not contain "Pseudo-Interface" AND it as string does not contain "Microsoft ISATAP" AND it as string does not contain "VirtualBox" AND (it as string does not contain "Miniport" OR it as string contains "Intel")) of active devices - if exists (friendly names whose (it contains "Bluetooth") of active devices) then (concatenation ", " of unique values of friendly names whose (it contains "Bluetooth") of active devices) else "No Bluetooth installed" - concatenation ", " of unique values of ((if (exists property "Name" of it) then property "Name" of it as string else "<none>") & " - " & property "DeviceID" of it as string) of select objects "Name,DeviceID FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0" of wmi - concatenation ", " of unique values of (selects "Name, DriverVersion, AdapterRam from Win32_VideoController" of wmi as string) - - + + + + + Devices + + windows of operating system + + x-fixlet-modification-time + Thu, 29 Nov 2012 16:33:35 +0000 + + BESC + (if exists ( position 1000 of it ) then ( preceding text of position 1000 of it ) else it) of concatenation ", " of unique values of friendly names whose (it as string does not contain "ATA Channel" AND it as string does not contain " (LPT" AND it as string does not contain " (COM" AND it as string does not contain "Pseudo-Interface" AND it as string does not contain "Microsoft ISATAP" AND it as string does not contain "VirtualBox" AND (it as string does not contain "Miniport" OR it as string contains "Intel")) of active devices + if exists (friendly names whose (it contains "Bluetooth") of active devices) then (concatenation ", " of unique values of friendly names whose (it contains "Bluetooth") of active devices) else "No Bluetooth installed" + concatenation ", " of unique values of ((if (exists property "Name" of it) then property "Name" of it as string else "<none>") & " - " & property "DeviceID" of it as string) of select objects "Name,DeviceID FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0" of wmi + concatenation ", " of unique values of (selects "Name, DriverVersion, AdapterRam from Win32_VideoController" of wmi as string) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Devices - Windows (2994709).bes b/Sites/Windows Management/Fixlets/Analyses/Devices - Windows (2994709).bes index 86b8ae606..83477bda6 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Devices - Windows (2994709).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Devices - Windows (2994709).bes @@ -1,50 +1,50 @@ - - - - - Devices - Windows - This is a work in progress.

-

This analysis attempts to pull back a lot of data about devices on a Windows system.

-

Latest version found here: http://bigfix.me/analysis/details/2994593

-

See this relevance for raw data from the "active devices" inspector: http://bigfix.me/relevance/details/2998470

]]>
- windows of operating system - (exists wmi) OR (exists active devices) - - x-fixlet-modification-time - Mon, 25 Aug 2014 19:58:37 +0000 - - BESC - unique values of friendly names whose (it as string does not contain "ATA Channel" AND it as string does not contain " (LPT" AND it as string does not contain " (COM" AND it as string does not contain "Pseudo-Interface" AND it as string does not contain "Microsoft ISATAP" AND it as string does not contain "VirtualBox" AND (it as string does not contain "Miniport" OR it as string contains "Intel")) of active devices - if exists (friendly names whose (it as lowercase contains "bluetooth") of active devices) then (unique values of friendly names whose (it as lowercase contains "bluetooth") of active devices) else ERROR "no Bluetooth installed" - concatenation ", " of unique values of ((if (exists property "Name" of it) then property "Name" of it as string else "<none>") & " - " & property "DeviceID" of it as string) of select objects "Name,DeviceID FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0" of wmi - concatenation ", " of unique values of (selects "Name, DriverVersion, AdapterRam from Win32_VideoController" of wmi as string) - ((name of it), following texts of firsts "=" of unique values whose(it as lowercase does not contain "%25provider%25" AND it as lowercase does not contain "%25providername%25") of (lines whose(it as string as lowercase starts with "provider") of it as string) as trimmed string, following texts of firsts "=" of unique values of (lines whose(it as string as lowercase starts with "class" AND it as string as lowercase does not start with "classguid") of it as string) as trimmed string, unique values of (lines whose(it as string as lowercase starts with "driverver" AND it as string as lowercase does not start with "driverversion") of it as string)) of (files whose(name of it as lowercase starts with "oem" AND name of it as lowercase ends with ".inf") of folder "Inf" of windows folder) - number of files whose(name of it as lowercase starts with "oem" AND name of it as lowercase ends with ".inf") of folder "Inf" of windows folder - /* Warning: This is very slow, and not recommended for use within a fixlet's or task's relevance! */ unique values of (string values whose (it != "Generic volume" AND it != "HID-compliant consumer control device" AND it != "HID-compliant device" AND it != "USB Composite Device" AND it != "Generic USB Hub" AND it != "USB Input Device" AND it does not start with "USB Root Hub") of selects (("Caption from Win32_PnPEntity where DeviceID='" & it as string & "'") of preceding texts of lasts "%22" of following texts of lasts "=%22" of (string values of selects "Dependent from Win32_USBControllerDevice" of wmi )) of wmi) - /* Warning: This is very slow, and not recommended for use within a fixlet's or task's relevance! */ unique values of ((if (it starts with "Intel" OR it starts with "Xeon") then (preceding texts of lasts " - " of it) else it) of string values of selects (("Caption from Win32_PnPEntity where DeviceID='" & it as string & "'") of ((parenthesized part 1 of (matches (regex "^Win32_PnPEntity\.DeviceID\=\%22(.*)\%22") of string values of it)) of properties whose(string value of it contains "DeviceID=") of select objects ("DeviceID from Win32_PnPEntity ") of WMI) whose(it starts with "PCI\\VEN_")) of wmi) - /* Warning: This is slow, and not recommended for use within a fixlet's or task's relevance! */ unique values of (string values whose (it does not start with "WAN Miniport (" AND it does not start with "Generic volume" AND it != "HID-compliant consumer control device" AND it != "HID-compliant device" AND it != "USB Composite Device" AND it != "Generic USB Hub" AND it != "USB Input Device" AND it does not start with "USB Root Hub") of selects ("Caption from Win32_PnPEntity") of wmi) - unique values of (number of active devices; number of (selects ("DeviceID from Win32_PnPEntity") of wmi)) - unique values of friendly names whose(it as lowercase contains "cam") of active devices - unique values of friendly names of active devices whose(class of it = "Image") - (if it = 0 then nothing else it) of number of active devices whose(class of it = "Battery") - unique values of ((descriptions of active devices whose(description of it as lowercase contains "cam"));((if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Image"));(friendly names of active devices whose(friendly name of it as lowercase contains "cam"))) - (preceding texts of lasts ")" of following texts of firsts "(" of it) of friendly names whose(it starts with "Microphone" AND it does not contain "High Definition Audio Device" AND it does not contain "IDT High Definition Audio CODEC" AND it does not contain "Realtek High Definition Audio") of active devices whose(class of it = "AudioEndpoint") - unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Display") - unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Keyboard") - (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "MEDIA" AND service key value name of it = "usbaudio") - unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Monitor") - unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Printer") - unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "SecurityDevices") - number of active devices whose(class of it = "Monitor") - unique values of hardware ids of active devices -
-
+ + + + + Devices - Windows + This is a work in progress.

+

This analysis attempts to pull back a lot of data about devices on a Windows system.

+

Latest version found here: http://bigfix.me/analysis/details/2994593

+

See this relevance for raw data from the "active devices" inspector: http://bigfix.me/relevance/details/2998470

]]>
+ windows of operating system + (exists wmi) OR (exists active devices) + + x-fixlet-modification-time + Mon, 25 Aug 2014 19:58:37 +0000 + + BESC + unique values of friendly names whose (it as string does not contain "ATA Channel" AND it as string does not contain " (LPT" AND it as string does not contain " (COM" AND it as string does not contain "Pseudo-Interface" AND it as string does not contain "Microsoft ISATAP" AND it as string does not contain "VirtualBox" AND (it as string does not contain "Miniport" OR it as string contains "Intel")) of active devices + if exists (friendly names whose (it as lowercase contains "bluetooth") of active devices) then (unique values of friendly names whose (it as lowercase contains "bluetooth") of active devices) else ERROR "no Bluetooth installed" + concatenation ", " of unique values of ((if (exists property "Name" of it) then property "Name" of it as string else "<none>") & " - " & property "DeviceID" of it as string) of select objects "Name,DeviceID FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0" of wmi + concatenation ", " of unique values of (selects "Name, DriverVersion, AdapterRam from Win32_VideoController" of wmi as string) + ((name of it), following texts of firsts "=" of unique values whose(it as lowercase does not contain "%25provider%25" AND it as lowercase does not contain "%25providername%25") of (lines whose(it as string as lowercase starts with "provider") of it as string) as trimmed string, following texts of firsts "=" of unique values of (lines whose(it as string as lowercase starts with "class" AND it as string as lowercase does not start with "classguid") of it as string) as trimmed string, unique values of (lines whose(it as string as lowercase starts with "driverver" AND it as string as lowercase does not start with "driverversion") of it as string)) of (files whose(name of it as lowercase starts with "oem" AND name of it as lowercase ends with ".inf") of folder "Inf" of windows folder) + number of files whose(name of it as lowercase starts with "oem" AND name of it as lowercase ends with ".inf") of folder "Inf" of windows folder + /* Warning: This is very slow, and not recommended for use within a fixlet's or task's relevance! */ unique values of (string values whose (it != "Generic volume" AND it != "HID-compliant consumer control device" AND it != "HID-compliant device" AND it != "USB Composite Device" AND it != "Generic USB Hub" AND it != "USB Input Device" AND it does not start with "USB Root Hub") of selects (("Caption from Win32_PnPEntity where DeviceID='" & it as string & "'") of preceding texts of lasts "%22" of following texts of lasts "=%22" of (string values of selects "Dependent from Win32_USBControllerDevice" of wmi )) of wmi) + /* Warning: This is very slow, and not recommended for use within a fixlet's or task's relevance! */ unique values of ((if (it starts with "Intel" OR it starts with "Xeon") then (preceding texts of lasts " - " of it) else it) of string values of selects (("Caption from Win32_PnPEntity where DeviceID='" & it as string & "'") of ((parenthesized part 1 of (matches (regex "^Win32_PnPEntity\.DeviceID\=\%22(.*)\%22") of string values of it)) of properties whose(string value of it contains "DeviceID=") of select objects ("DeviceID from Win32_PnPEntity ") of WMI) whose(it starts with "PCI\\VEN_")) of wmi) + /* Warning: This is slow, and not recommended for use within a fixlet's or task's relevance! */ unique values of (string values whose (it does not start with "WAN Miniport (" AND it does not start with "Generic volume" AND it != "HID-compliant consumer control device" AND it != "HID-compliant device" AND it != "USB Composite Device" AND it != "Generic USB Hub" AND it != "USB Input Device" AND it does not start with "USB Root Hub") of selects ("Caption from Win32_PnPEntity") of wmi) + unique values of (number of active devices; number of (selects ("DeviceID from Win32_PnPEntity") of wmi)) + unique values of friendly names whose(it as lowercase contains "cam") of active devices + unique values of friendly names of active devices whose(class of it = "Image") + (if it = 0 then nothing else it) of number of active devices whose(class of it = "Battery") + unique values of ((descriptions of active devices whose(description of it as lowercase contains "cam"));((if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Image"));(friendly names of active devices whose(friendly name of it as lowercase contains "cam"))) + (preceding texts of lasts ")" of following texts of firsts "(" of it) of friendly names whose(it starts with "Microphone" AND it does not contain "High Definition Audio Device" AND it does not contain "IDT High Definition Audio CODEC" AND it does not contain "Realtek High Definition Audio") of active devices whose(class of it = "AudioEndpoint") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Display") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Keyboard") + (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "MEDIA" AND service key value name of it = "usbaudio") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Monitor") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "Printer") + unique values of (if exists friendly name of it then friendly name of it else if exists description of it then description of it else "NoDescOrFN") of active devices whose(class of it = "SecurityDevices") + number of active devices whose(class of it = "Monitor") + unique values of hardware ids of active devices +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Distinguished Name of User (2998580).bes b/Sites/Windows Management/Fixlets/Analyses/Distinguished Name of User (2998580).bes index 2a8f547b3..2e8688fb1 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Distinguished Name of User (2998580).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Distinguished Name of User (2998580).bes @@ -1,24 +1,24 @@ - - - - - Distinguished Name of User - - Product type of operating system = NT Workstation product type - - x-fixlet-modification-time - Thu, 11 Jan 2018 21:02:15 +0000 - - BESC - if(exists logged on users of active directory) then preceding text of first "OU=" of distinguished name of (logged on users whose (name of it = name of current user) of active directory) else if exists current users then "local user" else "none" - - + + + + + Distinguished Name of User + + Product type of operating system = NT Workstation product type + + x-fixlet-modification-time + Thu, 11 Jan 2018 21:02:15 +0000 + + BESC + if(exists logged on users of active directory) then preceding text of first "OU=" of distinguished name of (logged on users whose (name of it = name of current user) of active directory) else if exists current users then "local user" else "none" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Driver Audit - Windows (2994712).bes b/Sites/Windows Management/Fixlets/Analyses/Driver Audit - Windows (2994712).bes index 6db567d43..c3f658a68 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Driver Audit - Windows (2994712).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Driver Audit - Windows (2994712).bes @@ -1,28 +1,28 @@ - - - - - Driver Audit - Windows - - windows of operating system - - x-fixlet-modification-time - Thu, 28 Aug 2014 15:31:24 +0000 - - BESC - number of (it) whose(it contains "5345494b4f204550534f4e") of (values "Blob" of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\TrustedPublisher\Certificates" of native registry as string) - (multiplicity of it, it) of unique values of ("Logitech " & (it as string)) of (if (it starts with "Logitech ") then (following text of first "Logitech " of it) else it) of (if (it contains "Logitech QuickCam Pro ") then (following text of first "Logitech QuickCam " of it) else it) of (if (it contains "Webcam ") then (following text of first "Webcam " of it) else it) of (if (it contains ")") then (preceding text of last ")" of it) else it) of (if (it contains "(") then (following text of first "(" of it) else it) of (preceding text of last "%22" of following text of first "%22" of following text of first "=" of it) of items 3 of (item 0 of it, item 1 of it, minimum of line numbers of item 2 of it, lines of item 0 of it) whose(((item 1 of it) < line number of item 3 of it) AND ((item 2 of it) > (line number of item 3 of it)) AND (item 3 of it contains "PID_")) of (item 0 of it, item 1 of it, lines whose(it starts with "[" AND it ends with "]") of item 0 of it) whose(item 1 of it < line number of item 2 of it) of (it, line number of line whose(it starts with "[Strings]") of it) of items 0 whose(content of it contains "Logitech") of (files of item 0 of it, item 1 of it) whose(name of item 0 of it as lowercase = item 1 of it) of (it, (it & ".inf") of preceding text of first ".inf" of (name of it as lowercase)) of folders whose( ((name of it as lowercase starts with "lv") OR (name of it as lowercase starts with "lpro")) AND (name of it as lowercase contains ".inf") ) of folders "DriverStore\FileRepository" of system x64 folder - keys "DSName" of sections "Strings" of items 0 of (files of item 0 of it, item 1 of it) whose(name of item 0 of it as lowercase = item 1 of it) of (it, (it & ".inf") of preceding text of first ".inf" of (name of it as lowercase)) of folders whose((name of it as lowercase starts with "es") AND (name of it as lowercase contains ".inf")) of folders "DriverStore\FileRepository" of system x64 folder - unique values of (it as trimmed string) of (preceding text of last "%22" of following text of first "%22" of it) of lines whose(it starts with "NVIDIA_DEV") of files whose(name of it as lowercase ends with ".inf") of folders whose(name of it as lowercase starts with "nvlewu") of folders "DriverStore\FileRepository" of system folder - unique values of (it as trimmed string) of (preceding text of last "%22" of following text of first "%22" of it) of (concatenation of characters whose (it != "%00") of it) of lines whose(exists (concatenation of characters whose (it != "%00") of it) whose(it starts with "i" AND it contains "Intel(R) ")) of files whose(name of it as lowercase ends with ".inf") of folders whose(name of it as lowercase starts with "igdlh") of folders "DriverStore\FileRepository" of system folder - - + + + + + Driver Audit - Windows + + windows of operating system + + x-fixlet-modification-time + Thu, 28 Aug 2014 15:31:24 +0000 + + BESC + number of (it) whose(it contains "5345494b4f204550534f4e") of (values "Blob" of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\TrustedPublisher\Certificates" of native registry as string) + (multiplicity of it, it) of unique values of ("Logitech " & (it as string)) of (if (it starts with "Logitech ") then (following text of first "Logitech " of it) else it) of (if (it contains "Logitech QuickCam Pro ") then (following text of first "Logitech QuickCam " of it) else it) of (if (it contains "Webcam ") then (following text of first "Webcam " of it) else it) of (if (it contains ")") then (preceding text of last ")" of it) else it) of (if (it contains "(") then (following text of first "(" of it) else it) of (preceding text of last "%22" of following text of first "%22" of following text of first "=" of it) of items 3 of (item 0 of it, item 1 of it, minimum of line numbers of item 2 of it, lines of item 0 of it) whose(((item 1 of it) < line number of item 3 of it) AND ((item 2 of it) > (line number of item 3 of it)) AND (item 3 of it contains "PID_")) of (item 0 of it, item 1 of it, lines whose(it starts with "[" AND it ends with "]") of item 0 of it) whose(item 1 of it < line number of item 2 of it) of (it, line number of line whose(it starts with "[Strings]") of it) of items 0 whose(content of it contains "Logitech") of (files of item 0 of it, item 1 of it) whose(name of item 0 of it as lowercase = item 1 of it) of (it, (it & ".inf") of preceding text of first ".inf" of (name of it as lowercase)) of folders whose( ((name of it as lowercase starts with "lv") OR (name of it as lowercase starts with "lpro")) AND (name of it as lowercase contains ".inf") ) of folders "DriverStore\FileRepository" of system x64 folder + keys "DSName" of sections "Strings" of items 0 of (files of item 0 of it, item 1 of it) whose(name of item 0 of it as lowercase = item 1 of it) of (it, (it & ".inf") of preceding text of first ".inf" of (name of it as lowercase)) of folders whose((name of it as lowercase starts with "es") AND (name of it as lowercase contains ".inf")) of folders "DriverStore\FileRepository" of system x64 folder + unique values of (it as trimmed string) of (preceding text of last "%22" of following text of first "%22" of it) of lines whose(it starts with "NVIDIA_DEV") of files whose(name of it as lowercase ends with ".inf") of folders whose(name of it as lowercase starts with "nvlewu") of folders "DriverStore\FileRepository" of system folder + unique values of (it as trimmed string) of (preceding text of last "%22" of following text of first "%22" of it) of (concatenation of characters whose (it != "%00") of it) of lines whose(exists (concatenation of characters whose (it != "%00") of it) whose(it starts with "i" AND it contains "Intel(R) ")) of files whose(name of it as lowercase ends with ".inf") of folders whose(name of it as lowercase starts with "igdlh") of folders "DriverStore\FileRepository" of system folder + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Drivers - Windows (2998242).bes b/Sites/Windows Management/Fixlets/Analyses/Drivers - Windows (2998242).bes index 1ccc91fe5..cbaafd7d5 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Drivers - Windows (2998242).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Drivers - Windows (2998242).bes @@ -1,22 +1,22 @@ - - - - - Drivers - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- NOT in proxy agent context - = "5.1"]]> - BESC - (if (it = "00") then ("Ignore") else (if (it = "01") then "Warn" else "Block")) of (value "Policy" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Non-Driver Signing" of native registry as string) -
-
+ + + + + Drivers - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ NOT in proxy agent context + = "5.1"]]> + BESC + (if (it = "00") then ("Ignore") else (if (it = "01") then "Warn" else "Block")) of (value "Policy" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Non-Driver Signing" of native registry as string) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/EMET - Configuration - Windows (2998302).bes b/Sites/Windows Management/Fixlets/Analyses/EMET - Configuration - Windows (2998302).bes index 023e8ea2b..993d720bf 100644 --- a/Sites/Windows Management/Fixlets/Analyses/EMET - Configuration - Windows (2998302).bes +++ b/Sites/Windows Management/Fixlets/Analyses/EMET - Configuration - Windows (2998302).bes @@ -1,32 +1,32 @@ - - - - - EMET - Configuration - Windows - This analysis covers various details of the currently deployed EMET configuration.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/EMET

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect 

]]>
- windows of operating system - exists key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry - exists service "EMET_SERVICE" - BESC - (name of it, it) of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry - state of service "EMET_Service" - version of service "EMET_Service" - (name of it, it) of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\CertPinning\Sites" of native registry - (if (value "AntiDetours" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" - (if (value "BannedFunctions" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" - (if (value "DeepHooks" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" - (if (value "EnableUnsafeSettings" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" - (if (value "ExploitAction" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Kill Process" else "Audit") | "audit" -
-
+ + + + + EMET - Configuration - Windows + This analysis covers various details of the currently deployed EMET configuration.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/EMET

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect 

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry + exists service "EMET_SERVICE" + BESC + (name of it, it) of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry + state of service "EMET_Service" + version of service "EMET_Service" + (name of it, it) of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\CertPinning\Sites" of native registry + (if (value "AntiDetours" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" + (if (value "BannedFunctions" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" + (if (value "DeepHooks" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" + (if (value "EnableUnsafeSettings" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Enabled" else "Disabled") | "Disabled" + (if (value "ExploitAction" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry = 1) then "Kill Process" else "Audit") | "audit" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/EMET - Logs - Windows (2998438).bes b/Sites/Windows Management/Fixlets/Analyses/EMET - Logs - Windows (2998438).bes index 30038e56c..16aa78afb 100644 --- a/Sites/Windows Management/Fixlets/Analyses/EMET - Logs - Windows (2998438).bes +++ b/Sites/Windows Management/Fixlets/Analyses/EMET - Logs - Windows (2998438).bes @@ -1,23 +1,23 @@ - - - - - EMET - Logs - Windows - This analysis provides information on EMET Mitigations Fired

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/EMET

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists service "EMET_SERVICE" - BESC - (time generated of it, description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) whose (source of it = "EMET" and (event id of it = 2 or event id of it = 1)) of application event log -
-
+ + + + + EMET - Logs - Windows + This analysis provides information on EMET Mitigations Fired

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/EMET

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists service "EMET_SERVICE" + BESC + (time generated of it, description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) whose (source of it = "EMET" and (event id of it = 2 or event id of it = 1)) of application event log +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Event Log - Windows (2998243).bes b/Sites/Windows Management/Fixlets/Analyses/Event Log - Windows (2998243).bes index e06f6ae04..f7d193dfd 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Event Log - Windows (2998243).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Event Log - Windows (2998243).bes @@ -1,25 +1,25 @@ - - - - - Event Log - Windows - http://bigfix.me/cdb/analysis/2995921

Pulls the maximum size of various event logs from the Windows Registry and formats them as megabytes -

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- = "6.0"]]> - BESC - (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\Security" of registry) as string as integer / 1024 / 1024 - (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\HardwareEvents" of registry) as string as integer / 1024 / 1024 - (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\Key Management Service" of registry) as string as integer / 1024 / 1024 - (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\System" of registry) as string as integer / 1024 / 1024 - (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\Windows PowerShell" of registry) as string as integer / 1024 / 1024 -
-
+ + + + + Event Log - Windows + http://bigfix.me/cdb/analysis/2995921

Pulls the maximum size of various event logs from the Windows Registry and formats them as megabytes +

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ = "6.0"]]> + BESC + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\Security" of registry) as string as integer / 1024 / 1024 + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\HardwareEvents" of registry) as string as integer / 1024 / 1024 + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\Key Management Service" of registry) as string as integer / 1024 / 1024 + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\System" of registry) as string as integer / 1024 / 1024 + (value "MaxSize" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\Windows PowerShell" of registry) as string as integer / 1024 / 1024 +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/File System Configuration Audit - Windows (2994783).bes b/Sites/Windows Management/Fixlets/Analyses/File System Configuration Audit - Windows (2994783).bes index 6edca0c23..dc158907f 100644 --- a/Sites/Windows Management/Fixlets/Analyses/File System Configuration Audit - Windows (2994783).bes +++ b/Sites/Windows Management/Fixlets/Analyses/File System Configuration Audit - Windows (2994783).bes @@ -1,27 +1,27 @@ - - - - - File System Configuration Audit - Windows - - = "5.1"]]> - /* Windows Only */ windows of operating system - - x-fixlet-modification-time - Mon, 08 Sep 2014 18:20:45 +0000 - - BESC - value "DisableDeleteNotification" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of registry | ERROR "does not exist" /* a result of 0 means TRIM is enabled as far as the Windows/NTFS side is concerned. This does not mean that these TRIM notifications are actually being used by the actual storage system, which may or may not support TRIM. */ - value "NtfsDisableLastAccessUpdate" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of registry | ERROR "does not exist" - value "NtfsMemoryUsage" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of registry | ERROR "does not exist" - - + + + + + File System Configuration Audit - Windows + + = "5.1"]]> + /* Windows Only */ windows of operating system + + x-fixlet-modification-time + Mon, 08 Sep 2014 18:20:45 +0000 + + BESC + value "DisableDeleteNotification" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of registry | ERROR "does not exist" /* a result of 0 means TRIM is enabled as far as the Windows/NTFS side is concerned. This does not mean that these TRIM notifications are actually being used by the actual storage system, which may or may not support TRIM. */ + value "NtfsDisableLastAccessUpdate" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of registry | ERROR "does not exist" + value "NtfsMemoryUsage" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of registry | ERROR "does not exist" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Firewall - Configuration - Windows (2998518).bes b/Sites/Windows Management/Fixlets/Analyses/Firewall - Configuration - Windows (2998518).bes index fa1d4f46c..c7dedcd48 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Firewall - Configuration - Windows (2998518).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Firewall - Configuration - Windows (2998518).bes @@ -1,31 +1,31 @@ - - - - - Firewall - Configuration - Windows - Provides information on the current configuration of the Windows Firewall.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- NOT in proxy agent context - = "5.1"]]> - BESC - ("Domain", firewall enabled of domain profile of local policy of firewall and not exists (value "EnableFirewall" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile" of native registry as string | "-1") whose (it = "0"));("Public", firewall enabled of public profile of local policy of firewall and not exists (value "EnableFirewall" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile" of native registry as string | "-1") whose (it = "0"));("Private", firewall enabled of private profile of local policy of firewall and not exists (value "EnableFirewall" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile" of native registry as string | "-1") whose (it = "0")) - profile types of firewall - allow inbound echo request of icmp settings of current profile of local policy of firewall - local policy modify state of firewall = ok firewall local policy modify state - local policy modify state of firewall = gp override firewall local policy modify state - local policy modify state of firewall = inbound blocked firewall local policy modify state - (name of it, remote addresses of it, ip version of it, process image file name of it) of authorized applications whose (enabled of it = true) of current profile of local policy of firewall - (name of it, application name of it, local addresses string of it, local ports string of it, remote addresses string of it, remote ports string of it) of rules whose (currently active of it and inbound of it) of firewall - (name of it, application name of it, local addresses string of it, local ports string of it, remote addresses string of it, remote ports string of it) of rules whose (currently active of it and outbound of it) of firewall - (name of it, port of it, remote addresses of it) of globally open ports whose (enabled of it) of current profile of local policy of firewall -
-
+ + + + + Firewall - Configuration - Windows + Provides information on the current configuration of the Windows Firewall.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ NOT in proxy agent context + = "5.1"]]> + BESC + ("Domain", firewall enabled of domain profile of local policy of firewall and not exists (value "EnableFirewall" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile" of native registry as string | "-1") whose (it = "0"));("Public", firewall enabled of public profile of local policy of firewall and not exists (value "EnableFirewall" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile" of native registry as string | "-1") whose (it = "0"));("Private", firewall enabled of private profile of local policy of firewall and not exists (value "EnableFirewall" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile" of native registry as string | "-1") whose (it = "0")) + profile types of firewall + allow inbound echo request of icmp settings of current profile of local policy of firewall + local policy modify state of firewall = ok firewall local policy modify state + local policy modify state of firewall = gp override firewall local policy modify state + local policy modify state of firewall = inbound blocked firewall local policy modify state + (name of it, remote addresses of it, ip version of it, process image file name of it) of authorized applications whose (enabled of it = true) of current profile of local policy of firewall + (name of it, application name of it, local addresses string of it, local ports string of it, remote addresses string of it, remote ports string of it) of rules whose (currently active of it and inbound of it) of firewall + (name of it, application name of it, local addresses string of it, local ports string of it, remote addresses string of it, remote ports string of it) of rules whose (currently active of it and outbound of it) of firewall + (name of it, port of it, remote addresses of it) of globally open ports whose (enabled of it) of current profile of local policy of firewall +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Group Policy - Windows (2998487).bes b/Sites/Windows Management/Fixlets/Analyses/Group Policy - Windows (2998487).bes index 790f3a776..435aecdcf 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Group Policy - Windows (2998487).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Group Policy - Windows (2998487).bes @@ -1,44 +1,44 @@ - - - - - Group Policy - Windows - Provides the following pieces of information regarding Group Policy:

-
    -
  1. Average network wait on startup -
  2. Applied Group Policies -
  3. Enforced Group Policies -
  4. The Active Directory site the computer currently falls into -
  5. Assigned Software Installations in Group Policy -
  6. The currently connected domain controller -
  7. If the computer is on a slow link -
  8. Currently running startup and shutdown scripts -
  9. Group Policy Preferences with tracing or debug logging enabled
-

The applied group policies and enforced group policies properties show the name of the group policy object, at what level the policy is linked (Site, Domain, OU) and at what OU in active directory the policy is linked at.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - NOT in proxy agent context - BESC - values "AvgWaitTimeoutAtStartup" of keys "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\history" of native registry - unique values of (it as string) of (value "DisplayName" of it, (if (it = 0) then "Unknown" else (if (it = 1) then "Local Group Policy" else (if (it = 2) then "Site Linked" else (if (it = 3) then "Domain Linked" else ("OU Linked"))))) of (value "GPOLink" of it as integer), value "Link" of it) of keys of keys of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\history" of native registry - unique values of (it as string) of (value "DisplayName" of it, (if (it = 0) then "Unknown" else (if (it = 1) then "Local Group Policy" else (if (it = 2) then "Site Linked" else (if (it = 3) then "Domain Linked" else ("OU Linked"))))) of (value "GPOLink" of it as integer), value "Link" of it) of keys whose (bit 1 of (value "Options" of it as integer as bit set) = true) of keys of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\history" of native registry - value "Site-Name" of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\State\Machine" of native registry - (value "GPO Name" of it, value "Deployment Name" of it, value "GPO ID" of it) of keys of keys "HKEY_LOCAL_MACHINE\Software\microsofat\windows\currentversion\group policy\Appmgmt" of native registry - value "DCName" of keys "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\History" of native registry as string - if (value "IsSlowLink" of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\History" of native registry as integer | 0 = 0) then false else true - unique values of (it as string) of (value "DisplayName" of it as string, value "FileSysPath" of it as string) of keys of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup" of native registry - unique values of (it as string) of (value "DisplayName" of it as string, value "FileSysPath" of it as string) of keys of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown" of native registry - (default value of it) of keys whose (set of names of (keys whose (value "LogLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry) contains name of it ) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions" of native registry - (default value of it) of keys whose (set of names of (keys whose (value "LogLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry) contains name of it ) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions" of native registry - unique values of (it as string) of (string value of property "registryKey" of it | "", string value of property "valueName" of it, (if (length of (property "value" of it as string) <= 16) then /* For short values convert the byte array*/((/*Convert to integer*/ hexadecimal integer /* Reverse the bytes */(concatenations of substrings separated by "," of concatenation of characters ( lengths of following texts of positions of it ) of concatenation "," of (concatenation of characters ( lengths of following texts of positions of it ) of it ) of /*Get bytes */(integer values of property "value" of it as hexadecimal))) as string | "") else /* Long values let BigFix do it*/ (following text of first "value=" of (preceding text of last "%00" of it | it) of (preceding text of last "%0d%0a" of it | it) of (property "value" of it as string)))) of SELECT objects "* FROM RSOP_RegistryPolicySetting WHERE GPOID='LocalGPO' and valueName != ''" /* valueName != '' removes blank keys, not sure if this breaks anything*/ of rsop computer wmi -
-
+ + + + + Group Policy - Windows + Provides the following pieces of information regarding Group Policy:

+
    +
  1. Average network wait on startup +
  2. Applied Group Policies +
  3. Enforced Group Policies +
  4. The Active Directory site the computer currently falls into +
  5. Assigned Software Installations in Group Policy +
  6. The currently connected domain controller +
  7. If the computer is on a slow link +
  8. Currently running startup and shutdown scripts +
  9. Group Policy Preferences with tracing or debug logging enabled
+

The applied group policies and enforced group policies properties show the name of the group policy object, at what level the policy is linked (Site, Domain, OU) and at what OU in active directory the policy is linked at.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + values "AvgWaitTimeoutAtStartup" of keys "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\history" of native registry + unique values of (it as string) of (value "DisplayName" of it, (if (it = 0) then "Unknown" else (if (it = 1) then "Local Group Policy" else (if (it = 2) then "Site Linked" else (if (it = 3) then "Domain Linked" else ("OU Linked"))))) of (value "GPOLink" of it as integer), value "Link" of it) of keys of keys of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\history" of native registry + unique values of (it as string) of (value "DisplayName" of it, (if (it = 0) then "Unknown" else (if (it = 1) then "Local Group Policy" else (if (it = 2) then "Site Linked" else (if (it = 3) then "Domain Linked" else ("OU Linked"))))) of (value "GPOLink" of it as integer), value "Link" of it) of keys whose (bit 1 of (value "Options" of it as integer as bit set) = true) of keys of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\history" of native registry + value "Site-Name" of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\State\Machine" of native registry + (value "GPO Name" of it, value "Deployment Name" of it, value "GPO ID" of it) of keys of keys "HKEY_LOCAL_MACHINE\Software\microsofat\windows\currentversion\group policy\Appmgmt" of native registry + value "DCName" of keys "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\History" of native registry as string + if (value "IsSlowLink" of key "HKEY_LOCAL_MACHINE\Software\microsoft\windows\currentversion\group policy\History" of native registry as integer | 0 = 0) then false else true + unique values of (it as string) of (value "DisplayName" of it as string, value "FileSysPath" of it as string) of keys of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup" of native registry + unique values of (it as string) of (value "DisplayName" of it as string, value "FileSysPath" of it as string) of keys of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown" of native registry + (default value of it) of keys whose (set of names of (keys whose (value "LogLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry) contains name of it ) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions" of native registry + (default value of it) of keys whose (set of names of (keys whose (value "LogLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry) contains name of it ) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions" of native registry + unique values of (it as string) of (string value of property "registryKey" of it | "", string value of property "valueName" of it, (if (length of (property "value" of it as string) <= 16) then /* For short values convert the byte array*/((/*Convert to integer*/ hexadecimal integer /* Reverse the bytes */(concatenations of substrings separated by "," of concatenation of characters ( lengths of following texts of positions of it ) of concatenation "," of (concatenation of characters ( lengths of following texts of positions of it ) of it ) of /*Get bytes */(integer values of property "value" of it as hexadecimal))) as string | "") else /* Long values let BigFix do it*/ (following text of first "value=" of (preceding text of last "%00" of it | it) of (preceding text of last "%0d%0a" of it | it) of (property "value" of it as string)))) of SELECT objects "* FROM RSOP_RegistryPolicySetting WHERE GPOID='LocalGPO' and valueName != ''" /* valueName != '' removes blank keys, not sure if this breaks anything*/ of rsop computer wmi +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Groups - Windows (2998456).bes b/Sites/Windows Management/Fixlets/Analyses/Groups - Windows (2998456).bes index ffae6f1c0..cb0149c73 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Groups - Windows (2998456).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Groups - Windows (2998456).bes @@ -1,39 +1,39 @@ - - - - - Groups - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - NOT in proxy agent context - BESC - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Users" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Administrators" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Remote Desktop Users" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Access Control Assistance Operators" | error "none")) - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Backup Operators" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Cryptographic Operators" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Event Log Readers" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Guests" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Hyper-V Administrators" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Network Configuration Operators" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Performance Log Users" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Performance Monitor Users" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Power Users" as string - (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Remote Managment Users" | error "none")) - (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Replicator" | error "none")) - (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Systems Managed Accounts Group" | error "none")) - (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Offer Remote Assistance Helpers" | error "none")) - unique values of names of local groups -
-
+ + + + + Groups - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Administrators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Remote Desktop Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Access Control Assistance Operators" | error "none")) + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Backup Operators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Cryptographic Operators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Event Log Readers" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Guests" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Hyper-V Administrators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Network Configuration Operators" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Performance Log Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Performance Monitor Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of members of local group "Power Users" as string + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Remote Managment Users" | error "none")) + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Replicator" | error "none")) + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Systems Managed Accounts Group" | error "none")) + (("." & following text of first (computer name) of (it as string)) | (it as string)) of (members of (local group "Offer Remote Assistance Helpers" | error "none")) + unique values of names of local groups +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Hard Drive Audit - Windows (2994706).bes b/Sites/Windows Management/Fixlets/Analyses/Hard Drive Audit - Windows (2994706).bes index de0ffb43d..30bd3ed6b 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Hard Drive Audit - Windows (2994706).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Hard Drive Audit - Windows (2994706).bes @@ -1,44 +1,44 @@ - - - - - Hard Drive Audit - Windows - This analysis will report on various windows specific aspects of the hard drives in a system. Found here: http://bigfix.me/cdb/analysis/2994527

-

This is meant to supliment the analysis "Hard Drive Audit - Universal" :  http://bigfix.me/cdb/analysis/2994530

]]>
- = "8.0"]]> - = "5.1"]]> - /* Windows Only */ windows of operating system - /* Many, but not all of these properties use WMI */ exists wmi - - x-fixlet-modification-time - Fri, 15 Aug 2014 19:30:17 +0000 - - BESC - if (exists wmi) then (concatenation ", " of (((substrings after "=" whose(it as trimmed string != "") of (property "SerialNumber" of it as string)) of select objects "* from win32_PhysicalMedia where SerialNumber != ''" of wmi) as trimmed string)) else "n/a" - if(not exists (select objects "* from MSStorageDriver_FailurePredictStatus" of wmi "root\WMI") whose(string value of property "PredictFailure" of it as boolean = TRUE)) then "<no failures predicted>" else concatenation "," of (string value of property "PredictFailure" of it & " - " & string value of property "InstanceName" of it) of (select objects "* from MSStorageDriver_FailurePredictStatus" of wmi "root\WMI") whose(string value of property "PredictFailure" of it as boolean = TRUE) - not disjunction of ((following text of first "=" of (property "StartingOffset" of it as string) as integer mod 4096) != 0) of select objects "* from Win32_DiskPartition" of wmi - concatenation "," of unique values of (following text of first "=" of (property "BlockSize" of it as string)) of select objects "* from Win32_DiskPartition" of wmi - (if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (size of file "c:\pagefile.sys") - if(not exists file "c:\hiberfil.sys") then nothing else ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (size of file "c:\hiberfil.sys")) - if not exists (folder "dell" of drive of system folder) then nothing else ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (sum of sizes of descendants of folder "dell" of drive of system folder)) - if (exists wmi) then (concatenation "; " of ((string value of property "Model" of it, string value of property "FirmwareRevision" of it) of select objects "Model, FirmwareRevision from Win32_DiskDrive" of wmi as string)) else "n/a" - if exists (folder "__BESData\__Global\__Cache\Downloads" of parent folder of regapp "Besclient.exe") then ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (sum of sizes of descendants of folder "__BESData\__Global\__Cache\Downloads" of parent folder of regapp "Besclient.exe")) else ERROR "none" - if exists (folder "temp" of drive of system folder) then ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (sum of sizes of descendants of folder "temp" of drive of system folder)) else ERROR "no Temp Dir" - value "DisableDeleteNotification" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of native registry - if ((exists folder "users" of drive of system folder) AND (exists folders whose (exists folder "AppData\Local\Temp\Identity Finder" of it) of folder "users" of drive of system folder)) then (sum of sizes of descendants of folders "AppData\Local\Temp\Identity Finder" of folders whose (exists folder "AppData\Local\Temp\Identity Finder" of it) of folder "users" of drive of system folder) else ERROR "No IDF temp" - (friendly name of it &" - "& location information of it) of active devices whose(class of it = "DiskDrive") - (pathname of it, sum of sizes of descendants of it) of folders "Desktop" whose(sum of sizes of descendants of it = maximum of (sum of sizes of descendants of it) of folders "Desktop" of folders of (folder "c:\documents and settings" of it | folder "users" of it) of drive of system folder) of folders of (folder "c:\documents and settings" of it | folder "users" of it) of drive of system folder - ((it as integer) of string values of selects "Size from Win32_DiskDrive WHERE size!='' " of wmi) - ((it as integer) of string values of selects "Size from Win32_DiskDrive WHERE Index=0 AND size!='' " of wmi) - (string values of selects "Caption from Win32_DiskDrive WHERE Status!='OK'" of wmi) -
-
+ + + + + Hard Drive Audit - Windows + This analysis will report on various windows specific aspects of the hard drives in a system. Found here: http://bigfix.me/cdb/analysis/2994527

+

This is meant to supliment the analysis "Hard Drive Audit - Universal" :  http://bigfix.me/cdb/analysis/2994530

]]>
+ = "8.0"]]> + = "5.1"]]> + /* Windows Only */ windows of operating system + /* Many, but not all of these properties use WMI */ exists wmi + + x-fixlet-modification-time + Fri, 15 Aug 2014 19:30:17 +0000 + + BESC + if (exists wmi) then (concatenation ", " of (((substrings after "=" whose(it as trimmed string != "") of (property "SerialNumber" of it as string)) of select objects "* from win32_PhysicalMedia where SerialNumber != ''" of wmi) as trimmed string)) else "n/a" + if(not exists (select objects "* from MSStorageDriver_FailurePredictStatus" of wmi "root\WMI") whose(string value of property "PredictFailure" of it as boolean = TRUE)) then "<no failures predicted>" else concatenation "," of (string value of property "PredictFailure" of it & " - " & string value of property "InstanceName" of it) of (select objects "* from MSStorageDriver_FailurePredictStatus" of wmi "root\WMI") whose(string value of property "PredictFailure" of it as boolean = TRUE) + not disjunction of ((following text of first "=" of (property "StartingOffset" of it as string) as integer mod 4096) != 0) of select objects "* from Win32_DiskPartition" of wmi + concatenation "," of unique values of (following text of first "=" of (property "BlockSize" of it as string)) of select objects "* from Win32_DiskPartition" of wmi + (if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (size of file "c:\pagefile.sys") + if(not exists file "c:\hiberfil.sys") then nothing else ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (size of file "c:\hiberfil.sys")) + if not exists (folder "dell" of drive of system folder) then nothing else ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (sum of sizes of descendants of folder "dell" of drive of system folder)) + if (exists wmi) then (concatenation "; " of ((string value of property "Model" of it, string value of property "FirmwareRevision" of it) of select objects "Model, FirmwareRevision from Win32_DiskDrive" of wmi as string)) else "n/a" + if exists (folder "__BESData\__Global\__Cache\Downloads" of parent folder of regapp "Besclient.exe") then ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (sum of sizes of descendants of folder "__BESData\__Global\__Cache\Downloads" of parent folder of regapp "Besclient.exe")) else ERROR "none" + if exists (folder "temp" of drive of system folder) then ((if (0<(it / (1024*1024*1024*1024))) then (it / (1024*1024*1024*1024)) as string & " TB" else if (0<(it / (1024*1024*1024))) then (it / (1024*1024*1024)) as string & " GB" else if (0<(it / (1024*1024))) then (it / (1024*1024)) as string & " MB" else if (0<(it / (1024))) then (it / (1024)) as string & " KB" else (it as string & " B")) of (sum of sizes of descendants of folder "temp" of drive of system folder)) else ERROR "no Temp Dir" + value "DisableDeleteNotification" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of native registry + if ((exists folder "users" of drive of system folder) AND (exists folders whose (exists folder "AppData\Local\Temp\Identity Finder" of it) of folder "users" of drive of system folder)) then (sum of sizes of descendants of folders "AppData\Local\Temp\Identity Finder" of folders whose (exists folder "AppData\Local\Temp\Identity Finder" of it) of folder "users" of drive of system folder) else ERROR "No IDF temp" + (friendly name of it &" - "& location information of it) of active devices whose(class of it = "DiskDrive") + (pathname of it, sum of sizes of descendants of it) of folders "Desktop" whose(sum of sizes of descendants of it = maximum of (sum of sizes of descendants of it) of folders "Desktop" of folders of (folder "c:\documents and settings" of it | folder "users" of it) of drive of system folder) of folders of (folder "c:\documents and settings" of it | folder "users" of it) of drive of system folder + ((it as integer) of string values of selects "Size from Win32_DiskDrive WHERE size!='' " of wmi) + ((it as integer) of string values of selects "Size from Win32_DiskDrive WHERE Index=0 AND size!='' " of wmi) + (string values of selects "Caption from Win32_DiskDrive WHERE Status!='OK'" of wmi) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Hardware - Windows (2998512).bes b/Sites/Windows Management/Fixlets/Analyses/Hardware - Windows (2998512).bes index 3fe38f5b5..81c904eb4 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Hardware - Windows (2998512).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Hardware - Windows (2998512).bes @@ -1,37 +1,37 @@ - - - - - Hardware - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - NOT in proxy agent context - BESC - string value of select "Manufacturer from Win32_ComputerSystem" of wmi - string values of selects "IdentifyingNumber from Win32_ComputerSystemProduct" of wmi - string values of selects "Name from Win32_VideoController" of wmi - string values of selects "Name from Win32_SoundDevice" of wmi - number of active devices whose(class of it = "Monitor") - string values of selects "Caption from Win32_DiskDrive" of wmi - number of string values of selects "Caption from Win32_DiskDrive" of wmi - descriptions of active devices whose (class of it = "Monitor") - number of active devices whose(class of it = "Monitor") - string values of selects "Caption from Win32_CDROMDrive" of wmi - number of string values of selects "Caption from Win32_CDROMDrive" of wmi - if (exists select "VideoModeDescription from Win32_VideoController" whose (type of it = 8) of wmi) then (preceding texts of lasts " x" of (string values of selects "VideoModeDescription from Win32_VideoController" whose (type of it = 8) of wmi)) else ("N/A") - ((it as integer/1024) as string & " MB") of (string values of selects "MaxCapacity from Win32_PhysicalMemoryArray where Use='3'" of wmi) - (description of it | friendly name of it, problem id of it) of active devices whose (exist problem id of it) - number of string values of selects "Caption from Win32_CDROMDrive where MediaLoaded=True" of wmi - string values of properties "FriendlyName" of select objects "* from MSFT_Disk where IsOffline=True" of wmis "ROOT/Microsoft/Windows/Storage" -
-
+ + + + + Hardware - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + string value of select "Manufacturer from Win32_ComputerSystem" of wmi + string values of selects "IdentifyingNumber from Win32_ComputerSystemProduct" of wmi + string values of selects "Name from Win32_VideoController" of wmi + string values of selects "Name from Win32_SoundDevice" of wmi + number of active devices whose(class of it = "Monitor") + string values of selects "Caption from Win32_DiskDrive" of wmi + number of string values of selects "Caption from Win32_DiskDrive" of wmi + descriptions of active devices whose (class of it = "Monitor") + number of active devices whose(class of it = "Monitor") + string values of selects "Caption from Win32_CDROMDrive" of wmi + number of string values of selects "Caption from Win32_CDROMDrive" of wmi + if (exists select "VideoModeDescription from Win32_VideoController" whose (type of it = 8) of wmi) then (preceding texts of lasts " x" of (string values of selects "VideoModeDescription from Win32_VideoController" whose (type of it = 8) of wmi)) else ("N/A") + ((it as integer/1024) as string & " MB") of (string values of selects "MaxCapacity from Win32_PhysicalMemoryArray where Use='3'" of wmi) + (description of it | friendly name of it, problem id of it) of active devices whose (exist problem id of it) + number of string values of selects "Caption from Win32_CDROMDrive where MediaLoaded=True" of wmi + string values of properties "FriendlyName" of select objects "* from MSFT_Disk where IsOffline=True" of wmis "ROOT/Microsoft/Windows/Storage" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Hyper-V Guest - Windows (2998484).bes b/Sites/Windows Management/Fixlets/Analyses/Hyper-V Guest - Windows (2998484).bes index 083b73899..8599e7f8b 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Hyper-V Guest - Windows (2998484).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Hyper-V Guest - Windows (2998484).bes @@ -1,25 +1,25 @@ - - - - - Hyper-V Guest - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - ((value "manufacturer" of structure "system_information" of smbios as string) contains "Microsoft") - = "8.2.1078.0") then in proxy agent context else false)) then "N/A" else (if exists true whose (if true then( (((item 0 of it contains "VMware") or ((item 0 of it contains "Microsoft") and not (item 1 of it as lowercase contains "surface")) or (item 0 of it contains "Xen")) of ((value "manufacturer" of it as string, value "product_name" of it as string) of structure "system_information" of smbios))) else false) then "Virtual" else "Physical")) = "Virtual"]]> - BESC - value "VirtualMachineId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" of native registry - value "VirtualMachineName" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" of native registry - value "PhysicalHostNameFullyQualified" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" of native registry -
-
+ + + + + Hyper-V Guest - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + ((value "manufacturer" of structure "system_information" of smbios as string) contains "Microsoft") + = "8.2.1078.0") then in proxy agent context else false)) then "N/A" else (if exists true whose (if true then( (((item 0 of it contains "VMware") or ((item 0 of it contains "Microsoft") and not (item 1 of it as lowercase contains "surface")) or (item 0 of it contains "Xen")) of ((value "manufacturer" of it as string, value "product_name" of it as string) of structure "system_information" of smbios))) else false) then "Virtual" else "Physical")) = "Virtual"]]> + BESC + value "VirtualMachineId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" of native registry + value "VirtualMachineName" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" of native registry + value "PhysicalHostNameFullyQualified" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Hyper-V Host - Windows (2998252).bes b/Sites/Windows Management/Fixlets/Analyses/Hyper-V Host - Windows (2998252).bes index 5791b1fd5..421c3db92 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Hyper-V Host - Windows (2998252).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Hyper-V Host - Windows (2998252).bes @@ -1,23 +1,23 @@ - - - - - Hyper-V Host - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists service "vmcompute" - BESC - (value "FriendlyName" of it as string, name of it as string) of keys of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmsmp\parameters\SwitchList" of native registry - (string value of property "ElementName" of it, (if (it = "2") then "Running" else (if (it = "3") then "Off" else (if (it = "6") then "Saved" else "Other"))) of (string value of property "EnabledState" of it) , (if (it = "0") then "No Replication" else (if (it = "1") then "Healthy" else (if (it = "2") then "Replication Warning" else "Replication Critical"))) of (string value of property "ReplicationHealth" of it), integer value of property "OnTimeInMilliseconds" of it * millisecond ) of (select objects "* from Msvm_ComputerSystem" of wmi "root\virtualization\v2") whose (string value of property "Caption" of it does not contain "Hosting") -
-
+ + + + + Hyper-V Host - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "vmcompute" + BESC + (value "FriendlyName" of it as string, name of it as string) of keys of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmsmp\parameters\SwitchList" of native registry + (string value of property "ElementName" of it, (if (it = "2") then "Running" else (if (it = "3") then "Off" else (if (it = "6") then "Saved" else "Other"))) of (string value of property "EnabledState" of it) , (if (it = "0") then "No Replication" else (if (it = "1") then "Healthy" else (if (it = "2") then "Replication Warning" else "Replication Critical"))) of (string value of property "ReplicationHealth" of it), integer value of property "OnTimeInMilliseconds" of it * millisecond ) of (select objects "* from Msvm_ComputerSystem" of wmi "root\virtualization\v2") whose (string value of property "Caption" of it does not contain "Hosting") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/In-Place Upgrade Failure Information (2998651).bes b/Sites/Windows Management/Fixlets/Analyses/In-Place Upgrade Failure Information (2998651).bes index 765d42446..b1ba072d2 100644 --- a/Sites/Windows Management/Fixlets/Analyses/In-Place Upgrade Failure Information (2998651).bes +++ b/Sites/Windows Management/Fixlets/Analyses/In-Place Upgrade Failure Information (2998651).bes @@ -1,26 +1,26 @@ - - - - - In-Place Upgrade Failure Information - - exist files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder - - x-fixlet-modification-time - Fri, 22 Oct 2021 15:07:26 +0000 - - BESC - preceding texts of lasts "</FailureDetails>" of following texts of firsts "<FailureDetails>" of lines containing "<FailureDetails>" of files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder - preceding texts of lasts "</FailureData>" of following texts of firsts "<FailureData>" of lines containing "<FailureData>" of files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder - preceding texts of lasts "</Remediation>" of following texts of firsts "<Remediation>" of lines containing "<Remediation>" of files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder - - + + + + + In-Place Upgrade Failure Information + + exist files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder + + x-fixlet-modification-time + Fri, 22 Oct 2021 15:07:26 +0000 + + BESC + preceding texts of lasts "</FailureDetails>" of following texts of firsts "<FailureDetails>" of lines containing "<FailureDetails>" of files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder + preceding texts of lasts "</FailureData>" of following texts of firsts "<FailureData>" of lines containing "<FailureData>" of files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder + preceding texts of lasts "</Remediation>" of following texts of firsts "<Remediation>" of lines containing "<Remediation>" of files "setupdiagresults.xml" of folder "Windows\Logs\SetupDiag" of drive of system folder + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Inactive Users (2994557).bes b/Sites/Windows Management/Fixlets/Analyses/Inactive Users (2994557).bes index 97bad0b3e..3cf5ae3ad 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Inactive Users (2994557).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Inactive Users (2994557).bes @@ -1,24 +1,24 @@ - - - - - Inactive Users - Lists the user accounts that have not logged onto the system in the last 30 days. - name of operating system as lowercase starts with "win" - - x-fixlet-modification-time - Wed, 07 Aug 2013 19:20:29 +0000 - - BESC - (name of it) of users whose ((now - (last logon of it) > 30 * day) and name of it does not contain "$") - - + + + + + Inactive Users + Lists the user accounts that have not logged onto the system in the last 30 days. + name of operating system as lowercase starts with "win" + + x-fixlet-modification-time + Wed, 07 Aug 2013 19:20:29 +0000 + + BESC + (name of it) of users whose ((now - (last logon of it) > 30 * day) and name of it does not contain "$") + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Intel vPro Audit - Windows (2995830).bes b/Sites/Windows Management/Fixlets/Analyses/Intel vPro Audit - Windows (2995830).bes index fe79bdada..35ad0859d 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Intel vPro Audit - Windows (2995830).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Intel vPro Audit - Windows (2995830).bes @@ -1,25 +1,25 @@ - - - - - Intel vPro Audit - Windows - - windows of operating system - - x-fixlet-modification-time - Mon, 04 Jan 2016 21:36:29 +0000 - - BESC - node values of xpaths "/PlatformDiscovery/Solution[@name='Intel(R) AMT']/@state" of xml documents of files "results_Intel_Platform_Discovery.xml" of folders "__Global/Logs" of ((data folder of client)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client)) - modification times of files "results_Intel_Platform_Discovery.xml" of folders "__Global/Logs" of ((data folder of client)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client)) - - + + + + + Intel vPro Audit - Windows + + windows of operating system + + x-fixlet-modification-time + Mon, 04 Jan 2016 21:36:29 +0000 + + BESC + node values of xpaths "/PlatformDiscovery/Solution[@name='Intel(R) AMT']/@state" of xml documents of files "results_Intel_Platform_Discovery.xml" of folders "__Global/Logs" of ((data folder of client)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client)) + modification times of files "results_Intel_Platform_Discovery.xml" of folders "__Global/Logs" of ((data folder of client)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client)) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Internet Explorer - Windows (2998393).bes b/Sites/Windows Management/Fixlets/Analyses/Internet Explorer - Windows (2998393).bes index bda6ba65a..4db8bccbf 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Internet Explorer - Windows (2998393).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Internet Explorer - Windows (2998393).bes @@ -1,21 +1,21 @@ - - - - - Internet Explorer - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BESC - (name of it, it) of values of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMapKey" of native registry -
-
+ + + + + Internet Explorer - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + (name of it, it) of values of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMapKey" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Internet Explorer Configuration - Windows (2994779).bes b/Sites/Windows Management/Fixlets/Analyses/Internet Explorer Configuration - Windows (2994779).bes index 47848d86c..3461826b7 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Internet Explorer Configuration - Windows (2994779).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Internet Explorer Configuration - Windows (2994779).bes @@ -1,27 +1,27 @@ - - - - - Internet Explorer Configuration - Windows - This is a work in progress.

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - - x-fixlet-modification-time - Wed, 06 May 2015 14:11:57 +0000 - - BESC - versions of regapps "iexplore.exe" - unique values whose(it != "") of (it as string as trimmed string) of values "AutoConfigURL" of keys "Software\Microsoft\Windows\CurrentVersion\Internet Settings" of keys whose(exists keys "Software\Microsoft\Windows\CurrentVersion\Internet Settings" of it) of keys "HKEY_USERS" of (x64 registries; x32 registries) -
-
+ + + + + Internet Explorer Configuration - Windows + This is a work in progress.

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + + x-fixlet-modification-time + Wed, 06 May 2015 14:11:57 +0000 + + BESC + versions of regapps "iexplore.exe" + unique values whose(it != "") of (it as string as trimmed string) of values "AutoConfigURL" of keys "Software\Microsoft\Windows\CurrentVersion\Internet Settings" of keys whose(exists keys "Software\Microsoft\Windows\CurrentVersion\Internet Settings" of it) of keys "HKEY_USERS" of (x64 registries; x32 registries) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Is Docked (74).bes b/Sites/Windows Management/Fixlets/Analyses/Is Docked (74).bes index d3c4f1134..dbfc96ae3 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Is Docked (74).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Is Docked (74).bes @@ -1,21 +1,21 @@ - - - - - Is Docked - Determines if a computer is docked or not - name of operating system as lowercase contains "win" and exists wmi - BESC - (if it = 1 then "Other" else if it = 2 then "Unknown" else if it = 3 then "Desktop" else if it = 4 then "Low Profile Desktop" else if it = 5 then "Pizza Box" else if it = 6 then "Mini Tower" else if it = 7 then "Tower" else if it = 8 then "Portable" else if it = 9 then "Laptop" else if it = 10 then "Notebook" else if it = 11 then "Hand Held" else if it = 12 then "Docking Station" else if it = 13 then "All in One" else if it = 14 then "Sub Notebook" else if it = 15 then "Space-Saving" else if it = 16 then "Lunch Box" else if it = 17 then "Main System Chassis" else if it = 18 then "Expansion Chassis" else if it = 19 then "SubChassis" else if it = 20 then "Bus Expansion Chassis" else if it = 21 then "Peripheral Chassis" else if it = 22 then "Storage Chassis" else if it = 23 then "Rack Mount Chassis" else if it = 24 then "Sealed-Case PC" else "No Description") of (integer values of selects "ChassisTypes from Win32_SystemEnclosure" of wmi) - if exists (integer values of selects "ChassisTypes from Win32_SystemEnclosure" of wmi) whose (it = 12 or it = 18 or it = 20 or it = 21) then "Docked" else "Not Docked" - - + + + + + Is Docked + Determines if a computer is docked or not + name of operating system as lowercase contains "win" and exists wmi + BESC + (if it = 1 then "Other" else if it = 2 then "Unknown" else if it = 3 then "Desktop" else if it = 4 then "Low Profile Desktop" else if it = 5 then "Pizza Box" else if it = 6 then "Mini Tower" else if it = 7 then "Tower" else if it = 8 then "Portable" else if it = 9 then "Laptop" else if it = 10 then "Notebook" else if it = 11 then "Hand Held" else if it = 12 then "Docking Station" else if it = 13 then "All in One" else if it = 14 then "Sub Notebook" else if it = 15 then "Space-Saving" else if it = 16 then "Lunch Box" else if it = 17 then "Main System Chassis" else if it = 18 then "Expansion Chassis" else if it = 19 then "SubChassis" else if it = 20 then "Bus Expansion Chassis" else if it = 21 then "Peripheral Chassis" else if it = 22 then "Storage Chassis" else if it = 23 then "Rack Mount Chassis" else if it = 24 then "Sealed-Case PC" else "No Description") of (integer values of selects "ChassisTypes from Win32_SystemEnclosure" of wmi) + if exists (integer values of selects "ChassisTypes from Win32_SystemEnclosure" of wmi) whose (it = 12 or it = 18 or it = 20 or it = 21) then "Docked" else "Not Docked" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/KB5022842 on Win 2022 (2998680).bes b/Sites/Windows Management/Fixlets/Analyses/KB5022842 on Win 2022 (2998680).bes index 3c3e37d75..e8e5a3f21 100644 --- a/Sites/Windows Management/Fixlets/Analyses/KB5022842 on Win 2022 (2998680).bes +++ b/Sites/Windows Management/Fixlets/Analyses/KB5022842 on Win 2022 (2998680).bes @@ -1,33 +1,33 @@ - - - - - KB5022842 on Win 2022 - Only relevant for Win2022. -Looks up installed hotfix KB5022842 via wmis and checks registry to see check state of secure boot. - -Confirmed to work if both values are True. -It will result in the VM getting tripped up next boot if running on vmware. -Might happen to all Hypervisors, but none in our environment. - -Can be easily modified to look for whatever specific KB you are trying to locate. - - ( (name of it as lowercase = "Win2022" as lowercase ) of operating system) - - x-fixlet-modification-time - Mon, 20 Feb 2023 12:50:53 +0000 - - BESC - (exists (string values of properties "HotFixID" of it) whose (it = "KB5022842") of select objects "HotFixID from Win32_QuickFixEngineering" of wmis) as string - exists it whose(1 = it as integer) of unique values of (it as string) of values "UEFISecureBootEnabled" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" of (x64 registries; x32 registries) - - + + + + + KB5022842 on Win 2022 + Only relevant for Win2022. +Looks up installed hotfix KB5022842 via wmis and checks registry to see check state of secure boot. + +Confirmed to work if both values are True. +It will result in the VM getting tripped up next boot if running on vmware. +Might happen to all Hypervisors, but none in our environment. + +Can be easily modified to look for whatever specific KB you are trying to locate. + + ( (name of it as lowercase = "Win2022" as lowercase ) of operating system) + + x-fixlet-modification-time + Mon, 20 Feb 2023 12:50:53 +0000 + + BESC + (exists (string values of properties "HotFixID" of it) whose (it = "KB5022842") of select objects "HotFixID from Win32_QuickFixEngineering" of wmis) as string + exists it whose(1 = it as integer) of unique values of (it as string) of values "UEFISecureBootEnabled" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" of (x64 registries; x32 registries) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Laptop Battery Audit - Windows (2994755).bes b/Sites/Windows Management/Fixlets/Analyses/Laptop Battery Audit - Windows (2994755).bes index c195ea529..c055625be 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Laptop Battery Audit - Windows (2994755).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Laptop Battery Audit - Windows (2994755).bes @@ -1,51 +1,51 @@ - - - - - Laptop Battery Audit - Windows - This analysis uses a combination of SMBIOS, WMI, and OMCI ( Dell Command | Monitor ) to report on batteries connected to a system. ( in particular laptop batteries, but also battery backups in some cases )

-

The best way to determine if a battery needs replaced is to look at the following properties:  "% battery life in capacity", "Battery Status", and "Battery Manufacture Date"

-

In the case of Dell Systems, the best data will be returned if Dell Command | Monitor (also known as OMCI) is installed. See the fixlet available here to install Dell OMCI:  http://bigfix.me/fixlet/details/3918

-

There is a related analysis for Apple OS X systems available here:  http://bigfix.me/analysis/details/2994537

-

 

-

References:

-

http://dmtf.org/sites/default/files/standards/documents/DSP0134_2.8.0.pdf

-

http://bigfix.me/relevance/details/2999628

-

http://www.dell.com/support/Manuals/us/en/19/Topic/dell-opnmang-clnt-instr-v9.0.0/Dell_Command_Monitor_Ref_Guide-v1/en-us/GUID-0176ACFB-3FF2-4895-9521-33C9BC948F0B

-

http://msdn.microsoft.com/en-us/library/aa394074%28v=vs.85%29.aspx

-

http://blogs.technet.com/b/heyscriptingguy/archive/2010/07/31/using-windows-powershell-to-determine-if-a-laptop-is-on-battery-power.aspx

-

 

-

 

]]>
- windows of operating system - (exists structures whose(name of it as lowercase = "portable_battery") of smbios) OR (exists selects "* from Win32_Battery" of wmi) OR (exists selects "* from Win32_PortableBattery" of wmis) OR (exists selects "* from DCIM_Battery" of wmis "root\dcim\sysman") - - x-fixlet-modification-time - Thu, 18 Dec 2014 19:32:59 +0000 - - BESC - maxima of ((number of structures whose(name of it as lowercase = "portable_battery") of smbios);(maxima of multiplicities of unique values of (preceding texts of firsts "=" of it) of (it as string) of selects "* from Win32_Battery" of wmis);(maxima of multiplicities of unique values of (preceding texts of firsts "=" of it) of (it as string) of selects "* from DCIM_Battery" of wmis "root\dcim\sysman")) - (name of it as trimmed string & "=" & it as string as trimmed string) of values of structures whose(name of it as lowercase = "portable_battery") of smbios - if not exists (selects "FullChargeCapacity from DCIM_Battery" of wmis "root\dcim\sysman") then ERROR "UNKNOWN" else ( (item 0 of it * 100 / item 1 of it) of (integer value of property "FullChargeCapacity" of it, integer value of property "DesignCapacity" of it) of select objects "* from DCIM_Battery" whose(exists integer values of properties "FullChargeCapacity" of it AND exists integer values of properties "DesignCapacity" of it) of wmis "root\dcim\sysman" ) - unique values whose(it != "") of (it as trimmed string) of string values of (if not exists (selects "Status from DCIM_Battery" of wmis "root\dcim\sysman") then it else (selects "Status from DCIM_Battery" of wmis "root\dcim\sysman")) of (selects "Status from Win32_Battery" of wmis) - unique values of (it / 1000) of significance places 2 of (item 0 of it * item 1 of it) of (value "design_capacity" of it as string as trimmed string as integer as floating point, value "design_capacity_multiplier" of it as string as trimmed string as integer as floating point) of structures "portable_battery" of smbios - unique values of (it / 1000) of significance places 2 of (it as string as trimmed string as integer as floating point) of values "design_voltage" of structures "portable_battery" of smbios - unique values of (it / 100) of significance places 0 of (it * 100) of (item 0 of it / item 1 of it) of (values "design_capacity" of it as string as trimmed string as integer as floating point, values "design_voltage" of it as string as trimmed string as integer as floating point) of structures "portable_battery" of smbios - unique values of (it as string as trimmed string) of values "manufacture_date" of structures "portable_battery" of smbios - (if it != "Unknown" then it else ( if (exists (unique values of (it as string as trimmed string) whose(it != "") of values "sbds_device_chemistry" of structures "portable_battery" of smbios)) then (unique values of (it as string as trimmed string) whose(it != "") of values "sbds_device_chemistry" of structures "portable_battery" of smbios) else "Unknown" )) of unique values of ( if exists it then it else "Unknown" ) of (tuple string items ( (it as string as trimmed string as integer) of values "device_chemistry" of structures "portable_battery" of smbios ) of "Unknown, Other, Unknown, Lead Acid, NiCad, NiMH, LION, Zinc Air, LiP") - unique values whose(it != /* This seems to be what Windows/WMI returns when it doesn't really have an answer: */ 71582788) of integer values of (if not exists (selects "EstimatedRunTime from DCIM_Battery" of wmis "root\dcim\sysman") whose( (exists integer values of it) AND (71582788 != integer value of it) ) then it else (selects "EstimatedRunTime from DCIM_Battery" of wmis "root\dcim\sysman")) of (selects "EstimatedRunTime from Win32_Battery" of wmis) - unique values of (it as trimmed string) whose(it != "") of ((string values of selects "Name from Win32_Battery" of wmis);(string values of selects "Name from DCIM_Battery" of wmis "root\dcim\sysman");((it as string) of values "device_name" of structures "portable_battery" of smbios)) - unique values of (it as trimmed string) whose(it != "") of string values of selects "DeviceID from Win32_Battery" of wmis - unique values of integer values of selects "Availability from Win32_Battery" of wmis - unique values of (tuple string items ( integer values of selects "Chemistry from Win32_Battery" of wmis ) of "Unknown, Other, Unknown, Lead Acid, NiCad, NiMH, LION, Zinc Air, LiP, Unknown") - unique values of (tuple string items ( integer values of selects "Chemistry from Win32_PortableBattery" of wmis ) of "Unknown, Other, Unknown, Lead Acid, NiCad, NiMH, LION, Zinc Air, LiP, Unknown") -
-
+ + + + + Laptop Battery Audit - Windows + This analysis uses a combination of SMBIOS, WMI, and OMCI ( Dell Command | Monitor ) to report on batteries connected to a system. ( in particular laptop batteries, but also battery backups in some cases )

+

The best way to determine if a battery needs replaced is to look at the following properties:  "% battery life in capacity", "Battery Status", and "Battery Manufacture Date"

+

In the case of Dell Systems, the best data will be returned if Dell Command | Monitor (also known as OMCI) is installed. See the fixlet available here to install Dell OMCI:  http://bigfix.me/fixlet/details/3918

+

There is a related analysis for Apple OS X systems available here:  http://bigfix.me/analysis/details/2994537

+

 

+

References:

+

http://dmtf.org/sites/default/files/standards/documents/DSP0134_2.8.0.pdf

+

http://bigfix.me/relevance/details/2999628

+

http://www.dell.com/support/Manuals/us/en/19/Topic/dell-opnmang-clnt-instr-v9.0.0/Dell_Command_Monitor_Ref_Guide-v1/en-us/GUID-0176ACFB-3FF2-4895-9521-33C9BC948F0B

+

http://msdn.microsoft.com/en-us/library/aa394074%28v=vs.85%29.aspx

+

http://blogs.technet.com/b/heyscriptingguy/archive/2010/07/31/using-windows-powershell-to-determine-if-a-laptop-is-on-battery-power.aspx

+

 

+

 

]]>
+ windows of operating system + (exists structures whose(name of it as lowercase = "portable_battery") of smbios) OR (exists selects "* from Win32_Battery" of wmi) OR (exists selects "* from Win32_PortableBattery" of wmis) OR (exists selects "* from DCIM_Battery" of wmis "root\dcim\sysman") + + x-fixlet-modification-time + Thu, 18 Dec 2014 19:32:59 +0000 + + BESC + maxima of ((number of structures whose(name of it as lowercase = "portable_battery") of smbios);(maxima of multiplicities of unique values of (preceding texts of firsts "=" of it) of (it as string) of selects "* from Win32_Battery" of wmis);(maxima of multiplicities of unique values of (preceding texts of firsts "=" of it) of (it as string) of selects "* from DCIM_Battery" of wmis "root\dcim\sysman")) + (name of it as trimmed string & "=" & it as string as trimmed string) of values of structures whose(name of it as lowercase = "portable_battery") of smbios + if not exists (selects "FullChargeCapacity from DCIM_Battery" of wmis "root\dcim\sysman") then ERROR "UNKNOWN" else ( (item 0 of it * 100 / item 1 of it) of (integer value of property "FullChargeCapacity" of it, integer value of property "DesignCapacity" of it) of select objects "* from DCIM_Battery" whose(exists integer values of properties "FullChargeCapacity" of it AND exists integer values of properties "DesignCapacity" of it) of wmis "root\dcim\sysman" ) + unique values whose(it != "") of (it as trimmed string) of string values of (if not exists (selects "Status from DCIM_Battery" of wmis "root\dcim\sysman") then it else (selects "Status from DCIM_Battery" of wmis "root\dcim\sysman")) of (selects "Status from Win32_Battery" of wmis) + unique values of (it / 1000) of significance places 2 of (item 0 of it * item 1 of it) of (value "design_capacity" of it as string as trimmed string as integer as floating point, value "design_capacity_multiplier" of it as string as trimmed string as integer as floating point) of structures "portable_battery" of smbios + unique values of (it / 1000) of significance places 2 of (it as string as trimmed string as integer as floating point) of values "design_voltage" of structures "portable_battery" of smbios + unique values of (it / 100) of significance places 0 of (it * 100) of (item 0 of it / item 1 of it) of (values "design_capacity" of it as string as trimmed string as integer as floating point, values "design_voltage" of it as string as trimmed string as integer as floating point) of structures "portable_battery" of smbios + unique values of (it as string as trimmed string) of values "manufacture_date" of structures "portable_battery" of smbios + (if it != "Unknown" then it else ( if (exists (unique values of (it as string as trimmed string) whose(it != "") of values "sbds_device_chemistry" of structures "portable_battery" of smbios)) then (unique values of (it as string as trimmed string) whose(it != "") of values "sbds_device_chemistry" of structures "portable_battery" of smbios) else "Unknown" )) of unique values of ( if exists it then it else "Unknown" ) of (tuple string items ( (it as string as trimmed string as integer) of values "device_chemistry" of structures "portable_battery" of smbios ) of "Unknown, Other, Unknown, Lead Acid, NiCad, NiMH, LION, Zinc Air, LiP") + unique values whose(it != /* This seems to be what Windows/WMI returns when it doesn't really have an answer: */ 71582788) of integer values of (if not exists (selects "EstimatedRunTime from DCIM_Battery" of wmis "root\dcim\sysman") whose( (exists integer values of it) AND (71582788 != integer value of it) ) then it else (selects "EstimatedRunTime from DCIM_Battery" of wmis "root\dcim\sysman")) of (selects "EstimatedRunTime from Win32_Battery" of wmis) + unique values of (it as trimmed string) whose(it != "") of ((string values of selects "Name from Win32_Battery" of wmis);(string values of selects "Name from DCIM_Battery" of wmis "root\dcim\sysman");((it as string) of values "device_name" of structures "portable_battery" of smbios)) + unique values of (it as trimmed string) whose(it != "") of string values of selects "DeviceID from Win32_Battery" of wmis + unique values of integer values of selects "Availability from Win32_Battery" of wmis + unique values of (tuple string items ( integer values of selects "Chemistry from Win32_Battery" of wmis ) of "Unknown, Other, Unknown, Lead Acid, NiCad, NiMH, LION, Zinc Air, LiP, Unknown") + unique values of (tuple string items ( integer values of selects "Chemistry from Win32_PortableBattery" of wmis ) of "Unknown, Other, Unknown, Lead Acid, NiCad, NiMH, LION, Zinc Air, LiP, Unknown") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Local Admin_User Audit - Windows (2994547).bes b/Sites/Windows Management/Fixlets/Analyses/Local Admin_User Audit - Windows (2994547).bes index 68dd9a92b..c7dfcb363 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Local Admin_User Audit - Windows (2994547).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Local Admin_User Audit - Windows (2994547).bes @@ -1,28 +1,28 @@ - - - - - Local Admin/User Audit - Windows - This analysis will audit the number of local admins on the system.

-

From here: http://bigfix.me/cdb/analysis/49

]]>
- (windows of operating system) - (exists local group "Administrators") - - x-fixlet-modification-time - Wed, 10 Jul 2013 17:52:56 +0000 - - BESC - (number of members whose (it as string contains computer name) of local group "Administrators" as string) - (concatenation ", " of (members whose (it as string contains computer name) of local group "Administrators" as string)) - (concatenation ", " of (members whose (it as string contains computer name) of local group "Users" as string)) -
-
+ + + + + Local Admin/User Audit - Windows + This analysis will audit the number of local admins on the system.

+

From here: http://bigfix.me/cdb/analysis/49

]]>
+ (windows of operating system) + (exists local group "Administrators") + + x-fixlet-modification-time + Wed, 10 Jul 2013 17:52:56 +0000 + + BESC + (number of members whose (it as string contains computer name) of local group "Administrators" as string) + (concatenation ", " of (members whose (it as string contains computer name) of local group "Administrators" as string)) + (concatenation ", " of (members whose (it as string contains computer name) of local group "Users" as string)) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Local Client Administrators (78).bes b/Sites/Windows Management/Fixlets/Analyses/Local Client Administrators (78).bes index ee23e66fb..70e53e45f 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Local Client Administrators (78).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Local Client Administrators (78).bes @@ -1,25 +1,25 @@ - - - - - Local Client Administrators - Local Administrators - name OF operating system AS lowercase starts with "win" AS lowercase - NOT(name OF operating system AS lowercase starts with "win200" AS lowercase) - - x-fixlet-modification-time - Fri, 09 Mar 2012 16:24:02 +0000 - - BESC - members of local group "Administrators" - - + + + + + Local Client Administrators + Local Administrators + name OF operating system AS lowercase starts with "win" AS lowercase + NOT(name OF operating system AS lowercase starts with "win200" AS lowercase) + + x-fixlet-modification-time + Fri, 09 Mar 2012 16:24:02 +0000 + + BESC + members of local group "Administrators" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Lockout Events from DC (2998671).bes b/Sites/Windows Management/Fixlets/Analyses/Lockout Events from DC (2998671).bes index 9ef52b53f..8019d9caf 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Lockout Events from DC (2998671).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Lockout Events from DC (2998671).bes @@ -1,26 +1,26 @@ - - - - - Lockout Events from DC - This analysis search the domain controllers security event log for the 4740 (lockout user) event ID. It search in the las 24 hour. 

-

 

]]>
- windows of operating system - product type of operating system = nt domain controller product type - - x-fixlet-modification-time - Wed, 23 Mar 2022 17:31:52 +0000 - - BESC - computer name, ((month of it as two digits & "/" & day_of_month of it as two digits & "/" & year of it as string) of dates (local time zone) of times generated of it, (time of times (local time zone) of times generated of it), concatenation of substrings separated by "%0d%0a" of (preceding text of first "%0d%0a" of following text of last "Account Name:%09%09" of it) of (descriptions of it)) of records whose (event id of it = 4740 and now - time generated of it < 1*day) of (security event log) -
-
+ + + + + Lockout Events from DC + This analysis search the domain controllers security event log for the 4740 (lockout user) event ID. It search in the las 24 hour. 

+

 

]]>
+ windows of operating system + product type of operating system = nt domain controller product type + + x-fixlet-modification-time + Wed, 23 Mar 2022 17:31:52 +0000 + + BESC + computer name, ((month of it as two digits & "/" & day_of_month of it as two digits & "/" & year of it as string) of dates (local time zone) of times generated of it, (time of times (local time zone) of times generated of it), concatenation of substrings separated by "%0d%0a" of (preceding text of first "%0d%0a" of following text of last "Account Name:%09%09" of it) of (descriptions of it)) of records whose (event id of it = 4740 and now - time generated of it < 1*day) of (security event log) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Logged in users with local admin rights (2998581).bes b/Sites/Windows Management/Fixlets/Analyses/Logged in users with local admin rights (2998581).bes index ee7422592..83cf9cbd0 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Logged in users with local admin rights (2998581).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Logged in users with local admin rights (2998581).bes @@ -1,26 +1,26 @@ - - - - - Logged in users with local admin rights - This analysis will show any logged in user with local admin rights on their workstation. - windows of operating system - (select ("ProductType from Win32_OperatingSystem") of WMI) as string contains "1" - exists (members whose ((it as a string) contains (name of logged on user)) of local group "administrators") - - x-fixlet-modification-time - Thu, 25 Jan 2018 19:43:39 +0000 - - BESC - (members whose ((it as a string) contains (name of logged on user)) of local group "administrators") - - + + + + + Logged in users with local admin rights + This analysis will show any logged in user with local admin rights on their workstation. + windows of operating system + (select ("ProductType from Win32_OperatingSystem") of WMI) as string contains "1" + exists (members whose ((it as a string) contains (name of logged on user)) of local group "administrators") + + x-fixlet-modification-time + Thu, 25 Jan 2018 19:43:39 +0000 + + BESC + (members whose ((it as a string) contains (name of logged on user)) of local group "administrators") + + diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010 verify (WannaCry &co.) (2998568).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010 verify (WannaCry &co.) (2998568).bes index 91ce29b6e..815f2ccd5 100644 --- a/Sites/Windows Management/Fixlets/Analyses/MS17-010 verify (WannaCry &co.) (2998568).bes +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010 verify (WannaCry &co.) (2998568).bes @@ -1,27 +1,27 @@ - - - - - MS17-010 verify (WannaCry &co.) - verify for MS17-010 vulnerability (WannaCry & co.)

-

version query based on https://support.microsoft.com/de-at/help/4023262/how-to-verify-that-ms17-010-is-installed

]]>
- windows of operating system - - x-fixlet-modification-time - Tue, 06 Jun 2017 14:03:11 +0000 - - BESC - ( ( ((name of it = "Win10" OR Name of it = "Win2016" AND build number of it as string = "14393") of operating system) AND it >= "10.0.14393.953" ) OR ( ((name of it = "Win10" AND build number of it as string = "10586") of operating system) AND it >= "10.0.10586.839") OR ( ((name of it = "Win10" AND build number of it as string = "10240") of operating system) AND it >= "10.0.10240.17319") OR ( ((name of it = "WinVista" OR name of it = "Win2008" ) of operating system) AND (it >= "6.0.6002.19743" OR it >= "6.0.6002.24067") ) OR ( ((name of it = "Win7" OR name of it = "Win2008R2") of operating system) AND it >= "6.1.7601.23689") OR ( ((name of it = "Win8" OR name of it = "Win2012" ) of operating system) AND (it >= "6.2.9200.22099")) OR ( ((name of it = "Win8.1" OR name of it = "Win2012R2" ) of operating system) AND (it >= "6.3.9600.18604")) OR ( ((name of it = "Win2003") of operating system) AND (it >= "5.2.3790.6021")) OR ( ((name of it = "WinXP") of operating system) AND (it >= "5.1.2600.7208")) ) of versions of files "srv.sys" of folders "drivers" of native system folders - operating system - version of file "srv.sys" of folder "drivers" of native system folder -
-
+ + + + + MS17-010 verify (WannaCry &co.) + verify for MS17-010 vulnerability (WannaCry & co.)

+

version query based on https://support.microsoft.com/de-at/help/4023262/how-to-verify-that-ms17-010-is-installed

]]>
+ windows of operating system + + x-fixlet-modification-time + Tue, 06 Jun 2017 14:03:11 +0000 + + BESC + ( ( ((name of it = "Win10" OR Name of it = "Win2016" AND build number of it as string = "14393") of operating system) AND it >= "10.0.14393.953" ) OR ( ((name of it = "Win10" AND build number of it as string = "10586") of operating system) AND it >= "10.0.10586.839") OR ( ((name of it = "Win10" AND build number of it as string = "10240") of operating system) AND it >= "10.0.10240.17319") OR ( ((name of it = "WinVista" OR name of it = "Win2008" ) of operating system) AND (it >= "6.0.6002.19743" OR it >= "6.0.6002.24067") ) OR ( ((name of it = "Win7" OR name of it = "Win2008R2") of operating system) AND it >= "6.1.7601.23689") OR ( ((name of it = "Win8" OR name of it = "Win2012" ) of operating system) AND (it >= "6.2.9200.22099")) OR ( ((name of it = "Win8.1" OR name of it = "Win2012R2" ) of operating system) AND (it >= "6.3.9600.18604")) OR ( ((name of it = "Win2003") of operating system) AND (it >= "5.2.3790.6021")) OR ( ((name of it = "WinXP") of operating system) AND (it >= "5.1.2600.7208")) ) of versions of files "srv.sys" of folders "drivers" of native system folders + operating system + version of file "srv.sys" of folder "drivers" of native system folder +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 _ Windows Server 2008 R2 (2998556).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 _ Windows Server 2008 R2 (2998556).bes index 8676b0a5d..577c96136 100644 --- a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 _ Windows Server 2008 R2 (2998556).bes +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 _ Windows Server 2008 R2 (2998556).bes @@ -1,31 +1,31 @@ - - - - - MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 / Windows Server 2008 R2 - - - - -

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

-

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
- (name of it = "Win7" or name of it = "Win2008R2") of operating system - - x-fixlet-modification-time - Wed, 17 May 2017 07:24:11 +0000 - - BESC - unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) - "6.1.7601.23689" - if (exists files "srv.sys" whose (version of it < "6.1.7601.23689") of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") -
-
+ + + + + MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 7 / Windows Server 2008 R2 + + + + +

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ (name of it = "Win7" or name of it = "Win2008R2") of operating system + + x-fixlet-modification-time + Wed, 17 May 2017 07:24:11 +0000 + + BESC + unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) + "6.1.7601.23689" + if (exists files "srv.sys" whose (version of it < "6.1.7601.23689") of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 _ Windows Server 2012 (2998557).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 _ Windows Server 2012 (2998557).bes index 8c8afcfd3..f34b4cf2e 100644 --- a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 _ Windows Server 2012 (2998557).bes +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 _ Windows Server 2012 (2998557).bes @@ -1,31 +1,31 @@ - - - - - MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 / Windows Server 2012 - - - - -

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

-

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
- ((name of it = "Win8" OR name of it = "Win2012") AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.2") of operating system - - x-fixlet-modification-time - Wed, 17 May 2017 07:24:29 +0000 - - BESC - unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) - "6.2.9200.22099" - if (exists files "srv.sys" whose (version of it < "6.2.9200.22099") of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") -
-
+ + + + + MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8 / Windows Server 2012 + + + + +

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ ((name of it = "Win8" OR name of it = "Win2012") AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.2") of operating system + + x-fixlet-modification-time + Wed, 17 May 2017 07:24:29 +0000 + + BESC + unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) + "6.2.9200.22099" + if (exists files "srv.sys" whose (version of it < "6.2.9200.22099") of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 _ Windows Server 2012 R2 (2998558).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 _ Windows Server 2012 R2 (2998558).bes index 305d5a664..fb29ef722 100644 --- a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 _ Windows Server 2012 R2 (2998558).bes +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 _ Windows Server 2012 R2 (2998558).bes @@ -1,31 +1,31 @@ - - - - - MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 / Windows Server 2012 R2 - - - - -

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

-

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
- (name of it = "Win8.1" OR name of it = "Win2012R2" OR (name of it = "Win8" OR name of it = "Win2012") AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.3") of operating system - - x-fixlet-modification-time - Wed, 17 May 2017 07:24:48 +0000 - - BESC - unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) - "6.3.9600.18604" - if (exists files "srv.sys" whose (version of it < "6.3.9600.18604") of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") -
-
+ + + + + MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows 8.1 / Windows Server 2012 R2 + + + + +

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ (name of it = "Win8.1" OR name of it = "Win2012R2" OR (name of it = "Win8" OR name of it = "Win2012") AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.3") of operating system + + x-fixlet-modification-time + Wed, 17 May 2017 07:24:48 +0000 + + BESC + unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) + "6.3.9600.18604" + if (exists files "srv.sys" whose (version of it < "6.3.9600.18604") of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista _ Windows Server 2008 (2998560).bes b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista _ Windows Server 2008 (2998560).bes index 99d9c809e..d6ef660f1 100644 --- a/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista _ Windows Server 2008 (2998560).bes +++ b/Sites/Windows Management/Fixlets/Analyses/MS17-010_ Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista _ Windows Server 2008 (2998560).bes @@ -1,31 +1,31 @@ - - - - - MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista / Windows Server 2008 - - - - -

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

-

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
- (name of it = "WinVista" OR name of it = "Win2008") of operating system - - x-fixlet-modification-time - Fri, 19 May 2017 19:49:03 +0000 - - BESC - unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) - if (exists files "srv.sys" whose ((it = "6.0.6002" AND it > "6.0.6002.23000") of version of it) of folders "drivers" of (system folder; native system folder)) then ("6.0.6002.24067") else ("6.0.6002.19743") - if (exists files "srv.sys" whose ((it = "6.0.6002" AND it < "6.0.6002.19743" OR it > "6.0.6002.23000" AND it < "6.0.6002.24067") of version of it) of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") -
-
+ + + + + MS17-010: Detect Vulnerability for WannaCry based on File Version of Srv.sys - Windows Vista / Windows Server 2008 + + + + +

Use this Analysis to detect the file version of your Srv.sys, and determine whether it is up-to-date to protect against WannaCry vulnerability.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ (name of it = "WinVista" OR name of it = "Win2008") of operating system + + x-fixlet-modification-time + Fri, 19 May 2017 19:49:03 +0000 + + BESC + unique values of versions of files "srv.sys" of folders "drivers" of (system folder; native system folder) + if (exists files "srv.sys" whose ((it = "6.0.6002" AND it > "6.0.6002.23000") of version of it) of folders "drivers" of (system folder; native system folder)) then ("6.0.6002.24067") else ("6.0.6002.19743") + if (exists files "srv.sys" whose ((it = "6.0.6002" AND it < "6.0.6002.19743" OR it > "6.0.6002.23000" AND it < "6.0.6002.24067") of version of it) of folders "drivers" of (system folder; native system folder)) then ("Yes") else ("No") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/MSSQL (2994632).bes b/Sites/Windows Management/Fixlets/Analyses/MSSQL (2994632).bes index e483dbc00..ea719dcef 100644 --- a/Sites/Windows Management/Fixlets/Analyses/MSSQL (2994632).bes +++ b/Sites/Windows Management/Fixlets/Analyses/MSSQL (2994632).bes @@ -1,44 +1,44 @@ - - - - - MSSQL - Some info about MS SQL

-

 

-

The latest version of this analysis can be found here:  http://bigfix.me/analysis/details/2994623

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - /* MSSQL */ (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) OR (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer" of native registry) OR ((exists local mssql databases) AND (exists runnings whose(it = TRUE) of local mssql databases)) - - x-fixlet-modification-time - Tue, 28 Jan 2014 22:40:58 +0000 - - BESC - value "SQLPath" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup" of native registry - value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion" of native registry - values "MSSQLSERVER" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry - values "DefaultData" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry - values "DefaultLog" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry - values "SQLDataRoot" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry - values "PatchLevel" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry - unique values of (((it as string) of values "Edition" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry);((it as string) of values "EditionType" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) - names of files whose(name of it as lowercase ends with ".mdf") of ((folders "DATA" of folders ((it as string) of values "SQLDataRoot" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) ; folders ((it as string) of values "DefaultData" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) - names of files whose(name of it as lowercase ends with ".ldf") of ((folders "DATA" of folders ((it as string) of values "SQLDataRoot" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) ; folders ((it as string) of values "DefaultLog" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) - values "BackupDirectory" of keys "MSSQLServer" of keys ((it as string) of values "MSSQLSERVER" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry - names of files of folders ((it as string) of values "BackupDirectory" of keys "MSSQLServer" of keys ((it as string) of values "MSSQLSERVER" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry) - instance names of local mssql databases - runnings of local mssql databases - (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) - (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer" of native registry) - exists runnings whose(it = TRUE) of local mssql databases -
-
+ + + + + MSSQL + Some info about MS SQL

+

 

+

The latest version of this analysis can be found here:  http://bigfix.me/analysis/details/2994623

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + /* MSSQL */ (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) OR (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer" of native registry) OR ((exists local mssql databases) AND (exists runnings whose(it = TRUE) of local mssql databases)) + + x-fixlet-modification-time + Tue, 28 Jan 2014 22:40:58 +0000 + + BESC + value "SQLPath" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup" of native registry + value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion" of native registry + values "MSSQLSERVER" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry + values "DefaultData" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + values "DefaultLog" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + values "SQLDataRoot" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + values "PatchLevel" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + unique values of (((it as string) of values "Edition" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry);((it as string) of values "EditionType" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) + names of files whose(name of it as lowercase ends with ".mdf") of ((folders "DATA" of folders ((it as string) of values "SQLDataRoot" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) ; folders ((it as string) of values "DefaultData" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) + names of files whose(name of it as lowercase ends with ".ldf") of ((folders "DATA" of folders ((it as string) of values "SQLDataRoot" of keys "Setup" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) ; folders ((it as string) of values "DefaultLog" of keys "MSSQLServer" of keys ((it as string) of value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry)) + values "BackupDirectory" of keys "MSSQLServer" of keys ((it as string) of values "MSSQLSERVER" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry + names of files of folders ((it as string) of values "BackupDirectory" of keys "MSSQLServer" of keys ((it as string) of values "MSSQLSERVER" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server" of native registry) + instance names of local mssql databases + runnings of local mssql databases + (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry) + (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer" of native registry) + exists runnings whose(it = TRUE) of local mssql databases +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft Deployment Toolkit - Windows (2998513).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft Deployment Toolkit - Windows (2998513).bes index 1a1eea9da..dd6c19e4a 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Microsoft Deployment Toolkit - Windows (2998513).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft Deployment Toolkit - Windows (2998513).bes @@ -1,30 +1,30 @@ - - - - - Microsoft Deployment Toolkit - Windows - Provides information regarding a Windows Operating System deployed using the Microsoft Deployment Toolkit.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists values "Task Sequence ID" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry - BESC - values "Task Sequence ID" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry - values "Task Sequence Name" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry - values "Task Sequence Version" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry - values "ProgressPercent" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry - values "ProgressText" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry - values "Deployment Method" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry - values "Deployment Source" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry - (it as date) of (last 2 of it & " " & (substring (4,2) of it as integer as month as three letters) & " " & first 4 of it) of firsts 8 of (values "Deployment Timestamp" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry as string) - values "Deployment Type" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry -
-
+ + + + + Microsoft Deployment Toolkit - Windows + Provides information regarding a Windows Operating System deployed using the Microsoft Deployment Toolkit.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists values "Task Sequence ID" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + BESC + values "Task Sequence ID" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "Task Sequence Name" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "Task Sequence Version" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "ProgressPercent" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "ProgressText" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "Deployment Method" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + values "Deployment Source" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry + (it as date) of (last 2 of it & " " & (substring (4,2) of it as integer as month as three letters) & " " & first 4 of it) of firsts 8 of (values "Deployment Timestamp" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry as string) + values "Deployment Type" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Deployment 4" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft IIS - Windows (2998511).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft IIS - Windows (2998511).bes index 217a3409e..fd0620184 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Microsoft IIS - Windows (2998511).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft IIS - Windows (2998511).bes @@ -1,27 +1,27 @@ - - - - - Microsoft IIS - Windows - Provides information on the currently installed Microsoft IIS environment.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists service "W3SVC" - BESC - if (exists wmis "ROOT\WebAdministration") then (string values of Selects "Name FROM Site" of wmis "ROOT\WebAdministration") else (string values of properties "ServerComment" of Select objects "ServerComment FROM IIsWebServerSetting" of wmis "ROOT\MicrosoftIISv2") - if (exists wmis "ROOT\WebAdministration") then (string values of selects "PhysicalPath FROM VirtualDirectory" of wmis "ROOT\WebAdministration") else (string values of selects "Path FROM IIsWebVirtualDirSetting" of wmis "ROOT\MicrosoftIISv2") - if (exists wmis "ROOT\WebAdministration") then ((string value of property "Name" of it) of Select objects "Name FROM ApplicationPool" of wmis "ROOT\WebAdministration") else ((following text of first "W3SVC/APPPOOLS/" of string value of property "Name" of it) of Select objects "Name FROM IIsApplicationPool" of wmis "ROOT\MicrosoftIISv2") - unique values of (value "MajorVersion" of it as string & "." & value "MinorVersion" of it as string) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp" of (x64 registries; x32 registries) - unique values of names of values whose (it = 1) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Components" of x32 registry - if (exists wmis "ROOT\WebAdministration") then ((string values of property "UserName" of it, string values of property "PhysicalPath" of it) of select objects "UserName,PhysicalPath FROM VirtualDirectory where UserName != ''" of wmis "ROOT\WebAdministration") else ((string values of property "UNCUserName" of it, string values of property "Path" of it) of select objects "UNCUserName,Path FROM IIsWebVirtualDirSetting where UNCUserName != ''" of wmis "ROOT\MicrosoftIISv2") -
-
+ + + + + Microsoft IIS - Windows + Provides information on the currently installed Microsoft IIS environment.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "W3SVC" + BESC + if (exists wmis "ROOT\WebAdministration") then (string values of Selects "Name FROM Site" of wmis "ROOT\WebAdministration") else (string values of properties "ServerComment" of Select objects "ServerComment FROM IIsWebServerSetting" of wmis "ROOT\MicrosoftIISv2") + if (exists wmis "ROOT\WebAdministration") then (string values of selects "PhysicalPath FROM VirtualDirectory" of wmis "ROOT\WebAdministration") else (string values of selects "Path FROM IIsWebVirtualDirSetting" of wmis "ROOT\MicrosoftIISv2") + if (exists wmis "ROOT\WebAdministration") then ((string value of property "Name" of it) of Select objects "Name FROM ApplicationPool" of wmis "ROOT\WebAdministration") else ((following text of first "W3SVC/APPPOOLS/" of string value of property "Name" of it) of Select objects "Name FROM IIsApplicationPool" of wmis "ROOT\MicrosoftIISv2") + unique values of (value "MajorVersion" of it as string & "." & value "MinorVersion" of it as string) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp" of (x64 registries; x32 registries) + unique values of names of values whose (it = 1) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Components" of x32 registry + if (exists wmis "ROOT\WebAdministration") then ((string values of property "UserName" of it, string values of property "PhysicalPath" of it) of select objects "UserName,PhysicalPath FROM VirtualDirectory where UserName != ''" of wmis "ROOT\WebAdministration") else ((string values of property "UNCUserName" of it, string values of property "Path" of it) of select objects "UNCUserName,Path FROM IIsWebVirtualDirSetting where UNCUserName != ''" of wmis "ROOT\MicrosoftIISv2") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft Office Software Protection Licensing Information - KMS - Windows (2994711).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft Office Software Protection Licensing Information - KMS - Windows (2994711).bes index 6d3be1016..0aea0f280 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Microsoft Office Software Protection Licensing Information - KMS - Windows (2994711).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft Office Software Protection Licensing Information - KMS - Windows (2994711).bes @@ -1,34 +1,34 @@ - - - - - Microsoft Office Software Protection Licensing Information - KMS - Windows - Retrieves information about Microsoft Office Software Protection Services.  For use with Office versions 2010 and newer.  (version 14+)

-

This analysis may not be accurate in all cases and may need some refinement for Win8 and the newest version of office.

]]>
- windows of operating system - exists wmi - = "14.0" as version) of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (registry;native registry)) OR (exists keys "OfficeSoftwareProtectionPlatform" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" of (native registry;registry))]]> - - x-fixlet-modification-time - Fri, 29 Aug 2014 12:58:48 +0000 - - BESC - concatenation "; " of string values of selects "Name from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi - concatenation "; " of unique values of (if it = 0 then "Unlicensed" else if it = 1 then "Licensed" else if it = 2 then "OOB Grace" else if it = 3 then "OOT Grace" else if it = 4 then "NonGenuineGrace" else if it = 5 then "Notification" else "<unkown>") of (integer values of selects "LicenseStatus from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi) - concatenation "; " of unique values of (it as string) of (if exists integer value of it and integer value of it >0 then now + (minute * (integer value of it)) else nothing) of ((selects "GracePeriodRemaining from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi)) - (if exists integer value of it and integer value of it = 1 then "Yes" else "No") of selects "IsKeyManagementServiceMachine from OfficeSoftwareProtectionService" of wmi - concatenation "; " of unique values of (if exists string value of it then preceding text of first " " of following text of last ", " of string value of it as string else nothing) of selects "Description from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi - concatenation "; " of (if exists string value of it then string value of it as string else nothing) of selects "PartialProductKey from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi - concatenation "; " of unique values of (if exists string value of it then string value of it as string else nothing) of selects "DiscoveredKeyManagementServiceMachineName from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi - concatenation "; " of unique values of (it as string) of ( values "KeyManagementServiceName" of it; values "KeyManagementServiceName" of keys of keys of it ) of keys "OfficeSoftwareProtectionPlatform" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" of (native registry;registry) -
-
+ + + + + Microsoft Office Software Protection Licensing Information - KMS - Windows + Retrieves information about Microsoft Office Software Protection Services.  For use with Office versions 2010 and newer.  (version 14+)

+

This analysis may not be accurate in all cases and may need some refinement for Win8 and the newest version of office.

]]>
+ windows of operating system + exists wmi + = "14.0" as version) of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (registry;native registry)) OR (exists keys "OfficeSoftwareProtectionPlatform" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" of (native registry;registry))]]> + + x-fixlet-modification-time + Fri, 29 Aug 2014 12:58:48 +0000 + + BESC + concatenation "; " of string values of selects "Name from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi + concatenation "; " of unique values of (if it = 0 then "Unlicensed" else if it = 1 then "Licensed" else if it = 2 then "OOB Grace" else if it = 3 then "OOT Grace" else if it = 4 then "NonGenuineGrace" else if it = 5 then "Notification" else "<unkown>") of (integer values of selects "LicenseStatus from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi) + concatenation "; " of unique values of (it as string) of (if exists integer value of it and integer value of it >0 then now + (minute * (integer value of it)) else nothing) of ((selects "GracePeriodRemaining from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi)) + (if exists integer value of it and integer value of it = 1 then "Yes" else "No") of selects "IsKeyManagementServiceMachine from OfficeSoftwareProtectionService" of wmi + concatenation "; " of unique values of (if exists string value of it then preceding text of first " " of following text of last ", " of string value of it as string else nothing) of selects "Description from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi + concatenation "; " of (if exists string value of it then string value of it as string else nothing) of selects "PartialProductKey from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi + concatenation "; " of unique values of (if exists string value of it then string value of it as string else nothing) of selects "DiscoveredKeyManagementServiceMachineName from OfficeSoftwareProtectionProduct WHERE PartialProductKey is not null" of wmi + concatenation "; " of unique values of (it as string) of ( values "KeyManagementServiceName" of it; values "KeyManagementServiceName" of keys of keys of it ) of keys "OfficeSoftwareProtectionPlatform" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" of (native registry;registry) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft Remote Service Settings - Extended - RDP (2994595).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft Remote Service Settings - Extended - RDP (2994595).bes index 74be26316..c20b6b9cd 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Microsoft Remote Service Settings - Extended - RDP (2994595).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft Remote Service Settings - Extended - RDP (2994595).bes @@ -1,43 +1,43 @@ - - - - - Microsoft Remote Service Settings - Extended - RDP - RDP / Terminal Services settings

-

 

-

References:

-

http://etutorials.org/Microsoft+Products/microsoft+windows+server+2003+terminal+services/Chapter+6+Registry/Registry+Keys+for+Terminal+Services/

-

http://support.microsoft.com/kb/243215

-

http://www.sepago.de/e/helge/2007/09/12/programmatically-determining-terminal-server-mode-on-windows-server-2008

-

http://www.whitemiceconsulting.com/2011/10/changing-terminal-services-license-mode.html

]]>
- windows of operating system - = "5.1"]]> - if( name of operating system starts with "Win" ) then platform id of operating system != 3 AND (if exists property "in proxy agent context" then (not in proxy agent context) else true) else false - - x-fixlet-first-propagation - Mon, 27 Aug 2007 22:53:50 +0000 - - - x-fixlet-modification-time - Fri, 01 Nov 2013 19:06:17 +0000 - - BESC - value "MinEncryptionLevel" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry - value "ProductVersion" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of native registry - (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" whose(value "UserAuthentication" of it = 1) of native registry) - value "ColorDepth" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry - value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry - value "WdName" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry - if (version of operating system <= "6.0") then ERROR "N/A" else (value "LicensingMode" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core" of native registry) - (it as string as version) of value "WdName" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry -
-
+ + + + + Microsoft Remote Service Settings - Extended - RDP + RDP / Terminal Services settings

+

 

+

References:

+

http://etutorials.org/Microsoft+Products/microsoft+windows+server+2003+terminal+services/Chapter+6+Registry/Registry+Keys+for+Terminal+Services/

+

http://support.microsoft.com/kb/243215

+

http://www.sepago.de/e/helge/2007/09/12/programmatically-determining-terminal-server-mode-on-windows-server-2008

+

http://www.whitemiceconsulting.com/2011/10/changing-terminal-services-license-mode.html

]]>
+ windows of operating system + = "5.1"]]> + if( name of operating system starts with "Win" ) then platform id of operating system != 3 AND (if exists property "in proxy agent context" then (not in proxy agent context) else true) else false + + x-fixlet-first-propagation + Mon, 27 Aug 2007 22:53:50 +0000 + + + x-fixlet-modification-time + Fri, 01 Nov 2013 19:06:17 +0000 + + BESC + value "MinEncryptionLevel" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry + value "ProductVersion" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of native registry + (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" whose(value "UserAuthentication" of it = 1) of native registry) + value "ColorDepth" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry + value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry + value "WdName" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry + if (version of operating system <= "6.0") then ERROR "N/A" else (value "LicensingMode" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core" of native registry) + (it as string as version) of value "WdName" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Microsoft SQL - Windows (2998470).bes b/Sites/Windows Management/Fixlets/Analyses/Microsoft SQL - Windows (2998470).bes index e4a0faa56..88cb930f1 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Microsoft SQL - Windows (2998470).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Microsoft SQL - Windows (2998470).bes @@ -1,30 +1,30 @@ - - - - - Microsoft SQL - Windows - Provides information about the SQL Server and Databases on the system.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists wmis ("ROOT\Microsoft\SqlServer\ComputerManagement";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement12") - exists keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL" of (x32 registries;x64 registries) - BESC - unique values of (it as string) of values of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL" of (x32 registries;x64 registries) - unique values of (it as string) of (string values of properties "ServiceName" of it) of SELECT OBJECTS "* FROM SqlServiceAdvancedProperty WHERE PropertyIndex=3 AND PropertyName='CLUSTERED' AND ServiceName='MSSQLSERVER' AND SqlServiceType=1 and PropertyNumValue=1" of (wmis ("ROOT\Microsoft\SqlServer\ComputerManagement12";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement")) whose (exists select objects "* FROM SqlServiceAdvancedProperty WHERE PropertyIndex=3 AND PropertyName='CLUSTERED' AND ServiceName='MSSQLSERVER' AND SqlServiceType=1" of it | false) - unique values of (string value of property "name" of it) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabases'" of wmi)) of wmi - unique values of (string value of property "name" of it) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabaseMirroring'" of wmi)) of wmi - unique values of (string value of property "name" of it) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabaseReplica'" of wmi)) of wmi - unique values of (it as string) of (string value of property "name" of it, (integer value of property "DataFilesSizeKB" of it / 1024) as string & " MB" ) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabases'" of wmi)) of wmi - unique values of integer values of properties "PropertyNumVal" of select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Port'" of (wmis ("ROOT\Microsoft\SqlServer\ComputerManagement12";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement")) whose (exists select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Port'" of it | false) - unique values of string values of properties "PropertyStrVal" of select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Pipe'" of (wmis ("ROOT\Microsoft\SqlServer\ComputerManagement12";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement")) whose (exists select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Pipe'" of it | false) -
-
+ + + + + Microsoft SQL - Windows + Provides information about the SQL Server and Databases on the system.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists wmis ("ROOT\Microsoft\SqlServer\ComputerManagement";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement12") + exists keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL" of (x32 registries;x64 registries) + BESC + unique values of (it as string) of values of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL" of (x32 registries;x64 registries) + unique values of (it as string) of (string values of properties "ServiceName" of it) of SELECT OBJECTS "* FROM SqlServiceAdvancedProperty WHERE PropertyIndex=3 AND PropertyName='CLUSTERED' AND ServiceName='MSSQLSERVER' AND SqlServiceType=1 and PropertyNumValue=1" of (wmis ("ROOT\Microsoft\SqlServer\ComputerManagement12";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement")) whose (exists select objects "* FROM SqlServiceAdvancedProperty WHERE PropertyIndex=3 AND PropertyName='CLUSTERED' AND ServiceName='MSSQLSERVER' AND SqlServiceType=1" of it | false) + unique values of (string value of property "name" of it) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabases'" of wmi)) of wmi + unique values of (string value of property "name" of it) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabaseMirroring'" of wmi)) of wmi + unique values of (string value of property "name" of it) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabaseReplica'" of wmi)) of wmi + unique values of (it as string) of (string value of property "name" of it, (integer value of property "DataFilesSizeKB" of it / 1024) as string & " MB" ) of select objects (("* from " & it & " where NAME != '_Total' and NAME != 'mssqlsystemresource'") of (string values of properties "__class" of SELECT objects "* from meta_class where __CLASS like '%25Win32_PerfFormattedData_%25SQLServerDatabases'" of wmi)) of wmi + unique values of integer values of properties "PropertyNumVal" of select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Port'" of (wmis ("ROOT\Microsoft\SqlServer\ComputerManagement12";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement")) whose (exists select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Port'" of it | false) + unique values of string values of properties "PropertyStrVal" of select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Pipe'" of (wmis ("ROOT\Microsoft\SqlServer\ComputerManagement12";"ROOT\Microsoft\SqlServer\ComputerManagement11";"ROOT\Microsoft\SqlServer\ComputerManagement10";"ROOT\Microsoft\SqlServer\ComputerManagement")) whose (exists select objects "* from ClientNetworkProtocolProperty where PropertyName='Default Pipe'" of it | false) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Missing Fixlets for Available Windows Features (12).bes b/Sites/Windows Management/Fixlets/Analyses/Missing Fixlets for Available Windows Features (12).bes index 82e9094c5..40ac5c64a 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Missing Fixlets for Available Windows Features (12).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Missing Fixlets for Available Windows Features (12).bes @@ -1,27 +1,27 @@ - - - - - Missing Fixlets for Available Windows Features - This analysis pulls back the results file of our diffDISM.txt file.  This file contains a list of Available Windows Features which we do not have fixlets for. 

-

You can take this data and manually create fixlets for each of these features.

]]>
- name of operating system starts with "Win" - exists file "diffDISM.txt" of parent folder of client OR exists file "DISM.txt" of parent folder of client - - x-fixlet-modification-time - Tue, 02 Oct 2012 16:51:10 +0000 - - BESC - if exists file "diffDISM.txt" of parent folder of client then lines of file "diffDISM.txt" of parent folder of client else "<no results>" - if exists file "DISM.txt" of parent folder of client then preceding texts of firsts "|" of lines whose (it contains "|" AND NOT(it contains "----------") AND NOT(it contains "Feature Name")) of file "DISM.txt" of parent folder of client as trimmed string else "<no results>" -
-
+ + + + + Missing Fixlets for Available Windows Features + This analysis pulls back the results file of our diffDISM.txt file.  This file contains a list of Available Windows Features which we do not have fixlets for. 

+

You can take this data and manually create fixlets for each of these features.

]]>
+ name of operating system starts with "Win" + exists file "diffDISM.txt" of parent folder of client OR exists file "DISM.txt" of parent folder of client + + x-fixlet-modification-time + Tue, 02 Oct 2012 16:51:10 +0000 + + BESC + if exists file "diffDISM.txt" of parent folder of client then lines of file "diffDISM.txt" of parent folder of client else "<no results>" + if exists file "DISM.txt" of parent folder of client then preceding texts of firsts "|" of lines whose (it contains "|" AND NOT(it contains "----------") AND NOT(it contains "Feature Name")) of file "DISM.txt" of parent folder of client as trimmed string else "<no results>" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Network - Windows (2998477).bes b/Sites/Windows Management/Fixlets/Analyses/Network - Windows (2998477).bes index 9853e955c..0ec63d40d 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Network - Windows (2998477).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Network - Windows (2998477).bes @@ -1,32 +1,32 @@ - - - - - Network - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - NOT in proxy agent context - BESC - (friendly name of it, dhcp server of it as string | "Static IP") of adapters whose (address of it != "0.0.0.0") of network as string - unique values of (ipv6 dns servers of it as string; addresses of dns servers of it as string) of adapters of network - string values of selects "Domain from Win32_ComputerSystem" of wmi - mac addresses of adapters of network - subnet masks of ip interfaces whose (loopback of it = false) of network - ssids of wifis of adapters of network - encryptions of wifis of adapters of network - (friendly name of it, lease obtained of it as string) of adapters whose (address of it != "0.0.0.0" and exists lease obtained of it) of network as string - (friendly name of it, lease expires of it as string) of adapters whose (address of it != "0.0.0.0" and exists lease expires of it) of network as string - (friendly name of it, lease expires of it - lease obtained of it) of adapters whose (address of it != "0.0.0.0" and exists lease obtained of it and exists lease expires of it) of network - (primary wins servers of it; secondary wins servers of it) of adapters of network -
-
+ + + + + Network - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (friendly name of it, dhcp server of it as string | "Static IP") of adapters whose (address of it != "0.0.0.0") of network as string + unique values of (ipv6 dns servers of it as string; addresses of dns servers of it as string) of adapters of network + string values of selects "Domain from Win32_ComputerSystem" of wmi + mac addresses of adapters of network + subnet masks of ip interfaces whose (loopback of it = false) of network + ssids of wifis of adapters of network + encryptions of wifis of adapters of network + (friendly name of it, lease obtained of it as string) of adapters whose (address of it != "0.0.0.0" and exists lease obtained of it) of network as string + (friendly name of it, lease expires of it as string) of adapters whose (address of it != "0.0.0.0" and exists lease expires of it) of network as string + (friendly name of it, lease expires of it - lease obtained of it) of adapters whose (address of it != "0.0.0.0" and exists lease obtained of it and exists lease expires of it) of network + (primary wins servers of it; secondary wins servers of it) of adapters of network +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Network Info - Windows (2994562).bes b/Sites/Windows Management/Fixlets/Analyses/Network Info - Windows (2994562).bes index a6873cfc5..5f291e2bc 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Network Info - Windows (2994562).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Network Info - Windows (2994562).bes @@ -1,28 +1,28 @@ - - - - - Network Info - Windows - - (windows of operating system) - - x-fixlet-modification-time - Fri, 09 Aug 2013 14:32:45 +0000 - - BESC - ((unique value of it/(1000*1000)) as string & " Mbps") of link speeds of adapters whose (link speed of it = maximum of link speeds of adapters whose (up of it AND (friendly name of it as lowercase contains "ethernet" OR friendly name of it as lowercase contains "local area connection")) of networks) of networks - ((it/(1000*1000)) as string & " Mbps") of maximum of link speeds of adapters of networks - ((it/(1000*1000)) as string & " Mbps") of maximum of link speeds of adapters whose(up of it) of networks - friendly names of adapters of networks - if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" of native registry) then (concatenation "; " of unique values of (it as string) of values "Description" whose(it as string does not contain "Network") of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" of native registry) else ERROR "no networks found" - - + + + + + Network Info - Windows + + (windows of operating system) + + x-fixlet-modification-time + Fri, 09 Aug 2013 14:32:45 +0000 + + BESC + ((unique value of it/(1000*1000)) as string & " Mbps") of link speeds of adapters whose (link speed of it = maximum of link speeds of adapters whose (up of it AND (friendly name of it as lowercase contains "ethernet" OR friendly name of it as lowercase contains "local area connection")) of networks) of networks + ((it/(1000*1000)) as string & " Mbps") of maximum of link speeds of adapters of networks + ((it/(1000*1000)) as string & " Mbps") of maximum of link speeds of adapters whose(up of it) of networks + friendly names of adapters of networks + if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" of native registry) then (concatenation "; " of unique values of (it as string) of values "Description" whose(it as string does not contain "Network") of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" of native registry) else ERROR "no networks found" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Operating System - Windows (2998541).bes b/Sites/Windows Management/Fixlets/Analyses/Operating System - Windows (2998541).bes index e75142260..566010151 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Operating System - Windows (2998541).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Operating System - Windows (2998541).bes @@ -1,31 +1,31 @@ - - - - - Operating System - Windows - Provides information regarding the installed Windows Operating System.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - NOT in proxy agent context - BESC - (if (value "ProductType" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" of registry = "WinNT" | ERROR "Unknown Operating System Type") then "Workstation" else "Server") - time value of (select "InstallDate from win32_operatingsystem" of wmi | ERROR "No Install Date found in WMI") - system language - user language - architecture of operating system - unique values of (concatenations of (it as string)) of (if (exists true whose (if true then (exists select object "* from Win32_ServerFeature" of wmi) else false)) then (string values of (selects "Name from Win32_ServerFeature" of wmi)) else "None") - if ((select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25')" of wmi) as string contains "1") then "Activated" else "Not Activated" - maximum of (it as string as version) of values "PowerShellVersion" of keys "PowerShellEngine" of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of native registry - maximum of (it as string as version) of values "Version" of keys "Client" of keys of keys "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry - maximum of (it as string as version) of values "Version" of keys "Full" of keys of keys "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry -
-
+ + + + + Operating System - Windows + Provides information regarding the installed Windows Operating System.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (if (value "ProductType" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" of registry = "WinNT" | ERROR "Unknown Operating System Type") then "Workstation" else "Server") + time value of (select "InstallDate from win32_operatingsystem" of wmi | ERROR "No Install Date found in WMI") + system language + user language + architecture of operating system + unique values of (concatenations of (it as string)) of (if (exists true whose (if true then (exists select object "* from Win32_ServerFeature" of wmi) else false)) then (string values of (selects "Name from Win32_ServerFeature" of wmi)) else "None") + if ((select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25')" of wmi) as string contains "1") then "Activated" else "Not Activated" + maximum of (it as string as version) of values "PowerShellVersion" of keys "PowerShellEngine" of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of native registry + maximum of (it as string as version) of values "Version" of keys "Client" of keys of keys "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + maximum of (it as string as version) of values "Version" of keys "Full" of keys of keys "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - Expanded (2994800).bes b/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - Expanded (2994800).bes index e18c1d0d4..41e3c6b5c 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - Expanded (2994800).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - Expanded (2994800).bes @@ -1,70 +1,70 @@ - - - - - Operating System Information (Windows) - Expanded - - - -http://support.bigfix.com/inspectors/System%20Objects_Win.html#operating%20system -

This analysis contains information about the Microsoft Windows operating system on BES Client computers. This is an expanded version of the analysis provided by IBM.

-

Since this information does not change much and its evaluation can be resource intensive, most of these properties are only evaluated once per day.

-

After activating this analysis, you will see the following properties:

-
    -
  • Full OS Name and Service Pack Level -
  • OS Architecture -
  • OS Version Number -
  • OS Type -
  • Product ID -
  • Product Key (Win95, Win98, WinME only) -
  • Installation Date -
  • Uptime (days) [BES Clients >= 5.1] -
  • OS Language (Language of the installed OS) -
  • System Language   -
  • User Language (Default)
-

Note: Many of these properties access the Windows Management Interface (WMI) to obtain the hardware properties. The WMI is not usually available on Win9x and WinNT computers so some properties may report back "N/A" on those operating systems.

-

Note: Some computers may have broken WMI libraries. Inconsistent results and undesired side effects may occur when the BES Client evaluates a WMI query. If you have known problems with WMI in your environment, do not activate this analysis.

-

 

Latest version of this analysis is found here: http://bigfix.me/analysis/details/2994629 ]]>
- name of operating system as lowercase starts with "win" - (if (name of operating system starts with "Win") then platform id of operating system != 3 else true) AND (if exists property "in proxy agent context" then (not in proxy agent context) else true) AND (if exists property "android" of type "operating system" then (not android of operating system) else true) - = "5.0"]]> - - x-fixlet-first-propagation - Tue, 31 May 2005 18:57:12 +0000 - - - x-fixlet-modification-time - Wed, 28 Jan 2015 19:20:54 +0000 - - BESC - if (exists wmi AND (not (name of operating system = "WinME" ))) then (string value of selects "caption from win32_operatingsystem" of wmi & " " & csd version of operating system) else ( "Windows " & (following text of first "Win" of (name of operating system as string)) & (if (name of operating system = "WinNT" ) then ((if (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" whose (exists value "ProductType" of it AND (value "ProductType" of it as string as lowercase = "servernt" OR value "ProductType" of it as string as lowercase = "lanmannt" )) of registry) then (if (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" whose (exists value "ProductSuite" of it AND value "ProductSuite" of it as string as lowercase contains "terminal" ) of registry) then " Terminal Server" else " Server" ) else " Workstation" ) & " " & csd version of operating system) else (if (name of operating system = "Win98" ) then (if (csd version of operating system as string contains "A" ) then " Second Edition" else "" ) else (if (name of operating system = "Win95" ) then (if (csd version of operating system as string contains "C" OR csd version of operating system as string contains "B" ) then " OSR2" else "" ) else " " & csd version of operating system )))) - if (ia64 of operating system) then "Itanium 64-bit" else (if (x64 of operating system) then "64-bit" else "32-bit") - version of operating system - if (name of operating system as lowercase starts with "win") then (if (name of operating system = "Win95" OR name of operating system = "Win98" or name of operating system = "WinME") then "Workstation" else (if (value "ProductType" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" of registry = "WinNT") then "Workstation" else "Server")) else "Unknown - " & name of operating system - (if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" whose (exists value "ProductId" of it) of native registry AND NOT (name of operating system = "WinNT")) then (value "ProductId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" of native registry as string) else (if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" whose (exists value "ProductId" of it) of native registry) then (value "ProductId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string) else "Unknown")) - if (name of operating system = "Win95" AND exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" whose (exists value "ProductId" of it) of registry) then (value "ProductId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" of registry as string) else (if ((name of operating system = "Win98" OR name of operating system = "WinME") AND exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" whose (exists value "ProductKey" of it) of registry) then (value "ProductKey" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" of registry as string) else ("Unknown")) - if (exists wmi AND exists selects "InstallDate from win32_operatingsystem" of wmi AND not ((string value of selects "InstallDate from win32_operatingsystem" of wmi) = "")) then ((first 4 of (first 8 of string value of (selects "InstallDate from Win32_OperatingSystem" of wmi))) & "-" & (first 2 of (last 4 of (first 8 of string value of (selects "InstallDate from Win32_OperatingSystem" of wmi)))) & "-" & (last 2 of (first 8 of string value of (selects "InstallDate from Win32_OperatingSystem" of wmi)))) else ("N/A") - (if it = 1 then it as string & " day" else it as string & " days") of ((uptime of operating system) / day) - language of version block of file "kernel32.dll" of system folder & (if (exists key "HKLM\System\CurrentControlSet\Control\Nls\MUILanguages" of registry AND exists value of key "HKLM\System\CurrentControlSet\Control\Nls\MUILanguages" of registry) then " | MUI Installed" else "") - system language - user language - value of variable "ProgramFiles" of environment - architecture of operating system - boot time of operating system - if(version of operating system >= "6.0") then (product info string of operating system) else NOTHING - platform id of operating system - (if (it = nt workstation product type) then "Workstation" else if (it = nt server product type) then "Server" else if (it = nt domain controller product type) then "DomainController" else "Unknown") of (product type of operating system) - performance counter frequency of operating system - performance counter of operating system - unique values of (it as string as trimmed string) of values "ProductName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of (x32 registries;x64 registries) -
-
+ + + + + Operating System Information (Windows) - Expanded + + + +http://support.bigfix.com/inspectors/System%20Objects_Win.html#operating%20system +

This analysis contains information about the Microsoft Windows operating system on BES Client computers. This is an expanded version of the analysis provided by IBM.

+

Since this information does not change much and its evaluation can be resource intensive, most of these properties are only evaluated once per day.

+

After activating this analysis, you will see the following properties:

+
    +
  • Full OS Name and Service Pack Level +
  • OS Architecture +
  • OS Version Number +
  • OS Type +
  • Product ID +
  • Product Key (Win95, Win98, WinME only) +
  • Installation Date +
  • Uptime (days) [BES Clients >= 5.1] +
  • OS Language (Language of the installed OS) +
  • System Language   +
  • User Language (Default)
+

Note: Many of these properties access the Windows Management Interface (WMI) to obtain the hardware properties. The WMI is not usually available on Win9x and WinNT computers so some properties may report back "N/A" on those operating systems.

+

Note: Some computers may have broken WMI libraries. Inconsistent results and undesired side effects may occur when the BES Client evaluates a WMI query. If you have known problems with WMI in your environment, do not activate this analysis.

+

 

Latest version of this analysis is found here: http://bigfix.me/analysis/details/2994629 ]]>
+ name of operating system as lowercase starts with "win" + (if (name of operating system starts with "Win") then platform id of operating system != 3 else true) AND (if exists property "in proxy agent context" then (not in proxy agent context) else true) AND (if exists property "android" of type "operating system" then (not android of operating system) else true) + = "5.0"]]> + + x-fixlet-first-propagation + Tue, 31 May 2005 18:57:12 +0000 + + + x-fixlet-modification-time + Wed, 28 Jan 2015 19:20:54 +0000 + + BESC + if (exists wmi AND (not (name of operating system = "WinME" ))) then (string value of selects "caption from win32_operatingsystem" of wmi & " " & csd version of operating system) else ( "Windows " & (following text of first "Win" of (name of operating system as string)) & (if (name of operating system = "WinNT" ) then ((if (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" whose (exists value "ProductType" of it AND (value "ProductType" of it as string as lowercase = "servernt" OR value "ProductType" of it as string as lowercase = "lanmannt" )) of registry) then (if (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" whose (exists value "ProductSuite" of it AND value "ProductSuite" of it as string as lowercase contains "terminal" ) of registry) then " Terminal Server" else " Server" ) else " Workstation" ) & " " & csd version of operating system) else (if (name of operating system = "Win98" ) then (if (csd version of operating system as string contains "A" ) then " Second Edition" else "" ) else (if (name of operating system = "Win95" ) then (if (csd version of operating system as string contains "C" OR csd version of operating system as string contains "B" ) then " OSR2" else "" ) else " " & csd version of operating system )))) + if (ia64 of operating system) then "Itanium 64-bit" else (if (x64 of operating system) then "64-bit" else "32-bit") + version of operating system + if (name of operating system as lowercase starts with "win") then (if (name of operating system = "Win95" OR name of operating system = "Win98" or name of operating system = "WinME") then "Workstation" else (if (value "ProductType" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions" of registry = "WinNT") then "Workstation" else "Server")) else "Unknown - " & name of operating system + (if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" whose (exists value "ProductId" of it) of native registry AND NOT (name of operating system = "WinNT")) then (value "ProductId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" of native registry as string) else (if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" whose (exists value "ProductId" of it) of native registry) then (value "ProductId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string) else "Unknown")) + if (name of operating system = "Win95" AND exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" whose (exists value "ProductId" of it) of registry) then (value "ProductId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" of registry as string) else (if ((name of operating system = "Win98" OR name of operating system = "WinME") AND exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" whose (exists value "ProductKey" of it) of registry) then (value "ProductKey" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion" of registry as string) else ("Unknown")) + if (exists wmi AND exists selects "InstallDate from win32_operatingsystem" of wmi AND not ((string value of selects "InstallDate from win32_operatingsystem" of wmi) = "")) then ((first 4 of (first 8 of string value of (selects "InstallDate from Win32_OperatingSystem" of wmi))) & "-" & (first 2 of (last 4 of (first 8 of string value of (selects "InstallDate from Win32_OperatingSystem" of wmi)))) & "-" & (last 2 of (first 8 of string value of (selects "InstallDate from Win32_OperatingSystem" of wmi)))) else ("N/A") + (if it = 1 then it as string & " day" else it as string & " days") of ((uptime of operating system) / day) + language of version block of file "kernel32.dll" of system folder & (if (exists key "HKLM\System\CurrentControlSet\Control\Nls\MUILanguages" of registry AND exists value of key "HKLM\System\CurrentControlSet\Control\Nls\MUILanguages" of registry) then " | MUI Installed" else "") + system language + user language + value of variable "ProgramFiles" of environment + architecture of operating system + boot time of operating system + if(version of operating system >= "6.0") then (product info string of operating system) else NOTHING + platform id of operating system + (if (it = nt workstation product type) then "Workstation" else if (it = nt server product type) then "Server" else if (it = nt domain controller product type) then "DomainController" else "Unknown") of (product type of operating system) + performance counter frequency of operating system + performance counter of operating system + unique values of (it as string as trimmed string) of values "ProductName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of (x32 registries;x64 registries) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - metric inspector (2994628).bes b/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - metric inspector (2994628).bes index ced9ee276..936285101 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - metric inspector (2994628).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Operating System Information (Windows) - metric inspector (2994628).bes @@ -1,42 +1,42 @@ - - - - - Operating System Information (Windows) - metric inspector - -

metric <integer> of operating system

-

http://support.bigfix.com/inspectors/System%20Objects_Win.html#operating%20system

-

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724385(v=vs.85).aspx

]]>
- = "8.0"]]> - /* Windows Only */ windows of operating system - - x-fixlet-modification-time - Tue, 28 Jan 2014 17:13:39 +0000 - - BESC - metric 67 /* SM_CLEANBOOT */ of operating system - metric 89 /* SM_SERVERR2 */ of operating system - metric 73 /* SM_SLOWMACHINE */ of operating system - metric 88 /* SM_STARTER */ of operating system - metric 87 /* SM_MEDIACENTER */ of operating system - metric 86 /* SM_TABLETPC */ of operating system - metric 80 /* SM_CMONITORS */ of operating system - metric 19 /* SM_MOUSEPRESENT */ of operating system - metric 43 /* SM_CMOUSEBUTTONS */ of operating system - metric 91 /* SM_MOUSEHORIZONTALWHEELPRESENT */ of operating system - metric 75 /* SM_MOUSEWHEELPRESENT */ of operating system - metric 82 /* SM_IMMENABLED */ of operating system - metric 41 /* SM_PENWINDOWS */ of operating system - metric 94 /* SM_DIGITIZER */ of operating system - metric 95 /* SM_MAXIMUMTOUCHES */ of operating system -
-
+ + + + + Operating System Information (Windows) - metric inspector + +

metric <integer> of operating system

+

http://support.bigfix.com/inspectors/System%20Objects_Win.html#operating%20system

+

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724385(v=vs.85).aspx

]]>
+ = "8.0"]]> + /* Windows Only */ windows of operating system + + x-fixlet-modification-time + Tue, 28 Jan 2014 17:13:39 +0000 + + BESC + metric 67 /* SM_CLEANBOOT */ of operating system + metric 89 /* SM_SERVERR2 */ of operating system + metric 73 /* SM_SLOWMACHINE */ of operating system + metric 88 /* SM_STARTER */ of operating system + metric 87 /* SM_MEDIACENTER */ of operating system + metric 86 /* SM_TABLETPC */ of operating system + metric 80 /* SM_CMONITORS */ of operating system + metric 19 /* SM_MOUSEPRESENT */ of operating system + metric 43 /* SM_CMOUSEBUTTONS */ of operating system + metric 91 /* SM_MOUSEHORIZONTALWHEELPRESENT */ of operating system + metric 75 /* SM_MOUSEWHEELPRESENT */ of operating system + metric 82 /* SM_IMMENABLED */ of operating system + metric 41 /* SM_PENWINDOWS */ of operating system + metric 94 /* SM_DIGITIZER */ of operating system + metric 95 /* SM_MAXIMUMTOUCHES */ of operating system +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/PageFile - Windows (2994592).bes b/Sites/Windows Management/Fixlets/Analyses/PageFile - Windows (2994592).bes index 7fac97f25..9b08ddd20 100644 --- a/Sites/Windows Management/Fixlets/Analyses/PageFile - Windows (2994592).bes +++ b/Sites/Windows Management/Fixlets/Analyses/PageFile - Windows (2994592).bes @@ -1,29 +1,29 @@ - - - - - PageFile - Windows - - windows of operating system - exists wmi - = "5.1"]]> - - x-fixlet-modification-time - Thu, 31 Oct 2013 16:39:11 +0000 - - BESC - string values of selects "InitialSize from Win32_PageFileSetting" of wmi - string values of selects "MaximumSize from Win32_PageFileSetting" of wmi - string values of selects "Name from Win32_PageFileSetting" of wmi - sum of sizes of files (string values of selects "Name from Win32_PageFileSetting" of wmi) - - + + + + + PageFile - Windows + + windows of operating system + exists wmi + = "5.1"]]> + + x-fixlet-modification-time + Thu, 31 Oct 2013 16:39:11 +0000 + + BESC + string values of selects "InitialSize from Win32_PageFileSetting" of wmi + string values of selects "MaximumSize from Win32_PageFileSetting" of wmi + string values of selects "Name from Win32_PageFileSetting" of wmi + sum of sizes of files (string values of selects "Name from Win32_PageFileSetting" of wmi) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Pagefile - Win_Mac (2998262).bes b/Sites/Windows Management/Fixlets/Analyses/Pagefile - Win_Mac (2998262).bes index 4cf9d0cff..f03d8209a 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Pagefile - Win_Mac (2998262).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Pagefile - Win_Mac (2998262).bes @@ -1,22 +1,22 @@ - - - - - Pagefile - Win\Mac - Information about Pagefile across Mac and Windows

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- NOT in proxy agent context - windows of operating system or mac of operating system - BESC - sum of sizes of (if (Windows of Operating System) then (files "pagefile.sys" of folders ((name of it & "\") of drives)) else (if (Mac of Operating System) then (files whose (name of it starts with "swapfile") of folder "/private/var/vm") else (ERROR "Unknown"))) -
-
+ + + + + Pagefile - Win\Mac + Information about Pagefile across Mac and Windows

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ NOT in proxy agent context + windows of operating system or mac of operating system + BESC + sum of sizes of (if (Windows of Operating System) then (files "pagefile.sys" of folders ((name of it & "\") of drives)) else (if (Mac of Operating System) then (files whose (name of it starts with "swapfile") of folder "/private/var/vm") else (ERROR "Unknown"))) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Pagefile - Windows (2998263).bes b/Sites/Windows Management/Fixlets/Analyses/Pagefile - Windows (2998263).bes index 030ce9ef8..db061e2d1 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Pagefile - Windows (2998263).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Pagefile - Windows (2998263).bes @@ -1,23 +1,23 @@ - - - - - Pagefile - Windows - Covers Pagefile configuration for Windows

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - NOT in proxy agent context - BESC - (preceding text of first " " of it | it, preceding text of first " " of following text of first " " of it | "Default", following text of first " " of following text of first " " of it | "Default") of (substrings separated by "%00" whose (it != "") of (value "PagingFiles" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" of native registry as string)) - if (value "ClearPageFileAtShutdown" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" of native registry as string = "0") then "Disabled" else "Enabled" -
-
+ + + + + Pagefile - Windows + Covers Pagefile configuration for Windows

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (preceding text of first " " of it | it, preceding text of first " " of following text of first " " of it | "Default", following text of first " " of following text of first " " of it | "Default") of (substrings separated by "%00" whose (it != "") of (value "PagingFiles" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" of native registry as string)) + if (value "ClearPageFileAtShutdown" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" of native registry as string = "0") then "Disabled" else "Enabled" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Pending Restart - Windows (2998394).bes b/Sites/Windows Management/Fixlets/Analyses/Pending Restart - Windows (2998394).bes index 8f2a2c060..f6782ae2f 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Pending Restart - Windows (2998394).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Pending Restart - Windows (2998394).bes @@ -1,26 +1,26 @@ - - - - - Pending Restart - Windows - Provides information on the various sources that the BigFix Agent uses when assessing whether a Windows computer has a pending restart.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- pending restart - windows of operating system - BESC - substrings separated by "%00" whose (it != "") of (values "PendingFileRenameOperations" of keys "HKLM\System\CurrentControlSet\Control\Session Manager" of native registry as string) - names of values of keys "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry - exists key "HKLM\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry - values "Flags" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\UpdateExeVolatile" of native registry - values whose (it != "") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\BESPendingRestart" of x32 registry -
-
+ + + + + Pending Restart - Windows + Provides information on the various sources that the BigFix Agent uses when assessing whether a Windows computer has a pending restart.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ pending restart + windows of operating system + BESC + substrings separated by "%00" whose (it != "") of (values "PendingFileRenameOperations" of keys "HKLM\System\CurrentControlSet\Control\Session Manager" of native registry as string) + names of values of keys "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry + exists key "HKLM\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry + values "Flags" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\UpdateExeVolatile" of native registry + values whose (it != "") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\BESPendingRestart" of x32 registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Power - Configuration - Windows (2998419).bes b/Sites/Windows Management/Fixlets/Analyses/Power - Configuration - Windows (2998419).bes index e6f8d8a5a..06f75b241 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Power - Configuration - Windows (2998419).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Power - Configuration - Windows (2998419).bes @@ -1,29 +1,29 @@ - - - - - Power - Configuration - Windows - For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
- windows of operating system - NOT in proxy agent context - BESC - (following text of last "," of preceding text of first "%00" of it | preceding text of first "%00" of it) of (it as string) of value "FriendlyName" of key ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry - (following text of last "," of preceding text of first "%00" of it | preceding text of first "%00" of it) of (it as string) of values "FriendlyName" of keys of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry - preceding texts of firsts "%00" of following texts of lasts "," of (/* Group Policy Comes First */ (value "ACSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\5ca83367-6e45-459f-a27b-476b1d01c936" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "AcSettingIndex" of keys "4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "AcSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936\DefaultPowerSchemeValues" of native registry) as string)) - preceding texts of firsts "%00" of following texts of lasts "," of (/* Group Policy Comes First */ (value "DCSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\5ca83367-6e45-459f-a27b-476b1d01c936" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "DCSettingIndex" of keys "4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "DCSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936\DefaultPowerSchemeValues" of native registry) as string)) - /* Group Policy Comes First */ (value "ACSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\6738e2c4-e8a5-4a42-b16a-e040e769756e" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "AcSettingIndex" of keys "0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "AcSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" - /* Group Policy Comes First */ (value "DCSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\6738e2c4-e8a5-4a42-b16a-e040e769756e" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "DCSettingIndex" of keys "0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "DCSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" - /* Group Policy Comes First */ (value "ACSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "AcSettingIndex" of keys "238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "AcSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" - /* Group Policy Comes First */ (value "DCSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "DCSettingIndex" of keys "238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "DCSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" -
-
+ + + + + Power - Configuration - Windows + For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (following text of last "," of preceding text of first "%00" of it | preceding text of first "%00" of it) of (it as string) of value "FriendlyName" of key ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry + (following text of last "," of preceding text of first "%00" of it | preceding text of first "%00" of it) of (it as string) of values "FriendlyName" of keys of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry + preceding texts of firsts "%00" of following texts of lasts "," of (/* Group Policy Comes First */ (value "ACSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\5ca83367-6e45-459f-a27b-476b1d01c936" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "AcSettingIndex" of keys "4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "AcSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936\DefaultPowerSchemeValues" of native registry) as string)) + preceding texts of firsts "%00" of following texts of lasts "," of (/* Group Policy Comes First */ (value "DCSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\5ca83367-6e45-459f-a27b-476b1d01c936" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "DCSettingIndex" of keys "4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "DCSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936\DefaultPowerSchemeValues" of native registry) as string)) + /* Group Policy Comes First */ (value "ACSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\6738e2c4-e8a5-4a42-b16a-e040e769756e" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "AcSettingIndex" of keys "0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "AcSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" + /* Group Policy Comes First */ (value "DCSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\6738e2c4-e8a5-4a42-b16a-e040e769756e" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "DCSettingIndex" of keys "0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "DCSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" + /* Group Policy Comes First */ (value "ACSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "AcSettingIndex" of keys "238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "AcSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" + /* Group Policy Comes First */ (value "DCSettingIndex" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of native registry as string) | /* Next comes Power Scheme Customizations */ (value "DCSettingIndex" of keys "238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da" of keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) | /* Then Power Scheme Defaults */ (value "DCSettingIndex" of (keys ((it as string) of (value "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Power\PowerSettings" of native registry | value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\User\PowerSchemes" of x32 registry)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues" of native registry) as string) | /* Default to 0 */ "0" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Power Plan Settings - Windows TODO (2994762).bes b/Sites/Windows Management/Fixlets/Analyses/Power Plan Settings - Windows TODO (2994762).bes index 338a85873..1c5b9586a 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Power Plan Settings - Windows TODO (2994762).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Power Plan Settings - Windows TODO (2994762).bes @@ -1,27 +1,27 @@ - - - - - Power Plan Settings - Windows TODO - - windows of operating system - = "6.0"]]> - - x-fixlet-modification-time - Thu, 29 Jan 2015 17:32:58 +0000 - - BESC - unique values of (preceding texts of lasts "%00" of following texts of lasts "," of it) of (it as string as trimmed string) of values "FriendlyName" of keys of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) - unique values of (preceding texts of lasts "%00" of following texts of lasts "," of it) of (it as string as trimmed string) of values "FriendlyName" of keys whose( (set of unique values of (it as string as trimmed string) of values "PreferredPlan" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{025A5937-A6BE-4686-A844-36FE4BEC8B6D}" of (x64 registries;x32 registries) ) contains (name of it)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) - unique values of (preceding texts of lasts "%00" of following texts of lasts "," of it) of (it as string as trimmed string) of values "FriendlyName" of keys whose( (set of unique values of (it as string as trimmed string) of values "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) ) contains (name of it) ) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) - - + + + + + Power Plan Settings - Windows TODO + + windows of operating system + = "6.0"]]> + + x-fixlet-modification-time + Thu, 29 Jan 2015 17:32:58 +0000 + + BESC + unique values of (preceding texts of lasts "%00" of following texts of lasts "," of it) of (it as string as trimmed string) of values "FriendlyName" of keys of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) + unique values of (preceding texts of lasts "%00" of following texts of lasts "," of it) of (it as string as trimmed string) of values "FriendlyName" of keys whose( (set of unique values of (it as string as trimmed string) of values "PreferredPlan" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{025A5937-A6BE-4686-A844-36FE4BEC8B6D}" of (x64 registries;x32 registries) ) contains (name of it)) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) + unique values of (preceding texts of lasts "%00" of following texts of lasts "," of it) of (it as string as trimmed string) of values "FriendlyName" of keys whose( (set of unique values of (it as string as trimmed string) of values "ActivePowerScheme" of keys "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) ) contains (name of it) ) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of (x64 registries;x32 registries) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/PowerShell x64 Status (19).bes b/Sites/Windows Management/Fixlets/Analyses/PowerShell x64 Status (19).bes index 165d7800e..7606308e4 100644 --- a/Sites/Windows Management/Fixlets/Analyses/PowerShell x64 Status (19).bes +++ b/Sites/Windows Management/Fixlets/Analyses/PowerShell x64 Status (19).bes @@ -1,31 +1,31 @@ - - - - - PowerShell x64 Status - Pull back status on the PowerShell installation on this system. - name of operating system as string contains "Win" - exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry - x64 of operating system - - x-fixlet-modification-time - Mon, 01 Oct 2012 21:29:13 +0000 - - BESC - value "ApplicationBase" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry - value "PowerShellVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry - value "PSCompatibleVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry - value "RuntimeVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry - value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry - value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" of x64 registry - - + + + + + PowerShell x64 Status + Pull back status on the PowerShell installation on this system. + name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + x64 of operating system + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:29:13 +0000 + + BESC + value "ApplicationBase" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry + value "PowerShellVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry + value "PSCompatibleVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry + value "RuntimeVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of x64 registry + value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry + value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" of x64 registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status (20).bes b/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status (20).bes index ef917d9f7..13b76b865 100644 --- a/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status (20).bes +++ b/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status (20).bes @@ -1,30 +1,30 @@ - - - - - PowerShell x86 Status - Pull back status on the PowerShell installation on this system. - name of operating system as string contains "Win" - exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry - - x-fixlet-modification-time - Mon, 01 Oct 2012 21:29:24 +0000 - - BESC - value "ApplicationBase" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry - value "PowerShellVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry - value "PSCompatibleVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry - value "RuntimeVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry - value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry - value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" of registry - - + + + + + PowerShell x86 Status + Pull back status on the PowerShell installation on this system. + name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:29:24 +0000 + + BESC + value "ApplicationBase" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry + value "PowerShellVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry + value "PSCompatibleVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry + value "RuntimeVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" of registry + value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry + value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" of registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status - Windows (2994540).bes b/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status - Windows (2994540).bes index 63359ff83..03538228a 100644 --- a/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status - Windows (2994540).bes +++ b/Sites/Windows Management/Fixlets/Analyses/PowerShell x86 Status - Windows (2994540).bes @@ -1,43 +1,43 @@ - - - - - PowerShell x86 Status - Windows - Located here: http://bigfix.me/cdb/analysis/89

-

Based upon this: http://bigfix.me/cdb/analysis/20

Pull back status on the PowerShell installation on this system.

]]>
- exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry - windows of operating system - - bigfixme-added-time - Wed, 17 Oct 2012 09:32:22 GMT - - - bigfixme-modification-time - Wed, 17 Oct 2012 09:37:41 GMT - - - bigfixme-keywords - PowerShell Status Pull ApplicationBase PowerShellVersion - - - x-fixlet-modification-time - Wed, 26 Jun 2013 21:29:49 +0000 - - BESC - value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry - value "ApplicationBase" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry - value "PowerShellVersion" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry - value "PSCompatibleVersion" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry - value "RuntimeVersion" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry - if (not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" whose(exists value "ExecutionPolicy" of it) of registry) then ERROR "no ExecutionPolicy set" else (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" whose(exists value "ExecutionPolicy" of it) of registry) -
-
+ + + + + PowerShell x86 Status - Windows + Located here: http://bigfix.me/cdb/analysis/89

+

Based upon this: http://bigfix.me/cdb/analysis/20

Pull back status on the PowerShell installation on this system.

]]>
+ exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + windows of operating system + + bigfixme-added-time + Wed, 17 Oct 2012 09:32:22 GMT + + + bigfixme-modification-time + Wed, 17 Oct 2012 09:37:41 GMT + + + bigfixme-keywords + PowerShell Status Pull ApplicationBase PowerShellVersion + + + x-fixlet-modification-time + Wed, 26 Jun 2013 21:29:49 +0000 + + BESC + value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry + value "ApplicationBase" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry + value "PowerShellVersion" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry + value "PSCompatibleVersion" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry + value "RuntimeVersion" of key "PowerShellEngine" of key ((it as string) of maximum of (it as integer) of names of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell" of registry + if (not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" whose(exists value "ExecutionPolicy" of it) of registry) then ERROR "no ExecutionPolicy set" else (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics" whose(exists value "ExecutionPolicy" of it) of registry) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Primary User - Windows (2995831).bes b/Sites/Windows Management/Fixlets/Analyses/Primary User - Windows (2995831).bes index 34f9227a7..64eb18577 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Primary User - Windows (2995831).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Primary User - Windows (2995831).bes @@ -1,31 +1,31 @@ - - - - - Primary User - Windows - This analysis attempts to identify the Primary User of the system.

-

 

]]>
- windows of operating system - - x-fixlet-modification-time - Mon, 25 Jan 2016 23:39:57 +0000 - - BESC - ERROR "NotYetWritten" - unique values of (it as string as trimmed string) of values of settings whose("PrimaryUser" = name of it) of clients - unique values of names of users whose( logon count of it = maximum of logon counts of users ) - unique values of items 1 of (modification time of it,name of parent folder of it) whose( item 0 of it = ( maximum of modification times of files "NTUSER.DAT" of folders whose ( exists file "NTUSER.DAT" of it AND name of it as lowercase is not contained by set of ( "networkservice";"localservice";"administrator";"default";"public";"la-client";"OTHER_EXCLUDED_USERS" ) ) of (folders "c:\users"; folders "c:\Documents and Settings") ) ) of files "NTUSER.DAT" of folders whose ( exists file "NTUSER.DAT" of it AND name of it as lowercase is not contained by set of ( "networkservice";"localservice";"administrator";"default";"public";"la-client";"OTHER_EXCLUDED_USERS" ) ) of (folders "c:\users"; folders "c:\Documents and Settings") - ("%22" & it & "%22") of concatenations "%22;%22" of unique values of (names of logged on users; names of users; names of current users; names of local users) - unique values of (preceding texts of lasts "'" of following texts of firsts "User interface process started for user '" of it) of lines whose(it contains "User interface process started for user '") of files whose( (exists lines of it) AND (name of it as uppercase ends with ".LOG") AND ( (name of it starts with ((it as string) of ( current year )) ) OR (name of it starts with ((it as string) of ( current year - 1*year )) ) ) ) of folders "__Global/Logs" of ((data folder of client)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client)) - (it) whose( multiplicity of it = maximum of multiplicities of unique values of (preceding texts of lasts "'" of following texts of firsts "User interface process started for user '" of it) of lines whose(it contains "User interface process started for user '") of files whose( (exists lines of it) AND (name of it as uppercase ends with ".LOG") AND ( (name of it starts with ((it as string) of ( current year )) ) OR (name of it starts with ((it as string) of ( current year - 1*year )) ) ) ) of folders "__Global/Logs" of (data folder of client) ) of unique values of (preceding texts of lasts "'" of following texts of firsts "User interface process started for user '" of it) of lines whose(it contains "User interface process started for user '") of files whose( (exists lines of it) AND (name of it as uppercase ends with ".LOG") AND ( (name of it starts with ((it as string) of ( current year )) ) OR (name of it starts with ((it as string) of ( current year - 1*year )) ) ) ) of folders "__Global/Logs" of (data folder of client) -
-
+ + + + + Primary User - Windows + This analysis attempts to identify the Primary User of the system.

+

 

]]>
+ windows of operating system + + x-fixlet-modification-time + Mon, 25 Jan 2016 23:39:57 +0000 + + BESC + ERROR "NotYetWritten" + unique values of (it as string as trimmed string) of values of settings whose("PrimaryUser" = name of it) of clients + unique values of names of users whose( logon count of it = maximum of logon counts of users ) + unique values of items 1 of (modification time of it,name of parent folder of it) whose( item 0 of it = ( maximum of modification times of files "NTUSER.DAT" of folders whose ( exists file "NTUSER.DAT" of it AND name of it as lowercase is not contained by set of ( "networkservice";"localservice";"administrator";"default";"public";"la-client";"OTHER_EXCLUDED_USERS" ) ) of (folders "c:\users"; folders "c:\Documents and Settings") ) ) of files "NTUSER.DAT" of folders whose ( exists file "NTUSER.DAT" of it AND name of it as lowercase is not contained by set of ( "networkservice";"localservice";"administrator";"default";"public";"la-client";"OTHER_EXCLUDED_USERS" ) ) of (folders "c:\users"; folders "c:\Documents and Settings") + ("%22" & it & "%22") of concatenations "%22;%22" of unique values of (names of logged on users; names of users; names of current users; names of local users) + unique values of (preceding texts of lasts "'" of following texts of firsts "User interface process started for user '" of it) of lines whose(it contains "User interface process started for user '") of files whose( (exists lines of it) AND (name of it as uppercase ends with ".LOG") AND ( (name of it starts with ((it as string) of ( current year )) ) OR (name of it starts with ((it as string) of ( current year - 1*year )) ) ) ) of folders "__Global/Logs" of ((data folder of client)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client)) + (it) whose( multiplicity of it = maximum of multiplicities of unique values of (preceding texts of lasts "'" of following texts of firsts "User interface process started for user '" of it) of lines whose(it contains "User interface process started for user '") of files whose( (exists lines of it) AND (name of it as uppercase ends with ".LOG") AND ( (name of it starts with ((it as string) of ( current year )) ) OR (name of it starts with ((it as string) of ( current year - 1*year )) ) ) ) of folders "__Global/Logs" of (data folder of client) ) of unique values of (preceding texts of lasts "'" of following texts of firsts "User interface process started for user '" of it) of lines whose(it contains "User interface process started for user '") of files whose( (exists lines of it) AND (name of it as uppercase ends with ".LOG") AND ( (name of it starts with ((it as string) of ( current year )) ) OR (name of it starts with ((it as string) of ( current year - 1*year )) ) ) ) of folders "__Global/Logs" of (data folder of client) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Printer Audit - Windows (2994742).bes b/Sites/Windows Management/Fixlets/Analyses/Printer Audit - Windows (2994742).bes index 2f498768d..7da1aa51a 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Printer Audit - Windows (2994742).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Printer Audit - Windows (2994742).bes @@ -1,43 +1,43 @@ - - - - - Printer Audit - Windows - This Analysis provides information about Windows Printers.

-

 

-

Related:

-

https://www.ibm.com/developerworks/community/forums/html/topic?id=d0fa8b7c-9d26-420c-b82b-fbe307f3f4b1&ps=100

-

 

-

References:

-

http://www.stigviewer.com/stig/windows_7/2014-04-02/finding/V-21963

-

http://www.scaprepo.com/view.jsp?id=CCE-18881-3

-

 

]]>
- windows of operating system - - x-fixlet-modification-time - Fri, 17 Oct 2014 14:48:24 +0000 - - BESC - number of keys whose (value "Port" of it as string contains "LPT" OR value "Port" of it as string contains "DOT4" OR value "Port" of it as string contains "USB") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string - number of keys whose (4 = number of substrings separated by "." of (value "Port" of it as string)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string - concatenation ", " of unique values of names whose(it as string does not contain "Microsoft" AND it as string does not contain "PDF" AND it as string as lowercase does not contain "fax" AND it as string does not contain "OneNote" AND it as string does not contain "PaperPort") of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry - concatenation ", " of unique values of (values "Model" whose(it as string does not contain "Microsoft" AND it as string does not contain "PDF" AND it as string as lowercase does not contain "fax" AND it as string does not contain "OneNote" AND it as string does not contain "PaperPort") of keys of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string) - concatenation ", " of (unique values whose(it as string does not contain "Microsoft" AND it as string does not contain "PDF" AND it as string as lowercase does not contain "fax" AND it as string does not contain "OneNote" AND it as string does not contain "PaperPort") of preceding texts of firsts "," of ((values "Device" of keys "windows" whose ( exists values "Device" of it ) of keys "Software\Microsoft\Windows NT\CurrentVersion" of keys of key "HKEY_USERS" of registry) as string) as string) - selects "Name,Caption,DeviceID,DriverName,PortName from win32_printer" of wmi - unique values whose(not exists (it as lowercase) whose(it = "fax" OR it contains "webex " OR it contains " converter" OR it contains " virtual printer" OR it contains " publisher imagesetter" OR it contains " onenote " OR it contains "microsoft " OR it contains "pdf")) of string values of selects "Name,Caption,DeviceID,DriverName from win32_printer" of wmi - (friendly name of it | "<noFriName>", description of it | "<noDesc>", manufacturer of it | "<noManuf>", location information of it | "<noLocInfo>" ) of active devices whose(class of it = "PrintQueue" OR class of it = "Printer") - values "DoNotInstallCompatibleDriverFromWindowsUpdate" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print" of native registry - unique values of names of keys of keys "Control\Print\Printers" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry - unique values of names of keys of keys whose(name of it starts with "Version-") of keys "Drivers" of keys of keys "Control\Print\Environments" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry - unique values whose(not exists (it as lowercase) whose(it = "fax" OR it contains "root print " OR it contains "remote desktop " OR it contains "webex " OR it contains " converter" OR it contains " virtual printer" OR it contains " publisher imagesetter" OR it contains " onenote " OR it contains "microsoft " OR it contains "pdf")) of ( (string values of selects "Name,Caption,DeviceID,DriverName from win32_printer" of wmi);( names of keys of keys "Control\Print\Printers" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry );( names of keys of keys whose(name of it starts with "Version-") of keys "Drivers" of keys of keys "Control\Print\Environments" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry );(values "Model" of keys of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string);(( if (exists friendly name of it) then (friendly names of it) else (descriptions of it) ) of active devices whose(class of it = "PrintQueue" OR class of it = "Printer")) ) -
-
+ + + + + Printer Audit - Windows + This Analysis provides information about Windows Printers.

+

 

+

Related:

+

https://www.ibm.com/developerworks/community/forums/html/topic?id=d0fa8b7c-9d26-420c-b82b-fbe307f3f4b1&ps=100

+

 

+

References:

+

http://www.stigviewer.com/stig/windows_7/2014-04-02/finding/V-21963

+

http://www.scaprepo.com/view.jsp?id=CCE-18881-3

+

 

]]>
+ windows of operating system + + x-fixlet-modification-time + Fri, 17 Oct 2014 14:48:24 +0000 + + BESC + number of keys whose (value "Port" of it as string contains "LPT" OR value "Port" of it as string contains "DOT4" OR value "Port" of it as string contains "USB") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string + number of keys whose (4 = number of substrings separated by "." of (value "Port" of it as string)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string + concatenation ", " of unique values of names whose(it as string does not contain "Microsoft" AND it as string does not contain "PDF" AND it as string as lowercase does not contain "fax" AND it as string does not contain "OneNote" AND it as string does not contain "PaperPort") of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry + concatenation ", " of unique values of (values "Model" whose(it as string does not contain "Microsoft" AND it as string does not contain "PDF" AND it as string as lowercase does not contain "fax" AND it as string does not contain "OneNote" AND it as string does not contain "PaperPort") of keys of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string) + concatenation ", " of (unique values whose(it as string does not contain "Microsoft" AND it as string does not contain "PDF" AND it as string as lowercase does not contain "fax" AND it as string does not contain "OneNote" AND it as string does not contain "PaperPort") of preceding texts of firsts "," of ((values "Device" of keys "windows" whose ( exists values "Device" of it ) of keys "Software\Microsoft\Windows NT\CurrentVersion" of keys of key "HKEY_USERS" of registry) as string) as string) + selects "Name,Caption,DeviceID,DriverName,PortName from win32_printer" of wmi + unique values whose(not exists (it as lowercase) whose(it = "fax" OR it contains "webex " OR it contains " converter" OR it contains " virtual printer" OR it contains " publisher imagesetter" OR it contains " onenote " OR it contains "microsoft " OR it contains "pdf")) of string values of selects "Name,Caption,DeviceID,DriverName from win32_printer" of wmi + (friendly name of it | "<noFriName>", description of it | "<noDesc>", manufacturer of it | "<noManuf>", location information of it | "<noLocInfo>" ) of active devices whose(class of it = "PrintQueue" OR class of it = "Printer") + values "DoNotInstallCompatibleDriverFromWindowsUpdate" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print" of native registry + unique values of names of keys of keys "Control\Print\Printers" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry + unique values of names of keys of keys whose(name of it starts with "Version-") of keys "Drivers" of keys of keys "Control\Print\Environments" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry + unique values whose(not exists (it as lowercase) whose(it = "fax" OR it contains "root print " OR it contains "remote desktop " OR it contains "webex " OR it contains " converter" OR it contains " virtual printer" OR it contains " publisher imagesetter" OR it contains " onenote " OR it contains "microsoft " OR it contains "pdf")) of ( (string values of selects "Name,Caption,DeviceID,DriverName from win32_printer" of wmi);( names of keys of keys "Control\Print\Printers" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry );( names of keys of keys whose(name of it starts with "Version-") of keys "Drivers" of keys of keys "Control\Print\Environments" of keys whose(name of it contains "ControlSet") of keys "HKEY_LOCAL_MACHINE\SYSTEM" of native registry );(values "Model" of keys of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry as string);(( if (exists friendly name of it) then (friendly names of it) else (descriptions of it) ) of active devices whose(class of it = "PrintQueue" OR class of it = "Printer")) ) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Printers - Windows (2998542).bes b/Sites/Windows Management/Fixlets/Analyses/Printers - Windows (2998542).bes index 3a9b79296..f804a785e 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Printers - Windows (2998542).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Printers - Windows (2998542).bes @@ -1,23 +1,23 @@ - - - - - Printers - Windows - Analysis of local and AD installed printers for Windows systems only

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BESC - (value "name" of it, value "printer driver" of it, value "port" of it) of keys whose (value "Port" of it as string contains "LPT" OR value "Port" of it as string contains "DOT4" OR value "Port" of it as string contains "USB" OR value "Port" of it as string contains ".") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry - unique values of (it as string) of (values "printShareName" of keys "DsSpooler" of it, values "description" of keys "DsSpooler" of it, values "location" of keys "DsSpooler" of it, values "Printer Driver" of it, values "portName" of keys "DsSpooler" of it, values "ShortServerName" of keys "DsSpooler" of it) of keys of keys whose (name of it = "Printers" ) of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider\Servers" of registry - unique values of (it as string) of (name of it, value "DriverVersion" of it) of keys of keys of keys "Drivers" of keys of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Environments" of native registry -
-
+ + + + + Printers - Windows + Analysis of local and AD installed printers for Windows systems only

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + (value "name" of it, value "printer driver" of it, value "port" of it) of keys whose (value "Port" of it as string contains "LPT" OR value "Port" of it as string contains "DOT4" OR value "Port" of it as string contains "USB" OR value "Port" of it as string contains ".") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" of registry + unique values of (it as string) of (values "printShareName" of keys "DsSpooler" of it, values "description" of keys "DsSpooler" of it, values "location" of keys "DsSpooler" of it, values "Printer Driver" of it, values "portName" of keys "DsSpooler" of it, values "ShortServerName" of keys "DsSpooler" of it) of keys of keys whose (name of it = "Printers" ) of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider\Servers" of registry + unique values of (it as string) of (name of it, value "DriverVersion" of it) of keys of keys of keys "Drivers" of keys of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Environments" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Random Access Memory (RAM) Properties (Windows) - Extended (2994574).bes b/Sites/Windows Management/Fixlets/Analyses/Random Access Memory (RAM) Properties (Windows) - Extended (2994574).bes index 8afbe1b1f..83e08db08 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Random Access Memory (RAM) Properties (Windows) - Extended (2994574).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Random Access Memory (RAM) Properties (Windows) - Extended (2994574).bes @@ -1,32 +1,32 @@ - - - - - Random Access Memory (RAM) Properties (Windows) - Extended - Decoding many of the results of this analysis requires reading the SMBIOS spec found here: http://dmtf.org/standards/smbios

-

If the "smbios" inspector works on other OSes other than Windows, then this analysis should work there too.

-

This analysis can be found here: http://bigfix.me/analysis/details/2994573

]]>
- exists smbios - - x-fixlet-modification-time - Tue, 17 Sep 2013 18:42:07 +0000 - - BESC - unique values of (values "memory_type" of structures "memory_device" whose(value "speed" of it as string != "0") of smbios as string) - unique values of (values "speed" whose(it as string != "0") of structures "memory_device" of smbios as string) - unique values of (values "manufacturer" whose(it as string != "[Empty]" AND it as string as trimmed string does not start with "FFFFFFFFFFFF" AND it as string as trimmed string != "") of structures "memory_device" of smbios as string) - unique values of (values "form_factor" of structures "memory_device" of smbios as string) - unique values of (values "part_number" whose(it as string != "[Empty]" AND it as string as trimmed string != "" AND it as string as trimmed string does not start with "FFFFFF") of structures "memory_device" of smbios as string) - unique values of (values "asset_tag" whose(it as string != "[Empty]" AND it as string as trimmed string != "" AND it as string as trimmed string does not start with "FFFFFF") of structures "memory_device" of smbios as string) - unique values of (values "serial_number" whose(it as string != "[Empty]" AND it as string as trimmed string != "" AND it as string as trimmed string != "00000000" AND it as string as trimmed string does not start with "FFFFFF") of structures "memory_device" of smbios as string) -
-
+ + + + + Random Access Memory (RAM) Properties (Windows) - Extended + Decoding many of the results of this analysis requires reading the SMBIOS spec found here: http://dmtf.org/standards/smbios

+

If the "smbios" inspector works on other OSes other than Windows, then this analysis should work there too.

+

This analysis can be found here: http://bigfix.me/analysis/details/2994573

]]>
+ exists smbios + + x-fixlet-modification-time + Tue, 17 Sep 2013 18:42:07 +0000 + + BESC + unique values of (values "memory_type" of structures "memory_device" whose(value "speed" of it as string != "0") of smbios as string) + unique values of (values "speed" whose(it as string != "0") of structures "memory_device" of smbios as string) + unique values of (values "manufacturer" whose(it as string != "[Empty]" AND it as string as trimmed string does not start with "FFFFFFFFFFFF" AND it as string as trimmed string != "") of structures "memory_device" of smbios as string) + unique values of (values "form_factor" of structures "memory_device" of smbios as string) + unique values of (values "part_number" whose(it as string != "[Empty]" AND it as string as trimmed string != "" AND it as string as trimmed string does not start with "FFFFFF") of structures "memory_device" of smbios as string) + unique values of (values "asset_tag" whose(it as string != "[Empty]" AND it as string as trimmed string != "" AND it as string as trimmed string does not start with "FFFFFF") of structures "memory_device" of smbios as string) + unique values of (values "serial_number" whose(it as string != "[Empty]" AND it as string as trimmed string != "" AND it as string as trimmed string != "00000000" AND it as string as trimmed string does not start with "FFFFFF") of structures "memory_device" of smbios as string) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Real-time Downtime Validation (2998602).bes b/Sites/Windows Management/Fixlets/Analyses/Real-time Downtime Validation (2998602).bes index a5ab07718..94b1eb131 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Real-time Downtime Validation (2998602).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Real-time Downtime Validation (2998602).bes @@ -1,34 +1,34 @@ - - - - - Real-time Downtime Validation - This analysis provides the ability to track DC services, Shares, and Reboot status in a real-time report. Servers do not need to be a Domain controller to use this report but they will show false for all ADS services and shares.

-

Note: Currently the Relevance for this Analysis pulls all endpoints with any windows OS. if you are going to target just a subset of devices change the Relevance to Computer groups (manual or Dynamic), By Active Directory OU, etc. to filter to the devices you want.

]]>
- windows of operating system - - x-fixlet-modification-time - Mon, 03 Feb 2020 20:34:53 +0000 - - BESC - if not exists service "ADWS" then "Not Installed" else if exists service "ADWS" then if exists running service "ADWS" then "Running" else "Stopped" else "Pending" - if not exists service "NTDS" then "Not Installed" else if exists service "NTDS" then if exists running service "NTDS" then "Running" else "Stopped" else "Pending" - if not exists service "Parity" then "Not Installed" else if exists service "Parity" then if exists running service "Parity" then "Running" else "Stopped" else "Pending" - if not exists (service) whose (it as string as lowercase contains "CiscoAmp" as lowercase) then "Not Installed" else if exists (service) whose (it as string as lowercase contains "CiscoAmp" as lowercase) then if exists (running service) whose (it as string as lowercase contains "CiscoAmp" as lowercase) then "Running" else "Stopped" else "Pending" - if not exists service "SCSM" then "Not Installed" else if exists service "SCSM" then if exists running service "SCSM" then "Running" else "Stopped" else "Pending" - if not exists service "CCmExec" then "Not Installed" else if exists service "CCmExec" then if exists running service "CCmExec" then "Running" else "Stopped" else "Pending" - if not exists service "SEPMasterService" then "Not Installed" else if exists service "SEPMasterService" then if exists running service "SEPMasterService" then "Running" else "Stopped" else "Pending" - uptime of operating system - if (exists key "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry) then "Updates" else if (exists key "HKLM\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry) then ("CBS") else if (exists value "UpdateExeVolatile" of keys "HKLM\Software\Microsoft\Updates" of native registry) then (" UpdateExeVolatile") else ("No") - Exists (folder("\\" & (computer name as string) & "\sysvol")) -
-
+ + + + + Real-time Downtime Validation + This analysis provides the ability to track DC services, Shares, and Reboot status in a real-time report. Servers do not need to be a Domain controller to use this report but they will show false for all ADS services and shares.

+

Note: Currently the Relevance for this Analysis pulls all endpoints with any windows OS. if you are going to target just a subset of devices change the Relevance to Computer groups (manual or Dynamic), By Active Directory OU, etc. to filter to the devices you want.

]]>
+ windows of operating system + + x-fixlet-modification-time + Mon, 03 Feb 2020 20:34:53 +0000 + + BESC + if not exists service "ADWS" then "Not Installed" else if exists service "ADWS" then if exists running service "ADWS" then "Running" else "Stopped" else "Pending" + if not exists service "NTDS" then "Not Installed" else if exists service "NTDS" then if exists running service "NTDS" then "Running" else "Stopped" else "Pending" + if not exists service "Parity" then "Not Installed" else if exists service "Parity" then if exists running service "Parity" then "Running" else "Stopped" else "Pending" + if not exists (service) whose (it as string as lowercase contains "CiscoAmp" as lowercase) then "Not Installed" else if exists (service) whose (it as string as lowercase contains "CiscoAmp" as lowercase) then if exists (running service) whose (it as string as lowercase contains "CiscoAmp" as lowercase) then "Running" else "Stopped" else "Pending" + if not exists service "SCSM" then "Not Installed" else if exists service "SCSM" then if exists running service "SCSM" then "Running" else "Stopped" else "Pending" + if not exists service "CCmExec" then "Not Installed" else if exists service "CCmExec" then if exists running service "CCmExec" then "Running" else "Stopped" else "Pending" + if not exists service "SEPMasterService" then "Not Installed" else if exists service "SEPMasterService" then if exists running service "SEPMasterService" then "Running" else "Stopped" else "Pending" + uptime of operating system + if (exists key "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry) then "Updates" else if (exists key "HKLM\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry) then ("CBS") else if (exists value "UpdateExeVolatile" of keys "HKLM\Software\Microsoft\Updates" of native registry) then (" UpdateExeVolatile") else ("No") + Exists (folder("\\" & (computer name as string) & "\sysvol")) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Configuration - Windows (2998523).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Configuration - Windows (2998523).bes index 6ef231be9..a62989f79 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Configuration - Windows (2998523).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Configuration - Windows (2998523).bes @@ -1,31 +1,31 @@ - - - - - Remote Assistance - Configuration - Windows - Provides information regarding the remote assistance configuration of a computer.

-

Specifically providing information on the states of the following settings

-
    -
  • Detailed Logging -
  • Unsolicited remote assistance (View) -
  • Unsolicited remote assistance (Control) -
  • Users and Groups allowed to initiate offers to this computer
-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- windows of operating system - exists key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry - BESC - if ((value "LoggingEnabled" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer = 1) | false) then "Enabled" else "Disabled" | "Disabled" - if ((value "fAllowUnsolicited" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer = 1) | false) then "Enabled" else "Disabled" | "Disabled" - if ((value "fAllowUnsolicitedFullControl" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer = 1) | false) then "Enabled" else "Disabled" | "Disabled" - if (exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services\RAUnsolicit" of registry) then (names of values of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services\RAUnsolicit" of registry) else ("none") -
-
+ + + + + Remote Assistance - Configuration - Windows + Provides information regarding the remote assistance configuration of a computer.

+

Specifically providing information on the states of the following settings

+
    +
  • Detailed Logging +
  • Unsolicited remote assistance (View) +
  • Unsolicited remote assistance (Control) +
  • Users and Groups allowed to initiate offers to this computer
+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + exists key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry + BESC + if ((value "LoggingEnabled" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer = 1) | false) then "Enabled" else "Disabled" | "Disabled" + if ((value "fAllowUnsolicited" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer = 1) | false) then "Enabled" else "Disabled" | "Disabled" + if ((value "fAllowUnsolicitedFullControl" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer = 1) | false) then "Enabled" else "Disabled" | "Disabled" + if (exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services\RAUnsolicit" of registry) then (names of values of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services\RAUnsolicit" of registry) else ("none") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Event Logs - Windows (2998524).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Event Logs - Windows (2998524).bes index c91bdef30..991be7a1d 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Event Logs - Windows (2998524).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Event Logs - Windows (2998524).bes @@ -1,25 +1,25 @@ - - - - - Remote Assistance - Event Logs - Windows - Pulls data from the Remote Assistance event log.

-

For outgoing remote assistance requests: Who they were to, who made the request, and what time

-

For incoming remote assistance requests: Who received it, and what time (not possible to tell who made the request)

-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- windows of operating system - exists event log "Microsoft-Windows-RemoteAssistance/Operational" | false - BESC - (time generated of it, name of user of user sid of it, substring before "as the command line" of substring after "with:" of description of it as string) of (records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) of event log "Microsoft-Windows-RemoteAssistance/Operational") whose (description of it contains "as the command line parameters" and description of it does not contain "CreateRA") - (name of user of user sid of it, time generated of it) of (records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) of event log "Microsoft-Windows-RemoteAssistance/Operational") whose (description of it contains "A Remote Assistance Invitation was successfully opened.") -
-
+ + + + + Remote Assistance - Event Logs - Windows + Pulls data from the Remote Assistance event log.

+

For outgoing remote assistance requests: Who they were to, who made the request, and what time

+

For incoming remote assistance requests: Who received it, and what time (not possible to tell who made the request)

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + exists event log "Microsoft-Windows-RemoteAssistance/Operational" | false + BESC + (time generated of it, name of user of user sid of it, substring before "as the command line" of substring after "with:" of description of it as string) of (records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) of event log "Microsoft-Windows-RemoteAssistance/Operational") whose (description of it contains "as the command line parameters" and description of it does not contain "CreateRA") + (name of user of user sid of it, time generated of it) of (records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) of event log "Microsoft-Windows-RemoteAssistance/Operational") whose (description of it contains "A Remote Assistance Invitation was successfully opened.") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Session Logs - Windows (2998525).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Session Logs - Windows (2998525).bes index 61385f150..0a2554ad3 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Session Logs - Windows (2998525).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Session Logs - Windows (2998525).bes @@ -1,43 +1,43 @@ - - - - - Remote Assistance - Session Logs - Windows - Pulls data from the Remote Assistance session logs in each user's documents folder.

-

For ALL incoming connections that are established the following is collected:

-
    -
  • Full name of originating user -
  • IP address of originating request -
  • Date of request -
  • Time of request
-

For incoming connections where control is granted, the following is collected:

-
    -
  • Full name of originating user -
  • IP address of originating request -
  • Date of request -
  • Time of request
-

For all sessions, the following is collected:

-
    -
  • Full name of originating user -
  • Date of session start -
  • Time of session start -
  • Date of session end -
  • Time of session end
-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- windows of operating system - - BESC - (xpath "CONNECTION_ESTABLISHED" of it as text, xpath "INCOMING_IP_ADDRESS" of it as text, node value of attribute "DATE" of xpath "CONNECTION_ESTABLISHED" of it as string, node value of attribute "TIME" of xpath "CONNECTION_ESTABLISHED" of it as string) of xpaths "/SESSION" of xml documents whose (exists xpath "/SESSION/INVITATION_OPENED" of it) of files of folders "Remote Assistance Logs" of folders "Documents" of folders of folder (name of drive of system folder & "\Users") - (xpath "CONNECTION_ESTABLISHED" of it as text | "none", xpath "INCOMING_IP_ADDRESS" of it as text | "none", node value of attribute "DATE" of xpath "EXPERT_CONTROL_STARTED" of it as string | "none", node value of attribute "TIME" of xpath "EXPERT_CONTROL_STARTED" of it as string | "none") of xpaths "/SESSION" of xml documents whose (exists xpath "/SESSION/EXPERT_CONTROL_STARTED" of it and exists xpath "/SESSION/INVITATION_OPENED" of it) of files of folders "Remote Assistance Logs" of folders "Documents" of folders of folder (name of drive of system folder & "\Users") - (xpath "CONNECTION_ESTABLISHED" of it as text | "none", attribute "DATE" of xpath "CONNECTION_ESTABLISHED" of it as text | "none", attribute "TIME" of xpath "CONNECTION_ESTABLISHED" of it as text | "none", attribute "DATE" of xpath "CONNECTION_ENDED" of it as text | "none", attribute "TIME" of xpath "CONNECTION_ENDED" of it as text | "none") of xpaths "/SESSION" of xml documents whose (exists xpath "/SESSION/INVITATION_OPENED" of it) of files of folders "Remote Assistance Logs" of folders "Documents" of folders of folder (name of drive of system folder & "\Users") -
-
+ + + + + Remote Assistance - Session Logs - Windows + Pulls data from the Remote Assistance session logs in each user's documents folder.

+

For ALL incoming connections that are established the following is collected:

+
    +
  • Full name of originating user +
  • IP address of originating request +
  • Date of request +
  • Time of request
+

For incoming connections where control is granted, the following is collected:

+
    +
  • Full name of originating user +
  • IP address of originating request +
  • Date of request +
  • Time of request
+

For all sessions, the following is collected:

+
    +
  • Full name of originating user +
  • Date of session start +
  • Time of session start +
  • Date of session end +
  • Time of session end
+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + + BESC + (xpath "CONNECTION_ESTABLISHED" of it as text, xpath "INCOMING_IP_ADDRESS" of it as text, node value of attribute "DATE" of xpath "CONNECTION_ESTABLISHED" of it as string, node value of attribute "TIME" of xpath "CONNECTION_ESTABLISHED" of it as string) of xpaths "/SESSION" of xml documents whose (exists xpath "/SESSION/INVITATION_OPENED" of it) of files of folders "Remote Assistance Logs" of folders "Documents" of folders of folder (name of drive of system folder & "\Users") + (xpath "CONNECTION_ESTABLISHED" of it as text | "none", xpath "INCOMING_IP_ADDRESS" of it as text | "none", node value of attribute "DATE" of xpath "EXPERT_CONTROL_STARTED" of it as string | "none", node value of attribute "TIME" of xpath "EXPERT_CONTROL_STARTED" of it as string | "none") of xpaths "/SESSION" of xml documents whose (exists xpath "/SESSION/EXPERT_CONTROL_STARTED" of it and exists xpath "/SESSION/INVITATION_OPENED" of it) of files of folders "Remote Assistance Logs" of folders "Documents" of folders of folder (name of drive of system folder & "\Users") + (xpath "CONNECTION_ESTABLISHED" of it as text | "none", attribute "DATE" of xpath "CONNECTION_ESTABLISHED" of it as text | "none", attribute "TIME" of xpath "CONNECTION_ESTABLISHED" of it as text | "none", attribute "DATE" of xpath "CONNECTION_ENDED" of it as text | "none", attribute "TIME" of xpath "CONNECTION_ENDED" of it as text | "none") of xpaths "/SESSION" of xml documents whose (exists xpath "/SESSION/INVITATION_OPENED" of it) of files of folders "Remote Assistance Logs" of folders "Documents" of folders of folder (name of drive of system folder & "\Users") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Windows (2998526).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Windows (2998526).bes index ac3780a11..25d01ec52 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Windows (2998526).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Assistance - Windows (2998526).bes @@ -1,25 +1,25 @@ - - - - - Remote Assistance - Windows - This Analysis gathers enabled and install state data regarding Remote Assistance.

-

 

-

Remote Assistance is by default not enabled or installed on Windows Server Operating Systems

-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- windows of operating system - = "6.1"]]> - BESC - if (name of operating system as string starts with "Win2") then (exists selects "* from Win32_ServerFeature where (Name like 'Remote Assistance')" of wmi) else (if (version of operating system >= "6.1") then (true) else (false)) - (value "fAllowUnsolicitedFullControl" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer | 0) = 1 -
-
+ + + + + Remote Assistance - Windows + This Analysis gathers enabled and install state data regarding Remote Assistance.

+

 

+

Remote Assistance is by default not enabled or installed on Windows Server Operating Systems

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + = "6.1"]]> + BESC + if (name of operating system as string starts with "Win2") then (exists selects "* from Win32_ServerFeature where (Name like 'Remote Assistance')" of wmi) else (if (version of operating system >= "6.1") then (true) else (false)) + (value "fAllowUnsolicitedFullControl" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer | 0) = 1 +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Remote Desktop - Session Logs - Windows (2998527).bes b/Sites/Windows Management/Fixlets/Analyses/Remote Desktop - Session Logs - Windows (2998527).bes index b532898c9..fed2deaad 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Remote Desktop - Session Logs - Windows (2998527).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Remote Desktop - Session Logs - Windows (2998527).bes @@ -1,22 +1,22 @@ - - - - - Remote Desktop - Session Logs - Windows - Provides information about previous remote desktop sessions on the system.

-

NOTE: Due to issues with how BigFix parses the event log: https://forum.bigfix.com/t/the-event-record-inspector-is-returning-an-error-for-the-description-of-the-event/17006 this will NOT return results for users resuming their RDP sessions. This will only return results for users starting brand new user sessions over RDP.

-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- windows of operating system - BESC - (preceding text of first "%0d%0a" of following text of first "User: " of description of it | "Unknown", time generated of it, (if (it = 21) then ("New Session") else ("Resumed Session")) of (event id of it), following text of last ": " of description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2000;item 1 of it))) of (record count of it, oldest record number of it)) whose (exists description of it and (event id of it = 21 or event id of it = 25) and description of it does not contain "LOCAL") of event log "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" -
-
+ + + + + Remote Desktop - Session Logs - Windows + Provides information about previous remote desktop sessions on the system.

+

NOTE: Due to issues with how BigFix parses the event log: https://forum.bigfix.com/t/the-event-record-inspector-is-returning-an-error-for-the-description-of-the-event/17006 this will NOT return results for users resuming their RDP sessions. This will only return results for users starting brand new user sessions over RDP.

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + BESC + (preceding text of first "%0d%0a" of following text of first "User: " of description of it | "Unknown", time generated of it, (if (it = 21) then ("New Session") else ("Resumed Session")) of (event id of it), following text of last ": " of description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2000;item 1 of it))) of (record count of it, oldest record number of it)) whose (exists description of it and (event id of it = 21 or event id of it = 25) and description of it does not contain "LOCAL") of event log "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Restart information - Windows (2998686).bes b/Sites/Windows Management/Fixlets/Analyses/Restart information - Windows (2998686).bes index 6f40488d8..e3d7083a2 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Restart information - Windows (2998686).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Restart information - Windows (2998686).bes @@ -1,31 +1,31 @@ - - - - - Restart information - Windows - This analysis shows what could cause a "Pending Restart" status on Windows endpoints - windows of operating system - in agent context - - x-fixlet-modification-time - Thu, 25 May 2023 11:07:17 +0000 - - BESC - pending restart - if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\BigFix\EnterpriseClient\BESPendingRestart\BESPendingRestart" of native registry then names of values of key "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\BigFix\EnterpriseClient\BESPendingRestart\BESPendingRestart" of native registry else "No key found" - if exists value whose (name of it is "PendingFileRenameOperations") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" of native registry then substrings separated by "%00" of (value whose (name of it is "PendingFileRenameOperations") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" of native registry as string) else "No value found" - if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry then (name of it & "|" & it as string) of values of key "Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry else "No key found" - if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry then (name of it & "|" & it as string) of values of key "Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry else "No key found" - if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" of native registry then if exists value whose (name of it is "UpdateExeVolatile") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" of native registry then value whose (name of it is "UpdateExeVolatile") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" of native registry as string else "No value found" else "Key does not exist" - values of settings "_BESClient_ActionManager_PendingRestartExclusions" of client - - + + + + + Restart information - Windows + This analysis shows what could cause a "Pending Restart" status on Windows endpoints + windows of operating system + in agent context + + x-fixlet-modification-time + Thu, 25 May 2023 11:07:17 +0000 + + BESC + pending restart + if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\BigFix\EnterpriseClient\BESPendingRestart\BESPendingRestart" of native registry then names of values of key "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\BigFix\EnterpriseClient\BESPendingRestart\BESPendingRestart" of native registry else "No key found" + if exists value whose (name of it is "PendingFileRenameOperations") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" of native registry then substrings separated by "%00" of (value whose (name of it is "PendingFileRenameOperations") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" of native registry as string) else "No value found" + if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry then (name of it & "|" & it as string) of values of key "Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" of native registry else "No key found" + if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry then (name of it & "|" & it as string) of values of key "Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" of native registry else "No key found" + if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" of native registry then if exists value whose (name of it is "UpdateExeVolatile") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" of native registry then value whose (name of it is "UpdateExeVolatile") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" of native registry as string else "No value found" else "Key does not exist" + values of settings "_BESClient_ActionManager_PendingRestartExclusions" of client + + diff --git a/Sites/Windows Management/Fixlets/Analyses/SCCM - Windows (2998488).bes b/Sites/Windows Management/Fixlets/Analyses/SCCM - Windows (2998488).bes index d1101a044..163bb840c 100644 --- a/Sites/Windows Management/Fixlets/Analyses/SCCM - Windows (2998488).bes +++ b/Sites/Windows Management/Fixlets/Analyses/SCCM - Windows (2998488).bes @@ -1,32 +1,32 @@ - - - - - SCCM - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists service "CcmExec" - BESC - version of service "CcmExec" - value "LastSiteCode" of Key "HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\CcmEval" of native registry - time value of selects "LastReportDate from InventoryActionStatus where InventoryActionID = '{00000000-0000-0000-0000-000000000001}'" of wmi "root\ccm\InvAgt" - string value of select "CurrentManagementPoint from SMS_Authority" of wmi "root\ccm" - unique values of string values of selects "DisplayName from CCM_InstalledComponent" of wmi "root\ccm" - boolean value of selects "Approved from CCM_ClientIdentificationInformation" of wmi "root\ccm" - string value of select "Name from SMS_LocalMP" of wmi "root\ccm" - (string value of property "PKG_NAME" of it, string value of property "PolicyID" of it) of select objects "* from CCM_SoftwareDistribution" of wmi "root\ccm\Policy\Machine\RequestedConfig" - integer value of selects "Size from CacheConfig" of WMI "ROOT\ccm\SoftMgmtAgent" - unique values of string values of selects "Title from CCM_UpdateStatus WHERE Status='Missing'" of WMI "ROOT\ccm\SoftwareUpdates\UpdatesStore" - state of service "CcmExec" -
-
+ + + + + SCCM - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "CcmExec" + BESC + version of service "CcmExec" + value "LastSiteCode" of Key "HKEY_LOCAL_MACHINE\Software\Microsoft\CCM\CcmEval" of native registry + time value of selects "LastReportDate from InventoryActionStatus where InventoryActionID = '{00000000-0000-0000-0000-000000000001}'" of wmi "root\ccm\InvAgt" + string value of select "CurrentManagementPoint from SMS_Authority" of wmi "root\ccm" + unique values of string values of selects "DisplayName from CCM_InstalledComponent" of wmi "root\ccm" + boolean value of selects "Approved from CCM_ClientIdentificationInformation" of wmi "root\ccm" + string value of select "Name from SMS_LocalMP" of wmi "root\ccm" + (string value of property "PKG_NAME" of it, string value of property "PolicyID" of it) of select objects "* from CCM_SoftwareDistribution" of wmi "root\ccm\Policy\Machine\RequestedConfig" + integer value of selects "Size from CacheConfig" of WMI "ROOT\ccm\SoftMgmtAgent" + unique values of string values of selects "Title from CCM_UpdateStatus WHERE Status='Missing'" of WMI "ROOT\ccm\SoftwareUpdates\UpdatesStore" + state of service "CcmExec" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/SNMP - Windows (2998459).bes b/Sites/Windows Management/Fixlets/Analyses/SNMP - Windows (2998459).bes index 08dd60004..e2c27b73d 100644 --- a/Sites/Windows Management/Fixlets/Analyses/SNMP - Windows (2998459).bes +++ b/Sites/Windows Management/Fixlets/Analyses/SNMP - Windows (2998459).bes @@ -1,25 +1,25 @@ - - - - - SNMP - Windows - Provides information on the current SNMP configuration in Windows.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists service "SNMP" - BESC - state of service "SNMP" | error "Not Installed" - names of values whose (it = 4) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry - values of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry - names of values whose (it = 8) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry -
-
+ + + + + SNMP - Windows + Provides information on the current SNMP configuration in Windows.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "SNMP" + BESC + state of service "SNMP" | error "Not Installed" + names of values whose (it = 4) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry + values of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry + names of values whose (it = 8) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/SNMP Configuration (2994764).bes b/Sites/Windows Management/Fixlets/Analyses/SNMP Configuration (2994764).bes index 99f8a36b4..6f3469c8c 100644 --- a/Sites/Windows Management/Fixlets/Analyses/SNMP Configuration (2994764).bes +++ b/Sites/Windows Management/Fixlets/Analyses/SNMP Configuration (2994764).bes @@ -1,26 +1,26 @@ - - - - - SNMP Configuration - - name of operating system contains "Win2" - - x-fixlet-modification-time - Tue, 10 Feb 2015 17:56:10 +0000 - - BESC - if exists Service "SNMP" then state of service "SNMP" else "Not Installed" - if exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry then if exists values of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry then (names of values of it, values of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry as string else "Not Configured" else "Not Installed" - if exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry then if exists values of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry then (names of values of it, values of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry as string else "Not Configured" else "Not Installed" - - + + + + + SNMP Configuration + + name of operating system contains "Win2" + + x-fixlet-modification-time + Tue, 10 Feb 2015 17:56:10 +0000 + + BESC + if exists Service "SNMP" then state of service "SNMP" else "Not Installed" + if exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry then if exists values of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry then (names of values of it, values of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\ValidCommunities" of native registry as string else "Not Configured" else "Not Installed" + if exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry then if exists values of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry then (names of values of it, values of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SNMP\Parameters\PermittedManagers" of native registry as string else "Not Configured" else "Not Installed" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/SPSS Installation and Licensing - Windows (2994757).bes b/Sites/Windows Management/Fixlets/Analyses/SPSS Installation and Licensing - Windows (2994757).bes index cfb02897c..a90c89e90 100644 --- a/Sites/Windows Management/Fixlets/Analyses/SPSS Installation and Licensing - Windows (2994757).bes +++ b/Sites/Windows Management/Fixlets/Analyses/SPSS Installation and Licensing - Windows (2994757).bes @@ -1,34 +1,34 @@ - - - - - SPSS Installation and Licensing - Windows - - windows of operating system - (exists keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) - - x-fixlet-modification-time - Fri, 19 Dec 2014 21:32:22 +0000 - - BESC - unique values of (it as string) of values "DisplayVersion" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) - unique values of pathnames of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) - unique values of pathnames of files "lservrc" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) - unique values of lines whose (it as trimmed string != "") of files "lservrc" of folders (values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) as string) - unique values of (preceding texts of firsts ", exclusive" of following texts of lasts ", expires Midnight of " of it) of lines containing ", expires Midnight of " whose (it contains ", exclusive") of files "lservrc" of folders (values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) as string) - unique values of pathnames of files "spssprod.inf" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) - unique values of lines whose (it as trimmed string != "") of files "spssprod.inf" of folders (values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) as string) - unique values of (it as trimmed string) whose (it != "") of keys "DaemonHost" of files "spssprod.inf" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) - unique values of ( ( ( (if (it < current date) then "Expired on " else "Expires on ") & following text of first ", " of (it as string) ) of maxima of (it as date) of (following text of last " " of preceding text of first ", " of it & " " & preceding text of first " " of it & " " & following text of last ", " of it) of (it as trimmed string) of (preceding texts of firsts ", exclusive" of following texts of lasts ", expires Midnight of " of it) of lines containing ", expires Midnight of " whose (it contains ", exclusive") of it) of files "lservrc" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) ) - unique values of (it as trimmed string) whose (it != "" AND ( /* The following should be true of any License Server that is a domain name, or an IPV4 address */ 1 < number of substrings separated by "." of it )) of keys "DaemonHost" of files "spssprod.inf" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) - - + + + + + SPSS Installation and Licensing - Windows + + windows of operating system + (exists keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + + x-fixlet-modification-time + Fri, 19 Dec 2014 21:32:22 +0000 + + BESC + unique values of (it as string) of values "DisplayVersion" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) + unique values of pathnames of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + unique values of pathnames of files "lservrc" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + unique values of lines whose (it as trimmed string != "") of files "lservrc" of folders (values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) as string) + unique values of (preceding texts of firsts ", exclusive" of following texts of lasts ", expires Midnight of " of it) of lines containing ", expires Midnight of " whose (it contains ", exclusive") of files "lservrc" of folders (values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) as string) + unique values of pathnames of files "spssprod.inf" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + unique values of lines whose (it as trimmed string != "") of files "spssprod.inf" of folders (values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry) as string) + unique values of (it as trimmed string) whose (it != "") of keys "DaemonHost" of files "spssprod.inf" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + unique values of ( ( ( (if (it < current date) then "Expired on " else "Expires on ") & following text of first ", " of (it as string) ) of maxima of (it as date) of (following text of last " " of preceding text of first ", " of it & " " & preceding text of first " " of it & " " & following text of last ", " of it) of (it as trimmed string) of (preceding texts of firsts ", exclusive" of following texts of lasts ", expires Midnight of " of it) of lines containing ", expires Midnight of " whose (it contains ", exclusive") of it) of files "lservrc" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) ) + unique values of (it as trimmed string) whose (it != "" AND ( /* The following should be true of any License Server that is a domain name, or an IPV4 address */ 1 < number of substrings separated by "." of it )) of keys "DaemonHost" of files "spssprod.inf" of folders ((it as string) of values "InstallLocation" of keys whose (value "DisplayName" of it as string starts with "IBM SPSS Statistics") of keys "HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Uninstall" of (native registry; x32 registry)) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/SUA - Software Usage Analysis Info - Windows (2994536).bes b/Sites/Windows Management/Fixlets/Analyses/SUA - Software Usage Analysis Info - Windows (2994536).bes index 73033e690..9ea300f45 100644 --- a/Sites/Windows Management/Fixlets/Analyses/SUA - Software Usage Analysis Info - Windows (2994536).bes +++ b/Sites/Windows Management/Fixlets/Analyses/SUA - Software Usage Analysis Info - Windows (2994536).bes @@ -1,46 +1,46 @@ - - - - - SUA - Software Usage Analysis Info - Windows - This Analysis is to gather data about clients who are reporting data to Software Use Analysis. The "Duration of Scan" property will likely report an error if the scan is in progress, and probably for other reasons I have not yet investigated. The "ScanLog-ModTime" property should be the time of the last scan, unless a scan is in progress. The "Time between Scan & Upload" property is the difference of the mod time of the newest upload and the mod time of the scan log, which may be incorrect/negative if a scan is in progresss.

-

NOTE: This is "BETA" code and is not fully tested or in full production. This is an attempt to gather helpful feedback on the status of SUA on the client.

-

NOTE: This has only been tested on Windows, but should work on other OSes with minor adjustments.

-

http://bigfix.me/cdb/analysis/2994536

]]>
- windows of operating system - - x-fixlet-modification-time - Thu, 20 Jun 2013 20:02:33 +0000 - - BESC - if(not(exists parent folder of regapp "besclient.exe" AND exists folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT") AND exists file (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT\scan.log") )) then ERROR "no log" else (modification time of file (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT\scan.log") as string) - if (exists value of settings "ITSIT_Scanner_OutDir" of client) then (exists file (computer id as string & ".xml") of folder (value of settings "ITSIT_Scanner_OutDir" of client)) else (if (name of operating system as lowercase starts with "win") then (exists file (computer id as string & ".xml") of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT")) else (exists file (computer id as string & ".xml") of folder ((pathname of parent folder of parent folder of client folder of site "actionsite") & "/LMT/ITSIT"))) - maximum of modification times of files whose(name of it ends with ".xml.bz2") of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT") - ((following text of first ";" of it as string as time)-(preceding text of first ";" of it as string as time)) of concatenation ";" of (it as string) of following texts of firsts "# " of lines whose(it does not contain "Started" AND it does not contain "Complete" AND it contains ":" AND it contains "# ") of file "scan.log" of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT") - (maximum of modification times of files whose(name of it ends with ".xml.bz2") of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT")) - (modification time of file (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT\scan.log")) - if (not exists setting "CIT_Scan_Count" whose(exists value of it) of client) then ERROR "not set" else value of setting "CIT_Scan_Count" of client - if (not exists setting "ITSIT_Scan_Count" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scan_Count" of client - if(exists folder "C:\Program Files\tivoli\cit\properties\version" AND exists file whose(name of it ends with ".cmptag") of folder "C:\Program Files\tivoli\cit\properties\version") then ((it as text) of xpaths "/Component/ComponentVersion" of xml document of file whose(name of it ends with ".cmptag") of folder "C:\Program Files\tivoli\cit\properties\version") else ERROR "No CIT Scanner" - if (exists folder "LMT\CIT" of parent folder of client AND exists file "installCITlog.txt" of folder "LMT\CIT" of parent folder of client) then (following text of first "Default dest: " of line whose(it starts with "Default dest: ") of file "installCITlog.txt" of folder "LMT\CIT" of parent folder of client) as trimmed string else ERROR "No CIT Scanner" - version of file "itsit.exe" of folder "LMT\ITSIT" of parent folder of client - if (not exists setting "ITSIT_Scanner_Version" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scanner_Version" of client - if (not exists setting "_BESClient_UsageManager_EnableAppUsageSummary" whose(exists value of it) of client) then ERROR "not set" else value of setting "_BESClient_UsageManager_EnableAppUsageSummary" of client - if (not exists setting "_BESClient_UsageManager_EnableAppUsageSummaryApps" whose(exists value of it) of client) then ERROR "not set" else value of setting "_BESClient_UsageManager_EnableAppUsageSummaryApps" of client - if (not exists setting "ITSIT_Scanner_Debug" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scanner_Debug" of client - if (not exists setting "ITSIT_Deny" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Deny" of client - if (not exists setting "ITSIT_Scanner_OutDir" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scanner_OutDir" of client - if (not exists setting "CIT_Deny" whose(exists value of it) of client) then ERROR "not set" else value of setting "CIT_Deny" of client - (following text of first "CIT_BuildDate = " of lines whose(it starts with "CIT_BuildDate = ") of file "cit.ini" of folder "cit" of windows folder) as trimmed string - (following text of first "CIT_Exploiters = " of lines whose(it starts with "CIT_Exploiters = ") of file "cit.ini" of folder "cit" of windows folder) as trimmed string - (following text of first "CIT_ConfigRootDirectory = " of lines whose(it starts with "CIT_ConfigRootDirectory = ") of file "cit.ini" of folder "cit" of windows folder) as trimmed string -
-
+ + + + + SUA - Software Usage Analysis Info - Windows + This Analysis is to gather data about clients who are reporting data to Software Use Analysis. The "Duration of Scan" property will likely report an error if the scan is in progress, and probably for other reasons I have not yet investigated. The "ScanLog-ModTime" property should be the time of the last scan, unless a scan is in progress. The "Time between Scan & Upload" property is the difference of the mod time of the newest upload and the mod time of the scan log, which may be incorrect/negative if a scan is in progresss.

+

NOTE: This is "BETA" code and is not fully tested or in full production. This is an attempt to gather helpful feedback on the status of SUA on the client.

+

NOTE: This has only been tested on Windows, but should work on other OSes with minor adjustments.

+

http://bigfix.me/cdb/analysis/2994536

]]>
+ windows of operating system + + x-fixlet-modification-time + Thu, 20 Jun 2013 20:02:33 +0000 + + BESC + if(not(exists parent folder of regapp "besclient.exe" AND exists folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT") AND exists file (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT\scan.log") )) then ERROR "no log" else (modification time of file (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT\scan.log") as string) + if (exists value of settings "ITSIT_Scanner_OutDir" of client) then (exists file (computer id as string & ".xml") of folder (value of settings "ITSIT_Scanner_OutDir" of client)) else (if (name of operating system as lowercase starts with "win") then (exists file (computer id as string & ".xml") of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT")) else (exists file (computer id as string & ".xml") of folder ((pathname of parent folder of parent folder of client folder of site "actionsite") & "/LMT/ITSIT"))) + maximum of modification times of files whose(name of it ends with ".xml.bz2") of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT") + ((following text of first ";" of it as string as time)-(preceding text of first ";" of it as string as time)) of concatenation ";" of (it as string) of following texts of firsts "# " of lines whose(it does not contain "Started" AND it does not contain "Complete" AND it contains ":" AND it contains "# ") of file "scan.log" of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT") + (maximum of modification times of files whose(name of it ends with ".xml.bz2") of folder (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT")) - (modification time of file (pathname of parent folder of regapp "besclient.exe" & "\LMT\ITSIT\scan.log")) + if (not exists setting "CIT_Scan_Count" whose(exists value of it) of client) then ERROR "not set" else value of setting "CIT_Scan_Count" of client + if (not exists setting "ITSIT_Scan_Count" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scan_Count" of client + if(exists folder "C:\Program Files\tivoli\cit\properties\version" AND exists file whose(name of it ends with ".cmptag") of folder "C:\Program Files\tivoli\cit\properties\version") then ((it as text) of xpaths "/Component/ComponentVersion" of xml document of file whose(name of it ends with ".cmptag") of folder "C:\Program Files\tivoli\cit\properties\version") else ERROR "No CIT Scanner" + if (exists folder "LMT\CIT" of parent folder of client AND exists file "installCITlog.txt" of folder "LMT\CIT" of parent folder of client) then (following text of first "Default dest: " of line whose(it starts with "Default dest: ") of file "installCITlog.txt" of folder "LMT\CIT" of parent folder of client) as trimmed string else ERROR "No CIT Scanner" + version of file "itsit.exe" of folder "LMT\ITSIT" of parent folder of client + if (not exists setting "ITSIT_Scanner_Version" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scanner_Version" of client + if (not exists setting "_BESClient_UsageManager_EnableAppUsageSummary" whose(exists value of it) of client) then ERROR "not set" else value of setting "_BESClient_UsageManager_EnableAppUsageSummary" of client + if (not exists setting "_BESClient_UsageManager_EnableAppUsageSummaryApps" whose(exists value of it) of client) then ERROR "not set" else value of setting "_BESClient_UsageManager_EnableAppUsageSummaryApps" of client + if (not exists setting "ITSIT_Scanner_Debug" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scanner_Debug" of client + if (not exists setting "ITSIT_Deny" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Deny" of client + if (not exists setting "ITSIT_Scanner_OutDir" whose(exists value of it) of client) then ERROR "not set" else value of setting "ITSIT_Scanner_OutDir" of client + if (not exists setting "CIT_Deny" whose(exists value of it) of client) then ERROR "not set" else value of setting "CIT_Deny" of client + (following text of first "CIT_BuildDate = " of lines whose(it starts with "CIT_BuildDate = ") of file "cit.ini" of folder "cit" of windows folder) as trimmed string + (following text of first "CIT_Exploiters = " of lines whose(it starts with "CIT_Exploiters = ") of file "cit.ini" of folder "cit" of windows folder) as trimmed string + (following text of first "CIT_ConfigRootDirectory = " of lines whose(it starts with "CIT_ConfigRootDirectory = ") of file "cit.ini" of folder "cit" of windows folder) as trimmed string +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Scheduled Tasks - Windows (2998472).bes b/Sites/Windows Management/Fixlets/Analyses/Scheduled Tasks - Windows (2998472).bes index 1f2a72d96..027206ae5 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Scheduled Tasks - Windows (2998472).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Scheduled Tasks - Windows (2998472).bes @@ -1,28 +1,28 @@ - - - - - Scheduled Tasks - Windows - This analysis provides information about the currently configured scheduled tasks on the system.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BESC - unique values of (concatenations of (it as string)) of (path of it) of scheduled tasks - unique values of (concatenations of (it as string)) of (path of it, last run time of it) of scheduled tasks - unique values of (concatenations of (it as string)) of (path of it, next run time of it as string | "none") of scheduled tasks - unique values of (concatenations of (it as string)) of (path of it, last task result of it | 0) of scheduled tasks - unique values of (concatenations of (it as string)) of (name of it, (if (enabled of it) then ("Enabled") else "Disabled")) of scheduled tasks - unique values of (concatenations of (it as string)) of (name of it, idle duration of idle settings of settings of definition of it as string) of scheduled tasks whose (exists idle duration of idle settings of settings of definition of it as string) - unique values of (concatenations of (it as string)) of (name of it, account name of owner of security descriptor of it) of scheduled tasks - unique values of (concatenations of (it as string)) of (name of it, user id of principal of definition of it) of scheduled tasks whose (password logon of principal of definition of it) -
-
+ + + + + Scheduled Tasks - Windows + This analysis provides information about the currently configured scheduled tasks on the system.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + unique values of (concatenations of (it as string)) of (path of it) of scheduled tasks + unique values of (concatenations of (it as string)) of (path of it, last run time of it) of scheduled tasks + unique values of (concatenations of (it as string)) of (path of it, next run time of it as string | "none") of scheduled tasks + unique values of (concatenations of (it as string)) of (path of it, last task result of it | 0) of scheduled tasks + unique values of (concatenations of (it as string)) of (name of it, (if (enabled of it) then ("Enabled") else "Disabled")) of scheduled tasks + unique values of (concatenations of (it as string)) of (name of it, idle duration of idle settings of settings of definition of it as string) of scheduled tasks whose (exists idle duration of idle settings of settings of definition of it as string) + unique values of (concatenations of (it as string)) of (name of it, account name of owner of security descriptor of it) of scheduled tasks + unique values of (concatenations of (it as string)) of (name of it, user id of principal of definition of it) of scheduled tasks whose (password logon of principal of definition of it) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Service Error (2994723).bes b/Sites/Windows Management/Fixlets/Analyses/Service Error (2994723).bes index 3ea897309..c90c05424 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Service Error (2994723).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Service Error (2994723).bes @@ -1,24 +1,24 @@ - - - - - Service Error - - name of operating system as lowercase starts with "win" - - x-fixlet-modification-time - Tue, 29 Jul 2014 18:00:30 +0000 - - BESC - display names of services whose (start type of it = "auto" and state of it != "Running") - - + + + + + Service Error + + name of operating system as lowercase starts with "win" + + x-fixlet-modification-time + Tue, 29 Jul 2014 18:00:30 +0000 + + BESC + display names of services whose (start type of it = "auto" and state of it != "Running") + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Service Monitor - Windows (2998502).bes b/Sites/Windows Management/Fixlets/Analyses/Service Monitor - Windows (2998502).bes index 4f571983a..b07e74692 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Service Monitor - Windows (2998502).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Service Monitor - Windows (2998502).bes @@ -1,33 +1,33 @@ - - - - - Service Monitor - Windows - Fixlet: "Invoke - Service Monitor - Windows". Specifically it will report information related to monitored services started by the BigFix Agent. -

To define a service as, "Monitored" for use by this fixlet:

-
    -
  1. Create a client setting: besservicemonitor-<name> -
  2. Populate the setting with a semicolon separated list of services to monitor: "BESProxyAgent;BESRelay;BESGather;BESPluginService;BESRootServer;BESWebReportsServer"
-

This action will then check those services to make sure they are running.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists settings whose (name of it starts with "besservicemonitor-") of client - BESC - unique values of ((it as trimmed string) of substrings separated by ";" of concatenations ";" whose (it != "") of values of settings whose (name of it starts with "besservicemonitor-" and name of it does not start with "besservicemonitor-settings-") of client) - (name of it, value "count" of it) of keys of keys "Service Monitoring" of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory" of (x32 registries;x64 registries) - (name of it, value "Last" of it) of keys of keys "Service Monitoring" of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory" of (x32 registries;x64 registries) - if (uptime of operating system > (value of settings "besservicemonitor-audit-delay" of client as integer | 5) * minute) then (unique values of ((display name of it & " (" & service name of it & ")") as string) of services ((it as trimmed string) of elements of (set of (substrings separated by ";" of concatenations ";" whose (it != "") of values of settings whose (name of it starts with "besservicemonitor-" and name of it does not start with "besservicemonitor-settings-") of client) - set of (substrings separated by ";" of concatenations ";" whose (it != "") of values of settings "besservicemonitor-settings-blacklist" of client))) whose (state of it != "Running" and start type of it != "disabled")) else (nothing) - value of settings "besservicemonitor-settings-audit-delay" of client as integer | 5 - value of settings "besservicemonitor-settings-remediation-delay" of client as integer | 5 - substrings separated by ";" of values of settings "besservicemonitor-settings-blacklist" of client -
-
+ + + + + Service Monitor - Windows + Fixlet: "Invoke - Service Monitor - Windows". Specifically it will report information related to monitored services started by the BigFix Agent. +

To define a service as, "Monitored" for use by this fixlet:

+
    +
  1. Create a client setting: besservicemonitor-<name> +
  2. Populate the setting with a semicolon separated list of services to monitor: "BESProxyAgent;BESRelay;BESGather;BESPluginService;BESRootServer;BESWebReportsServer"
+

This action will then check those services to make sure they are running.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists settings whose (name of it starts with "besservicemonitor-") of client + BESC + unique values of ((it as trimmed string) of substrings separated by ";" of concatenations ";" whose (it != "") of values of settings whose (name of it starts with "besservicemonitor-" and name of it does not start with "besservicemonitor-settings-") of client) + (name of it, value "count" of it) of keys of keys "Service Monitoring" of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory" of (x32 registries;x64 registries) + (name of it, value "Last" of it) of keys of keys "Service Monitoring" of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory" of (x32 registries;x64 registries) + if (uptime of operating system > (value of settings "besservicemonitor-audit-delay" of client as integer | 5) * minute) then (unique values of ((display name of it & " (" & service name of it & ")") as string) of services ((it as trimmed string) of elements of (set of (substrings separated by ";" of concatenations ";" whose (it != "") of values of settings whose (name of it starts with "besservicemonitor-" and name of it does not start with "besservicemonitor-settings-") of client) - set of (substrings separated by ";" of concatenations ";" whose (it != "") of values of settings "besservicemonitor-settings-blacklist" of client))) whose (state of it != "Running" and start type of it != "disabled")) else (nothing) + value of settings "besservicemonitor-settings-audit-delay" of client as integer | 5 + value of settings "besservicemonitor-settings-remediation-delay" of client as integer | 5 + substrings separated by ";" of values of settings "besservicemonitor-settings-blacklist" of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Services - Windows (2998543).bes b/Sites/Windows Management/Fixlets/Analyses/Services - Windows (2998543).bes index a33fd01bf..49c6e83b8 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Services - Windows (2998543).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Services - Windows (2998543).bes @@ -1,27 +1,27 @@ - - - - - Services - Windows - Provides information relating to the Windows services on the system.

-

Services - Log On As - Windows - Provides the account that the service operates under. For the majority of services this will be a NT Authority\System

-

Services - Log On As Domain Account - Windows - Provides the services on the system that are running as a domain account

-

Services - Log On As Local Account - Windows - Provides the services on the system that are running as a local account on the system

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BES - (display name of it & " (" & service name of it & ")", login account of it | "N\A") of services whose (exists display name of it AND (length of (display name of it as string)) > 0 AND (number of substrings " " of (display name of it as string) < (length of (display name of it as string))) AND exists service name of it AND (length of (service name of it as string)) > 0 AND (number of substrings " " of (service name of it as string) < (length of (service name of it as string))) AND exists state of it) - (display name of it & " (" & service name of it & ")", login account of it) of it whose (login account of it contains "@") of (services whose (exists display name of it AND (length of (display name of it as string)) > 0 AND (number of substrings " " of (display name of it as string) < (length of (display name of it as string))) AND exists service name of it AND (length of (service name of it as string)) > 0 AND (number of substrings " " of (service name of it as string) < (length of (service name of it as string))) AND exists state of it)) - (display name of it & " (" & service name of it & ")", login account of it) of it whose (login account of it contains ".\") of (services whose (exists display name of it AND (length of (display name of it as string)) > 0 AND (number of substrings " " of (display name of it as string) < (length of (display name of it as string))) AND exists service name of it AND (length of (service name of it as string)) > 0 AND (number of substrings " " of (service name of it as string) < (length of (service name of it as string))) AND exists state of it)) - unique values of (concatenations of (it as string)) of (display name of it & ((" (" & service name of it & ")") | ""), state of it | "N\A") of services -
-
+ + + + + Services - Windows + Provides information relating to the Windows services on the system.

+

Services - Log On As - Windows - Provides the account that the service operates under. For the majority of services this will be a NT Authority\System

+

Services - Log On As Domain Account - Windows - Provides the services on the system that are running as a domain account

+

Services - Log On As Local Account - Windows - Provides the services on the system that are running as a local account on the system

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BES + (display name of it & " (" & service name of it & ")", login account of it | "N\A") of services whose (exists display name of it AND (length of (display name of it as string)) > 0 AND (number of substrings " " of (display name of it as string) < (length of (display name of it as string))) AND exists service name of it AND (length of (service name of it as string)) > 0 AND (number of substrings " " of (service name of it as string) < (length of (service name of it as string))) AND exists state of it) + (display name of it & " (" & service name of it & ")", login account of it) of it whose (login account of it contains "@") of (services whose (exists display name of it AND (length of (display name of it as string)) > 0 AND (number of substrings " " of (display name of it as string) < (length of (display name of it as string))) AND exists service name of it AND (length of (service name of it as string)) > 0 AND (number of substrings " " of (service name of it as string) < (length of (service name of it as string))) AND exists state of it)) + (display name of it & " (" & service name of it & ")", login account of it) of it whose (login account of it contains ".\") of (services whose (exists display name of it AND (length of (display name of it as string)) > 0 AND (number of substrings " " of (display name of it as string) < (length of (display name of it as string))) AND exists service name of it AND (length of (service name of it as string)) > 0 AND (number of substrings " " of (service name of it as string) < (length of (service name of it as string))) AND exists state of it)) + unique values of (concatenations of (it as string)) of (display name of it & ((" (" & service name of it & ")") | ""), state of it | "N\A") of services +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Services info (2994720).bes b/Sites/Windows Management/Fixlets/Analyses/Services info (2994720).bes index 32ce2b1da..d48bc4c2c 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Services info (2994720).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Services info (2994720).bes @@ -1,29 +1,29 @@ - - - - - Services info - - windows of operating system - exists wmi - - x-fixlet-modification-time - Thu, 05 Sep 2013 19:57:06 +0000 - - BESC - (string value of property "name" of it | "n/a") of select objects "name from win32_service" of wmi - (string value of property "pathname" of it | "n/a") of select objects "pathname from win32_service" of wmi - (string value of property "description" of it | "n/a") of select objects "description from win32_service" of wmi - (string value of property "state" of it | "n/a") of select objects "state from win32_service" of wmi - (string value of property "startmode" of it | "n/a") of select objects "startmode from win32_service" of wmi - - + + + + + Services info + + windows of operating system + exists wmi + + x-fixlet-modification-time + Thu, 05 Sep 2013 19:57:06 +0000 + + BESC + (string value of property "name" of it | "n/a") of select objects "name from win32_service" of wmi + (string value of property "pathname" of it | "n/a") of select objects "pathname from win32_service" of wmi + (string value of property "description" of it | "n/a") of select objects "description from win32_service" of wmi + (string value of property "state" of it | "n/a") of select objects "state from win32_service" of wmi + (string value of property "startmode" of it | "n/a") of select objects "startmode from win32_service" of wmi + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Shares - Windows (2998467).bes b/Sites/Windows Management/Fixlets/Analyses/Shares - Windows (2998467).bes index 3cca7d0d4..d9ee46e16 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Shares - Windows (2998467).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Shares - Windows (2998467).bes @@ -1,30 +1,30 @@ - - - - - Shares - Windows - Provides information regarding the configured network shares on the system.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BESC - (name of it, path of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) - (name of it, (account name of it | component string of it) of trustees of entries whose (read permission of it) of dacls of security descriptors of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) - (name of it, (account name of it | component string of it) of trustees of entries whose (write permission of it) of dacls of security descriptors of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) - (name of it, (account name of it | component string of it) of trustees of entries whose (write owner permission of it) of dacls of security descriptors of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) - (name of it, use count of it) of network shares - (name of it, use limit of it as string | "N\A") of network shares - (name of it, comment of it) of network shares - (name of it) of network shares whose (type of it = 1 /*Printer*/) - (name of it) of network shares whose (type of it = 2147483648 /*Admin*/ or name of it = "print$") - (name of it) of network shares whose (type of it = 2147483651 /*IPC*/) -
-
+ + + + + Shares - Windows + Provides information regarding the configured network shares on the system.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + (name of it, path of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) + (name of it, (account name of it | component string of it) of trustees of entries whose (read permission of it) of dacls of security descriptors of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) + (name of it, (account name of it | component string of it) of trustees of entries whose (write permission of it) of dacls of security descriptors of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) + (name of it, (account name of it | component string of it) of trustees of entries whose (write owner permission of it) of dacls of security descriptors of it) of network shares whose (name of it != "print$" and type of it != 2147483648 and type of it != 1 and type of it != 2147483651) + (name of it, use count of it) of network shares + (name of it, use limit of it as string | "N\A") of network shares + (name of it, comment of it) of network shares + (name of it) of network shares whose (type of it = 1 /*Printer*/) + (name of it) of network shares whose (type of it = 2147483648 /*Admin*/ or name of it = "print$") + (name of it) of network shares whose (type of it = 2147483651 /*IPC*/) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Signs of possible Logon or GPO issues - Windows (2994789).bes b/Sites/Windows Management/Fixlets/Analyses/Signs of possible Logon or GPO issues - Windows (2994789).bes index 7b7b4ebf9..490d23afb 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Signs of possible Logon or GPO issues - Windows (2994789).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Signs of possible Logon or GPO issues - Windows (2994789).bes @@ -1,39 +1,39 @@ - - - - - Signs of possible Logon or GPO issues - Windows - - windows of operating system - = "6.1"]]> - "Physical" = (if (mac of operating system) then /* the Mac BES client does not currently support the smbios inspector. This needs refinement, but for now just assuming apple devices are physical since virtualiztion of OS X is relatively rare */ "Physical" else (if ((it contains "VMware" or (it contains "Microsoft" AND /* This check is needed to exclude Microsoft Surface devices */ ((value "product_name" of structure "system_information" of smbios) as string contains "Virtual Machine")) or it contains "Xen" or /* This check is needed to properly identify Parallels VMs as virtual instead of physical */ it contains "Parallels Software") of (value "manufacturer" of structure "system_information" of smbios as string)) then "Virtual" else "Physical")) - "workgroup" != (it as string as lowercase) of (if (exists wmi) then (string value of selects "Domain from Win32_ComputerSystem" of wmi) else ("workgroup")) - - x-fixlet-modification-time - Wed, 06 May 2015 17:42:41 +0000 - - BESC - maximum of times generated of records whose(event id of it = 7001) of system event log - (maximum of times generated of records whose(event id of it = 1073743528 AND source of it = "SceCli") of application event log) - (maximum of times generated of records whose(event id of it = 7001) of system event log) - (minimum of times generated of records whose(event id of it = 1073743528 AND time generated of it > (maximum of times generated of records whose(event id of it = 7001) of system event log)) of application event log)-(maximum of times generated of records whose(event id of it = 7001) of system event log) - (minimum of times generated of records whose(event id of it = 1073743528 AND time generated of it > (maximum of times generated of records whose(event id of it = 7001) of system event log)) of application event log) - number of records whose(event id of it = 129 AND source of it = "Microsoft-Windows-Time-Service") of system event log - number of records whose(event id of it = 1014 AND source of it = "Microsoft-Windows-DNS-Client") of system event log - number of records whose(event id of it = 1129 AND source of it = "Microsoft-Windows-GroupPolicy") of system event log - number of records whose(event id of it = 5719 AND source of it = "NETLOGON") of system event log - number of records whose(event id of it = 1073743528 AND source of it = "SceCli") of application event log - (minimum of times generated of records whose(event id of it = 129 AND source of it = "Microsoft-Windows-Time-Service" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) - (minimum of times generated of records whose(event id of it = 1014 AND source of it = "Microsoft-Windows-DNS-Client" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) - (minimum of times generated of records whose(event id of it = 1129 AND source of it = "Microsoft-Windows-GroupPolicy" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) - (minimum of times generated of records whose(event id of it = 5719 AND source of it = "NETLOGON" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) - - + + + + + Signs of possible Logon or GPO issues - Windows + + windows of operating system + = "6.1"]]> + "Physical" = (if (mac of operating system) then /* the Mac BES client does not currently support the smbios inspector. This needs refinement, but for now just assuming apple devices are physical since virtualiztion of OS X is relatively rare */ "Physical" else (if ((it contains "VMware" or (it contains "Microsoft" AND /* This check is needed to exclude Microsoft Surface devices */ ((value "product_name" of structure "system_information" of smbios) as string contains "Virtual Machine")) or it contains "Xen" or /* This check is needed to properly identify Parallels VMs as virtual instead of physical */ it contains "Parallels Software") of (value "manufacturer" of structure "system_information" of smbios as string)) then "Virtual" else "Physical")) + "workgroup" != (it as string as lowercase) of (if (exists wmi) then (string value of selects "Domain from Win32_ComputerSystem" of wmi) else ("workgroup")) + + x-fixlet-modification-time + Wed, 06 May 2015 17:42:41 +0000 + + BESC + maximum of times generated of records whose(event id of it = 7001) of system event log + (maximum of times generated of records whose(event id of it = 1073743528 AND source of it = "SceCli") of application event log) - (maximum of times generated of records whose(event id of it = 7001) of system event log) + (minimum of times generated of records whose(event id of it = 1073743528 AND time generated of it > (maximum of times generated of records whose(event id of it = 7001) of system event log)) of application event log)-(maximum of times generated of records whose(event id of it = 7001) of system event log) + (minimum of times generated of records whose(event id of it = 1073743528 AND time generated of it > (maximum of times generated of records whose(event id of it = 7001) of system event log)) of application event log) + number of records whose(event id of it = 129 AND source of it = "Microsoft-Windows-Time-Service") of system event log + number of records whose(event id of it = 1014 AND source of it = "Microsoft-Windows-DNS-Client") of system event log + number of records whose(event id of it = 1129 AND source of it = "Microsoft-Windows-GroupPolicy") of system event log + number of records whose(event id of it = 5719 AND source of it = "NETLOGON") of system event log + number of records whose(event id of it = 1073743528 AND source of it = "SceCli") of application event log + (minimum of times generated of records whose(event id of it = 129 AND source of it = "Microsoft-Windows-Time-Service" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) + (minimum of times generated of records whose(event id of it = 1014 AND source of it = "Microsoft-Windows-DNS-Client" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) + (minimum of times generated of records whose(event id of it = 1129 AND source of it = "Microsoft-Windows-GroupPolicy" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) + (minimum of times generated of records whose(event id of it = 5719 AND source of it = "NETLOGON" AND time generated of it > (maximum of times generated of records whose(event id of it = 1 AND source of it = "Microsoft-Windows-Power-Troubleshooter") of system event log)) of system event log) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Stability - Windows (2998544).bes b/Sites/Windows Management/Fixlets/Analyses/Stability - Windows (2998544).bes index 38a40bb7b..c5928351f 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Stability - Windows (2998544).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Stability - Windows (2998544).bes @@ -1,30 +1,30 @@ - - - - - Stability - Windows - -

This analysis provides stability information for Windows devices.

-

Kudos, compliments, and credit for the majority of this analysis to: jgstew

-

The original analysis this is based off of is available here: https://bigfix.me/analysis/details/2994781

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BESC - number of descriptions of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 41) of system event log - if (version of operating system > "6.0") then ((it, multiplicity of it) of unique values of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" - if (version of operating system > "6.0") then (sum of (multiplicity of it) of unique values whose(it = "Critical" OR it = "Kernel") of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" - tuple string items 0 of concatenations ", " of string values of selects ("SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics WHERE TimeGenerated >= " & ((year of it as string & month of it as two digits & day_of_month of it as two digits) of date (local time zone) of it) of (now - 1*day) ) of wmis - ( (sum of (it as floating point) of elements of item 1 of it) / item 0 of it) of (number of elements of it, it) of sets of string values of selects ("SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics WHERE TimeGenerated >= " & ((year of it as string & month of it as two digits & day_of_month of it as two digits) of date (local time zone) of it) of (now - 1*day) ) of wmis - number of descriptions of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 41) of system event log - time written of record (oldest record number of system event log) of system event log -
-
+ + + + + Stability - Windows + +

This analysis provides stability information for Windows devices.

+

Kudos, compliments, and credit for the majority of this analysis to: jgstew

+

The original analysis this is based off of is available here: https://bigfix.me/analysis/details/2994781

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + number of descriptions of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 41) of system event log + if (version of operating system > "6.0") then ((it, multiplicity of it) of unique values of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" + if (version of operating system > "6.0") then (sum of (multiplicity of it) of unique values whose(it = "Critical" OR it = "Kernel") of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" + tuple string items 0 of concatenations ", " of string values of selects ("SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics WHERE TimeGenerated >= " & ((year of it as string & month of it as two digits & day_of_month of it as two digits) of date (local time zone) of it) of (now - 1*day) ) of wmis + ( (sum of (it as floating point) of elements of item 1 of it) / item 0 of it) of (number of elements of it, it) of sets of string values of selects ("SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics WHERE TimeGenerated >= " & ((year of it as string & month of it as two digits & day_of_month of it as two digits) of date (local time zone) of it) of (now - 1*day) ) of wmis + number of descriptions of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 41) of system event log + time written of record (oldest record number of system event log) of system event log +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Stability Audit - Windows (2994781).bes b/Sites/Windows Management/Fixlets/Analyses/Stability Audit - Windows (2994781).bes index d7a589fc4..083f34695 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Stability Audit - Windows (2994781).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Stability Audit - Windows (2994781).bes @@ -1,39 +1,39 @@ - - - - - Stability Audit - Windows - This is an attempt to detect events and other items that might be related to system problems.

-

 

-

Latest version found here:  http://bigfix.me/analysis/details/2994619

-

 

-

Related:

-

http://bigfix.me/relevance/details/2157

-

Found the Windows Error Reporting locations here: http://www.sevenforums.com/tutorials/4567-problem-reports-solutions-clear-history.html

-

C:\Users\Default\AppData\Local\Microsoft\Windows\WER\ReportQueue

-

C:\Users\<username>\AppData\Local\Microsoft\Windows\WER\ReportQueue

-

C:\ProgramData\Microsoft\Windows\WER\ReportQueue

-

 

]]>
- windows of operating system - - x-fixlet-modification-time - Wed, 06 May 2015 14:36:41 +0000 - - BESC - if (52000 < record count of system event log) then ERROR "too many log records" else ( number of (records whose (event id of it = 41) of system event log) /* http://support.microsoft.com/kb/2028504 */ ) - if (version of operating system > "6.0") then ((it, multiplicity of it) of unique values of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" - if (version of operating system > "6.0") then (sum of (multiplicity of it) of unique values whose(it = "Critical" OR it = "Kernel") of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" - if (52000 < record count of system event log) then ERROR "too many log records" else ( number of records whose (source of it as lowercase ="bugcheck") of system event log ) - (it / number of string values of selects "SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics" of wmis) of sum of (it as floating point) of string values of selects "SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics" of wmis - (it / 10) of sums of (it as floating point) of (tuple string items (0;1;2;3;4;5;6;7;8;9) of it) of concatenations ", " of string values of selects "SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics" of wmis -
-
+ + + + + Stability Audit - Windows + This is an attempt to detect events and other items that might be related to system problems.

+

 

+

Latest version found here:  http://bigfix.me/analysis/details/2994619

+

 

+

Related:

+

http://bigfix.me/relevance/details/2157

+

Found the Windows Error Reporting locations here: http://www.sevenforums.com/tutorials/4567-problem-reports-solutions-clear-history.html

+

C:\Users\Default\AppData\Local\Microsoft\Windows\WER\ReportQueue

+

C:\Users\<username>\AppData\Local\Microsoft\Windows\WER\ReportQueue

+

C:\ProgramData\Microsoft\Windows\WER\ReportQueue

+

 

]]>
+ windows of operating system + + x-fixlet-modification-time + Wed, 06 May 2015 14:36:41 +0000 + + BESC + if (52000 < record count of system event log) then ERROR "too many log records" else ( number of (records whose (event id of it = 41) of system event log) /* http://support.microsoft.com/kb/2028504 */ ) + if (version of operating system > "6.0") then ((it, multiplicity of it) of unique values of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" + if (version of operating system > "6.0") then (sum of (multiplicity of it) of unique values whose(it = "Critical" OR it = "Kernel") of preceding texts of firsts "_" of names of folders of folders whose(name of it = "ReportArchive" OR name of it = "ReportQueue") of ((folders "AppData\Local\Microsoft\Windows\WER" of folders whose(exists folder "AppData\Local\Microsoft\Windows\WER" of it) of folder "C:\Users");(folder "C:\ProgramData\Microsoft\Windows\WER"))) else ERROR "NotApplicable" + if (52000 < record count of system event log) then ERROR "too many log records" else ( number of records whose (source of it as lowercase ="bugcheck") of system event log ) + (it / number of string values of selects "SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics" of wmis) of sum of (it as floating point) of string values of selects "SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics" of wmis + (it / 10) of sums of (it as floating point) of (tuple string items (0;1;2;3;4;5;6;7;8;9) of it) of concatenations ", " of string values of selects "SystemStabilityIndex FROM Win32_ReliabilityStabilityMetrics" of wmis +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/System File Checker results (2994541).bes b/Sites/Windows Management/Fixlets/Analyses/System File Checker results (2994541).bes index 4a107bd83..f6f667dd8 100644 --- a/Sites/Windows Management/Fixlets/Analyses/System File Checker results (2994541).bes +++ b/Sites/Windows Management/Fixlets/Analyses/System File Checker results (2994541).bes @@ -1,30 +1,30 @@ - - - - - System File Checker results - Results from running sfc /scannow

-

Can run sfc using this task: http://bigfix.me/cdb/fixlet/1369

]]>
- windows of operating system - = "5.1"]]> - - - - x-fixlet-modification-time - Wed, 26 Jun 2013 22:46:41 +0000 - - BESC - number of lines whose (it contains "[SR] Cannot repair member file") of file ((pathname of windows folder) & "\logs\cbs\cbs.log") - number of lines whose (it contains "[SR] ") of file ((pathname of windows folder) & "\logs\cbs\cbs.log") - (if exists ( position 1000 of it ) then ( preceding text of position 1000 of it ) else it) of concatenation "; " of lines whose (it contains "[SR] ") of file ((pathname of windows folder) & "\logs\cbs\cbs.log") -
-
+ + + + + System File Checker results + Results from running sfc /scannow

+

Can run sfc using this task: http://bigfix.me/cdb/fixlet/1369

]]>
+ windows of operating system + = "5.1"]]> + + + + x-fixlet-modification-time + Wed, 26 Jun 2013 22:46:41 +0000 + + BESC + number of lines whose (it contains "[SR] Cannot repair member file") of file ((pathname of windows folder) & "\logs\cbs\cbs.log") + number of lines whose (it contains "[SR] ") of file ((pathname of windows folder) & "\logs\cbs\cbs.log") + (if exists ( position 1000 of it ) then ( preceding text of position 1000 of it ) else it) of concatenation "; " of lines whose (it contains "[SR] ") of file ((pathname of windows folder) & "\logs\cbs\cbs.log") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/System Security Analysis - Windows (2998604).bes b/Sites/Windows Management/Fixlets/Analyses/System Security Analysis - Windows (2998604).bes index 0d046dced..f7caf2cc3 100644 --- a/Sites/Windows Management/Fixlets/Analyses/System Security Analysis - Windows (2998604).bes +++ b/Sites/Windows Management/Fixlets/Analyses/System Security Analysis - Windows (2998604).bes @@ -1,62 +1,62 @@ - - - - - System Security Analysis - Windows - An Aggregation of other queries and relevance's and some original that provides an all in one quick overview of the system. - windows of operating system - - x-fixlet-modification-time - Thu, 27 Feb 2020 16:50:06 +0000 - - BESC - If exists running service "MpsSvc" then "Running" Else "Warning" - if (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPSec\Policy\Local" whose (exists values whose(name of it = "ActivePolicy" ) of it) of registry) then "Yes" else "No" - if (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPSec\GPTIPSECPolicy" whose (exists values whose(name of it = "DSIPSECPolicyFlags" ) of it) of registry) then "Yes" else "No" - if rule group currently enabled "File and Printer sharing" of firewall then "Enabled" else "Disabled" - if( exists services whose((service name of it as lowercase = "TermService" as lowercase ) AND (state of it= "Running") )) AND (exists keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" whose (exists values whose(name of it = "fDenyTSConnections" AND it as string as lowercase = "1" as lowercase ) of it) of registry) then "Yes but denying connections" else if( exists services whose((service name of it as lowercase = "TermService" as lowercase ) AND (state of it= "Running")) ) AND (exists keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" whose (exists values whose(name of it = "fDenyTSConnections" AND it as string as lowercase = "0" as lowercase ) of it) of registry) then "Yes and allowing connections" else "No" - Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry - if (exists keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" Whose (exists values whose (name of it = "UserAuthentication" AND it as string as lowercase ="1" as lowercase) of it) of registry) then "Yes" else "No" - if exists (sockets of network) whose ((local port of it = Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry) and (tcp state of it as string = "ESTABLISHED")) Then "Active" else "Not in use" - (preceding text of first "%0d%0a" of following text of first "User: " of description of it | "Unknown", time generated of it, (if (it = 21) then ("New Session") else ("Resumed Session")) of (event id of it), following text of last ": " of description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2000;item 1 of it))) of (record count of it, oldest record number of it)) whose (exists description of it and (event id of it = 21 or event id of it = 25) and description of it does not contain "LOCAL") of event log "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" - if exists running service "TelnetClient" then "Yes" else "No" - if exists running service "TelnetServer" then "Yes" else "No" - If( exists services whose((service name of it as lowercase = "msftpsvc" as lowercase ) AND (state of it= "Running") OR (service name of it as lowercase = "ftpsvc" as lowercase ) AND (state of it= "Running")) ) then "Yes" else "No" - if (exists running service whose (service name of it = "MsMpSvc")) then "MS.System Endpoint Protection" else if (exists running service whose (service name of it = "WinDefend")) then "Windows Defender" else if (exists running service whose (service name of it = "SepMasterService")) then "Symantec" else if (exists running service whose (service name of it = "Symantec AntiVirus")) then "Symantec" else if (exist running service whose (service name of it = "avast! Antivirus")) then "Avast" else if (exists running service whose (service name of it = "CmdAgent"))then "Comodo" else if (exists running service whose (service name of it contains "klnagent"))then "Kaspersky" else if (exists running service whose (service name of it starts with "Avg" as lowercase))then "AVG" else if (exists running service whose (service name of it starts with "ekrn"))then "Eset" else if (exists running service whose (service name of it starts with "Avira" as lowercase))then "Avira" else if (exists running service whose (service name of it starts with "norton antivirus client" as lowercase))then "Norton" else if (exists running service whose (service name of it starts with "mcshield" as lowercase))then "McAfee" else if (exists running service whose (service name of it starts with "InoRT" as lowercase))then "Trend" else if (exists running service whose (service name of it contains "MBAMService" as lowercase))then "MalwareBytes but may not be realtime " else "Investigate" - if exists services whose((state of it= "Running") AND ((service name of it as lowercase = "MSSQL" as lowercase ) OR (service name of it as lowercase starts with "SQLBrowser" as lowercase ) OR (service name of it as lowercase starts with "SQLAgent" as lowercase )) ) = True Then "Yes" else "No" - if exists running service "W3SVC" then "Yes" else "No" - if (exists running application whose (name of it as lowercase = "tomcat7.exe" as lowercase OR name of it as lowercase = "tomcat6.exe" as lowercase ) )or ( exists services whose((service name of it as lowercase starts with "Apache" as lowercase ) AND (state of it= "Running")) ) Then "Yes" Else "No" - preceding texts of last " " of preceding texts of last " " of (it as string) of (maximum of last write times of keys whose (name of it contains ".KB" or name of it contains "KB" or name of it starts with "KB") of keys( "HKEYLOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\";"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\";"HKEY_LOCAL_MACHINE \Software\Microsoft\WindowsNT\CurrentVersion\Hotfix") of (registry; native registry)) - (concatenations ", " whose(it != "") of names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" of registry) - (concatenations ", " whose(it != "") of names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" of x64 registry) - number of members of local group "administrators" - members of local group "Administrators" - (name of it & (if (account disabled flag of it = TRUE) then " - Disabled" else " - Enabled") & (if (password expiration disabled flag of it = TRUE) then " No Password expiration" else "")) of local users - (name of it & " - " & password age of it as string) of local users - if (exists key "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" whose (value "ProxyEnable" of it as integer = 1) of current user keys (logged on users) of registry) then "Manual Proxy Enabled" else "Automatically Detect" - if (exists key "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" whose (exists value "ProxyServer" of it) of current user keys (logged on users) of registry) then (values "ProxyServer" of key "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" of current user keys (logged on users) of registry as string) else ("not configured") - addresses of dns servers of network - if version of client >="9.0" then ssids of wifis of adapters of network else "N/A" - if version of client >="9.0" then encryptions of wifis of adapters of network else "N/A" - exists ip interface whose (point to point of it = true) of networks - if exists (rules of firewall) whose (name of it as string starts with "Remote Desktop" or name of it contains "RDP") then (remote addresses strings of (rules of firewall) whose (name of it as string starts with "Remote Desktop" or name of it contains "RDP")) else "No rule named RDP or Remote Desktop" - unique values of (remote addresses of (sockets of network) whose ((local port of it = Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry) and (tcp state of it as string= "ESTABLISHED"))) - if exists (sockets of network) whose ((local port of it = 22) and (tcp state of it as string = "ESTABLISHED")) Then "Active" else "Not in use" - unique values of (remote addresses of (sockets of network) whose ((local port of it = 22) and (tcp state of it as string= "ESTABLISHED"))) - if (exists services whose ((service name of it = "winlogbeat") and (state of it = "Running"))) Then "Yes and Running" else if (exists services whose ((service name of it = "winlogbeat") and (state of it != "Running"))) then "Yes but not running" else "Not Installed" - names of processes of sockets whose ( established of tcp state of it and local port of it = Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry) of network - If Exists value "AutoConfigURL" of keys of key "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\iphlpsvc\Parameters\ProxyMgr" of registry then value "AutoConfigURL" of keys of key "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\iphlpsvc\Parameters\ProxyMgr" of registry as string Else "Not used for any profiles" - if (name of operating system as lowercase contains "win") then (if ((name of operating system as lowercase contains "xp") or (name of operating system as lowercase contains "win2003")) then (if not exist keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName" of (if x64 of operating system then (x64 registry;x32 registry) else registry) then values "DefaultUserName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\" of (if x64 of operating system then (x64 registry;x32 registry) else registry) as string else "No User Logged") else (if NOT exist keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\LastLoggedOnUser" of (if x64 of operating system then (x64 registry;x32 registry) else registry) then values "LastLoggedOnUser" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\" of (if x64 of operating system then (x64 registry;x32 registry) else registry) as string else "No User Logged")) else ("Not Win") - members of local group "Remote Desktop Users" - number of relevant fixlets whose(exists values whose("Important" = it OR "Critical" = it) of headers "X-Fixlet-Source-Severity" of it AND not exists values whose(it contains " (Superseded)") of headers "Subject" of it AND exists (current date - it) whose(it > 30 * day) of (it as date) of values whose(exists it as date) of headers "X-Fixlet-Source-Release-Date" of it) of sites whose("Fixlet Site" = type of it AND exists names whose(it starts with "Updates for " OR it starts with "Patches for" OR it = "Enterprise Security") of it) - - + + + + + System Security Analysis - Windows + An Aggregation of other queries and relevance's and some original that provides an all in one quick overview of the system. + windows of operating system + + x-fixlet-modification-time + Thu, 27 Feb 2020 16:50:06 +0000 + + BESC + If exists running service "MpsSvc" then "Running" Else "Warning" + if (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPSec\Policy\Local" whose (exists values whose(name of it = "ActivePolicy" ) of it) of registry) then "Yes" else "No" + if (exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPSec\GPTIPSECPolicy" whose (exists values whose(name of it = "DSIPSECPolicyFlags" ) of it) of registry) then "Yes" else "No" + if rule group currently enabled "File and Printer sharing" of firewall then "Enabled" else "Disabled" + if( exists services whose((service name of it as lowercase = "TermService" as lowercase ) AND (state of it= "Running") )) AND (exists keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" whose (exists values whose(name of it = "fDenyTSConnections" AND it as string as lowercase = "1" as lowercase ) of it) of registry) then "Yes but denying connections" else if( exists services whose((service name of it as lowercase = "TermService" as lowercase ) AND (state of it= "Running")) ) AND (exists keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" whose (exists values whose(name of it = "fDenyTSConnections" AND it as string as lowercase = "0" as lowercase ) of it) of registry) then "Yes and allowing connections" else "No" + Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry + if (exists keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" Whose (exists values whose (name of it = "UserAuthentication" AND it as string as lowercase ="1" as lowercase) of it) of registry) then "Yes" else "No" + if exists (sockets of network) whose ((local port of it = Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry) and (tcp state of it as string = "ESTABLISHED")) Then "Active" else "Not in use" + (preceding text of first "%0d%0a" of following text of first "User: " of description of it | "Unknown", time generated of it, (if (it = 21) then ("New Session") else ("Resumed Session")) of (event id of it), following text of last ": " of description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 2000;item 1 of it))) of (record count of it, oldest record number of it)) whose (exists description of it and (event id of it = 21 or event id of it = 25) and description of it does not contain "LOCAL") of event log "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" + if exists running service "TelnetClient" then "Yes" else "No" + if exists running service "TelnetServer" then "Yes" else "No" + If( exists services whose((service name of it as lowercase = "msftpsvc" as lowercase ) AND (state of it= "Running") OR (service name of it as lowercase = "ftpsvc" as lowercase ) AND (state of it= "Running")) ) then "Yes" else "No" + if (exists running service whose (service name of it = "MsMpSvc")) then "MS.System Endpoint Protection" else if (exists running service whose (service name of it = "WinDefend")) then "Windows Defender" else if (exists running service whose (service name of it = "SepMasterService")) then "Symantec" else if (exists running service whose (service name of it = "Symantec AntiVirus")) then "Symantec" else if (exist running service whose (service name of it = "avast! Antivirus")) then "Avast" else if (exists running service whose (service name of it = "CmdAgent"))then "Comodo" else if (exists running service whose (service name of it contains "klnagent"))then "Kaspersky" else if (exists running service whose (service name of it starts with "Avg" as lowercase))then "AVG" else if (exists running service whose (service name of it starts with "ekrn"))then "Eset" else if (exists running service whose (service name of it starts with "Avira" as lowercase))then "Avira" else if (exists running service whose (service name of it starts with "norton antivirus client" as lowercase))then "Norton" else if (exists running service whose (service name of it starts with "mcshield" as lowercase))then "McAfee" else if (exists running service whose (service name of it starts with "InoRT" as lowercase))then "Trend" else if (exists running service whose (service name of it contains "MBAMService" as lowercase))then "MalwareBytes but may not be realtime " else "Investigate" + if exists services whose((state of it= "Running") AND ((service name of it as lowercase = "MSSQL" as lowercase ) OR (service name of it as lowercase starts with "SQLBrowser" as lowercase ) OR (service name of it as lowercase starts with "SQLAgent" as lowercase )) ) = True Then "Yes" else "No" + if exists running service "W3SVC" then "Yes" else "No" + if (exists running application whose (name of it as lowercase = "tomcat7.exe" as lowercase OR name of it as lowercase = "tomcat6.exe" as lowercase ) )or ( exists services whose((service name of it as lowercase starts with "Apache" as lowercase ) AND (state of it= "Running")) ) Then "Yes" Else "No" + preceding texts of last " " of preceding texts of last " " of (it as string) of (maximum of last write times of keys whose (name of it contains ".KB" or name of it contains "KB" or name of it starts with "KB") of keys( "HKEYLOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\";"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\";"HKEY_LOCAL_MACHINE \Software\Microsoft\WindowsNT\CurrentVersion\Hotfix") of (registry; native registry)) + (concatenations ", " whose(it != "") of names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" of registry) + (concatenations ", " whose(it != "") of names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" of x64 registry) + number of members of local group "administrators" + members of local group "Administrators" + (name of it & (if (account disabled flag of it = TRUE) then " - Disabled" else " - Enabled") & (if (password expiration disabled flag of it = TRUE) then " No Password expiration" else "")) of local users + (name of it & " - " & password age of it as string) of local users + if (exists key "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" whose (value "ProxyEnable" of it as integer = 1) of current user keys (logged on users) of registry) then "Manual Proxy Enabled" else "Automatically Detect" + if (exists key "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" whose (exists value "ProxyServer" of it) of current user keys (logged on users) of registry) then (values "ProxyServer" of key "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" of current user keys (logged on users) of registry as string) else ("not configured") + addresses of dns servers of network + if version of client >="9.0" then ssids of wifis of adapters of network else "N/A" + if version of client >="9.0" then encryptions of wifis of adapters of network else "N/A" + exists ip interface whose (point to point of it = true) of networks + if exists (rules of firewall) whose (name of it as string starts with "Remote Desktop" or name of it contains "RDP") then (remote addresses strings of (rules of firewall) whose (name of it as string starts with "Remote Desktop" or name of it contains "RDP")) else "No rule named RDP or Remote Desktop" + unique values of (remote addresses of (sockets of network) whose ((local port of it = Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry) and (tcp state of it as string= "ESTABLISHED"))) + if exists (sockets of network) whose ((local port of it = 22) and (tcp state of it as string = "ESTABLISHED")) Then "Active" else "Not in use" + unique values of (remote addresses of (sockets of network) whose ((local port of it = 22) and (tcp state of it as string= "ESTABLISHED"))) + if (exists services whose ((service name of it = "winlogbeat") and (state of it = "Running"))) Then "Yes and Running" else if (exists services whose ((service name of it = "winlogbeat") and (state of it != "Running"))) then "Yes but not running" else "Not Installed" + names of processes of sockets whose ( established of tcp state of it and local port of it = Value "PortNumber" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" of registry) of network + If Exists value "AutoConfigURL" of keys of key "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\iphlpsvc\Parameters\ProxyMgr" of registry then value "AutoConfigURL" of keys of key "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\iphlpsvc\Parameters\ProxyMgr" of registry as string Else "Not used for any profiles" + if (name of operating system as lowercase contains "win") then (if ((name of operating system as lowercase contains "xp") or (name of operating system as lowercase contains "win2003")) then (if not exist keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName" of (if x64 of operating system then (x64 registry;x32 registry) else registry) then values "DefaultUserName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\" of (if x64 of operating system then (x64 registry;x32 registry) else registry) as string else "No User Logged") else (if NOT exist keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\LastLoggedOnUser" of (if x64 of operating system then (x64 registry;x32 registry) else registry) then values "LastLoggedOnUser" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\" of (if x64 of operating system then (x64 registry;x32 registry) else registry) as string else "No User Logged")) else ("Not Win") + members of local group "Remote Desktop Users" + number of relevant fixlets whose(exists values whose("Important" = it OR "Critical" = it) of headers "X-Fixlet-Source-Severity" of it AND not exists values whose(it contains " (Superseded)") of headers "Subject" of it AND exists (current date - it) whose(it > 30 * day) of (it as date) of values whose(exists it as date) of headers "X-Fixlet-Source-Release-Date" of it) of sites whose("Fixlet Site" = type of it AND exists names whose(it starts with "Updates for " OR it starts with "Patches for" OR it = "Enterprise Security") of it) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/TPM - Ownership Authorization - Windows (2998307).bes b/Sites/Windows Management/Fixlets/Analyses/TPM - Ownership Authorization - Windows (2998307).bes index 6ca73bc10..621a6dbc0 100644 --- a/Sites/Windows Management/Fixlets/Analyses/TPM - Ownership Authorization - Windows (2998307).bes +++ b/Sites/Windows Management/Fixlets/Analyses/TPM - Ownership Authorization - Windows (2998307).bes @@ -1,21 +1,21 @@ - - - - - TPM - Ownership Authorization - Windows - Grabs the ownership authorization password set when provisioning the TPM on the device. - windows of operating system - exists (file whose (name of it contains "TPMOwnerAuthorization") of folder "BitLocker" of folder "__Global" of data folder of client) - BESC - (preceding text of first "-" of name of it & ":", following text of first "%ff%fe" of concatenations "" of substrings separated by "%00" of lines of it) of files whose (Name of it contains "TPMOwnerAuthorization.txt") of folder "BitLocker" of folder "__Global" of data folder of client - - + + + + + TPM - Ownership Authorization - Windows + Grabs the ownership authorization password set when provisioning the TPM on the device. + windows of operating system + exists (file whose (name of it contains "TPMOwnerAuthorization") of folder "BitLocker" of folder "__Global" of data folder of client) + BESC + (preceding text of first "-" of name of it & ":", following text of first "%ff%fe" of concatenations "" of substrings separated by "%00" of lines of it) of files whose (Name of it contains "TPMOwnerAuthorization.txt") of folder "BitLocker" of folder "__Global" of data folder of client + + diff --git a/Sites/Windows Management/Fixlets/Analyses/TPM - Windows (2998504).bes b/Sites/Windows Management/Fixlets/Analyses/TPM - Windows (2998504).bes index 7afb79c8e..ca53e7723 100644 --- a/Sites/Windows Management/Fixlets/Analyses/TPM - Windows (2998504).bes +++ b/Sites/Windows Management/Fixlets/Analyses/TPM - Windows (2998504).bes @@ -1,25 +1,25 @@ - - - - - TPM - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BESC - if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsEnabled_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Enabled" ELSE "Disabled") else ERROR "TPM not visible to OS" - if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Activated" ELSE "Not Activated") else ERROR "TPM not visible to OS" - if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Owned" ELSE "Not Owned") else ERROR "TPM not visible to OS" - exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" - tuple string item 0 of string value of selects "SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" -
-
+ + + + + TPM - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsEnabled_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Enabled" ELSE "Disabled") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Activated" ELSE "Not Activated") else ERROR "TPM not visible to OS" + if (exists wmi "root\CIMV2\Security\MicrosoftTpm" and exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm") then (if (boolean value of select "IsActivated_InitialValue from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" = true) then "Owned" ELSE "Not Owned") else ERROR "TPM not visible to OS" + exists selects "* from Win32_Tpm" of wmi "root\CIMV2\Security\MicrosoftTpm" + tuple string item 0 of string value of selects "SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/TSM Backup Audit - Windows.bes b/Sites/Windows Management/Fixlets/Analyses/TSM Backup Audit - Windows.bes index 67a3b6ea1..d7640b070 100644 --- a/Sites/Windows Management/Fixlets/Analyses/TSM Backup Audit - Windows.bes +++ b/Sites/Windows Management/Fixlets/Analyses/TSM Backup Audit - Windows.bes @@ -1,55 +1,55 @@ - - - - - TSM Backup Audit - Windows - http://bigfix.me/analysis/details/2994716 for a later, more dynamic, but much more complex version of this analysis. In the newer version I dynamically locate TSM services, DSM.OPT files, and dsmsched.log files, and get more result details out of the logs. I also check for a dsmsched.log.bak file if the dsmsched.log is locked and unreadable. - -

Report on Windows TSM Statuses.

-

Taken with thanks from JGStew at bigfix.me

-

Learn more about this analysis online: http://bigfix.me/cdb/analysis/62

-

Customized slightly by Jason Walker, 2013-04-22; added TSM Client Acceptor to services list for relevance; fixed some issues with tabs and comments ("*") and trimming the results.

]]>
- windows of operating system - (exists key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\tsmstats.ini") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe") OR (exists service "TSM Scheduler Service") OR (exists service "TSM Client Acceptor") - - bigfixme-added-time - Mon, 10 Dec 2012 07:35:02 GMT - - - bigfixme-modification-time - Mon, 10 Dec 2012 07:35:02 GMT - - - bigfixme-keywords - TSM, Backup Audit, Tivoli Storage Manager - - - x-fixlet-modification-time - Fri, 26 Apr 2013 21:30:59 +0000 - - BESC - exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log" - if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") then "<dsmsched log missing>" else if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log" whose(exists lines of it)) then "<file locked by TSM>" else ((lines whose(it contains "' completed successfully." AND it contains " Scheduled event '" AND line number of it = (maximum of line numbers of lines whose(it contains "' completed successfully." AND it contains " Scheduled event '") of file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log")) of file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") as string) - if(not exists key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) then "<TSM not installed>" else if(not exists key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it AND exists value "DisplayVersion" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) then "<TSM dv reg entry missing>" else (value "DisplayVersion" of key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it AND exists value "DisplayVersion" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry as string) - if(not exists file "C:\Program Files\Tivoli\TSM\baclient\tsmstats.ini") then "<tsmstats file missing>" else (modification time of file "C:\Program Files\Tivoli\TSM\baclient\tsmstats.ini" as string) - if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log") then "<no dsmcrash log>" else (number of lines whose (it contains "IBM Tivoli Storage Manager") of file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log" as string) - if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe") then "<dsm.exe missing>" else if(not exists version of file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe") then "<dsm.exe version missing>" else (version of file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe" as string) - if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log") then "<dsmcrash log missing>" else (modification time of file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log" as string) - exists key whose (value "DisplayName" of it as string contains "Microsoft Visual C++ 2010" AND (it >= "10.0.40219" as version) of (value "DisplayVersion" of it as string as version)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of x32 registry - if (x64 of operating system AND exists x64 registry) then (exists key whose (value "DisplayName" of it as string contains "Microsoft Visual C++ 2010" AND (it >= "10.0.40219" as version) of (value "DisplayVersion" of it as string as version)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of x64 registry) as string else "<n/a - 32bit Machine>" - exists running service "TSM Scheduler Service" - if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") then "<dsmsched log missing>" else (modification time of file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log" as string) - if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no dsm opt>" else if(not exists line whose(it as uppercase contains "TCPSERVERADDRESS") of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no tcpserveraddress>" else ( following text of first "TCPSERVERADDRESS" of (it as uppercase) of line whose( ( if it does not contain "*" then it else preceding text of first "*" of it) as uppercase contains "TCPSERVERADDRESS" ) of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt" as trimmed string) - if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no dsm opt>" else if(not exists line whose( (if it does not contain "*" then it else preceding text of first "*" of it) as uppercase contains "NODENAME") of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no nodename>" else ( following text of first "NODENAME" of (it as uppercase) of line whose( ( if it does not contain "*" then it else preceding text of first "*" of it) as uppercase contains "NODENAME" ) of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt" as trimmed string) - exists running service "TSM Client Acceptor" -
-
+ + + + + TSM Backup Audit - Windows + http://bigfix.me/analysis/details/2994716 for a later, more dynamic, but much more complex version of this analysis. In the newer version I dynamically locate TSM services, DSM.OPT files, and dsmsched.log files, and get more result details out of the logs. I also check for a dsmsched.log.bak file if the dsmsched.log is locked and unreadable. + +

Report on Windows TSM Statuses.

+

Taken with thanks from JGStew at bigfix.me

+

Learn more about this analysis online: http://bigfix.me/cdb/analysis/62

+

Customized slightly by Jason Walker, 2013-04-22; added TSM Client Acceptor to services list for relevance; fixed some issues with tabs and comments ("*") and trimming the results.

]]>
+ windows of operating system + (exists key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\tsmstats.ini") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log") OR (exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe") OR (exists service "TSM Scheduler Service") OR (exists service "TSM Client Acceptor") + + bigfixme-added-time + Mon, 10 Dec 2012 07:35:02 GMT + + + bigfixme-modification-time + Mon, 10 Dec 2012 07:35:02 GMT + + + bigfixme-keywords + TSM, Backup Audit, Tivoli Storage Manager + + + x-fixlet-modification-time + Fri, 26 Apr 2013 21:30:59 +0000 + + BESC + exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log" + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") then "<dsmsched log missing>" else if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log" whose(exists lines of it)) then "<file locked by TSM>" else ((lines whose(it contains "' completed successfully." AND it contains " Scheduled event '" AND line number of it = (maximum of line numbers of lines whose(it contains "' completed successfully." AND it contains " Scheduled event '") of file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log")) of file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") as string) + if(not exists key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) then "<TSM not installed>" else if(not exists key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it AND exists value "DisplayVersion" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) then "<TSM dv reg entry missing>" else (value "DisplayVersion" of key whose("IBM Tivoli Storage Manager Client" = value "DisplayName" of it AND exists value "DisplayVersion" of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\tsmstats.ini") then "<tsmstats file missing>" else (modification time of file "C:\Program Files\Tivoli\TSM\baclient\tsmstats.ini" as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log") then "<no dsmcrash log>" else (number of lines whose (it contains "IBM Tivoli Storage Manager") of file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log" as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe") then "<dsm.exe missing>" else if(not exists version of file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe") then "<dsm.exe version missing>" else (version of file "C:\Program Files\Tivoli\TSM\baclient\dsm.exe" as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log") then "<dsmcrash log missing>" else (modification time of file "C:\Program Files\Tivoli\TSM\baclient\dsmcrash.log" as string) + exists key whose (value "DisplayName" of it as string contains "Microsoft Visual C++ 2010" AND (it >= "10.0.40219" as version) of (value "DisplayVersion" of it as string as version)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of x32 registry + if (x64 of operating system AND exists x64 registry) then (exists key whose (value "DisplayName" of it as string contains "Microsoft Visual C++ 2010" AND (it >= "10.0.40219" as version) of (value "DisplayVersion" of it as string as version)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of x64 registry) as string else "<n/a - 32bit Machine>" + exists running service "TSM Scheduler Service" + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log") then "<dsmsched log missing>" else (modification time of file "C:\Program Files\Tivoli\TSM\baclient\dsmsched.log" as string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no dsm opt>" else if(not exists line whose(it as uppercase contains "TCPSERVERADDRESS") of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no tcpserveraddress>" else ( following text of first "TCPSERVERADDRESS" of (it as uppercase) of line whose( ( if it does not contain "*" then it else preceding text of first "*" of it) as uppercase contains "TCPSERVERADDRESS" ) of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt" as trimmed string) + if(not exists file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no dsm opt>" else if(not exists line whose( (if it does not contain "*" then it else preceding text of first "*" of it) as uppercase contains "NODENAME") of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt") then "<no nodename>" else ( following text of first "NODENAME" of (it as uppercase) of line whose( ( if it does not contain "*" then it else preceding text of first "*" of it) as uppercase contains "NODENAME" ) of file "C:\Program Files\Tivoli\TSM\baclient\dsm.opt" as trimmed string) + exists running service "TSM Client Acceptor" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Temp Folders, Logs, etc... - Windows (2994784).bes b/Sites/Windows Management/Fixlets/Analyses/Temp Folders, Logs, etc... - Windows (2994784).bes index 447390ebd..9fe78a40b 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Temp Folders, Logs, etc... - Windows (2994784).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Temp Folders, Logs, etc... - Windows (2994784).bes @@ -1,27 +1,27 @@ - - - - - Temp Folders, Logs, etc... - Windows -  

-

The latest version of this Analysis can be found here:  http://bigfix.me/analysis/details/2994620

]]>
- windows of operating system - - x-fixlet-modification-time - Tue, 01 Jul 2014 16:05:36 +0000 - - BESC - (folders "Temp" of windows folder;folders "C:\temp"; folders "C:\ProgramData\TEMP"; folders "AppData\Local\Temp" of folders whose(exists folder "AppData\Local\Temp" of it) of folders "C:\Users"; folders "C:\Program Files (x86)\BigFix Enterprise\BES Client"; folders "C:\Program Files\BigFix Enterprise\BES Client") - pathnames of descendants whose(name of it as lowercase ends with ".log") of (folders "Temp" of windows folder;folders "C:\temp"; folders "C:\ProgramData\TEMP"; folders "AppData\Local\Temp" of folders whose(exists folder "AppData\Local\Temp" of it) of folders "C:\Users"; folders "C:\Program Files (x86)\BigFix Enterprise\BES Client"; folders "C:\Program Files\BigFix Enterprise\BES Client"; folders "C:\Windows\Logs") - pathnames of descendants whose(name of it as lowercase ends with ".txt" AND name of it as lowercase starts with "microsoft office setup") of (folders "Temp" of windows folder ; folders "C:\temp" ; folders "C:\ProgramData\TEMP" ; folders "AppData\Local\Temp" of folders whose(exists folder "AppData\Local\Temp" of it) of folders "C:\Users") -
-
+ + + + + Temp Folders, Logs, etc... - Windows +  

+

The latest version of this Analysis can be found here:  http://bigfix.me/analysis/details/2994620

]]>
+ windows of operating system + + x-fixlet-modification-time + Tue, 01 Jul 2014 16:05:36 +0000 + + BESC + (folders "Temp" of windows folder;folders "C:\temp"; folders "C:\ProgramData\TEMP"; folders "AppData\Local\Temp" of folders whose(exists folder "AppData\Local\Temp" of it) of folders "C:\Users"; folders "C:\Program Files (x86)\BigFix Enterprise\BES Client"; folders "C:\Program Files\BigFix Enterprise\BES Client") + pathnames of descendants whose(name of it as lowercase ends with ".log") of (folders "Temp" of windows folder;folders "C:\temp"; folders "C:\ProgramData\TEMP"; folders "AppData\Local\Temp" of folders whose(exists folder "AppData\Local\Temp" of it) of folders "C:\Users"; folders "C:\Program Files (x86)\BigFix Enterprise\BES Client"; folders "C:\Program Files\BigFix Enterprise\BES Client"; folders "C:\Windows\Logs") + pathnames of descendants whose(name of it as lowercase ends with ".txt" AND name of it as lowercase starts with "microsoft office setup") of (folders "Temp" of windows folder ; folders "C:\temp" ; folders "C:\ProgramData\TEMP" ; folders "AppData\Local\Temp" of folders whose(exists folder "AppData\Local\Temp" of it) of folders "C:\Users") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Temporary Administrators - Windows (2998399).bes b/Sites/Windows Management/Fixlets/Analyses/Temporary Administrators - Windows (2998399).bes index bc7ad1d22..7049c871d 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Temporary Administrators - Windows (2998399).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Temporary Administrators - Windows (2998399).bes @@ -1,25 +1,25 @@ - - - - - Temporary Administrators - Windows - This Analysis provides information from the Temporary Admins fixlets in the C3-Inventory Site.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights" of x32 registry - BESC - (value "Username" of it, value "Start" of it, value "Expiration" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry - (value "Username" of it, value "Start" of it, value "Expiration" of it, value "Revoked" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Expired" of x32 registry - (value "Username" of it, value "Start" of it, value "Expiration" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry - (value "Username" of it, value "Start" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Expired" of x32 registry -
-
+ + + + + Temporary Administrators - Windows + This Analysis provides information from the Temporary Admins fixlets in the C3-Inventory Site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights" of x32 registry + BESC + (value "Username" of it, value "Start" of it, value "Expiration" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry + (value "Username" of it, value "Start" of it, value "Expiration" of it, value "Revoked" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Expired" of x32 registry + (value "Username" of it, value "Start" of it, value "Expiration" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + (value "Username" of it, value "Start" of it) of keys of key "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Expired" of x32 registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Missing Patches - Windows (2998276).bes b/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Missing Patches - Windows (2998276).bes index f75517a8e..3dc301a1b 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Missing Patches - Windows (2998276).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Missing Patches - Windows (2998276).bes @@ -1,22 +1,22 @@ - - - - - Troubleshooting - Missing Patches - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BESC - number of (concatenation "" of matches (regex "[a-z]") of (values of headers "X-Fixlet-Source-Severity" of it as lowercase)) whose (it = "critical" or it = "important" or it = "moderate") of relevant fixlets whose (not exists (headers "X-Fixlet-Type" of it) whose (value of it is contained by set of ("Task";"Analysis";"Baseline")) and exists headers "X-Fixlet-Default-Action" of it) of sites whose (name of it is contained by set of ("Enterprise Security")) - number of (concatenation "" of matches (regex "[a-z]") of (values of headers "X-Fixlet-Source-Severity" of it as lowercase)) whose (it = "critical" or it = "important" or it = "moderate") of relevant fixlets whose (not exists (headers "X-Fixlet-Type" of it) whose (value of it is contained by set of ("Task";"Analysis";"Baseline")) and exists headers "X-Fixlet-Default-Action" of it) of sites whose (name of it is contained by set of ("Updates for Windows Applications")) -
-
+ + + + + Troubleshooting - Missing Patches - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + number of (concatenation "" of matches (regex "[a-z]") of (values of headers "X-Fixlet-Source-Severity" of it as lowercase)) whose (it = "critical" or it = "important" or it = "moderate") of relevant fixlets whose (not exists (headers "X-Fixlet-Type" of it) whose (value of it is contained by set of ("Task";"Analysis";"Baseline")) and exists headers "X-Fixlet-Default-Action" of it) of sites whose (name of it is contained by set of ("Enterprise Security")) + number of (concatenation "" of matches (regex "[a-z]") of (values of headers "X-Fixlet-Source-Severity" of it as lowercase)) whose (it = "critical" or it = "important" or it = "moderate") of relevant fixlets whose (not exists (headers "X-Fixlet-Type" of it) whose (value of it is contained by set of ("Task";"Analysis";"Baseline")) and exists headers "X-Fixlet-Default-Action" of it) of sites whose (name of it is contained by set of ("Updates for Windows Applications")) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Slow Boot Slow Logon - Windows (2998474).bes b/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Slow Boot Slow Logon - Windows (2998474).bes index cec89b144..7958582ab 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Slow Boot Slow Logon - Windows (2998474).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Troubleshooting - Slow Boot Slow Logon - Windows (2998474).bes @@ -1,23 +1,23 @@ - - - - - Troubleshooting - Slow Boot Slow Logon - Windows - Provides information useful for troubleshooting slow boots and slow logons.

-

The WMI Analysis may also prove useful: WMI - Windows

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BESC - (time generated of it, description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 500;item 1 of it))) of (record count of it, oldest record number of it)) whose ((event id of it = 6006 or event id of it = 2147489654) and description of it contains "Logon") of event log "Application" - (concatenations "" of substrings separated by "%09" of (it as trimmed string)) of substrings separated by "%0d%0a" of description of record (oldest record number of it + record count of it - 1) of event log "Microsoft-Windows-Diagnostics-Performance/Operational" -
-
+ + + + + Troubleshooting - Slow Boot Slow Logon - Windows + Provides information useful for troubleshooting slow boots and slow logons.

+

The WMI Analysis may also prove useful: WMI - Windows

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + (time generated of it, description of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 500;item 1 of it))) of (record count of it, oldest record number of it)) whose ((event id of it = 6006 or event id of it = 2147489654) and description of it contains "Logon") of event log "Application" + (concatenations "" of substrings separated by "%09" of (it as trimmed string)) of substrings separated by "%0d%0a" of description of record (oldest record number of it + record count of it - 1) of event log "Microsoft-Windows-Diagnostics-Performance/Operational" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/UEFI - Windows (2998369).bes b/Sites/Windows Management/Fixlets/Analyses/UEFI - Windows (2998369).bes index 3db50096d..f02feac3e 100644 --- a/Sites/Windows Management/Fixlets/Analyses/UEFI - Windows (2998369).bes +++ b/Sites/Windows Management/Fixlets/Analyses/UEFI - Windows (2998369).bes @@ -1,23 +1,23 @@ - - - - - UEFI - Windows - UEFI status on Windows using the setupact log and SecureBoot using system registry

-

Credit, kudos, and thanks to jgstew: https://bigfix.me/relevance/details/3007539

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BESC - if (exists Selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi) then "UEFI" else "BIOS" - if (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" of native registry and value "UEFISecureBootEnabled" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" of native registry = 1) then "Enabled" else "Disabled" -
-
+ + + + + UEFI - Windows + UEFI status on Windows using the setupact log and SecureBoot using system registry

+

Credit, kudos, and thanks to jgstew: https://bigfix.me/relevance/details/3007539

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BESC + if (exists Selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi) then "UEFI" else "BIOS" + if (exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" of native registry and value "UEFISecureBootEnabled" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" of native registry = 1) then "Enabled" else "Disabled" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Uninstall Analysis (54).bes b/Sites/Windows Management/Fixlets/Analyses/Uninstall Analysis (54).bes index 8e3ece0b8..b25949428 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Uninstall Analysis (54).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Uninstall Analysis (54).bes @@ -1,25 +1,25 @@ - - - - - Uninstall Analysis - Pulls back Registry Keys and Display Names for windows installed software - true - - x-fixlet-modification-time - Tue, 04 Dec 2012 16:37:14 +0000 - - BESC - (values "DisplayName" of it, values "DisplayVersion" of it, values "UninstallString" of it, values "QuietUninstallString" of it) of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry - (values "DisplayName" of it, values "DisplayVersion" of it, values "UninstallString" of it) of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry - - + + + + + Uninstall Analysis + Pulls back Registry Keys and Display Names for windows installed software + true + + x-fixlet-modification-time + Tue, 04 Dec 2012 16:37:14 +0000 + + BESC + (values "DisplayName" of it, values "DisplayVersion" of it, values "UninstallString" of it, values "QuietUninstallString" of it) of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry + (values "DisplayName" of it, values "DisplayVersion" of it, values "UninstallString" of it) of keys of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Users - Windows (2998571).bes b/Sites/Windows Management/Fixlets/Analyses/Users - Windows (2998571).bes index bf922d234..04db176de 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Users - Windows (2998571).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Users - Windows (2998571).bes @@ -1,33 +1,33 @@ - - - - - Users - Windows - This Analysis provides Windows-specific user information for the currently active user including:

-
    -
  • Drive Mappings for the currently active user -
  • Administrator status of currently active user
-

This Analysis also provides the following general information for users of the system: 

-
    -
  • The previously logged on user for the system -
  • The last logon timestamp for each previous user of the system
-

Note: OS Upgrades may reset last logon timestamp to the date of the upgrade.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - NOT in proxy agent context - BESC - (sid (it) as string | it ) of (string values whose (set of ("S-1-5-20";"S-1-5-19";"S-1-5-18") does not contain it) of properties "sid" of items 0 of (it whose (preceding text of first "." of string value of property "LastUseTime" of item 0 of it as integer = item 1 of it) of (select objects "* from Win32_UserProfile" of wmi, it) of (maximum of (preceding text of first "." of string value of property "LastUseTime" of it as integer) of select objects "* from Win32_UserProfile" of wmi))) - (concatenations "\" of substrings separated by "#" of name of it) of keys whose (name of it contains "#") of keys "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2" of (current user keys (logged on users) of registry) - (sid (string value of property "sid" of it) as string | string value of property "sid" of it, time value of property "LastUseTime" of it) of (select objects "* from Win32_UserProfile" of wmi) whose (set of ("S-1-5-20";"S-1-5-19";"S-1-5-18") does not contain string value of property "sid" of it) - exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) -
-
+ + + + + Users - Windows + This Analysis provides Windows-specific user information for the currently active user including:

+
    +
  • Drive Mappings for the currently active user +
  • Administrator status of currently active user
+

This Analysis also provides the following general information for users of the system: 

+
    +
  • The previously logged on user for the system +
  • The last logon timestamp for each previous user of the system
+

Note: OS Upgrades may reset last logon timestamp to the date of the upgrade.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + NOT in proxy agent context + BESC + (sid (it) as string | it ) of (string values whose (set of ("S-1-5-20";"S-1-5-19";"S-1-5-18") does not contain it) of properties "sid" of items 0 of (it whose (preceding text of first "." of string value of property "LastUseTime" of item 0 of it as integer = item 1 of it) of (select objects "* from Win32_UserProfile" of wmi, it) of (maximum of (preceding text of first "." of string value of property "LastUseTime" of it as integer) of select objects "* from Win32_UserProfile" of wmi))) + (concatenations "\" of substrings separated by "#" of name of it) of keys whose (name of it contains "#") of keys "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2" of (current user keys (logged on users) of registry) + (sid (string value of property "sid" of it) as string | string value of property "sid" of it, time value of property "LastUseTime" of it) of (select objects "* from Win32_UserProfile" of wmi) whose (set of ("S-1-5-20";"S-1-5-19";"S-1-5-18") does not contain string value of property "sid" of it) + exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/VMWare Guest - Windows (2998379).bes b/Sites/Windows Management/Fixlets/Analyses/VMWare Guest - Windows (2998379).bes index d169935bc..cb31c1a52 100644 --- a/Sites/Windows Management/Fixlets/Analyses/VMWare Guest - Windows (2998379).bes +++ b/Sites/Windows Management/Fixlets/Analyses/VMWare Guest - Windows (2998379).bes @@ -1,24 +1,24 @@ - - - - - VMWare Guest - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- ((value "manufacturer" of structure "system_information" of smbios as string) contains "VMware") - BESC - if ((value "manufacturer" of structure "system_information" of smbios as string) contains "VMware") then ((if exists property "hexadecimal" then hexadecimal of it else it as string as hexadecimal) of (value "uuid" of structure "system_information" of smbios)) else "N/A" - if (windows of operating system) then ((name of it, substrings between "|" of (it as string)) of values of key "HKEY_LOCAL_MACHINE\SOFTWARE\VMWare, Inc.\VMware Drivers" of native registry) else (error "not applicable") - if (windows of operating system) then ( valueS "DisplayVersion" of keys whose (value "DisplayName" of it = "VMware Tools")of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) else (error "not applicable") - if (windows of operating system) then (state of service "VMTools" | "Not Installed") else (error "not applicable") -
-
+ + + + + VMWare Guest - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ ((value "manufacturer" of structure "system_information" of smbios as string) contains "VMware") + BESC + if ((value "manufacturer" of structure "system_information" of smbios as string) contains "VMware") then ((if exists property "hexadecimal" then hexadecimal of it else it as string as hexadecimal) of (value "uuid" of structure "system_information" of smbios)) else "N/A" + if (windows of operating system) then ((name of it, substrings between "|" of (it as string)) of values of key "HKEY_LOCAL_MACHINE\SOFTWARE\VMWare, Inc.\VMware Drivers" of native registry) else (error "not applicable") + if (windows of operating system) then ( valueS "DisplayVersion" of keys whose (value "DisplayName" of it = "VMware Tools")of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) else (error "not applicable") + if (windows of operating system) then (state of service "VMTools" | "Not Installed") else (error "not applicable") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/VPN - Windows (2998351).bes b/Sites/Windows Management/Fixlets/Analyses/VPN - Windows (2998351).bes index 240038060..f46e12ff0 100644 --- a/Sites/Windows Management/Fixlets/Analyses/VPN - Windows (2998351).bes +++ b/Sites/Windows Management/Fixlets/Analyses/VPN - Windows (2998351).bes @@ -1,32 +1,32 @@ - - - - - VPN - Windows - Provides information on the current VPN configuration in Windows.

-

Special thanks to Jason Walker for helping with the Windows VPN file parsing.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - (exists file "rasphone.pbk" of folder "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users)) or (exists file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25")) - BESC - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (PPTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IPSec)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (SSTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (L2TP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IKEv2)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (PPTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IPSec)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (SSTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (L2TP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) - (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IKEv2)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) -
-
+ + + + + VPN - Windows + Provides information on the current VPN configuration in Windows.

+

Special thanks to Jason Walker for helping with the Windows VPN file parsing.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + (exists file "rasphone.pbk" of folder "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users)) or (exists file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25")) + BESC + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (PPTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IPSec)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (SSTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (L2TP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IKEv2)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folder "Microsoft\Network\Connections\Pbk" of folder (expand environment string of "%25ALLUSERSPROFILE%25") + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (PPTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IPSec)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (SSTP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (L2TP)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) + (preceding text of first "]" of following text of first "[" of item 0 of it, following text of first "=" of item 1 of it) of (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "PhoneNumber") of ((item 0 of it, item 1 of it) whose (exists (item 0 of it, variables of item 1 of it) whose (item 1 of it starts with item 0 of it and following text of first "]." of item 1 of it starts with "Device=WAN Miniport (IKEv2)")) of ( ("[" & it & "]") of (unique values of following texts of firsts "[" of preceding texts of firsts "]." of variables of it) of it, it ) of it) of file "rasphone.pbk" of folders "AppData\Roaming\Microsoft\Network\Connections\Pbk" of folders (profile folders of users of logged on users) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Values(BIOS & More) of wmi _root_dcim_sysman_ - Windows (Dell Command Monitor _ OMCI & others) (2994763).bes b/Sites/Windows Management/Fixlets/Analyses/Values(BIOS & More) of wmi _root_dcim_sysman_ - Windows (Dell Command Monitor _ OMCI & others) (2994763).bes index 0c1b34c9a..5d15b5bd1 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Values(BIOS & More) of wmi _root_dcim_sysman_ - Windows (Dell Command Monitor _ OMCI & others) (2994763).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Values(BIOS & More) of wmi _root_dcim_sysman_ - Windows (Dell Command Monitor _ OMCI & others) (2994763).bes @@ -1,85 +1,85 @@ - - - - - Values(BIOS & More) of wmi "root\dcim\sysman" - Windows (Dell Command Monitor / OMCI & others) - Written against the Dell Command | Monitor Version 9.0 Reference Guide.

-

The information in wmi root\dcim\sysman is part of a standard, so this analysis should work for more than just Dell systems as long as the non-Dell systems have similar functionality and reporting mechanisms installed.

-

 

-

References:

-

http://www.dell.com/support/Manuals/us/en/19/Topic/dell-opnmang-clnt-instr-v9.0.0/Dell_Command_Monitor_Ref_Guide-v1/en-us/GUID-28F353DA-781B-4426-A01F-DBD815555AAD

-

https://support.bigfix.com/inspectors/WMI%20Objects_Any.html

-

http://schemas.dmtf.org/wbem/cim-html/2/CIM_BIOSAttribute.html

-

http://schemas.dmtf.org/wbem/cim-html/2/CIM_BIOSEnumeration.html

-

 

]]>
- windows of operating system - exists wmi "root\dcim\sysman" - - x-fixlet-modification-time - Fri, 06 Feb 2015 21:39:34 +0000 - - BESC - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - ( if "Disable" = ( tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") ) then ERROR "Disabled" else ( tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion Status'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion Status'" of wmi "root\dcim\sysman") ) ) | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Auto On'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Auto On'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - string values of selects "AMTSupported from DCIM_AMTSettings" of wmi "root\dcim\sysman" - string values of selects "ASFEnabled from DCIM_ASFSettings" of wmi "root\dcim\sysman" - string values of selects "IsSet from DCIM_BIOSPassword where ElementName='BiosSetupPassword'" of wmi "root\dcim\sysman" - string values of selects "IsSet from DCIM_BIOSPassword where ElementName='BiosBootPassword'" of wmi "root\dcim\sysman" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Password Status Lock'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Password Status Lock'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - (preceding text of first "%22" of following text of first ",Name=%22" of it as trimmed string) of string values of selects "Antecedent from DCIM_RunningOS" of wmi "root\dcim\sysman" - unique values of ( ( (it as string as integer) of values "type" of structures "system_enclosure_or_chassis" of smbios ); integer values of (selects "ChassisPackageType from DCIM_Chassis" of wmis "root/dcim/sysman"; selects "ChassisTypes from Dell_Chassis" of wmis "root\DELLOMCI")) - ( if exists it then it else ERROR "UNKNOWN" ) of (tuple string items ( unique values of ( ( (it as string as integer) of values "type" of structures "system_enclosure_or_chassis" of smbios ); integer values of (selects "ChassisPackageType from DCIM_Chassis" of wmis "root/dcim/sysman"; selects "ChassisTypes from Dell_Chassis" of wmis "root\DELLOMCI")) ) of "Unknown, Other, Unknown, Desktop, Low Profile Desktop, Pizza Box, Mini Tower, Tower, Portable, Laptop, Notebook, Hand Held, Docking Station, All in One, Sub Notebook, Space-Saving, Lunch Box, Main System Chassis, Expansion Chassis, SubChassis, Bus Expansion Chassis, Peripheral Chassis, Storage Chassis, Rack Mount Chassis, Sealed-Case PC, Multi-system chassis, CompactPCI, AdvancedTCA, Blade, Blade Enclosure, Tablet, Convertible, Detachable") - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Num Lock'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Num Lock'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='USB'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='USB'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Signed Firmware Update'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Signed Firmware Update'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='TPM PPI ACPI Support'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='TPM PPI ACPI Support'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Trusted Execution'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Trusted Execution'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='OROM Keyboard Access'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='OROM Keyboard Access'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Enable Legacy Option ROMs'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Enable Legacy Option ROMs'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Processor Virtualization Technology'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Processor Virtualization Technology'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Embedded SATA Controller'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Embedded SATA Controller'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" - unique values of (item 0 of it & ": " & unique value of (if ( /* 0 means there are no options to choose from */ (0 = item 1 of it as integer) OR /* 0 means the selection is invalid */ (0 = following text of last ", " of item 2 of it as integer) OR /* if the selection is outside the number of possible values, then it is invalid */ (item 1 of it as integer < following text of last ", " of item 2 of it as integer) ) then "UNKNOWN" else ( (tuple string items ( (it as integer - 1) of following text of last ", " of it ) of item 2 of it) of it ) ) of it) of (string value of property "AttributeName" of it , number of string values of properties "PossibleValuesDescription" of it, (concatenation ", " of (if exists it whose(it as trimmed string != "") then it else "UNKOWN") of string values of properties "PossibleValuesDescription" of it) & ", " & (if (exists string values whose(it != "0") of properties "CurrentValue" of it) then (string value of properties "CurrentValue" of it) else "0") ) of ( select objects "AttributeName,CurrentValue,PossibleValuesDescription from DCIM_BIOSEnumeration" of it ; select objects "AttributeName,CurrentValue,PossibleValuesDescription from CIM_BIOSEnumeration" of it ) of wmi "root\dcim\sysman" - exists wmi "root\DELLOMCI" - selects "ElementName,PermanentAddress,EnabledDefault,EnabledState,LinkTechnology,TOEEnabledState from DCIM_EthernetPort" of wmi "root\dcim\sysman" - selects "BreachDescription,ChassisPackageType,FirstPowerOnDate,ManufactureDate,PackageType,SecurityBreach from DCIM_Chassis" of wmi "root\dcim\sysman" - selects "Manufacturer,ElementName,Model,ElementName from DCIM_Chip" of wmi "root\dcim\sysman" - selects "Description,ColorDepthBits,ColorModePreset,DisplayMode,EDIDGamma,EDIDVersionNumber,HealthState,ManufactureDate,PhysicalSizeH,PhysicalSizeV,PrimaryStatus,ProductCode,SerialNumber,StandbyModeSupported,SuspendModeSupported,VeryLowPowerSupported from DCIM_DesktopMonitor" of wmi "root\dcim\sysman" - selects "BusType,ControllerFirmwareVersion,Device,DriverVersion,ElementName,PrimaryStatus,ProductName from DCIM_ControllerView" of wmi "root\dcim\sysman" - selects "BankLabel,Capacity,DataWidth,ElementName,FormFactor,ManufactureDate,Manufacturer,MemoryType,Model,PartNumber,SerialNumber,SKU,Speed from DCIM_PhysicalMemory" of wmi "root\dcim\sysman" - selects "ConnectorDescription,ConnectorLayout,ConnectorType,ElementName,Number from DCIM_Slot" of wmi "root\dcim\sysman" - selects "ElementName,EnabledDefault,EnabledState,HealthState from DCIM_USBPort" of wmi "root\dcim\sysman" - selects "BlockSize,ElementName,EnabledState,HealthState,NumberOfBlocks,PrimaryStatus from DCIM_Memory" of wmi "root\dcim\sysman" - selects "BusNumber,Description,DeviceNumber,ElementName,EnabledState,FunctionNumber,HealthState,PrimaryStatus from DCIM_PCIDevice" of wmi "root\dcim\sysman" - selects "ElementName,Name from DCIM_DisplayController" of wmi "root\dcim\sysman" - selects "ActiveCooling,ElementName,EnabledState,HealthState,PrimaryStatus,VariableSpeed from DCIM_Fan" of wmi "root\dcim\sysman" - selects "BaseUnits,CurrentState,ElementName,EnabledState,HealthState,PrimaryStatus,RateUnits,SensorType,ValueFormulation from DCIM_NumericSensor" of wmi "root\dcim\sysman" - selects "CurrentState,ElementName,EnabledState,HealthState,PrimaryStatus,SensorType from DCIM_Sensor" of wmi "root\dcim\sysman" - selects "ButtonPurpose,ButtonType,DeviceID from DCIM_Button" of wmi "root\dcim\sysman" - selects "ElementName,FailThroughSupported,StructuredBootString from DCIM_BootSourceSetting" of wmi "root\dcim\sysman" - selects "* from DCIM_AssetAcquisition" of wmi "root\dcim\sysman" - selects "* from DCIM_AssetSystemInformation" of wmi "root\dcim\sysman" - selects "* from DCIM_Location" of wmi "root\dcim\sysman" - selects "* from DCIM_AssetSupportInformation" of wmi "root\dcim\sysman" - selects "* from DCIM_AssetOwnerInformation" of wmi "root\dcim\sysman" - (it as trimmed string) of string values whose(it as trimmed string != "") of selects "PropertyOwnershipTag from DCIM_Chassis" of wmi "root\dcim\sysman" - (it as trimmed string) of string values whose(it as trimmed string != "") of selects "ElementName from DCIM_Chassis" of wmi "root\dcim\sysman" - selects "* from DCIM_Battery" of wmi "root\dcim\sysman" - concatenations ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") ) of "Disable, 2, 3, LAN, 5, 6, LAN with PXE Boot" | ERROR "UNKNOWN" - concatenations ", " of (string values of selects "PossibleValues from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") - tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Deep Sleep Control'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Deep Sleep Control'" of wmi "root\dcim\sysman") | (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Deep Sleep Control'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" -
-
+ + + + + Values(BIOS & More) of wmi "root\dcim\sysman" - Windows (Dell Command Monitor / OMCI & others) + Written against the Dell Command | Monitor Version 9.0 Reference Guide.

+

The information in wmi root\dcim\sysman is part of a standard, so this analysis should work for more than just Dell systems as long as the non-Dell systems have similar functionality and reporting mechanisms installed.

+

 

+

References:

+

http://www.dell.com/support/Manuals/us/en/19/Topic/dell-opnmang-clnt-instr-v9.0.0/Dell_Command_Monitor_Ref_Guide-v1/en-us/GUID-28F353DA-781B-4426-A01F-DBD815555AAD

+

https://support.bigfix.com/inspectors/WMI%20Objects_Any.html

+

http://schemas.dmtf.org/wbem/cim-html/2/CIM_BIOSAttribute.html

+

http://schemas.dmtf.org/wbem/cim-html/2/CIM_BIOSEnumeration.html

+

 

]]>
+ windows of operating system + exists wmi "root\dcim\sysman" + + x-fixlet-modification-time + Fri, 06 Feb 2015 21:39:34 +0000 + + BESC + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + ( if "Disable" = ( tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion'" of wmi "root\dcim\sysman") ) then ERROR "Disabled" else ( tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion Status'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Chassis Intrusion Status'" of wmi "root\dcim\sysman") ) ) | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Auto On'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Auto On'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + string values of selects "AMTSupported from DCIM_AMTSettings" of wmi "root\dcim\sysman" + string values of selects "ASFEnabled from DCIM_ASFSettings" of wmi "root\dcim\sysman" + string values of selects "IsSet from DCIM_BIOSPassword where ElementName='BiosSetupPassword'" of wmi "root\dcim\sysman" + string values of selects "IsSet from DCIM_BIOSPassword where ElementName='BiosBootPassword'" of wmi "root\dcim\sysman" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Password Status Lock'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Password Status Lock'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + (preceding text of first "%22" of following text of first ",Name=%22" of it as trimmed string) of string values of selects "Antecedent from DCIM_RunningOS" of wmi "root\dcim\sysman" + unique values of ( ( (it as string as integer) of values "type" of structures "system_enclosure_or_chassis" of smbios ); integer values of (selects "ChassisPackageType from DCIM_Chassis" of wmis "root/dcim/sysman"; selects "ChassisTypes from Dell_Chassis" of wmis "root\DELLOMCI")) + ( if exists it then it else ERROR "UNKNOWN" ) of (tuple string items ( unique values of ( ( (it as string as integer) of values "type" of structures "system_enclosure_or_chassis" of smbios ); integer values of (selects "ChassisPackageType from DCIM_Chassis" of wmis "root/dcim/sysman"; selects "ChassisTypes from Dell_Chassis" of wmis "root\DELLOMCI")) ) of "Unknown, Other, Unknown, Desktop, Low Profile Desktop, Pizza Box, Mini Tower, Tower, Portable, Laptop, Notebook, Hand Held, Docking Station, All in One, Sub Notebook, Space-Saving, Lunch Box, Main System Chassis, Expansion Chassis, SubChassis, Bus Expansion Chassis, Peripheral Chassis, Storage Chassis, Rack Mount Chassis, Sealed-Case PC, Multi-system chassis, CompactPCI, AdvancedTCA, Blade, Blade Enclosure, Tablet, Convertible, Detachable") + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Num Lock'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Num Lock'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='USB'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='USB'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Signed Firmware Update'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Signed Firmware Update'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='TPM PPI ACPI Support'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='TPM PPI ACPI Support'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Trusted Execution'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Trusted Execution'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='OROM Keyboard Access'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='OROM Keyboard Access'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Enable Legacy Option ROMs'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Enable Legacy Option ROMs'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Processor Virtualization Technology'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Processor Virtualization Technology'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='AC Power Recovery Mode'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Embedded SATA Controller'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Embedded SATA Controller'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" + unique values of (item 0 of it & ": " & unique value of (if ( /* 0 means there are no options to choose from */ (0 = item 1 of it as integer) OR /* 0 means the selection is invalid */ (0 = following text of last ", " of item 2 of it as integer) OR /* if the selection is outside the number of possible values, then it is invalid */ (item 1 of it as integer < following text of last ", " of item 2 of it as integer) ) then "UNKNOWN" else ( (tuple string items ( (it as integer - 1) of following text of last ", " of it ) of item 2 of it) of it ) ) of it) of (string value of property "AttributeName" of it , number of string values of properties "PossibleValuesDescription" of it, (concatenation ", " of (if exists it whose(it as trimmed string != "") then it else "UNKOWN") of string values of properties "PossibleValuesDescription" of it) & ", " & (if (exists string values whose(it != "0") of properties "CurrentValue" of it) then (string value of properties "CurrentValue" of it) else "0") ) of ( select objects "AttributeName,CurrentValue,PossibleValuesDescription from DCIM_BIOSEnumeration" of it ; select objects "AttributeName,CurrentValue,PossibleValuesDescription from CIM_BIOSEnumeration" of it ) of wmi "root\dcim\sysman" + exists wmi "root\DELLOMCI" + selects "ElementName,PermanentAddress,EnabledDefault,EnabledState,LinkTechnology,TOEEnabledState from DCIM_EthernetPort" of wmi "root\dcim\sysman" + selects "BreachDescription,ChassisPackageType,FirstPowerOnDate,ManufactureDate,PackageType,SecurityBreach from DCIM_Chassis" of wmi "root\dcim\sysman" + selects "Manufacturer,ElementName,Model,ElementName from DCIM_Chip" of wmi "root\dcim\sysman" + selects "Description,ColorDepthBits,ColorModePreset,DisplayMode,EDIDGamma,EDIDVersionNumber,HealthState,ManufactureDate,PhysicalSizeH,PhysicalSizeV,PrimaryStatus,ProductCode,SerialNumber,StandbyModeSupported,SuspendModeSupported,VeryLowPowerSupported from DCIM_DesktopMonitor" of wmi "root\dcim\sysman" + selects "BusType,ControllerFirmwareVersion,Device,DriverVersion,ElementName,PrimaryStatus,ProductName from DCIM_ControllerView" of wmi "root\dcim\sysman" + selects "BankLabel,Capacity,DataWidth,ElementName,FormFactor,ManufactureDate,Manufacturer,MemoryType,Model,PartNumber,SerialNumber,SKU,Speed from DCIM_PhysicalMemory" of wmi "root\dcim\sysman" + selects "ConnectorDescription,ConnectorLayout,ConnectorType,ElementName,Number from DCIM_Slot" of wmi "root\dcim\sysman" + selects "ElementName,EnabledDefault,EnabledState,HealthState from DCIM_USBPort" of wmi "root\dcim\sysman" + selects "BlockSize,ElementName,EnabledState,HealthState,NumberOfBlocks,PrimaryStatus from DCIM_Memory" of wmi "root\dcim\sysman" + selects "BusNumber,Description,DeviceNumber,ElementName,EnabledState,FunctionNumber,HealthState,PrimaryStatus from DCIM_PCIDevice" of wmi "root\dcim\sysman" + selects "ElementName,Name from DCIM_DisplayController" of wmi "root\dcim\sysman" + selects "ActiveCooling,ElementName,EnabledState,HealthState,PrimaryStatus,VariableSpeed from DCIM_Fan" of wmi "root\dcim\sysman" + selects "BaseUnits,CurrentState,ElementName,EnabledState,HealthState,PrimaryStatus,RateUnits,SensorType,ValueFormulation from DCIM_NumericSensor" of wmi "root\dcim\sysman" + selects "CurrentState,ElementName,EnabledState,HealthState,PrimaryStatus,SensorType from DCIM_Sensor" of wmi "root\dcim\sysman" + selects "ButtonPurpose,ButtonType,DeviceID from DCIM_Button" of wmi "root\dcim\sysman" + selects "ElementName,FailThroughSupported,StructuredBootString from DCIM_BootSourceSetting" of wmi "root\dcim\sysman" + selects "* from DCIM_AssetAcquisition" of wmi "root\dcim\sysman" + selects "* from DCIM_AssetSystemInformation" of wmi "root\dcim\sysman" + selects "* from DCIM_Location" of wmi "root\dcim\sysman" + selects "* from DCIM_AssetSupportInformation" of wmi "root\dcim\sysman" + selects "* from DCIM_AssetOwnerInformation" of wmi "root\dcim\sysman" + (it as trimmed string) of string values whose(it as trimmed string != "") of selects "PropertyOwnershipTag from DCIM_Chassis" of wmi "root\dcim\sysman" + (it as trimmed string) of string values whose(it as trimmed string != "") of selects "ElementName from DCIM_Chassis" of wmi "root\dcim\sysman" + selects "* from DCIM_Battery" of wmi "root\dcim\sysman" + concatenations ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") ) of "Disable, 2, 3, LAN, 5, 6, LAN with PXE Boot" | ERROR "UNKNOWN" + concatenations ", " of (string values of selects "PossibleValues from DCIM_BIOSEnumeration where AttributeName='Wake-On-LAN'" of wmi "root\dcim\sysman") + tuple string item ( (it - 1) of integer (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Deep Sleep Control'" of wmi "root\dcim\sysman") ) of concatenation ", " of (string values of selects "PossibleValuesDescription from DCIM_BIOSEnumeration where AttributeName='Deep Sleep Control'" of wmi "root\dcim\sysman") | (string value of selects "CurrentValue from DCIM_BIOSEnumeration where AttributeName='Deep Sleep Control'" of wmi "root\dcim\sysman") | ERROR "UNKNOWN" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Virtualization Based Security - Windows (2998545).bes b/Sites/Windows Management/Fixlets/Analyses/Virtualization Based Security - Windows (2998545).bes index ada8481ad..5e497f754 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Virtualization Based Security - Windows (2998545).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Virtualization Based Security - Windows (2998545).bes @@ -1,31 +1,31 @@ - - - - - Virtualization Based Security - Windows - This analysis provides details regarding the capabilities of a Windows device with regards to Virtualization Based Security (Device Guard, Credential Guard, etc) - windows of operating system - exists wmi "root\Microsoft\Windows\DeviceGuard" - BESC - set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 - set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 - set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 3 - set of (integer values of property "SecurityServicesConfigured" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 - set of (integer values of property "SecurityServicesConfigured" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 - set of (integer values of property "SecurityServicesRunning" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 - set of (integer values of property "SecurityServicesRunning" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 - (it contains 1 or it contains 2) of set of (integer values of property "VirtualizationBasedSecurityStatus" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") - (it contains 2) of set of (integer values of property "VirtualizationBasedSecurityStatus" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") - descriptions of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) whose (source of it = "Microsoft-Windows-Wininit" and (event id of it = 15 or event id of it = 16 or event id of it = 17)) of system event log - exists values "DisableRestrictedAdmin" whose (it = 0) of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa" of native registry - - + + + + + Virtualization Based Security - Windows + This analysis provides details regarding the capabilities of a Windows device with regards to Virtualization Based Security (Device Guard, Credential Guard, etc) + windows of operating system + exists wmi "root\Microsoft\Windows\DeviceGuard" + BESC + set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 + set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 + set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 3 + set of (integer values of property "SecurityServicesConfigured" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 + set of (integer values of property "SecurityServicesConfigured" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 + set of (integer values of property "SecurityServicesRunning" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 + set of (integer values of property "SecurityServicesRunning" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 + (it contains 1 or it contains 2) of set of (integer values of property "VirtualizationBasedSecurityStatus" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") + (it contains 2) of set of (integer values of property "VirtualizationBasedSecurityStatus" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") + descriptions of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 1000;item 1 of it))) of (record count of it, oldest record number of it)) whose (source of it = "Microsoft-Windows-Wininit" and (event id of it = 15 or event id of it = 16 or event id of it = 17)) of system event log + exists values "DisableRestrictedAdmin" whose (it = 0) of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa" of native registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/WD - MSE - SCEP - Microsoft Antimalware Audit - Windows (2994634).bes b/Sites/Windows Management/Fixlets/Analyses/WD - MSE - SCEP - Microsoft Antimalware Audit - Windows (2994634).bes index ee11902d5..698913b7b 100644 --- a/Sites/Windows Management/Fixlets/Analyses/WD - MSE - SCEP - Microsoft Antimalware Audit - Windows (2994634).bes +++ b/Sites/Windows Management/Fixlets/Analyses/WD - MSE - SCEP - Microsoft Antimalware Audit - Windows (2994634).bes @@ -1,40 +1,40 @@ - - - - - WD - MSE - SCEP - Microsoft Antimalware Audit - Windows - Windows XP through Windows 7:  Microsoft Security Essentials

-

Windows 8 and higher:  Windows Defender

-

Managed version:  System Center Endpoint Protection, formerly ForeFront

-

Windows Vista and Windows 7 also have something called "Windows Defender" which was much more limited than MSE. Windows 8 has both of these 'products' rolled into one name.

-

 

-

Latest Version of this Analysis can be found here:  http://bigfix.me/analysis/details/2994633

]]>
- /* Windows Only */ windows of operating system - = "6.0"]]> - = "6.2")]]> - - x-fixlet-modification-time - Thu, 30 Jan 2014 21:49:19 +0000 - - BESC - values "ProductType" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) - values "DisableAntiSpyware" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) - (multiplicity of it, it) of unique values of versions of files whose(exists version of it) of folders ((if (version of client < "8.1") then it else if (x64 of operating system) then (expand x64 environment string of it) else (expand environment string of it)) of ((preceding texts of lasts "\" of (it as string)) of values "RemediationExe" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry))) - ((if (version of client < "8.1") then it else if (x64 of operating system) then (expand x64 environment string of it) else (expand environment string of it)) of ((preceding texts of lasts "\" of (it as string)) of values "RemediationExe" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry))) - (values "PurgeItemsAfterDelay" of keys "Quarantine" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry)) - /* http://technet.microsoft.com/en-us/library/bb418859.aspx */ (unique values of (it as string) of values "SpyNetReporting" of keys "Spynet" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry)) - unique values of (it as string) of values whose(name of it = "ASSignatureVersion" OR name of it = "AVSignatureVersion") of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) - unique values of (it as string) of values "EngineVersion" of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) - unique values of (it as string) of values "NISEngineVersion" of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) - unique values of (it as string) of values "NISSignatureVersion" of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) -
-
+ + + + + WD - MSE - SCEP - Microsoft Antimalware Audit - Windows + Windows XP through Windows 7:  Microsoft Security Essentials

+

Windows 8 and higher:  Windows Defender

+

Managed version:  System Center Endpoint Protection, formerly ForeFront

+

Windows Vista and Windows 7 also have something called "Windows Defender" which was much more limited than MSE. Windows 8 has both of these 'products' rolled into one name.

+

 

+

Latest Version of this Analysis can be found here:  http://bigfix.me/analysis/details/2994633

]]>
+ /* Windows Only */ windows of operating system + = "6.0"]]> + = "6.2")]]> + + x-fixlet-modification-time + Thu, 30 Jan 2014 21:49:19 +0000 + + BESC + values "ProductType" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + values "DisableAntiSpyware" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + (multiplicity of it, it) of unique values of versions of files whose(exists version of it) of folders ((if (version of client < "8.1") then it else if (x64 of operating system) then (expand x64 environment string of it) else (expand environment string of it)) of ((preceding texts of lasts "\" of (it as string)) of values "RemediationExe" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry))) + ((if (version of client < "8.1") then it else if (x64 of operating system) then (expand x64 environment string of it) else (expand environment string of it)) of ((preceding texts of lasts "\" of (it as string)) of values "RemediationExe" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry))) + (values "PurgeItemsAfterDelay" of keys "Quarantine" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry)) + /* http://technet.microsoft.com/en-us/library/bb418859.aspx */ (unique values of (it as string) of values "SpyNetReporting" of keys "Spynet" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry)) + unique values of (it as string) of values whose(name of it = "ASSignatureVersion" OR name of it = "AVSignatureVersion") of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + unique values of (it as string) of values "EngineVersion" of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + unique values of (it as string) of values "NISEngineVersion" of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) + unique values of (it as string) of values "NISSignatureVersion" of keys "Signature Updates" of (keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" of native registry ; keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" of native registry) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/WMI - Windows (2998282).bes b/Sites/Windows Management/Fixlets/Analyses/WMI - Windows (2998282).bes index c031fee90..b276cbcbb 100644 --- a/Sites/Windows Management/Fixlets/Analyses/WMI - Windows (2998282).bes +++ b/Sites/Windows Management/Fixlets/Analyses/WMI - Windows (2998282).bes @@ -1,26 +1,26 @@ - - - - - WMI - Windows - Provides information on the state of WMI on the endpoint.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists wmi - BESC - not exists string values of selects "Domain from Win32_ComputerSystem" of wmi | true - exists folders whose (name of it starts with "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder))) - number of folders whose (name of it starts with "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder))) - (size of file "objects.data" of (if (x64 of operating system) then (x64 folder (pathname of windows folder & "\system32\wbem\repository")) else (folder (pathname of windows folder & "\system32\wbem\repository")))) > 1 /*byte*/ * 1024 /*KB*/ * 1024 /*MB*/ * 1024 /*GB*/ - size of file "objects.data" of (if (x64 of operating system) then (x64 folder (pathname of windows folder & "\system32\wbem\repository")) else (folder (pathname of windows folder & "\system32\wbem\repository"))) -
-
+ + + + + WMI - Windows + Provides information on the state of WMI on the endpoint.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists wmi + BESC + not exists string values of selects "Domain from Win32_ComputerSystem" of wmi | true + exists folders whose (name of it starts with "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder))) + number of folders whose (name of it starts with "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder))) + (size of file "objects.data" of (if (x64 of operating system) then (x64 folder (pathname of windows folder & "\system32\wbem\repository")) else (folder (pathname of windows folder & "\system32\wbem\repository")))) > 1 /*byte*/ * 1024 /*KB*/ * 1024 /*MB*/ * 1024 /*GB*/ + size of file "objects.data" of (if (x64 of operating system) then (x64 folder (pathname of windows folder & "\system32\wbem\repository")) else (folder (pathname of windows folder & "\system32\wbem\repository"))) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Configuration - Windows (2998309).bes b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Configuration - Windows (2998309).bes index 24559fc06..0cae0ee07 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Configuration - Windows (2998309).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Configuration - Windows (2998309).bes @@ -1,39 +1,39 @@ - - - - - Whitelisting - Applocker - Configuration - Windows - Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry - BESC - (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry as string | "Disabled") - (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Dll" of native registry as string | "Disabled") - (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry as string | "Disabled") - (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string | "Disabled") - (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry as string | "Disabled") - (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry as string) - (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Dll" of native registry as string) - (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry as string) - (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string) - (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry as string) - (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string) - (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Dll" of native registry as string) - (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry as string) - (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string) - (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry as string) - (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry as string) -
-
+ + + + + Whitelisting - Applocker - Configuration - Windows + Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + BESC + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry as string | "Disabled") + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Dll" of native registry as string | "Disabled") + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry as string | "Disabled") + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string | "Disabled") + (if (it = "Disabled") then ("Disabled") else (if (it = "0") then "Audit-only" else "Enforced")) of (value "EnforcementMode" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry as string | "Disabled") + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry as string) + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Dll" of native registry as string) + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry as string) + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string) + (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Dll" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry as string) + (node value of attribute "Action" of it, node value of attribute "Name" of it, node value of attribute "UserOrGroupSid" of it & " (" & ( account name of sid (node value of attribute "UserOrGroupSid" of it) | "User not found") & ")", concatenations "; " of (node name of it & ": " & node value of it) of attributes of child nodes of xpaths "Conditions" of it) of xpaths "/*" of xml documents of (values "value" of keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry as string) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Logs - Windows (2998440).bes b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Logs - Windows (2998440).bes index 482c94194..99502fd2b 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Logs - Windows (2998440).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Logs - Windows (2998440).bes @@ -1,26 +1,26 @@ - - - - - Whitelisting - Applocker - Logs - Windows - This analysis provides information on blocked or audited launches looking at the last 500 event logs from Applocker.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - NOT in proxy agent context - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry - BESC - (time generated of it, preceding text of last " was " of description of it, (if (event id of it = 8003) then ("Warned") else ("Blocked")) of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 8003 or event id of it = 8004) of event log "Microsoft-Windows-AppLocker/EXE and DLL" - (time generated of it, preceding text of last " was " of description of it, (if (event id of it = 8006) then ("Warned") else ("Blocked")) of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 8006 or event id of it = 8007) of event log "Microsoft-Windows-AppLocker/MSI and Script" -
-
+ + + + + Whitelisting - Applocker - Logs - Windows + This analysis provides information on blocked or audited launches looking at the last 500 event logs from Applocker.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + NOT in proxy agent context + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + BESC + (time generated of it, preceding text of last " was " of description of it, (if (event id of it = 8003) then ("Warned") else ("Blocked")) of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 8003 or event id of it = 8004) of event log "Microsoft-Windows-AppLocker/EXE and DLL" + (time generated of it, preceding text of last " was " of description of it, (if (event id of it = 8006) then ("Warned") else ("Blocked")) of it) of records ((integers in(item 0 of it + item 1 of it - 1,maximum of (item 0 of it + item 1 of it - 500;item 1 of it))) of (record count of it, oldest record number of it)) whose (event id of it = 8006 or event id of it = 8007) of event log "Microsoft-Windows-AppLocker/MSI and Script" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Windows (2998311).bes b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Windows (2998311).bes index eaca9570f..2e6483ab7 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Windows (2998311).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Whitelisting - Applocker - Windows (2998311).bes @@ -1,23 +1,23 @@ - - - - - Whitelisting - Applocker - Windows - Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- = "6.1"]]> - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - BESC - exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry -
-
+ + + + + Whitelisting - Applocker - Windows + Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ = "6.1"]]> + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + BESC + exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows 11 Upgrade Eligibility Information (2998656).bes b/Sites/Windows Management/Fixlets/Analyses/Windows 11 Upgrade Eligibility Information (2998656).bes index 15d073cf5..5c26d558c 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows 11 Upgrade Eligibility Information (2998656).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows 11 Upgrade Eligibility Information (2998656).bes @@ -1,60 +1,60 @@ - - - - - Windows 11 Upgrade Eligibility Information - - - - -


This analysis contains information about system requirements for upgrading computers from Windows 10 to Windows 11.

-

This analysis applies to Windows 10 systems only.

-

System requirements:

-
    -
  • 1 gigahertz (GHz) or faster with 2 or more cores on a compatible 64-bit processor or System on a Chip (SoC). -
  • 4 gigabytes (GB) of RAM -
  • 64 GB or larger storage device -
  • UEFI, Secure Boot capable -
  • Trusted Platform Module (TPM) version 2.0 -
  • Graphics Card compatible with DirectX 12 or later with WDDM 2.0 driver * -
  • High definition (720p) display that is greater than 9'' diagonally, 8 bits per color channel -
  • Internet Connectivity and Microsoft Account
-

Important Note: Graphics Card Check requires a to evaluate. Please run this task on all of your Windows 10 devices.

-

* We have observed in our testing that Windows 10 can be upgraded to 11 in virtual environments with WDDM 1.1 and 1.4 without any issues.

-]]>
- if exists property "in proxy agent context" then ( not in proxy agent context ) else true - name of operating system as lowercase starts with "win10" - - x-fixlet-first-propagation - Tue, 28 Sep 2021 23:04:56 +0000 - - - x-fixlet-win11-eligibility - analysis - - - x-fixlet-modification-time - Fri, 01 Oct 2021 17:58:24 +0000 - - BESC - (if (it = "x86_64") then "PASS" else "FAIL - OS Architecture: " & it) of (architecture of operating system) - (if (it > 1000) then "PASS" else concatenation of "FAIL - Current processor speed in GHZ: " & (it as string)) of (significant digits 2 of (speed of main processor / mhz)) - (if (it >= 2) then "PASS" else concatenation of "FAIL - Current core count: " & (it as string)) of (core of it * count of it) of cpupackage - (if (it >= 4096) then "PASS" else "FAIL - Current memory in MB: " & (it as string)) of (if (it > 128) then ( ((it / 32) * 32) + (if (it mod 32 > 16) then 32 else 0) ) else it) of (size of ram /1048576) - (if (it) then "PASS" else "FAIL - no 64GB fixed drive") of ( exists drive whose (type of it = "DRIVE_FIXED" and (total space of it/(1024*1024*1024)) >=64 )) - (if (number of elements of it = 0) then "PASS" else "FAIL - Issues: " & concatenation "," of elements of it ) of set of ( following texts whose (it does not contain "12" AND (it as integer < 12 ) of first 2 of (it as trimmed string) of following text of first "DirectX" of it) of first ": " of (it as string) of lines whose (it as trimmed string starts with "DirectX Version: ") of it; following texts whose ( (it as trimmed string as version < "2.0") of following text of first "WDDM" of it) of firsts ": " of (it as string) of lines whose (it as trimmed string starts with "Driver Model:" and it contains "WDDM") of it)of file "win11-eligibility\dxdiag.txt" of parent folder of client |"probe not run" - (if number of elements of it = 0 then "FAIL - TPM not visible in wmi" else (if (number of elements of it = 0) then "PASS" else "FAIL - TPM issues: " & concatenation "|" of elements of it) of set of elements whose ((it contains "_InitialValue" AND not (it as boolean) of following text of first "=" of it) OR ((it as version < "2.0") of tuple string item 0 of following text of first "SpecVersion=" of it)) of it) of set of ((it as string) of selects "IsActivated_InitialValue, IsEnabled_InitialValue, IsOwned_InitialValue, SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") - if (exists selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi) then "PASS" else "FAIL - BIOS boot mode" - if exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" whose (value "UEFISecureBootEnabled" of it = 1) of native registry then "PASS" else "FAIL - Secure Boot Disabled" - (if (it >=2004) then "PASS" else "FAIL - Current Version: " & (it as string)) of (it as integer) of value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry -
-
+ + + + + Windows 11 Upgrade Eligibility Information + + + + +


This analysis contains information about system requirements for upgrading computers from Windows 10 to Windows 11.

+

This analysis applies to Windows 10 systems only.

+

System requirements:

+
    +
  • 1 gigahertz (GHz) or faster with 2 or more cores on a compatible 64-bit processor or System on a Chip (SoC). +
  • 4 gigabytes (GB) of RAM +
  • 64 GB or larger storage device +
  • UEFI, Secure Boot capable +
  • Trusted Platform Module (TPM) version 2.0 +
  • Graphics Card compatible with DirectX 12 or later with WDDM 2.0 driver * +
  • High definition (720p) display that is greater than 9'' diagonally, 8 bits per color channel +
  • Internet Connectivity and Microsoft Account
+

Important Note: Graphics Card Check requires a to evaluate. Please run this task on all of your Windows 10 devices.

+

* We have observed in our testing that Windows 10 can be upgraded to 11 in virtual environments with WDDM 1.1 and 1.4 without any issues.

+]]>
+ if exists property "in proxy agent context" then ( not in proxy agent context ) else true + name of operating system as lowercase starts with "win10" + + x-fixlet-first-propagation + Tue, 28 Sep 2021 23:04:56 +0000 + + + x-fixlet-win11-eligibility + analysis + + + x-fixlet-modification-time + Fri, 01 Oct 2021 17:58:24 +0000 + + BESC + (if (it = "x86_64") then "PASS" else "FAIL - OS Architecture: " & it) of (architecture of operating system) + (if (it > 1000) then "PASS" else concatenation of "FAIL - Current processor speed in GHZ: " & (it as string)) of (significant digits 2 of (speed of main processor / mhz)) + (if (it >= 2) then "PASS" else concatenation of "FAIL - Current core count: " & (it as string)) of (core of it * count of it) of cpupackage + (if (it >= 4096) then "PASS" else "FAIL - Current memory in MB: " & (it as string)) of (if (it > 128) then ( ((it / 32) * 32) + (if (it mod 32 > 16) then 32 else 0) ) else it) of (size of ram /1048576) + (if (it) then "PASS" else "FAIL - no 64GB fixed drive") of ( exists drive whose (type of it = "DRIVE_FIXED" and (total space of it/(1024*1024*1024)) >=64 )) + (if (number of elements of it = 0) then "PASS" else "FAIL - Issues: " & concatenation "," of elements of it ) of set of ( following texts whose (it does not contain "12" AND (it as integer < 12 ) of first 2 of (it as trimmed string) of following text of first "DirectX" of it) of first ": " of (it as string) of lines whose (it as trimmed string starts with "DirectX Version: ") of it; following texts whose ( (it as trimmed string as version < "2.0") of following text of first "WDDM" of it) of firsts ": " of (it as string) of lines whose (it as trimmed string starts with "Driver Model:" and it contains "WDDM") of it)of file "win11-eligibility\dxdiag.txt" of parent folder of client |"probe not run" + (if number of elements of it = 0 then "FAIL - TPM not visible in wmi" else (if (number of elements of it = 0) then "PASS" else "FAIL - TPM issues: " & concatenation "|" of elements of it) of set of elements whose ((it contains "_InitialValue" AND not (it as boolean) of following text of first "=" of it) OR ((it as version < "2.0") of tuple string item 0 of following text of first "SpecVersion=" of it)) of it) of set of ((it as string) of selects "IsActivated_InitialValue, IsEnabled_InitialValue, IsOwned_InitialValue, SpecVersion from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + if (exists selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi) then "PASS" else "FAIL - BIOS boot mode" + if exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State" whose (value "UEFISecureBootEnabled" of it = 1) of native registry then "PASS" else "FAIL - Secure Boot Disabled" + (if (it >=2004) then "PASS" else "FAIL - Current Version: " & (it as string)) of (it as integer) of value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Admin Users Compliance Status (2998597).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Admin Users Compliance Status (2998597).bes index 2e1164ea3..b10dc4e29 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows Admin Users Compliance Status (2998597).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Admin Users Compliance Status (2998597).bes @@ -1,80 +1,80 @@ - - - - - Windows Admin Users Compliance Status - Note:

-

1.  If the task "Deploy ComplianceWhitelist File" has not yet been run, the Status may show "No Compliance Whitelist on Endpoint"
2.  The file ComplianceWhitelist.txt should be created on the BES Server prior to running the above task
3.  If the names of the files in the "Deploy Compliance Whitelist File" task and the "Enforce Compliance" Fixlet have been changed, those changes should also be made in this analysis otherwise the analysis may show a status of "No Whitelist File on Endpoint"

-

 

-

 

-

Properties Description:

-

- - - - - - - - - - - -
-

Status

-

Unauthorized

-

Admins 

-

Name/PWD Age of Admins

-

Whitelist files Match

-

Compliant: All users in the Administrators group are in the ComplianceWhitelist.txt file

-

Not-Compliant: There are users in the local Administrators group that are NOT in the ComplianceWhitelist.txt file.

-

 If the status shows Not-Compliant this field will show which users are in the endpoint's local Administrators group that are NOT in the ComplianceWhitelist.txt file.

-

 

-

Displays the members of local Administrators group as well as the age of the passwords for each of those users.  This can be useful in determining if any admin-user is violating corporate password policy and creating a potential vulnerability.

-

Compares the hash of the ComplianceWhitelist.txt file on that endpoint with the hash of the backup file created by the 'Deploy Whitelist' task.  If there is a mismatch then it is likely someone has modified the primary Whitelist file to fool the policy

-

- - - - - - - - - - - -
-

Primary File hash

-

Backup File hash

-

Primary File Date

-

Backup File Date

-

The sha1 hash of the primary ‘whitelist’ file.  A difference between this and the hash on other clients or this client’s backup file likely indicates that someone has made unauthorized changes to this file.

-

The sha1 hash of the backup ‘whitelist’ file.  If someone makes unauthorized changes to the primary whitelist file there will likely be a difference between the hashes of the primary and the backup files.

-

The modification date of the primary whitelist file.  If the file has a different date than the ‘official’ whitelist file, it will allow an operator to detect that the file on this computer may not be the same as the 'official' version.

-

The modification date of the backup whitelist file.  If the file has a different date than the ‘official’ whitelist file or the primary whitelist file, it will allow an operator to detect that the file(s) on this computer may not be the same as the 'official' version.

]]>
- name of operating system starts with "Win" - - x-fixlet-modification-time - Tue, 18 Sep 2018 04:18:29 +0000 - - BESC - if exists file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt") then if number of (elements of (set of ((following texts of firsts "\" of unique values of ((members of local group "Administrators") as string) as lowercase)) - set of (unique values of (lines of file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt"))))) = 0 then "Compliant" else "Not-Compliant" else "No Compliance Whitelist on Endpoint" - if exists file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt") then "[" & concatenation "] - [" of (elements of (set of ((following texts of firsts "\" of unique values of ((members of local group "Administrators") as string) as lowercase)) - set of (unique values of (lines of file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt"))))) & "]" else "No Compliance Whitelist on Endpoint" - if exists file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") then if exists file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") then (sha1 of file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") = sha1 of file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt")) as string else "Primary Whitelist File Missing" else "Whitelist Backup File Missing" - if exists file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") then (sha1 of file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt")) else "Backup Whitelist File Missing" - if exists file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") then sha1 of file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") else "Primary Whitelist File Missing" - if exists file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") then (modification time of file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt")) as string else "Primary Whitelist File Missing" - if exists file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") then (modification time of file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt")) as string else "Backup Whitelist File Missing" - "[" & concatenation "] - [" of (((names of it, password age of it) of users whose (admin privilege of it as string contains "True")) as string) & "]" -
-
+ + + + + Windows Admin Users Compliance Status + Note:

+

1.  If the task "Deploy ComplianceWhitelist File" has not yet been run, the Status may show "No Compliance Whitelist on Endpoint"
2.  The file ComplianceWhitelist.txt should be created on the BES Server prior to running the above task
3.  If the names of the files in the "Deploy Compliance Whitelist File" task and the "Enforce Compliance" Fixlet have been changed, those changes should also be made in this analysis otherwise the analysis may show a status of "No Whitelist File on Endpoint"

+

 

+

 

+

Properties Description:

+

+ + + + + + + + + + + +
+

Status

+

Unauthorized

+

Admins 

+

Name/PWD Age of Admins

+

Whitelist files Match

+

Compliant: All users in the Administrators group are in the ComplianceWhitelist.txt file

+

Not-Compliant: There are users in the local Administrators group that are NOT in the ComplianceWhitelist.txt file.

+

 If the status shows Not-Compliant this field will show which users are in the endpoint's local Administrators group that are NOT in the ComplianceWhitelist.txt file.

+

 

+

Displays the members of local Administrators group as well as the age of the passwords for each of those users.  This can be useful in determining if any admin-user is violating corporate password policy and creating a potential vulnerability.

+

Compares the hash of the ComplianceWhitelist.txt file on that endpoint with the hash of the backup file created by the 'Deploy Whitelist' task.  If there is a mismatch then it is likely someone has modified the primary Whitelist file to fool the policy

+

+ + + + + + + + + + + +
+

Primary File hash

+

Backup File hash

+

Primary File Date

+

Backup File Date

+

The sha1 hash of the primary ‘whitelist’ file.  A difference between this and the hash on other clients or this client’s backup file likely indicates that someone has made unauthorized changes to this file.

+

The sha1 hash of the backup ‘whitelist’ file.  If someone makes unauthorized changes to the primary whitelist file there will likely be a difference between the hashes of the primary and the backup files.

+

The modification date of the primary whitelist file.  If the file has a different date than the ‘official’ whitelist file, it will allow an operator to detect that the file on this computer may not be the same as the 'official' version.

+

The modification date of the backup whitelist file.  If the file has a different date than the ‘official’ whitelist file or the primary whitelist file, it will allow an operator to detect that the file(s) on this computer may not be the same as the 'official' version.

]]>
+ name of operating system starts with "Win" + + x-fixlet-modification-time + Tue, 18 Sep 2018 04:18:29 +0000 + + BESC + if exists file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt") then if number of (elements of (set of ((following texts of firsts "\" of unique values of ((members of local group "Administrators") as string) as lowercase)) - set of (unique values of (lines of file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt"))))) = 0 then "Compliant" else "Not-Compliant" else "No Compliance Whitelist on Endpoint" + if exists file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt") then "[" & concatenation "] - [" of (elements of (set of ((following texts of firsts "\" of unique values of ((members of local group "Administrators") as string) as lowercase)) - set of (unique values of (lines of file (parent folder of regapp "besclient.exe" as string & "\ComplianceWhitelist\ComplianceWhitelist.txt"))))) & "]" else "No Compliance Whitelist on Endpoint" + if exists file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") then if exists file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") then (sha1 of file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") = sha1 of file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt")) as string else "Primary Whitelist File Missing" else "Whitelist Backup File Missing" + if exists file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") then (sha1 of file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt")) else "Backup Whitelist File Missing" + if exists file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") then sha1 of file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") else "Primary Whitelist File Missing" + if exists file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt") then (modification time of file ((parent folder of regapp "BESClient.exe" as string) & "\ComplianceWhitelist\ComplianceWhitelist.txt")) as string else "Primary Whitelist File Missing" + if exists file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt") then (modification time of file (((data folder of client) as string) & "\__Global\__Download\actionsite\_listbackup.txt")) as string else "Backup Whitelist File Missing" + "[" & concatenation "] - [" of (((names of it, password age of it) of users whose (admin privilege of it as string contains "True")) as string) & "]" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Experience Index Results - WinVista and later (2994570).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Experience Index Results - WinVista and later (2994570).bes index 9af68c006..faad3d817 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows Experience Index Results - WinVista and later (2994570).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Experience Index Results - WinVista and later (2994570).bes @@ -1,45 +1,45 @@ - - - - - Windows Experience Index Results - WinVista and later -  

-

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014780300#77777777-0000-0000-0000-000014956475

]]>
- windows of operating system - = "6.0"/* Windows Vista or later */]]> - exists name whose(it does not contain "Win2008" AND it does not contain "Win2012") of operating system/* Exclude Windows Server */ - - x-fixlet-modification-time - Thu, 22 Aug 2013 21:32:40 +0000 - - BESC - exists folder "Performance\WinSAT\DataStore" of windows folder - number of files whose(name of it ends with ".WinSAT.xml") of folder "Performance\WinSAT\DataStore" of windows folder - names of files whose(name of it ends with ".WinSAT.xml") of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/SystemScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/SystemScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/CpuScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/CpuScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/MemoryScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/MemoryScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/GraphicsScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/GraphicsScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/GamingScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/GamingScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/DiskScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/DiskScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/VideoEncodeScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/VideoEncodeScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/CPUSubAggScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/CPUSubAggScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/Dx9SubScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/Dx9SubScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/Dx10SubScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/Dx10SubScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - unique values of (it as text) of xpaths "/WinSAT/WinSPR/StdDefPlaybackScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/StdDefPlaybackScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - unique values of (it as text) of xpaths "/WinSAT/WinSPR/HighDefPlaybackScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/HighDefPlaybackScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - unique values of (preceding text of first " " of following text of first " " of (it as text) as string) of attributes "Friendly" of xpaths "/WinSAT/SystemEnvironment/ExecDateTOD" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/SystemEnvironment/ExecDateTOD" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - unique values of (it as text as floating point) of xpaths "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Random Read']" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Random Read']" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - unique values of (it as text as floating point) of xpaths "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Sequential Read']" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Sequential Read']" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder - ((exists folder "Performance\WinSAT\DataStore" of windows folder) AND (exists files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment") of folder "Performance\WinSAT\DataStore" of windows folder) AND (1 < (number of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" AND ("0" = (it as text) of xpath "/WinSAT/CompletionStatus" of xml document of it)) of folder "Performance\WinSAT\DataStore" of windows folder)) AND ((now - maximum of creation times of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" AND ("0" = (it as text) of xpath "/WinSAT/CompletionStatus" of xml document of it)) of folder "Performance\WinSAT\DataStore" of windows folder) < 90*day)) -
-
+ + + + + Windows Experience Index Results - WinVista and later +  

+

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014780300#77777777-0000-0000-0000-000014956475

]]>
+ windows of operating system + = "6.0"/* Windows Vista or later */]]> + exists name whose(it does not contain "Win2008" AND it does not contain "Win2012") of operating system/* Exclude Windows Server */ + + x-fixlet-modification-time + Thu, 22 Aug 2013 21:32:40 +0000 + + BESC + exists folder "Performance\WinSAT\DataStore" of windows folder + number of files whose(name of it ends with ".WinSAT.xml") of folder "Performance\WinSAT\DataStore" of windows folder + names of files whose(name of it ends with ".WinSAT.xml") of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/SystemScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/SystemScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/CpuScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/CpuScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/MemoryScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/MemoryScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/GraphicsScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/GraphicsScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/GamingScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/GamingScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/DiskScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/DiskScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/VideoEncodeScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/VideoEncodeScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/CPUSubAggScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/CPUSubAggScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/Dx9SubScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/Dx9SubScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + (it as floating point) of unique values of (it as text) of xpaths "/WinSAT/WinSPR/Dx10SubScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/Dx10SubScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (it as text) of xpaths "/WinSAT/WinSPR/StdDefPlaybackScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/StdDefPlaybackScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (it as text) of xpaths "/WinSAT/WinSPR/HighDefPlaybackScore" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/WinSPR/HighDefPlaybackScore" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (preceding text of first " " of following text of first " " of (it as text) as string) of attributes "Friendly" of xpaths "/WinSAT/SystemEnvironment/ExecDateTOD" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/SystemEnvironment/ExecDateTOD" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (it as text as floating point) of xpaths "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Random Read']" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Random Read']" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + unique values of (it as text as floating point) of xpaths "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Sequential Read']" of xml documents of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" and exists xpath "/WinSAT/Metrics/DiskMetrics/AvgThroughput[@kind='Sequential Read']" of xml document of it) of folder "Performance\WinSAT\DataStore" of windows folder + ((exists folder "Performance\WinSAT\DataStore" of windows folder) AND (exists files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment") of folder "Performance\WinSAT\DataStore" of windows folder) AND (1 < (number of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" AND ("0" = (it as text) of xpath "/WinSAT/CompletionStatus" of xml document of it)) of folder "Performance\WinSAT\DataStore" of windows folder)) AND ((now - maximum of creation times of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment" AND ("0" = (it as text) of xpath "/WinSAT/CompletionStatus" of xml document of it)) of folder "Performance\WinSAT\DataStore" of windows folder) < 90*day)) +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows License Information (2998636).bes b/Sites/Windows Management/Fixlets/Analyses/Windows License Information (2998636).bes index c8c802319..784817db2 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows License Information (2998636).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows License Information (2998636).bes @@ -1,54 +1,54 @@ - - - - - Windows License Information - Reports Windows Licensing Information, majority of what is shown when running the command slmgr /dli. Includes information about Windows 7 ESU Licensing, including Year 2 ESU License information

-
    -
  • License Name -
  • Description -
  • Partial Product Key -
  • License Status -
  • License Family -
  • KMS Server DNS Name -
  • KMS Server Port -
  • KMS Server IP Address -
  • KMS machine extended PID -
  • Activation Interval -
  • Renewal Interval
]]>
- windows of operating system - - x-fixlet-modification-time - Fri, 15 Jan 2021 03:30:44 +0000 - - BESC - if ((select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi) as string contains "1") then "Licensed" else "Not Licensed" - string value of select "Name from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi - string value of select "DiscoveredKeyManagementServiceMachineName from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi - string value of select "LicenseFamily from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi - (string value of select "DiscoveredKeyManagementServiceMachineIpAddress from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi) | "No IP Address Reported" - string value of select "VLActivationInterval from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi - string value of select "VLRenewalInterval from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi - string value of select "KeyManagementServiceProductKeyID from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi - string value of select "KeyManagementServicePort from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi - string value of select "PartialProductKey from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi - string value of select "Description from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi - string value of select "Name from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi | "No ESU License" - string value of select "Description from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi | "No ESU License" - string value of select "PartialProductKey from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi | "No ESU License" - (if ((string value of select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi) as string contains "1") then "Licensed" else "Not Licensed" ) | "No ESU License" - string value of select "Name from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi | "No ESU License" - string value of select "Description from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi | "No ESU License" - string value of select "PartialProductKey from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi | "No ESU License" - (if ((string value of select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi) as string contains "1") then "Licensed" else "Not Licensed" ) | "No ESU License" -
-
+ + + + + Windows License Information + Reports Windows Licensing Information, majority of what is shown when running the command slmgr /dli. Includes information about Windows 7 ESU Licensing, including Year 2 ESU License information

+
    +
  • License Name +
  • Description +
  • Partial Product Key +
  • License Status +
  • License Family +
  • KMS Server DNS Name +
  • KMS Server Port +
  • KMS Server IP Address +
  • KMS machine extended PID +
  • Activation Interval +
  • Renewal Interval
]]>
+ windows of operating system + + x-fixlet-modification-time + Fri, 15 Jan 2021 03:30:44 +0000 + + BESC + if ((select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi) as string contains "1") then "Licensed" else "Not Licensed" + string value of select "Name from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "DiscoveredKeyManagementServiceMachineName from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "LicenseFamily from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + (string value of select "DiscoveredKeyManagementServiceMachineIpAddress from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi) | "No IP Address Reported" + string value of select "VLActivationInterval from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "VLRenewalInterval from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "KeyManagementServiceProductKeyID from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "KeyManagementServicePort from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "PartialProductKey from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "Description from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and not (Name LIKE '%25ESU%25')" of wmi + string value of select "Name from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi | "No ESU License" + string value of select "Description from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi | "No ESU License" + string value of select "PartialProductKey from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi | "No ESU License" + (if ((string value of select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year1%25')" of wmi) as string contains "1") then "Licensed" else "Not Licensed" ) | "No ESU License" + string value of select "Name from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi | "No ESU License" + string value of select "Description from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi | "No ESU License" + string value of select "PartialProductKey from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi | "No ESU License" + (if ((string value of select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name LIKE 'Windows(R)%25' or Name LIKE 'Windows Server(R)%25') and (Name LIKE '%25ESU-Year2%25')" of wmi) as string contains "1") then "Licensed" else "Not Licensed" ) | "No ESU License" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Power Scheme Settings (2994768).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Power Scheme Settings (2994768).bes index 3dcec678b..e58acbd26 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows Power Scheme Settings (2994768).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Power Scheme Settings (2994768).bes @@ -1,34 +1,34 @@ - - - - - Windows Power Scheme Settings - Retrieves several values from the current Windows Power Scheme settings.  The value that is currently in effect is displayed; this may be a user-overridden value, or defaults for the current Power Scheme.

-

This should be able to retrieve power settings for Windows Vista and higher.  It has been tested with Windows 7, Windows 2008, and Windows 2008 R2.

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - = "6" as version]]> - - x-fixlet-modification-time - Fri, 27 Mar 2015 15:24:08 +0000 - - BESC - preceding text of last "%00" of following text of last "," of (value "FriendlyName" of key (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string as trimmed string) - (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string - if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" - if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" - if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" - if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" - if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" - if exists (key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power" of native registry) whose (exists value "HibernateEnabled" of it) then value "HibernateEnabled" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power" of native registry as string else "<not found>" -
-
+ + + + + Windows Power Scheme Settings + Retrieves several values from the current Windows Power Scheme settings.  The value that is currently in effect is displayed; this may be a user-overridden value, or defaults for the current Power Scheme.

+

This should be able to retrieve power settings for Windows Vista and higher.  It has been tested with Windows 7, Windows 2008, and Windows 2008 R2.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = "6" as version]]> + + x-fixlet-modification-time + Fri, 27 Mar 2015 15:24:08 +0000 + + BESC + preceding text of last "%00" of following text of last "," of (value "FriendlyName" of key (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry as string as trimmed string) + (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\6738e2c4-e8a5-4a42-b16a-e040e769756e\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\9d7815a6-7ee4-497e-8888-515a05f02364\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51") of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string & "\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51") of native registry as string else if exists (key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry) whose (exists value "ACSettingIndex" of it) then value "ACSettingIndex" of key ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0E796BDB-100D-47D6-A2D5-F7D2DAA51F51\DefaultPowerSchemeValues\" & (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of native registry) as string as trimmed string) of native registry as string else "<not found>" + if exists (key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power" of native registry) whose (exists value "HibernateEnabled" of it) then value "HibernateEnabled" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power" of native registry as string else "<not found>" +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Software Protection Licensing Information - KMS - Windows (2998367).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Software Protection Licensing Information - KMS - Windows (2998367).bes index 16ee190ba..644ad6ded 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows Software Protection Licensing Information - KMS - Windows (2998367).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Software Protection Licensing Information - KMS - Windows (2998367).bes @@ -1,32 +1,32 @@ - - - - - Windows Software Protection Licensing Information - KMS - Windows - - windows of operating system - - x-fixlet-modification-time - Thu, 25 Aug 2016 01:04:22 +0000 - - BESC - string values of selects "name from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis - string values of selects "LicenseFamily from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis - string values of selects "ProductKeyChannel from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis - tuple string items (integer values of selects "LicenseStatus from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis) of "Unlicensed, Licensed, OOB Grace, OOT Grace, NonGenuineGrace, Notification, UNKNOWN" - (it * minute + now) whose(it > now) of integer values of selects "GracePeriodRemaining from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis - string values of selects "PartialProductKey from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis - unique values of (it as string; string values of selects "KeyManagementServiceMachine from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis) of (values "DiscoveredKeyManagementServiceName" of it; values "KeyManagementServiceName" of it) of (keys "HKEY_USERS\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SL" of it; keys of keys of keys "HKEY_USERS\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of it; keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of it) of (x64 registries; x32 registries) - unique values of (it as string) of values "BackupProductKeyDefault" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x64 registries; x32 registries) - ((it as trimmed string) of preceding text of first ", " of following text of first ( (", " & it & ",") of (it as trimmed string) of ( (preceding text of last "Pro" of it & "Professional" & following text of last "Pro" of it) | it) of unique values of (it as string as trimmed string) of values "ProductName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of (x64 registries; x32 registries) ) of it) of ("NULL, Windows Server 2016 Datacenter, CB7KF-BWN84-R7R2Y-793K2-8XDDG, Windows Server 2016 Standard, WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY, Windows Server 2016 Essentials, JCKRF-N37P4-C2D82-9YXRT-4M63B, "&"Windows 10 Professional, W269N-WFGWX-YVC9B-4J6C9-T83GX, Windows 10 Professional N, MH37W-N47XK-V7XM9-C7227-GCQG9, Windows 10 Enterprise, NPPR9-FWDCX-D2C8J-H872K-2YT43, Windows 10 Enterprise N, DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4, "&"Windows 10 Education, NW6C2-QMPVW-D7KKK-3GKT6-VCFB2, Windows 10 Education N, 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ, Windows 10 Enterprise 2015 LTSB, WNMTR-4C88C-JK8YV-HQ7T2-76DF9, Windows 10 Enterprise 2015 LTSB N, 2F77B-TNFGY-69QQF-B8YKP-D69TJ, Windows 10 Enterprise 2016 LTSB, DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ, Windows 10 Enterprise 2016 LTSB N, QFFDN-GRT3P-VKWWX-X7T3R-8B639, "&"Windows 8.1 Professional, GCRJD-8NW9H-F2CDX-CCM8D-9D6T9, Windows 8.1 Professional N, HMCNV-VVBFX-7HMBH-CTY9B-B4FXY, Windows 8.1 Enterprise, MHF9N-XY6XB-WVXMC-BTDCT-MKKG7, Windows 8.1 Enterprise N, TT4HM-HN7YT-62K67-RGRQJ-JFFXW, "&"Windows Server 2012 R2 Server Standard, D2N9P-3P6X9-2R39C-7RTCD-MDVJX, Windows Server 2012 R2 Datacenter, W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9, Windows Server 2012 R2 Essentials, KNC87-3J2TX-XB4WP-VCPJV-M4FWM, "&"Windows 8 Professional, NG4HW-VH26C-733KW-K6F98-J8CK4, Windows 8 Professional N, XCVCF-2NXM9-723PB-MHCB7-2RYQQ, Windows 8 Enterprise, 32JNW-9KQ84-P47T8-D8GGY-CWCK7, Windows 8 Enterprise N, JMNMF-RHW7P-DMY6X-RF3DR-X2BQT, "&"Windows Server 2012, BN3D2-R7TKB-3YPBD-8DRP2-27GG4, Windows Server 2012 N, 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY, Windows Server 2012 Single Language, 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ, Windows Server 2012 Country Specific, 4K36P-JN4VD-GDC6V-KDT89-DYFKP, "&"Windows Server 2012 Server Standard, XC9B7-NBPP2-83J2H-RHMBY-92BT4, Windows Server 2012 MultiPoint Standard, HM7DN-YVMH3-46JC3-XYTG7-CYQJJ, Windows Server 2012 MultiPoint Premium, XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G, Windows Server 2012 Datacenter, 48HP8-DN98B-MYWDG-T2DCC-8W83P, "&"Windows 7 Professional, FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4, Windows 7 Professional N, MRPKT-YTG23-K7D7T-X2JMM-QY7MG, Windows 7 Professional E, W82YF-2Q76Y-63HXB-FGJG9-GF7QX, Windows 7 Enterprise, 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH, Windows 7 Enterprise N, YDRBP-3D83W-TY26F-D46B2-XCKRJ, Windows 7 Enterprise E, C29WB-22CC8-VJ326-GHFJW-H9DH4, "&"Windows Server 2008 R2 Web, 6TPJF-RBVHG-WBW2R-86QPH-6RTM4, Windows Server 2008 R2 HPC edition, TT8MH-CG224-D3D7Q-498W2-9QCTX, Windows Server 2008 R2 Standard, YC6KT-GKW9T-YTKYR-T4X34-R7VHC, Windows Server 2008 R2 Enterprise, 489J6-VHDMP-X63PK-3K798-CPX3Y, Windows Server 2008 R2 Datacenter, 74YFP-3QFB3-KQT8W-PMXWJ-7M648, Windows Server 2008 R2 for Itanium-based Systems, GT63C-RJFQ3-4GMB6-BRFB9-CB83V, "&"Windows Vista Business, YFKBB-PQJJV-G996G-VWGXY-2V3X8, Windows Vista Business N, HMBQG-8H2RH-C77VX-27R82-VMQBT, Windows Vista Enterprise, VKK3X-68KWM-X2YGT-QR4M6-4BWMV, Windows Vista Enterprise N, VTC42-BM838-43QHV-84HX6-XJXKV, "&"Windows Web Server 2008, WYR28-R7TFJ-3X2YQ-YCY4H-M249D, Windows Server 2008 Standard, TM24T-X9RMF-VWXK6-X8JC9-BFGM2, Windows Server 2008 Standard without Hyper-V, W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ, Windows Server 2008 Enterprise, YQGMW-MPWTJ-34KDK-48M3W-X4Q6V, "&"Windows Server 2008 Enterprise without Hyper-V, 39BXF-X8Q23-P2WWT-38T2F-G3FPG, Windows Server 2008 HPC, RCTX3-KWVHP-BR6TB-RB6DM-6X7HP, Windows Server 2008 Datacenter, 7M67G-PC374-GR742-YH8V4-TCBY3, Windows Server 2008 Datacenter without Hyper-V, 22XQ2-VRXRG-P8D42-K34TD-G3QQC, Windows Server 2008 for Itanium-Based Systems, 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK, NULL") - - + + + + + Windows Software Protection Licensing Information - KMS - Windows + + windows of operating system + + x-fixlet-modification-time + Thu, 25 Aug 2016 01:04:22 +0000 + + BESC + string values of selects "name from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + string values of selects "LicenseFamily from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + string values of selects "ProductKeyChannel from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + tuple string items (integer values of selects "LicenseStatus from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis) of "Unlicensed, Licensed, OOB Grace, OOT Grace, NonGenuineGrace, Notification, UNKNOWN" + (it * minute + now) whose(it > now) of integer values of selects "GracePeriodRemaining from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + string values of selects "PartialProductKey from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis + unique values of (it as string; string values of selects "KeyManagementServiceMachine from SoftwareLicensingProduct WHERE PartialProductKey is not NULL" of wmis) of (values "DiscoveredKeyManagementServiceName" of it; values "KeyManagementServiceName" of it) of (keys "HKEY_USERS\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SL" of it; keys of keys of keys "HKEY_USERS\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of it; keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of it) of (x64 registries; x32 registries) + unique values of (it as string) of values "BackupProductKeyDefault" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x64 registries; x32 registries) + ((it as trimmed string) of preceding text of first ", " of following text of first ( (", " & it & ",") of (it as trimmed string) of ( (preceding text of last "Pro" of it & "Professional" & following text of last "Pro" of it) | it) of unique values of (it as string as trimmed string) of values "ProductName" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of (x64 registries; x32 registries) ) of it) of ("NULL, Windows Server 2016 Datacenter, CB7KF-BWN84-R7R2Y-793K2-8XDDG, Windows Server 2016 Standard, WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY, Windows Server 2016 Essentials, JCKRF-N37P4-C2D82-9YXRT-4M63B, "&"Windows 10 Professional, W269N-WFGWX-YVC9B-4J6C9-T83GX, Windows 10 Professional N, MH37W-N47XK-V7XM9-C7227-GCQG9, Windows 10 Enterprise, NPPR9-FWDCX-D2C8J-H872K-2YT43, Windows 10 Enterprise N, DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4, "&"Windows 10 Education, NW6C2-QMPVW-D7KKK-3GKT6-VCFB2, Windows 10 Education N, 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ, Windows 10 Enterprise 2015 LTSB, WNMTR-4C88C-JK8YV-HQ7T2-76DF9, Windows 10 Enterprise 2015 LTSB N, 2F77B-TNFGY-69QQF-B8YKP-D69TJ, Windows 10 Enterprise 2016 LTSB, DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ, Windows 10 Enterprise 2016 LTSB N, QFFDN-GRT3P-VKWWX-X7T3R-8B639, "&"Windows 8.1 Professional, GCRJD-8NW9H-F2CDX-CCM8D-9D6T9, Windows 8.1 Professional N, HMCNV-VVBFX-7HMBH-CTY9B-B4FXY, Windows 8.1 Enterprise, MHF9N-XY6XB-WVXMC-BTDCT-MKKG7, Windows 8.1 Enterprise N, TT4HM-HN7YT-62K67-RGRQJ-JFFXW, "&"Windows Server 2012 R2 Server Standard, D2N9P-3P6X9-2R39C-7RTCD-MDVJX, Windows Server 2012 R2 Datacenter, W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9, Windows Server 2012 R2 Essentials, KNC87-3J2TX-XB4WP-VCPJV-M4FWM, "&"Windows 8 Professional, NG4HW-VH26C-733KW-K6F98-J8CK4, Windows 8 Professional N, XCVCF-2NXM9-723PB-MHCB7-2RYQQ, Windows 8 Enterprise, 32JNW-9KQ84-P47T8-D8GGY-CWCK7, Windows 8 Enterprise N, JMNMF-RHW7P-DMY6X-RF3DR-X2BQT, "&"Windows Server 2012, BN3D2-R7TKB-3YPBD-8DRP2-27GG4, Windows Server 2012 N, 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY, Windows Server 2012 Single Language, 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ, Windows Server 2012 Country Specific, 4K36P-JN4VD-GDC6V-KDT89-DYFKP, "&"Windows Server 2012 Server Standard, XC9B7-NBPP2-83J2H-RHMBY-92BT4, Windows Server 2012 MultiPoint Standard, HM7DN-YVMH3-46JC3-XYTG7-CYQJJ, Windows Server 2012 MultiPoint Premium, XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G, Windows Server 2012 Datacenter, 48HP8-DN98B-MYWDG-T2DCC-8W83P, "&"Windows 7 Professional, FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4, Windows 7 Professional N, MRPKT-YTG23-K7D7T-X2JMM-QY7MG, Windows 7 Professional E, W82YF-2Q76Y-63HXB-FGJG9-GF7QX, Windows 7 Enterprise, 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH, Windows 7 Enterprise N, YDRBP-3D83W-TY26F-D46B2-XCKRJ, Windows 7 Enterprise E, C29WB-22CC8-VJ326-GHFJW-H9DH4, "&"Windows Server 2008 R2 Web, 6TPJF-RBVHG-WBW2R-86QPH-6RTM4, Windows Server 2008 R2 HPC edition, TT8MH-CG224-D3D7Q-498W2-9QCTX, Windows Server 2008 R2 Standard, YC6KT-GKW9T-YTKYR-T4X34-R7VHC, Windows Server 2008 R2 Enterprise, 489J6-VHDMP-X63PK-3K798-CPX3Y, Windows Server 2008 R2 Datacenter, 74YFP-3QFB3-KQT8W-PMXWJ-7M648, Windows Server 2008 R2 for Itanium-based Systems, GT63C-RJFQ3-4GMB6-BRFB9-CB83V, "&"Windows Vista Business, YFKBB-PQJJV-G996G-VWGXY-2V3X8, Windows Vista Business N, HMBQG-8H2RH-C77VX-27R82-VMQBT, Windows Vista Enterprise, VKK3X-68KWM-X2YGT-QR4M6-4BWMV, Windows Vista Enterprise N, VTC42-BM838-43QHV-84HX6-XJXKV, "&"Windows Web Server 2008, WYR28-R7TFJ-3X2YQ-YCY4H-M249D, Windows Server 2008 Standard, TM24T-X9RMF-VWXK6-X8JC9-BFGM2, Windows Server 2008 Standard without Hyper-V, W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ, Windows Server 2008 Enterprise, YQGMW-MPWTJ-34KDK-48M3W-X4Q6V, "&"Windows Server 2008 Enterprise without Hyper-V, 39BXF-X8Q23-P2WWT-38T2F-G3FPG, Windows Server 2008 HPC, RCTX3-KWVHP-BR6TB-RB6DM-6X7HP, Windows Server 2008 Datacenter, 7M67G-PC374-GR742-YH8V4-TCBY3, Windows Server 2008 Datacenter without Hyper-V, 22XQ2-VRXRG-P8D42-K34TD-G3QQC, Windows Server 2008 for Itanium-Based Systems, 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK, NULL") + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows System Volume Size & Usage (2994588).bes b/Sites/Windows Management/Fixlets/Analyses/Windows System Volume Size & Usage (2994588).bes index 090a23155..c7c076ac9 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows System Volume Size & Usage (2994588).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows System Volume Size & Usage (2994588).bes @@ -1,29 +1,29 @@ - - - - - Windows System Volume Size & Usage - - windows of operating system - = "6"]]> - - x-fixlet-modification-time - Mon, 21 Oct 2013 20:59:36 +0000 - - SYST - ((if exists string value of properties "Label" of it then string value of properties ("Label") of it else "<none>")) of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) - ((if exists string value of properties "DriveLetter" of it then string value of properties ("DriveLetter") of it else "<none>")) of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) - ((string value of property "Capacity" of it as integer / 1024 / 1024) as string & " MB") of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) - ((string value of property "FreeSpace" of it as integer / 1024 / 1024) as string & " MB") of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) - ((string value of property "FreeSpace" of it as floating point / string value of property "Capacity" of it as floating point * 100) as integer as string & " percent free") of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) - - + + + + + Windows System Volume Size & Usage + + windows of operating system + = "6"]]> + + x-fixlet-modification-time + Mon, 21 Oct 2013 20:59:36 +0000 + + SYST + ((if exists string value of properties "Label" of it then string value of properties ("Label") of it else "<none>")) of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + ((if exists string value of properties "DriveLetter" of it then string value of properties ("DriveLetter") of it else "<none>")) of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + ((string value of property "Capacity" of it as integer / 1024 / 1024) as string & " MB") of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + ((string value of property "FreeSpace" of it as integer / 1024 / 1024) as string & " MB") of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + ((string value of property "FreeSpace" of it as floating point / string value of property "Capacity" of it as floating point * 100) as integer as string & " percent free") of (select objects ("Label,DriveLetter, Capacity,FreeSpace from Win32_Volume WHERE SystemVolume='True'") of WMI) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Update & WSUS Audit (69).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Update & WSUS Audit (69).bes index 7844624cd..2086cd59e 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows Update & WSUS Audit (69).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Update & WSUS Audit (69).bes @@ -1,27 +1,27 @@ - - - - - Windows Update & WSUS Audit - - windows of operating system - - x-fixlet-modification-time - Tue, 11 Dec 2012 15:57:58 +0000 - - BESC - if(not exists value "LastSuccessTime" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install" of native registry) then "No Windows Updates installed" else (value "LastSuccessTime" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install" of native registry as string) - if(not exists value "SusClientId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" of native registry) then "No SUS ID" else (value "SusClientId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" of native registry as string) - if(not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" of native registry OR not exists value "WUServer" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" of native registry) then "n/a" else (value "WUServer" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" of native registry as string) - ((value "InstallDate" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as integer) * second) + ("01 Jan 1970 00:00:00" as local time) - - + + + + + Windows Update & WSUS Audit + + windows of operating system + + x-fixlet-modification-time + Tue, 11 Dec 2012 15:57:58 +0000 + + BESC + if(not exists value "LastSuccessTime" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install" of native registry) then "No Windows Updates installed" else (value "LastSuccessTime" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install" of native registry as string) + if(not exists value "SusClientId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" of native registry) then "No SUS ID" else (value "SusClientId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" of native registry as string) + if(not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" of native registry OR not exists value "WUServer" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" of native registry) then "n/a" else (value "WUServer" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" of native registry as string) + ((value "InstallDate" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as integer) * second) + ("01 Jan 1970 00:00:00" as local time) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Update - WUSA - Errors while Installing Updates (2998673).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Update - WUSA - Errors while Installing Updates (2998673).bes index 8cb09642e..6d42f55cd 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows Update - WUSA - Errors while Installing Updates (2998673).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Update - WUSA - Errors while Installing Updates (2998673).bes @@ -1,24 +1,24 @@ - - - - - Windows Update - WUSA - Errors while Installing Updates - Windows Update - WUSA - Errors while Installing Updates - exists records whose (source of it = "Microsoft-Windows-WUSA" and event id of it = 3) of event log "Setup" - - x-fixlet-modification-time - Mon, 10 Jan 2022 10:06:03 +0000 - - BESC - (time generated of it, "Record ID:" & record number of it as string, "Event ID:" & event id of it as string, description of it) of records whose (source of it = "Microsoft-Windows-WUSA" and event id of it = 3) of event log "Setup" - - + + + + + Windows Update - WUSA - Errors while Installing Updates + Windows Update - WUSA - Errors while Installing Updates + exists records whose (source of it = "Microsoft-Windows-WUSA" and event id of it = 3) of event log "Setup" + + x-fixlet-modification-time + Mon, 10 Jan 2022 10:06:03 +0000 + + BESC + (time generated of it, "Record ID:" & record number of it as string, "Event ID:" & event id of it as string, description of it) of records whose (source of it = "Microsoft-Windows-WUSA" and event id of it = 3) of event log "Setup" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Update check results - Windows (2998507).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Update check results - Windows (2998507).bes index 256295b0d..c41b648ed 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows Update check results - Windows (2998507).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Update check results - Windows (2998507).bes @@ -1,30 +1,30 @@ - - - - - Windows Update check results - Windows - This analysis reads the results from this action: https://github.com/jgstew/bigfix-content/blob/master/fixlet/Output%20Windows%20Update%20Results%20-%20Windows.bes

-

 

]]>
- exists files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client - - x-fixlet-modification-time - Fri, 23 Dec 2016 23:28:50 +0000 - - BESC - (it as integer) of keys "Software" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client - (it as integer) of keys "Driver" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client - (it as integer) of keys "Number" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client - (it as integer) of keys "Hidden" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client - modification times of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client - unique values of (it as trimmed string) of following texts of firsts "=" of variables whose(it starts with "[Windows Updates].Software" AND it does not start with "[Windows Updates].Software=" AND it does not contain "=Definition Update for Windows Defender" AND it does not contain "=Microsoft Silverlight (") of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client -
-
+ + + + + Windows Update check results - Windows + This analysis reads the results from this action: https://github.com/jgstew/bigfix-content/blob/master/fixlet/Output%20Windows%20Update%20Results%20-%20Windows.bes

+

 

]]>
+ exists files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + + x-fixlet-modification-time + Fri, 23 Dec 2016 23:28:50 +0000 + + BESC + (it as integer) of keys "Software" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + (it as integer) of keys "Driver" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + (it as integer) of keys "Number" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + (it as integer) of keys "Hidden" of sections "Windows Updates" of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + modification times of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client + unique values of (it as trimmed string) of following texts of firsts "=" of variables whose(it starts with "[Windows Updates].Software" AND it does not start with "[Windows Updates].Software=" AND it does not contain "=Definition Update for Windows Defender" AND it does not contain "=Microsoft Silverlight (") of files "results_WindowsUpdates.ini" of folders "Logs" of folders "__Global" of data folders of client +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Updates - Windows (2998397).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Updates - Windows (2998397).bes index 618f8dd32..8a76f9788 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows Updates - Windows (2998397).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Updates - Windows (2998397).bes @@ -1,26 +1,26 @@ - - - - - Windows Updates - Windows - For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - BES - values "TargetGroup" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry - values "WUServer" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry - (if (it = "2") then ("Notify before download.") else (if (it = "3") then ("Automatically download and notify of installation.") else (if (it = "4") then "Automatic download and scheduled installation" else (if (it = "5") then "Automatic Updates is required, but end users can configure it." else ERROR "Value not recognized")))) of (value "AUOptions" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" of native registry as string) - if (value "AutoInstallMinorUpdates" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry as string | "0" = "1" ) then "Enabled" else "Disabled" - if (value "NoAutoUpdate" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry as string | "0" = "1" ) then "Disabled" else "Enabled" - (if (it = "-1") then ("Not Configured") else (if (it = "0") then "Disabled" else (if (it = "1") then "Enabled" else ERROR "Unknown Value"))) of (value "NoAutoRebootWithLoggedOnUsers" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" of native registry as string | "-1") -
-
+ + + + + Windows Updates - Windows + For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + BES + values "TargetGroup" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry + values "WUServer" of keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry + (if (it = "2") then ("Notify before download.") else (if (it = "3") then ("Automatically download and notify of installation.") else (if (it = "4") then "Automatic download and scheduled installation" else (if (it = "5") then "Automatic Updates is required, but end users can configure it." else ERROR "Value not recognized")))) of (value "AUOptions" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" of native registry as string) + if (value "AutoInstallMinorUpdates" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry as string | "0" = "1" ) then "Enabled" else "Disabled" + if (value "NoAutoUpdate" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate" of native registry as string | "0" = "1" ) then "Disabled" else "Enabled" + (if (it = "-1") then ("Not Configured") else (if (it = "0") then "Disabled" else (if (it = "1") then "Enabled" else ERROR "Unknown Value"))) of (value "NoAutoRebootWithLoggedOnUsers" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" of native registry as string | "-1") +
+
diff --git a/Sites/Windows Management/Fixlets/Analyses/Windows Upgrades (2998608).bes b/Sites/Windows Management/Fixlets/Analyses/Windows Upgrades (2998608).bes index f03f7f572..eadce7987 100644 --- a/Sites/Windows Management/Fixlets/Analyses/Windows Upgrades (2998608).bes +++ b/Sites/Windows Management/Fixlets/Analyses/Windows Upgrades (2998608).bes @@ -1,25 +1,25 @@ - - - - - Windows Upgrades - - operating system as string contains "Win" - exist file "C:\in_place_upgrade\out.log" - - x-fixlet-modification-time - Wed, 08 Apr 2020 16:50:04 +0000 - - BESC - if exist file "C:\in_place_upgrade\out.log" then line 1 of file "C:\in_place_upgrade\out.log" else "N/A" - - + + + + + Windows Upgrades + + operating system as string contains "Win" + exist file "C:\in_place_upgrade\out.log" + + x-fixlet-modification-time + Wed, 08 Apr 2020 16:50:04 +0000 + + BESC + if exist file "C:\in_place_upgrade\out.log" then line 1 of file "C:\in_place_upgrade\out.log" else "N/A" + + diff --git a/Sites/Windows Management/Fixlets/Analyses/WindowsUpdate.log Audit - Windows (2995914).bes b/Sites/Windows Management/Fixlets/Analyses/WindowsUpdate.log Audit - Windows (2995914).bes index 86ede7371..395d16739 100644 --- a/Sites/Windows Management/Fixlets/Analyses/WindowsUpdate.log Audit - Windows (2995914).bes +++ b/Sites/Windows Management/Fixlets/Analyses/WindowsUpdate.log Audit - Windows (2995914).bes @@ -1,26 +1,26 @@ - - - - - WindowsUpdate.log Audit - Windows - - /* Windows Only */ windows of operating system - = "5.1"]]> - exists files "WindowsUpdate.log" whose( exists lines of it AND not exists lines whose(it contains "Get-WindowsUpdateLog PowerShell" OR it contains "Checking write access") of it ) of ( windows folders ; folders "Logs" of folders "__Global" of data folders of clients ) - - x-fixlet-modification-time - Tue, 29 Mar 2016 19:01:29 +0000 - - BESC - (item 1 of /* -> This "it" refers to the last 100 lines of the file -> */ it) whose( /* -> remove empty lines, which is why this relevance can return less than 100 lines per file -> */ it as trimmed string != "") of ( /* -> this is the number of lines of the file from the previous statement -> */ item 1 of it, (lines of /* -> the file object -> */ item 0 of it) ) /* -> This whose statement is responsible for filtering for only the last 100 lines of the file -> */ whose ( (line number of /* -> lines of the file -> */ item 1 of it) > ( /* -> number of lines of the file -> */ item 0 of it - 100 /* <- This is the number of lines to return, which is subtracted from the total # of lines <- */ ) ) of ( /* -> the parent file object itself -> */ it, number of lines of it) of files "WindowsUpdate.log" whose( not exists lines whose(it contains "Get-WindowsUpdateLog PowerShell") of it ) of ( windows folders ; folders "Logs" of folders "__Global" of data folders of clients) - - + + + + + WindowsUpdate.log Audit - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + exists files "WindowsUpdate.log" whose( exists lines of it AND not exists lines whose(it contains "Get-WindowsUpdateLog PowerShell" OR it contains "Checking write access") of it ) of ( windows folders ; folders "Logs" of folders "__Global" of data folders of clients ) + + x-fixlet-modification-time + Tue, 29 Mar 2016 19:01:29 +0000 + + BESC + (item 1 of /* -> This "it" refers to the last 100 lines of the file -> */ it) whose( /* -> remove empty lines, which is why this relevance can return less than 100 lines per file -> */ it as trimmed string != "") of ( /* -> this is the number of lines of the file from the previous statement -> */ item 1 of it, (lines of /* -> the file object -> */ item 0 of it) ) /* -> This whose statement is responsible for filtering for only the last 100 lines of the file -> */ whose ( (line number of /* -> lines of the file -> */ item 1 of it) > ( /* -> number of lines of the file -> */ item 0 of it - 100 /* <- This is the number of lines to return, which is subtracted from the total # of lines <- */ ) ) of ( /* -> the parent file object itself -> */ it, number of lines of it) of files "WindowsUpdate.log" whose( not exists lines whose(it contains "Get-WindowsUpdateLog PowerShell") of it ) of ( windows folders ; folders "Logs" of folders "__Global" of data folders of clients) + + diff --git a/Sites/Windows Management/Fixlets/Analyses/dotNET Framework (2994589).bes b/Sites/Windows Management/Fixlets/Analyses/dotNET Framework (2994589).bes index ceb2f5f4f..4d1dcf75a 100644 --- a/Sites/Windows Management/Fixlets/Analyses/dotNET Framework (2994589).bes +++ b/Sites/Windows Management/Fixlets/Analyses/dotNET Framework (2994589).bes @@ -1,32 +1,32 @@ - - - - - .NET Framework - - windows of operating system - exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry - - x-fixlet-modification-time - Mon, 25 Mar 2013 20:07:41 +0000 - - BESC - exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v2.0") of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v2.0") of it) of native registry - value "SP" of key whose (name of it starts with "v2.0") of key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry - exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v3.0") of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v3.0") of it) of native registry - value "SP" of key whose (name of it starts with "v3.0") of key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry - exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v3.5") of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v3.5") of it) of native registry - value "SP" of key whose (name of it starts with "v3.5") of key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry - exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v4") of key "Client" of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v4") of key "Client" of it) of native registry - exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v4") of key "Full" of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v4") of key "Full" of it) of native registry - - + + + + + .NET Framework + + windows of operating system + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + + x-fixlet-modification-time + Mon, 25 Mar 2013 20:07:41 +0000 + + BESC + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v2.0") of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v2.0") of it) of native registry + value "SP" of key whose (name of it starts with "v2.0") of key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v3.0") of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v3.0") of it) of native registry + value "SP" of key whose (name of it starts with "v3.0") of key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v3.5") of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v3.5") of it) of native registry + value "SP" of key whose (name of it starts with "v3.5") of key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" of native registry + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v4") of key "Client" of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v4") of key "Client" of it) of native registry + exists key "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" whose (exists keys whose (name of it starts with "v4") of key "Full" of it AND exists value "Install" whose (it as string = "1") of key whose (name of it starts with "v4") of key "Full" of it) of native registry + + diff --git a/Sites/Windows Management/Fixlets/Analyses/powercfg energy report - Windows (2994793).bes b/Sites/Windows Management/Fixlets/Analyses/powercfg energy report - Windows (2994793).bes index 3003dde29..8f3626760 100644 --- a/Sites/Windows Management/Fixlets/Analyses/powercfg energy report - Windows (2994793).bes +++ b/Sites/Windows Management/Fixlets/Analyses/powercfg energy report - Windows (2994793).bes @@ -1,26 +1,26 @@ - - - - - powercfg energy report - Windows - - /* Windows Only */ windows of operating system - = "5.1"]]> - exists files whose(exists (it as lowercase) whose(it starts with "energy-report." AND (it ends with ".xml" OR it ends with ".html")) of name of it) of system x64 folder - - x-fixlet-modification-time - Fri, 28 Mar 2014 19:10:37 +0000 - - BESC - pathnames of files whose(exists (it as lowercase) whose(it starts with "energy-report." AND (it ends with ".xml" OR it ends with ".html")) of name of it) of system x64 folder - - + + + + + powercfg energy report - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + exists files whose(exists (it as lowercase) whose(it starts with "energy-report." AND (it ends with ".xml" OR it ends with ".html")) of name of it) of system x64 folder + + x-fixlet-modification-time + Fri, 28 Mar 2014 19:10:37 +0000 + + BESC + pathnames of files whose(exists (it as lowercase) whose(it starts with "energy-report." AND (it ends with ".xml" OR it ends with ".html")) of name of it) of system x64 folder + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/AAC - Create a Public Desktop Shortcut for all users on Windows (25073).bes b/Sites/Windows Management/Fixlets/Fixlets/AAC - Create a Public Desktop Shortcut for all users on Windows (25073).bes index 6edb92fef..939e8a49d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/AAC - Create a Public Desktop Shortcut for all users on Windows (25073).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/AAC - Create a Public Desktop Shortcut for all users on Windows (25073).bes @@ -1,83 +1,83 @@ - - - - - AAC - Create a Public Desktop Shortcut for all users on Windows - Uses Powershell to create a public destop shortcut that works on most modern Windows systems (those supported by powershell)

-

When prompted you can provide an application full path or an URL:

-

URL example

-
-

https://bigfix.me

-

Application example:

-
-

C:\Program Files\Notepad++\notepad++.exe

-

When prompted for the name you can enter any valid filename (Warn: no checks are done)

-

Note: If you use the same name of an existing Public Desktop shortcut, it will be replaced. If you use the same name of a Private Desktop shortcut, two shortcuts will exist on User's desktop.

]]>
- windows of operating system - exist keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" whose (exists value "Path" of it) of native registry - Utility - andrea.capasso@hcl.com - 2018-02-08 - - x-fixlet-modification-time - Thu, 08 Feb 2018 17:22:09 +0000 - - BESC - - - Click - here - to deploy this action. - - - -
-
+ + + + + AAC - Create a Public Desktop Shortcut for all users on Windows + Uses Powershell to create a public destop shortcut that works on most modern Windows systems (those supported by powershell)

+

When prompted you can provide an application full path or an URL:

+

URL example

+
+

https://bigfix.me

+

Application example:

+
+

C:\Program Files\Notepad++\notepad++.exe

+

When prompted for the name you can enter any valid filename (Warn: no checks are done)

+

Note: If you use the same name of an existing Public Desktop shortcut, it will be replaced. If you use the same name of a Private Desktop shortcut, two shortcuts will exist on User's desktop.

]]>
+ windows of operating system + exist keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" whose (exists value "Path" of it) of native registry + Utility + andrea.capasso@hcl.com + 2018-02-08 + + x-fixlet-modification-time + Thu, 08 Feb 2018 17:22:09 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS - set server - Windows (22632).bes b/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS - set server - Windows (22632).bes index 49c9a433d..f6db1ce70 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS - set server - Windows (22632).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS - set server - Windows (22632).bes @@ -1,60 +1,60 @@ - - - - - Activate Windows with KMS - set server - Windows - - /* Windows Only */ windows of operating system - = "5.1"]]> - not exists values "KeyManagementServiceName" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x32 registries; x64 registries) - not exists integer values whose(1=it) of selects "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) AND (Name like 'Windows%25')" of wmis - Internal - 2016-08-05 - - x-fixlet-modification-time - Thu, 17 Nov 2016 21:39:55 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - + + + + + Activate Windows with KMS - set server - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + not exists values "KeyManagementServiceName" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x32 registries; x64 registries) + not exists integer values whose(1=it) of selects "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) AND (Name like 'Windows%25')" of wmis + Internal + 2016-08-05 + + x-fixlet-modification-time + Thu, 17 Nov 2016 21:39:55 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS over VPN - Windows (22633).bes b/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS over VPN - Windows (22633).bes index 8e0e45808..99c9fa651 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS over VPN - Windows (22633).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Activate Windows with KMS over VPN - Windows (22633).bes @@ -1,68 +1,68 @@ - - - - - Activate Windows with KMS over VPN - Windows - This is designed to automatically fix systems that are primarily off network and only connect over VPN occationally, not often enough for the KMS Client to handle it automatically.

-

This currently handles 2 different versions of the Cisco VPN client. Others could be added.

-

This could also detect when there is an issue much earlier to trigger the KMS checkin.

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - exists values "KeyManagementServiceName" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x32 registries; x64 registries) - not exists integer values whose(1=it) of selects "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) AND (Name like 'Windows%25')" of wmis - exists adapters whose(up of it AND exists addresses whose(it as string != "0.0.0.0") of it AND exists description whose(it contains "Cisco Systems VPN Adapter" OR it contains "Cisco AnyConnect Secure Mobility Client") of it) of networks - Internal - jgstew - 2016-08-05 - - x-fixlet-modification-time - Thu, 17 Nov 2016 22:46:45 +0000 - - BESC - - - Click - here - to deploy this action. - - - - -
-
+ + + + + Activate Windows with KMS over VPN - Windows + This is designed to automatically fix systems that are primarily off network and only connect over VPN occationally, not often enough for the KMS Client to handle it automatically.

+

This currently handles 2 different versions of the Cisco VPN client. Others could be added.

+

This could also detect when there is an issue much earlier to trigger the KMS checkin.

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + exists values "KeyManagementServiceName" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x32 registries; x64 registries) + not exists integer values whose(1=it) of selects "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) AND (Name like 'Windows%25')" of wmis + exists adapters whose(up of it AND exists addresses whose(it as string != "0.0.0.0") of it AND exists description whose(it contains "Cisco Systems VPN Adapter" OR it contains "Cisco AnyConnect Secure Mobility Client") of it) of networks + Internal + jgstew + 2016-08-05 + + x-fixlet-modification-time + Thu, 17 Nov 2016 22:46:45 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Add AD Domain to DNS Suffix Search List if missing - Windows (26706).bes b/Sites/Windows Management/Fixlets/Fixlets/Add AD Domain to DNS Suffix Search List if missing - Windows (26706).bes index c1062433b..753af34e5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Add AD Domain to DNS Suffix Search List if missing - Windows (26706).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Add AD Domain to DNS Suffix Search List if missing - Windows (26706).bes @@ -1,48 +1,48 @@ - - - - - Add AD Domain to DNS Suffix Search List if missing - Windows - - windows of operating system - exists dns domainnames of local computers of active directories - exists (it as trimmed string) whose(it != "") of substrings separated by "," of (it as string as lowercase) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries - not exists (it as trimmed string) whose(it contains unique value of dns domainnames of local computers of active directories) of substrings separated by "," of (it as string as lowercase) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries - https://github.com/jgstew/bigfix-content/blob/master/fixlet/Add%20AD%20Domain%20to%20DNS%20Suffix%20Search%20List%20if%20missing%20-%20Windows.bes - jgstew - 2020-09-14 - - x-fixlet-modification-time - Tue, 15 Sep 2020 14:30:04 +0000 - - BESC - - - Click - here - to deploy this action. - - -// TODO: Test - -regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]" "SearchList"="{ concatenations "," of (it as trimmed string) of ( (unique values of dns domainnames of local computers of active directories) ; it ) of (it as string as trimmed string) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries }" - - -// concatenations "," of ( (unique values of dns domainnames of local computers of active directories) ; it ) of (it as string as trimmed string) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries - -// Reference: -// - https://bigfix.me/relevance/details/3022969 - - - - - + + + + + Add AD Domain to DNS Suffix Search List if missing - Windows + + windows of operating system + exists dns domainnames of local computers of active directories + exists (it as trimmed string) whose(it != "") of substrings separated by "," of (it as string as lowercase) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries + not exists (it as trimmed string) whose(it contains unique value of dns domainnames of local computers of active directories) of substrings separated by "," of (it as string as lowercase) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries + https://github.com/jgstew/bigfix-content/blob/master/fixlet/Add%20AD%20Domain%20to%20DNS%20Suffix%20Search%20List%20if%20missing%20-%20Windows.bes + jgstew + 2020-09-14 + + x-fixlet-modification-time + Tue, 15 Sep 2020 14:30:04 +0000 + + BESC + + + Click + here + to deploy this action. + + +// TODO: Test + +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]" "SearchList"="{ concatenations "," of (it as trimmed string) of ( (unique values of dns domainnames of local computers of active directories) ; it ) of (it as string as trimmed string) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries }" + + +// concatenations "," of ( (unique values of dns domainnames of local computers of active directories) ; it ) of (it as string as trimmed string) of values "SearchList" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" of registries + +// Reference: +// - https://bigfix.me/relevance/details/3022969 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Add Current User to Remote Desktop Users Group (3794).bes b/Sites/Windows Management/Fixlets/Fixlets/Add Current User to Remote Desktop Users Group (3794).bes index a4ca7f02c..73291ec01 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Add Current User to Remote Desktop Users Group (3794).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Add Current User to Remote Desktop Users Group (3794).bes @@ -1,61 +1,61 @@ - - - - - Add Current User to Remote Desktop Users Group - Thiis task will add the currently logged in user to the remote desktop users group. - windows of operating system - exist current user and not (exists member whose (it as string as lowercase ends with (name of current user)) of local group "Remote Desktop Users" ) - Internal - 2014-06-11 - - x-fixlet-modification-time - Wed, 11 Jun 2014 15:43:26 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - + + + + + Add Current User to Remote Desktop Users Group + Thiis task will add the currently logged in user to the remote desktop users group. + windows of operating system + exist current user and not (exists member whose (it as string as lowercase ends with (name of current user)) of local group "Remote Desktop Users" ) + Internal + 2014-06-11 + + x-fixlet-modification-time + Wed, 11 Jun 2014 15:43:26 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Add User to Local Administrators Group (3624).bes b/Sites/Windows Management/Fixlets/Fixlets/Add User to Local Administrators Group (3624).bes index f590bae1a..a2c1aec45 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Add User to Local Administrators Group (3624).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Add User to Local Administrators Group (3624).bes @@ -1,33 +1,33 @@ - - - - - Add User to Local Administrators Group - - true - Internal - 2012-12-28 - - x-fixlet-modification-time - Sat, 29 Dec 2012 00:44:02 +0000 - - BESC - - - Click - here - to deploy this action. - - wait net localgroup administrators moranit.local\Daniel /add - - - + + + + + Add User to Local Administrators Group + + true + Internal + 2012-12-28 + + x-fixlet-modification-time + Sat, 29 Dec 2012 00:44:02 +0000 + + BESC + + + Click + here + to deploy this action. + + wait net localgroup administrators moranit.local\Daniel /add + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Allow popups in Interent Explorer for a specific domain - www.domain.tld (715).bes b/Sites/Windows Management/Fixlets/Fixlets/Allow popups in Interent Explorer for a specific domain - www.domain.tld (715).bes index ee000a141..9536cac9a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Allow popups in Interent Explorer for a specific domain - www.domain.tld (715).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Allow popups in Interent Explorer for a specific domain - www.domain.tld (715).bes @@ -1,38 +1,38 @@ - - - - - Allow popups in Interent Explorer for a specific domain - www.domain.tld - - windows of operating system - exists current user AND (1 = number of logged on users) - - Registry Edit - Internal - jgs194 - 2012-08-23 - - x-fixlet-modification-time - Wed, 05 Dec 2012 16:43:07 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - + + + + + Allow popups in Interent Explorer for a specific domain - www.domain.tld + + windows of operating system + exists current user AND (1 = number of logged on users) + + Registry Edit + Internal + jgs194 + 2012-08-23 + + x-fixlet-modification-time + Wed, 05 Dec 2012 16:43:07 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Apache Commons Text detection scan (Windows).bes b/Sites/Windows Management/Fixlets/Fixlets/Apache Commons Text detection scan (Windows).bes index cec702232..ba2b04e00 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Apache Commons Text detection scan (Windows).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Apache Commons Text detection scan (Windows).bes @@ -1,95 +1,95 @@ - - - - - Apache Commons Text detection scan (Windows) - This is Community Content. When you use these solutions, it is incumbent on your organization to test any solutions provided across the broadest available system base including various OS, storage solutions, and application inventory. -

-

Please see the Community Solution Testing Statement

-

This Task performs a filesystem scan on Windows systems to attempt detecting Apache Commons Text versions vulnerable to CVE-2022-42889.

- -

 

-

This Task performs a filesystem search across all fixed disks on Windows platforms, to locate Apache Commons Text JAR files, either directly on the filesystem or embedded in a .WAR archive file.  In the case any .WAR file is found on the system, the 'unzip.exe' utility is used to perform a listing of files inside the archive to locate Apache Commons Text-related .JAR files.  Specifically, this Task searches for any versions of commons-text-1.10.0.jar.

-

Scan results are stored in a "Scans" subdirectory beneath the "BES Client" folder. 'apache-commons-text.log' contains the full script output for potential debugging or diagnosis, and 'apache-commons-text.txt' contains a listing of detected files in one of the forms

-
    -
  • C:\temp\commons-text\1.10.0\commons-text-1.10.0-tests.jar -
  • C:\temp\commons-text.war||commons-text/1.4/commons-text-1.4.jar
-

The first sample entry indicates a detected jar file directly in the filesystem, while the second entry indicates a detected .jar file embedded within a .WAR archive.

-

This Task has several known limitations:

-
    -
  • Archives are not extracted recursively - only .JAR files contained directly within a .WAR archive are found; archives embedded within multiple layers of .WAR archives are not detected. -
  • There is no option to throttle the scan in terms of processor or disk i/o usage.  Scans should be executed during non-critical hours, and staggered over time especially where multiple systems share a storage resource, such as a SAN or virtual machine storage pool.
-

This detection method uses Windows batch scripts with no external utility aside from 'unzip.exe'.  Results of the scan may be retrieved using the related Analysis.

]]>
- windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) - Internal - 2022-03-31 - - x-fixlet-modification-time - Tue, 18 Oct 2022 16:37:21 +0000 - - BESC - - - Click - here - to deploy this action. - - = "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))}\Scans" -folder create "{parameter "ScansFolder"}" - -parameter "output"="{pathname of folder (parameter "ScansFolder")}\apache-commons-text.txt" -parameter "exec_output"="{pathname of folder (parameter "ScansFolder")}\apache-commons-text.log" -delete "{parameter "output"}" -delete "{parameter "exec_output"}" - -delete __createfile -createfile until EOF_EOF_EOF_EOF -set UNZIP="{parameter "unzip"}" -setlocal EnableDelayedExpansion -GOTO MAIN -:PROCESSFILE -echo Processfile %* -REM If the file itself matches, output it and exit this function -if %~x1==.jar echo %~dpnx1 >> "{parameter "output"}"& exit /B 0 -REM the file is a war/jar, expand it to search for embedded files -REM Use DelayedExpansion and !FILENAME! to prevent 'for' loop crashing on symbols like 'Program Files (x86)' -set FILENAME=%~dpnx1 -for /F "tokens=*" %%i in ('"%UNZIP% -Z -1C "!FILENAME!" *commons-text-*.jar ^|findstr /R /V /C:"\-javadoc\.jar$" /C:"\-sources\.jar$" /C:"\-tests\.jar$""') do @echo !FILENAME!^|^|%%i >> "{parameter "output"}" -exit /B 0 - -:MAIN -echo ::START::%DATE%::%TIME%>> "{parameter "output"}" - -{concatenation "%0d%0a" of ("for /F %22tokens=*%22 %25%25i in ('dir /s /b " & it & "\ ^| findstr /R /C:%22.*\.war$%22 /C:%22.*\.ear$%22 /C:%22commons\-text\-.*\.jar$%22 ^|findstr /R /V /C:%22\-javadoc\.jar$%22 /C:%22\-sources\.jar$%22 /C:%22\-tests\.jar$%22') do CALL :PROCESSFILE %22%25%25~dpnxi%22") of pathnames of root folders of drives whose (type of it = "DRIVE_FIXED")} - -endlocal -echo ::FINISH::%DATE%::%TIME%>> "{parameter "output"}" - -EOF_EOF_EOF_EOF - -delete run_scan.cmd -copy __createfile run_scan.cmd -action uses wow64 redirection {not x64 of operating system} -waithidden cmd.exe /c "run_scan.cmd > "{parameter "output"}" >"{parameter "exec_output"}" 2>&1" -]]> - -
-
+ + + + + Apache Commons Text detection scan (Windows) + This is Community Content. When you use these solutions, it is incumbent on your organization to test any solutions provided across the broadest available system base including various OS, storage solutions, and application inventory. +

+

Please see the Community Solution Testing Statement

+

This Task performs a filesystem scan on Windows systems to attempt detecting Apache Commons Text versions vulnerable to CVE-2022-42889.

+ +

 

+

This Task performs a filesystem search across all fixed disks on Windows platforms, to locate Apache Commons Text JAR files, either directly on the filesystem or embedded in a .WAR archive file.  In the case any .WAR file is found on the system, the 'unzip.exe' utility is used to perform a listing of files inside the archive to locate Apache Commons Text-related .JAR files.  Specifically, this Task searches for any versions of commons-text-1.10.0.jar.

+

Scan results are stored in a "Scans" subdirectory beneath the "BES Client" folder. 'apache-commons-text.log' contains the full script output for potential debugging or diagnosis, and 'apache-commons-text.txt' contains a listing of detected files in one of the forms

+
    +
  • C:\temp\commons-text\1.10.0\commons-text-1.10.0-tests.jar +
  • C:\temp\commons-text.war||commons-text/1.4/commons-text-1.4.jar
+

The first sample entry indicates a detected jar file directly in the filesystem, while the second entry indicates a detected .jar file embedded within a .WAR archive.

+

This Task has several known limitations:

+
    +
  • Archives are not extracted recursively - only .JAR files contained directly within a .WAR archive are found; archives embedded within multiple layers of .WAR archives are not detected. +
  • There is no option to throttle the scan in terms of processor or disk i/o usage.  Scans should be executed during non-critical hours, and staggered over time especially where multiple systems share a storage resource, such as a SAN or virtual machine storage pool.
+

This detection method uses Windows batch scripts with no external utility aside from 'unzip.exe'.  Results of the scan may be retrieved using the related Analysis.

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + Internal + 2022-03-31 + + x-fixlet-modification-time + Tue, 18 Oct 2022 16:37:21 +0000 + + BESC + + + Click + here + to deploy this action. + + = "9" as version) then (pathname of parent folder of data folder of client) else (pathname of parent folder of parent folder of client folder of site "actionsite"))}\Scans" +folder create "{parameter "ScansFolder"}" + +parameter "output"="{pathname of folder (parameter "ScansFolder")}\apache-commons-text.txt" +parameter "exec_output"="{pathname of folder (parameter "ScansFolder")}\apache-commons-text.log" +delete "{parameter "output"}" +delete "{parameter "exec_output"}" + +delete __createfile +createfile until EOF_EOF_EOF_EOF +set UNZIP="{parameter "unzip"}" +setlocal EnableDelayedExpansion +GOTO MAIN +:PROCESSFILE +echo Processfile %* +REM If the file itself matches, output it and exit this function +if %~x1==.jar echo %~dpnx1 >> "{parameter "output"}"& exit /B 0 +REM the file is a war/jar, expand it to search for embedded files +REM Use DelayedExpansion and !FILENAME! to prevent 'for' loop crashing on symbols like 'Program Files (x86)' +set FILENAME=%~dpnx1 +for /F "tokens=*" %%i in ('"%UNZIP% -Z -1C "!FILENAME!" *commons-text-*.jar ^|findstr /R /V /C:"\-javadoc\.jar$" /C:"\-sources\.jar$" /C:"\-tests\.jar$""') do @echo !FILENAME!^|^|%%i >> "{parameter "output"}" +exit /B 0 + +:MAIN +echo ::START::%DATE%::%TIME%>> "{parameter "output"}" + +{concatenation "%0d%0a" of ("for /F %22tokens=*%22 %25%25i in ('dir /s /b " & it & "\ ^| findstr /R /C:%22.*\.war$%22 /C:%22.*\.ear$%22 /C:%22commons\-text\-.*\.jar$%22 ^|findstr /R /V /C:%22\-javadoc\.jar$%22 /C:%22\-sources\.jar$%22 /C:%22\-tests\.jar$%22') do CALL :PROCESSFILE %22%25%25~dpnxi%22") of pathnames of root folders of drives whose (type of it = "DRIVE_FIXED")} + +endlocal +echo ::FINISH::%DATE%::%TIME%>> "{parameter "output"}" + +EOF_EOF_EOF_EOF + +delete run_scan.cmd +copy __createfile run_scan.cmd +action uses wow64 redirection {not x64 of operating system} +waithidden cmd.exe /c "run_scan.cmd > "{parameter "output"}" >"{parameter "exec_output"}" 2>&1" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Applocker Configuration Template (25578).bes b/Sites/Windows Management/Fixlets/Fixlets/Applocker Configuration Template (25578).bes index 78dfa2165..cf0830e5b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Applocker Configuration Template (25578).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Applocker Configuration Template (25578).bes @@ -1,106 +1,106 @@ - - - - - Applocker Configuration Template - This is a template for implementing AppLocker using Bigfix.

-

The script was written for imaging, therefore the relevance is True. We are only working with Appx files in Windows 10, however, the rule collection types should be very similar. In this example, I only want the Administrator account to have access to Settings and block access for all other users. Since Applocker rules go based on User or Group SID, I am using powershell to pull the SID of the Administrator user that is then applied to the windows.immersivecontrolpanel.appx rule. All of the other rulles apply to everyone.

-

The XML part of the script gets messed up  when being displayed on Bigfix.me, therefore I have provided it below. If you download the .bes file it will be correct.

-

<AppLockerPolicy Version="1">
  <RuleCollection Type="Exe" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Msi" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Script" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Dll" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Appx" EnforcementMode="Enabled">
    <FilePublisherRule Id="f9e7ee63-13da-4646-8f44-f8bed6c4e75e" Name="windows.immersivecontrolpanel, from Microsoft Corporation" Description="" UserOrGroupSid="{{0}" Action="Allow">
      <Conditions>
        <FilePublisherCondition PublisherName="CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProductName="windows.immersivecontrolpanel" BinaryName="*">
          <BinaryVersionRange LowSection="*" HighSection="*" />
        </FilePublisherCondition>
      </Conditions>
    </FilePublisherRule>
    <FilePublisherRule Id="6e977e00-e0e1-4b26-a163-9ba2c251e5c5" Name="Microsoft.BioEnrollment, from Microsoft Corporation" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
      <Conditions>
        <FilePublisherCondition PublisherName="CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProductName="Microsoft.BioEnrollment" BinaryName="*">
          <BinaryVersionRange LowSection="*" HighSection="*" />
        </FilePublisherCondition>
      </Conditions>
    </FilePublisherRule>
  </RuleCollection>
</AppLockerPolicy>

-

 

]]>
- true - Bigfix.me - Internal - n0m4d1c - 2018-10-19 - - x-fixlet-modification-time - Fri, 09 Nov 2018 23:08:42 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - - - - - - - - - - -'@ -f $User.SID - -$xml | out-file C:\Apps\Locker\Applocker.xml -Encoding utf8 - -_end_ - -copy __createfile C:\Apps\Locker\Applocker.ps1 - -action uses wow64 redirection {not x64 of operating system} - -//Runs the ps1 files that creates our configuration file. -waithidden powershell -ExecutionPolicy Bypass -command "C:\Apps\Locker\Applocker.ps1" - -//Runs the command to implement the configuration file. -waithidden powershell -ExecutionPolicy Bypass -command "Set-AppLockerPolicy –XMLPolicy C:\Apps\Locker\Applocker.xml" - -//Sets the Applocker service to start automatically -waithidden sc.exe config appidsvc start=auto - -// Pauses BigFix for 15 sec -parameter "start" = "{now}" -pause while {now < ( (( parameter "start" of action ) as time ) + 15* second)} - -//Clean up -if {exists file "C:\Apps\Scripts\n0m4d1c.ps1"} - delete "C:\Apps\Locker\Applocker.ps1" -endif -if {exists file "C:\Apps\Scripts\POS_Applocker_Test.xml"} - delete "C:\Apps\Locker\Applocker.xml" -endif]]> - -
-
+ + + + + Applocker Configuration Template + This is a template for implementing AppLocker using Bigfix.

+

The script was written for imaging, therefore the relevance is True. We are only working with Appx files in Windows 10, however, the rule collection types should be very similar. In this example, I only want the Administrator account to have access to Settings and block access for all other users. Since Applocker rules go based on User or Group SID, I am using powershell to pull the SID of the Administrator user that is then applied to the windows.immersivecontrolpanel.appx rule. All of the other rulles apply to everyone.

+

The XML part of the script gets messed up  when being displayed on Bigfix.me, therefore I have provided it below. If you download the .bes file it will be correct.

+

<AppLockerPolicy Version="1">
  <RuleCollection Type="Exe" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Msi" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Script" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Dll" EnforcementMode="NotConfigured" />
  <RuleCollection Type="Appx" EnforcementMode="Enabled">
    <FilePublisherRule Id="f9e7ee63-13da-4646-8f44-f8bed6c4e75e" Name="windows.immersivecontrolpanel, from Microsoft Corporation" Description="" UserOrGroupSid="{{0}" Action="Allow">
      <Conditions>
        <FilePublisherCondition PublisherName="CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProductName="windows.immersivecontrolpanel" BinaryName="*">
          <BinaryVersionRange LowSection="*" HighSection="*" />
        </FilePublisherCondition>
      </Conditions>
    </FilePublisherRule>
    <FilePublisherRule Id="6e977e00-e0e1-4b26-a163-9ba2c251e5c5" Name="Microsoft.BioEnrollment, from Microsoft Corporation" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
      <Conditions>
        <FilePublisherCondition PublisherName="CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" ProductName="Microsoft.BioEnrollment" BinaryName="*">
          <BinaryVersionRange LowSection="*" HighSection="*" />
        </FilePublisherCondition>
      </Conditions>
    </FilePublisherRule>
  </RuleCollection>
</AppLockerPolicy>

+

 

]]>
+ true + Bigfix.me + Internal + n0m4d1c + 2018-10-19 + + x-fixlet-modification-time + Fri, 09 Nov 2018 23:08:42 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + + + + + + + +'@ -f $User.SID + +$xml | out-file C:\Apps\Locker\Applocker.xml -Encoding utf8 + +_end_ + +copy __createfile C:\Apps\Locker\Applocker.ps1 + +action uses wow64 redirection {not x64 of operating system} + +//Runs the ps1 files that creates our configuration file. +waithidden powershell -ExecutionPolicy Bypass -command "C:\Apps\Locker\Applocker.ps1" + +//Runs the command to implement the configuration file. +waithidden powershell -ExecutionPolicy Bypass -command "Set-AppLockerPolicy –XMLPolicy C:\Apps\Locker\Applocker.xml" + +//Sets the Applocker service to start automatically +waithidden sc.exe config appidsvc start=auto + +// Pauses BigFix for 15 sec +parameter "start" = "{now}" +pause while {now < ( (( parameter "start" of action ) as time ) + 15* second)} + +//Clean up +if {exists file "C:\Apps\Scripts\n0m4d1c.ps1"} + delete "C:\Apps\Locker\Applocker.ps1" +endif +if {exists file "C:\Apps\Scripts\POS_Applocker_Test.xml"} + delete "C:\Apps\Locker\Applocker.xml" +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BCDedit Hypervisor Command (24885).bes b/Sites/Windows Management/Fixlets/Fixlets/BCDedit Hypervisor Command (24885).bes index bdb0974a9..e6207afaf 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/BCDedit Hypervisor Command (24885).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/BCDedit Hypervisor Command (24885).bes @@ -1,52 +1,52 @@ - - - - - BCDedit Hypervisor Command - RUNS command

-

bcdedit /set hypervisorlaunchtype auto

-

 

-

For user on 64bit systems

-

EDIT: Please note that powershell is not required. instead you can use "waithidden" with the command to make this function. You however do still need to have the wow redirection for 64bit.

]]>
- true - Internal - 2018-01-12 - - x-fixlet-modification-time - Mon, 15 Jan 2018 19:24:21 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} -delete __createfile -createfile until END_OF_FILE - -cmd /c "bcdedit /set hypervisorlaunchtype auto" - - -END_OF_FILE - -delete tmvmstart.ps1 -move __createfile tmvmstart.ps1 - -override run -runas=agent -run { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -windowstyle hidden -File tmvmstart.ps1 - - -
-
+ + + + + BCDedit Hypervisor Command + RUNS command

+

bcdedit /set hypervisorlaunchtype auto

+

 

+

For user on 64bit systems

+

EDIT: Please note that powershell is not required. instead you can use "waithidden" with the command to make this function. You however do still need to have the wow redirection for 64bit.

]]>
+ true + Internal + 2018-01-12 + + x-fixlet-modification-time + Mon, 15 Jan 2018 19:24:21 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +delete __createfile +createfile until END_OF_FILE + +cmd /c "bcdedit /set hypervisorlaunchtype auto" + + +END_OF_FILE + +delete tmvmstart.ps1 +move __createfile tmvmstart.ps1 + +override run +runas=agent +run { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -windowstyle hidden -File tmvmstart.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard (6218).bes b/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard (6218).bes index 1f1f35ed8..cff08b059 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard (6218).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard (6218).bes @@ -1,153 +1,153 @@ - - - - - BigSpeak Audio Health Dashboard - BigSpeak Audio Health Dashboard

-

The BigSpeak Audio Health Dashboard enables Text To Speech (TTS) to notify operators of the current health status of their Bigfix environment.
This example only provides part of the ‘BES Relay Health’ section of the ‘Deployment Health Checks’ dashboard, However you could build out the rest of the dashboard, or utilize this example in a whole different way.

-

The Checks that this example will report on are:

-
    -

    -

  • Number of Clients Per BES Relay -
  • BES Relay Version -
  • BES Relay Service Stopped -
  • Download Folders -
  • BES Relay Free Disk Space -

-

Every hour (by default), the native windows TTS engine will inform you as follows:

-

"This is a Bigfix Audio Alert"

-
    -

    -

  • If all 5 health checks pass, you will hear, "The current Bigfix status is ALL CLEAR" -

    -

    -
  • If one or more of the 5 checks FAIL, you will hear a combination of the following: -

- - -

"The current Bigfix status for Number of Clients Per Relay is FAIL"
"The current Bigfix status for Relay Version is WARNING"
"The current Bigfix status for Relay Version is FAIL"
"The current Bigfix status for Relay Service Stopped is FAIL"
"The current Bigfix status for Download Folders is FAIL"
"The current Bigfix status for Relay Disk Space is FAIL"

-

There are two tasks which are needed:

-
    -

    -

  1. BigSpeakAudio Health Dashboard Scheduled Task Setup v1.0 -
  2. BigSpeak Audio Health Dashboard -

     

-

Initial Setup:

-

Note: This has only been tested on Windows 7.

-
    -

    -

  1. Copy the ‘IEM CLI’ folder from your Bigfix server to a location on your windows 7 machine. The default location is: C:\Program Files (x86)\BigFix Enterprise\BES Server\IEM CLI -

    -

    -
  2. Since this is the first time utilizing the IEM CLI, you will have to manually authenticate from the Windows 7 endpoint in order to trust the security certificate. -

    -
      -

      -

    1. From the windows command line browse to the iem.exe and type, "iem login" -
    2. You will have to provide your operator credentials, then it will ask you to trust the certificate.
-

Deploy: BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0

-
    -

    -

  1. On the ‘Description’ Tab, this task will ask for the following: -
      -
    1. The IEM Server Operator Name -
    2. The IEM Server Operator Password -
    3. The windows account name that will be used to execute the scheduled task -
    4. The windows account password that will be used to execute the scheduled task
    -

    -

    -
  2. Two action parameters will also ask for input: -
      -
    1. The path to the IEM Command Line -
    2. The IP Address or hostname of the Bigfix Reporting Server
    -

    -

    -
  3. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator
    -

    -

    -
  4. Upon completion, the scheduled task "BFAudio_HealthCheck" will have been created that will run every hour by default.
-

Deploy: BigSpeak Audio Health Dashboard (This Task)

-
    -

    -

  1. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator -
      -
    1. Note: Speakers must be turned on for this to work.
    -

-

NOTE: This task will run as a policy. It will become relevant when the file ‘bread.crumb’ exist which is created by the scheduled taks every hour.

]]>
- = "9.0"]]> - (name of operating system starts with "Win") - exist file "c:\BFAudio\Bread.Crumb" - IEM Maintenance - mike.english@us.ibm.com - 2015-09-29 - - x-fixlet-modification-time - Tue, 29 Sep 2015 11:14:57 +0000 - - BES - - - Click - here - to deploy this action. - - " of (following texts of firsts "" of (lines of files whose (last 3 of name of it = "txt") of folder "c:\BFAudio")))} - delete "C:\BFAudio\BFAudio.tts" - copy __appendfile "c:\BFAudio\BFAudio.tts" - delete "C:\BFAudio\Bread.Crumb" -endif - -delete __createfile -delete "c:\BFAudio\tts.vbs" -createfile until TTS -'tts.vbs -set t = CreateObject("SAPI.SpVoice") -t.Speak Wscript.Arguments(0), 3 -t.WaitUntilDone(4500) -TTS -move __createfile "c:\BFAudio\tts.vbs" - -if {exist file "c:\BFAudio\BFAudio.tts"} -wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "This is a bigfix audio alert" -//ALL CLEAR - if {not disjunction of (it contains ":WARN" OR it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} - wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status is,,all clear" - endif -//Number of Clients Per BES Relay - if {disjunction of (it contains "Number of Clients Per BES Relay" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} - wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Number of Clients Per Relay is,,FAIL" - endif -//BES Relay Version - if {disjunction of (it contains "BES Relay Version" AND it contains ":WARN") of lines of file "c:\BFAudio\bfaudio.tts"} - wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Versions is,,WARNING" - elseif {disjunction of (it contains "BES Relay Version" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} - wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Versions is,,FAIL" - endif -//BES Relay Service Stopped - if {disjunction of (it contains "BES Relay Service Stopped" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} - wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Service Stopped is,,FAIL" - endif -//Download Folders - if {disjunction of (it contains "Download Folders" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} - wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Download Folders is,,FAIL" - endif -//BES Relay Free Disk Space - if {disjunction of (it contains "BES Relay Free Disk Space" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} - wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Disk Space is,,FAIL" - endif - -endif]]> - -
-
+ + + + + BigSpeak Audio Health Dashboard + BigSpeak Audio Health Dashboard

+

The BigSpeak Audio Health Dashboard enables Text To Speech (TTS) to notify operators of the current health status of their Bigfix environment.
This example only provides part of the ‘BES Relay Health’ section of the ‘Deployment Health Checks’ dashboard, However you could build out the rest of the dashboard, or utilize this example in a whole different way.

+

The Checks that this example will report on are:

+
    +

    +

  • Number of Clients Per BES Relay +
  • BES Relay Version +
  • BES Relay Service Stopped +
  • Download Folders +
  • BES Relay Free Disk Space +

+

Every hour (by default), the native windows TTS engine will inform you as follows:

+

"This is a Bigfix Audio Alert"

+
    +

    +

  • If all 5 health checks pass, you will hear, "The current Bigfix status is ALL CLEAR" +

    +

    +
  • If one or more of the 5 checks FAIL, you will hear a combination of the following: +

+ + +

"The current Bigfix status for Number of Clients Per Relay is FAIL"
"The current Bigfix status for Relay Version is WARNING"
"The current Bigfix status for Relay Version is FAIL"
"The current Bigfix status for Relay Service Stopped is FAIL"
"The current Bigfix status for Download Folders is FAIL"
"The current Bigfix status for Relay Disk Space is FAIL"

+

There are two tasks which are needed:

+
    +

    +

  1. BigSpeakAudio Health Dashboard Scheduled Task Setup v1.0 +
  2. BigSpeak Audio Health Dashboard +

     

+

Initial Setup:

+

Note: This has only been tested on Windows 7.

+
    +

    +

  1. Copy the ‘IEM CLI’ folder from your Bigfix server to a location on your windows 7 machine. The default location is: C:\Program Files (x86)\BigFix Enterprise\BES Server\IEM CLI +

    +

    +
  2. Since this is the first time utilizing the IEM CLI, you will have to manually authenticate from the Windows 7 endpoint in order to trust the security certificate. +

    +
      +

      +

    1. From the windows command line browse to the iem.exe and type, "iem login" +
    2. You will have to provide your operator credentials, then it will ask you to trust the certificate.
+

Deploy: BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0

+
    +

    +

  1. On the ‘Description’ Tab, this task will ask for the following: +
      +
    1. The IEM Server Operator Name +
    2. The IEM Server Operator Password +
    3. The windows account name that will be used to execute the scheduled task +
    4. The windows account password that will be used to execute the scheduled task
    +

    +

    +
  2. Two action parameters will also ask for input: +
      +
    1. The path to the IEM Command Line +
    2. The IP Address or hostname of the Bigfix Reporting Server
    +

    +

    +
  3. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator
    +

    +

    +
  4. Upon completion, the scheduled task "BFAudio_HealthCheck" will have been created that will run every hour by default.
+

Deploy: BigSpeak Audio Health Dashboard (This Task)

+
    +

    +

  1. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator +
      +
    1. Note: Speakers must be turned on for this to work.
    +

+

NOTE: This task will run as a policy. It will become relevant when the file ‘bread.crumb’ exist which is created by the scheduled taks every hour.

]]>
+ = "9.0"]]> + (name of operating system starts with "Win") + exist file "c:\BFAudio\Bread.Crumb" + IEM Maintenance + mike.english@us.ibm.com + 2015-09-29 + + x-fixlet-modification-time + Tue, 29 Sep 2015 11:14:57 +0000 + + BES + + + Click + here + to deploy this action. + + " of (following texts of firsts "" of (lines of files whose (last 3 of name of it = "txt") of folder "c:\BFAudio")))} + delete "C:\BFAudio\BFAudio.tts" + copy __appendfile "c:\BFAudio\BFAudio.tts" + delete "C:\BFAudio\Bread.Crumb" +endif + +delete __createfile +delete "c:\BFAudio\tts.vbs" +createfile until TTS +'tts.vbs +set t = CreateObject("SAPI.SpVoice") +t.Speak Wscript.Arguments(0), 3 +t.WaitUntilDone(4500) +TTS +move __createfile "c:\BFAudio\tts.vbs" + +if {exist file "c:\BFAudio\BFAudio.tts"} +wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "This is a bigfix audio alert" +//ALL CLEAR + if {not disjunction of (it contains ":WARN" OR it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status is,,all clear" + endif +//Number of Clients Per BES Relay + if {disjunction of (it contains "Number of Clients Per BES Relay" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Number of Clients Per Relay is,,FAIL" + endif +//BES Relay Version + if {disjunction of (it contains "BES Relay Version" AND it contains ":WARN") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Versions is,,WARNING" + elseif {disjunction of (it contains "BES Relay Version" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Versions is,,FAIL" + endif +//BES Relay Service Stopped + if {disjunction of (it contains "BES Relay Service Stopped" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Service Stopped is,,FAIL" + endif +//Download Folders + if {disjunction of (it contains "Download Folders" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Download Folders is,,FAIL" + endif +//BES Relay Free Disk Space + if {disjunction of (it contains "BES Relay Free Disk Space" AND it contains ":FAIL") of lines of file "c:\BFAudio\bfaudio.tts"} + wait "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\CustomSite_BIGTWEET\RunAsCurrentUser.exe" --w --q cmd.exe /C cscript "c:\BFAudio\tts.vbs" "The current bigfix status for, Relay Disk Space is,,FAIL" + endif + +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (6217).bes b/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (6217).bes index 894ff353b..57dd0752d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (6217).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (6217).bes @@ -1,150 +1,150 @@ - - - - - BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 - Action Parameters:

-

  <<  Enter the IEM Server Operator Name
    <<  Enter the IEM Server Operator Password 
  <<  Enter the account name to run the scheduled task
    <<  Enter the account password to run the scheduled task

_____________________________________________________________________________________________________

-

BigSpeak Audio Health Dashboard

-

The BigSpeak Audio Health Dashboard enables Text To Speech (TTS) to notify operators of the current health status of their Bigfix environment.
This example only provides part of the ‘BES Relay Health’ section of the ‘Deployment Health Checks’ dashboard, However you could build out the rest of the dashboard, or utilize this example in a whole different way.

-

The Checks that this example will report on are:

-
    -

    -

  • Number of Clients Per BES Relay -
  • BES Relay Version -
  • BES Relay Service Stopped -
  • Download Folders -
  • BES Relay Free Disk Space -

-

Every hour (by default), the native windows TTS engine will inform you as follows:

-

"This is a Bigfix Audio Alert"

-
    -

    -

  • If all 5 health checks pass, you will hear, "The current Bigfix status is ALL CLEAR" -

    -

    -
  • If one or more of the 5 checks FAIL, you will hear a combination of the following: -

- - -

"The current Bigfix status for Number of Clients Per Relay is FAIL"
"The current Bigfix status for Relay Version is WARNING"
"The current Bigfix status for Relay Version is FAIL"
"The current Bigfix status for Relay Service Stopped is FAIL"
"The current Bigfix status for Download Folders is FAIL"
"The current Bigfix status for Relay Disk Space is FAIL"

-

There are two tasks which are needed:

-
    -

    -

  1. BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (This TASK) -
  2. BigSpeak Audio Health Dashboard
-

Initial Setup:

-

Note: This has only been tested on Windows 7.

-
    -

    -

  1. Copy the ‘IEM CLI’ folder from your Bigfix server to a location on your windows 7 machine. The default location is: C:\Program Files (x86)\BigFix Enterprise\BES Server\IEM CLI -

    -

    -
  2. Since this is the first time utilizing the IEM CLI, you will have to manually authenticate from the Windows 7 endpoint in order to trust the security certificate. -

    -
      -

      -

    1. From the windows command line browse to the iem.exe and type, "iem login" -
    2. You will have to provide your operator credentials, then it will ask you to trust the certificate.
-

Deploy: BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0

-
    -

    -

  1. On the ‘Description’ Tab, this task will ask for the following: -
      -
    1. The IEM Server Operator Name -
    2. The IEM Server Operator Password -
    3. The windows account name that will be used to execute the scheduled task -
    4. The windows account password that will be used to execute the scheduled task
    -

    -

    -
  2. Two action parameters will also ask for input: -
      -
    1. The path to the IEM Command Line -
    2. The IP Address or hostname of the Bigfix Reporting Server
    -

    -

    -
  3. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator
    -

    -

    -
  4. Upon completion, the scheduled task "BFAudio_HealthCheck" will have been created that will run every hour by default.
-

Deploy: BigSpeak Audio Health Dashboard

-
    -

    -

  1. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator -
      -
    1. Note: Speakers must be turned on for this to work.
]]>
- = "9.0"]]> - (name of operating system starts with "Win") - IEM Maintenance - mike.english@us.ibm.com - 2015-09-29 - - x-fixlet-modification-time - Tue, 29 Sep 2015 11:16:36 +0000 - - BES - - - Click - here - to deploy this action. - - 1000) of (values of results of bes property ""relay""))) >= 1)) then (""Number of Clients Per BES Relay:PASS"") else (""Number of Clients Per BES Relay:FAIL"")" >> "c:\BFAudio\NumberOfClients.txt" -//BES Relay Version -appendfile {parameter "IEMCLI" of action} get query --relevance "(if (it contains ""'+ txFailed +'"") then ""BES Relay Version:FAIL"" else if (it contains ""'+ txWarning +'"") then ""BES Relay Version:WARN"" else ""BES Relay Version:PASS"") of concatenation of ( if ((preceding text of last ""."" of preceding text of last ""."" of item 0 of it) = (preceding text of last ""."" of preceding text of last ""."" of value of item 1 of it)) then (""' + txPassed + '"") else (""'+ txWarning +'"") ) of ((preceding text of first "","" of ((concatenation "","" of (values whose (it != ""Not Installed"") of results of BES Property ""BES Server Version"")) & "","")) , results whose (value of it != ""Not Installed"") of BES Property ""BES Relay Version"")" >> "c:\BFAudio\RelayVersion.txt" -//BES Relay Service Stopped -appendfile {parameter "IEMCLI" of action} get query --relevance "(if (not exists results whose (value of it as lowercase contains ""yes - stopped"") of bes property ""BES Relay Service Installed"") then (""BES Relay Service Stopped:PASS"") else (""BES Relay Service Stopped:FAIL""))" >> "c:\BFAudio\ServiceStopped.txt" -//Download Folders -appendfile {parameter "IEMCLI" of action} get query --relevance "if (not (applicable computer count of BES Fixlets whose (name of site of it = ""BES Support"" and id of it = 535 ) > 0)) then (""Download Folders:PASS"") else (""Download Folders:FAIL"")" >> "c:\BFAudio\DownloadFolders.txt" -//BES Relay Free Disk Space -appendfile {parameter "IEMCLI" of action} get query --relevance "if (exist preceding texts whose (it as integer < 500) of firsts "" "" of values of results whose (exists value of it) of bes properties whose (name of it = ""BES Health Checks::BES Relay Free Disk Space"")) then ""BES Relay Free Disk Space:FAIL"" else if (exist preceding texts whose (it as integer < 1000) of firsts "" "" of values of results of bes properties whose (name of it = ""BES Health Checks::BES Relay Free Disk Space"")) then ""BES Relay Free Disk Space:WARN"" else ""BES Relay Free Disk Space:PASS""" >> "c:\BFAudio\RelayDiskSpace.txt" - -//breadcrumb -appendfile copy nul > "c:\BFAudio\bread.crumb" - -delete "c:\BFAudio\bfaudio.bat" -copy __appendfile "c:\BFAudio\bfaudio.bat" - -//Create Scheduled Task -dos schtasks /create /sc hourly /mo 1 /tn "BFAudio_HealthCheck" /tr "c:\BFAudio\bfaudio.bat" /ru {parameter "TaskAdmin" of action} /rp {parameter "TaskPass" of action}]]> - -
-
+ + + + + BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 + Action Parameters:

+

  <<  Enter the IEM Server Operator Name
    <<  Enter the IEM Server Operator Password 
  <<  Enter the account name to run the scheduled task
    <<  Enter the account password to run the scheduled task

_____________________________________________________________________________________________________

+

BigSpeak Audio Health Dashboard

+

The BigSpeak Audio Health Dashboard enables Text To Speech (TTS) to notify operators of the current health status of their Bigfix environment.
This example only provides part of the ‘BES Relay Health’ section of the ‘Deployment Health Checks’ dashboard, However you could build out the rest of the dashboard, or utilize this example in a whole different way.

+

The Checks that this example will report on are:

+
    +

    +

  • Number of Clients Per BES Relay +
  • BES Relay Version +
  • BES Relay Service Stopped +
  • Download Folders +
  • BES Relay Free Disk Space +

+

Every hour (by default), the native windows TTS engine will inform you as follows:

+

"This is a Bigfix Audio Alert"

+
    +

    +

  • If all 5 health checks pass, you will hear, "The current Bigfix status is ALL CLEAR" +

    +

    +
  • If one or more of the 5 checks FAIL, you will hear a combination of the following: +

+ + +

"The current Bigfix status for Number of Clients Per Relay is FAIL"
"The current Bigfix status for Relay Version is WARNING"
"The current Bigfix status for Relay Version is FAIL"
"The current Bigfix status for Relay Service Stopped is FAIL"
"The current Bigfix status for Download Folders is FAIL"
"The current Bigfix status for Relay Disk Space is FAIL"

+

There are two tasks which are needed:

+
    +

    +

  1. BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0 (This TASK) +
  2. BigSpeak Audio Health Dashboard
+

Initial Setup:

+

Note: This has only been tested on Windows 7.

+
    +

    +

  1. Copy the ‘IEM CLI’ folder from your Bigfix server to a location on your windows 7 machine. The default location is: C:\Program Files (x86)\BigFix Enterprise\BES Server\IEM CLI +

    +

    +
  2. Since this is the first time utilizing the IEM CLI, you will have to manually authenticate from the Windows 7 endpoint in order to trust the security certificate. +

    +
      +

      +

    1. From the windows command line browse to the iem.exe and type, "iem login" +
    2. You will have to provide your operator credentials, then it will ask you to trust the certificate.
+

Deploy: BigSpeak Audio Health Dashboard Scheduled Task Setup v1.0

+
    +

    +

  1. On the ‘Description’ Tab, this task will ask for the following: +
      +
    1. The IEM Server Operator Name +
    2. The IEM Server Operator Password +
    3. The windows account name that will be used to execute the scheduled task +
    4. The windows account password that will be used to execute the scheduled task
    +

    +

    +
  2. Two action parameters will also ask for input: +
      +
    1. The path to the IEM Command Line +
    2. The IP Address or hostname of the Bigfix Reporting Server
    +

    +

    +
  3. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator
    +

    +

    +
  4. Upon completion, the scheduled task "BFAudio_HealthCheck" will have been created that will run every hour by default.
+

Deploy: BigSpeak Audio Health Dashboard

+
    +

    +

  1. Target the Windows 7 endpoint(s) that will be using TTS to notify the operator +
      +
    1. Note: Speakers must be turned on for this to work.
]]>
+ = "9.0"]]> + (name of operating system starts with "Win") + IEM Maintenance + mike.english@us.ibm.com + 2015-09-29 + + x-fixlet-modification-time + Tue, 29 Sep 2015 11:16:36 +0000 + + BES + + + Click + here + to deploy this action. + + 1000) of (values of results of bes property ""relay""))) >= 1)) then (""Number of Clients Per BES Relay:PASS"") else (""Number of Clients Per BES Relay:FAIL"")" >> "c:\BFAudio\NumberOfClients.txt" +//BES Relay Version +appendfile {parameter "IEMCLI" of action} get query --relevance "(if (it contains ""'+ txFailed +'"") then ""BES Relay Version:FAIL"" else if (it contains ""'+ txWarning +'"") then ""BES Relay Version:WARN"" else ""BES Relay Version:PASS"") of concatenation of ( if ((preceding text of last ""."" of preceding text of last ""."" of item 0 of it) = (preceding text of last ""."" of preceding text of last ""."" of value of item 1 of it)) then (""' + txPassed + '"") else (""'+ txWarning +'"") ) of ((preceding text of first "","" of ((concatenation "","" of (values whose (it != ""Not Installed"") of results of BES Property ""BES Server Version"")) & "","")) , results whose (value of it != ""Not Installed"") of BES Property ""BES Relay Version"")" >> "c:\BFAudio\RelayVersion.txt" +//BES Relay Service Stopped +appendfile {parameter "IEMCLI" of action} get query --relevance "(if (not exists results whose (value of it as lowercase contains ""yes - stopped"") of bes property ""BES Relay Service Installed"") then (""BES Relay Service Stopped:PASS"") else (""BES Relay Service Stopped:FAIL""))" >> "c:\BFAudio\ServiceStopped.txt" +//Download Folders +appendfile {parameter "IEMCLI" of action} get query --relevance "if (not (applicable computer count of BES Fixlets whose (name of site of it = ""BES Support"" and id of it = 535 ) > 0)) then (""Download Folders:PASS"") else (""Download Folders:FAIL"")" >> "c:\BFAudio\DownloadFolders.txt" +//BES Relay Free Disk Space +appendfile {parameter "IEMCLI" of action} get query --relevance "if (exist preceding texts whose (it as integer < 500) of firsts "" "" of values of results whose (exists value of it) of bes properties whose (name of it = ""BES Health Checks::BES Relay Free Disk Space"")) then ""BES Relay Free Disk Space:FAIL"" else if (exist preceding texts whose (it as integer < 1000) of firsts "" "" of values of results of bes properties whose (name of it = ""BES Health Checks::BES Relay Free Disk Space"")) then ""BES Relay Free Disk Space:WARN"" else ""BES Relay Free Disk Space:PASS""" >> "c:\BFAudio\RelayDiskSpace.txt" + +//breadcrumb +appendfile copy nul > "c:\BFAudio\bread.crumb" + +delete "c:\BFAudio\bfaudio.bat" +copy __appendfile "c:\BFAudio\bfaudio.bat" + +//Create Scheduled Task +dos schtasks /create /sc hourly /mo 1 /tn "BFAudio_HealthCheck" /tr "c:\BFAudio\bfaudio.bat" /ru {parameter "TaskAdmin" of action} /rp {parameter "TaskPass" of action}]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BigTweet Scheduled Task Setup v2.1 (6113).bes b/Sites/Windows Management/Fixlets/Fixlets/BigTweet Scheduled Task Setup v2.1 (6113).bes index 49a21fab9..542b0116d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/BigTweet Scheduled Task Setup v2.1 (6113).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/BigTweet Scheduled Task Setup v2.1 (6113).bes @@ -1,95 +1,95 @@ - - - - - BigTweet Scheduled Task Setup v2.1 - Action Parameters:

-

  <<  Enter the IEM Server Operator Name
    <<  Enter the IEM Server Operator Password 
  <<  Enter the account name to run the scheduled task
    <<  Enter the account password to run the scheduled task

_____________________________________________________________________________________________________

-

BigTweet

-

This requires two tasks. 1)BigTweet Scheduled Task Setup v2.1 & 2)BigTweet v2.1

-

BigTweet allows you to interface with Twitter and their free highly scalable SMS system for notifications.

-

This example will use a BigFix Rest API Query within a scheduled task to report on the number of fixlets that are relevant in a specific site. If relevant fixlets are found, it will send a tweet (using twt) which will notify you via text messaging.

-

Setup:

-
    -

    -

  • Twitter SMS Relay Account -
      -
    • Create a Twitter Account used for relaying SMS (example @BigTweet111) -
    • Under Account Settings, set ‘Tweet privacy’ to ‘Protect my Tweets’ -

    -

    -
  • BigFix Server - -

    -
  • TWT -
      -
    • Download twt https://code.google.com/p/twt/ -
    • Extract binary and xml configuration file to ‘c:\BigTweet’ -
    • Configure OAUTH against your Twitter SMS Relay Account using command twt –config -

    -

    -
  • Twitter Follow Accounts -
      -
    • In order to receive these Twitter SMS Notifications, users must follow the Twitter SMS Relay Account and turn on Mobile Notifications for this user.
-

Note: By Default, this is scheduled to run once every hour. 

]]>
- exists main gather service - = "9.0"]]> - (name of operating system starts with "Win") - IEM Maintenance - mike.english@us.ibm.com - 2015-06-24 - - x-fixlet-modification-time - Wed, 24 Jun 2015 17:01:55 +0000 - - BES - - - Click - here - to deploy this action. - - 0)))" > "C:\BigTweet\alert.xml" - -delete "c:\BigTweet\bigtweet.bat" -copy __appendfile "c:\BigTweet\bigtweet.bat" - -//Create Scheduled Task -dos schtasks /create /sc hourly /mo 1 /tn "BigTweet_{parameter "sitename" of action}" /tr "c:\BigTweet\bigtweet.bat" /ru {parameter "TaskAdmin" of action} /rp {parameter "TaskPass" of action}]]> - -
-
+ + + + + BigTweet Scheduled Task Setup v2.1 + Action Parameters:

+

  <<  Enter the IEM Server Operator Name
    <<  Enter the IEM Server Operator Password 
  <<  Enter the account name to run the scheduled task
    <<  Enter the account password to run the scheduled task

_____________________________________________________________________________________________________

+

BigTweet

+

This requires two tasks. 1)BigTweet Scheduled Task Setup v2.1 & 2)BigTweet v2.1

+

BigTweet allows you to interface with Twitter and their free highly scalable SMS system for notifications.

+

This example will use a BigFix Rest API Query within a scheduled task to report on the number of fixlets that are relevant in a specific site. If relevant fixlets are found, it will send a tweet (using twt) which will notify you via text messaging.

+

Setup:

+
    +

    +

  • Twitter SMS Relay Account +
      +
    • Create a Twitter Account used for relaying SMS (example @BigTweet111) +
    • Under Account Settings, set ‘Tweet privacy’ to ‘Protect my Tweets’ +

    +

    +
  • BigFix Server + +

    +
  • TWT +
      +
    • Download twt https://code.google.com/p/twt/ +
    • Extract binary and xml configuration file to ‘c:\BigTweet’ +
    • Configure OAUTH against your Twitter SMS Relay Account using command twt –config +

    +

    +
  • Twitter Follow Accounts +
      +
    • In order to receive these Twitter SMS Notifications, users must follow the Twitter SMS Relay Account and turn on Mobile Notifications for this user.
+

Note: By Default, this is scheduled to run once every hour. 

]]>
+ exists main gather service + = "9.0"]]> + (name of operating system starts with "Win") + IEM Maintenance + mike.english@us.ibm.com + 2015-06-24 + + x-fixlet-modification-time + Wed, 24 Jun 2015 17:01:55 +0000 + + BES + + + Click + here + to deploy this action. + + 0)))" > "C:\BigTweet\alert.xml" + +delete "c:\BigTweet\bigtweet.bat" +copy __appendfile "c:\BigTweet\bigtweet.bat" + +//Create Scheduled Task +dos schtasks /create /sc hourly /mo 1 /tn "BigTweet_{parameter "sitename" of action}" /tr "c:\BigTweet\bigtweet.bat" /ru {parameter "TaskAdmin" of action} /rp {parameter "TaskPass" of action}]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/BigTweet v2.1 (6112).bes b/Sites/Windows Management/Fixlets/Fixlets/BigTweet v2.1 (6112).bes index 98ba96063..9a4711d63 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/BigTweet v2.1 (6112).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/BigTweet v2.1 (6112).bes @@ -1,92 +1,92 @@ - - - - - BigTweet v2.1 - BigTweet

-

This requires two tasks. 1)BigTweet Scheduled Task Setup v2.1 & 2)BigTweet v2.1

-

BigTweet allows you to interface with Twitter and their free highly scalable SMS system for notifications.

-

This example will use a BigFix Rest API Query within a scheduled task to report on the number of fixlets that are relevant in a specific site. If relevant fixlets are found, it will send a tweet (using twt) which will notify you via text messaging.

-

Setup:

-
    -

    -

  • Twitter SMS Relay Account -
      -
    • Create a Twitter Account used for relaying SMS (example @BigTweet111) -
    • Under Account Settings, set ‘Tweet privacy’ to ‘Protect my Tweets’ -

    -

    -
  • BigFix Server - -

    -
  • TWT -
      -
    • Download twt https://code.google.com/p/twt/ -
    • Extract binary and xml configuration file to ‘c:\BigTweet’ -
    • Configure OAUTH against your Twitter SMS Relay Account using command twt –config -

    -

    -
  • Twitter Follow Accounts -
      -
    • In order to receive these Twitter SMS Notifications, users must follow the Twitter SMS Relay Account and turn on Mobile Notifications for this user.
-

Note: By Default, the is scheduled to run once every hour. 

]]>
- exists main gather service - = "9.0"]]> - (name of operating system starts with "Win") - exist file "c:\BigTweet\alert.xml" - IEM Maintenance - mike.english@us.ibm.com - 2015-06-24 - - x-fixlet-modification-time - Wed, 24 Jun 2015 17:03:52 +0000 - - BES - - - Click - here - to deploy this action. - - " of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") = "0"} - wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} No applicable endpoints to fixlets in site {parameter "sitename" of action} - - //answer is greater than previous - elseif {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") > ((value of setting "BIGTWEET_Enterprise Security" of client) | "0")} - wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} {((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string)} applicable endpoints to fixlets in site {parameter "sitename" of action}. An increase of {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") as integer - ((value of setting "BIGTWEET_Enterprise Security" of client) | "0") as integer} - - //answer is less than than previous - elseif {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") < ((value of setting "BIGTWEET_Enterprise Security" of client) | "0")} - wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} {((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string)} applicable endpoints to fixlets in site {parameter "sitename" of action}. A decrease of {((value of setting "BIGTWEET_Enterprise Security" of client) | "0") as integer - (((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") as integer} - - //answer is = to previous - elseif {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") = ((value of setting "BIGTWEET_Enterprise Security" of client) | "0")} - wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} {((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string)} applicable endpoints to fixlets in site {parameter "sitename" of action}. No change from last check. - - endif - -setting "BIGTWEET_{parameter "sitename" of action}"="{((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0"}" on "{now}" for client - -delete "c:\BigTweet\alert.xml" - -endif]]> - -
-
+ + + + + BigTweet v2.1 + BigTweet

+

This requires two tasks. 1)BigTweet Scheduled Task Setup v2.1 & 2)BigTweet v2.1

+

BigTweet allows you to interface with Twitter and their free highly scalable SMS system for notifications.

+

This example will use a BigFix Rest API Query within a scheduled task to report on the number of fixlets that are relevant in a specific site. If relevant fixlets are found, it will send a tweet (using twt) which will notify you via text messaging.

+

Setup:

+
    +

    +

  • Twitter SMS Relay Account +
      +
    • Create a Twitter Account used for relaying SMS (example @BigTweet111) +
    • Under Account Settings, set ‘Tweet privacy’ to ‘Protect my Tweets’ +

    +

    +
  • BigFix Server + +

    +
  • TWT +
      +
    • Download twt https://code.google.com/p/twt/ +
    • Extract binary and xml configuration file to ‘c:\BigTweet’ +
    • Configure OAUTH against your Twitter SMS Relay Account using command twt –config +

    +

    +
  • Twitter Follow Accounts +
      +
    • In order to receive these Twitter SMS Notifications, users must follow the Twitter SMS Relay Account and turn on Mobile Notifications for this user.
+

Note: By Default, the is scheduled to run once every hour. 

]]>
+ exists main gather service + = "9.0"]]> + (name of operating system starts with "Win") + exist file "c:\BigTweet\alert.xml" + IEM Maintenance + mike.english@us.ibm.com + 2015-06-24 + + x-fixlet-modification-time + Wed, 24 Jun 2015 17:03:52 +0000 + + BES + + + Click + here + to deploy this action. + + " of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") = "0"} + wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} No applicable endpoints to fixlets in site {parameter "sitename" of action} + + //answer is greater than previous + elseif {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") > ((value of setting "BIGTWEET_Enterprise Security" of client) | "0")} + wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} {((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string)} applicable endpoints to fixlets in site {parameter "sitename" of action}. An increase of {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") as integer - ((value of setting "BIGTWEET_Enterprise Security" of client) | "0") as integer} + + //answer is less than than previous + elseif {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") < ((value of setting "BIGTWEET_Enterprise Security" of client) | "0")} + wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} {((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string)} applicable endpoints to fixlets in site {parameter "sitename" of action}. A decrease of {((value of setting "BIGTWEET_Enterprise Security" of client) | "0") as integer - (((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") as integer} + + //answer is = to previous + elseif {(((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0") = ((value of setting "BIGTWEET_Enterprise Security" of client) | "0")} + wait cmd.exe /C "c:\BigTweet\twt.exe" -q {now} {((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string)} applicable endpoints to fixlets in site {parameter "sitename" of action}. No change from last check. + + endif + +setting "BIGTWEET_{parameter "sitename" of action}"="{((following text of first "integer%22>" of (preceding texts of firsts "" of lines of file "c:\bigtweet\alert.xml")) as string) | "0"}" on "{now}" for client + +delete "c:\BigTweet\alert.xml" + +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Block KB 3114717 - MS Office Issues - Windows (9143).bes b/Sites/Windows Management/Fixlets/Fixlets/Block KB 3114717 - MS Office Issues - Windows (9143).bes index 0926c0f9f..277a34f0a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Block KB 3114717 - MS Office Issues - Windows (9143).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Block KB 3114717 - MS Office Issues - Windows (9143).bes @@ -1,75 +1,75 @@ - - - - - Block KB 3114717 - MS Office Issues - Windows - BETA. I'm not sure how to write relevance to get this to only be applied when it should, or how to confirm it applied properly. It also seems like it will only successfully block an update that is not installed, but known.

-

 

]]>
- windows of operating system - not exists keys whose(exists values "DisplayName" whose(it as string as lowercase contains "kb3114717" AND it as string as lowercase contains "32-bit") of it) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x64 registries;x32 registries) - Internal - 2016-02-12 - - x-fixlet-modification-time - Sat, 13 Feb 2016 01:40:35 +0000 - - BESC - - - Click - here - to deploy this action. - - __Download\HideWindowsUpdate_3114717.log -]]> - -
-
+ + + + + Block KB 3114717 - MS Office Issues - Windows + BETA. I'm not sure how to write relevance to get this to only be applied when it should, or how to confirm it applied properly. It also seems like it will only successfully block an update that is not installed, but known.

+

 

]]>
+ windows of operating system + not exists keys whose(exists values "DisplayName" whose(it as string as lowercase contains "kb3114717" AND it as string as lowercase contains "32-bit") of it) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x64 registries;x32 registries) + Internal + 2016-02-12 + + x-fixlet-modification-time + Sat, 13 Feb 2016 01:40:35 +0000 + + BESC + + + Click + here + to deploy this action. + + __Download\HideWindowsUpdate_3114717.log +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Block Regsvr32 in Windows Firewall (20257).bes b/Sites/Windows Management/Fixlets/Fixlets/Block Regsvr32 in Windows Firewall (20257).bes index 21bc61a88..a67a6be44 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Block Regsvr32 in Windows Firewall (20257).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Block Regsvr32 in Windows Firewall (20257).bes @@ -1,58 +1,58 @@ - - - - - Block Regsvr32 in Windows Firewall -

This task enforces a winodws firewall filter to disable Regsvr32 from connecting to remote locations.

Note: The task is released in https://bigfix.me/, which is not an official release channel of IBM BigFix. We highly suggest testing the content before deploying to production. Use of the content is done at the user's own risk and the user will be solely responsible for any damage to any computer system or loss of data that results from use of the content.

Warning: This fixlet will enable the windows firewall and add necessary rule to block outbound connection for Regsvr32.exe

-]]>
- name of operating system as lowercase starts with "win" - not exists values whose(it as string as lowercase contains "block regsvr32") of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules" of native registry - Unspecified - Unspecified - 2016-04-27 - Unspecified - Unspecified - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to block Regsvr32.exe in firewall - - - - - - Click - here - to view the blog about the exploit - - http://subt0x10.blogspot.sg/2016/04/bypass-application-whitelisting-script.html - -
-
+ + + + + Block Regsvr32 in Windows Firewall +

This task enforces a winodws firewall filter to disable Regsvr32 from connecting to remote locations.

Note: The task is released in https://bigfix.me/, which is not an official release channel of IBM BigFix. We highly suggest testing the content before deploying to production. Use of the content is done at the user's own risk and the user will be solely responsible for any damage to any computer system or loss of data that results from use of the content.

Warning: This fixlet will enable the windows firewall and add necessary rule to block outbound connection for Regsvr32.exe

+]]>
+ name of operating system as lowercase starts with "win" + not exists values whose(it as string as lowercase contains "block regsvr32") of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules" of native registry + Unspecified + Unspecified + 2016-04-27 + Unspecified + Unspecified + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to block Regsvr32.exe in firewall + + + + + + Click + here + to view the blog about the exploit + + http://subt0x10.blogspot.sg/2016/04/bypass-application-whitelisting-script.html + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Activate Workaround_ Disable ActiveX Download (26876).bes b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Activate Workaround_ Disable ActiveX Download (26876).bes index ce4869d04..f6d843a00 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Activate Workaround_ Disable ActiveX Download (26876).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Activate Workaround_ Disable ActiveX Download (26876).bes @@ -1,61 +1,61 @@ - - - - - CVE-2021-40444: Activate Workaround: Disable ActiveX Download - Workaround for CVE-2021-40444 - windows of operating system - Product type of operating system = NT Workstation product type - if (not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" of native registry) then (true) else (4 != number of keys ("0"; "1"; "2"; "3") whose (exists value "1001" whose (it as string as integer = 3) of it and exists value "1004" whose (it as string as integer = 3) of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" of native registry) - Workaround - Trevor Norrey - 2021-09-08 - CVE-2021-40444 - - x-fixlet-modification-time - Sat, 11 Sep 2021 15:06:09 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -if x64 of operating system - -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001"=dword:00000003 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004"=dword:00000003 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001"=dword:00000003 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004"=dword:00000003 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001"=dword:00000003 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004"=dword:00000003 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001"=dword:00000003 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004"=dword:00000003 - -else - -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001"=dword:00000003 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004"=dword:00000003 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001"=dword:00000003 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004"=dword:00000003 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001"=dword:00000003 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004"=dword:00000003 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001"=dword:00000003 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004"=dword:00000003 - -endif - - - + + + + + CVE-2021-40444: Activate Workaround: Disable ActiveX Download + Workaround for CVE-2021-40444 + windows of operating system + Product type of operating system = NT Workstation product type + if (not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" of native registry) then (true) else (4 != number of keys ("0"; "1"; "2"; "3") whose (exists value "1001" whose (it as string as integer = 3) of it and exists value "1004" whose (it as string as integer = 3) of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" of native registry) + Workaround + Trevor Norrey + 2021-09-08 + CVE-2021-40444 + + x-fixlet-modification-time + Sat, 11 Sep 2021 15:06:09 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +if x64 of operating system + +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001"=dword:00000003 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004"=dword:00000003 + +else + +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001"=dword:00000003 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004"=dword:00000003 + +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Deactivate Workaround_ Disable ActiveX Download (26877).bes b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Deactivate Workaround_ Disable ActiveX Download (26877).bes index cb5bae270..6bd792df0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Deactivate Workaround_ Disable ActiveX Download (26877).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-40444_ Deactivate Workaround_ Disable ActiveX Download (26877).bes @@ -1,61 +1,61 @@ - - - - - CVE-2021-40444: Deactivate Workaround: Disable ActiveX Download - Deactivate the Workaround for CVE-2021-40444 - windows of operating system - Product type of operating system = NT Workstation product type - exists keys ("0"; "1"; "2"; "3") whose (exists value "1001" whose (it as string as integer = 3) of it or exists value "1004" whose (it as string as integer = 3) of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" of native registry - Workaround - Trevor Norrey - 2021-09-08 - CVE-2021-40444 - - x-fixlet-modification-time - Sat, 11 Sep 2021 15:04:44 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -if x64 of operating system - -regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001" -regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004" -regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001" -regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004" -regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001" -regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004" -regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001" -regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004" - -else - -regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001" -regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004" -regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001" -regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004" -regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001" -regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004" -regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001" -regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004" - -endif - - - + + + + + CVE-2021-40444: Deactivate Workaround: Disable ActiveX Download + Deactivate the Workaround for CVE-2021-40444 + windows of operating system + Product type of operating system = NT Workstation product type + exists keys ("0"; "1"; "2"; "3") whose (exists value "1001" whose (it as string as integer = 3) of it or exists value "1004" whose (it as string as integer = 3) of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" of native registry + Workaround + Trevor Norrey + 2021-09-08 + CVE-2021-40444 + + x-fixlet-modification-time + Sat, 11 Sep 2021 15:04:44 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +if x64 of operating system + +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001" +regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004" + +else + +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1001" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]" "1004" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1001" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]" "1004" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1001" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]" "1004" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1001" +regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]" "1004" + +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-44228 Log4j _ Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) (26898).bes b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-44228 Log4j _ Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) (26898).bes index df28218cc..2bcc7428e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-44228 Log4j _ Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) (26898).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/CVE-2021-44228 Log4j _ Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) (26898).bes @@ -1,67 +1,67 @@ - - - - - CVE-2021-44228 Log4j : Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228

-

Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default. In previous releases (>2.10) this behavior can be mitigated by setting system property "log4j2.formatMsgNoLookups" to "true" or by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class). Java 8u121 (see https://www.oracle.com/java/technologies/javase/8u121-relnotes.html) protects against remote code execution by defaulting "com.sun.jndi.rmi.object.trustURLCodebase" and "com.sun.jndi.cosnaming.object.trustURLCodebase" to "false".

-

While it is very much advised to update all affected applications to make use of the corrected Log4j 2.15.0 or higher; or update the individual application to configure log4j2.formatMsgNoLookups=true, there is at least some measure of attack surface reduction that can be performed system-wide by applying the value to the JAVA_TOOL_OPTIONS environment variable.

-

This method is limited, as any Java application may override the JAVA_TOOL_OPTIONS environment as part of its startup, but this Fixlet may provide some measure of improvement.  Additionaly these may only be effective with specific versions of Java or Log4j.

-

Guidance on these values is taken from

- -

This Fixlet applies the following Envrionment Variable values on Windows:

-
    -
  • JAVA_TOOL_OPTIONS = -Dlog4j.formatMsgNoLookups=true (preserving any existing entries)
  • -
  • JDK_JAVA_OPTIONS = -Dlog4j.formatMsgNoLookups=true (preserving any existing entries)
  • -
  • _JAVA_OPTIONS = -Dlog4j.formatMsgNoLookups=true (preserving any existing entries)
  • -
  • LOG4J_FORMAT_MSG_NO_LOOKUPS = true (overwriting any existing entry)
-


]]>
- windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) - not exists values "JAVA_TOOL_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string OR not exists values "JDK_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string OR not exists values "_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string OR not exists values "LOG4J_FORMAT_MSG_NO_LOOKUPS" whose (it as string = "true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string - Internal - 2021-12-13 - - x-fixlet-modification-time - Tue, 14 Dec 2021 17:50:17 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -if {not exists values "JAVA_TOOL_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} -waithidden cmd.exe /c "setx /M JAVA_TOOL_OPTIONS "-Dlog4j.formatMsgNoLookups=true {value "JAVA_TOOL_OPTIONS" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string | ""}"" -endif - -if {not exists values "JDK_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} -waithidden cmd.exe /c "setx /M JDK_JAVA_OPTIONS "-Dlog4j.formatMsgNoLookups=true {value "JDK_JAVA_OPTIONS" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string | ""}"" -endif - -if {not exists values "_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} -waithidden cmd.exe /c "setx /M _JAVA_OPTIONS "-Dlog4j.formatMsgNoLookups=true {value "_JAVA_OPTIONS" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string | ""}"" -endif - -if {not exists values "LOG4J_FORMAT_MSG_NO_LOOKUPS" whose (it as string = "true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} -waithidden cmd.exe /c "setx /M LOG4J_FORMAT_MSG_NO_LOOKUPS "true"" -endif - - -
-
+ + + + + CVE-2021-44228 Log4j : Add JAVA_TOOL_OPTIONS mitigation to Environment variables (Windows) + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228

+

Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default. In previous releases (>2.10) this behavior can be mitigated by setting system property "log4j2.formatMsgNoLookups" to "true" or by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class). Java 8u121 (see https://www.oracle.com/java/technologies/javase/8u121-relnotes.html) protects against remote code execution by defaulting "com.sun.jndi.rmi.object.trustURLCodebase" and "com.sun.jndi.cosnaming.object.trustURLCodebase" to "false".

+

While it is very much advised to update all affected applications to make use of the corrected Log4j 2.15.0 or higher; or update the individual application to configure log4j2.formatMsgNoLookups=true, there is at least some measure of attack surface reduction that can be performed system-wide by applying the value to the JAVA_TOOL_OPTIONS environment variable.

+

This method is limited, as any Java application may override the JAVA_TOOL_OPTIONS environment as part of its startup, but this Fixlet may provide some measure of improvement.  Additionaly these may only be effective with specific versions of Java or Log4j.

+

Guidance on these values is taken from

+ +

This Fixlet applies the following Envrionment Variable values on Windows:

+
    +
  • JAVA_TOOL_OPTIONS = -Dlog4j.formatMsgNoLookups=true (preserving any existing entries)
  • +
  • JDK_JAVA_OPTIONS = -Dlog4j.formatMsgNoLookups=true (preserving any existing entries)
  • +
  • _JAVA_OPTIONS = -Dlog4j.formatMsgNoLookups=true (preserving any existing entries)
  • +
  • LOG4J_FORMAT_MSG_NO_LOOKUPS = true (overwriting any existing entry)
+


]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + not exists values "JAVA_TOOL_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string OR not exists values "JDK_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string OR not exists values "_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string OR not exists values "LOG4J_FORMAT_MSG_NO_LOOKUPS" whose (it as string = "true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string + Internal + 2021-12-13 + + x-fixlet-modification-time + Tue, 14 Dec 2021 17:50:17 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +if {not exists values "JAVA_TOOL_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} +waithidden cmd.exe /c "setx /M JAVA_TOOL_OPTIONS "-Dlog4j.formatMsgNoLookups=true {value "JAVA_TOOL_OPTIONS" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string | ""}"" +endif + +if {not exists values "JDK_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} +waithidden cmd.exe /c "setx /M JDK_JAVA_OPTIONS "-Dlog4j.formatMsgNoLookups=true {value "JDK_JAVA_OPTIONS" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string | ""}"" +endif + +if {not exists values "_JAVA_OPTIONS" whose (it as string contains "-Dlog4j.formatMsgNoLookups=true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} +waithidden cmd.exe /c "setx /M _JAVA_OPTIONS "-Dlog4j.formatMsgNoLookups=true {value "_JAVA_OPTIONS" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string | ""}"" +endif + +if {not exists values "LOG4J_FORMAT_MSG_NO_LOOKUPS" whose (it as string = "true") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry as string} +waithidden cmd.exe /c "setx /M LOG4J_FORMAT_MSG_NO_LOOKUPS "true"" +endif + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change Built-in Administrator Password - Windows (9150).bes b/Sites/Windows Management/Fixlets/Fixlets/Change Built-in Administrator Password - Windows (9150).bes index 8a7805a93..c02e97eaf 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Change Built-in Administrator Password - Windows (9150).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Change Built-in Administrator Password - Windows (9150).bes @@ -1,46 +1,46 @@ - - - - - Change Built-in Administrator Password - Windows - - windows of operating system - 8 * day) of it)]]> - Internal - 2016-02-16 - - x-fixlet-modification-time - Tue, 16 Feb 2016 22:18:01 +0000 - - BESC - - - Click - here - to deploy this action. - - -// Related: https://bigfix.me/fixlet/details/3670 -// https://forum.bigfix.com/t/newer-actionscript-commands/11677 - -parameter "username" = "administrator" - -// http://www-01.ibm.com/support/knowledgecenter/SS63NW_9.2.0/com.ibm.tivoli.tem.doc_9.2/Platform/Action/c_action_log.html -action log command - -waithidden net user {parameter "username"} { sha256 of concatenation "" of (it as string) of ( (it / second) of uptime of operating system ; (it / second) of (now - ("01 Jan 1970 00:00:00" as universal time)) ) } - -continue if {exit code of action = 0} - - - - + + + + + Change Built-in Administrator Password - Windows + + windows of operating system + 8 * day) of it)]]> + Internal + 2016-02-16 + + x-fixlet-modification-time + Tue, 16 Feb 2016 22:18:01 +0000 + + BESC + + + Click + here + to deploy this action. + + +// Related: https://bigfix.me/fixlet/details/3670 +// https://forum.bigfix.com/t/newer-actionscript-commands/11677 + +parameter "username" = "administrator" + +// http://www-01.ibm.com/support/knowledgecenter/SS63NW_9.2.0/com.ibm.tivoli.tem.doc_9.2/Platform/Action/c_action_log.html +action log command + +waithidden net user {parameter "username"} { sha256 of concatenation "" of (it as string) of ( (it / second) of uptime of operating system ; (it / second) of (now - ("01 Jan 1970 00:00:00" as universal time)) ) } + +continue if {exit code of action = 0} + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change Internet Explorer Start Page if unchanged from default (3802).bes b/Sites/Windows Management/Fixlets/Fixlets/Change Internet Explorer Start Page if unchanged from default (3802).bes index a127ea69b..284305947 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Change Internet Explorer Start Page if unchanged from default (3802).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Change Internet Explorer Start Page if unchanged from default (3802).bes @@ -1,37 +1,37 @@ - - - - - Change Internet Explorer Start Page if unchanged from default - - exists current user AND (1 = number of logged on users) - - /* Windows Only */ windows of operating system - = "5.1"]]> - Internal - 2011-09-21 - - x-fixlet-modification-time - Tue, 01 Jul 2014 16:09:54 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - + + + + + Change Internet Explorer Start Page if unchanged from default + + exists current user AND (1 = number of logged on users) + + /* Windows Only */ windows of operating system + = "5.1"]]> + Internal + 2011-09-21 + + x-fixlet-modification-time + Tue, 01 Jul 2014 16:09:54 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change local user account password (27377).bes b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password (27377).bes index 328922a95..59c86e57d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Change local user account password (27377).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password (27377).bes @@ -1,104 +1,104 @@ - - - - - Change local user account password -

-
-

-

-

-
    -
  • -
-
-

-

-
-

-

-

Important Notes

-
    -
  • -
    You must enter a password in order to take an action
    -
  • -
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
-

This fixlet is based on the following post on bigfix.me:
https://bigfix.me/fixlet/details/3670

]]>
- windows of operating system - = "9.5"]]> - not exists service "NTDS" - Accounts - Internal - 2025-07-23 - - bigfixme-ID - 6076 - - - bigfixme-modification-time - Fri, 15 May 2015 06:54:17 GMT - - - bigfixme-added-time - Fri, 15 May 2015 06:54:17 GMT - - - bigfixme-keywords - password secure parameters verification - - - x-fixlet-modification-time - Wed, 23 Jul 2025 12:18:08 +0000 - - BESC - - - - Change - &nbsp;specified local&nbsp;user account password. - - action parameter query "username" with description "Please specify the name of an existing local user account" - -if {exists ((name of it as string as lowercase) of users) whose (it as string as lowercase contains parameter "username" of action)} - -waithidden "C:\Windows\System32\net.exe" user {parameter "username" of action} {parameter "secret" of action} - -continue if {exit code of action = 0} -else -exit 1 -endif - - - -
-
+ + + + + Change local user account password +

+
+

+

+

+
    +
  • +
+
+

+

+
+

+

+

Important Notes

+
    +
  • +
    You must enter a password in order to take an action
    +
  • +
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
+

This fixlet is based on the following post on bigfix.me:
https://bigfix.me/fixlet/details/3670

]]>
+ windows of operating system + = "9.5"]]> + not exists service "NTDS" + Accounts + Internal + 2025-07-23 + + bigfixme-ID + 6076 + + + bigfixme-modification-time + Fri, 15 May 2015 06:54:17 GMT + + + bigfixme-added-time + Fri, 15 May 2015 06:54:17 GMT + + + bigfixme-keywords + password secure parameters verification + + + x-fixlet-modification-time + Wed, 23 Jul 2025 12:18:08 +0000 + + BESC + + + + Change + &nbsp;specified local&nbsp;user account password. + + action parameter query "username" with description "Please specify the name of an existing local user account" + +if {exists ((name of it as string as lowercase) of users) whose (it as string as lowercase contains parameter "username" of action)} + +waithidden "C:\Windows\System32\net.exe" user {parameter "username" of action} {parameter "secret" of action} + +continue if {exit code of action = 0} +else +exit 1 +endif + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change local user account password - Windows (3670).bes b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password - Windows (3670).bes index f18fed34a..f4b319806 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Change local user account password - Windows (3670).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password - Windows (3670).bes @@ -1,69 +1,69 @@ - - - - - Change local user account password - Windows -

-
-

-

-

-
    -
  • -
-
-

-

-
-

-

Important Notes

-
    -
  • -
    You must enter a password in order to take an action
    -
  • -
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
]]>
- windows of operating system - = "9.0"]]> - Accounts - Internal - jbt8@psu.edu - 2013-05-03 - - x-fixlet-modification-time - Fri, 06 Dec 2013 11:16:20 +0000 - - BESC - - - - Change - &nbsp;specified local&nbsp;user account password. - - action parameter query "username" with description "Please specify the name of an existing local user account" - -waithidden "C:\Windows\System32\net.exe" user {parameter "username" of action} {parameter "secret" of action} - -continue if {exit code of action = 0} - - - -
-
+ + + + + Change local user account password - Windows +

+
+

+

+

+
    +
  • +
+
+

+

+
+

+

Important Notes

+
    +
  • +
    You must enter a password in order to take an action
    +
  • +
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
]]>
+ windows of operating system + = "9.0"]]> + Accounts + Internal + jbt8@psu.edu + 2013-05-03 + + x-fixlet-modification-time + Fri, 06 Dec 2013 11:16:20 +0000 + + BESC + + + + Change + &nbsp;specified local&nbsp;user account password. + + action parameter query "username" with description "Please specify the name of an existing local user account" + +waithidden "C:\Windows\System32\net.exe" user {parameter "username" of action} {parameter "secret" of action} + +continue if {exit code of action = 0} + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Change local user account password with verification - Windows (6076).bes b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password with verification - Windows (6076).bes index 4ceed7119..a6bc59b4f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Change local user account password with verification - Windows (6076).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Change local user account password with verification - Windows (6076).bes @@ -1,90 +1,90 @@ - - - - - Change local user account password with verification - Windows -

-
-

-

-

-
    -
  • -
-
-

-

-
-

-

Important Notes

-
    -
  • -
    You must enter a password in order to take an action
    -
  • -
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
]]>
- windows of operating system - = "9.0"]]> - Accounts - Internal - jbt8@psu.edu - 2013-05-03 - - x-fixlet-modification-time - Fri, 06 Dec 2013 11:16:20 +0000 - - - bigfixme-added-time - Fri, 06 Dec 2013 04:16:50 GMT - - - bigfixme-modification-time - Fri, 06 Dec 2013 04:16:50 GMT - - - bigfixme-keywords - user, net.exe, secure parameter, password - - BESC - - - - Change - &nbsp;specified local&nbsp;user account password. - - action parameter query "username" with description "Please specify the name of an existing local user account" - -waithidden "C:\Windows\System32\net.exe" user {parameter "username" of action} {parameter "secret" of action} - -continue if {exit code of action = 0} - - - - - - Click - here - to review this task in the bigfix.me Content Database. - - http://bigfix.me/cdb/fixlet/3670 - -
-
+ + + + + Change local user account password with verification - Windows +

+
+

+

+

+
    +
  • +
+
+

+

+
+

+

Important Notes

+
    +
  • +
    You must enter a password in order to take an action
    +
  • +
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
]]>
+ windows of operating system + = "9.0"]]> + Accounts + Internal + jbt8@psu.edu + 2013-05-03 + + x-fixlet-modification-time + Fri, 06 Dec 2013 11:16:20 +0000 + + + bigfixme-added-time + Fri, 06 Dec 2013 04:16:50 GMT + + + bigfixme-modification-time + Fri, 06 Dec 2013 04:16:50 GMT + + + bigfixme-keywords + user, net.exe, secure parameter, password + + BESC + + + + Change + &nbsp;specified local&nbsp;user account password. + + action parameter query "username" with description "Please specify the name of an existing local user account" + +waithidden "C:\Windows\System32\net.exe" user {parameter "username" of action} {parameter "secret" of action} + +continue if {exit code of action = 0} + + + + + + Click + here + to review this task in the bigfix.me Content Database. + + http://bigfix.me/cdb/fixlet/3670 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space (11930).bes b/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space (11930).bes index a70b53588..183aa0e0a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space (11930).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space (11930).bes @@ -1,57 +1,57 @@ - - - - - Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space - We've had repeated instances where a Windows 7 x64 client runs out of hard drive space, and found that C:\Windows\TEMP is being consumed with hundreds of files with names following the pattern "cab_XXXX_X", generally 100 MB each, and these files are constantly generated until the system runs out of space.  Upon removing the files & rebooting, the files start being generated again.

-


-

This appears to be caused by large Component-Based Servicing logs.  These are stored at C:\Windows\Logs\CBS.  The current log file is named "cbs.log".  When "cbs.log" reaches a certain size, a cleanup process renames the log to "CbsPersist_YYYYMMDDHHMMSS.log" and then attempts to compress it into a .cab file.

-


-

However, when the cbs.log reaches a size of 2 GB before that cleanup process compresses it, the file is to large to be handled by the makecab.exe utility.  The log file is renamed to CbsPersist_date_time.log, but when the makecab process attempts to compress it the process fails (but only after consuming some 100 MB under \Windows\Temp).  After this, the cleanup process runs repeatedly (approx every 20 minutes in my experience).  The process fails every time, and also consumes a new ~ 100 MB in \Windows\Temp before dying.  This is repeated until the system runs out of drive space.

-

 

-

This Action will remove the log files that are too large to be handled by makecab.exe.  Any \Windows\Logs\CBS\CbsPersist_XXX.log file larger than 1,000 MB is removed, as well as any cab_ files from C:\Windows\Temp.

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - = version "6"]]> - 1000) of folders "Logs\CBS" of windows folder]]> - Internal - 2015-08-26 - - x-fixlet-modification-time - Thu, 27 Aug 2015 16:21:44 +0000 - - BESC - - - Click - here - to clean up CBS logs. - - 1000) of folders "Logs\CBS" of windows folder} -appendfile {concatenation "%0d%0a" of ("del /q %22" & it & "%22") of pathnames of files whose (name of it as lowercase starts with "cab_" ) of folders "TEMP" of windows folder} -appendfile net start TrustedInstaller - -delete DeleteLog.cmd -move __appendfile DeleteLog.cmd -waithidden cmd /c DeleteLog.cmd > {pathname of windows folder}\TEMP\cbscleanup.txt 2>&1 - - -pause while {exists files whose (name of it as lowercase starts with "cbspersist" and name of it as lowercase ends with ".log" and size of it / 1024 / 1024 > 2100) of folders "Logs\CBS" of windows folder AND (now - active start time of action) < (2 * minute)} - -]]> - -
-
+ + + + + Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space + We've had repeated instances where a Windows 7 x64 client runs out of hard drive space, and found that C:\Windows\TEMP is being consumed with hundreds of files with names following the pattern "cab_XXXX_X", generally 100 MB each, and these files are constantly generated until the system runs out of space.  Upon removing the files & rebooting, the files start being generated again.

+


+

This appears to be caused by large Component-Based Servicing logs.  These are stored at C:\Windows\Logs\CBS.  The current log file is named "cbs.log".  When "cbs.log" reaches a certain size, a cleanup process renames the log to "CbsPersist_YYYYMMDDHHMMSS.log" and then attempts to compress it into a .cab file.

+


+

However, when the cbs.log reaches a size of 2 GB before that cleanup process compresses it, the file is to large to be handled by the makecab.exe utility.  The log file is renamed to CbsPersist_date_time.log, but when the makecab process attempts to compress it the process fails (but only after consuming some 100 MB under \Windows\Temp).  After this, the cleanup process runs repeatedly (approx every 20 minutes in my experience).  The process fails every time, and also consumes a new ~ 100 MB in \Windows\Temp before dying.  This is repeated until the system runs out of drive space.

+

 

+

This Action will remove the log files that are too large to be handled by makecab.exe.  Any \Windows\Logs\CBS\CbsPersist_XXX.log file larger than 1,000 MB is removed, as well as any cab_ files from C:\Windows\Temp.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = version "6"]]> + 1000) of folders "Logs\CBS" of windows folder]]> + Internal + 2015-08-26 + + x-fixlet-modification-time + Thu, 27 Aug 2015 16:21:44 +0000 + + BESC + + + Click + here + to clean up CBS logs. + + 1000) of folders "Logs\CBS" of windows folder} +appendfile {concatenation "%0d%0a" of ("del /q %22" & it & "%22") of pathnames of files whose (name of it as lowercase starts with "cab_" ) of folders "TEMP" of windows folder} +appendfile net start TrustedInstaller + +delete DeleteLog.cmd +move __appendfile DeleteLog.cmd +waithidden cmd /c DeleteLog.cmd > {pathname of windows folder}\TEMP\cbscleanup.txt 2>&1 + + +pause while {exists files whose (name of it as lowercase starts with "cbspersist" and name of it as lowercase ends with ".log" and size of it / 1024 / 1024 > 2100) of folders "Logs\CBS" of windows folder AND (now - active start time of action) < (2 * minute)} + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space.bes b/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space.bes index a70b53588..183aa0e0a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space.bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space.bes @@ -1,57 +1,57 @@ - - - - - Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space - We've had repeated instances where a Windows 7 x64 client runs out of hard drive space, and found that C:\Windows\TEMP is being consumed with hundreds of files with names following the pattern "cab_XXXX_X", generally 100 MB each, and these files are constantly generated until the system runs out of space.  Upon removing the files & rebooting, the files start being generated again.

-


-

This appears to be caused by large Component-Based Servicing logs.  These are stored at C:\Windows\Logs\CBS.  The current log file is named "cbs.log".  When "cbs.log" reaches a certain size, a cleanup process renames the log to "CbsPersist_YYYYMMDDHHMMSS.log" and then attempts to compress it into a .cab file.

-


-

However, when the cbs.log reaches a size of 2 GB before that cleanup process compresses it, the file is to large to be handled by the makecab.exe utility.  The log file is renamed to CbsPersist_date_time.log, but when the makecab process attempts to compress it the process fails (but only after consuming some 100 MB under \Windows\Temp).  After this, the cleanup process runs repeatedly (approx every 20 minutes in my experience).  The process fails every time, and also consumes a new ~ 100 MB in \Windows\Temp before dying.  This is repeated until the system runs out of drive space.

-

 

-

This Action will remove the log files that are too large to be handled by makecab.exe.  Any \Windows\Logs\CBS\CbsPersist_XXX.log file larger than 1,000 MB is removed, as well as any cab_ files from C:\Windows\Temp.

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - = version "6"]]> - 1000) of folders "Logs\CBS" of windows folder]]> - Internal - 2015-08-26 - - x-fixlet-modification-time - Thu, 27 Aug 2015 16:21:44 +0000 - - BESC - - - Click - here - to clean up CBS logs. - - 1000) of folders "Logs\CBS" of windows folder} -appendfile {concatenation "%0d%0a" of ("del /q %22" & it & "%22") of pathnames of files whose (name of it as lowercase starts with "cab_" ) of folders "TEMP" of windows folder} -appendfile net start TrustedInstaller - -delete DeleteLog.cmd -move __appendfile DeleteLog.cmd -waithidden cmd /c DeleteLog.cmd > {pathname of windows folder}\TEMP\cbscleanup.txt 2>&1 - - -pause while {exists files whose (name of it as lowercase starts with "cbspersist" and name of it as lowercase ends with ".log" and size of it / 1024 / 1024 > 2100) of folders "Logs\CBS" of windows folder AND (now - active start time of action) < (2 * minute)} - -]]> - -
-
+ + + + + Cleanup Component-Based Servicing (CBS) Logs - Too Large - system may run out of hard drive space + We've had repeated instances where a Windows 7 x64 client runs out of hard drive space, and found that C:\Windows\TEMP is being consumed with hundreds of files with names following the pattern "cab_XXXX_X", generally 100 MB each, and these files are constantly generated until the system runs out of space.  Upon removing the files & rebooting, the files start being generated again.

+


+

This appears to be caused by large Component-Based Servicing logs.  These are stored at C:\Windows\Logs\CBS.  The current log file is named "cbs.log".  When "cbs.log" reaches a certain size, a cleanup process renames the log to "CbsPersist_YYYYMMDDHHMMSS.log" and then attempts to compress it into a .cab file.

+


+

However, when the cbs.log reaches a size of 2 GB before that cleanup process compresses it, the file is to large to be handled by the makecab.exe utility.  The log file is renamed to CbsPersist_date_time.log, but when the makecab process attempts to compress it the process fails (but only after consuming some 100 MB under \Windows\Temp).  After this, the cleanup process runs repeatedly (approx every 20 minutes in my experience).  The process fails every time, and also consumes a new ~ 100 MB in \Windows\Temp before dying.  This is repeated until the system runs out of drive space.

+

 

+

This Action will remove the log files that are too large to be handled by makecab.exe.  Any \Windows\Logs\CBS\CbsPersist_XXX.log file larger than 1,000 MB is removed, as well as any cab_ files from C:\Windows\Temp.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = version "6"]]> + 1000) of folders "Logs\CBS" of windows folder]]> + Internal + 2015-08-26 + + x-fixlet-modification-time + Thu, 27 Aug 2015 16:21:44 +0000 + + BESC + + + Click + here + to clean up CBS logs. + + 1000) of folders "Logs\CBS" of windows folder} +appendfile {concatenation "%0d%0a" of ("del /q %22" & it & "%22") of pathnames of files whose (name of it as lowercase starts with "cab_" ) of folders "TEMP" of windows folder} +appendfile net start TrustedInstaller + +delete DeleteLog.cmd +move __appendfile DeleteLog.cmd +waithidden cmd /c DeleteLog.cmd > {pathname of windows folder}\TEMP\cbscleanup.txt 2>&1 + + +pause while {exists files whose (name of it as lowercase starts with "cbspersist" and name of it as lowercase ends with ".log" and size of it / 1024 / 1024 > 2100) of folders "Logs\CBS" of windows folder AND (now - active start time of action) < (2 * minute)} + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Close Magnify.exe - Windows (24573).bes b/Sites/Windows Management/Fixlets/Fixlets/Close Magnify.exe - Windows (24573).bes index 89bc5e1af..edc34f241 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Close Magnify.exe - Windows (24573).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Close Magnify.exe - Windows (24573).bes @@ -1,39 +1,39 @@ - - - - - Close Magnify.exe - Windows - - windows of operating system - exists processes "Magnify.exe" - Internal - 2017-06-18 - - x-fixlet-modification-time - Tue, 04 Jul 2017 18:39:21 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - + + + + + Close Magnify.exe - Windows + + windows of operating system + exists processes "Magnify.exe" + Internal + 2017-06-18 + + x-fixlet-modification-time + Tue, 04 Jul 2017 18:39:21 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Application Identity Service - Automatic Start - Windows (20699).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Application Identity Service - Automatic Start - Windows (20699).bes index f248882c1..e1a94a9ad 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Application Identity Service - Automatic Start - Windows (20699).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Application Identity Service - Automatic Start - Windows (20699).bes @@ -1,42 +1,42 @@ - - - - - Config - Applocker Application Identity Service - Automatic Start - Windows - Sets the Applocker Application Identity Service to automatically start

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - NOT in proxy agent context - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - start type of service "appidsvc" != "auto" - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait sc config AppIDSvc start= auto -wait net start AppIDSvc - -
-
+ + + + + Config - Applocker Application Identity Service - Automatic Start - Windows + Sets the Applocker Application Identity Service to automatically start

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + NOT in proxy agent context + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + start type of service "appidsvc" != "auto" + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait sc config AppIDSvc start= auto +wait net start AppIDSvc + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows (20591).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows (20591).bes index 4066fc3aa..1c685061d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows (20591).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows (20591).bes @@ -1,40 +1,40 @@ - - - - - Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows - Sets the maximum log size for the applocker AppX Deployment log to 20mb.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/Packaged app-Deployment" of native registry - Application Whitelisting - Internal - 2016-04-13 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait wevtutil.exe sl "Microsoft-Windows-AppLocker/Packaged app-Deployment" /ms:20971520 - -
-
+ + + + + Config - Applocker Log - AppX Deployment Max Size - 20mb - Windows + Sets the maximum log size for the applocker AppX Deployment log to 20mb.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/Packaged app-Deployment" of native registry + Application Whitelisting + Internal + 2016-04-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait wevtutil.exe sl "Microsoft-Windows-AppLocker/Packaged app-Deployment" /ms:20971520 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Execution Max Size - 20mb - Windows (20592).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Execution Max Size - 20mb - Windows (20592).bes index 7f86105f6..daf8d4bc4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Execution Max Size - 20mb - Windows (20592).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - AppX Execution Max Size - 20mb - Windows (20592).bes @@ -1,40 +1,40 @@ - - - - - Config - Applocker Log - AppX Execution Max Size - 20mb - Windows - Sets the maximum log size for the applocker AppX Execution log to 20mb

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/Packaged app-Deployment" of native registry - Application Whitelisting - Internal - 2016-04-13 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait wevtutil.exe sl "Microsoft-Windows-AppLocker/Packaged app-Execution" /ms:20971520 - -
-
+ + + + + Config - Applocker Log - AppX Execution Max Size - 20mb - Windows + Sets the maximum log size for the applocker AppX Execution log to 20mb

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/Packaged app-Deployment" of native registry + Application Whitelisting + Internal + 2016-04-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait wevtutil.exe sl "Microsoft-Windows-AppLocker/Packaged app-Execution" /ms:20971520 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - EXE_DLL Max Size - 20mb - Windows (20593).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - EXE_DLL Max Size - 20mb - Windows (20593).bes index d419e5d04..829787ca8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - EXE_DLL Max Size - 20mb - Windows (20593).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - EXE_DLL Max Size - 20mb - Windows (20593).bes @@ -1,40 +1,40 @@ - - - - - Config - Applocker Log - EXE/DLL Max Size - 20mb - Windows - Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/EXE and DLL" of native registry - Application Whitelisting - Internal - 2016-04-13 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait wevtutil.exe sl "Microsoft-Windows-AppLocker/EXE and DLL" /ms:20971520 - -
-
+ + + + + Config - Applocker Log - EXE/DLL Max Size - 20mb - Windows + Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/EXE and DLL" of native registry + Application Whitelisting + Internal + 2016-04-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait wevtutil.exe sl "Microsoft-Windows-AppLocker/EXE and DLL" /ms:20971520 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - MSI_Script Max Size - 20mb - Windows (20594).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - MSI_Script Max Size - 20mb - Windows (20594).bes index 11bd92328..9d5ca5cad 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - MSI_Script Max Size - 20mb - Windows (20594).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Log - MSI_Script Max Size - 20mb - Windows (20594).bes @@ -1,40 +1,40 @@ - - - - - Config - Applocker Log - MSI/Script Max Size - 20mb - Windows - Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/MSI and Script" of native registry - Application Whitelisting - Internal - 2016-04-13 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait wevtutil.exe sl "Microsoft-Windows-AppLocker/MSI and Script" /ms:20971520 - -
-
+ + + + + Config - Applocker Log - MSI/Script Max Size - 20mb - Windows + Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + (if (not exists value "MaxSize" of it) then (true) else (value "MaxSize" of it as integer != 20971520)) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Applocker/MSI and Script" of native registry + Application Whitelisting + Internal + 2016-04-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait wevtutil.exe sl "Microsoft-Windows-AppLocker/MSI and Script" /ms:20971520 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows (20595).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows (20595).bes index 673f897ec..3efbe2768 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows (20595).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows (20595).bes @@ -1,65 +1,65 @@ - - - - - Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows - This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

-

AppX - Audit

-

Executables - Audit

-

Installers - Audit

-

Scripts - Audit

-

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - (not exists (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry)) or ((value "EnforcementMode" of key "Appx" of it as integer != 0) | true or (value "EnforcementMode" of key "Appx" of it as integer != 0) | true or (value "EnforcementMode" of key "Msi" of it as integer != 0) | true or (value "EnforcementMode" of key "Script" of it as integer != 0) | true) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - - -
-
+ + + + + Config - Applocker Method - Audit AppX,EXE,MSI,Script - Windows + This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

+

AppX - Audit

+

Executables - Audit

+

Installers - Audit

+

Scripts - Audit

+

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (not exists (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry)) or ((value "EnforcementMode" of key "Appx" of it as integer != 0) | true or (value "EnforcementMode" of key "Appx" of it as integer != 0) | true or (value "EnforcementMode" of key "Msi" of it as integer != 0) | true or (value "EnforcementMode" of key "Script" of it as integer != 0) | true) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows (20596).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows (20596).bes index 8e1432fca..7354e5f45 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows (20596).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows (20596).bes @@ -1,65 +1,65 @@ - - - - - Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows - This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

-

AppX - Enforced

-

Executables - Enforced

-

Installers - Enforced

-

Scripts - Enforced

-

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - (not exists (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry)) or ((value "EnforcementMode" of key "Appx" of it as integer != 1) | true or (value "EnforcementMode" of key "Appx" of it as integer != 1) | true or (value "EnforcementMode" of key "Msi" of it as integer != 1) | true or (value "EnforcementMode" of key "Script" of it as integer != 1) | true) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - - -
-
+ + + + + Config - Applocker Method - Enforce AppX,EXE,MSI,Script - Windows + This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

+

AppX - Enforced

+

Executables - Enforced

+

Installers - Enforced

+

Scripts - Enforced

+

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (not exists (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry)) or ((value "EnforcementMode" of key "Appx" of it as integer != 1) | true or (value "EnforcementMode" of key "Appx" of it as integer != 1) | true or (value "EnforcementMode" of key "Msi" of it as integer != 1) | true or (value "EnforcementMode" of key "Script" of it as integer != 1) | true) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Executables - Windows (20616).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Executables - Windows (20616).bes index db739b911..329088f84 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Executables - Windows (20616).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Executables - Windows (20616).bes @@ -1,63 +1,63 @@ - - - - - Config - Applocker Rules - Allow Administrators to run All Executables - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Executables

-
    -
  • Allow Administrators to run All Files. 
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* EXE Rules */ (not exists key "fd686d83-a829-4351-8ff4-27c7de5755d2" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - -
-
+ + + + + Config - Applocker Rules - Allow Administrators to run All Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow Administrators to run All Files. 
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* EXE Rules */ (not exists key "fd686d83-a829-4351-8ff4-27c7de5755d2" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Scripts - Windows (20617).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Scripts - Windows (20617).bes index d4ceb4b82..ecb8ddff4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Scripts - Windows (20617).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Administrators to run All Scripts - Windows (20617).bes @@ -1,63 +1,63 @@ - - - - - Config - Applocker Rules - Allow Administrators to run All Scripts - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Scripts

-
    -
  • Allow Administrators to run all scripts
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) or /* Script Rules */ (not exists key "ed97d0cb-15ff-430f-b82c-8d7832957725" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - -
-
+ + + + + Config - Applocker Rules - Allow Administrators to run All Scripts - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Scripts

+
    +
  • Allow Administrators to run all scripts
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) or /* Script Rules */ (not exists key "ed97d0cb-15ff-430f-b82c-8d7832957725" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Default - Windows (20599).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Default - Windows (20599).bes index 5c35f6d9c..31b28d9a0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Default - Windows (20599).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Default - Windows (20599).bes @@ -1,132 +1,132 @@ - - - - - Config - Applocker Rules - Allow Default - Windows - This policy adds the policies that are configured if you add "Default Rules" to Applocker. Specifically it configures:

-

Executables

-
    -
  • Allow all files in C:\Windows, C:\Program Files. -
  • Allow Administrators to run All Files.
-

Installers

-
    -
  • Allow everyone to run signed installers -
  • Allow everyone to run installers in C:\Windows\Installers -
  • Allow Administrators to install all installers
-

Scripts

-
    -
  • Allow all scripts in Program Files folder -
  • Allow all scripts in Windows folder -
  • Allow Administrators to run all scripts
-

AppX

-
    -
  • Allow everyone to run signed AppX
-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* AppX Rules */ (not exists key "a9e18c21-ff8f-43cf-b9fc-db40eed693ba" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry) or /* EXE Rules */ (not exists key "921cc481-6e17-4653-8f75-050b80acca20" of it or not exists key "a61c8b2c-a319-4cd0-9690-d2177cad7b51" of it or not exists key "fd686d83-a829-4351-8ff4-27c7de5755d2" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* MSI Rules */ (not exists key "b7af7102-efde-4369-8a89-7a6a392d1473" of it or not exists key "5b290184-345a-4453-b184-45305f6d9a54" of it or not exists key "64ad46ff-0d71-4fa0-a30b-3f3d30c5433d" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) or /* Script Rules */ (not exists key "06dce67b-934c-454f-a263-2515c8796a5d" of it or not exists key "9428c672-5fc3-47f4-808a-a0011f36dd2c" of it or not exists key "ed97d0cb-15ff-430f-b82c-8d7832957725" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - -
-
+ + + + + Config - Applocker Rules - Allow Default - Windows + This policy adds the policies that are configured if you add "Default Rules" to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow all files in C:\Windows, C:\Program Files. +
  • Allow Administrators to run All Files.
+

Installers

+
    +
  • Allow everyone to run signed installers +
  • Allow everyone to run installers in C:\Windows\Installers +
  • Allow Administrators to install all installers
+

Scripts

+
    +
  • Allow all scripts in Program Files folder +
  • Allow all scripts in Windows folder +
  • Allow Administrators to run all scripts
+

AppX

+
    +
  • Allow everyone to run signed AppX
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* AppX Rules */ (not exists key "a9e18c21-ff8f-43cf-b9fc-db40eed693ba" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry) or /* EXE Rules */ (not exists key "921cc481-6e17-4653-8f75-050b80acca20" of it or not exists key "a61c8b2c-a319-4cd0-9690-d2177cad7b51" of it or not exists key "fd686d83-a829-4351-8ff4-27c7de5755d2" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* MSI Rules */ (not exists key "b7af7102-efde-4369-8a89-7a6a392d1473" of it or not exists key "5b290184-345a-4453-b184-45305f6d9a54" of it or not exists key "64ad46ff-0d71-4fa0-a30b-3f3d30c5433d" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) or /* Script Rules */ (not exists key "06dce67b-934c-454f-a263-2515c8796a5d" of it or not exists key "9428c672-5fc3-47f4-808a-a0011f36dd2c" of it or not exists key "ed97d0cb-15ff-430f-b82c-8d7832957725" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows (20619).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows (20619).bes index cb8cca6d8..bb56e93b7 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows (20619).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows (20619).bes @@ -1,63 +1,63 @@ - - - - - Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Installers

-
    -
  • Allow everyone to run installers in C:\Windows\Installers
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) or /* MSI Rules */ (not exists key "5b290184-345a-4453-b184-45305f6d9a54" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - -
-
+ + + + + Config - Applocker Rules - Allow Everyone to run Cached Installers - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Installers

+
    +
  • Allow everyone to run installers in C:\Windows\Installers
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) or /* MSI Rules */ (not exists key "5b290184-345a-4453-b184-45305f6d9a54" of it ) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows (20620).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows (20620).bes index 6d9a5ba2f..5f713a439 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows (20620).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows (20620).bes @@ -1,67 +1,67 @@ - - - - - Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Executables

-
    -
  • Allow all files in C:\Windows, C:\Program Files, C:\Program Files (x86)
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* EXE Rules */ (not exists key "921cc481-6e17-4653-8f75-050b80acca20" of it or not exists key "a61c8b2c-a319-4cd0-9690-d2177cad7b51" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - - -_end_ - -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - -
-
+ + + + + Config - Applocker Rules - Allow Everyone to run Installed Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow all files in C:\Windows, C:\Program Files, C:\Program Files (x86)
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* EXE Rules */ (not exists key "921cc481-6e17-4653-8f75-050b80acca20" of it or not exists key "a61c8b2c-a319-4cd0-9690-d2177cad7b51" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + +_end_ + +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20621).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20621).bes index 0966331db..530e79cc5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20621).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20621).bes @@ -1,69 +1,69 @@ - - - - - Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows - This policy adds a number of policies to Applocker. Specifically it configures:

-

Scripts

-
    -
  • Allow all scripts in Program Files folder -
  • Allow all scripts in Windows folder
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) or /* Script Rules */ (not exists key "06dce67b-934c-454f-a263-2515c8796a5d" of it or not exists key "9428c672-5fc3-47f4-808a-a0011f36dd2c" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - -
-
+ + + + + Config - Applocker Rules - Allow Everyone to run Installed Scripts - Windows + This policy adds a number of policies to Applocker. Specifically it configures:

+

Scripts

+
    +
  • Allow all scripts in Program Files folder +
  • Allow all scripts in Windows folder
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) or /* Script Rules */ (not exists key "06dce67b-934c-454f-a263-2515c8796a5d" of it or not exists key "9428c672-5fc3-47f4-808a-a0011f36dd2c" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Script" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows (20622).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows (20622).bes index 7cdfdd554..4e3182854 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows (20622).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows (20622).bes @@ -1,64 +1,64 @@ - - - - - Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows - This policy adds a policy Applocker. Specifically it configures:

-

AppX

-
    -
  • Allow everyone to run signed AppX
-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry) or /* AppX Rules */ (not exists key "a9e18c21-ff8f-43cf-b9fc-db40eed693ba" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - -
-
+ + + + + Config - Applocker Rules - Allow Everyone to run Signed AppX - Windows + This policy adds a policy Applocker. Specifically it configures:

+

AppX

+
    +
  • Allow everyone to run signed AppX
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry) or /* AppX Rules */ (not exists key "a9e18c21-ff8f-43cf-b9fc-db40eed693ba" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Appx" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows (20623).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows (20623).bes index a4f294340..27d136aa9 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows (20623).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows (20623).bes @@ -1,66 +1,66 @@ - - - - - Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Executables

-
    -
  • Allow everyone to run signed executables
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* EXE Rules */ (not exists key "4e586c7f-c597-46fc-a4e4-20008f03463d" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - -
-
+ + + + + Config - Applocker Rules - Allow Everyone to run Signed Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow everyone to run signed executables
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) or /* EXE Rules */ (not exists key "4e586c7f-c597-46fc-a4e4-20008f03463d" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Exe" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows (20624).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows (20624).bes index 354ccfba9..492813175 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows (20624).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows (20624).bes @@ -1,65 +1,65 @@ - - - - - Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Installers

-
    -
  • Allow everyone to run signed installers
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) or /* MSI Rules */ (not exists key "b7af7102-efde-4369-8a89-7a6a392d1473" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" -]]> - -
-
+ + + + + Config - Applocker Rules - Allow Everyone to run Signed Installers - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Installers

+
    +
  • Allow everyone to run signed installers
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + /* If no policies exist we are relevant */ (not exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) or /* MSI Rules */ (not exists key "b7af7102-efde-4369-8a89-7a6a392d1473" of it) of (key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2\Msi" of native registry) + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -Merge -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Reset Local Rules - Windows (20625).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Reset Local Rules - Windows (20625).bes index 78792d852..0431a8f5d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Reset Local Rules - Windows (20625).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Applocker Rules - Reset Local Rules - Windows (20625).bes @@ -1,53 +1,53 @@ - - - - - Config - Applocker Rules - Reset Local Rules - Windows - This Task resets the local Applocker Policy. 

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - 1]]> - Application Whitelisting - Internal - 2016-05-11 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - -_end_ -move __createfile Applocker.xml - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" - -wait gpupdate /target:computer /force -]]> - -
-
+ + + + + Config - Applocker Rules - Reset Local Rules - Windows + This Task resets the local Applocker Policy. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + 1]]> + Application Whitelisting + Internal + 2016-05-11 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + +_end_ +move __createfile Applocker.xml + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -XMLPolicy ""{pathname of file "Applocker.xml" of client folder of current site}""" + +wait gpupdate /target:computer /force +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Add User Account - Windows (23677).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Add User Account - Windows (23677).bes index a2e993774..ba5f0b21c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Add User Account - Windows (23677).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Add User Account - Windows (23677).bes @@ -1,81 +1,81 @@ - - - - - Config - Autologon - Add User Account - Windows - -
-

Configure Autologon!

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - not exists values "AutoAdminLogon" whose (it as string = "1") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" of native registry - Internal - 2017-02-21 - - parametermetadatatag - { "Section1": { "Name": "UserAccount", "Title": "Autologon User", "UIType": "accordion", "Values": [ { "Name": "AutoDomain", "Title": "Active Directory Domain", "Description": "Active Directory Domain", "UIType": "TextBox", "Default": "NetBIOS" }, { "Name": "AutoUsername", "Title": "Account Username", "Description": "Account Username", "UIType": "TextBox", "Default": "Username" }, { "Name": "AutoPassword", "Title": "Account Password", "Description": "Account Password", "UIType": "Textbox", "Encrypt": "true", "SubUIType": "Password" } ] } } - - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - -action uses wow64 redirection {not x64 of operating system} - -prefetch AutoLogon.zip sha1:EEA24BA8E82B7357972B4A5A55B9A424B56F62D3 size:72623 https://download.sysinternals.com/files/AutoLogon.zip sha256:4BA5B92411A9B4B8743BDC479EAD0E3F50ED2C8CB5517A49246EF57F3EBB09C7 - -prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac - -waithidden __Download\unzip.exe -o "{pathname of file "AutoLogon.zip" of folder "__Download" of client folder of current site}" -d "{pathname of folder "__Download" of client folder of current site}" - - -waithidden "__Download\AutoLogon.exe" -accepteula "{Parameter "AutoUsername" of action}" "{parameter "AutoDomain" of action}" "{parameter "AutoPassword" of action}" - -
-
+ + + + + Config - Autologon - Add User Account - Windows + +
+

Configure Autologon!

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists values "AutoAdminLogon" whose (it as string = "1") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" of native registry + Internal + 2017-02-21 + + parametermetadatatag + { "Section1": { "Name": "UserAccount", "Title": "Autologon User", "UIType": "accordion", "Values": [ { "Name": "AutoDomain", "Title": "Active Directory Domain", "Description": "Active Directory Domain", "UIType": "TextBox", "Default": "NetBIOS" }, { "Name": "AutoUsername", "Title": "Account Username", "Description": "Account Username", "UIType": "TextBox", "Default": "Username" }, { "Name": "AutoPassword", "Title": "Account Password", "Description": "Account Password", "UIType": "Textbox", "Encrypt": "true", "SubUIType": "Password" } ] } } + + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + +action uses wow64 redirection {not x64 of operating system} + +prefetch AutoLogon.zip sha1:EEA24BA8E82B7357972B4A5A55B9A424B56F62D3 size:72623 https://download.sysinternals.com/files/AutoLogon.zip sha256:4BA5B92411A9B4B8743BDC479EAD0E3F50ED2C8CB5517A49246EF57F3EBB09C7 + +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +waithidden __Download\unzip.exe -o "{pathname of file "AutoLogon.zip" of folder "__Download" of client folder of current site}" -d "{pathname of folder "__Download" of client folder of current site}" + + +waithidden "__Download\AutoLogon.exe" -accepteula "{Parameter "AutoUsername" of action}" "{parameter "AutoDomain" of action}" "{parameter "AutoPassword" of action}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Disable - Windows (23678).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Disable - Windows (23678).bes index 65a7681aa..2badd225a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Disable - Windows (23678).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Autologon - Disable - Windows (23678).bes @@ -1,40 +1,40 @@ - - - - - Config - Autologon - Disable - Windows - - windows of operating system - exists values "AutoAdminLogon" whose (it as string = "1") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" of native registry - Internal - 2017-02-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - prefetch AutoLogon.zip sha1:EEA24BA8E82B7357972B4A5A55B9A424B56F62D3 size:72623 https://download.sysinternals.com/files/AutoLogon.zip sha256:4BA5B92411A9B4B8743BDC479EAD0E3F50ED2C8CB5517A49246EF57F3EBB09C7 -prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac - -waithidden __Download\unzip.exe -o "{pathname of file "AutoLogon.zip" of folder "__Download" of client folder of current site}" -d "{pathname of folder "__Download" of client folder of current site}" - - -waithidden "__Download\AutoLogon.exe" -accepteula "" "" "" - - - + + + + + Config - Autologon - Disable - Windows + + windows of operating system + exists values "AutoAdminLogon" whose (it as string = "1") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" of native registry + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch AutoLogon.zip sha1:EEA24BA8E82B7357972B4A5A55B9A424B56F62D3 size:72623 https://download.sysinternals.com/files/AutoLogon.zip sha256:4BA5B92411A9B4B8743BDC479EAD0E3F50ED2C8CB5517A49246EF57F3EBB09C7 +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +waithidden __Download\unzip.exe -o "{pathname of file "AutoLogon.zip" of folder "__Download" of client folder of current site}" -d "{pathname of folder "__Download" of client folder of current site}" + + +waithidden "__Download\AutoLogon.exe" -accepteula "" "" "" + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Audit All - Windows (20703).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Audit All - Windows (20703).bes index c6ea037dc..ff1d01f11 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Audit All - Windows (20703).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Audit All - Windows (20703).bes @@ -1,66 +1,66 @@ - - - - - Config - Cache Applocker Method - Audit All - Windows - This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

-

AppX - Audit

-

Executables - Audit

-

Installers - Audit

-

Scripts - Audit

-

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - -_end_ - -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml"]]> - - -
-
+ + + + + Config - Cache Applocker Method - Audit All - Windows + This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

+

AppX - Audit

+

Executables - Audit

+

Installers - Audit

+

Scripts - Audit

+

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml"]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Enforce All - Windows (20704).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Enforce All - Windows (20704).bes index 4bb671744..f489dc90f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Enforce All - Windows (20704).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Method - Enforce All - Windows (20704).bes @@ -1,66 +1,66 @@ - - - - - Config - Cache Applocker Method - Enforce All - Windows - This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

-

AppX - Enforced

-

Executables - Enforced

-

Installers - Enforced

-

Scripts - Enforced

-

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - -_end_ - -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml"]]> - - -
-
+ + + + + Config - Cache Applocker Method - Enforce All - Windows + This policy sets the enforcement method for the different Applocker file types. Specifically it configures:

+

AppX - Enforced

+

Executables - Enforced

+

Installers - Enforced

+

Scripts - Enforced

+

This will only take effect if the current enforcement mode is undefined. Once an enforcement mode is defined it's not advisable to try to change it without first reseting the Applocker configuration. 

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml"]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows (20705).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows (20705).bes index f49b80f24..efb7fcada 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows (20705).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows (20705).bes @@ -1,63 +1,63 @@ - - - - - Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Executables

-
    -
  • Allow Administrators to run All Files. 
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - -_end_ -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Administrators to run All Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow Administrators to run All Files. 
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows (20706).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows (20706).bes index a62c05afd..666811ca8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows (20706).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows (20706).bes @@ -1,63 +1,63 @@ - - - - - Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Scripts

-
    -
  • Allow Administrators to run all scripts
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - -_end_ -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Administrators to run All Scripts - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Scripts

+
    +
  • Allow Administrators to run all scripts
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows (20714).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows (20714).bes index af4de3406..364af703e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows (20714).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows (20714).bes @@ -1,55 +1,55 @@ - - - - - Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows - This policy adds a policy to Applocker. Specifically it provides a rule for Script


The rule self describes as: Allow Administrators in to run Scripts in their profiles except for AppData ]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - -_end_ - -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" - -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Administrators to run Scripts in their Profiles - Windows + This policy adds a policy to Applocker. Specifically it provides a rule for Script


The rule self describes as: Allow Administrators in to run Scripts in their profiles except for AppData ]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows (20707).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows (20707).bes index 0017f385c..d94954626 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows (20707).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows (20707).bes @@ -1,63 +1,63 @@ - - - - - Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Installers

-
    -
  • Allow everyone to run installers in C:\Windows\Installers
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - -_end_ -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Everyone to run Cached Installers - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Installers

+
    +
  • Allow everyone to run installers in C:\Windows\Installers
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows (20746).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows (20746).bes index 37e26ca9e..fe225f794 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows (20746).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows (20746).bes @@ -1,67 +1,67 @@ - - - - - Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Executables

-
    -
  • Allow all files in C:\Windows, C:\Program Files, C:\Program Files (x86)
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - - -_end_ - -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml"]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Everyone to run Installed Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow all files in C:\Windows, C:\Program Files, C:\Program Files (x86)
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml"]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20709).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20709).bes index 5f8d9b291..3a0657a6e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20709).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows (20709).bes @@ -1,69 +1,69 @@ - - - - - Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows - This policy adds a number of policies to Applocker. Specifically it configures:

-

Scripts

-
    -
  • Allow all scripts in Program Files folder -
  • Allow all scripts in Windows folder
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - - - - -_end_ -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Everyone to run Installed Scripts - Windows + This policy adds a number of policies to Applocker. Specifically it configures:

+

Scripts

+
    +
  • Allow all scripts in Program Files folder +
  • Allow all scripts in Windows folder
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows (20738).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows (20738).bes index 13228a2c1..f166ca168 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows (20738).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows (20738).bes @@ -1,58 +1,58 @@ - - - - - Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows - This policy adds a policy to Applocker. Specifically it provides a rule for Script

-


The rule self describes as: Allow Everyone to run Scripts in the Program Files Directory

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - -_end_ - -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" - -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Everyone to run Scripts in Program Files - Windows + This policy adds a policy to Applocker. Specifically it provides a rule for Script

+


The rule self describes as: Allow Everyone to run Scripts in the Program Files Directory

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows (20739).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows (20739).bes index e4f1d1db4..32117f837 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows (20739).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows (20739).bes @@ -1,58 +1,58 @@ - - - - - Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows - This policy adds a policy to Applocker. Specifically it provides a rule for Script

-


The rule self describes as: Allow Everyone to run Scripts in the Windows Directory except Temp.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - -_end_ - -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" - -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Everyone to run Scripts in the Windows Directory except Temp - Windows + This policy adds a policy to Applocker. Specifically it provides a rule for Script

+


The rule self describes as: Allow Everyone to run Scripts in the Windows Directory except Temp.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows (20740).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows (20740).bes index 872d48400..99eca17e1 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows (20740).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows (20740).bes @@ -1,58 +1,58 @@ - - - - - Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows - This policy adds a policy to Applocker. Specifically it provides a rule for Script

-

The rule self describes as: Allow Everyone to run Scripts in their profiles except for AppData

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - -_end_ - -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" - -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Everyone to run Scripts in their Profiles except AppData - Windows + This policy adds a policy to Applocker. Specifically it provides a rule for Script

+

The rule self describes as: Allow Everyone to run Scripts in their profiles except for AppData

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + +_end_ + +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows (20710).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows (20710).bes index 1294b5a33..13c5e2826 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows (20710).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows (20710).bes @@ -1,64 +1,64 @@ - - - - - Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows - This policy adds a policy Applocker. Specifically it configures:

-

AppX

-
    -
  • Allow everyone to run signed AppX
-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - -_end_ -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Everyone to run Signed AppX - Windows + This policy adds a policy Applocker. Specifically it configures:

+

AppX

+
    +
  • Allow everyone to run signed AppX
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows (20711).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows (20711).bes index 97e5d1e00..b2d6423fb 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows (20711).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows (20711).bes @@ -1,66 +1,66 @@ - - - - - Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Executables

-
    -
  • Allow everyone to run signed executables
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - -_end_ -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Everyone to run Signed Executables - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Executables

+
    +
  • Allow everyone to run signed executables
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows (20712).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows (20712).bes index 133530383..86e28ffa4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows (20712).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows (20712).bes @@ -1,65 +1,65 @@ - - - - - Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows - This policy adds a policy to Applocker. Specifically it configures:

-

Installers

-
    -
  • Allow everyone to run signed installers
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - Application Whitelisting - Internal - 2016-05-10 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - -_end_ -folder create "{parameter "Storage"}" - -delete "{parameter "Storage"}\{parameter "RuleName"}.xml" -move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" -]]> - -
-
+ + + + + Config - Cache Applocker Rules - Allow Everyone to run Signed Installers - Windows + This policy adds a policy to Applocker. Specifically it configures:

+

Installers

+
    +
  • Allow everyone to run signed installers
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + Application Whitelisting + Internal + 2016-05-10 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + +_end_ +folder create "{parameter "Storage"}" + +delete "{parameter "Storage"}\{parameter "RuleName"}.xml" +move __createfile "{parameter "Storage"}\{parameter "RuleName"}.xml" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Disable - Windows (20652).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Disable - Windows (20652).bes index 05a30f3cd..77851cb83 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Disable - Windows (20652).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Disable - Windows (20652).bes @@ -1,61 +1,61 @@ - - - - - Config - Credential Guard - Disable - Windows - This Fixlet disables Credential Guard on Windows devices that support it.

-

Note: This Fixlet should be thoroughly tested in your environment before using as it edits the Windows Bootloader to disable credential guard. For this reason, this fixlet has NO DEFAULT ACTION.

-

For more information on Credential Guard please see: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/credential-guard

]]>
- windows of operating system - set of (integer values of property "SecurityServicesConfigured" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 /* Credential Guard is Configured */ or set of (integer values of property "SecurityServicesRunning" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 /* Credential Guard is Running */ - Virtualization Based Security - Internal - 2016-05-12 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} -// Enter your action script here - -regset "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]" "LsaCfgFlags"=dword:00000000 - -delete __createfile -delete run.bat - -createfile until _end_ - -mountvol X: /s -copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y -bcdedit /create {{0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader -bcdedit /set {{0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi" -bcdedit /set {{bootmgr} bootsequence {{0cb3b571-2f2e-4343-a879-d86a476d7215} -bcdedit /set {{0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO -bcdedit /set {{0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X: -mountvol X: /d - -_end_ -move __createfile run.bat - -wait run.bat - -action requires restart - -
-
+ + + + + Config - Credential Guard - Disable - Windows + This Fixlet disables Credential Guard on Windows devices that support it.

+

Note: This Fixlet should be thoroughly tested in your environment before using as it edits the Windows Bootloader to disable credential guard. For this reason, this fixlet has NO DEFAULT ACTION.

+

For more information on Credential Guard please see: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/credential-guard

]]>
+ windows of operating system + set of (integer values of property "SecurityServicesConfigured" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 /* Credential Guard is Configured */ or set of (integer values of property "SecurityServicesRunning" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 1 /* Credential Guard is Running */ + Virtualization Based Security + Internal + 2016-05-12 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +// Enter your action script here + +regset "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]" "LsaCfgFlags"=dword:00000000 + +delete __createfile +delete run.bat + +createfile until _end_ + +mountvol X: /s +copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y +bcdedit /create {{0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader +bcdedit /set {{0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi" +bcdedit /set {{bootmgr} bootsequence {{0cb3b571-2f2e-4343-a879-d86a476d7215} +bcdedit /set {{0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO +bcdedit /set {{0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X: +mountvol X: /d + +_end_ +move __createfile run.bat + +wait run.bat + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Enable with UEFI Lock - Windows (20653).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Enable with UEFI Lock - Windows (20653).bes index f1caca9bc..fe25097a1 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Enable with UEFI Lock - Windows (20653).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Credential Guard - Enable with UEFI Lock - Windows (20653).bes @@ -1,64 +1,64 @@ - - - - - Config - Credential Guard - Enable with UEFI Lock - Windows - This Fixlet enables Credential Guard on Windows devices that support it.

-

Credential Guard requires the following:

-
    -
  1. Physical PC (Virtual Machines are not Supported) -
  2. Windows 10 Enterprise -
  3. x64 Architecture -
  4. UEFI 2.3.1 -
  5. Secure Boot -
  6. Intel VT-x or AMD-V -
  7. Second Level Address Translation (SLAT) Support
-

The following features are recommended for Credential Guard:

-
    -
  1. IOMMU -
  2. TPM 1.2 or 2.0
-

Before you can enable Credential Guard you must activate Virtualization Based Security using Secure Boot or Secure Boot and DMA. To do this please use:

-
-

Fixlet: Config - Virtualization Based Security - Using Secure Boot - Windows

-

Fixlet: Config - Virtualization Based Security - Using Secure Boot and DMA - Windows

-

You also must enable Hyper-V and Isolated User Mode. To do this please use:

-
-

Fixlet: Config - Isolated User Mode - Enable - Windows

-

Fixlet: Config - Hyper-V Platform - Enable - Windows

-

For more information on Credential Guard please see: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/credential-guard

]]>
- windows of operating system - set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 /* Secure Boot is Available */ - (it contains 2) of set of (integer values of property "VirtualizationBasedSecurityStatus" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") /* Virtualization Based Security is Configured */ - (value "EnableVirtualizationBasedSecurity" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceGuard" of native registry as integer = 1) and (value "RequirePlatformSecurityFeatures" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceGuard" of native registry as integer != 0) - (value "LsaCfgFlags" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA" of native registry as integer != 1) | true - Virtualization Based Security - Internal - 2016-05-12 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -regset "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]" "LsaCfgFlags"=dword:00000001 - -action requires restart - -
-
+ + + + + Config - Credential Guard - Enable with UEFI Lock - Windows + This Fixlet enables Credential Guard on Windows devices that support it.

+

Credential Guard requires the following:

+
    +
  1. Physical PC (Virtual Machines are not Supported) +
  2. Windows 10 Enterprise +
  3. x64 Architecture +
  4. UEFI 2.3.1 +
  5. Secure Boot +
  6. Intel VT-x or AMD-V +
  7. Second Level Address Translation (SLAT) Support
+

The following features are recommended for Credential Guard:

+
    +
  1. IOMMU +
  2. TPM 1.2 or 2.0
+

Before you can enable Credential Guard you must activate Virtualization Based Security using Secure Boot or Secure Boot and DMA. To do this please use:

+
+

Fixlet: Config - Virtualization Based Security - Using Secure Boot - Windows

+

Fixlet: Config - Virtualization Based Security - Using Secure Boot and DMA - Windows

+

You also must enable Hyper-V and Isolated User Mode. To do this please use:

+
+

Fixlet: Config - Isolated User Mode - Enable - Windows

+

Fixlet: Config - Hyper-V Platform - Enable - Windows

+

For more information on Credential Guard please see: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/credential-guard

]]>
+ windows of operating system + set of (integer values of property "AvailableSecurityProperties" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") contains 2 /* Secure Boot is Available */ + (it contains 2) of set of (integer values of property "VirtualizationBasedSecurityStatus" of select objects "* from Win32_DeviceGuard" of wmi "root\Microsoft\Windows\DeviceGuard") /* Virtualization Based Security is Configured */ + (value "EnableVirtualizationBasedSecurity" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceGuard" of native registry as integer = 1) and (value "RequirePlatformSecurityFeatures" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceGuard" of native registry as integer != 0) + (value "LsaCfgFlags" of key "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA" of native registry as integer != 1) | true + Virtualization Based Security + Internal + 2016-05-12 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +regset "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]" "LsaCfgFlags"=dword:00000001 + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Disable SMBv3 Compression - Windows (26668).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Disable SMBv3 Compression - Windows (26668).bes index ee6bb1f88..993a1fe8d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Disable SMBv3 Compression - Windows (26668).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Disable SMBv3 Compression - Windows (26668).bes @@ -1,44 +1,44 @@ - - - - - Config - Disable SMBv3 Compression - Windows - This Fixlet detects if SMBv3 is vulnerable to CVE-2020-0796

-

It takes into account the following items:

-
    -
  1. Vulnerable Windows OS Versions -
  2. SMBv3 Enablement -
  3. SMBv3 Compression Status
-

Actioning this Fixlet against a vulnerable device will disable SMBv3 Compression.

-

NOTE: This will only protect a SMBv3 Server and will not protect a SMBv3 Client. This remediation prevents the "Wormable" part of CVE-2020-0796.

-

This remediation is made available with no warranty expressed or otherwise and should be tested before being applied to any production or otherwise important systems.

]]>
- windows of operating system - exists it whose (it = "1903" or it = "1909") of preceding text of last ")" of following text of first "(" of (operating system as string) - not exists values "DisableCompression" whose (it = 1) of keys "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" of registry - not exists values "SMB2" whose (it = 0) of keys "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" of registry - Internal - 2020-03-12 - - x-fixlet-modification-time - Thu, 12 Mar 2020 17:38:54 +0000 - - BESC - - - Click - here - to deploy this action. - - regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]" "DisableCompression"=dword:00000001 - -
-
+ + + + + Config - Disable SMBv3 Compression - Windows + This Fixlet detects if SMBv3 is vulnerable to CVE-2020-0796

+

It takes into account the following items:

+
    +
  1. Vulnerable Windows OS Versions +
  2. SMBv3 Enablement +
  3. SMBv3 Compression Status
+

Actioning this Fixlet against a vulnerable device will disable SMBv3 Compression.

+

NOTE: This will only protect a SMBv3 Server and will not protect a SMBv3 Client. This remediation prevents the "Wormable" part of CVE-2020-0796.

+

This remediation is made available with no warranty expressed or otherwise and should be tested before being applied to any production or otherwise important systems.

]]>
+ windows of operating system + exists it whose (it = "1903" or it = "1909") of preceding text of last ")" of following text of first "(" of (operating system as string) + not exists values "DisableCompression" whose (it = 1) of keys "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" of registry + not exists values "SMB2" whose (it = 0) of keys "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" of registry + Internal + 2020-03-12 + + x-fixlet-modification-time + Thu, 12 Mar 2020 17:38:54 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]" "DisableCompression"=dword:00000001 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows (20801).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows (20801).bes index dba801fea..d2870cd57 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows (20801).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows (20801).bes @@ -1,410 +1,410 @@ - - - - - Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows - This policy sets the default Certificate Pinning Mitigations within EMET. Specifically it configures certificate pinning for the following sites:

-

login.live.com
login.microsoftonline.com
login.skype.com
login.yahoo.com
secure.skype.com
twitter.com
facebook.com

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder - "5.5.0.0" as version]]> - (set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\CertPinning\Rules" of native registry) != set of ("FacebookCA";"MicrosoftAccountCA";"TwitterCA";"YahooCA") - Internal - 2016-06-06 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - {{d9766177-1512-4c48-84e5-e95e44663eed} - TwitterCA - - - CN=GeoTrust Global CA, O=GeoTrust Inc., C=US - 023456 - 00F92AC34191B6C9C2B83E55F2C0971113A00720 - DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212 - - - Certificate not in current root store - Thumbprint A9E9780814375888F20519B06D2B0D2B6016907D - Certificate not in current root store - A9E9780814375888F20519B06D2B0D2B6016907D - - - CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US - 18ACB56AFD69B6153A636CAFDAFAC4A1 - 2CD5504197158BF08F36615B4AFB6BD999C93392 - 323C118E1BF7B8B65254E2E2100DD6029037F096 - - - CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US - 15AC6E9419B2794B41F627A9C3180F1F - C479CA8EA14E031D1CDC6BDB315B943E3F307F2D - 039EEDB80BE7A03C6953893B20D2D9323A4C2AFD - - - Certificate not in current root store - Thumbprint E621F3354379059A4B68309D8A2F74221587EC79 - Certificate not in current root store - E621F3354379059A4B68309D8A2F74221587EC79 - - - Certificate not in current root store - Thumbprint 379A197B418545350CA60369F33C2EAF474F2079 - Certificate not in current root store - 379A197B418545350CA60369F33C2EAF474F2079 - - - Certificate not in current root store - Thumbprint 204285DCF7EB764195578E136BD4B7D1E98E46A5 - Certificate not in current root store - 204285DCF7EB764195578E136BD4B7D1E98E46A5 - - - Certificate not in current root store - Thumbprint 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 - Certificate not in current root store - 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 - - - Certificate not in current root store - Thumbprint 85371CA6E550143DCE2803471BDE3A09E8F8770F - Certificate not in current root store - 85371CA6E550143DCE2803471BDE3A09E8F8770F - - - CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 009B7E0649A33E62B9D5EE90487129EF57 - F0115C20ABF0D0FE3D0842EF9571E372C11C1256 - 132D0D45534B6997CDB2D5C339E25576609B5CC6 - - - CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 18DAD19E267DE8BB4A2158CDCC6B3B4A - 7FD365A7C2DDECBBF03009F34339FA02AF333133 - 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 - - - CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 401AC46421B31321030EBBE4121AC51D - B677FA6948479F5312D5C2EA07327607D1970719 - 3679CA35668772304D30A5FB873B0FA77BB70D54 - - - CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US - 083BE056904246B1A1756AC95991C74A - 03DE503556D14CBB66F0A3E21B1BC397B23DD155 - A8985D3A65E5E5C4B2D7D66D40C6DD2FB19C5436 - - - CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US - 02AC5C266A0B409B8F0B79F2AE462577 - B13EC36903F8BF4701D498261A0802EF63642BC3 - 5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25 - - - CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US - 0CE7E0E517D846FE8FE560FC1BF03039 - 45EBA2AFF492CB82312D518BA7A7219DF36DC80F - 0563B8630D62D75ABBC8AB1E4BDFB5A899B24D43 - - - 09/01/2017 00:00:00 - - - {{7c7b8b00-ea88-423c-9635-d4f92159aae7} - MicrosoftAccountCA - - - CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE - 020000B9 - E59D5930824758CCACFA085436867B3AB5044DF0 - D4DE20D05E66FC53FE1A50882C78DB2852CAE474 - - - CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 18DAD19E267DE8BB4A2158CDCC6B3B4A - 7FD365A7C2DDECBBF03009F34339FA02AF333133 - 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 - - - CN=GlobalSign Root CA, OU=Root CA, O=GlobalSign nv-sa, C=BE - 040000000001154B5AC394 - 607B661A450D97CA89502F7D04CD34A8FFFCFD4B - B1BC968BD4F49D622AA89A81F2150152A41D829C - - - CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US - 01A5 - A60C1D9F61FF0717B5BF3846DB4330D58EB05206 - 97817950D81C9670CC34D809CF794431367EF474 - - - Certificate not in current root store - Thumbprint 912198EEF23DCAC40939312FEE97DD560BAE49B1 - Certificate not in current root store - 912198EEF23DCAC40939312FEE97DD560BAE49B1 - - - Certificate not in current root store - Thumbprint 5F43E5B1BFF8788CAC1CC7CA4A9AC6222BCC34C6 - Certificate not in current root store - 5F43E5B1BFF8788CAC1CC7CA4A9AC6222BCC34C6 - - - 09/01/2017 00:00:00 - - - {{cb1e584f-4ad0-4c6f-9239-317d4a07d24c} - FacebookCA - - - CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US - 02AC5C266A0B409B8F0B79F2AE462577 - B13EC36903F8BF4701D498261A0802EF63642BC3 - 5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25 - - - OU=Equifax Secure Certificate Authority, O=Equifax, C=US - 35DEF4CF - 0F348320A1DA3FD1CB84DC48CBA4D5E19E66841E - D23209AD23D314232174E40D7F9D62139786633A - - - Certificate not in current root store - Thumbprint 7E784A101C8265CC2DE1F16D47B440CAD90A1945 - Certificate not in current root store - 7E784A101C8265CC2DE1F16D47B440CAD90A1945 - - - CN=GeoTrust Global CA, O=GeoTrust Inc., C=US - 023456 - 00F92AC34191B6C9C2B83E55F2C0971113A00720 - DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212 - - - Certificate not in current root store - Thumbprint A9E9780814375888F20519B06D2B0D2B6016907D - Certificate not in current root store - A9E9780814375888F20519B06D2B0D2B6016907D - - - CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US - 18ACB56AFD69B6153A636CAFDAFAC4A1 - 2CD5504197158BF08F36615B4AFB6BD999C93392 - 323C118E1BF7B8B65254E2E2100DD6029037F096 - - - CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US - 15AC6E9419B2794B41F627A9C3180F1F - C479CA8EA14E031D1CDC6BDB315B943E3F307F2D - 039EEDB80BE7A03C6953893B20D2D9323A4C2AFD - - - Certificate not in current root store - Thumbprint E621F3354379059A4B68309D8A2F74221587EC79 - Certificate not in current root store - E621F3354379059A4B68309D8A2F74221587EC79 - - - CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US - 344ED55720D5EDEC49F42FCE37DB2B6D - 7B5B45CFAFCECB7AFD31921A6AB6F346EB574850 - 91C6D6EE3E8AC86384E548C299295C756C817B81 - - - CN=thawte Primary Root CA - G3, OU="(c) 2008 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US - 600197B746A7EAB4B49AD64B2FF790FB - AD6CAA94609CEDE4FFFA3E0A742B6303F7B659BF - F18B538D1BE903B6A6F056435B171589CAF36BF2 - - - Certificate not in current root store - Thumbprint 85371CA6E550143DCE2803471BDE3A09E8F8770F - Certificate not in current root store - 85371CA6E550143DCE2803471BDE3A09E8F8770F - - - CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 009B7E0649A33E62B9D5EE90487129EF57 - F0115C20ABF0D0FE3D0842EF9571E372C11C1256 - 132D0D45534B6997CDB2D5C339E25576609B5CC6 - - - CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 18DAD19E267DE8BB4A2158CDCC6B3B4A - 7FD365A7C2DDECBBF03009F34339FA02AF333133 - 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 - - - CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 401AC46421B31321030EBBE4121AC51D - B677FA6948479F5312D5C2EA07327607D1970719 - 3679CA35668772304D30A5FB873B0FA77BB70D54 - - - 09/01/2017 00:00:00 - - - {{1d1e83d9-f876-49ab-bbd6-14c3c7dd6338} - YahooCA - - - CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US - 01A5 - A60C1D9F61FF0717B5BF3846DB4330D58EB05206 - 97817950D81C9670CC34D809CF794431367EF474 - - - CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US - 02AC5C266A0B409B8F0B79F2AE462577 - B13EC36903F8BF4701D498261A0802EF63642BC3 - 5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25 - - - CN=GeoTrust Global CA, O=GeoTrust Inc., C=US - 023456 - 00F92AC34191B6C9C2B83E55F2C0971113A00720 - DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212 - - - Certificate not in current root store - Thumbprint A9E9780814375888F20519B06D2B0D2B6016907D - Certificate not in current root store - A9E9780814375888F20519B06D2B0D2B6016907D - - - CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US - 18ACB56AFD69B6153A636CAFDAFAC4A1 - 2CD5504197158BF08F36615B4AFB6BD999C93392 - 323C118E1BF7B8B65254E2E2100DD6029037F096 - - - CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US - 15AC6E9419B2794B41F627A9C3180F1F - C479CA8EA14E031D1CDC6BDB315B943E3F307F2D - 039EEDB80BE7A03C6953893B20D2D9323A4C2AFD - - - Certificate not in current root store - Thumbprint E621F3354379059A4B68309D8A2F74221587EC79 - Certificate not in current root store - E621F3354379059A4B68309D8A2F74221587EC79 - - - Certificate not in current root store - Thumbprint 204285DCF7EB764195578E136BD4B7D1E98E46A5 - Certificate not in current root store - 204285DCF7EB764195578E136BD4B7D1E98E46A5 - - - Certificate not in current root store - Thumbprint 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 - Certificate not in current root store - 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 - - - Certificate not in current root store - Thumbprint 85371CA6E550143DCE2803471BDE3A09E8F8770F - Certificate not in current root store - 85371CA6E550143DCE2803471BDE3A09E8F8770F - - - CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 009B7E0649A33E62B9D5EE90487129EF57 - F0115C20ABF0D0FE3D0842EF9571E372C11C1256 - 132D0D45534B6997CDB2D5C339E25576609B5CC6 - - - CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 18DAD19E267DE8BB4A2158CDCC6B3B4A - 7FD365A7C2DDECBBF03009F34339FA02AF333133 - 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 - - - CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US - 401AC46421B31321030EBBE4121AC51D - B677FA6948479F5312D5C2EA07327607D1970719 - 3679CA35668772304D30A5FB873B0FA77BB70D54 - - - 09/01/2017 00:00:00 - - - - - login.microsoftonline.com - {{7c7b8b00-ea88-423c-9635-d4f92159aae7} - True - - - secure.skype.com - {{7c7b8b00-ea88-423c-9635-d4f92159aae7} - True - - - www.facebook.com - {{cb1e584f-4ad0-4c6f-9239-317d4a07d24c} - True - - - login.yahoo.com - {{1d1e83d9-f876-49ab-bbd6-14c3c7dd6338} - True - - - login.live.com - {{7c7b8b00-ea88-423c-9635-d4f92159aae7} - True - - - login.skype.com - {{7c7b8b00-ea88-423c-9635-d4f92159aae7} - True - - - twitter.com - {{d9766177-1512-4c48-84e5-e95e44663eed} - True - - - - -_end_ - -move __createfile defaults.xml - -waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> - -
-
+ + + + + Config - EMET Rules - Enable Default Cert Pinning Mitigations - Windows + This policy sets the default Certificate Pinning Mitigations within EMET. Specifically it configures certificate pinning for the following sites:

+

login.live.com
login.microsoftonline.com
login.skype.com
login.yahoo.com
secure.skype.com
twitter.com
facebook.com

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\CertPinning\Rules" of native registry) != set of ("FacebookCA";"MicrosoftAccountCA";"TwitterCA";"YahooCA") + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + {{d9766177-1512-4c48-84e5-e95e44663eed} + TwitterCA + + + CN=GeoTrust Global CA, O=GeoTrust Inc., C=US + 023456 + 00F92AC34191B6C9C2B83E55F2C0971113A00720 + DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212 + + + Certificate not in current root store + Thumbprint A9E9780814375888F20519B06D2B0D2B6016907D + Certificate not in current root store + A9E9780814375888F20519B06D2B0D2B6016907D + + + CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US + 18ACB56AFD69B6153A636CAFDAFAC4A1 + 2CD5504197158BF08F36615B4AFB6BD999C93392 + 323C118E1BF7B8B65254E2E2100DD6029037F096 + + + CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US + 15AC6E9419B2794B41F627A9C3180F1F + C479CA8EA14E031D1CDC6BDB315B943E3F307F2D + 039EEDB80BE7A03C6953893B20D2D9323A4C2AFD + + + Certificate not in current root store + Thumbprint E621F3354379059A4B68309D8A2F74221587EC79 + Certificate not in current root store + E621F3354379059A4B68309D8A2F74221587EC79 + + + Certificate not in current root store + Thumbprint 379A197B418545350CA60369F33C2EAF474F2079 + Certificate not in current root store + 379A197B418545350CA60369F33C2EAF474F2079 + + + Certificate not in current root store + Thumbprint 204285DCF7EB764195578E136BD4B7D1E98E46A5 + Certificate not in current root store + 204285DCF7EB764195578E136BD4B7D1E98E46A5 + + + Certificate not in current root store + Thumbprint 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 + Certificate not in current root store + 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 + + + Certificate not in current root store + Thumbprint 85371CA6E550143DCE2803471BDE3A09E8F8770F + Certificate not in current root store + 85371CA6E550143DCE2803471BDE3A09E8F8770F + + + CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 009B7E0649A33E62B9D5EE90487129EF57 + F0115C20ABF0D0FE3D0842EF9571E372C11C1256 + 132D0D45534B6997CDB2D5C339E25576609B5CC6 + + + CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 18DAD19E267DE8BB4A2158CDCC6B3B4A + 7FD365A7C2DDECBBF03009F34339FA02AF333133 + 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 + + + CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 401AC46421B31321030EBBE4121AC51D + B677FA6948479F5312D5C2EA07327607D1970719 + 3679CA35668772304D30A5FB873B0FA77BB70D54 + + + CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 083BE056904246B1A1756AC95991C74A + 03DE503556D14CBB66F0A3E21B1BC397B23DD155 + A8985D3A65E5E5C4B2D7D66D40C6DD2FB19C5436 + + + CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 02AC5C266A0B409B8F0B79F2AE462577 + B13EC36903F8BF4701D498261A0802EF63642BC3 + 5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25 + + + CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 0CE7E0E517D846FE8FE560FC1BF03039 + 45EBA2AFF492CB82312D518BA7A7219DF36DC80F + 0563B8630D62D75ABBC8AB1E4BDFB5A899B24D43 + + + 09/01/2017 00:00:00 + + + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + MicrosoftAccountCA + + + CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE + 020000B9 + E59D5930824758CCACFA085436867B3AB5044DF0 + D4DE20D05E66FC53FE1A50882C78DB2852CAE474 + + + CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 18DAD19E267DE8BB4A2158CDCC6B3B4A + 7FD365A7C2DDECBBF03009F34339FA02AF333133 + 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 + + + CN=GlobalSign Root CA, OU=Root CA, O=GlobalSign nv-sa, C=BE + 040000000001154B5AC394 + 607B661A450D97CA89502F7D04CD34A8FFFCFD4B + B1BC968BD4F49D622AA89A81F2150152A41D829C + + + CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US + 01A5 + A60C1D9F61FF0717B5BF3846DB4330D58EB05206 + 97817950D81C9670CC34D809CF794431367EF474 + + + Certificate not in current root store + Thumbprint 912198EEF23DCAC40939312FEE97DD560BAE49B1 + Certificate not in current root store + 912198EEF23DCAC40939312FEE97DD560BAE49B1 + + + Certificate not in current root store + Thumbprint 5F43E5B1BFF8788CAC1CC7CA4A9AC6222BCC34C6 + Certificate not in current root store + 5F43E5B1BFF8788CAC1CC7CA4A9AC6222BCC34C6 + + + 09/01/2017 00:00:00 + + + {{cb1e584f-4ad0-4c6f-9239-317d4a07d24c} + FacebookCA + + + CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 02AC5C266A0B409B8F0B79F2AE462577 + B13EC36903F8BF4701D498261A0802EF63642BC3 + 5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25 + + + OU=Equifax Secure Certificate Authority, O=Equifax, C=US + 35DEF4CF + 0F348320A1DA3FD1CB84DC48CBA4D5E19E66841E + D23209AD23D314232174E40D7F9D62139786633A + + + Certificate not in current root store + Thumbprint 7E784A101C8265CC2DE1F16D47B440CAD90A1945 + Certificate not in current root store + 7E784A101C8265CC2DE1F16D47B440CAD90A1945 + + + CN=GeoTrust Global CA, O=GeoTrust Inc., C=US + 023456 + 00F92AC34191B6C9C2B83E55F2C0971113A00720 + DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212 + + + Certificate not in current root store + Thumbprint A9E9780814375888F20519B06D2B0D2B6016907D + Certificate not in current root store + A9E9780814375888F20519B06D2B0D2B6016907D + + + CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US + 18ACB56AFD69B6153A636CAFDAFAC4A1 + 2CD5504197158BF08F36615B4AFB6BD999C93392 + 323C118E1BF7B8B65254E2E2100DD6029037F096 + + + CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US + 15AC6E9419B2794B41F627A9C3180F1F + C479CA8EA14E031D1CDC6BDB315B943E3F307F2D + 039EEDB80BE7A03C6953893B20D2D9323A4C2AFD + + + Certificate not in current root store + Thumbprint E621F3354379059A4B68309D8A2F74221587EC79 + Certificate not in current root store + E621F3354379059A4B68309D8A2F74221587EC79 + + + CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US + 344ED55720D5EDEC49F42FCE37DB2B6D + 7B5B45CFAFCECB7AFD31921A6AB6F346EB574850 + 91C6D6EE3E8AC86384E548C299295C756C817B81 + + + CN=thawte Primary Root CA - G3, OU="(c) 2008 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US + 600197B746A7EAB4B49AD64B2FF790FB + AD6CAA94609CEDE4FFFA3E0A742B6303F7B659BF + F18B538D1BE903B6A6F056435B171589CAF36BF2 + + + Certificate not in current root store + Thumbprint 85371CA6E550143DCE2803471BDE3A09E8F8770F + Certificate not in current root store + 85371CA6E550143DCE2803471BDE3A09E8F8770F + + + CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 009B7E0649A33E62B9D5EE90487129EF57 + F0115C20ABF0D0FE3D0842EF9571E372C11C1256 + 132D0D45534B6997CDB2D5C339E25576609B5CC6 + + + CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 18DAD19E267DE8BB4A2158CDCC6B3B4A + 7FD365A7C2DDECBBF03009F34339FA02AF333133 + 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 + + + CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 401AC46421B31321030EBBE4121AC51D + B677FA6948479F5312D5C2EA07327607D1970719 + 3679CA35668772304D30A5FB873B0FA77BB70D54 + + + 09/01/2017 00:00:00 + + + {{1d1e83d9-f876-49ab-bbd6-14c3c7dd6338} + YahooCA + + + CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US + 01A5 + A60C1D9F61FF0717B5BF3846DB4330D58EB05206 + 97817950D81C9670CC34D809CF794431367EF474 + + + CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US + 02AC5C266A0B409B8F0B79F2AE462577 + B13EC36903F8BF4701D498261A0802EF63642BC3 + 5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25 + + + CN=GeoTrust Global CA, O=GeoTrust Inc., C=US + 023456 + 00F92AC34191B6C9C2B83E55F2C0971113A00720 + DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212 + + + Certificate not in current root store + Thumbprint A9E9780814375888F20519B06D2B0D2B6016907D + Certificate not in current root store + A9E9780814375888F20519B06D2B0D2B6016907D + + + CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US + 18ACB56AFD69B6153A636CAFDAFAC4A1 + 2CD5504197158BF08F36615B4AFB6BD999C93392 + 323C118E1BF7B8B65254E2E2100DD6029037F096 + + + CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US + 15AC6E9419B2794B41F627A9C3180F1F + C479CA8EA14E031D1CDC6BDB315B943E3F307F2D + 039EEDB80BE7A03C6953893B20D2D9323A4C2AFD + + + Certificate not in current root store + Thumbprint E621F3354379059A4B68309D8A2F74221587EC79 + Certificate not in current root store + E621F3354379059A4B68309D8A2F74221587EC79 + + + Certificate not in current root store + Thumbprint 204285DCF7EB764195578E136BD4B7D1E98E46A5 + Certificate not in current root store + 204285DCF7EB764195578E136BD4B7D1E98E46A5 + + + Certificate not in current root store + Thumbprint 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 + Certificate not in current root store + 61EF43D77FCAD46151BC98E0C35912AF9FEB6311 + + + Certificate not in current root store + Thumbprint 85371CA6E550143DCE2803471BDE3A09E8F8770F + Certificate not in current root store + 85371CA6E550143DCE2803471BDE3A09E8F8770F + + + CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 009B7E0649A33E62B9D5EE90487129EF57 + F0115C20ABF0D0FE3D0842EF9571E372C11C1256 + 132D0D45534B6997CDB2D5C339E25576609B5CC6 + + + CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 18DAD19E267DE8BB4A2158CDCC6B3B4A + 7FD365A7C2DDECBBF03009F34339FA02AF333133 + 4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5 + + + CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US + 401AC46421B31321030EBBE4121AC51D + B677FA6948479F5312D5C2EA07327607D1970719 + 3679CA35668772304D30A5FB873B0FA77BB70D54 + + + 09/01/2017 00:00:00 + + + + + login.microsoftonline.com + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + True + + + secure.skype.com + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + True + + + www.facebook.com + {{cb1e584f-4ad0-4c6f-9239-317d4a07d24c} + True + + + login.yahoo.com + {{1d1e83d9-f876-49ab-bbd6-14c3c7dd6338} + True + + + login.live.com + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + True + + + login.skype.com + {{7c7b8b00-ea88-423c-9635-d4f92159aae7} + True + + + twitter.com + {{d9766177-1512-4c48-84e5-e95e44663eed} + True + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Mitigation Actions - Windows (20802).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Mitigation Actions - Windows (20802).bes index d0b006bef..d7e4b14ae 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Mitigation Actions - Windows (20802).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Default Mitigation Actions - Windows (20802).bes @@ -1,62 +1,62 @@ - - - - - Config - EMET Rules - Enable Default Mitigation Actions - Windows - This policy sets the default mitigations and actions within EMET. Specifically it configures EMET to do the following:

-

Exploit Action:
Kill program on exploit detection

-

Advanced Settings:
Enable DeepHook, AntiDetours, and BannedFunction settings

-

Reporting:
Report Telemetry
Show Tray Icon
Log to Event log

-

Mitigations:
Application Opt In to DEP
Application Opt In to SEHOP
Application Opt In to ASLR
Enable Certificate Pinning
Audit Untrusted Font Detection

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder - "5.5.0.0" as version]]> - ((value "AntiDetours" of it != 1 or value "BannedFunctions" of it != 1 or value "DeepHooks" of it != 1 or value "ExploitAction" of it != 1 or value "ReportingSettings" of it != 7) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry) | true - Internal - 2016-06-06 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - -_end_ - -move __createfile defaults.xml - -waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> - -
-
+ + + + + Config - EMET Rules - Enable Default Mitigation Actions - Windows + This policy sets the default mitigations and actions within EMET. Specifically it configures EMET to do the following:

+

Exploit Action:
Kill program on exploit detection

+

Advanced Settings:
Enable DeepHook, AntiDetours, and BannedFunction settings

+

Reporting:
Report Telemetry
Show Tray Icon
Log to Event log

+

Mitigations:
Application Opt In to DEP
Application Opt In to SEHOP
Application Opt In to ASLR
Enable Certificate Pinning
Audit Untrusted Font Detection

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + ((value "AntiDetours" of it != 1 or value "BannedFunctions" of it != 1 or value "DeepHooks" of it != 1 or value "ExploitAction" of it != 1 or value "ReportingSettings" of it != 7) of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET" of native registry) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations - Windows (20803).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations - Windows (20803).bes index 7d0e82b6d..1a14ff101 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations - Windows (20803).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations - Windows (20803).bes @@ -1,316 +1,316 @@ - - - - - Config - EMET Rules - Enable Microsoft Application Mitigations - Windows - This policy sets the default application mitigations for various Microsoft applications within EMET.

-

Specifically it configures EMET to detect exploits for the following applications:

-
    -
  • Access
  • -
  • Excel
  • -
  • InfoPath
  • -
  • Internet Explorer
  • -
  • Lync
  • -
  • Outlook
  • -
  • PowerPoint
  • -
  • Publisher
  • -
  • Visio
  • -
  • Word
  • -
  • WordPad
-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder - "5.5.0.0" as version]]> - (size of ((set of ("*\Internet Explorer\iexplore.exe";"*\Windows NT\Accessories\wordpad.exe";"*\OFFICE1*\OUTLOOK.EXE";"*\OFFICE1*\WINWORD.EXE";"*\OFFICE1*\EXCEL.EXE";"*\OFFICE1*\POWERPNT.EXE";"*\OFFICE1*\MSACCESS.EXE";"*\OFFICE1*\MSPUB.EXE";"*\OFFICE1*\INFOPATH.EXE";"*\OFFICE1*\VISIO.EXE";"*\OFFICE1*\VPREVIEW.EXE";"*\OFFICE1*\LYNC.EXE";"*\OFFICE1*\PPTVIEW.EXE";"*\OFFICE1*\OIS.EXE") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true - Internal - 2016-06-06 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - mshtml.dll;flash*.ocx;jscript*.dll;vbscript.dll;vgx.dll - - - - - - - - - - npjpi*.dll;jp2iexp.dll;vgx.dll;msxml4*.dll;wshom.ocx;scrrun.dll;vbscript.dll - 1;2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - flash*.ocx - - - - - - - - - - - - - - - - - - - flash*.ocx - - - - - - - - - - - - - - - - - - - flash*.ocx - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -_end_ - -move __createfile defaults.xml - -waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> - -
-
+ + + + + Config - EMET Rules - Enable Microsoft Application Mitigations - Windows + This policy sets the default application mitigations for various Microsoft applications within EMET.

+

Specifically it configures EMET to detect exploits for the following applications:

+
    +
  • Access
  • +
  • Excel
  • +
  • InfoPath
  • +
  • Internet Explorer
  • +
  • Lync
  • +
  • Outlook
  • +
  • PowerPoint
  • +
  • Publisher
  • +
  • Visio
  • +
  • Word
  • +
  • WordPad
+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (size of ((set of ("*\Internet Explorer\iexplore.exe";"*\Windows NT\Accessories\wordpad.exe";"*\OFFICE1*\OUTLOOK.EXE";"*\OFFICE1*\WINWORD.EXE";"*\OFFICE1*\EXCEL.EXE";"*\OFFICE1*\POWERPNT.EXE";"*\OFFICE1*\MSACCESS.EXE";"*\OFFICE1*\MSPUB.EXE";"*\OFFICE1*\INFOPATH.EXE";"*\OFFICE1*\VISIO.EXE";"*\OFFICE1*\VPREVIEW.EXE";"*\OFFICE1*\LYNC.EXE";"*\OFFICE1*\PPTVIEW.EXE";"*\OFFICE1*\OIS.EXE") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + mshtml.dll;flash*.ocx;jscript*.dll;vbscript.dll;vgx.dll + + + + + + + + + + npjpi*.dll;jp2iexp.dll;vgx.dll;msxml4*.dll;wshom.ocx;scrrun.dll;vbscript.dll + 1;2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows (20897).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows (20897).bes index b6ab99a49..645f67c3a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows (20897).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows (20897).bes @@ -1,317 +1,317 @@ - - - - - Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows - This policy sets the default application mitigations for various Microsoft applications within EMET.

-

Specifically it configures EMET to detect exploits for the following applications:

-
    -
  • Access -
  • Excel -
  • InfoPath -
  • Internet Explorer -
  • Lync -
  • Outlook -
  • PowerPoint -
  • Publisher -
  • Visio -
  • Word -
  • WordPad
-

This Fixlet in particular excludes ALL EAF configurations.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder - "5.5.0.0" as version]]> - (size of ((set of ("*\Internet Explorer\iexplore.exe";"*\Windows NT\Accessories\wordpad.exe";"*\OFFICE1*\OUTLOOK.EXE";"*\OFFICE1*\WINWORD.EXE";"*\OFFICE1*\EXCEL.EXE";"*\OFFICE1*\POWERPNT.EXE";"*\OFFICE1*\MSACCESS.EXE";"*\OFFICE1*\MSPUB.EXE";"*\OFFICE1*\INFOPATH.EXE";"*\OFFICE1*\VISIO.EXE";"*\OFFICE1*\VPREVIEW.EXE";"*\OFFICE1*\LYNC.EXE";"*\OFFICE1*\PPTVIEW.EXE";"*\OFFICE1*\OIS.EXE") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true - Internal - 2016-06-06 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - mshtml.dll;flash*.ocx;jscript*.dll;vbscript.dll;vgx.dll - - - - - - - - - - npjpi*.dll;jp2iexp.dll;vgx.dll;msxml4*.dll;wshom.ocx;scrrun.dll;vbscript.dll - 1;2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - flash*.ocx - - - - - - - - - - - - - - - - - - - flash*.ocx - - - - - - - - - - - - - - - - - - - flash*.ocx - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -_end_ - -move __createfile defaults.xml - -waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> - -
-
+ + + + + Config - EMET Rules - Enable Microsoft Application Mitigations without EAF - Windows + This policy sets the default application mitigations for various Microsoft applications within EMET.

+

Specifically it configures EMET to detect exploits for the following applications:

+
    +
  • Access +
  • Excel +
  • InfoPath +
  • Internet Explorer +
  • Lync +
  • Outlook +
  • PowerPoint +
  • Publisher +
  • Visio +
  • Word +
  • WordPad
+

This Fixlet in particular excludes ALL EAF configurations.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (size of ((set of ("*\Internet Explorer\iexplore.exe";"*\Windows NT\Accessories\wordpad.exe";"*\OFFICE1*\OUTLOOK.EXE";"*\OFFICE1*\WINWORD.EXE";"*\OFFICE1*\EXCEL.EXE";"*\OFFICE1*\POWERPNT.EXE";"*\OFFICE1*\MSACCESS.EXE";"*\OFFICE1*\MSPUB.EXE";"*\OFFICE1*\INFOPATH.EXE";"*\OFFICE1*\VISIO.EXE";"*\OFFICE1*\VPREVIEW.EXE";"*\OFFICE1*\LYNC.EXE";"*\OFFICE1*\PPTVIEW.EXE";"*\OFFICE1*\OIS.EXE") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + mshtml.dll;flash*.ocx;jscript*.dll;vbscript.dll;vgx.dll + + + + + + + + + + npjpi*.dll;jp2iexp.dll;vgx.dll;msxml4*.dll;wshom.ocx;scrrun.dll;vbscript.dll + 1;2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + flash*.ocx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows (21612).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows (21612).bes index eaa5277a6..cbee251cc 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows (21612).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows (21612).bes @@ -1,308 +1,308 @@ - - - - - Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows - This policy sets the default application mitigations for various Microsoft applications within EMET.

-

Specifically it configures EMET to detect exploits for the following applications:

-
    -
  • 7-Zip -
  • Adobe Acrobat -
  • Adobe Reader -
  • Adobe Photoshop -
  • Apple Safari -
  • Apple Quicktime -
  • Apple iTunes -
  • FoxIT Reader -
  • Google Chrome -
  • Google Talk -
  • Java -
  • mIRC -
  • Mozilla Firefox -
  • Mozilla Thunderbird -
  • Opera Browser -
  • Pidgin -
  • Real Player -
  • VLC -
  • Winamp -
  • WinRAR -
  • WinZIP
-

Please note, EAF+ has been disabled for Google Chrome due to issues with the latest versions of Chrome and Windows 10.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder - "5.5.0.0" as version]]> - (size of (set of ("*\Adobe\*\Reader\AcroRd32.exe";"*\Adobe\Acrobat*\Acrobat\Acrobat.exe";"*\Java\jre*\bin\java.exe";"*\Java\jre*\bin\javaw.exe";"*\Java\jre*\bin\javaws.exe";"*\Google\Chrome\Application\chrome.exe";"*\Google\Google Talk\googletalk.exe";"*\Mozilla Firefox\firefox.exe";"*\Mozilla Firefox\plugin-container.exe";"*\Mozilla Thunderbird\thunderbird.exe";"*\Mozilla Thunderbird\plugin-container.exe";"*\Adobe\Adobe Photoshop CS*\Photoshop.exe";"*\Winamp\winamp.exe";"*\Opera\opera.exe";"*\Opera\*\opera.exe";"*\WinRAR\winrar.exe";"*\WinRAR\rar.exe";"*\WinRAR\unrar.exe";"*\WinZip\winzip32.exe";"*\WinZip\winzip64.exe";"*\VideoLAN\VLC\vlc.exe";"*\Real\RealPlayer\realconverter.exe";"*\Real\RealPlayer\realplay.exe";"*\mIRC\mirc.exe";"*\7-Zip\7z.exe";"*\7-Zip\7zG.exe";"*\7-Zip\7zFM.exe";"*\Safari\Safari.exe";"*\QuickTime\QuickTimePlayer.exe";"*\iTunes\iTunes.exe";"*\Pidgin\pidgin.exe";"*\Foxit Reader\Foxit Reader.exe") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true - Internal - 2016-06-06 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chrome_child.dll - - - - - - - - - - - - - - - - - - - mozjs.dll;xul.dll - - - - - - - - - - - - - - - - - - - - - - - - AcroRd32.dll;Acrofx32.dll;AcroForm.api - - - - - - - AcroRd32.dll;Acrofx32.dll;AcroForm.api - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -_end_ - -move __createfile defaults.xml - -waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> - -
-
+ + + + + Config - EMET Rules - Enable Popular Third-Party Mitigations - Windows + This policy sets the default application mitigations for various Microsoft applications within EMET.

+

Specifically it configures EMET to detect exploits for the following applications:

+
    +
  • 7-Zip +
  • Adobe Acrobat +
  • Adobe Reader +
  • Adobe Photoshop +
  • Apple Safari +
  • Apple Quicktime +
  • Apple iTunes +
  • FoxIT Reader +
  • Google Chrome +
  • Google Talk +
  • Java +
  • mIRC +
  • Mozilla Firefox +
  • Mozilla Thunderbird +
  • Opera Browser +
  • Pidgin +
  • Real Player +
  • VLC +
  • Winamp +
  • WinRAR +
  • WinZIP
+

Please note, EAF+ has been disabled for Google Chrome due to issues with the latest versions of Chrome and Windows 10.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (size of (set of ("*\Adobe\*\Reader\AcroRd32.exe";"*\Adobe\Acrobat*\Acrobat\Acrobat.exe";"*\Java\jre*\bin\java.exe";"*\Java\jre*\bin\javaw.exe";"*\Java\jre*\bin\javaws.exe";"*\Google\Chrome\Application\chrome.exe";"*\Google\Google Talk\googletalk.exe";"*\Mozilla Firefox\firefox.exe";"*\Mozilla Firefox\plugin-container.exe";"*\Mozilla Thunderbird\thunderbird.exe";"*\Mozilla Thunderbird\plugin-container.exe";"*\Adobe\Adobe Photoshop CS*\Photoshop.exe";"*\Winamp\winamp.exe";"*\Opera\opera.exe";"*\Opera\*\opera.exe";"*\WinRAR\winrar.exe";"*\WinRAR\rar.exe";"*\WinRAR\unrar.exe";"*\WinZip\winzip32.exe";"*\WinZip\winzip64.exe";"*\VideoLAN\VLC\vlc.exe";"*\Real\RealPlayer\realconverter.exe";"*\Real\RealPlayer\realplay.exe";"*\mIRC\mirc.exe";"*\7-Zip\7z.exe";"*\7-Zip\7zG.exe";"*\7-Zip\7zFM.exe";"*\Safari\Safari.exe";"*\QuickTime\QuickTimePlayer.exe";"*\iTunes\iTunes.exe";"*\Pidgin\pidgin.exe";"*\Foxit Reader\Foxit Reader.exe") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + chrome_child.dll + + + + + + + + + + + + + + + + + + + mozjs.dll;xul.dll + + + + + + + + + + + + + + + + + + + + + + + + AcroRd32.dll;Acrofx32.dll;AcroForm.api + + + + + + + AcroRd32.dll;Acrofx32.dll;AcroForm.api + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows (20898).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows (20898).bes index adc754428..988e24d2a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows (20898).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows (20898).bes @@ -1,308 +1,308 @@ - - - - - Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows - This policy sets the default application mitigations for various Microsoft applications within EMET.

-

Specifically it configures EMET to detect exploits for the following applications:

-
    -
  • 7-Zip -
  • Adobe Acrobat -
  • Adobe Reader -
  • Adobe Photoshop -
  • Apple Safari -
  • Apple Quicktime -
  • Apple iTunes -
  • FoxIT Reader -
  • Google Chrome -
  • Google Talk -
  • Java -
  • mIRC -
  • Mozilla Firefox -
  • Mozilla Thunderbird -
  • Opera Browser -
  • Pidgin -
  • Real Player -
  • VLC -
  • Winamp -
  • WinRAR -
  • WinZIP
-

This Fixlet in particular excludes ALL EAF configurations.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder - "5.5.0.0" as version]]> - (size of (set of ("*\Adobe\*\Reader\AcroRd32.exe";"*\Adobe\Acrobat*\Acrobat\Acrobat.exe";"*\Java\jre*\bin\java.exe";"*\Java\jre*\bin\javaw.exe";"*\Java\jre*\bin\javaws.exe";"*\Google\Chrome\Application\chrome.exe";"*\Google\Google Talk\googletalk.exe";"*\Mozilla Firefox\firefox.exe";"*\Mozilla Firefox\plugin-container.exe";"*\Mozilla Thunderbird\thunderbird.exe";"*\Mozilla Thunderbird\plugin-container.exe";"*\Adobe\Adobe Photoshop CS*\Photoshop.exe";"*\Winamp\winamp.exe";"*\Opera\opera.exe";"*\Opera\*\opera.exe";"*\WinRAR\winrar.exe";"*\WinRAR\rar.exe";"*\WinRAR\unrar.exe";"*\WinZip\winzip32.exe";"*\WinZip\winzip64.exe";"*\VideoLAN\VLC\vlc.exe";"*\Real\RealPlayer\realconverter.exe";"*\Real\RealPlayer\realplay.exe";"*\mIRC\mirc.exe";"*\7-Zip\7z.exe";"*\7-Zip\7zG.exe";"*\7-Zip\7zFM.exe";"*\Safari\Safari.exe";"*\QuickTime\QuickTimePlayer.exe";"*\iTunes\iTunes.exe";"*\Pidgin\pidgin.exe";"*\Foxit Reader\Foxit Reader.exe") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true - Internal - 2016-06-06 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chrome_child.dll - - - - - - - - - - - - - - - - - - - mozjs.dll;xul.dll - - - - - - - - - - - - - - - - - - - - - - - - AcroRd32.dll;Acrofx32.dll;AcroForm.api - - - - - - - AcroRd32.dll;Acrofx32.dll;AcroForm.api - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -_end_ - -move __createfile defaults.xml - -waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> - -
-
+ + + + + Config - EMET Rules - Enable Popular Third-Party Mitigations without EAF - Windows + This policy sets the default application mitigations for various Microsoft applications within EMET.

+

Specifically it configures EMET to detect exploits for the following applications:

+
    +
  • 7-Zip +
  • Adobe Acrobat +
  • Adobe Reader +
  • Adobe Photoshop +
  • Apple Safari +
  • Apple Quicktime +
  • Apple iTunes +
  • FoxIT Reader +
  • Google Chrome +
  • Google Talk +
  • Java +
  • mIRC +
  • Mozilla Firefox +
  • Mozilla Thunderbird +
  • Opera Browser +
  • Pidgin +
  • Real Player +
  • VLC +
  • Winamp +
  • WinRAR +
  • WinZIP
+

This Fixlet in particular excludes ALL EAF configurations.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists file "emet_conf.exe" of folder whose (name of it starts with "EMET") of program files x32 folder + "5.5.0.0" as version]]> + (size of (set of ("*\Adobe\*\Reader\AcroRd32.exe";"*\Adobe\Acrobat*\Acrobat\Acrobat.exe";"*\Java\jre*\bin\java.exe";"*\Java\jre*\bin\javaw.exe";"*\Java\jre*\bin\javaws.exe";"*\Google\Chrome\Application\chrome.exe";"*\Google\Google Talk\googletalk.exe";"*\Mozilla Firefox\firefox.exe";"*\Mozilla Firefox\plugin-container.exe";"*\Mozilla Thunderbird\thunderbird.exe";"*\Mozilla Thunderbird\plugin-container.exe";"*\Adobe\Adobe Photoshop CS*\Photoshop.exe";"*\Winamp\winamp.exe";"*\Opera\opera.exe";"*\Opera\*\opera.exe";"*\WinRAR\winrar.exe";"*\WinRAR\rar.exe";"*\WinRAR\unrar.exe";"*\WinZip\winzip32.exe";"*\WinZip\winzip64.exe";"*\VideoLAN\VLC\vlc.exe";"*\Real\RealPlayer\realconverter.exe";"*\Real\RealPlayer\realplay.exe";"*\mIRC\mirc.exe";"*\7-Zip\7z.exe";"*\7-Zip\7zG.exe";"*\7-Zip\7zFM.exe";"*\Safari\Safari.exe";"*\QuickTime\QuickTimePlayer.exe";"*\iTunes\iTunes.exe";"*\Pidgin\pidgin.exe";"*\Foxit Reader\Foxit Reader.exe") - set of names of values of key "HKEY_LOCAL_MACHINE\Software\Microsoft\EMET\AppSettings" of native registry) != 0) | true + Internal + 2016-06-06 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + chrome_child.dll + + + + + + + + + + + + + + + + + + + mozjs.dll;xul.dll + + + + + + + + + + + + + + + + + + + + + + + + AcroRd32.dll;Acrofx32.dll;AcroForm.api + + + + + + + AcroRd32.dll;Acrofx32.dll;AcroForm.api + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_end_ + +move __createfile defaults.xml + +waithidden "{parameter "emetconfexe"}" --import defaults.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Add 127.0.0.1 FQDN - Windows (23379).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Add 127.0.0.1 FQDN - Windows (23379).bes index 7ea924c0d..0aae46c3c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Add 127.0.0.1 FQDN - Windows (23379).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Add 127.0.0.1 FQDN - Windows (23379).bes @@ -1,52 +1,52 @@ - - - - - Config - Hosts File - Add 127.0.0.1 FQDN - Windows - This Fixlet adds the BigFix Managed "127.0.0.1 this.machines.hostname" to the hosts file on the machine.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - not exists (it contains "127.0.0.1" and it contains dns name as lowercase) of lines containing "#BigFixManagedEntry" of file "hosts" of folder "drivers\etc" of system x64 folder - Internal - 2017-01-31 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -parameter "Hosts"="{pathname of folder "drivers\etc" of system x64 folder}\hosts" -parameter "HostsBackup"="{pathname of folder "drivers\etc" of system x64 folder}\hosts.old" - -delete __createfile - -createfile until _end_ -{(lines whose (it does not contain "#BigFixManagedEntry") of files (parameter "Hosts"))} -127.0.0.1 {dns name as lowercase} " #BigFixManagedEntry" -_end_ - -if {exists file (parameter "Hosts")} - delete "{parameter "HostsBackup"}" - move "{parameter "Hosts"}" "{parameter "HostsBackup"}" -endif - -copy __createfile "{parameter "Hosts"}" - -
-
+ + + + + Config - Hosts File - Add 127.0.0.1 FQDN - Windows + This Fixlet adds the BigFix Managed "127.0.0.1 this.machines.hostname" to the hosts file on the machine.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists (it contains "127.0.0.1" and it contains dns name as lowercase) of lines containing "#BigFixManagedEntry" of file "hosts" of folder "drivers\etc" of system x64 folder + Internal + 2017-01-31 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "Hosts"="{pathname of folder "drivers\etc" of system x64 folder}\hosts" +parameter "HostsBackup"="{pathname of folder "drivers\etc" of system x64 folder}\hosts.old" + +delete __createfile + +createfile until _end_ +{(lines whose (it does not contain "#BigFixManagedEntry") of files (parameter "Hosts"))} +127.0.0.1 {dns name as lowercase} " #BigFixManagedEntry" +_end_ + +if {exists file (parameter "Hosts")} + delete "{parameter "HostsBackup"}" + move "{parameter "Hosts"}" "{parameter "HostsBackup"}" +endif + +copy __createfile "{parameter "Hosts"}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Remove 127.0.0.1 FQDN - Windows (23380).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Remove 127.0.0.1 FQDN - Windows (23380).bes index dc93d0e68..e48c1a2be 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Remove 127.0.0.1 FQDN - Windows (23380).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Remove 127.0.0.1 FQDN - Windows (23380).bes @@ -1,51 +1,51 @@ - - - - - Config - Hosts File - Remove 127.0.0.1 FQDN - Windows - This Fixlet removes the BigFix Managed "127.0.0.1 this.machines.hostname" from the hosts file on the machine.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists (it contains "127.0.0.1" and it contains dns name as lowercase) of lines containing "#BigFixManagedEntry" of file "hosts" of folder "drivers\etc" of system x64 folder - Internal - 2017-01-31 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -parameter "Hosts"="{pathname of folder "drivers\etc" of system x64 folder}\hosts" -parameter "HostsBackup"="{pathname of folder "drivers\etc" of system x64 folder}\hosts.old" - -delete __createfile - -createfile until _end_ -{(lines whose (it does not contain "#BigFixManagedEntry") of files (parameter "Hosts"))} -_end_ - -if {exists file (parameter "Hosts")} - delete "{parameter "HostsBackup"}" - move "{parameter "Hosts"}" "{parameter "HostsBackup"}" -endif - -copy __createfile "{parameter "Hosts"}" - -
-
+ + + + + Config - Hosts File - Remove 127.0.0.1 FQDN - Windows + This Fixlet removes the BigFix Managed "127.0.0.1 this.machines.hostname" from the hosts file on the machine.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists (it contains "127.0.0.1" and it contains dns name as lowercase) of lines containing "#BigFixManagedEntry" of file "hosts" of folder "drivers\etc" of system x64 folder + Internal + 2017-01-31 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "Hosts"="{pathname of folder "drivers\etc" of system x64 folder}\hosts" +parameter "HostsBackup"="{pathname of folder "drivers\etc" of system x64 folder}\hosts.old" + +delete __createfile + +createfile until _end_ +{(lines whose (it does not contain "#BigFixManagedEntry") of files (parameter "Hosts"))} +_end_ + +if {exists file (parameter "Hosts")} + delete "{parameter "HostsBackup"}" + move "{parameter "Hosts"}" "{parameter "HostsBackup"}" +endif + +copy __createfile "{parameter "Hosts"}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Reset to Default - Windows (23381).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Reset to Default - Windows (23381).bes index b52a0bee6..aba8df22f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Reset to Default - Windows (23381).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hosts File - Reset to Default - Windows (23381).bes @@ -1,70 +1,70 @@ - - - - - Config - Hosts File - Reset to Default - Windows - This Fixlet resets the hosts file to its default configuration on Windows. - windows of operating system - exists (lines whose (it does not contain "#" and it does not equal "") of file "hosts" of folder "drivers\etc" of system x64 folder) - Internal - 2017-01-31 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -parameter "Hosts"="{pathname of folder "drivers\etc" of system x64 folder}\hosts" -parameter "HostsBackup"="{pathname of folder "drivers\etc" of system x64 folder}\hosts.old" - -delete __createfile - -createfile until _end_ -# Copyright (c) 1993-2009 Microsoft Corp. -# -# This is a sample HOSTS file used by Microsoft TCP/IP for Windows. -# -# This file contains the mappings of IP addresses to host names. Each -# entry should be kept on an individual line. The IP address should -# be placed in the first column followed by the corresponding host name. -# The IP address and the host name should be separated by at least one -# space. -# -# Additionally, comments (such as these) may be inserted on individual -# lines or following the machine name denoted by a '#' symbol. -# -# For example: -# -# 102.54.94.97 rhino.acme.com # source server -# 38.25.63.10 x.acme.com # x client host - -# localhost name resolution is handled within DNS itself. -# 127.0.0.1 localhost -# ::1 localhost -_end_ - -if {exists file (parameter "Hosts")} - delete "{parameter "HostsBackup"}" - move "{parameter "Hosts"}" "{parameter "HostsBackup"}" -endif - -copy __createfile "{parameter "Hosts"}" - - - + + + + + Config - Hosts File - Reset to Default - Windows + This Fixlet resets the hosts file to its default configuration on Windows. + windows of operating system + exists (lines whose (it does not contain "#" and it does not equal "") of file "hosts" of folder "drivers\etc" of system x64 folder) + Internal + 2017-01-31 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "Hosts"="{pathname of folder "drivers\etc" of system x64 folder}\hosts" +parameter "HostsBackup"="{pathname of folder "drivers\etc" of system x64 folder}\hosts.old" + +delete __createfile + +createfile until _end_ +# Copyright (c) 1993-2009 Microsoft Corp. +# +# This is a sample HOSTS file used by Microsoft TCP/IP for Windows. +# +# This file contains the mappings of IP addresses to host names. Each +# entry should be kept on an individual line. The IP address should +# be placed in the first column followed by the corresponding host name. +# The IP address and the host name should be separated by at least one +# space. +# +# Additionally, comments (such as these) may be inserted on individual +# lines or following the machine name denoted by a '#' symbol. +# +# For example: +# +# 102.54.94.97 rhino.acme.com # source server +# 38.25.63.10 x.acme.com # x client host + +# localhost name resolution is handled within DNS itself. +# 127.0.0.1 localhost +# ::1 localhost +_end_ + +if {exists file (parameter "Hosts")} + delete "{parameter "HostsBackup"}" + move "{parameter "Hosts"}" "{parameter "HostsBackup"}" +endif + +copy __createfile "{parameter "Hosts"}" + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Disable - Windows (20654).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Disable - Windows (20654).bes index 4072f0cab..d05bb6282 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Disable - Windows (20654).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Disable - Windows (20654).bes @@ -1,38 +1,38 @@ - - - - - Config - Hyper-V Platform - Disable - Windows - This Fixlet enables Hyper-V Platform in Windows to support the deployment of Credential Guard - windows of operating system - set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) contains "Hyper-V Platform" - Virtualization Based Security - Internal - 2016-05-13 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} -// Enter your action script here - -wait dism.exe /NoRestart /Online /Disable-Feature:Microsoft-Hyper-V-Hypervisor - - - + + + + + Config - Hyper-V Platform - Disable - Windows + This Fixlet enables Hyper-V Platform in Windows to support the deployment of Credential Guard + windows of operating system + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) contains "Hyper-V Platform" + Virtualization Based Security + Internal + 2016-05-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +// Enter your action script here + +wait dism.exe /NoRestart /Online /Disable-Feature:Microsoft-Hyper-V-Hypervisor + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Enable - Windows (20655).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Enable - Windows (20655).bes index 626100dc3..cfbce8a5e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Enable - Windows (20655).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Hyper-V Platform - Enable - Windows (20655).bes @@ -1,39 +1,39 @@ - - - - - Config - Hyper-V Platform - Enable - Windows - This Fixlet enables Hyper-V Platform in Windows to support the deployment of Credential Guard - windows of operating system - set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) does not contain "Hyper-V Platform" - set of (string values of properties "Caption" of select objects "* from win32_optionalfeature" of wmi) contains "Hyper-V Platform" - Virtualization Based Security - Internal - 2016-05-13 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} -// Enter your action script here - -wait dism.exe /NoRestart /Online /Enable-Feature:Microsoft-Hyper-V-Hypervisor /all - - - + + + + + Config - Hyper-V Platform - Enable - Windows + This Fixlet enables Hyper-V Platform in Windows to support the deployment of Credential Guard + windows of operating system + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) does not contain "Hyper-V Platform" + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature" of wmi) contains "Hyper-V Platform" + Virtualization Based Security + Internal + 2016-05-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +// Enter your action script here + +wait dism.exe /NoRestart /Online /Enable-Feature:Microsoft-Hyper-V-Hypervisor /all + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Disable - Windows (20656).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Disable - Windows (20656).bes index f41497c3d..1a200f28c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Disable - Windows (20656).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Disable - Windows (20656).bes @@ -1,38 +1,38 @@ - - - - - Config - Isolated User Mode - Disable - Windows - This Fixlet disables Isolated User Mode in Windows to support the removal of Credential Guard - windows of operating system - set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) does not contain "Isolated User Mode" - set of (string values of properties "Caption" of select objects "* from win32_optionalfeature" of wmi) contains "Isolated User Mode" - Virtualization Based Security - Internal - 2016-05-13 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait dism.exe /NoRestart /Online /Disable-Feature:IsolatedUserMode - - - + + + + + Config - Isolated User Mode - Disable - Windows + This Fixlet disables Isolated User Mode in Windows to support the removal of Credential Guard + windows of operating system + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) does not contain "Isolated User Mode" + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature" of wmi) contains "Isolated User Mode" + Virtualization Based Security + Internal + 2016-05-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait dism.exe /NoRestart /Online /Disable-Feature:IsolatedUserMode + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Enable - Windows (20657).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Enable - Windows (20657).bes index de1c6b5a1..a5207ce9e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Enable - Windows (20657).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Isolated User Mode - Enable - Windows (20657).bes @@ -1,38 +1,38 @@ - - - - - Config - Isolated User Mode - Enable - Windows - This Fixlet enables Isolated User Mode in Windows to support the deployment of Credential Guard - windows of operating system - set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) does not contain "Isolated User Mode" - set of (string values of properties "Caption" of select objects "* from win32_optionalfeature" of wmi) contains "Isolated User Mode" - Virtualization Based Security - Internal - 2016-05-13 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait dism.exe /NoRestart /Online /Enable-Feature:IsolatedUserMode /All - - - + + + + + Config - Isolated User Mode - Enable - Windows + This Fixlet enables Isolated User Mode in Windows to support the deployment of Credential Guard + windows of operating system + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature where installstate= 1" of wmi) does not contain "Isolated User Mode" + set of (string values of properties "Caption" of select objects "* from win32_optionalfeature" of wmi) contains "Isolated User Mode" + Virtualization Based Security + Internal + 2016-05-13 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait dism.exe /NoRestart /Online /Enable-Feature:IsolatedUserMode /All + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Microsoft Remote Desktop - Enable RDP - Windows (23555).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Microsoft Remote Desktop - Enable RDP - Windows (23555).bes index 1a34012fc..cdb8b8f85 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Microsoft Remote Desktop - Enable RDP - Windows (23555).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Microsoft Remote Desktop - Enable RDP - Windows (23555).bes @@ -1,40 +1,40 @@ - - - - - Config - Microsoft Remote Desktop - Enable RDP - Windows - This Fixlet enables RDP on the targeted machine.

-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- windows of operating system - exists values "fDenyTSConnections" whose (it != 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of registry - Internal - 2017-02-01 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]" "fDenyTSConnections"=dword:00000000 - -waithidden "{pathname of file "sc.exe" of system folder}" config TermService start= demand - -waithidden "{pathname of file "sc.exe" of system folder}" start TermService - - -
-
+ + + + + Config - Microsoft Remote Desktop - Enable RDP - Windows + This Fixlet enables RDP on the targeted machine.

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + exists values "fDenyTSConnections" whose (it != 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of registry + Internal + 2017-02-01 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]" "fDenyTSConnections"=dword:00000000 + +waithidden "{pathname of file "sc.exe" of system folder}" config TermService start= demand + +waithidden "{pathname of file "sc.exe" of system folder}" start TermService + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Balanced - Windows (20557).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Balanced - Windows (20557).bes index ec43a76bd..6a46c1fe5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Balanced - Windows (20557).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Balanced - Windows (20557).bes @@ -1,37 +1,37 @@ - - - - - Config - Power Policy - Set to Balanced - Windows - For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
- "5.1"]]> - string value of selects "ElementName from win32_powerplan where isActive = True" of wmi "Root\CIMV2\power" != "Balanced" - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait powercfg -s "381b4222-f694-41f0-9685-ff5bb260df2e" - -
-
+ + + + + Config - Power Policy - Set to Balanced - Windows + For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ "5.1"]]> + string value of selects "ElementName from win32_powerplan where isActive = True" of wmi "Root\CIMV2\power" != "Balanced" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait powercfg -s "381b4222-f694-41f0-9685-ff5bb260df2e" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to High Performance - Windows (20559).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to High Performance - Windows (20559).bes index 4f43b4ec7..c88929dda 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to High Performance - Windows (20559).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to High Performance - Windows (20559).bes @@ -1,37 +1,37 @@ - - - - - Config - Power Policy - Set to High Performance - Windows - For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
- "5.1"]]> - string value of selects "ElementName from win32_powerplan where isActive = True" of wmi "Root\CIMV2\power" != "High Performance" - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait powercfg -s "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" - -
-
+ + + + + Config - Power Policy - Set to High Performance - Windows + For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ "5.1"]]> + string value of selects "ElementName from win32_powerplan where isActive = True" of wmi "Root\CIMV2\power" != "High Performance" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait powercfg -s "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Power Saver - Windows (20561).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Power Saver - Windows (20561).bes index 23bc1a3e7..e6400c88a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Power Saver - Windows (20561).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Power Saver - Windows (20561).bes @@ -1,37 +1,37 @@ - - - - - Config - Power Policy - Set to Power Saver - Windows - Sets the Windows Power Policy to Power Saver.

-

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
- "5.1"]]> - string value of selects "ElementName from win32_powerplan where isActive = True" of wmi "Root\CIMV2\power" != "Power Saver" - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait powercfg -s "a1841308-3541-4fab-bc81-f71556f20b4a" - -
-
+ + + + + Config - Power Policy - Set to Power Saver - Windows + Sets the Windows Power Policy to Power Saver.

+

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ "5.1"]]> + string value of selects "ElementName from win32_powerplan where isActive = True" of wmi "Root\CIMV2\power" != "Power Saver" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait powercfg -s "a1841308-3541-4fab-bc81-f71556f20b4a" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Presentation Mode - Windows (24032).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Presentation Mode - Windows (24032).bes index 2e69ce841..08318d93c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Presentation Mode - Windows (24032).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Power Policy - Set to Presentation Mode - Windows (24032).bes @@ -1,34 +1,34 @@ - - - - - Config - Power Policy - Set to Presentation Mode - Windows - Sets the power policy to presentation mode

-

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
- windows of operating system - Internal - 2016-05-02 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - wait powercfg -s "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" - -
-
+ + + + + Config - Power Policy - Set to Presentation Mode - Windows + Sets the power policy to presentation mode

+

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ windows of operating system + Internal + 2016-05-02 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + wait powercfg -s "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Microsoft Search Indexer - Windows (22915).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Microsoft Search Indexer - Windows (22915).bes index c34d882d5..09bba7746 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Microsoft Search Indexer - Windows (22915).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Microsoft Search Indexer - Windows (22915).bes @@ -1,40 +1,40 @@ - - - - - Config - Process Monitor - Microsoft Search Indexer - Windows - Configures the BES Process monitor to monitor for a process.

-

Specifically, this fixlet configures it to monitor the following Processes:

-
    -
  1. SearchIndexer.exe
-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists processes (substrings separated by ";" of "SearchIndexer.exe") - not exists values whose (it = "SearchIndexer.exe") of settings "besprocessmonitor-microsoft-windows-searchindexer" of client - Service Monitor - Internal - 2016-10-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - setting "besprocessmonitor-microsoft-windows-searchindexer"="SearchIndexer.exe" on "{now}" for client - -
-
+ + + + + Config - Process Monitor - Microsoft Search Indexer - Windows + Configures the BES Process monitor to monitor for a process.

+

Specifically, this fixlet configures it to monitor the following Processes:

+
    +
  1. SearchIndexer.exe
+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists processes (substrings separated by ";" of "SearchIndexer.exe") + not exists values whose (it = "SearchIndexer.exe") of settings "besprocessmonitor-microsoft-windows-searchindexer" of client + Service Monitor + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + setting "besprocessmonitor-microsoft-windows-searchindexer"="SearchIndexer.exe" on "{now}" for client + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows (23032).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows (23032).bes index 9f545bea6..abc4b61d3 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows (23032).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows (23032).bes @@ -1,36 +1,36 @@ - - - - - Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows - Configures the BES Process Monitor to only report process failure after 10 minutes of system uptime.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - not exists values whose (it = "10") of settings "besprocessmonitor-audit-delay" of client - Service Monitor - Internal - 2016-10-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - setting "besprocessmonitor-audit-delay"="10" on "{now}" for client - -
-
+ + + + + Config - Process Monitor - Set Audit Delay to 10 Minutes - Windows + Configures the BES Process Monitor to only report process failure after 10 minutes of system uptime.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists values whose (it = "10") of settings "besprocessmonitor-audit-delay" of client + Service Monitor + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + setting "besprocessmonitor-audit-delay"="10" on "{now}" for client + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows (23033).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows (23033).bes index 5ba62a7eb..f002698e8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows (23033).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows (23033).bes @@ -1,36 +1,36 @@ - - - - - Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows - Configures the BES Process Monitor to only report process failure after 15 minutes of system uptime.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - not exists values whose (it = "15") of settings "besprocessmonitor-audit-delay" of client - Service Monitor - Internal - 2016-10-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - setting "besprocessmonitor-audit-delay"="15" on "{now}" for client - -
-
+ + + + + Config - Process Monitor - Set Audit Delay to 15 Minutes - Windows + Configures the BES Process Monitor to only report process failure after 15 minutes of system uptime.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists values whose (it = "15") of settings "besprocessmonitor-audit-delay" of client + Service Monitor + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + setting "besprocessmonitor-audit-delay"="15" on "{now}" for client + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows (23034).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows (23034).bes index e50ee6aa6..0ce1716f4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows (23034).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows (23034).bes @@ -1,36 +1,36 @@ - - - - - Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows - Configures the BES Process Monitor to only report process failure after 5 minutes of system uptime.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - not exists values whose (it = "5") of settings "besprocessmonitor-audit-delay" of client - Service Monitor - Internal - 2016-10-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - setting "besprocessmonitor-audit-delay"="5" on "{now}" for client - -
-
+ + + + + Config - Process Monitor - Set Audit Delay to 5 Minutes - Windows + Configures the BES Process Monitor to only report process failure after 5 minutes of system uptime.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists values whose (it = "5") of settings "besprocessmonitor-audit-delay" of client + Service Monitor + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + setting "besprocessmonitor-audit-delay"="5" on "{now}" for client + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Remote Credential Guard - Enable - Windows (23808).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Remote Credential Guard - Enable - Windows (23808).bes index c9f4ca66b..b4db64546 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Remote Credential Guard - Enable - Windows (23808).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Remote Credential Guard - Enable - Windows (23808).bes @@ -1,44 +1,44 @@ - - - - - Config - Remote Credential Guard - Enable - Windows - This Fixlet enables Remote Credential Guard on Windows devices that support it.

-

Credential Guard requires the following:

-
    -
  1. Windows 10 Enterprise
-

For more information on Credential Guard please see: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/remote-credential-guard

]]>
- windows of operating system - "10.0.0.0"]]> - not exists values "DisableRestrictedAdmin" whose (it = 0) of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa" of native registry - Virtualization Based Security - Internal - 2016-05-12 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -regset "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]" "DisableRestrictedAdmin"=dword:00000000 - -action requires restart - -
-
+ + + + + Config - Remote Credential Guard - Enable - Windows + This Fixlet enables Remote Credential Guard on Windows devices that support it.

+

Credential Guard requires the following:

+
    +
  1. Windows 10 Enterprise
+

For more information on Credential Guard please see: https://technet.microsoft.com/en-us/itpro/windows/keep-secure/remote-credential-guard

]]>
+ windows of operating system + "10.0.0.0"]]> + not exists values "DisableRestrictedAdmin" whose (it = 0) of keys "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa" of native registry + Virtualization Based Security + Internal + 2016-05-12 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +regset "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]" "DisableRestrictedAdmin"=dword:00000000 + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Config - Windows Activation - Set to KMS Activation - Windows (23579).bes b/Sites/Windows Management/Fixlets/Fixlets/Config - Windows Activation - Set to KMS Activation - Windows (23579).bes index 6789e89be..bf2828f59 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Config - Windows Activation - Set to KMS Activation - Windows (23579).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Config - Windows Activation - Set to KMS Activation - Windows (23579).bes @@ -1,50 +1,50 @@ - - - - - Config - Windows Activation - Set to KMS Activation - Windows - This Fixlet configures Windows to use KMS activation using a pre-configured set of generic KMS keys. For this fixlet to work you must have a KMS server defined in DNS or have already defined a KMS server on your devices.

-

Kudos, Compliments, and Thanks to @jgstew for providing the source content for this fixlet: https://bigfix.me/fixlet/details/21368 

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - - /* is NOT a KMS Server */ not boolean value of selects "IsKeyManagementServiceMachine from SoftwareLicensingProduct WHERE (LicenseStatus = 1 and (Name LIKE 'Windows(R), Server%25' or Name LIKE 'Windows Server(R), Server%25'))" of wmi | true - - Internal - 2016-12-09 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - -
-
+ + + + + Config - Windows Activation - Set to KMS Activation - Windows + This Fixlet configures Windows to use KMS activation using a pre-configured set of generic KMS keys. For this fixlet to work you must have a KMS server defined in DNS or have already defined a KMS server on your devices.

+

Kudos, Compliments, and Thanks to @jgstew for providing the source content for this fixlet: https://bigfix.me/fixlet/details/21368 

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + + /* is NOT a KMS Server */ not boolean value of selects "IsKeyManagementServiceMachine from SoftwareLicensingProduct WHERE (LicenseStatus = 1 and (Name LIKE 'Windows(R), Server%25' or Name LIKE 'Windows Server(R), Server%25'))" of wmi | true + + Internal + 2016-12-09 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows - Turn on Synchronize with NTP server (2587).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows - Turn on Synchronize with NTP server (2587).bes index a62a701a1..8568724e0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows - Turn on Synchronize with NTP server (2587).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows - Turn on Synchronize with NTP server (2587).bes @@ -1,39 +1,39 @@ - - - - - Configuration - Windows - Turn on Synchronize with NTP server - This will turn on NTP time sync in windows if and only if it is currently off. - "NoSync" = value "Type" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" of registry - /* Windows Only */ windows of operating system - = "5.1"]]> - exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" of registry - exists value "Type" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" of registry - Configuration - Internal - jgstew - 2011-09-19 - - x-fixlet-modification-time - Thu, 29 Aug 2013 21:57:15 +0000 - - BESC - - - Click - here - to deploy this action. - - regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters]" "Type"="NTP" - - - + + + + + Configuration - Windows - Turn on Synchronize with NTP server + This will turn on NTP time sync in windows if and only if it is currently off. + "NoSync" = value "Type" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" of registry + /* Windows Only */ windows of operating system + = "5.1"]]> + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" of registry + exists value "Type" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" of registry + Configuration + Internal + jgstew + 2011-09-19 + + x-fixlet-modification-time + Thu, 29 Aug 2013 21:57:15 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters]" "Type"="NTP" + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows Update - Allow a Standard User to use Windows Update (2583).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows Update - Allow a Standard User to use Windows Update (2583).bes index 8289a233a..25caf2755 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows Update - Allow a Standard User to use Windows Update (2583).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration - Windows Update - Allow a Standard User to use Windows Update (2583).bes @@ -1,42 +1,42 @@ - - - - - Configuration - Windows Update - Allow a Standard User to use Windows Update - ]]> - exists value "ElevateNonAdmins" whose (1 != it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" of native registry - /* Windows Only */ windows of operating system - = "6.0"]]> - Configuration - jgs194 - 2013-08-29 - - x-fixlet-source - Windows Registry Wizard - - - x-fixlet-modification-time - Thu, 29 Aug 2013 20:28:31 +0000 - - BESC - - - Click&nbsp; - here&nbsp; - to initiate the deployment process. - - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update]" "ElevateNonAdmins"=dword:00000001 - - - - - + + + + + Configuration - Windows Update - Allow a Standard User to use Windows Update + ]]> + exists value "ElevateNonAdmins" whose (1 != it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" of native registry + /* Windows Only */ windows of operating system + = "6.0"]]> + Configuration + jgs194 + 2013-08-29 + + x-fixlet-source + Windows Registry Wizard + + + x-fixlet-modification-time + Thu, 29 Aug 2013 20:28:31 +0000 + + BESC + + + Click&nbsp; + here&nbsp; + to initiate the deployment process. + + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update]" "ElevateNonAdmins"=dword:00000001 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later TODO (6047).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later TODO (6047).bes index 18dc8c6ef..650db581a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later TODO (6047).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later TODO (6047).bes @@ -1,60 +1,60 @@ - - - - - Configuration: Allow Windows Update to be used for Installing Features - Windows 8 or later TODO - - windows of operating system - = "6.2"]]> - not exists values "RepairContentServerSource" whose(it as string = "2") of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing" of (x64 registries;x32 registries) - Configuration - Internal - jgstew - 2015-01-13 - - x-fixlet-modification-time - Tue, 13 Jan 2015 20:26:58 +0000 - - BESC - - - Click - here - to deploy this action. - - -// http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx -// http://support.microsoft.com/kb/900935 -// http://technet.microsoft.com/en-us/library/hh825020.aspx -// http://community.spiceworks.com/how_to/show/30581-install-net-3-5-on-windows-8 -// http://blogs.technet.com/b/yungchou/archive/2013/12/19/windows-server-2012-r2-installation-options-and-features-on-demand-part-2-of-5.aspx -// https://www.vanstechelman.eu/windows-group-policy-encyclopedia/fbb6a5344049e798501f7b5a273784e6/specify-settings-for-optional-component-installation-and-component -// http://windowsitpro.com/article/windowsserver2012/set-central-wim-file-145040 -// http://windowsitpro.com/article/windowsserver2012/add-net-framework-35-vhd-145039 -// http://www.howtogeek.com/116184/how-to-see-which-group-policies-are-applied-to-your-pc-and-user-account/ -// http://technet.microsoft.com/en-us/library/dn482065.aspx -// http://msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx -// http://msdn.microsoft.com/en-us/library/windows/desktop/hh848079(v=vs.85).aspx -// http://blogs.technet.com/b/joscon/archive/2013/03/29/features-on-demand-part-2.aspx - - -// netsh winhttp set proxy proxyservername:portnumber - - -// Set reg to allow WU to be contacted directly -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 - - - - - + + + + + Configuration: Allow Windows Update to be used for Installing Features - Windows 8 or later TODO + + windows of operating system + = "6.2"]]> + not exists values "RepairContentServerSource" whose(it as string = "2") of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing" of (x64 registries;x32 registries) + Configuration + Internal + jgstew + 2015-01-13 + + x-fixlet-modification-time + Tue, 13 Jan 2015 20:26:58 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx +// http://support.microsoft.com/kb/900935 +// http://technet.microsoft.com/en-us/library/hh825020.aspx +// http://community.spiceworks.com/how_to/show/30581-install-net-3-5-on-windows-8 +// http://blogs.technet.com/b/yungchou/archive/2013/12/19/windows-server-2012-r2-installation-options-and-features-on-demand-part-2-of-5.aspx +// https://www.vanstechelman.eu/windows-group-policy-encyclopedia/fbb6a5344049e798501f7b5a273784e6/specify-settings-for-optional-component-installation-and-component +// http://windowsitpro.com/article/windowsserver2012/set-central-wim-file-145040 +// http://windowsitpro.com/article/windowsserver2012/add-net-framework-35-vhd-145039 +// http://www.howtogeek.com/116184/how-to-see-which-group-policies-are-applied-to-your-pc-and-user-account/ +// http://technet.microsoft.com/en-us/library/dn482065.aspx +// http://msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx +// http://msdn.microsoft.com/en-us/library/windows/desktop/hh848079(v=vs.85).aspx +// http://blogs.technet.com/b/joscon/archive/2013/03/29/features-on-demand-part-2.aspx + + +// netsh winhttp set proxy proxyservername:portnumber + + +// Set reg to allow WU to be contacted directly +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later (6067).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later (6067).bes index 231181644..9bcacde15 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later (6067).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Allow Windows Update to be used for Installing Features - Windows 8 or later (6067).bes @@ -1,61 +1,61 @@ - - - - - Configuration: Allow Windows Update to be used for Installing Features - Windows 8 or later - Needs tested.

-

 

]]>
- windows of operating system - = "6.2"]]> - not exists values "RepairContentServerSource" whose(it as string = "2") of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing" of (x64 registries;x32 registries) - Configuration - Internal - jgstew - 2015-01-13 - - x-fixlet-modification-time - Tue, 12 May 2015 20:04:00 +0000 - - BESC - - - Click - here - to deploy this action. - - -// http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx -// http://support.microsoft.com/kb/900935 -// http://technet.microsoft.com/en-us/library/hh825020.aspx -// http://community.spiceworks.com/how_to/show/30581-install-net-3-5-on-windows-8 -// http://blogs.technet.com/b/yungchou/archive/2013/12/19/windows-server-2012-r2-installation-options-and-features-on-demand-part-2-of-5.aspx -// https://www.vanstechelman.eu/windows-group-policy-encyclopedia/fbb6a5344049e798501f7b5a273784e6/specify-settings-for-optional-component-installation-and-component -// http://windowsitpro.com/article/windowsserver2012/set-central-wim-file-145040 -// http://windowsitpro.com/article/windowsserver2012/add-net-framework-35-vhd-145039 -// http://www.howtogeek.com/116184/how-to-see-which-group-policies-are-applied-to-your-pc-and-user-account/ -// http://technet.microsoft.com/en-us/library/dn482065.aspx -// http://msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx -// http://msdn.microsoft.com/en-us/library/windows/desktop/hh848079(v=vs.85).aspx -// http://blogs.technet.com/b/joscon/archive/2013/03/29/features-on-demand-part-2.aspx - - -// netsh winhttp set proxy proxyservername:portnumber - - -// Set reg to allow WU to be contacted directly -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 - - - -
-
+ + + + + Configuration: Allow Windows Update to be used for Installing Features - Windows 8 or later + Needs tested.

+

 

]]>
+ windows of operating system + = "6.2"]]> + not exists values "RepairContentServerSource" whose(it as string = "2") of keys "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing" of (x64 registries;x32 registries) + Configuration + Internal + jgstew + 2015-01-13 + + x-fixlet-modification-time + Tue, 12 May 2015 20:04:00 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx +// http://support.microsoft.com/kb/900935 +// http://technet.microsoft.com/en-us/library/hh825020.aspx +// http://community.spiceworks.com/how_to/show/30581-install-net-3-5-on-windows-8 +// http://blogs.technet.com/b/yungchou/archive/2013/12/19/windows-server-2012-r2-installation-options-and-features-on-demand-part-2-of-5.aspx +// https://www.vanstechelman.eu/windows-group-policy-encyclopedia/fbb6a5344049e798501f7b5a273784e6/specify-settings-for-optional-component-installation-and-component +// http://windowsitpro.com/article/windowsserver2012/set-central-wim-file-145040 +// http://windowsitpro.com/article/windowsserver2012/add-net-framework-35-vhd-145039 +// http://www.howtogeek.com/116184/how-to-see-which-group-policies-are-applied-to-your-pc-and-user-account/ +// http://technet.microsoft.com/en-us/library/dn482065.aspx +// http://msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx +// http://msdn.microsoft.com/en-us/library/windows/desktop/hh848079(v=vs.85).aspx +// http://blogs.technet.com/b/joscon/archive/2013/03/29/features-on-demand-part-2.aspx + + +// netsh winhttp set proxy proxyservername:portnumber + + +// Set reg to allow WU to be contacted directly +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing]" "RepairContentServerSource"=dword:00000002 + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (3864).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (3864).bes index 26bede1db..228f25cda 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (3864).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (3864).bes @@ -1,47 +1,47 @@ - - - - - Configuration: Disable serial port ForceFifoEnable - Windows - This task will set the ForceFifoEnable registry setting to 0

-

 

-

References:

-

http://technet.microsoft.com/en-us/library/cc962417.aspx

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - not exists values whose(name of it = "ForceFifoEnable" AND it as string as integer = 0) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial" of native registry - Internal - jgstew - 2014-09-29 - - x-fixlet-modification-time - Mon, 29 Sep 2014 21:51:43 +0000 - - BESC - - - Click - here - to deploy this action. - - -// http://technet.microsoft.com/en-us/library/cc962417.aspx -regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial]" "ForceFifoEnable"=dword:0 - -// the setting may not take effect until the system has been restarted -action requires restart - - - -
-
+ + + + + Configuration: Disable serial port ForceFifoEnable - Windows + This task will set the ForceFifoEnable registry setting to 0

+

 

+

References:

+

http://technet.microsoft.com/en-us/library/cc962417.aspx

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists values whose(name of it = "ForceFifoEnable" AND it as string as integer = 0) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial" of native registry + Internal + jgstew + 2014-09-29 + + x-fixlet-modification-time + Mon, 29 Sep 2014 21:51:43 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://technet.microsoft.com/en-us/library/cc962417.aspx +regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial]" "ForceFifoEnable"=dword:0 + +// the setting may not take effect until the system has been restarted +action requires restart + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (6044).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (6044).bes index 282df2f02..de734063b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (6044).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Disable serial port ForceFifoEnable - Windows (6044).bes @@ -1,47 +1,47 @@ - - - - - Configuration: Disable serial port ForceFifoEnable - Windows - This task will set the ForceFifoEnable registry setting to 0

-

 

-

References:

-

http://technet.microsoft.com/en-us/library/cc962417.aspx

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - not exists values whose(name of it = "ForceFifoEnable" AND it as string as integer = 0) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial" of native registry - Internal - jgstew - 2014-09-29 - - x-fixlet-modification-time - Mon, 29 Sep 2014 21:51:43 +0000 - - BESC - - - Click - here - to deploy this action. - - -// http://technet.microsoft.com/en-us/library/cc962417.aspx -regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial]" "ForceFifoEnable"=dword:0 - -// the setting may not take effect until the system has been restarted -action requires restart - - - -
-
+ + + + + Configuration: Disable serial port ForceFifoEnable - Windows + This task will set the ForceFifoEnable registry setting to 0

+

 

+

References:

+

http://technet.microsoft.com/en-us/library/cc962417.aspx

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists values whose(name of it = "ForceFifoEnable" AND it as string as integer = 0) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial" of native registry + Internal + jgstew + 2014-09-29 + + x-fixlet-modification-time + Mon, 29 Sep 2014 21:51:43 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://technet.microsoft.com/en-us/library/cc962417.aspx +regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Serial]" "ForceFifoEnable"=dword:0 + +// the setting may not take effect until the system has been restarted +action requires restart + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable Kerberos Logging - Windows (3782).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable Kerberos Logging - Windows (3782).bes index 6ce3c4fd1..952673650 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable Kerberos Logging - Windows (3782).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable Kerberos Logging - Windows (3782).bes @@ -1,38 +1,38 @@ - - - - - Configuration: Enable Kerberos Logging - Windows - - /* Windows Only */ windows of operating system - = "5.1"]]> - not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters" whose(exists value "LogLevel" whose(it as integer = 1) of it) of native registry - Internal - jgstew - 2014-05-14 - - x-fixlet-modification-time - Wed, 14 May 2014 15:12:11 +0000 - - BESC - - - Click - here - to deploy this action. - - -regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters]" "LogLevel"=dword:1 - - - - + + + + + Configuration: Enable Kerberos Logging - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters" whose(exists value "LogLevel" whose(it as integer = 1) of it) of native registry + Internal + jgstew + 2014-05-14 + + x-fixlet-modification-time + Wed, 14 May 2014 15:12:11 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters]" "LogLevel"=dword:1 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable NTFS Last Access Update - Windows (6041).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable NTFS Last Access Update - Windows (6041).bes index f0c183afd..fb6df349c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable NTFS Last Access Update - Windows (6041).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Enable NTFS Last Access Update - Windows (6041).bes @@ -1,42 +1,42 @@ - - - - - Configuration: Enable NTFS Last Access Update - Windows - Enable NTFS Last Access Update by setting NtfsDisableLastAccessUpdate to 0.

]]>
- windows of operating system - exists value "NtfsDisableLastAccessUpdate" whose (0 != it as integer) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of native registry - = "6.0"]]> - Registry Edit - Windows Registry Wizard - jgs194 - 2011-08-02 - - x-fixlet-source - Windows Registry Wizard - - - x-fixlet-modification-time - Wed, 06 May 2015 19:09:23 +0000 - - BESC - - - Click&nbsp; - here&nbsp; - to edit the registry to enable NTFS Last Access Update. - - regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]" "NtfsDisableLastAccessUpdate"=dword:00000000 - - -
-
+ + + + + Configuration: Enable NTFS Last Access Update - Windows + Enable NTFS Last Access Update by setting NtfsDisableLastAccessUpdate to 0.

]]>
+ windows of operating system + exists value "NtfsDisableLastAccessUpdate" whose (0 != it as integer) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of native registry + = "6.0"]]> + Registry Edit + Windows Registry Wizard + jgs194 + 2011-08-02 + + x-fixlet-source + Windows Registry Wizard + + + x-fixlet-modification-time + Wed, 06 May 2015 19:09:23 +0000 + + BESC + + + Click&nbsp; + here&nbsp; + to edit the registry to enable NTFS Last Access Update. + + regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]" "NtfsDisableLastAccessUpdate"=dword:00000000 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Fix console user column width settings - Windows -TODO_Testing (3865).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Fix console user column width settings - Windows -TODO_Testing (3865).bes index cb4662837..6ab268995 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Fix console user column width settings - Windows -TODO_Testing (3865).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Fix console user column width settings - Windows -TODO_Testing (3865).bes @@ -1,54 +1,54 @@ - - - - - Configuration: Fix console user column width settings - Windows -TODO:Testing - This task sets the per user computer comlumns that have a width of 0 (hidden) to 100. - exists regapp "BESConsole.exe" - /* Windows Only */ windows of operating system - = "5.1"]]> - FALSE /* THIS IS UNTESTED! */ - Internal - 2014-09-30 - - x-fixlet-modification-time - Tue, 30 Sep 2014 17:28:55 +0000 - - BESC - - - Click - here - to deploy this action. - - "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_editRegistry.bat.log" - -endif - -continue if{ not exists ( keys whose(exists values "width" whose(it as integer = 0) of it) of keys of keys "Software\BigFix\Enterprise Console\Preferences\bes.win.psu.edu\ComputerListCtrlColumns" of keys of key "HKEY_USERS" of registry ) } -]]> - - - + + + + + Configuration: Fix console user column width settings - Windows -TODO:Testing + This task sets the per user computer comlumns that have a width of 0 (hidden) to 100. + exists regapp "BESConsole.exe" + /* Windows Only */ windows of operating system + = "5.1"]]> + FALSE /* THIS IS UNTESTED! */ + Internal + 2014-09-30 + + x-fixlet-modification-time + Tue, 30 Sep 2014 17:28:55 +0000 + + BESC + + + Click + here + to deploy this action. + + "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_editRegistry.bat.log" + +endif + +continue if{ not exists ( keys whose(exists values "width" whose(it as integer = 0) of it) of keys of keys "Software\BigFix\Enterprise Console\Preferences\bes.win.psu.edu\ComputerListCtrlColumns" of keys of key "HKEY_USERS" of registry ) } +]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows (3928).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows (3928).bes index e1574aec5..298465dfa 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows (3928).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows (3928).bes @@ -1,116 +1,116 @@ - - - - - Configuration: Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows - - /* Windows Only */ windows of operating system - = "5.1"]]> - /* DELL Only */ exists values "vendor" whose(it as string as uppercase contains "DELL") of structures "bios_information" of smbios - not exists files whose(name of it starts with "results_Dell_Platform_Tags_" AND name of it as lowercase ends with ".log" AND exists lines whose(it contains "ERROR: Could not locate the BIOS interface to access the tags") of it) of folders "__BESData\__Global\Logs" of parent folder of client - ") of following texts of firsts "Asset Tag ...... " of lines whose(it contains "Asset Tag ...... ") of files "results_Dell_Platform_Tags_RPT.log" of folders "__BESData\__Global\Logs" of parent folder of client );( (it as trimmed string) of string values whose(it as trimmed string != "") of selects "ElementName from DCIM_Chassis" of wmi "root\dcim\sysman" ) )]]> - Software Sharing - Internal - jgstew - 2014-11-24 - - x-fixlet-modification-time - Tue, 25 Nov 2014 21:47:24 +0000 - - BESC - - - Click - here - to deploy this action. - - ] [Command] -// -// View/modify Platform Tags -// -// Usage: -// [File:] Specify a path\filename to echo screen text -// [Command] Specify a command to execute -// -// Commands: -// RPT (or ReadPlatformTags) Display All Tag information -// SAT (or SetAssetTag) Set the Asset tag -// DAT (or DeleteAssetTag) Delete the Asset Tag -// SOT (or SetOwnerTag) Set the Owner Tag -// DOT (or DeleteOwnerTag) Delete the Owner Tag -// -// Note: SAT and SOT must be followed by ':' and the string to be used in the tag field -// If spaces are required in the owner tag, use quotes to surround the data -// -// Return Codes: -// 0xFF = Error Condition - Screen will show error -// 0 = Success - -]]> - - - - + + + + + Configuration: Set Asset Tag using Dell Platform Tags Utility 4.006 - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + /* DELL Only */ exists values "vendor" whose(it as string as uppercase contains "DELL") of structures "bios_information" of smbios + not exists files whose(name of it starts with "results_Dell_Platform_Tags_" AND name of it as lowercase ends with ".log" AND exists lines whose(it contains "ERROR: Could not locate the BIOS interface to access the tags") of it) of folders "__BESData\__Global\Logs" of parent folder of client + ") of following texts of firsts "Asset Tag ...... " of lines whose(it contains "Asset Tag ...... ") of files "results_Dell_Platform_Tags_RPT.log" of folders "__BESData\__Global\Logs" of parent folder of client );( (it as trimmed string) of string values whose(it as trimmed string != "") of selects "ElementName from DCIM_Chassis" of wmi "root\dcim\sysman" ) )]]> + Software Sharing + Internal + jgstew + 2014-11-24 + + x-fixlet-modification-time + Tue, 25 Nov 2014 21:47:24 +0000 + + BESC + + + Click + here + to deploy this action. + + ] [Command] +// +// View/modify Platform Tags +// +// Usage: +// [File:] Specify a path\filename to echo screen text +// [Command] Specify a command to execute +// +// Commands: +// RPT (or ReadPlatformTags) Display All Tag information +// SAT (or SetAssetTag) Set the Asset tag +// DAT (or DeleteAssetTag) Delete the Asset Tag +// SOT (or SetOwnerTag) Set the Owner Tag +// DOT (or DeleteOwnerTag) Delete the Owner Tag +// +// Note: SAT and SOT must be followed by ':' and the string to be used in the tag field +// If spaces are required in the owner tag, use quotes to surround the data +// +// Return Codes: +// 0xFF = Error Condition - Screen will show error +// 0 = Success + +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows (3927).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows (3927).bes index 823366a41..0eee03b98 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows (3927).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows (3927).bes @@ -1,110 +1,110 @@ - - - - - Configuration: Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows - - /* Windows Only */ windows of operating system - = "5.1"]]> - /* DELL Only */ exists values "vendor" whose(it as string as uppercase contains "DELL") of structures "bios_information" of smbios - /* Only if supported */ not exists files whose(name of it starts with "results_Dell_Platform_Tags_" AND name of it as lowercase ends with ".log" AND exists lines whose(it contains "ERROR: Could not locate the BIOS interface to access the tags") of it) of folders "__BESData\__Global\Logs" of parent folder of client - " AND it != "") of following texts of firsts "Owner Tag ...... " of lines whose(it contains "Owner Tag ...... ") of files "results_Dell_Platform_Tags_RPT.log" of folders "__BESData\__Global\Logs" of parent folder of client ) )]]> - Software Sharing - Internal - jgstew - 2014-11-24 - - x-fixlet-modification-time - Tue, 25 Nov 2014 21:44:23 +0000 - - BESC - - - Click - here - to deploy this action. - - 2 AND it != "abc123@company.com" ) } -waithidden __Download\PlatformTags{if (x64 of operating system) then "64" else "32"}.exe File:"{ pathname of folder "__BESData\__Global\Logs" of parent folder of client }\results_Dell_Platform_Tags_SOT.log" SOT:{ (parameter "Owner_Tag") } - -// GET PlatformTag report -waithidden __Download\PlatformTags{if (x64 of operating system) then "64" else "32"}.exe File:"{ pathname of folder "__BESData\__Global\Logs" of parent folder of client }\results_Dell_Platform_Tags_RPT.log" RPT - -// restart "DSM SA Data Manager" service (to update WMI with new owner tag) -// http://superuser.com/questions/301765/restart-a-windows-service-from-the-command-line -waithidden net stop "DSM SA Data Manager" && net start "DSM SA Data Manager" -// REQUIRE Restart - seems that WMI does not update until the DSM SA Data Manager service is restarted (or perhaps until it is refreshed) -// action requires restart - -// PlatformTags.exe -- Version 4.006 -// (C) Copyright 1993-2012 Dell Inc. -// -// PlatformTags.exe [File:] [Command] -// -// View/modify Platform Tags -// -// Usage: -// [File:] Specify a path\filename to echo screen text -// [Command] Specify a command to execute -// -// Commands: -// RPT (or ReadPlatformTags) Display All Tag information -// SAT (or SetAssetTag) Set the Asset tag -// DAT (or DeleteAssetTag) Delete the Asset Tag -// SOT (or SetOwnerTag) Set the Owner Tag -// DOT (or DeleteOwnerTag) Delete the Owner Tag -// -// Note: SAT and SOT must be followed by ':' and the string to be used in the tag field -// If spaces are required in the owner tag, use quotes to surround the data -// -// Return Codes: -// 0xFF = Error Condition - Screen will show error -// 0 = Success - -]]> - - - - + + + + + Configuration: Set Owner Tag using Dell Platform Tags Utility 4.006 - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + /* DELL Only */ exists values "vendor" whose(it as string as uppercase contains "DELL") of structures "bios_information" of smbios + /* Only if supported */ not exists files whose(name of it starts with "results_Dell_Platform_Tags_" AND name of it as lowercase ends with ".log" AND exists lines whose(it contains "ERROR: Could not locate the BIOS interface to access the tags") of it) of folders "__BESData\__Global\Logs" of parent folder of client + " AND it != "") of following texts of firsts "Owner Tag ...... " of lines whose(it contains "Owner Tag ...... ") of files "results_Dell_Platform_Tags_RPT.log" of folders "__BESData\__Global\Logs" of parent folder of client ) )]]> + Software Sharing + Internal + jgstew + 2014-11-24 + + x-fixlet-modification-time + Tue, 25 Nov 2014 21:44:23 +0000 + + BESC + + + Click + here + to deploy this action. + + 2 AND it != "abc123@company.com" ) } +waithidden __Download\PlatformTags{if (x64 of operating system) then "64" else "32"}.exe File:"{ pathname of folder "__BESData\__Global\Logs" of parent folder of client }\results_Dell_Platform_Tags_SOT.log" SOT:{ (parameter "Owner_Tag") } + +// GET PlatformTag report +waithidden __Download\PlatformTags{if (x64 of operating system) then "64" else "32"}.exe File:"{ pathname of folder "__BESData\__Global\Logs" of parent folder of client }\results_Dell_Platform_Tags_RPT.log" RPT + +// restart "DSM SA Data Manager" service (to update WMI with new owner tag) +// http://superuser.com/questions/301765/restart-a-windows-service-from-the-command-line +waithidden net stop "DSM SA Data Manager" && net start "DSM SA Data Manager" +// REQUIRE Restart - seems that WMI does not update until the DSM SA Data Manager service is restarted (or perhaps until it is refreshed) +// action requires restart + +// PlatformTags.exe -- Version 4.006 +// (C) Copyright 1993-2012 Dell Inc. +// +// PlatformTags.exe [File:] [Command] +// +// View/modify Platform Tags +// +// Usage: +// [File:] Specify a path\filename to echo screen text +// [Command] Specify a command to execute +// +// Commands: +// RPT (or ReadPlatformTags) Display All Tag information +// SAT (or SetAssetTag) Set the Asset tag +// DAT (or DeleteAssetTag) Delete the Asset Tag +// SOT (or SetOwnerTag) Set the Owner Tag +// DOT (or DeleteOwnerTag) Delete the Owner Tag +// +// Note: SAT and SOT must be followed by ':' and the string to be used in the tag field +// If spaces are required in the owner tag, use quotes to surround the data +// +// Return Codes: +// 0xFF = Error Condition - Screen will show error +// 0 = Success + +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Suppress Balloon Pop-Ups - Windows (3781).bes b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Suppress Balloon Pop-Ups - Windows (3781).bes index 0ebc725eb..cd9aec873 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Suppress Balloon Pop-Ups - Windows (3781).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configuration_ Suppress Balloon Pop-Ups - Windows (3781).bes @@ -1,44 +1,44 @@ - - - - - Configuration: Suppress Balloon Pop-Ups - Windows -  Does this work in HKLM?  How do I test if balloon pop ups are actually suppressed?

-

 

-

References:

-

http://msdn.microsoft.com/en-us/library/ms940877(v=winembedded.5).aspx

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" whose(value "EnableBaloonTips" of it = 0) of native registry - Internal - jgs194 - 2014-05-02 - - x-fixlet-modification-time - Fri, 02 May 2014 17:11:57 +0000 - - BESC - - - Click - here - to deploy this action. - - -// http://msdn.microsoft.com/en-us/library/ms940877(v=winembedded.5).aspx - -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]" "EnableBaloonTips"=dword:00000000 - - -
-
+ + + + + Configuration: Suppress Balloon Pop-Ups - Windows +  Does this work in HKLM?  How do I test if balloon pop ups are actually suppressed?

+

 

+

References:

+

http://msdn.microsoft.com/en-us/library/ms940877(v=winembedded.5).aspx

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" whose(value "EnableBaloonTips" of it = 0) of native registry + Internal + jgs194 + 2014-05-02 + + x-fixlet-modification-time + Fri, 02 May 2014 17:11:57 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://msdn.microsoft.com/en-us/library/ms940877(v=winembedded.5).aspx + +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]" "EnableBaloonTips"=dword:00000000 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (100).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (100).bes index 62f6a8085..ae98f5c16 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (100).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (100).bes @@ -1,44 +1,44 @@ - - - - - Configure Cascading Admin Tools Menu - - - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-10-01 - <Unspecified> - - x-fixlet-modification-time - Mon, 01 Oct 2012 23:09:39 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - - - - Click - here - to article describing enabling this on xp. - - http://www.liutilities.com/products/registrybooster/tweaklibrary/tweaks/10226/ - - - + + + + + Configure Cascading Admin Tools Menu + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-01 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 23:09:39 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + + + + Click + here + to article describing enabling this on xp. + + http://www.liutilities.com/products/registrybooster/tweaklibrary/tweaks/10226/ + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (85).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (85).bes index eba910e0c..526fd314f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (85).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Cascading Admin Tools Menu (85).bes @@ -1,44 +1,44 @@ - - - - - Configure Cascading Admin Tools Menu - - - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-10-01 - <Unspecified> - - x-fixlet-modification-time - Mon, 01 Oct 2012 23:09:39 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - - - - Click - here - to article describing enabling this on xp. - - http://www.liutilities.com/products/registrybooster/tweaklibrary/tweaks/10226/ - - - + + + + + Configure Cascading Admin Tools Menu + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-01 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 23:09:39 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + + + + Click + here + to article describing enabling this on xp. + + http://www.liutilities.com/products/registrybooster/tweaklibrary/tweaks/10226/ + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Computer as _Always On_ (2570).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Computer as _Always On_ (2570).bes index 735c3716b..6f86fe478 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Computer as _Always On_ (2570).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Computer as _Always On_ (2570).bes @@ -1,44 +1,44 @@ - - - - - Configure Computer as "Always On" - This fixlet will "tag" the targeted endpoints with a client setting to exclude it from PowerManagement Settings. - if exists setting "IsAlwaysOn" of client then value of setting "IsAlwaysOn" of client as boolean != true else true - Power Configuration Flag - danielheth@bigfix.me - <Unspecified> - 2013-08-27 - <Unspecified> - - x-fixlet-modification-time - Tue, 27 Aug 2013 19:50:23 +0000 - - SYST - - - Click - here - to configure&nbsp;as an "Always On" computer. - - setting "IsAlwaysOn"="true" on "{now}" for client - - - - Click - here - to configure&nbsp;NOT to be an "Always On" computer - - setting delete "IsAlwaysOn" on "{now}" - - - + + + + + Configure Computer as "Always On" + This fixlet will "tag" the targeted endpoints with a client setting to exclude it from PowerManagement Settings. + if exists setting "IsAlwaysOn" of client then value of setting "IsAlwaysOn" of client as boolean != true else true + Power Configuration Flag + danielheth@bigfix.me + <Unspecified> + 2013-08-27 + <Unspecified> + + x-fixlet-modification-time + Tue, 27 Aug 2013 19:50:23 +0000 + + SYST + + + Click + here + to configure&nbsp;as an "Always On" computer. + + setting "IsAlwaysOn"="true" on "{now}" for client + + + + Click + here + to configure&nbsp;NOT to be an "Always On" computer + + setting delete "IsAlwaysOn" on "{now}" + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Disk Cleanup_ Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) (6035).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Disk Cleanup_ Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) (6035).bes index 405cdca40..1bf1073e6 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Disk Cleanup_ Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) (6035).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Disk Cleanup_ Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) (6035).bes @@ -1,59 +1,59 @@ - - - - - Configure Disk Cleanup: Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) - Removes any Files/Folders from the Recycle Bin, that were Recycled more than 7 days ago.

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - = "6" as version]]> - (exists folders "$Recycle.Bin" of root folders of drives) - Internal - 2015-04-28 - - x-fixlet-modification-time - Tue, 28 Apr 2015 18:33:07 +0000 - - BESC - - - Click - here - to deploy this action. - - . -// For each deleted file, there's a matching Index file $I. that gets created -// -// We can use the modification time of the $I<*> files to determine how long ago the file was deleted, and then remove both the $I file and the $R file -// -// Deleted folders get a whole folder name for $I and $R, and beneath the $R folder the original filenames are kept. So we can remove whole directories at once -// based on the timestamp of the matching $I file - timestamped to when the folder was deleted - -// The following builds a fully-qualified list of both files & folders to remove -// (item 0 of it & "\" & item 1 of it; item 0 of it & "\" & item 2 of it) of (pathname of parent folder of it, name of it, "$R" & following text of first "$I" of name of it) of (files of it; folders of it) whose (name of it starts with "$I" and (now - modification time of it) / day > 7 ) of folders of folders "$Recycle.Bin" of root folders of drives - - -delete __appendfile - -appendfile {concatenation "%0d%0a" of ("attrib -s -h -r %22" & it & "%22%0d%0adel /q %22" & it & "%22%0d%0ard /s /q %22" & it & "%22") of (item 0 of it & "\" & item 1 of it; item 0 of it & "\" & item 2 of it) of (pathname of parent folder of it, name of it, "$R" & following text of first "$I" of name of it)of (descendants of it; descendant folders of it) whose (name of it starts with "$I" and (now - modification time of it) / day > 7 ) of folders "$Recycle.Bin" of root folders of drives} - -delete "empty_recycle.cmd" -move __appendfile "empty_recycle.cmd" -waithidden "empty_recycle.cmd" - -]]> - -
-
+ + + + + Configure Disk Cleanup: Recycle Bin - Remove files deleted more than 7 days ago (Windows Vista and Higher) + Removes any Files/Folders from the Recycle Bin, that were Recycled more than 7 days ago.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = "6" as version]]> + (exists folders "$Recycle.Bin" of root folders of drives) + Internal + 2015-04-28 + + x-fixlet-modification-time + Tue, 28 Apr 2015 18:33:07 +0000 + + BESC + + + Click + here + to deploy this action. + + . +// For each deleted file, there's a matching Index file $I. that gets created +// +// We can use the modification time of the $I<*> files to determine how long ago the file was deleted, and then remove both the $I file and the $R file +// +// Deleted folders get a whole folder name for $I and $R, and beneath the $R folder the original filenames are kept. So we can remove whole directories at once +// based on the timestamp of the matching $I file - timestamped to when the folder was deleted + +// The following builds a fully-qualified list of both files & folders to remove +// (item 0 of it & "\" & item 1 of it; item 0 of it & "\" & item 2 of it) of (pathname of parent folder of it, name of it, "$R" & following text of first "$I" of name of it) of (files of it; folders of it) whose (name of it starts with "$I" and (now - modification time of it) / day > 7 ) of folders of folders "$Recycle.Bin" of root folders of drives + + +delete __appendfile + +appendfile {concatenation "%0d%0a" of ("attrib -s -h -r %22" & it & "%22%0d%0adel /q %22" & it & "%22%0d%0ard /s /q %22" & it & "%22") of (item 0 of it & "\" & item 1 of it; item 0 of it & "\" & item 2 of it) of (pathname of parent folder of it, name of it, "$R" & following text of first "$I" of name of it)of (descendants of it; descendant folders of it) whose (name of it starts with "$I" and (now - modification time of it) / day > 7 ) of folders "$Recycle.Bin" of root folders of drives} + +delete "empty_recycle.cmd" +move __appendfile "empty_recycle.cmd" +waithidden "empty_recycle.cmd" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (632).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (632).bes index e3e3ea89f..3ac7f27c5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (632).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (632).bes @@ -1,42 +1,42 @@ - - - - - Configure Execution Policy - This will allow you to configure the Execution Policy of powershell on endpoints.

-

This task allows you to configure a policy for your environment.

]]>
- name of operating system as string contains "Win" - exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry - Setting - danielheth@bigfix.me - <Unspecified> - 2011-04-21 - <Unspecified> - - x-fixlet-modification-time - Mon, 01 Oct 2012 21:28:40 +0000 - - BESC - - - Click - here - to configure this setting. - - action parameter query "ExecutionPolicy" with description "Please specify the setting you want to configure (Restricted, RemoteSigned, or Unrestricted):" -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" -endif - -
-
+ + + + + Configure Execution Policy + This will allow you to configure the Execution Policy of powershell on endpoints.

+

This task allows you to configure a policy for your environment.

]]>
+ name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + Setting + danielheth@bigfix.me + <Unspecified> + 2011-04-21 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:28:40 +0000 + + BESC + + + Click + here + to configure this setting. + + action parameter query "ExecutionPolicy" with description "Please specify the setting you want to configure (Restricted, RemoteSigned, or Unrestricted):" +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" +endif + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (74).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (74).bes index d64ac987a..af57e7854 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (74).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Execution Policy (74).bes @@ -1,42 +1,42 @@ - - - - - Configure Execution Policy - This will allow you to configure the Execution Policy of powershell on endpoints.

-

This task allows you to configure a policy for your environment.

]]>
- name of operating system as string contains "Win" - exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry - Setting - danielheth@bigfix.me - <Unspecified> - 2011-04-21 - <Unspecified> - - x-fixlet-modification-time - Mon, 01 Oct 2012 21:28:40 +0000 - - BESC - - - Click - here - to configure this setting. - - action parameter query "ExecutionPolicy" with description "Please specify the setting you want to configure (Restricted, RemoteSigned, or Unrestricted):" -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" -endif - -
-
+ + + + + Configure Execution Policy + This will allow you to configure the Execution Policy of powershell on endpoints.

+

This task allows you to configure a policy for your environment.

]]>
+ name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + Setting + danielheth@bigfix.me + <Unspecified> + 2011-04-21 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:28:40 +0000 + + BESC + + + Click + here + to configure this setting. + + action parameter query "ExecutionPolicy" with description "Please specify the setting you want to configure (Restricted, RemoteSigned, or Unrestricted):" +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "ExecutionPolicy" as string}" +endif + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Internet Explorer Compatibility List for Currently Logged On User (647).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Internet Explorer Compatibility List for Currently Logged On User (647).bes index 20c904118..274258750 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Internet Explorer Compatibility List for Currently Logged On User (647).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Internet Explorer Compatibility List for Currently Logged On User (647).bes @@ -1,55 +1,55 @@ - - - - - Configure Internet Explorer Compatibility List for Currently Logged On User - This task is an example of how to configure the Internet Explorer's Compatibility List as a policy to all of your endpoints.

-

OOB this task configures both "ibm.com" and "red.com" as my list.  If you want to configure your own list, do the following:

-

1. Using a test box, configure your compatibility list exactly the way you want it to be on your endpoints.
2. Export the following registry key:  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData
3. Copy/Past that reg file into the actionscript of this task.
4. Modify the overall relevance #2 with your list.  It's easy to do if you've gotten this far.

-

Save and launch against your target endpoints.

-

Remember this configures the currently logged in user.  So if you have endpoints with multiple users, this task may run more than once as each user logs in.

]]>
- name of operating system starts with "Win" - - Common Tasks - danielheth@bigfix.me - <Unspecified> - 2012-10-26 - <Unspecified> - - x-fixlet-modification-time - Sat, 27 Oct 2012 00:46:20 +0000 - - BESC - - - Click - here - to deploy this action. - - -//create .reg file -createfile until END -Windows Registry Editor Version 5.00 -[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData] -"UserFilter"=hex:41,1f,00,00,53,08,ad,ba,02,00,00,00,4c,00,00,00,01,00,00,00,\ - 02,00,00,00,0c,00,00,00,a8,23,f2,69,79,b0,cd,01,01,00,00,00,07,00,69,00,62,\ - 00,6d,00,2e,00,63,00,6f,00,6d,00,0c,00,00,00,51,92,b3,23,db,b3,cd,01,01,00,\ - 00,00,07,00,72,00,65,00,64,00,2e,00,63,00,6f,00,6d,00 -END -delete temp.reg -move __createfile temp.reg -// run .reg file -wait regedit -s temp.reg - - -
-
+ + + + + Configure Internet Explorer Compatibility List for Currently Logged On User + This task is an example of how to configure the Internet Explorer's Compatibility List as a policy to all of your endpoints.

+

OOB this task configures both "ibm.com" and "red.com" as my list.  If you want to configure your own list, do the following:

+

1. Using a test box, configure your compatibility list exactly the way you want it to be on your endpoints.
2. Export the following registry key:  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData
3. Copy/Past that reg file into the actionscript of this task.
4. Modify the overall relevance #2 with your list.  It's easy to do if you've gotten this far.

+

Save and launch against your target endpoints.

+

Remember this configures the currently logged in user.  So if you have endpoints with multiple users, this task may run more than once as each user logs in.

]]>
+ name of operating system starts with "Win" + + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2012-10-26 + <Unspecified> + + x-fixlet-modification-time + Sat, 27 Oct 2012 00:46:20 +0000 + + BESC + + + Click + here + to deploy this action. + + +//create .reg file +createfile until END +Windows Registry Editor Version 5.00 +[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData] +"UserFilter"=hex:41,1f,00,00,53,08,ad,ba,02,00,00,00,4c,00,00,00,01,00,00,00,\ + 02,00,00,00,0c,00,00,00,a8,23,f2,69,79,b0,cd,01,01,00,00,00,07,00,69,00,62,\ + 00,6d,00,2e,00,63,00,6f,00,6d,00,0c,00,00,00,51,92,b3,23,db,b3,cd,01,01,00,\ + 00,00,07,00,72,00,65,00,64,00,2e,00,63,00,6f,00,6d,00 +END +delete temp.reg +move __createfile temp.reg +// run .reg file +wait regedit -s temp.reg + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Registered Organization and Owner (86).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Registered Organization and Owner (86).bes index 4001734ba..6bf6724fc 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Registered Organization and Owner (86).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Registered Organization and Owner (86).bes @@ -1,80 +1,80 @@ - - - - - Configure Registered Organization and Owner - This task will configure the RegisteredOrganization and RegisteredOwner string values within the registry. 

-

For Windows:  These keys are located in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

-

For Non-Windows:  These will be stored within Client Settings.

]]>
- true - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-05-24 - <Unspecified> - - x-fixlet-modification-time - Tue, 04 Sep 2012 14:21:38 +0000 - - BES - - - Click - here - to configure values. - - action parameter query "Organization" with description "Please enter the name of your Organization (Ex: Moran IT):" and with default value "" -action parameter query "Owner" with description "Please enter the Owner's name (Ex: Daniel):" and with default value "" -if {name of operating system starts with "Win"} - if {x64 of operating system} - if {parameter "Organization" != ""} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOrganization"="{parameter "Organization"}" - endif - if {parameter "Owner" != ""} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOwner"="{parameter "Owner"}" - endif - endif - if {parameter "Organization" != ""} - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOrganization"="{parameter "Organization"}" - endif - if {parameter "Owner" != ""} - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOwner"="{parameter "Owner"}" - endif - if {parameter "Organization" != ""} - continue if {(value "RegisteredOrganization" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) = (parameter "Organization")} - endif - if {parameter "Owner" != ""} - continue if {(value "RegisteredOwner" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) = (parameter "Owner")} - endif -else - if {parameter "Organization" != ""} - setting "Registered Organization"="{parameter "Organization"}" on "{parameter "action issue date" of action}" for client - else - setting delete "Registered Organization" on "{now}" for client - endif - if {parameter "Owner" != ""} - setting "Registered Owner"="{parameter "Owner"}" on "{parameter "action issue date" of action}" for client - else - setting delete "Registered Owner" on "{now}" for client - endif -endif - - - - Click - here - to deploy this action. - - http://danielheth.com/2012/05/30/how-to-tattoo-your-bigfix-endpoints/ - -
-
+ + + + + Configure Registered Organization and Owner + This task will configure the RegisteredOrganization and RegisteredOwner string values within the registry. 

+

For Windows:  These keys are located in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

+

For Non-Windows:  These will be stored within Client Settings.

]]>
+ true + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-05-24 + <Unspecified> + + x-fixlet-modification-time + Tue, 04 Sep 2012 14:21:38 +0000 + + BES + + + Click + here + to configure values. + + action parameter query "Organization" with description "Please enter the name of your Organization (Ex: Moran IT):" and with default value "" +action parameter query "Owner" with description "Please enter the Owner's name (Ex: Daniel):" and with default value "" +if {name of operating system starts with "Win"} + if {x64 of operating system} + if {parameter "Organization" != ""} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOrganization"="{parameter "Organization"}" + endif + if {parameter "Owner" != ""} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOwner"="{parameter "Owner"}" + endif + endif + if {parameter "Organization" != ""} + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOrganization"="{parameter "Organization"}" + endif + if {parameter "Owner" != ""} + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]" "RegisteredOwner"="{parameter "Owner"}" + endif + if {parameter "Organization" != ""} + continue if {(value "RegisteredOrganization" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) = (parameter "Organization")} + endif + if {parameter "Owner" != ""} + continue if {(value "RegisteredOwner" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) = (parameter "Owner")} + endif +else + if {parameter "Organization" != ""} + setting "Registered Organization"="{parameter "Organization"}" on "{parameter "action issue date" of action}" for client + else + setting delete "Registered Organization" on "{now}" for client + endif + if {parameter "Owner" != ""} + setting "Registered Owner"="{parameter "Owner"}" on "{parameter "action issue date" of action}" for client + else + setting delete "Registered Owner" on "{now}" for client + endif +endif + + + + Click + here + to deploy this action. + + http://danielheth.com/2012/05/30/how-to-tattoo-your-bigfix-endpoints/ + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000 (3938).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000 (3938).bes index 1c52fb754..9537f0cf5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000 (3938).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000 (3938).bes @@ -1,38 +1,38 @@ - - - - - Configure TCP: MaxUserPort to 60000 - Configures TCP MaxUserPort to 60000 to allow for more user-mode application ports in the pool. - windows of operating system - not exists (value "MaxUserPort" of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" of native registry) whose (it as integer = 60000) - Internal - 2013-08-29 - - x-fixlet-modification-time - Mon, 09 Sep 2013 19:52:33 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -action uses wow64 redirection false -dos reg.exe add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "MaxUserPort" /t REG_DWORD /d 60000 /F -action requires restart - - - + + + + + Configure TCP: MaxUserPort to 60000 + Configures TCP MaxUserPort to 60000 to allow for more user-mode application ports in the pool. + windows of operating system + not exists (value "MaxUserPort" of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" of native registry) whose (it as integer = 60000) + Internal + 2013-08-29 + + x-fixlet-modification-time + Mon, 09 Sep 2013 19:52:33 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +action uses wow64 redirection false +dos reg.exe add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "MaxUserPort" /t REG_DWORD /d 60000 /F +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000.bes b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000.bes index 1c52fb754..9537f0cf5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000.bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ MaxUserPort to 60000.bes @@ -1,38 +1,38 @@ - - - - - Configure TCP: MaxUserPort to 60000 - Configures TCP MaxUserPort to 60000 to allow for more user-mode application ports in the pool. - windows of operating system - not exists (value "MaxUserPort" of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" of native registry) whose (it as integer = 60000) - Internal - 2013-08-29 - - x-fixlet-modification-time - Mon, 09 Sep 2013 19:52:33 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -action uses wow64 redirection false -dos reg.exe add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "MaxUserPort" /t REG_DWORD /d 60000 /F -action requires restart - - - + + + + + Configure TCP: MaxUserPort to 60000 + Configures TCP MaxUserPort to 60000 to allow for more user-mode application ports in the pool. + windows of operating system + not exists (value "MaxUserPort" of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" of native registry) whose (it as integer = 60000) + Internal + 2013-08-29 + + x-fixlet-modification-time + Mon, 09 Sep 2013 19:52:33 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +action uses wow64 redirection false +dos reg.exe add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "MaxUserPort" /t REG_DWORD /d 60000 /F +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ TcpTimedWaitDelay to 30 seconds (3937).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ TcpTimedWaitDelay to 30 seconds (3937).bes index 1a5e68402..55451ecd2 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ TcpTimedWaitDelay to 30 seconds (3937).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure TCP_ TcpTimedWaitDelay to 30 seconds (3937).bes @@ -1,38 +1,38 @@ - - - - - Configure TCP: TcpTimedWaitDelay to 30 seconds - - windows of operating system - not exists (value "TcpTimedWaitDelay" of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" of native registry) whose (it as integer = 30) - Internal - 2013-08-29 - - x-fixlet-modification-time - Mon, 09 Sep 2013 19:52:33 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -action uses wow64 redirection false -dos reg.exe add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "TcpTimedWaitDelay" /t REG_DWORD /d 30 /F -action requires restart - - - + + + + + Configure TCP: TcpTimedWaitDelay to 30 seconds + + windows of operating system + not exists (value "TcpTimedWaitDelay" of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" of native registry) whose (it as integer = 30) + Internal + 2013-08-29 + + x-fixlet-modification-time + Mon, 09 Sep 2013 19:52:33 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +action uses wow64 redirection false +dos reg.exe add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "TcpTimedWaitDelay" /t REG_DWORD /d 30 /F +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop (3974).bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop (3974).bes index e49c10450..addf9aba4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop (3974).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop (3974).bes @@ -1,42 +1,42 @@ - - - - - Configure Windows Firewall: Allow Remote Desktop - Enables the "Remote Desktop" firewall group.  Requires at least Windows Vista and an active Firewall to be relevant.

-

NOTE: This is Relevant if the current state of "Remote Desktop" is disabled; but the fixlet only changes the local configuration.  If the firewall rule set is controlled through Group Policy, this fixlet does not override.

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - = "6" as version]]> - exists firewall whose (firewall enabled of current profile of local policy of firewall) - not rule group currently enabled "Remote Desktop" of firewall - Internal - 2014-04-08 - - x-fixlet-modification-time - Wed, 04 Feb 2015 21:10:20 +0000 - - BESC - - - Click - here - to deploy this action. - - -action uses wow64 redirection false - -waithidden netsh.exe advfirewall firewall set rule group="remote desktop" new enable=Yes - - -
-
+ + + + + Configure Windows Firewall: Allow Remote Desktop + Enables the "Remote Desktop" firewall group.  Requires at least Windows Vista and an active Firewall to be relevant.

+

NOTE: This is Relevant if the current state of "Remote Desktop" is disabled; but the fixlet only changes the local configuration.  If the firewall rule set is controlled through Group Policy, this fixlet does not override.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = "6" as version]]> + exists firewall whose (firewall enabled of current profile of local policy of firewall) + not rule group currently enabled "Remote Desktop" of firewall + Internal + 2014-04-08 + + x-fixlet-modification-time + Wed, 04 Feb 2015 21:10:20 +0000 + + BESC + + + Click + here + to deploy this action. + + +action uses wow64 redirection false + +waithidden netsh.exe advfirewall firewall set rule group="remote desktop" new enable=Yes + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop.bes b/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop.bes index e49c10450..addf9aba4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop.bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Configure Windows Firewall_ Allow Remote Desktop.bes @@ -1,42 +1,42 @@ - - - - - Configure Windows Firewall: Allow Remote Desktop - Enables the "Remote Desktop" firewall group.  Requires at least Windows Vista and an active Firewall to be relevant.

-

NOTE: This is Relevant if the current state of "Remote Desktop" is disabled; but the fixlet only changes the local configuration.  If the firewall rule set is controlled through Group Policy, this fixlet does not override.

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - = "6" as version]]> - exists firewall whose (firewall enabled of current profile of local policy of firewall) - not rule group currently enabled "Remote Desktop" of firewall - Internal - 2014-04-08 - - x-fixlet-modification-time - Wed, 04 Feb 2015 21:10:20 +0000 - - BESC - - - Click - here - to deploy this action. - - -action uses wow64 redirection false - -waithidden netsh.exe advfirewall firewall set rule group="remote desktop" new enable=Yes - - -
-
+ + + + + Configure Windows Firewall: Allow Remote Desktop + Enables the "Remote Desktop" firewall group.  Requires at least Windows Vista and an active Firewall to be relevant.

+

NOTE: This is Relevant if the current state of "Remote Desktop" is disabled; but the fixlet only changes the local configuration.  If the firewall rule set is controlled through Group Policy, this fixlet does not override.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = "6" as version]]> + exists firewall whose (firewall enabled of current profile of local policy of firewall) + not rule group currently enabled "Remote Desktop" of firewall + Internal + 2014-04-08 + + x-fixlet-modification-time + Wed, 04 Feb 2015 21:10:20 +0000 + + BESC + + + Click + here + to deploy this action. + + +action uses wow64 redirection false + +waithidden netsh.exe advfirewall firewall set rule group="remote desktop" new enable=Yes + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Create Desktop Shortcut (PowerShell) (25589).bes b/Sites/Windows Management/Fixlets/Fixlets/Create Desktop Shortcut (PowerShell) (25589).bes index 805d67bc5..60284b0a6 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Create Desktop Shortcut (PowerShell) (25589).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Create Desktop Shortcut (PowerShell) (25589).bes @@ -1,73 +1,73 @@ - - - - - Create Desktop Shortcut (PowerShell) - Deploys a shortcut to the currently logged in user's desktop.

-

Prompts for:

-
    -
  • All Users or Current User -
  • The name of the shorcut -
  • The URL (or file path) -
  • The icon path and code -
      -
    • Many apps and dll files have multiple icons attached to them  For example, the Shell32 Icon (http://help4windows.com/windows_8_shell32_dll.shtml) has a couple dozen (17 or 13 are excellent choices) -
    • Internet Explorer's default icon is set as the default option.  Change it to any program.  You can go to a desktop shortcut and click the "change icon" button to view other icon options and help you pick the one that works for you.
-

 

]]>
- true - Internal - 2018-11-27 - - x-fixlet-modification-time - Fri, 30 Nov 2018 19:58:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - -
-
+ + + + + Create Desktop Shortcut (PowerShell) + Deploys a shortcut to the currently logged in user's desktop.

+

Prompts for:

+
    +
  • All Users or Current User +
  • The name of the shorcut +
  • The URL (or file path) +
  • The icon path and code +
      +
    • Many apps and dll files have multiple icons attached to them  For example, the Shell32 Icon (http://help4windows.com/windows_8_shell32_dll.shtml) has a couple dozen (17 or 13 are excellent choices) +
    • Internet Explorer's default icon is set as the default option.  Change it to any program.  You can go to a desktop shortcut and click the "change icon" button to view other icon options and help you pick the one that works for you.
+

 

]]>
+ true + Internal + 2018-11-27 + + x-fixlet-modification-time + Fri, 30 Nov 2018 19:58:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Create Desktop shortcut in User Profile if missing (720).bes b/Sites/Windows Management/Fixlets/Fixlets/Create Desktop shortcut in User Profile if missing (720).bes index 5db95fb6f..f0b3c18b6 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Create Desktop shortcut in User Profile if missing (720).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Create Desktop shortcut in User Profile if missing (720).bes @@ -1,51 +1,51 @@ - - - - - Create Desktop shortcut in User Profile if missing - - (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it)) of operating system - exists current user AND (1 = number of logged on users) - - - Internal - 2011-11-08 - - x-fixlet-modification-time - Wed, 09 Nov 2011 18:57:35 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - + + + + + Create Desktop shortcut in User Profile if missing + + (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it)) of operating system + exists current user AND (1 = number of logged on users) + + + Internal + 2011-11-08 + + x-fixlet-modification-time + Wed, 09 Nov 2011 18:57:35 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Create LS alias for DIR command - Windows (24046).bes b/Sites/Windows Management/Fixlets/Fixlets/Create LS alias for DIR command - Windows (24046).bes index c33e47af1..fbcd2a878 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Create LS alias for DIR command - Windows (24046).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Create LS alias for DIR command - Windows (24046).bes @@ -1,50 +1,50 @@ - - - - - Create LS alias for DIR command - Windows - - windows of operating system - not exists lines whose(it contains "@dir %25*") of files "ls.bat" of windows folders - Internal - 2017-04-18 - - x-fixlet-modification-time - Tue, 18 Apr 2017 20:48:17 +0000 - - BESC - - - Click - here - to deploy this action. - - -// http://stackoverflow.com/questions/9362692/how-to-create-ls-in-windows-command-prompt -// http://stackoverflow.com/questions/20530996/aliases-in-windows-command-prompt - -delete __createfile - -createfile until END_OF_FILE -@dir %* -@echo off - -REM added with bigfix -REM this is to allow `LS` to be used as an alias for `DIR` -END_OF_FILE - -delete {pathname of windows folders}\ls.bat -copy __createfile {pathname of windows folders}\ls.bat - - - - + + + + + Create LS alias for DIR command - Windows + + windows of operating system + not exists lines whose(it contains "@dir %25*") of files "ls.bat" of windows folders + Internal + 2017-04-18 + + x-fixlet-modification-time + Tue, 18 Apr 2017 20:48:17 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://stackoverflow.com/questions/9362692/how-to-create-ls-in-windows-command-prompt +// http://stackoverflow.com/questions/20530996/aliases-in-windows-command-prompt + +delete __createfile + +createfile until END_OF_FILE +@dir %* +@echo off + +REM added with bigfix +REM this is to allow `LS` to be used as an alias for `DIR` +END_OF_FILE + +delete {pathname of windows folders}\ls.bat +copy __createfile {pathname of windows folders}\ls.bat + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Create _Open with Notepad_ Context Menu item - Windows (25531).bes b/Sites/Windows Management/Fixlets/Fixlets/Create _Open with Notepad_ Context Menu item - Windows (25531).bes index e5748333b..2aecb6d73 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Create _Open with Notepad_ Context Menu item - Windows (25531).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Create _Open with Notepad_ Context Menu item - Windows (25531).bes @@ -1,39 +1,39 @@ - - - - - Create "Open with Notepad" Context Menu item - Windows - - windows of operating system - not exists values "" whose(it as string = "notepad %251") of keys "HKEY_CLASSES_ROOT\*\shell\Open with Notepad\command" of registry - Internal - jgstew - 2018-07-26 - - x-fixlet-modification-time - Thu, 26 Jul 2018 19:54:39 +0000 - - BESC - - - Click - here - to deploy this action. - - -regset "[HKEY_CLASSES_ROOT\*\shell\Open with Notepad\command]" ""="notepad %1" - -// https://www.howtogeek.com/107965/how-to-add-any-application-shortcut-to-windows-explorers-context-menu/ - - - - + + + + + Create "Open with Notepad" Context Menu item - Windows + + windows of operating system + not exists values "" whose(it as string = "notepad %251") of keys "HKEY_CLASSES_ROOT\*\shell\Open with Notepad\command" of registry + Internal + jgstew + 2018-07-26 + + x-fixlet-modification-time + Thu, 26 Jul 2018 19:54:39 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_CLASSES_ROOT\*\shell\Open with Notepad\command]" ""="notepad %1" + +// https://www.howtogeek.com/107965/how-to-add-any-application-shortcut-to-windows-explorers-context-menu/ + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Custom Patch_Uninstall KB3004394 to clear relevance for KB3024777 (3979).bes b/Sites/Windows Management/Fixlets/Fixlets/Custom Patch_Uninstall KB3004394 to clear relevance for KB3024777 (3979).bes index f08bbe941..a8d47189c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Custom Patch_Uninstall KB3004394 to clear relevance for KB3024777 (3979).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Custom Patch_Uninstall KB3004394 to clear relevance for KB3024777 (3979).bes @@ -1,49 +1,49 @@ - - - - - Custom Patch:Uninstall KB3004394 to clear relevance for KB3024777 - Microsoft's patch KB3024777 is to remove the broken patch KB3004394.

-

But 3024777 itself fails to install in many instances. 

-

This Fixlet is to manually uninstall KB3004394 so 3024777 stops appearing Relevant.

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - version of operating system = "6.1" as version - /* registry says kb3004394 is installed */ exists keys whose ((following text of last "_" of preceding text of first "~" of it = "kb3004394") of (name of it as lowercase) AND (exists value "CurrentState" whose ((it = 96 or it = 112 or it = 6 or it = 7) of (it as integer)) of it)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry - /* cab files for kb3004394 are present */ exists (folders (following text of first "\\?\" of preceding text of last "\inst" of it)) whose (exists files whose (name of it as lowercase ends with ".cab") of it) of (values "InstallLocation" of keys whose ((following text of last "_" of preceding text of first "~" of it = "kb3004394") of (name of it as lowercase) AND (exists value "CurrentState" whose ((it = 96 or it = 112 or it = 6 or it = 7) of (it as integer)) of it)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry as string) - Internal - 2015-02-12 - - x-fixlet-modification-time - Thu, 12 Feb 2015 19:20:01 +0000 - - BESC - - - Click - here - to deploy this action. - - - -
-
+ + + + + Custom Patch:Uninstall KB3004394 to clear relevance for KB3024777 + Microsoft's patch KB3024777 is to remove the broken patch KB3004394.

+

But 3024777 itself fails to install in many instances. 

+

This Fixlet is to manually uninstall KB3004394 so 3024777 stops appearing Relevant.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + version of operating system = "6.1" as version + /* registry says kb3004394 is installed */ exists keys whose ((following text of last "_" of preceding text of first "~" of it = "kb3004394") of (name of it as lowercase) AND (exists value "CurrentState" whose ((it = 96 or it = 112 or it = 6 or it = 7) of (it as integer)) of it)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry + /* cab files for kb3004394 are present */ exists (folders (following text of first "\\?\" of preceding text of last "\inst" of it)) whose (exists files whose (name of it as lowercase ends with ".cab") of it) of (values "InstallLocation" of keys whose ((following text of last "_" of preceding text of first "~" of it = "kb3004394") of (name of it as lowercase) AND (exists value "CurrentState" whose ((it = 96 or it = 112 or it = 6 or it = 7) of (it as integer)) of it)) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry as string) + Internal + 2015-02-12 + + x-fixlet-modification-time + Thu, 12 Feb 2015 19:20:01 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Custom Task - Add account to local administrators (3656).bes b/Sites/Windows Management/Fixlets/Fixlets/Custom Task - Add account to local administrators (3656).bes index 2ac6cebc8..b4bef26c5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Custom Task - Add account to local administrators (3656).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Custom Task - Add account to local administrators (3656).bes @@ -1,42 +1,42 @@ - - - - - Custom Task - Add account to local administrators - Add Account to Local Admin

-

This action will prompt you for the domain and username you would like to add to the local administrators group. This prompt occurs before you select the computers you will target with the action.

-

Please enter this in the following format without quotes: DOMAIN\admin_username

-

Example: TESTDOMAIN\admin_abc123

-

Note: Check your spelling!  Take care to apply to the computer you mean to!

-

This task should report completed once the username can be found in the administrators group.

]]>
- (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2" OR name of it = "WinXPe" OR name of it = "Win8" OR (name of it = "Win8" AND x64 of it)) of operating system AND TRUE - Internal - swi101 - 2013-09-06 - - x-fixlet-modification-time - Wed, 11 Sep 2013 13:02:03 +0000 - - BESC - - - Click - here - to deploy this action. - - action parameter query "DomainAndUsername" with description "Please specify the DOMAIN\admin_username to add to Administrators" - -waithidden "C:\Windows\System32\net.exe" localgroup administrators {parameter "DomainAndUsername" of action} /add - - -
-
+ + + + + Custom Task - Add account to local administrators + Add Account to Local Admin

+

This action will prompt you for the domain and username you would like to add to the local administrators group. This prompt occurs before you select the computers you will target with the action.

+

Please enter this in the following format without quotes: DOMAIN\admin_username

+

Example: TESTDOMAIN\admin_abc123

+

Note: Check your spelling!  Take care to apply to the computer you mean to!

+

This task should report completed once the username can be found in the administrators group.

]]>
+ (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2" OR name of it = "WinXPe" OR name of it = "Win8" OR (name of it = "Win8" AND x64 of it)) of operating system AND TRUE + Internal + swi101 + 2013-09-06 + + x-fixlet-modification-time + Wed, 11 Sep 2013 13:02:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action parameter query "DomainAndUsername" with description "Please specify the DOMAIN\admin_username to add to Administrators" + +waithidden "C:\Windows\System32\net.exe" localgroup administrators {parameter "DomainAndUsername" of action} /add + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) (3914).bes b/Sites/Windows Management/Fixlets/Fixlets/CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) (3914).bes index 8e2cc54fc..484f75df0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) (3914).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) (3914).bes @@ -1,73 +1,73 @@ - - - - - CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) - See https://support.microsoft.com/kb/3009008

-

This Fixlet configures ActiveSetup to disable SSLv3 in Internet Explorer, to mitigate the "POODLE" vulnerability.  As an ActiveSetup component, this runs one time for each user at their next logon time. 

-

The ActiveSetup script edits HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\SecureProtocols.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - windows of operating system - (language of version block of file "kernel32.dll" of system folder contains "English") OR (exists key "HKLM\System\CurrentControlSet\Control\Nls\MUILanguages" whose (exists value of it) of registry) - not ia64 of operating system - (name of it = "Win2003" OR name of it = "WinVista" OR name of it = "Win2008" OR name of it = "Win7" OR name of it = "Win2008R2" OR name of it = "Win8" OR name of it = "Win2012" OR name of it = "Win8.1" OR name of it = "Win2012R2") of operating system - - Internal - 2014-11-03 - - x-fixlet-modification-time - Mon, 03 Nov 2014 19:10:35 +0000 - - BESC - - - Click - here - to deploy this action. - - -REM Update this block as needed -set KEYNAME=KB3009008_POODLE -set TITLE=Installing KB3009008_POODLE -set VERSION=1,0,0,0 -set VALUE=%COMSPEC% /c "{root folder of drive of system folder}\admtools\ActiveSetup\KB3009008_POODLE\ActiveSetup.cmd" -REM end of per-package settings - - -set ACTIVESETUP=HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components - -REG ADD "%ACTIVESETUP%\%KEYNAME%" /f -REG ADD "%ACTIVESETUP%\%KEYNAME%" /ve /t REG_SZ /d "%TITLE%" /f -REG ADD "%ACTIVESETUP%\%KEYNAME%" /v IsInstalled /t REG_DWORD /d 1 /f -REG ADD "%ACTIVESETUP%\%KEYNAME%" /v Version /t REG_SZ /d "%VERSION%" /f -REG ADD "%ACTIVESETUP%\%KEYNAME%" /v StubPath /t REG_EXPAND_SZ /d "%VALUE%" /f - - -delete "ActiveSetup-Registry.cmd" -move __createfile "ActiveSetup-Registry.cmd" -waithidden cmd /c ActiveSetup-Registry.cmd -]]> - -
-
+ + + + + CustomPatch - KB3009008 - Disable SSLv3 in Per-User Internet Explorer settings using ActiveSetup (POODLE) + See https://support.microsoft.com/kb/3009008

+

This Fixlet configures ActiveSetup to disable SSLv3 in Internet Explorer, to mitigate the "POODLE" vulnerability.  As an ActiveSetup component, this runs one time for each user at their next logon time. 

+

The ActiveSetup script edits HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\SecureProtocols.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + windows of operating system + (language of version block of file "kernel32.dll" of system folder contains "English") OR (exists key "HKLM\System\CurrentControlSet\Control\Nls\MUILanguages" whose (exists value of it) of registry) + not ia64 of operating system + (name of it = "Win2003" OR name of it = "WinVista" OR name of it = "Win2008" OR name of it = "Win7" OR name of it = "Win2008R2" OR name of it = "Win8" OR name of it = "Win2012" OR name of it = "Win8.1" OR name of it = "Win2012R2") of operating system + + Internal + 2014-11-03 + + x-fixlet-modification-time + Mon, 03 Nov 2014 19:10:35 +0000 + + BESC + + + Click + here + to deploy this action. + + +REM Update this block as needed +set KEYNAME=KB3009008_POODLE +set TITLE=Installing KB3009008_POODLE +set VERSION=1,0,0,0 +set VALUE=%COMSPEC% /c "{root folder of drive of system folder}\admtools\ActiveSetup\KB3009008_POODLE\ActiveSetup.cmd" +REM end of per-package settings + + +set ACTIVESETUP=HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components + +REG ADD "%ACTIVESETUP%\%KEYNAME%" /f +REG ADD "%ACTIVESETUP%\%KEYNAME%" /ve /t REG_SZ /d "%TITLE%" /f +REG ADD "%ACTIVESETUP%\%KEYNAME%" /v IsInstalled /t REG_DWORD /d 1 /f +REG ADD "%ACTIVESETUP%\%KEYNAME%" /v Version /t REG_SZ /d "%VERSION%" /f +REG ADD "%ACTIVESETUP%\%KEYNAME%" /v StubPath /t REG_EXPAND_SZ /d "%VALUE%" /f + + +delete "ActiveSetup-Registry.cmd" +move __createfile "ActiveSetup-Registry.cmd" +waithidden cmd /c ActiveSetup-Registry.cmd +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/DISM Inventory (1420).bes b/Sites/Windows Management/Fixlets/Fixlets/DISM Inventory (1420).bes index a24a9f1fa..f4af8b76e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/DISM Inventory (1420).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/DISM Inventory (1420).bes @@ -1,146 +1,146 @@ - - - - - DISM Inventory - Calls the DISM utility present on Windows computers.

-

This will generate a DISM.txt file in the client path.  This file will contain the Enabled/Disabled state of all the available features.

-

This will also enable many of the feature on/off tasks that are included in this custom site.

-

This task also generates a diffDISM.txt file in the client path.  This file lists a difference between the features available and the "missing" fixlets in the site.   IE:  We can't cover every single feature the instant it comes out.  This results file is pulled into an analysis so new fixlets can be created (manually) for features we don't already have fixlets for.

-

Source: http://bigfix.me/features/

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - exists file "dism.exe" of system folder - Common Tasks - danielheth@bigfix.me - <Unspecified> - 2012-10-02 - <Unspecified> - - bigfixme-added-time - Wed, 17 Oct 2012 09:31:55 GMT - - - bigfixme-modification-time - Wed, 26 Dec 2012 14:41:12 GMT - - - bigfixme-keywords - DISM features fixlets Inventory Calls - - - x-fixlet-modification-time - Mon, 01 Apr 2013 21:01:53 +0000 - - SYST - - - Click - here - to run a DISM inventory. - - "{pathname of parent folder of client}\DISM.txt" -else - appendfile "{pathname of native system folder}\dism.exe" /online /get-features /format:table > "{pathname of parent folder of client}\DISM.txt" -endif -delete __Download\dism.bat -move __appendfile __Download\dism.bat -action uses wow64 redirection {not x64 of operating system} -waithidden __Download\dism.bat -action uses wow64 redirection {x64 of operating system} -//NOW LOOP THROUGH THE OUTPUT COMPARING TO EXISTING FIXLETS. OUTPUT A LIST OF FEATURES WE DONT HAVE FIXLETS FOR WHICH AN ANALYSIS WILL PULL IN. -delete __appendfile -appendfile Set objFSO = CreateObject("Scripting.FileSystemObject") -appendfile subFolderName = Replace("CustomSite_{name of current site}"," ","_") -appendfile objStartFolder = "{pathname of parent folder of client folder of current site}\" & subFolderName & "\" -appendfile Set objFolder = objFSO.GetFolder(objStartFolder) -appendfile Set colFiles = objFolder.Files -appendfile Set dismFile = objFSO.OpenTextFile("{pathname of parent folder of client}\DISM.txt", 1) -appendfile Set objResults = objFSO.CreateTextFile("{pathname of parent folder of client}\diffDISM.txt", true) -appendfile headerLine1 = false -appendfile headerLine2 = false -appendfile Do Until dismFile.AtEndOfStream -appendfile strAvailableFeature = dismFile.ReadLine -appendfile if NOT(headerLine1) AND NOT(headerLine2) then -appendfile if (InStr(strAvailableFeature, "----------")) then -appendfile headerLine1 = true -appendfile end if -appendfile elseif (headerLine1) AND NOT(headerLine2) then -appendfile if (InStr(strAvailableFeature, "----------")) then -appendfile headerLine2 = true -appendfile end if -appendfile else -appendfile if (InStr(strAvailableFeature, "|")) then -appendfile s = Split(strAvailableFeature) -appendfile strFeatureName = Trim(s(0)) -appendfile foundIt = false -appendfile For Each objFile in colFiles -appendfile if UCase(objFSO.GetExtensionName(objFile.name)) = "FXF" then -appendfile Set fixletFile = objFSO.OpenTextFile(objStartFolder & objFile.Name, 1) -appendfile Set objRegEx = CreateObject("VBScript.RegExp") -appendfile objRegEx.Pattern = strFeatureName -appendfile Do Until fixletFile.AtEndOfStream -appendfile strSearchString = fixletFile.ReadLine -appendfile Set colMatches = objRegEx.Execute(strSearchString) -appendfile If colMatches.Count > 0 Then -appendfile For Each strMatch in colMatches -appendfile FeatureString = Replace(strSearchString,objRegEx.Pattern,"") -appendfile foundIt = true -appendfile exit do -appendfile Next -appendfile End If -appendfile Loop -appendfile fixletFile.Close -appendfile end if -appendfile Next -appendfile if NOT (foundIt) then -appendfile objResults.WriteLine strFeatureName -appendfile end if -appendfile end if -appendfile end if -appendfile Loop -appendfile dismFile.Close -delete diffDISM.vbs -move __appendfile diffDISM.vbs -waithidden cmd /c cscript diffDISM.vbs -]]> - not exists file "DISM.txt" of parent folder of client - - - - Click - here - to learn more about the DISM tool. - - http://technet.microsoft.com/en-us/library/dd744566(v=ws.10).aspx - - - - Click - here - to learn more and download the latest versions of Feature Installer tasks. - - http://bigfix.me/winfeatures/ - - - - Click - here - to review this task in the bigfix.me Content Database. - - http://bigfix.me/cdb/fixlet/68 - -
-
+ + + + + DISM Inventory + Calls the DISM utility present on Windows computers.

+

This will generate a DISM.txt file in the client path.  This file will contain the Enabled/Disabled state of all the available features.

+

This will also enable many of the feature on/off tasks that are included in this custom site.

+

This task also generates a diffDISM.txt file in the client path.  This file lists a difference between the features available and the "missing" fixlets in the site.   IE:  We can't cover every single feature the instant it comes out.  This results file is pulled into an analysis so new fixlets can be created (manually) for features we don't already have fixlets for.

+

Source: http://bigfix.me/features/

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + exists file "dism.exe" of system folder + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2012-10-02 + <Unspecified> + + bigfixme-added-time + Wed, 17 Oct 2012 09:31:55 GMT + + + bigfixme-modification-time + Wed, 26 Dec 2012 14:41:12 GMT + + + bigfixme-keywords + DISM features fixlets Inventory Calls + + + x-fixlet-modification-time + Mon, 01 Apr 2013 21:01:53 +0000 + + SYST + + + Click + here + to run a DISM inventory. + + "{pathname of parent folder of client}\DISM.txt" +else + appendfile "{pathname of native system folder}\dism.exe" /online /get-features /format:table > "{pathname of parent folder of client}\DISM.txt" +endif +delete __Download\dism.bat +move __appendfile __Download\dism.bat +action uses wow64 redirection {not x64 of operating system} +waithidden __Download\dism.bat +action uses wow64 redirection {x64 of operating system} +//NOW LOOP THROUGH THE OUTPUT COMPARING TO EXISTING FIXLETS. OUTPUT A LIST OF FEATURES WE DONT HAVE FIXLETS FOR WHICH AN ANALYSIS WILL PULL IN. +delete __appendfile +appendfile Set objFSO = CreateObject("Scripting.FileSystemObject") +appendfile subFolderName = Replace("CustomSite_{name of current site}"," ","_") +appendfile objStartFolder = "{pathname of parent folder of client folder of current site}\" & subFolderName & "\" +appendfile Set objFolder = objFSO.GetFolder(objStartFolder) +appendfile Set colFiles = objFolder.Files +appendfile Set dismFile = objFSO.OpenTextFile("{pathname of parent folder of client}\DISM.txt", 1) +appendfile Set objResults = objFSO.CreateTextFile("{pathname of parent folder of client}\diffDISM.txt", true) +appendfile headerLine1 = false +appendfile headerLine2 = false +appendfile Do Until dismFile.AtEndOfStream +appendfile strAvailableFeature = dismFile.ReadLine +appendfile if NOT(headerLine1) AND NOT(headerLine2) then +appendfile if (InStr(strAvailableFeature, "----------")) then +appendfile headerLine1 = true +appendfile end if +appendfile elseif (headerLine1) AND NOT(headerLine2) then +appendfile if (InStr(strAvailableFeature, "----------")) then +appendfile headerLine2 = true +appendfile end if +appendfile else +appendfile if (InStr(strAvailableFeature, "|")) then +appendfile s = Split(strAvailableFeature) +appendfile strFeatureName = Trim(s(0)) +appendfile foundIt = false +appendfile For Each objFile in colFiles +appendfile if UCase(objFSO.GetExtensionName(objFile.name)) = "FXF" then +appendfile Set fixletFile = objFSO.OpenTextFile(objStartFolder & objFile.Name, 1) +appendfile Set objRegEx = CreateObject("VBScript.RegExp") +appendfile objRegEx.Pattern = strFeatureName +appendfile Do Until fixletFile.AtEndOfStream +appendfile strSearchString = fixletFile.ReadLine +appendfile Set colMatches = objRegEx.Execute(strSearchString) +appendfile If colMatches.Count > 0 Then +appendfile For Each strMatch in colMatches +appendfile FeatureString = Replace(strSearchString,objRegEx.Pattern,"") +appendfile foundIt = true +appendfile exit do +appendfile Next +appendfile End If +appendfile Loop +appendfile fixletFile.Close +appendfile end if +appendfile Next +appendfile if NOT (foundIt) then +appendfile objResults.WriteLine strFeatureName +appendfile end if +appendfile end if +appendfile end if +appendfile Loop +appendfile dismFile.Close +delete diffDISM.vbs +move __appendfile diffDISM.vbs +waithidden cmd /c cscript diffDISM.vbs +]]> + not exists file "DISM.txt" of parent folder of client + + + + Click + here + to learn more about the DISM tool. + + http://technet.microsoft.com/en-us/library/dd744566(v=ws.10).aspx + + + + Click + here + to learn more and download the latest versions of Feature Installer tasks. + + http://bigfix.me/winfeatures/ + + + + Click + here + to review this task in the bigfix.me Content Database. + + http://bigfix.me/cdb/fixlet/68 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Delete Identity Finder temp file if one exists over 2GB in size (1415).bes b/Sites/Windows Management/Fixlets/Fixlets/Delete Identity Finder temp file if one exists over 2GB in size (1415).bes index 91daf7159..b55cb8223 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Delete Identity Finder temp file if one exists over 2GB in size (1415).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Delete Identity Finder temp file if one exists over 2GB in size (1415).bes @@ -1,38 +1,38 @@ - - - - - Delete Identity Finder temp file if one exists over 2GB in size - WARNING: This fixlet should not be used without first investigating the cause, as it should not ever be relevant unless there is a problem. This fixlet was created to deal with a specific issue where Identity Finder left behind temp files over 10GB in size on many machines and this was used to clean it up. This is not normal or typical behavior, so any machine reporting as relevant should be investigated. If for some reason there is more than 1 file over 2GB in the user's IDF temp folder then it will report back as failed even though it deleted one of them since there will still be another. It will take multiple runs to clear it up if that is the case.

-

This fixlet will delete an Identity Finder (IDF) temp file if there is one that is over 2GB in size. This is to address a specific issue that was experienced with Identity Finder that most likely no longer applies. This will not be relevant on most computers and only be relevant if there is at least one IDF temp file over 2GB in size located in the user's temp folder for IDF. This fixlet does not clear out all Identity Finder temp files.

]]>
- windows of operating system - exists folder "users" of drive of system folder - - exists folders "AppData\Local\Temp\Identity Finder\Identity Finder" of folders of folders of folder "users" of drive of system folder - not exists running application whose(name of it = "IdentityFinder.exe") - Internal - 2012-10-08 - - x-fixlet-modification-time - Mon, 11 Mar 2013 20:55:36 +0000 - - BESC - - - Click - here - to deploy this action. - - delete "{pathname of descendant whose(size of it = maximum of sizes of descendants of folders "AppData\Local\Temp\Identity Finder\Identity Finder" of folders whose (exists folder "AppData\Local\Temp\Identity Finder\Identity Finder" of it) of folder "users" of drive of system folder) of folders "AppData\Local\Temp\Identity Finder\Identity Finder" of folders whose (exists folder "AppData\Local\Temp\Identity Finder\Identity Finder" of it) of folder "users" of drive of system folder}" - -
-
+ + + + + Delete Identity Finder temp file if one exists over 2GB in size + WARNING: This fixlet should not be used without first investigating the cause, as it should not ever be relevant unless there is a problem. This fixlet was created to deal with a specific issue where Identity Finder left behind temp files over 10GB in size on many machines and this was used to clean it up. This is not normal or typical behavior, so any machine reporting as relevant should be investigated. If for some reason there is more than 1 file over 2GB in the user's IDF temp folder then it will report back as failed even though it deleted one of them since there will still be another. It will take multiple runs to clear it up if that is the case.

+

This fixlet will delete an Identity Finder (IDF) temp file if there is one that is over 2GB in size. This is to address a specific issue that was experienced with Identity Finder that most likely no longer applies. This will not be relevant on most computers and only be relevant if there is at least one IDF temp file over 2GB in size located in the user's temp folder for IDF. This fixlet does not clear out all Identity Finder temp files.

]]>
+ windows of operating system + exists folder "users" of drive of system folder + + exists folders "AppData\Local\Temp\Identity Finder\Identity Finder" of folders of folders of folder "users" of drive of system folder + not exists running application whose(name of it = "IdentityFinder.exe") + Internal + 2012-10-08 + + x-fixlet-modification-time + Mon, 11 Mar 2013 20:55:36 +0000 + + BESC + + + Click + here + to deploy this action. + + delete "{pathname of descendant whose(size of it = maximum of sizes of descendants of folders "AppData\Local\Temp\Identity Finder\Identity Finder" of folders whose (exists folder "AppData\Local\Temp\Identity Finder\Identity Finder" of it) of folder "users" of drive of system folder) of folders "AppData\Local\Temp\Identity Finder\Identity Finder" of folders whose (exists folder "AppData\Local\Temp\Identity Finder\Identity Finder" of it) of folder "users" of drive of system folder}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Delete NAME_OF_NETWORK WiFi Profile - Windows (6171).bes b/Sites/Windows Management/Fixlets/Fixlets/Delete NAME_OF_NETWORK WiFi Profile - Windows (6171).bes index 264876e2d..e9595f2b6 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Delete NAME_OF_NETWORK WiFi Profile - Windows (6171).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Delete NAME_OF_NETWORK WiFi Profile - Windows (6171).bes @@ -1,40 +1,40 @@ - - - - - Delete NAME_OF_NETWORK WiFi Profile - Windows - - windows of operating system - = "5.1"]]> - exists node values whose(it as trimmed string = "NAME_OF_NETWORK") of (selects "/WLANProfile/name/text()" of it; selects "/WLANProfile/SSIDConfig/SSID/name/text()" of it) of xml documents of files whose(name of it as lowercase ends with ".xml") of folders of folders "C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces" - Internal - 2015-08-21 - - x-fixlet-modification-time - Sat, 22 Aug 2015 00:21:05 +0000 - - BESC - - - Click - here - to deploy this action. - - -wait netsh wlan delete profile name="NAME_OF_NETWORK" - -notify client ForceRefresh - - - - - + + + + + Delete NAME_OF_NETWORK WiFi Profile - Windows + + windows of operating system + = "5.1"]]> + exists node values whose(it as trimmed string = "NAME_OF_NETWORK") of (selects "/WLANProfile/name/text()" of it; selects "/WLANProfile/SSIDConfig/SSID/name/text()" of it) of xml documents of files whose(name of it as lowercase ends with ".xml") of folders of folders "C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces" + Internal + 2015-08-21 + + x-fixlet-modification-time + Sat, 22 Aug 2015 00:21:05 +0000 + + BESC + + + Click + here + to deploy this action. + + +wait netsh wlan delete profile name="NAME_OF_NETWORK" + +notify client ForceRefresh + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Delete large Dell Driver folder from systems with low free space (721).bes b/Sites/Windows Management/Fixlets/Fixlets/Delete large Dell Driver folder from systems with low free space (721).bes index 150c8c361..deac4ac3d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Delete large Dell Driver folder from systems with low free space (721).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Delete large Dell Driver folder from systems with low free space (721).bes @@ -1,39 +1,39 @@ - - - - - Delete large Dell Driver folder from systems with low free space - - windows of operating system - exists (folder "dell" of drive of system folder) - - ((free space of drive of system folder)/(1024 * 1024))]]> - Internal - 2012-10-01 - - x-fixlet-modification-time - Tue, 02 Oct 2012 17:35:24 +0000 - - BESC - - - Click - here - to deploy this action. - - /s /q -waithidden cmd.exe /C rmdir {pathname of (folder "dell" of drive of system folder)} /s /q]]> - - - - + + + + + Delete large Dell Driver folder from systems with low free space + + windows of operating system + exists (folder "dell" of drive of system folder) + + ((free space of drive of system folder)/(1024 * 1024))]]> + Internal + 2012-10-01 + + x-fixlet-modification-time + Tue, 02 Oct 2012 17:35:24 +0000 + + BESC + + + Click + here + to deploy this action. + + /s /q +waithidden cmd.exe /C rmdir {pathname of (folder "dell" of drive of system folder)} /s /q]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Delete start menu shortcuts containing _uninstall_ (3657).bes b/Sites/Windows Management/Fixlets/Fixlets/Delete start menu shortcuts containing _uninstall_ (3657).bes index 8bc05354d..f153dfb45 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Delete start menu shortcuts containing _uninstall_ (3657).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Delete start menu shortcuts containing _uninstall_ (3657).bes @@ -1,40 +1,40 @@ - - - - - Delete start menu shortcuts containing "uninstall" - This task will delete any start menu shortcuts containing "uninstall"

-

Users without Admin rights cannot delete these shortcuts, and they cannot actually uninstall most programs either. Programs can be uninstalled through the "Add/Remove Programs" UI instead of using these shortcuts.

-

To see what this task will delete, see the property "All Users Start Menu "Uninstall" shortcuts" in the analysis "All Users - Files & Shortcuts - Desktop & Start Menu - Windows"

-

 

]]>
- windows of operating system - exists descendants whose(name of it as lowercase ends with ".lnk" AND name of it as lowercase contains "uninstall") of folder ((it as string) of value "Common Start Menu" of key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of native registry) - Internal - jgs194 - 2013-11-27 - - x-fixlet-modification-time - Wed, 27 Nov 2013 16:38:16 +0000 - - BESC - - - Click - here - to deploy this action. - - - - -
-
+ + + + + Delete start menu shortcuts containing "uninstall" + This task will delete any start menu shortcuts containing "uninstall"

+

Users without Admin rights cannot delete these shortcuts, and they cannot actually uninstall most programs either. Programs can be uninstalled through the "Add/Remove Programs" UI instead of using these shortcuts.

+

To see what this task will delete, see the property "All Users Start Menu "Uninstall" shortcuts" in the analysis "All Users - Files & Shortcuts - Desktop & Start Menu - Windows"

+

 

]]>
+ windows of operating system + exists descendants whose(name of it as lowercase ends with ".lnk" AND name of it as lowercase contains "uninstall") of folder ((it as string) of value "Common Start Menu" of key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" of native registry) + Internal + jgs194 + 2013-11-27 + + x-fixlet-modification-time + Wed, 27 Nov 2013 16:38:16 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Deploy - Windows Management Framework - 4.0 - Windows (23565).bes b/Sites/Windows Management/Fixlets/Fixlets/Deploy - Windows Management Framework - 4.0 - Windows (23565).bes index 7748c39ae..26ba14eaa 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Deploy - Windows Management Framework - 4.0 - Windows (23565).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Deploy - Windows Management Framework - 4.0 - Windows (23565).bes @@ -1,46 +1,46 @@ - - - - - Deploy - Windows Management Framework - 4.0 - Windows - Deploys Windows Management Framework 4.0.

-

Requires .Net 4.5

]]>
- windows of operating system - /* Must be Windows 7 SP1 or or Windows Server 2008 R2 SP1 */ (version of it equals "6.1" as version and service pack major version of it = 1) of operating system - = "4.5" as version) of key "Microsoft\Net Framework Setup\NDP\v4" of key "HKLM\Software" of x64 registry]]> - = "4.0" as version) of keys "HKLM\Software\Microsoft\Powershell\3\PowerShellEngine" of native registry]]> - Software Distribution - Window Management Framework - <Unspecified> - 2015-01-06 - <Unspecified> - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click&nbsp; - here - &nbsp;to deploy this action - - if {x64 of operating system} - prefetch KB2819745.msu sha1:5d40d059b9ea7f1d596f608a07cca49e4537dc15 size:19304283 https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x64-MultiPkg.msu sha256:fbc0889528656a3bc096f27434249f94cba12e413142aa38946fcdd8edf6f4c5 -else - prefetch KB2819745.msu sha1:378BD9F96B8C898B86BB0C0B92F2C9C000748C5E size:14736102 https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x86-MultiPkg.msu sha256:D5DD77C5CD6370984257C81269CE40F83466D20339E44BB6DE40C22D96641B98 -endif - -wait __Download\KB2819745.msu /quiet /norestart - -
-
+ + + + + Deploy - Windows Management Framework - 4.0 - Windows + Deploys Windows Management Framework 4.0.

+

Requires .Net 4.5

]]>
+ windows of operating system + /* Must be Windows 7 SP1 or or Windows Server 2008 R2 SP1 */ (version of it equals "6.1" as version and service pack major version of it = 1) of operating system + = "4.5" as version) of key "Microsoft\Net Framework Setup\NDP\v4" of key "HKLM\Software" of x64 registry]]> + = "4.0" as version) of keys "HKLM\Software\Microsoft\Powershell\3\PowerShellEngine" of native registry]]> + Software Distribution + Window Management Framework + <Unspecified> + 2015-01-06 + <Unspecified> + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click&nbsp; + here + &nbsp;to deploy this action + + if {x64 of operating system} + prefetch KB2819745.msu sha1:5d40d059b9ea7f1d596f608a07cca49e4537dc15 size:19304283 https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x64-MultiPkg.msu sha256:fbc0889528656a3bc096f27434249f94cba12e413142aa38946fcdd8edf6f4c5 +else + prefetch KB2819745.msu sha1:378BD9F96B8C898B86BB0C0B92F2C9C000748C5E size:14736102 https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x86-MultiPkg.msu sha256:D5DD77C5CD6370984257C81269CE40F83466D20339E44BB6DE40C22D96641B98 +endif + +wait __Download\KB2819745.msu /quiet /norestart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.5 (2531).bes b/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.5 (2531).bes index 45cecb295..ca85b3ce9 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.5 (2531).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.5 (2531).bes @@ -1,47 +1,47 @@ - - - - - Deploy Microsoft Office 2011 Update 14.3.5 -
- Requires Microsoft Office 2011 Service Pack 1

This task is applicable on Mac OS X 10.6, Mac OS X 10.7 and Mac OS X 10.8 ]]>
- mac of operating system - = "10.6" AND system version < "10.9")]]> - exists folder "Microsoft Office 2011" of applications folder - = "14.1.0") OR exists application "Microsoft Excel.app" whose (version of it < "14.3.5" AND version of it >= "14.1.0") OR exists application "Microsoft PowerPoint.app" whose (version of it < "14.3.5" AND version of it >= "14.1.0") OR exists application "Microsoft Outlook.app" whose (version of it < "14.3.5" AND version of it >= "14.1.0")]]> - Software Deployment - Mac Software Deployment Wizard - mah60 - 2026-09-17 - - x-fixlet-source - Mac Software Deployment Wizard - - - x-fixlet-modification-time - Mon, 08 Jul 2013 13:31:37 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - prefetch Office2011-1435UpdateEN.dmg sha1:da4767931619e8ec3725c81672a067371c7b92ba size:118529423 http://download.microsoft.com/download/E/1/A/E1A3BFED-FED3-498E-8D02-EF4796F1F8E7/Office2011-1435UpdateEN.dmg -wait /usr/bin/hdiutil attach -quiet -nobrowse -mountpoint "/tmp/OFFICE20111435" "{posix path of file "Office2011-1435UpdateEN.dmg" of folder "__Download" of client folder of current site}" -wait /bin/sh -c "/usr/sbin/installer -pkg /tmp/OFFICE20111435/Office\ 2011\ 14.3.5\ Update.pkg -target /" -wait /usr/bin/hdiutil detach -force "/tmp/OFFICE20111435" - - - -
-
+ + + + + Deploy Microsoft Office 2011 Update 14.3.5 +
- Requires Microsoft Office 2011 Service Pack 1

This task is applicable on Mac OS X 10.6, Mac OS X 10.7 and Mac OS X 10.8 ]]>
+ mac of operating system + = "10.6" AND system version < "10.9")]]> + exists folder "Microsoft Office 2011" of applications folder + = "14.1.0") OR exists application "Microsoft Excel.app" whose (version of it < "14.3.5" AND version of it >= "14.1.0") OR exists application "Microsoft PowerPoint.app" whose (version of it < "14.3.5" AND version of it >= "14.1.0") OR exists application "Microsoft Outlook.app" whose (version of it < "14.3.5" AND version of it >= "14.1.0")]]> + Software Deployment + Mac Software Deployment Wizard + mah60 + 2026-09-17 + + x-fixlet-source + Mac Software Deployment Wizard + + + x-fixlet-modification-time + Mon, 08 Jul 2013 13:31:37 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch Office2011-1435UpdateEN.dmg sha1:da4767931619e8ec3725c81672a067371c7b92ba size:118529423 http://download.microsoft.com/download/E/1/A/E1A3BFED-FED3-498E-8D02-EF4796F1F8E7/Office2011-1435UpdateEN.dmg +wait /usr/bin/hdiutil attach -quiet -nobrowse -mountpoint "/tmp/OFFICE20111435" "{posix path of file "Office2011-1435UpdateEN.dmg" of folder "__Download" of client folder of current site}" +wait /bin/sh -c "/usr/sbin/installer -pkg /tmp/OFFICE20111435/Office\ 2011\ 14.3.5\ Update.pkg -target /" +wait /usr/bin/hdiutil detach -force "/tmp/OFFICE20111435" + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.6 (2539).bes b/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.6 (2539).bes index 13328cad7..80ac9c894 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.6 (2539).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Deploy Microsoft Office 2011 Update 14.3.6 (2539).bes @@ -1,47 +1,47 @@ - - - - - Deploy Microsoft Office 2011 Update 14.3.6 -
- Requires Microsoft Office 2011 Service Pack 1

This task is applicable on Mac OS X 10.6, Mac OS X 10.7 and Mac OS X 10.8 ]]>
- mac of operating system - = "10.6" AND system version < "10.9")]]> - exists folder "Microsoft Office 2011" of applications folder - = "14.1.0") OR exists application "Microsoft Excel.app" whose (version of it < "14.3.6" AND version of it >= "14.1.0") OR exists application "Microsoft PowerPoint.app" whose (version of it < "14.3.6" AND version of it >= "14.1.0") OR exists application "Microsoft Outlook.app" whose (version of it < "14.3.6" AND version of it >= "14.1.0")]]> - Software Deployment - Mac Software Deployment Wizard - mah60 - 2026-09-17 - - x-fixlet-source - Mac Software Deployment Wizard - - - x-fixlet-modification-time - Fri, 19 Jul 2013 15:02:03 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - prefetch Office2011-1436Update_EN-US.dmg sha1:e55b56088a7ffde3a544b497926a4b4e4874a505 size:118568321 http://download.microsoft.com/download/F/A/2/FA2FBEE4-A7F9-4E59-8474-C580E2CBE412/Office2011-1436Update_EN-US.dmg -wait /usr/bin/hdiutil attach -quiet -nobrowse -mountpoint "/tmp/OFFICE20111436" "{posix path of file "Office2011-1436Update_EN-US.dmg" of folder "__Download" of client folder of current site}" -wait /bin/sh -c "/usr/sbin/installer -pkg /tmp/OFFICE20111436/Office\ 2011\ 14.3.6\ Update.pkg -target /" -wait /usr/bin/hdiutil detach -force "/tmp/OFFICE20111436" - - - -
-
+ + + + + Deploy Microsoft Office 2011 Update 14.3.6 +
- Requires Microsoft Office 2011 Service Pack 1

This task is applicable on Mac OS X 10.6, Mac OS X 10.7 and Mac OS X 10.8 ]]>
+ mac of operating system + = "10.6" AND system version < "10.9")]]> + exists folder "Microsoft Office 2011" of applications folder + = "14.1.0") OR exists application "Microsoft Excel.app" whose (version of it < "14.3.6" AND version of it >= "14.1.0") OR exists application "Microsoft PowerPoint.app" whose (version of it < "14.3.6" AND version of it >= "14.1.0") OR exists application "Microsoft Outlook.app" whose (version of it < "14.3.6" AND version of it >= "14.1.0")]]> + Software Deployment + Mac Software Deployment Wizard + mah60 + 2026-09-17 + + x-fixlet-source + Mac Software Deployment Wizard + + + x-fixlet-modification-time + Fri, 19 Jul 2013 15:02:03 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch Office2011-1436Update_EN-US.dmg sha1:e55b56088a7ffde3a544b497926a4b4e4874a505 size:118568321 http://download.microsoft.com/download/F/A/2/FA2FBEE4-A7F9-4E59-8474-C580E2CBE412/Office2011-1436Update_EN-US.dmg +wait /usr/bin/hdiutil attach -quiet -nobrowse -mountpoint "/tmp/OFFICE20111436" "{posix path of file "Office2011-1436Update_EN-US.dmg" of folder "__Download" of client folder of current site}" +wait /bin/sh -c "/usr/sbin/installer -pkg /tmp/OFFICE20111436/Office\ 2011\ 14.3.6\ Update.pkg -target /" +wait /usr/bin/hdiutil detach -force "/tmp/OFFICE20111436" + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Designate ALWAYS On Profile (2611).bes b/Sites/Windows Management/Fixlets/Fixlets/Designate ALWAYS On Profile (2611).bes index 2fbeb19cf..ac9ef2bc4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Designate ALWAYS On Profile (2611).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Designate ALWAYS On Profile (2611).bes @@ -1,74 +1,74 @@ - - - - - Designate ALWAYS On Profile - - - - -

-

This Task will make each of the targeted computers a "ALWAYS On Profile" computer.

-

Configure a computer's power profile to never enter the system Standby, Hibernate, or hard-disk power management modes actions that would turn the computer off.

]]>
- if exists property "in proxy agent context" then ( not in proxy agent context ) else true - (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else true) AND (name of operating system starts with "Win" OR name of operating system = "Mac OS X") - = "7.2" AND ((if (name of it= "Mac OS X") then (release of it >= "10.4" as version AND release of it < "10.9" as version) else true) of operating system)]]> - Power Options - danielheth@bigfix.me - <Unspecified> - 2013-10-03 - <Unspecified> - - x-fixlet-modification-time - Fri, 04 Oct 2013 02:16:45 +0000 - - BESC - - - Click - here - to apply an ALWAYS On Power Option. - - __list - - if{exists file "__list" whose(exists line whose(it contains "(ALWAYS On Profile)" ) of it)} - waithidden cmd.exe /C powercfg.exe -setactive {(if(exists lines whose(it contains "(ALWAYS On Profile)") of it ) then(preceding text of first "(" of following text of first ":" of concatenations of( lines whose(it contains "(ALWAYS On Profile)") of it) of file "__list") else("381b4222-f694-41f0-9685-ff5bb260df2e") ) of file "__list"} - delete __list - else - waithidden cmd.exe /C powercfg.exe -duplicatescheme 381b4222-f694-41f0-9685-ff5bb260df2e > __guid - waithidden cmd.exe /C powercfg.exe -changename {preceding text of last "(" of (following text of first ": " of (line 1 of file "__guid"))} "Last Man Standing" - waithidden cmd.exe /C powercfg.exe -setactive {preceding text of last "(" of (following text of first ": " of (line 1 of file "__guid"))} - delete __guid - endif - - waithidden cmd.exe /C powercfg.exe -change -disk-timeout-ac 0 - waithidden cmd.exe /C powercfg.exe -change -standby-timeout-ac 0 - waithidden cmd.exe /C powercfg.exe -hibernate off - else - if{name of operating system contains "Win"} - waithidden "{pathname of system folder & "\powercfg.exe"}" /create "ALWAYS On Profile" - waithidden "{pathname of system folder & "\powercfg.exe"}" /setactive "ALWAYS On Profile" - waithidden "{pathname of system folder & "\powercfg.exe"}" /change "ALWAYS On Profile" /disk-timeout-ac 0 - waithidden "{pathname of system folder & "\powercfg.exe"}" /change "ALWAYS On Profile" /standby-timeout-ac 0 - waithidden "{pathname of system folder & "\powercfg.exe"}" /hibernate off - endif - endif -endif -]]> - -
-
+ + + + + Designate ALWAYS On Profile + + + + +

+

This Task will make each of the targeted computers a "ALWAYS On Profile" computer.

+

Configure a computer's power profile to never enter the system Standby, Hibernate, or hard-disk power management modes actions that would turn the computer off.

]]>
+ if exists property "in proxy agent context" then ( not in proxy agent context ) else true + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else true) AND (name of operating system starts with "Win" OR name of operating system = "Mac OS X") + = "7.2" AND ((if (name of it= "Mac OS X") then (release of it >= "10.4" as version AND release of it < "10.9" as version) else true) of operating system)]]> + Power Options + danielheth@bigfix.me + <Unspecified> + 2013-10-03 + <Unspecified> + + x-fixlet-modification-time + Fri, 04 Oct 2013 02:16:45 +0000 + + BESC + + + Click + here + to apply an ALWAYS On Power Option. + + __list + + if{exists file "__list" whose(exists line whose(it contains "(ALWAYS On Profile)" ) of it)} + waithidden cmd.exe /C powercfg.exe -setactive {(if(exists lines whose(it contains "(ALWAYS On Profile)") of it ) then(preceding text of first "(" of following text of first ":" of concatenations of( lines whose(it contains "(ALWAYS On Profile)") of it) of file "__list") else("381b4222-f694-41f0-9685-ff5bb260df2e") ) of file "__list"} + delete __list + else + waithidden cmd.exe /C powercfg.exe -duplicatescheme 381b4222-f694-41f0-9685-ff5bb260df2e > __guid + waithidden cmd.exe /C powercfg.exe -changename {preceding text of last "(" of (following text of first ": " of (line 1 of file "__guid"))} "Last Man Standing" + waithidden cmd.exe /C powercfg.exe -setactive {preceding text of last "(" of (following text of first ": " of (line 1 of file "__guid"))} + delete __guid + endif + + waithidden cmd.exe /C powercfg.exe -change -disk-timeout-ac 0 + waithidden cmd.exe /C powercfg.exe -change -standby-timeout-ac 0 + waithidden cmd.exe /C powercfg.exe -hibernate off + else + if{name of operating system contains "Win"} + waithidden "{pathname of system folder & "\powercfg.exe"}" /create "ALWAYS On Profile" + waithidden "{pathname of system folder & "\powercfg.exe"}" /setactive "ALWAYS On Profile" + waithidden "{pathname of system folder & "\powercfg.exe"}" /change "ALWAYS On Profile" /disk-timeout-ac 0 + waithidden "{pathname of system folder & "\powercfg.exe"}" /change "ALWAYS On Profile" /standby-timeout-ac 0 + waithidden "{pathname of system folder & "\powercfg.exe"}" /hibernate off + endif + endif +endif +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Device Control (24645).bes b/Sites/Windows Management/Fixlets/Fixlets/Device Control (24645).bes index d6e6cea35..bc5ae9f90 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Device Control (24645).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Device Control (24645).bes @@ -1,38 +1,38 @@ - - - - - Device Control - - true - Tom Stacy - 2017-09-26 - - x-fixlet-modification-time - Fri, 08 Sep 2017 21:03:05 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here -regset "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" "AllowDeviceIDs"=dword:00000001 -regset "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" "DenyRemovableDevices"=dword:00000001 -regset "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\AllowDeviceIDs\1"=sz:"USBSTOR\\DiskUSB_2.0_USB_Flash_Drive_1100" -regset "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DeniedPolicy\SimpleText"=sz:"InfoSec has prevented this PC from mounting this USB." - - - - + + + + + Device Control + + true + Tom Stacy + 2017-09-26 + + x-fixlet-modification-time + Fri, 08 Sep 2017 21:03:05 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +regset "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" "AllowDeviceIDs"=dword:00000001 +regset "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" "DenyRemovableDevices"=dword:00000001 +regset "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\AllowDeviceIDs\1"=sz:"USBSTOR\\DiskUSB_2.0_USB_Flash_Drive_1100" +regset "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DeniedPolicy\SimpleText"=sz:"InfoSec has prevented this PC from mounting this USB." + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Administrator Account (99).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Administrator Account (99).bes index 56c11a88a..e14fbdb2b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Administrator Account (99).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Administrator Account (99).bes @@ -1,45 +1,45 @@ - - - - - Disable Administrator Account - - name of operating system starts with "Win" - exists local user "Administrator" OR exists local user "TheAdministrator" - NOT account disabled flag of local user "Administrator" OR NOT account disabled flag of local user "TheAdministrator" - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-10-01 - <Unspecified> - - x-fixlet-modification-time - Mon, 01 Oct 2012 21:49:02 +0000 - - BESC - - - Click - here - to deploy this action. - - -if {exists local user "Administrator"} - wait net user Administrator /active:NO -else //if {exists local user "TheAdministrator"} - wait net user TheAdministrator /active:NO -endif - - - - - + + + + + Disable Administrator Account + + name of operating system starts with "Win" + exists local user "Administrator" OR exists local user "TheAdministrator" + NOT account disabled flag of local user "Administrator" OR NOT account disabled flag of local user "TheAdministrator" + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-01 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:49:02 +0000 + + BESC + + + Click + here + to deploy this action. + + +if {exists local user "Administrator"} + wait net user Administrator /active:NO +else //if {exists local user "TheAdministrator"} + wait net user TheAdministrator /active:NO +endif + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable AutoAdminLogon (740).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable AutoAdminLogon (740).bes index 6f4fa4cde..97bdd2d8f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable AutoAdminLogon (740).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable AutoAdminLogon (740).bes @@ -1,40 +1,40 @@ - - - - - Disable AutoAdminLogon -

This task is applicable on: Windows XP, Windows Vista, Windows 7. ]]>
- name of operating system = "WinXP" OR name of operating system = "WinXP-2003" OR (name of it = "WinVista" and product type of it = nt workstation product type) of operating system OR name of operating system = "Win7" - exists value "AutoAdminLogon" whose (0 != it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" of native registry - Registry Edit - Windows Registry Wizard - 2026-09-17 - - x-fixlet-source - Windows Registry Wizard - - - x-fixlet-modification-time - Thu, 22 Sep 2011 19:38:02 +0000 - - BESC - - - Click&nbsp; - here&nbsp; - to initiate the deployment process. - - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]" "AutoAdminLogon"="0" - - -
-
+ + + + + Disable AutoAdminLogon +

This task is applicable on: Windows XP, Windows Vista, Windows 7. ]]>
+ name of operating system = "WinXP" OR name of operating system = "WinXP-2003" OR (name of it = "WinVista" and product type of it = nt workstation product type) of operating system OR name of operating system = "Win7" + exists value "AutoAdminLogon" whose (0 != it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" of native registry + Registry Edit + Windows Registry Wizard + 2026-09-17 + + x-fixlet-source + Windows Registry Wizard + + + x-fixlet-modification-time + Thu, 22 Sep 2011 19:38:02 +0000 + + BESC + + + Click&nbsp; + here&nbsp; + to initiate the deployment process. + + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]" "AutoAdminLogon"="0" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable IE Compatibility Mode for All Websites for Currently Logged On User (646).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable IE Compatibility Mode for All Websites for Currently Logged On User (646).bes index 87016493f..dc2b33fec 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable IE Compatibility Mode for All Websites for Currently Logged On User (646).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable IE Compatibility Mode for All Websites for Currently Logged On User (646).bes @@ -1,48 +1,48 @@ - - - - - Disable IE Compatibility Mode for All Websites for Currently Logged On User - Disable Internet Explorer Compatibility Mode for All Websites for the Currently Logged On User - name of operating system starts with "Win" - - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-10-26 - <Unspecified> - - x-fixlet-modification-time - Fri, 26 Oct 2012 21:42:32 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - Click - here - to source of information. - - http://www.sevenforums.com/tutorials/1220-internet-explorer-compatilbility-view-all-websites.html - - - + + + + + Disable IE Compatibility Mode for All Websites for Currently Logged On User + Disable Internet Explorer Compatibility Mode for All Websites for the Currently Logged On User + name of operating system starts with "Win" + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-26 + <Unspecified> + + x-fixlet-modification-time + Fri, 26 Oct 2012 21:42:32 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + Click + here + to source of information. + + http://www.sevenforums.com/tutorials/1220-internet-explorer-compatilbility-view-all-websites.html + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Microsoft CEIP (3899).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Microsoft CEIP (3899).bes index d7686fed5..3016df15a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Microsoft CEIP (3899).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Microsoft CEIP (3899).bes @@ -1,54 +1,54 @@ - - - - - Disable Microsoft CEIP - This fixlet disables the Microsoft Customer Experience Program - name of operating system starts with "Win" - (if exists property "in proxy agent context" then (not in proxy agent context) else true) AND (if exists property "android" of type "operating system" then (not android of operating system) else true) - not exists (key "HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows" of native registry) whose (value "CEIPEnable" of it is 0) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Application Experience\AitAgent" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Application Experience\ProgramDataUpdater" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Autochk\Proxy" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerCeipAssistant" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleCollector" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleUsageCollector" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" and enabled of it) - Configuration - Internal - 2014-10-29 - - x-fixlet-modification-time - Wed, 29 Oct 2014 05:59:28 +0000 - - BESC - - - Click - here - to deploy this action. - - // Disable CEIP by registry -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows]" "CEIPEnable"=dword:0 -else - regset "[HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows]" "CEIPEnable"=dword:0 -endif - -// Disable associated scheduled tasks -waithidden schtasks /change /TN "\Microsoft\Windows\Application Experience\AitAgent" /Disable -waithidden schtasks /change /TN "\Microsoft\Windows\Application Experience\ProgramDataUpdater" /Disable -waithidden schtasks /change /TN "\Microsoft\Windows\Autochk\Proxy" /Disable -waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /Disable -waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /Disable -waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /Disable -waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerCeipAssistant" /Disable -waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleCollector" /Disable -waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleUsageCollector" /Disable -waithidden schtasks /change /TN "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" /Disable - - - - + + + + + Disable Microsoft CEIP + This fixlet disables the Microsoft Customer Experience Program + name of operating system starts with "Win" + (if exists property "in proxy agent context" then (not in proxy agent context) else true) AND (if exists property "android" of type "operating system" then (not android of operating system) else true) + not exists (key "HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows" of native registry) whose (value "CEIPEnable" of it is 0) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Application Experience\AitAgent" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Application Experience\ProgramDataUpdater" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Autochk\Proxy" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerCeipAssistant" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleCollector" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleUsageCollector" and enabled of it) OR exists scheduled task whose (path of it is "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" and enabled of it) + Configuration + Internal + 2014-10-29 + + x-fixlet-modification-time + Wed, 29 Oct 2014 05:59:28 +0000 + + BESC + + + Click + here + to deploy this action. + + // Disable CEIP by registry +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows]" "CEIPEnable"=dword:0 +else + regset "[HKEY_LOCAL_MACHINE\Software\Microsoft\SQMClient\Windows]" "CEIPEnable"=dword:0 +endif + +// Disable associated scheduled tasks +waithidden schtasks /change /TN "\Microsoft\Windows\Application Experience\AitAgent" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Application Experience\ProgramDataUpdater" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Autochk\Proxy" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerCeipAssistant" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleCollector" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\Server\ServerRoleUsageCollector" /Disable +waithidden schtasks /change /TN "\Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" /Disable + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (108).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (108).bes index 2b54fb712..68ae244a3 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (108).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (108).bes @@ -1,42 +1,42 @@ - - - - - Disable Named Pipes - - - - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-08-20 - <Unspecified> - - x-fixlet-modification-time - Thu, 30 Aug 2012 15:51:56 +0000 - - BESC - - - Click - here - to disable MS SQL Named Pipes. - - -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 -else - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 -endif - - - + + + + + Disable Named Pipes + + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-08-20 + <Unspecified> + + x-fixlet-modification-time + Thu, 30 Aug 2012 15:51:56 +0000 + + BESC + + + Click + here + to disable MS SQL Named Pipes. + + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 +else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (642).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (642).bes index 776915ddf..097824703 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (642).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Named Pipes (642).bes @@ -1,42 +1,42 @@ - - - - - Disable Named Pipes - - - - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-08-20 - <Unspecified> - - x-fixlet-modification-time - Thu, 30 Aug 2012 15:51:56 +0000 - - BESC - - - Click - here - to disable MS SQL Named Pipes. - - -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 -else - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 -endif - - - + + + + + Disable Named Pipes + + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-08-20 + <Unspecified> + + x-fixlet-modification-time + Thu, 30 Aug 2012 15:51:56 +0000 + + BESC + + + Click + here + to disable MS SQL Named Pipes. + + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 +else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000000 +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable NetBios On All Network Adaptors (Requires Restart) (27372).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable NetBios On All Network Adaptors (Requires Restart) (27372).bes index 20bc6cbcb..0a709d02f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable NetBios On All Network Adaptors (Requires Restart) (27372).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable NetBios On All Network Adaptors (Requires Restart) (27372).bes @@ -1,36 +1,36 @@ - - - - - Disable NetBios On All Network Adaptors (Requires Restart) - Executes a powershell script to update the registry to disable NetBios on all network adaptors - true - Internal - 2025-02-20 - - x-fixlet-modification-time - Thu, 20 Feb 2025 10:00:05 +0000 - - BESC - - - Click - here - to deploy this action. - - waithidden powershell -ExecutionPolicy Bypass -command "Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces\tcpip* -Name NetbiosOptions -Value 2" -action requires restart - - - - - + + + + + Disable NetBios On All Network Adaptors (Requires Restart) + Executes a powershell script to update the registry to disable NetBios on all network adaptors + true + Internal + 2025-02-20 + + x-fixlet-modification-time + Thu, 20 Feb 2025 10:00:05 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden powershell -ExecutionPolicy Bypass -command "Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces\tcpip* -Name NetbiosOptions -Value 2" +action requires restart + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Remote Desktop (RDP) (659).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Remote Desktop (RDP) (659).bes index 441472210..15e34bb42 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Remote Desktop (RDP) (659).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Remote Desktop (RDP) (659).bes @@ -1,48 +1,48 @@ - - - - - Disable Remote Desktop (RDP) - Disable remote desktop settings in the registry. (RDP) - name of operating system starts with "Win" - exists value "fDenyTSConnections" whose (it = 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of registry - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-11-05 - <Unspecified> - - x-fixlet-modification-time - Tue, 06 Nov 2012 00:35:31 +0000 - - BESC - - - Click - here - to deploy this action. - - -regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]" "fDenyTSConnections"=dword:00000001 - - - - - - Click - here - to learn more about this setting. - - http://technet.microsoft.com/en-us/library/cc782195(v=ws.10).aspx - - - + + + + + Disable Remote Desktop (RDP) + Disable remote desktop settings in the registry. (RDP) + name of operating system starts with "Win" + exists value "fDenyTSConnections" whose (it = 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of registry + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-11-05 + <Unspecified> + + x-fixlet-modification-time + Tue, 06 Nov 2012 00:35:31 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]" "fDenyTSConnections"=dword:00000001 + + + + + + Click + here + to learn more about this setting. + + http://technet.microsoft.com/en-us/library/cc782195(v=ws.10).aspx + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24318).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24318).bes index 04bdf2328..65b6a5113 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24318).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24318).bes @@ -1,56 +1,56 @@ - - - - - Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 - -

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2012" or name of it = "Win2012R2" or name of it = "Win8") of operating system - not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it = 0) of native registry - Workaround - brolly33 - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 20:03:44 +0000 - - BESC - - - Click - here - to deploy this action. - - // Using Powershell Template https://bigfix.me/fixlet/details/3860 - -// Disable wow64 redirection on x64 OSes -action uses wow64 redirection {not x64 of operating system} - -delete __createfile - -// CREATEFILE -createfile until END_OF_FILE - -Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force - -END_OF_FILE - -delete powershell.ps1 -move __createfile powershell.ps1 - -waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 - -
-
+ + + + + Disable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012" or name of it = "Win2012R2" or name of it = "Win8") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it = 0) of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 20:03:44 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24314).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24314).bes index 1f0ae4b3c..1e8565b93 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24314).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24314).bes @@ -1,38 +1,38 @@ - - - - - Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 - To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista") of operating system - not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it as integer = 0) of (native registries) - Internal - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 17:28:12 +0000 - - BESC - - - Click - here - to deploy this action. - - regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]" "SMB1"=dword:00000000 - - -
-
+ + + + + Disable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 + To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it as integer = 0) of (native registries) + Internal + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 17:28:12 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]" "SMB1"=dword:00000000 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Service - Windows (23443).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Service - Windows (23443).bes index 8a3768d0e..a27c4b30f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Service - Windows (23443).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 Service - Windows (23443).bes @@ -1,43 +1,43 @@ - - - - - Disable SMBv1 Service - Windows - - windows of operating systems - not exists unique values whose(it contains "mrxsmb10") of (it as string as lowercase) of values "DependOnService" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation" of (x64 registries;x32 registries) - exists unique values whose(it != 4) of (it as integer) of values "Start" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrxsmb10" of (x64 registries;x32 registries) - Configuration - Internal - jgstew - 2017-02-14 - - x-fixlet-modification-time - Tue, 14 Feb 2017 23:27:38 +0000 - - BESC - - - Click - here - to deploy this action. - - -// https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012 -waithidden sc.exe config mrxsmb10 start= disabled - -action requires restart "SMBv1_DisableService" - - - - - + + + + + Disable SMBv1 Service - Windows + + windows of operating systems + not exists unique values whose(it contains "mrxsmb10") of (it as string as lowercase) of values "DependOnService" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation" of (x64 registries;x32 registries) + exists unique values whose(it != 4) of (it as integer) of values "Start" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrxsmb10" of (x64 registries;x32 registries) + Configuration + Internal + jgstew + 2017-02-14 + + x-fixlet-modification-time + Tue, 14 Feb 2017 23:27:38 +0000 + + BESC + + + Click + here + to deploy this action. + + +// https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012 +waithidden sc.exe config mrxsmb10 start= disabled + +action requires restart "SMBv1_DisableService" + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24316).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24316).bes index 60b95f631..ced7654f0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24316).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24316).bes @@ -1,41 +1,41 @@ - - - - - Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 - To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista" or name of it = "Win2012" or name of it = "Win8") of operating system - not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation" whose (exists value "DependOnService" whose (it as string as lowercase does not contain "MRxSmb10" as lowercase)of it) of native registry - exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10" whose (value "Start" of it != 4) of native registry - workaround - brolly33 - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 18:54:46 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here -wait sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi -wait sc.exe config mrxsmb10 start= disabled - -
-
+ + + + + Disable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 + To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista" or name of it = "Win2012" or name of it = "Win8") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation" whose (exists value "DependOnService" whose (it as string as lowercase does not contain "MRxSmb10" as lowercase)of it) of native registry + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10" whose (value "Start" of it != 4) of native registry + workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 18:54:46 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +wait sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi +wait sc.exe config mrxsmb10 start= disabled + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Skype Auto-update - Improved (3662).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Skype Auto-update - Improved (3662).bes index 7d0919fd1..046ac6193 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Skype Auto-update - Improved (3662).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Skype Auto-update - Improved (3662).bes @@ -1,52 +1,52 @@ - - - - - Disable Skype Auto-update - Improved - The listed computers have Skype installed and configured to check for updates automatically. Deploying the action below will disable Skype auto-update. - (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - name of operating system as lowercase starts with "win" - = "7"]]> - not exists values "PROCESSOR_ARCHITECTURE" whose (it as string as lowercase = "ia64") of keys "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry - = "5.0" /* http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx */]]> - /* Only relevant if skype is installed */ exists key "HKLM\Software\Skype" whose(exists key "Phone" of it AND exists value "SkypePath" of key "Phone" of it) of registry - /* Only relevant if skype is installed */ exists file ((value "SkypePath" of key "Phone" of it as string) of key "HKLM\Software\Skype" of registry) - = version 6.5 */ ((version of file (value "SkypePath" of key "Phone" of it as string) >= "6.5") AND (not exist key "Installer" whose (value "InstallUpdates" of it = 0) of it))) of key "HKLM\Software\Skype" of registry]]> - jgstew - 2013-12-04 - - x-fixlet-first-propagation - Thu, 16 Feb 2012 05:41:45 +0000 - - - x-fixlet-modification-time - Wed, 04 Dec 2013 20:26:28 +0000 - - BESC - - - Click - here - to disable Skype Auto-update. - - - - - + + + + + Disable Skype Auto-update - Improved + The listed computers have Skype installed and configured to check for updates automatically. Deploying the action below will disable Skype auto-update. + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + name of operating system as lowercase starts with "win" + = "7"]]> + not exists values "PROCESSOR_ARCHITECTURE" whose (it as string as lowercase = "ia64") of keys "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" of registry + = "5.0" /* http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx */]]> + /* Only relevant if skype is installed */ exists key "HKLM\Software\Skype" whose(exists key "Phone" of it AND exists value "SkypePath" of key "Phone" of it) of registry + /* Only relevant if skype is installed */ exists file ((value "SkypePath" of key "Phone" of it as string) of key "HKLM\Software\Skype" of registry) + = version 6.5 */ ((version of file (value "SkypePath" of key "Phone" of it as string) >= "6.5") AND (not exist key "Installer" whose (value "InstallUpdates" of it = 0) of it))) of key "HKLM\Software\Skype" of registry]]> + jgstew + 2013-12-04 + + x-fixlet-first-propagation + Thu, 16 Feb 2012 05:41:45 +0000 + + + x-fixlet-modification-time + Wed, 04 Dec 2013 20:26:28 +0000 + + BESC + + + Click + here + to disable Skype Auto-update. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Skype start with windows (727).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Skype start with windows (727).bes index e8d0b34f8..9edf8da47 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Skype start with windows (727).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Skype start with windows (727).bes @@ -1,38 +1,38 @@ - - - - - Disable Skype start with windows - - windows of operating system - exists current user AND (1 = number of logged on users) - (exists keys whose (value "DisplayName" of it as string contains "Skype") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry) AND (exists key "HKLM\Software\Skype\Phone" of registry) - - Internal - 2012-05-31 - - x-fixlet-modification-time - Fri, 01 Jun 2012 14:25:26 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - + + + + + Disable Skype start with windows + + windows of operating system + exists current user AND (1 = number of logged on users) + (exists keys whose (value "DisplayName" of it as string contains "Skype") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry) AND (exists key "HKLM\Software\Skype\Phone" of registry) + + Internal + 2012-05-31 + + x-fixlet-modification-time + Fri, 01 Jun 2012 14:25:26 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes index 1c5b919e3..e8687ae4d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24650).bes @@ -1,67 +1,67 @@ - - - - - Disable Solution to CVE-2017-8529 - Windows 7 SP1 / 8.1 / 10 / Windows Server 2008 SP2 / 2008 R2 SP1 / 2012 / 2012 R2 / 2016 - -

Use this Fixlet to disable solution to CVE-2017-8529.

- -
-

File Size:

-Unspecified -
-]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - not ia64 of operating system - ((name of it = "Win2008") AND service pack major version of it = 2 OR (name of it = "Win7" OR name of it = "Win2008R2") AND service pack major version of it = 1 OR name of it = "Win8.1" OR name of it = "Win10" OR name of it = "Win2012" OR name of it = "Win2012R2" OR name of it = "Win2016") of operating system - exist keys "FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX" whose (value "iexplore.exe" of it as integer = 1) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl" of native registry - not pending restart "d43b4c2f9e88dcf95a8171a5d5bb90ae26776e57" - Setting - Microsoft - Unspecified - 2017-09-12 - Unspecified - CVE-2017-8529 - - x-fixlet-product-family - Windows - - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000000 - -if {x64 of operating system} -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000000 -endif - -action requires restart "d43b4c2f9e88dcf95a8171a5d5bb90ae26776e57" - - - - Click - here - to see the Security Guidance Article for this update. - - https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8529 - -
-
+ + + + + Disable Solution to CVE-2017-8529 - Windows 7 SP1 / 8.1 / 10 / Windows Server 2008 SP2 / 2008 R2 SP1 / 2012 / 2012 R2 / 2016 + +

Use this Fixlet to disable solution to CVE-2017-8529.

+ +
+

File Size:

+Unspecified +
+]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + not ia64 of operating system + ((name of it = "Win2008") AND service pack major version of it = 2 OR (name of it = "Win7" OR name of it = "Win2008R2") AND service pack major version of it = 1 OR name of it = "Win8.1" OR name of it = "Win10" OR name of it = "Win2012" OR name of it = "Win2012R2" OR name of it = "Win2016") of operating system + exist keys "FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX" whose (value "iexplore.exe" of it as integer = 1) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl" of native registry + not pending restart "d43b4c2f9e88dcf95a8171a5d5bb90ae26776e57" + Setting + Microsoft + Unspecified + 2017-09-12 + Unspecified + CVE-2017-8529 + + x-fixlet-product-family + Windows + + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000000 + +if {x64 of operating system} +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000000 +endif + +action requires restart "d43b4c2f9e88dcf95a8171a5d5bb90ae26776e57" + + + + Click + here + to see the Security Guidance Article for this update. + + https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8529 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (1376).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (1376).bes index 1d6aa8078..30bf19e86 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (1376).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (1376).bes @@ -1,43 +1,43 @@ - - - - - Disable UAC - - (name of it = "WinVista" or name of it = "Win7" or name of it = "Win8") of operating system - value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of registry = 1 OR value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of x64 registry = 1 - Configuration - danielheth@bigfix.me - <Unspecified> - 2013-01-14 - <Unspecified> - - x-fixlet-modification-time - Mon, 14 Jan 2013 15:33:10 +0000 - - BESC - - - Click - here - to deploy this action. - - -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:0 -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:0 -endif - - - - - + + + + + Disable UAC + + (name of it = "WinVista" or name of it = "Win7" or name of it = "Win8") of operating system + value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of registry = 1 OR value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of x64 registry = 1 + Configuration + danielheth@bigfix.me + <Unspecified> + 2013-01-14 + <Unspecified> + + x-fixlet-modification-time + Mon, 14 Jan 2013 15:33:10 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:0 +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:0 +endif + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (26610).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (26610).bes index 0f414265c..c4d42283f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (26610).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable UAC (26610).bes @@ -1,47 +1,47 @@ - - - - - Disable UAC - - (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - Internal - 2019-03-04 - - x-fixlet-modification-time - Wed, 06 Mar 2019 18:16:45 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection false -delete __createfile -Createfile until END_OF_FILE -Windows Registry Editor Version 5.00 - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] -"ConsentPromptBehaviorAdmin"=dword:00000000 -"EnableLUA"=dword:00000000 - -END_OF_FILE -delete uac.reg -move __createfile uac.reg - -waithidden regedit /s uac.reg - - - - + + + + + Disable UAC + + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + Internal + 2019-03-04 + + x-fixlet-modification-time + Wed, 06 Mar 2019 18:16:45 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection false +delete __createfile +Createfile until END_OF_FILE +Windows Registry Editor Version 5.00 + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] +"ConsentPromptBehaviorAdmin"=dword:00000000 +"EnableLUA"=dword:00000000 + +END_OF_FILE +delete uac.reg +move __createfile uac.reg + +waithidden regedit /s uac.reg + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Wake-from-Standby by Magic Packet - Windows XP_Vista_Win7_2008 and Mac OS 10.4_10.5_10.6_10.7 (310).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Wake-from-Standby by Magic Packet - Windows XP_Vista_Win7_2008 and Mac OS 10.4_10.5_10.6_10.7 (310).bes index 088f260eb..89ec43087 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Wake-from-Standby by Magic Packet - Windows XP_Vista_Win7_2008 and Mac OS 10.4_10.5_10.6_10.7 (310).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Wake-from-Standby by Magic Packet - Windows XP_Vista_Win7_2008 and Mac OS 10.4_10.5_10.6_10.7 (310).bes @@ -1,57 +1,57 @@ - - - - - Disable Wake-from-Standby by Magic Packet - Windows XP/Vista/Win7/2008 and Mac OS 10.4/10.5/10.6/10.7 -

Network adapters can be configured to wake a computer from standby if they receive a Wake-on-LAN Magic Packet.

This Fixlet will disable the ability for network adapters to wake the computer from standby.

Note: This does not affect a computers ability to Wake-on-LAN from the powered off or Hibernate power state.

Note: This Task is not applicable on computers designated as Last Man Standing.

-]]>
- (it = "WinXP" OR it = "WinXP-2003" OR it = "WinVista" OR it = "Win7" OR it = "Win2008" OR it = "Win2008R2" OR it = "Mac OS X") of name of operating system - if ((it = "WinXP" OR it = "WinXP-2003" OR it = "WinVista" OR it = "Win7" OR it = "Win2008" OR it = "Win2008R2") of name of operating system) then ((exists values whose(name of it = "PnPCapabilities" AND it as integer = 48 ) of keys whose(value "Characteristics" of it as integer = 132) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}" of registry)) else (if (name of operating system ="Mac OS X") then (if exists file "/Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist" then ((if it = 1 then true else false) of integer "Wake On LAN" of dictionary "AC Power" of dictionary "Custom Profile" of dictionary of file "/Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist") else false) else false) - not exists settings whose(name of it contains "PowerManagement_LastManStanding" AND value of it = "1") of client - Wake-on-LAN - BigFix - <Unspecified> - 2010-08-13 - N/A - - x-fixlet-modification-time - Wed, 01 Aug 2012 01:09:07 +0000 - - - x-fixlet-first-propagation - Thu, 17 Nov 2011 19:28:18 +0000 - - - x-fixlet-domain_attributes - Manage_WFSBMP - - BESC - - - Click - here - to disable Wake-from-Standby on all network adapters. - - - -
-
+ + + + + Disable Wake-from-Standby by Magic Packet - Windows XP/Vista/Win7/2008 and Mac OS 10.4/10.5/10.6/10.7 +

Network adapters can be configured to wake a computer from standby if they receive a Wake-on-LAN Magic Packet.

This Fixlet will disable the ability for network adapters to wake the computer from standby.

Note: This does not affect a computers ability to Wake-on-LAN from the powered off or Hibernate power state.

Note: This Task is not applicable on computers designated as Last Man Standing.

+]]>
+ (it = "WinXP" OR it = "WinXP-2003" OR it = "WinVista" OR it = "Win7" OR it = "Win2008" OR it = "Win2008R2" OR it = "Mac OS X") of name of operating system + if ((it = "WinXP" OR it = "WinXP-2003" OR it = "WinVista" OR it = "Win7" OR it = "Win2008" OR it = "Win2008R2") of name of operating system) then ((exists values whose(name of it = "PnPCapabilities" AND it as integer = 48 ) of keys whose(value "Characteristics" of it as integer = 132) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}" of registry)) else (if (name of operating system ="Mac OS X") then (if exists file "/Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist" then ((if it = 1 then true else false) of integer "Wake On LAN" of dictionary "AC Power" of dictionary "Custom Profile" of dictionary of file "/Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist") else false) else false) + not exists settings whose(name of it contains "PowerManagement_LastManStanding" AND value of it = "1") of client + Wake-on-LAN + BigFix + <Unspecified> + 2010-08-13 + N/A + + x-fixlet-modification-time + Wed, 01 Aug 2012 01:09:07 +0000 + + + x-fixlet-first-propagation + Thu, 17 Nov 2011 19:28:18 +0000 + + + x-fixlet-domain_attributes + Manage_WFSBMP + + BESC + + + Click + here + to disable Wake-from-Standby on all network adapters. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable Windows Update (26611).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable Windows Update (26611).bes index 402f5f46b..6f3749dba 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable Windows Update (26611).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable Windows Update (26611).bes @@ -1,35 +1,35 @@ - - - - - Disable Windows Update - - windows of operating system - (exists value "AutoUpdate" whose (it != 1) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" of registry) - Brad Sexton - 2018-10-08 - - x-fixlet-modification-time - Tue, 04 Dec 2018 21:37:41 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here -regset [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU] "AutoUpdate"=dword:0000001 - - - + + + + + Disable Windows Update + + windows of operating system + (exists value "AutoUpdate" whose (it != 1) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" of registry) + Brad Sexton + 2018-10-08 + + x-fixlet-modification-time + Tue, 04 Dec 2018 21:37:41 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +regset [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU] "AutoUpdate"=dword:0000001 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (2549).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (2549).bes index cb0bc0651..669fefc5f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (2549).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (2549).bes @@ -1,40 +1,40 @@ - - - - - Disable inactive users - Creates a batch script to disable users who have not logged in for 30 days and are currently active. If their account is disabled, this will skip over them. - name of operating system as lowercase starts with "win" - 30 * day) and name of it does not contain "$" and not account disabled flag of it)]]> - Internal - 2013-08-07 - - x-fixlet-modification-time - Wed, 07 Aug 2013 19:48:11 +0000 - - BESC - - - Click - here - to deploy this action. - - 30 * day) and name of it does not contain "$" and not account disabled flag of it)} -copy __appendfile __disable.bat -waithidden __disable.bat -delete __appendfile -delete __disable.bat]]> - - - + + + + + Disable inactive users + Creates a batch script to disable users who have not logged in for 30 days and are currently active. If their account is disabled, this will skip over them. + name of operating system as lowercase starts with "win" + 30 * day) and name of it does not contain "$" and not account disabled flag of it)]]> + Internal + 2013-08-07 + + x-fixlet-modification-time + Wed, 07 Aug 2013 19:48:11 +0000 + + BESC + + + Click + here + to deploy this action. + + 30 * day) and name of it does not contain "$" and not account disabled flag of it)} +copy __appendfile __disable.bat +waithidden __disable.bat +delete __appendfile +delete __disable.bat]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (3873).bes b/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (3873).bes index a8f494108..33bebfa29 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (3873).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Disable inactive users (3873).bes @@ -1,40 +1,40 @@ - - - - - Disable inactive users - Creates a batch script to disable users who have not logged in for 30 days and are currently active. If their account is disabled, this will skip over them. - name of operating system as lowercase starts with "win" - 30 * day) and name of it does not contain "$" and not account disabled flag of it)]]> - Internal - 2013-08-07 - - x-fixlet-modification-time - Wed, 07 Aug 2013 19:48:11 +0000 - - BESC - - - Click - here - to deploy this action. - - 30 * day) and name of it does not contain "$" and not account disabled flag of it)} -copy __appendfile __disable.bat -waithidden __disable.bat -delete __appendfile -delete __disable.bat]]> - - - + + + + + Disable inactive users + Creates a batch script to disable users who have not logged in for 30 days and are currently active. If their account is disabled, this will skip over them. + name of operating system as lowercase starts with "win" + 30 * day) and name of it does not contain "$" and not account disabled flag of it)]]> + Internal + 2013-08-07 + + x-fixlet-modification-time + Wed, 07 Aug 2013 19:48:11 +0000 + + BESC + + + Click + here + to deploy this action. + + 30 * day) and name of it does not contain "$" and not account disabled flag of it)} +copy __appendfile __disable.bat +waithidden __disable.bat +delete __appendfile +delete __disable.bat]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Diskpart Repartition - Shrink C_ Partition & Create M_ Partition (25433).bes b/Sites/Windows Management/Fixlets/Fixlets/Diskpart Repartition - Shrink C_ Partition & Create M_ Partition (25433).bes index 3b1002522..59087f0fc 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Diskpart Repartition - Shrink C_ Partition & Create M_ Partition (25433).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Diskpart Repartition - Shrink C_ Partition & Create M_ Partition (25433).bes @@ -1,78 +1,78 @@ - - - - - Diskpart Repartition - Shrink C: Partition & Create M: Partition - Requests new partition size to be:

-
    -
  1. Maximum: 49% of drive size if at least 59% of drive is free, leaving at least 10% free -
  2. The greater of: -
      -
    1. Current free space of drive less 10% of total drive size -
    2. 49% of free space of drive -
    3. 20 GB minimum
-

Repartitioning will probably fail on dynamic and dynamic disks, but should work on both GPT and MBR.

-

If you change the drive name (line 22) or drive letter (line 23), please also update the relevance to match.

]]>
- windows of operating system - = 20 /*gigs*/) else false]]> - Internal - 2018-03-02 - - x-fixlet-modification-time - Wed, 04 Apr 2018 18:22:00 +0000 - - BESC - - - Click - here - to deploy this action. - - (total space of drive of system folder / 1024 / 1024 * 59/100 /* increased to 59% to account for leftover free space */) then (total space of drive of system folder / 1024 / 1024 * 49/100) else ((free space of drive of system folder / 1024 / 1024) - (total space of drive of system folder / 1024 / 1024 * 10/100))} minimum=20000 -create partition primary -format quick fs=ntfs label="MDT" noerr -assign letter="M" -exit -END - -move __createfile mdtdrive.txt -waithidden cmd.exe /c diskpart /s mdtdrive.txt - -waithidden cmd.exe /c diskpart /s mdtreclaim.txt - -delete mdtdrive.txt -delete mdtreclaim.txt]]> - - -
-
+ + + + + Diskpart Repartition - Shrink C: Partition & Create M: Partition + Requests new partition size to be:

+
    +
  1. Maximum: 49% of drive size if at least 59% of drive is free, leaving at least 10% free +
  2. The greater of: +
      +
    1. Current free space of drive less 10% of total drive size +
    2. 49% of free space of drive +
    3. 20 GB minimum
+

Repartitioning will probably fail on dynamic and dynamic disks, but should work on both GPT and MBR.

+

If you change the drive name (line 22) or drive letter (line 23), please also update the relevance to match.

]]>
+ windows of operating system + = 20 /*gigs*/) else false]]> + Internal + 2018-03-02 + + x-fixlet-modification-time + Wed, 04 Apr 2018 18:22:00 +0000 + + BESC + + + Click + here + to deploy this action. + + (total space of drive of system folder / 1024 / 1024 * 59/100 /* increased to 59% to account for leftover free space */) then (total space of drive of system folder / 1024 / 1024 * 49/100) else ((free space of drive of system folder / 1024 / 1024) - (total space of drive of system folder / 1024 / 1024 * 10/100))} minimum=20000 +create partition primary +format quick fs=ntfs label="MDT" noerr +assign letter="M" +exit +END + +move __createfile mdtdrive.txt +waithidden cmd.exe /c diskpart /s mdtdrive.txt + +waithidden cmd.exe /c diskpart /s mdtreclaim.txt + +delete mdtdrive.txt +delete mdtreclaim.txt]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Administrator Account (615).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Administrator Account (615).bes index d45c17902..c2e046472 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable Administrator Account (615).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Administrator Account (615).bes @@ -1,45 +1,45 @@ - - - - - Enable Administrator Account - - name of operating system starts with "Win" - exists local user "Administrator" OR exists local user "TheAdministrator" - account disabled flag of local user "Administrator" OR account disabled flag of local user "TheAdministrator" - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-10-01 - <Unspecified> - - x-fixlet-modification-time - Mon, 22 Oct 2012 14:43:32 +0000 - - BESC - - - Click - here - to enable the Administrator Account. - - -if {exists local user "Administrator"} - wait net user Administrator /active:YES -else //if {exists local user "TheAdministrator"} - wait net user TheAdministrator /active:YES -endif - - - - - + + + + + Enable Administrator Account + + name of operating system starts with "Win" + exists local user "Administrator" OR exists local user "TheAdministrator" + account disabled flag of local user "Administrator" OR account disabled flag of local user "TheAdministrator" + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-01 + <Unspecified> + + x-fixlet-modification-time + Mon, 22 Oct 2012 14:43:32 +0000 + + BESC + + + Click + here + to enable the Administrator Account. + + +if {exists local user "Administrator"} + wait net user Administrator /active:YES +else //if {exists local user "TheAdministrator"} + wait net user TheAdministrator /active:YES +endif + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable IE Compatibility Mode for All Websites for Currently Logged On User (645).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable IE Compatibility Mode for All Websites for Currently Logged On User (645).bes index 4789c4de5..c1b1a74be 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable IE Compatibility Mode for All Websites for Currently Logged On User (645).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable IE Compatibility Mode for All Websites for Currently Logged On User (645).bes @@ -1,48 +1,48 @@ - - - - - Enable IE Compatibility Mode for All Websites for Currently Logged On User - Enable Internet Explorer Compatibility Mode for All Websites for the Currently Logged On User - name of operating system starts with "Win" - - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-10-26 - <Unspecified> - - x-fixlet-modification-time - Fri, 26 Oct 2012 21:42:01 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - Click - here - to source of information. - - http://www.sevenforums.com/tutorials/1220-internet-explorer-compatilbility-view-all-websites.html - - - + + + + + Enable IE Compatibility Mode for All Websites for Currently Logged On User + Enable Internet Explorer Compatibility Mode for All Websites for the Currently Logged On User + name of operating system starts with "Win" + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-10-26 + <Unspecified> + + x-fixlet-modification-time + Fri, 26 Oct 2012 21:42:01 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + Click + here + to source of information. + + http://www.sevenforums.com/tutorials/1220-internet-explorer-compatilbility-view-all-websites.html + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features (20682).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features (20682).bes index 3cb27be35..433e448ec 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features (20682).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features (20682).bes @@ -1,58 +1,58 @@ - - - - - Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features - - x64 of operating system - windows of operating system - exists values whose("Microsoft-Windows-Subsystem-Linux" = name of it AND it as string as integer = 255) of keys "Updates" of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of (x64 registries; x32 registries) - Internal - 2016-05-20 - - x-fixlet-modification-time - Sat, 21 May 2016 04:58:23 +0000 - - BESC - - - Click - here - to deploy this action. - - // disable wow64 redirection if x64 bit OS -action uses wow64 redirection {not x64 of operating system} - -// https://www.raymond.cc/blog/add-or-remove-windows-features-through-the-command-prompt/ -// dism /online /get-features -// dism /online /Get-FeatureInfo /FeatureName:Microsoft-Windows-Subsystem-Linux -//Feature Name : Microsoft-Windows-Subsystem-Linux -//Display Name : Windows Subsystem for Linux (Beta) -//Description : Provides services and environments for running native user-mode Linux shells and tools on Windows. -//Restart Required : Required - - -// http://www.infralib.com/2013/02/running-64bit-cmd-via-32bit-sccm-client/ -waithidden "{pathname of system folder}\dism.exe" /NoRestart /Quiet /online /enable-feature /FeatureName:Microsoft-Windows-Subsystem-Linux - -// Restart Required -action requires restart - -// Raw Registry Location: -// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Microsoft-Windows-Lxss-Optional-Package~31bf3856ad364e35~amd64~~10.0.14342.1000\Updates -// Related: -// https://bigfix.me/fixlet/details/823 - - - - - + + + + + Enable Microsoft-Windows-Subsystem-Linux (Ubuntu BASH) - Windows Features + + x64 of operating system + windows of operating system + exists values whose("Microsoft-Windows-Subsystem-Linux" = name of it AND it as string as integer = 255) of keys "Updates" of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of (x64 registries; x32 registries) + Internal + 2016-05-20 + + x-fixlet-modification-time + Sat, 21 May 2016 04:58:23 +0000 + + BESC + + + Click + here + to deploy this action. + + // disable wow64 redirection if x64 bit OS +action uses wow64 redirection {not x64 of operating system} + +// https://www.raymond.cc/blog/add-or-remove-windows-features-through-the-command-prompt/ +// dism /online /get-features +// dism /online /Get-FeatureInfo /FeatureName:Microsoft-Windows-Subsystem-Linux +//Feature Name : Microsoft-Windows-Subsystem-Linux +//Display Name : Windows Subsystem for Linux (Beta) +//Description : Provides services and environments for running native user-mode Linux shells and tools on Windows. +//Restart Required : Required + + +// http://www.infralib.com/2013/02/running-64bit-cmd-via-32bit-sccm-client/ +waithidden "{pathname of system folder}\dism.exe" /NoRestart /Quiet /online /enable-feature /FeatureName:Microsoft-Windows-Subsystem-Linux + +// Restart Required +action requires restart + +// Raw Registry Location: +// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Microsoft-Windows-Lxss-Optional-Package~31bf3856ad364e35~amd64~~10.0.14342.1000\Updates +// Related: +// https://bigfix.me/fixlet/details/823 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (107).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (107).bes index eec4c6c66..aa43a91f0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (107).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (107).bes @@ -1,42 +1,42 @@ - - - - - Enable Named Pipes - - - - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-08-20 - <Unspecified> - - x-fixlet-modification-time - Thu, 30 Aug 2012 15:51:56 +0000 - - BESC - - - Click - here - to enable MS SQL Named Pipes. - - -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 -else - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 -endif - - - + + + + + Enable Named Pipes + + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-08-20 + <Unspecified> + + x-fixlet-modification-time + Thu, 30 Aug 2012 15:51:56 +0000 + + BESC + + + Click + here + to enable MS SQL Named Pipes. + + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 +else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (641).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (641).bes index 104ed5e29..d8d0ea57a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (641).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Named Pipes (641).bes @@ -1,42 +1,42 @@ - - - - - Enable Named Pipes - - - - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-08-20 - <Unspecified> - - x-fixlet-modification-time - Thu, 30 Aug 2012 15:51:56 +0000 - - BESC - - - Click - here - to enable MS SQL Named Pipes. - - -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 -else - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 -endif - - - + + + + + Enable Named Pipes + + + + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-08-20 + <Unspecified> + + x-fixlet-modification-time + Thu, 30 Aug 2012 15:51:56 +0000 + + BESC + + + Click + here + to enable MS SQL Named Pipes. + + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 +else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{(value "MSSQLSERVER" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" of native registry as string)}\MSSQLServer\SuperSocketNetLib\Np]" "Enabled"=DWORD:00000001 +endif + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable NetFx3 - .NET 2 & 3 - Windows Features (22635).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable NetFx3 - .NET 2 & 3 - Windows Features (22635).bes index d8fa236c5..ea118712a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable NetFx3 - .NET 2 & 3 - Windows Features (22635).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable NetFx3 - .NET 2 & 3 - Windows Features (22635).bes @@ -1,53 +1,53 @@ - - - - - Enable NetFx3 - .NET 2 & 3 - Windows Features - - windows of operating system - = "6.2"]]> - not exists (it as version) whose("3.5"=it) of following texts of firsts "v" of names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP" of (x64 registries;x32 registries) - Internal - 2016-05-20 - - x-fixlet-modification-time - Fri, 18 Nov 2016 20:11:32 +0000 - - BESC - - - Click - here - to deploy this action. - - -// disable wow64 redirection if x64 bit OS -action uses wow64 redirection {not x64 of operating system} - - -waithidden "{pathname of system folder}\dism.exe" /NoRestart /Quiet /online /enable-feature /featurename:NetFx3 { if ( (it contains "Win2008R2") of name of operating system ) then "" else "/all" } - -// Restart Required -action requires restart - -// Raw Registry Location: -// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Microsoft-Windows-Lxss-Optional-Package~31bf3856ad364e35~amd64~~10.0.14342.1000\Updates - -// Related: -// https://bigfix.me/fixlet/details/823 -// https://www.raymond.cc/blog/add-or-remove-windows-features-through-the-command-prompt/ -// http://www.infralib.com/2013/02/running-64bit-cmd-via-32bit-sccm-client/ - - - - - + + + + + Enable NetFx3 - .NET 2 & 3 - Windows Features + + windows of operating system + = "6.2"]]> + not exists (it as version) whose("3.5"=it) of following texts of firsts "v" of names of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP" of (x64 registries;x32 registries) + Internal + 2016-05-20 + + x-fixlet-modification-time + Fri, 18 Nov 2016 20:11:32 +0000 + + BESC + + + Click + here + to deploy this action. + + +// disable wow64 redirection if x64 bit OS +action uses wow64 redirection {not x64 of operating system} + + +waithidden "{pathname of system folder}\dism.exe" /NoRestart /Quiet /online /enable-feature /featurename:NetFx3 { if ( (it contains "Win2008R2") of name of operating system ) then "" else "/all" } + +// Restart Required +action requires restart + +// Raw Registry Location: +// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Microsoft-Windows-Lxss-Optional-Package~31bf3856ad364e35~amd64~~10.0.14342.1000\Updates + +// Related: +// https://bigfix.me/fixlet/details/823 +// https://www.raymond.cc/blog/add-or-remove-windows-features-through-the-command-prompt/ +// http://www.infralib.com/2013/02/running-64bit-cmd-via-32bit-sccm-client/ + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (3872).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (3872).bes index dfbb78209..c3932f6dd 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (3872).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (3872).bes @@ -1,37 +1,37 @@ - - - - - Enable Remote Desktop - - name of operating system as lowercase starts with "win" - Internal - 2012-08-20 - - x-fixlet-modification-time - Thu, 09 Oct 2014 13:57:44 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -waithidden cmd.exe /C reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f - -waithidden cmd.exe /C netsh firewall set service type = remotedesktop mode = enable - - - + + + + + Enable Remote Desktop + + name of operating system as lowercase starts with "win" + Internal + 2012-08-20 + + x-fixlet-modification-time + Thu, 09 Oct 2014 13:57:44 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +waithidden cmd.exe /C reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f + +waithidden cmd.exe /C netsh firewall set service type = remotedesktop mode = enable + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (RDP) (2458).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (RDP) (2458).bes index 5d5ed2bad..64ff4c6a7 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (RDP) (2458).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Remote Desktop (RDP) (2458).bes @@ -1,50 +1,50 @@ - - - - - Enable Remote Desktop (RDP) - Enable remote desktop settings in the registry. (RDP) - name of operating system starts with "Win" - exists value "fDenyTSConnections" whose (it != 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of registry - Configuration - danielheth@bigfix.me - <Unspecified> - 2013-05-08 - <Unspecified> - - x-fixlet-modification-time - Wed, 08 May 2013 17:02:29 +0000 - - BESC - - - Click - here - to deploy this action. - - -regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]" "fDenyTSConnections"=dword:00000000 -//thanks sinucus (http://bigfix.me/user/sinucus) for this great addition: -waithidden cmd.exe /C netsh firewall set service type= remotedesktop mode = enable - - - - - - Click - here - to learn more about this setting. - - http://technet.microsoft.com/en-us/library/cc782195(v=ws.10).aspx - - - + + + + + Enable Remote Desktop (RDP) + Enable remote desktop settings in the registry. (RDP) + name of operating system starts with "Win" + exists value "fDenyTSConnections" whose (it != 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" of registry + Configuration + danielheth@bigfix.me + <Unspecified> + 2013-05-08 + <Unspecified> + + x-fixlet-modification-time + Wed, 08 May 2013 17:02:29 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]" "fDenyTSConnections"=dword:00000000 +//thanks sinucus (http://bigfix.me/user/sinucus) for this great addition: +waithidden cmd.exe /C netsh firewall set service type= remotedesktop mode = enable + + + + + + Click + here + to learn more about this setting. + + http://technet.microsoft.com/en-us/library/cc782195(v=ws.10).aspx + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24319).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24319).bes index 6b9c93815..4c5c6f65a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24319).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 (24319).bes @@ -1,56 +1,56 @@ - - - - - Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 - -

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2012" or name of it = "Win2012R2" or name of it = "Win8") of operating system - not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it != 0) of native registry - Workaround - brolly33 - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 20:03:54 +0000 - - BESC - - - Click - here - to deploy this action. - - // Using Powershell Template https://bigfix.me/fixlet/details/3860 - -// Disable wow64 redirection on x64 OSes -action uses wow64 redirection {not x64 of operating system} - -delete __createfile - -// CREATEFILE -createfile until END_OF_FILE - -Set-SmbServerConfiguration -EnableSMB1Protocol $true -Force - -END_OF_FILE - -delete powershell.ps1 -move __createfile powershell.ps1 - -waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 - -
-
+ + + + + Enable SMB protocols on the SMB server - Windows 8 and Windows Server 2012 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012" or name of it = "Win2012R2" or name of it = "Win8") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it != 0) of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 20:03:54 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Set-SmbServerConfiguration -EnableSMB1Protocol $true -Force + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24315).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24315).bes index a3737f4f6..fe6942ac8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24315).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 (24315).bes @@ -1,38 +1,38 @@ - - - - - Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 - To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista") of operating system - not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it as integer = 1) of (native registries) - Internal - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 17:28:12 +0000 - - BESC - - - Click - here - to deploy this action. - - regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]" "SMB1"=dword:00000001 - - -
-
+ + + + + Enable SMBv1 Server - Windows 7, Windows Server 2008r2, Windows Vista, Windows Server 2008 + To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" whose (value "SMB1" of it as integer = 1) of (native registries) + Internal + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 17:28:12 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]" "SMB1"=dword:00000001 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24317).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24317).bes index 38dd0b89a..111e2d5ba 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24317).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 (24317).bes @@ -1,41 +1,41 @@ - - - - - Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 - To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista" or name of it = "Win2012" or name of it = "Win8") of operating system - not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation" whose (exists value "DependOnService" whose (it as string as lowercase contains "MRxSmb10" as lowercase)of it) of native registry - exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10" whose (value "Start" of it = 4) of native registry - workaround - brolly33 - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 18:54:46 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here -wait sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi -wait sc.exe config mrxsmb10 start= manual - -
-
+ + + + + Enable SMBv1 protocols on the SMB client - Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012 + To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2008R2" OR name of it = "Win2008" or name of it = "Win7" or name of it = "WinVista" or name of it = "Win2012" or name of it = "Win8") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation" whose (exists value "DependOnService" whose (it as string as lowercase contains "MRxSmb10" as lowercase)of it) of native registry + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10" whose (value "Start" of it = 4) of native registry + workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 18:54:46 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +wait sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi +wait sc.exe config mrxsmb10 start= manual + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes index 59d6d31c2..25702d742 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Solution to CVE-2017-8529 - Windows 7 SP1 _ 8.1 _ 10 _ Windows Server 2008 SP2 _ 2008 R2 SP1 _ 2012 _ 2012 R2 _ 2016 (24651).bes @@ -1,68 +1,68 @@ - - - - - Enable Solution to CVE-2017-8529 - Windows 7 SP1 / 8.1 / 10 / Windows Server 2008 SP2 / 2008 R2 SP1 / 2012 / 2012 R2 / 2016 - -

Use this Fixlet to enable solution to CVE-2017-8529.

- -
-

File Size:

-Unspecified -
-]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - not ia64 of operating system - ((name of it = "Win2008") AND service pack major version of it = 2 OR (name of it = "Win7" OR name of it = "Win2008R2") AND service pack major version of it = 1 OR name of it = "Win8" OR name of it = "Win8.1" OR name of it = "Win10" OR name of it = "Win2012" OR name of it = "Win2012R2" OR name of it = "Win2016") of operating system - 0]]> - not exist keys "FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX" whose (value "iexplore.exe" of it as integer = 1) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl" of native registry - not pending restart "5eae6a9509552040ccf975999b91b3979fc0821d" - Setting - Microsoft - Unspecified - 2017-09-12 - Unspecified - CVE-2017-8529 - - x-fixlet-product-family - Windows - - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000001 - -if {x64 of operating system} -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000001 -endif - -action requires restart "5eae6a9509552040ccf975999b91b3979fc0821d" - - - - Click - here - to see the Security Guidance Article for this update. - - https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8529 - -
-
+ + + + + Enable Solution to CVE-2017-8529 - Windows 7 SP1 / 8.1 / 10 / Windows Server 2008 SP2 / 2008 R2 SP1 / 2012 / 2012 R2 / 2016 + +

Use this Fixlet to enable solution to CVE-2017-8529.

+ +
+

File Size:

+Unspecified +
+]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + not ia64 of operating system + ((name of it = "Win2008") AND service pack major version of it = 2 OR (name of it = "Win7" OR name of it = "Win2008R2") AND service pack major version of it = 1 OR name of it = "Win8" OR name of it = "Win8.1" OR name of it = "Win10" OR name of it = "Win2012" OR name of it = "Win2012R2" OR name of it = "Win2016") of operating system + 0]]> + not exist keys "FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX" whose (value "iexplore.exe" of it as integer = 1) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl" of native registry + not pending restart "5eae6a9509552040ccf975999b91b3979fc0821d" + Setting + Microsoft + Unspecified + 2017-09-12 + Unspecified + CVE-2017-8529 + + x-fixlet-product-family + Windows + + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000001 + +if {x64 of operating system} +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PRINT_INFO_DISCLOSURE_FIX]" "iexplore.exe"=dword:00000001 +endif + +action requires restart "5eae6a9509552040ccf975999b91b3979fc0821d" + + + + Click + here + to see the Security Guidance Article for this update. + + https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8529 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable TRIM on Win7 for SSDs (1385).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable TRIM on Win7 for SSDs (1385).bes index 2a33cc78c..0aaa2d8cf 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable TRIM on Win7 for SSDs (1385).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable TRIM on Win7 for SSDs (1385).bes @@ -1,38 +1,38 @@ - - - - - Enable TRIM on Win7 for SSDs - This should only be done on computers with SSDs that support TRIM properly. Some older SSDs require firmware updates for TRIM to work properly. This task does not detect if a system has an SSD, so it will be applicable on systems that do not need this setting changed.

-

 

http://technet.microsoft.com/en-us/library/cc785435(v=ws.10).aspx]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - windows of operating system - "Win7" = name of operating system - 0 != value "DisableDeleteNotification" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of native registry - Internal - 2013-01-18 - - x-fixlet-modification-time - Fri, 18 Jan 2013 16:43:13 +0000 - - BESC - - - Click - here - to deploy this action. - - waithidden fsutil behavior set disabledeletenotify 0 - - -
-
+ + + + + Enable TRIM on Win7 for SSDs + This should only be done on computers with SSDs that support TRIM properly. Some older SSDs require firmware updates for TRIM to work properly. This task does not detect if a system has an SSD, so it will be applicable on systems that do not need this setting changed.

+

 

http://technet.microsoft.com/en-us/library/cc785435(v=ws.10).aspx]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + windows of operating system + "Win7" = name of operating system + 0 != value "DisableDeleteNotification" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" of native registry + Internal + 2013-01-18 + + x-fixlet-modification-time + Fri, 18 Jan 2013 16:43:13 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden fsutil behavior set disabledeletenotify 0 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable UAC (1377).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable UAC (1377).bes index 4a2392450..99849b596 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable UAC (1377).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable UAC (1377).bes @@ -1,43 +1,43 @@ - - - - - Enable UAC - - (name of it = "WinVista" or name of it = "Win7" or name of it = "Win8") of operating system - value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of registry = 0 OR value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of x64 registry = 0 - Configuration - danielheth@bigfix.me - <Unspecified> - 2013-01-14 - <Unspecified> - - x-fixlet-modification-time - Mon, 14 Jan 2013 15:33:44 +0000 - - BESC - - - Click - here - to deploy this action. - - -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:1 -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:1 -endif - - - - - + + + + + Enable UAC + + (name of it = "WinVista" or name of it = "Win7" or name of it = "Win8") of operating system + value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of registry = 0 OR value "EnableLUA" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" of x64 registry = 0 + Configuration + danielheth@bigfix.me + <Unspecified> + 2013-01-14 + <Unspecified> + + x-fixlet-modification-time + Mon, 14 Jan 2013 15:33:44 +0000 + + BESC + + + Click + here + to deploy this action. + + +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:1 +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]" "EnableLUA"=dword:1 +endif + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enable Windows Automatic Updates (97).bes b/Sites/Windows Management/Fixlets/Fixlets/Enable Windows Automatic Updates (97).bes index d204c0a74..246532d62 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enable Windows Automatic Updates (97).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enable Windows Automatic Updates (97).bes @@ -1,58 +1,58 @@ - - - - - Enable Windows Automatic Updates - Enables Windows Automatic Update - (name of it starts with "WinXP" or name of it = "WinVista" or name of it = "Win7") of operating system - ((if exists value "NoAutoUpdate" of it then value "NoAutoUpdate" of it as integer else 0) of key "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" of registry) != 0 - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-01-20 - <Unspecified> - - x-fixlet-modification-time - Mon, 01 Oct 2012 21:30:05 +0000 - - SYST - - - Click - here - to deploy this action. - - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "AUOptions"=dword:00000004 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "AUPowerManagement"=dword:00000001 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "AutoInstallMinorUpdates"=dword:00000001 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "IncludeRecommendedUpdates"=dword:00000001 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAUAsDefaultShutdownOption"=dword:00000000 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAUShutdownOption"=dword:00000000 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAutoRebootWithLoggedOnUsers"=dword:00000000 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAutoUpdate"=dword:00000000 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RebootWarningTimeout"=dword:0000000f -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RebootWarningTimeoutEnabled"=dword:00000001 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RescheduleWaitTime"=dword:00000001 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RescheduleWaitTimeEnabled"=dword:00000001 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "ScheduledInstallDay"=dword:00000000 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "ScheduledInstallTime"=dword:00000002 - - - - Click - here - to learn more about this fixlet. - - - - - + + + + + Enable Windows Automatic Updates + Enables Windows Automatic Update + (name of it starts with "WinXP" or name of it = "WinVista" or name of it = "Win7") of operating system + ((if exists value "NoAutoUpdate" of it then value "NoAutoUpdate" of it as integer else 0) of key "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" of registry) != 0 + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-01-20 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:30:05 +0000 + + SYST + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "AUOptions"=dword:00000004 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "AUPowerManagement"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "AutoInstallMinorUpdates"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "IncludeRecommendedUpdates"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAUAsDefaultShutdownOption"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAUShutdownOption"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAutoRebootWithLoggedOnUsers"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "NoAutoUpdate"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RebootWarningTimeout"=dword:0000000f +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RebootWarningTimeoutEnabled"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RescheduleWaitTime"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "RescheduleWaitTimeEnabled"=dword:00000001 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "ScheduledInstallDay"=dword:00000000 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]" "ScheduledInstallTime"=dword:00000002 + + + + Click + here + to learn more about this fixlet. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/End of Support - Unsupported Windows OS (25452).bes b/Sites/Windows Management/Fixlets/Fixlets/End of Support - Unsupported Windows OS (25452).bes index 8c2a90528..893ebefdd 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/End of Support - Unsupported Windows OS (25452).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/End of Support - Unsupported Windows OS (25452).bes @@ -1,45 +1,45 @@ - - - - - End of Support - Unsupported Windows OS - This task is designed to notify the users of any workstations with unsupported Operating Systems.  The "continue if" line is designed to prevent repeat execution more than once per day, but you can change that time if that is your preference.

-

Please be sure to set "Users" tab to "Run when at least one of the selected users is logged on, and only display the user interface to those users" and "Local users"

-

Windows Lifecycle Fact Sheet: https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet, Some additional server dates excluding 2016: https://support.microsoft.com/en-us/lifecycle/search/1163

-

Google Docs: Reference and Relevance Worksheet

-

Windows 2000, XP, Vista - All support has ended

-

Windows Server 2008 - Standard is EOS, SP2 and R2 SP1 extended support ends Tue January 14 2020

-

Windows 7 - Mainstream support ended, service pack 1 extended support ends Tue January 14 2020

-

Windows 8 - Mainstream support ended, 8.1 requires Update 1 (KB2919355) for support, 8.1 Update 1 extended support ends Tue January 10 2023

-

Windows 10 - Mainstream (1507, 1511) support ended.  1607 end of support on Tue April 10 2018.  1703 end of support on Tue Oct 9 2018.  1709 end of support on Tue April 9 2019.

-

NOTE: value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry may be a better way of retrieving OS version numbers.  Revised to this method.  LTSB completely excluded at this time.  Enterprise and Educational is included with their 6 month extensions set to the 6 month later Patch Tuesday.

]]>
- windows of operating system - if (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry then (NOT (value "Productname" of it as string as lowercase contains "ltsb") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) else true - date ("Tue, Jan 14 2020") /* Server 2008 SP2 & R2 SP1 EOS */) of operating system) OR ((name of it does not contain "R2" AND service pack major version of it < 1) of operating system)) else false) OR (if (date (local time zone) of (now)) > date ("Tue, 14 Jan 2020") then (version of operating system = "6.1" AND (name of it contains "Win7") of operating system) else false /* Windows 7 EOS */) OR ((name of it = "Win8") of operating system and (version of operating system > "6.3.9600") /* Windows 8.0 */) OR (if ((name of it = "Win2012R2" OR name of it = "Win8.1") of operating system) then (not exists key ("Package_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14"; "Package_for_KB2919355~31bf3856ad364e35~x86~~6.3.1.14") whose (112 = value "CurrentState" of it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry /* Check for mandatory Win 8.1 & Server 2012 Update 2919355 (aka Update 1) */) else if ((name of it = "Win8.1") of operating system AND (date (local time zone) of (now)) > date ("Tue, Jan 10 2023")/* Windows 8.1 EOS */) then true else false) OR (if (NOT ((name of it = "Win2016" /* Exclude Server 2016 */) of operating system) and (name of it = "Win10") of operating system) then (((if (date (local time zone) of (now)) > date ("Tue, 9 Apr 2019") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1709" /* Windows 10 Version 1709 or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 9 Oct 2018") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1703" /* Windows 10 Version 1703 or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 10 Apr 2018") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1607" /* Windows 10 Version 1607 or lower after EOS date */) else ((value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <="1511" /* Windows 10 Version 1511 or lower */) OR ((value "CurrentBuild" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) as string as version <= "15240"))) OR (if (((value "EditionID" of it as string as lowercase contains "educat") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) OR ((value "EditionID" of it as string as lowercase contains "enterp") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry)) then ((if (NOT ((name of it = "Win2016" /* Exclude Server 2016 */) of operating system) and (name of it = "Win10") of operating system) then ((if (date (local time zone) of (now)) > date ("Tue, 8 Oct 2019") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1709" /* Windows 10 Version 1709 Edu/Ent or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 9 Apr 2019") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1703" /* Windows 10 Version 1703 Edu/Ent or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 9 Oct 2018") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1607" /* Windows 10 Version 1607 Edu/Ent or lower after EOS date */) else (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <="1511" /* Windows 10 Version 1511 or lower */)) AND (NOT (name of it contains "2016") of operating system) /* Exclude Server 2016 */) else false)) else false)) AND (NOT (name of it contains "2016") of operating system) /* Exclude Server 2016 */) else false)]]> - Internal - 2017-12-14 - - x-fixlet-modification-time - Fri, 13 Apr 2018 15:09:33 +0000 - - BESC - - - Click - here - to deploy this action.&nbsp; Please be sure to set user messages and user mode. - - (1 * day)) of action}]]> - -
-
+ + + + + End of Support - Unsupported Windows OS + This task is designed to notify the users of any workstations with unsupported Operating Systems.  The "continue if" line is designed to prevent repeat execution more than once per day, but you can change that time if that is your preference.

+

Please be sure to set "Users" tab to "Run when at least one of the selected users is logged on, and only display the user interface to those users" and "Local users"

+

Windows Lifecycle Fact Sheet: https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet, Some additional server dates excluding 2016: https://support.microsoft.com/en-us/lifecycle/search/1163

+

Google Docs: Reference and Relevance Worksheet

+

Windows 2000, XP, Vista - All support has ended

+

Windows Server 2008 - Standard is EOS, SP2 and R2 SP1 extended support ends Tue January 14 2020

+

Windows 7 - Mainstream support ended, service pack 1 extended support ends Tue January 14 2020

+

Windows 8 - Mainstream support ended, 8.1 requires Update 1 (KB2919355) for support, 8.1 Update 1 extended support ends Tue January 10 2023

+

Windows 10 - Mainstream (1507, 1511) support ended.  1607 end of support on Tue April 10 2018.  1703 end of support on Tue Oct 9 2018.  1709 end of support on Tue April 9 2019.

+

NOTE: value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry may be a better way of retrieving OS version numbers.  Revised to this method.  LTSB completely excluded at this time.  Enterprise and Educational is included with their 6 month extensions set to the 6 month later Patch Tuesday.

]]>
+ windows of operating system + if (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry then (NOT (value "Productname" of it as string as lowercase contains "ltsb") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) else true + date ("Tue, Jan 14 2020") /* Server 2008 SP2 & R2 SP1 EOS */) of operating system) OR ((name of it does not contain "R2" AND service pack major version of it < 1) of operating system)) else false) OR (if (date (local time zone) of (now)) > date ("Tue, 14 Jan 2020") then (version of operating system = "6.1" AND (name of it contains "Win7") of operating system) else false /* Windows 7 EOS */) OR ((name of it = "Win8") of operating system and (version of operating system > "6.3.9600") /* Windows 8.0 */) OR (if ((name of it = "Win2012R2" OR name of it = "Win8.1") of operating system) then (not exists key ("Package_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14"; "Package_for_KB2919355~31bf3856ad364e35~x86~~6.3.1.14") whose (112 = value "CurrentState" of it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry /* Check for mandatory Win 8.1 & Server 2012 Update 2919355 (aka Update 1) */) else if ((name of it = "Win8.1") of operating system AND (date (local time zone) of (now)) > date ("Tue, Jan 10 2023")/* Windows 8.1 EOS */) then true else false) OR (if (NOT ((name of it = "Win2016" /* Exclude Server 2016 */) of operating system) and (name of it = "Win10") of operating system) then (((if (date (local time zone) of (now)) > date ("Tue, 9 Apr 2019") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1709" /* Windows 10 Version 1709 or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 9 Oct 2018") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1703" /* Windows 10 Version 1703 or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 10 Apr 2018") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1607" /* Windows 10 Version 1607 or lower after EOS date */) else ((value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <="1511" /* Windows 10 Version 1511 or lower */) OR ((value "CurrentBuild" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) as string as version <= "15240"))) OR (if (((value "EditionID" of it as string as lowercase contains "educat") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) OR ((value "EditionID" of it as string as lowercase contains "enterp") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry)) then ((if (NOT ((name of it = "Win2016" /* Exclude Server 2016 */) of operating system) and (name of it = "Win10") of operating system) then ((if (date (local time zone) of (now)) > date ("Tue, 8 Oct 2019") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1709" /* Windows 10 Version 1709 Edu/Ent or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 9 Apr 2019") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1703" /* Windows 10 Version 1703 Edu/Ent or lower after EOS date */) else if (date (local time zone) of (now)) > date ("Tue, 9 Oct 2018") then (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <= "1607" /* Windows 10 Version 1607 Edu/Ent or lower after EOS date */) else (value "ReleaseID" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string <="1511" /* Windows 10 Version 1511 or lower */)) AND (NOT (name of it contains "2016") of operating system) /* Exclude Server 2016 */) else false)) else false)) AND (NOT (name of it contains "2016") of operating system) /* Exclude Server 2016 */) else false)]]> + Internal + 2017-12-14 + + x-fixlet-modification-time + Fri, 13 Apr 2018 15:09:33 +0000 + + BESC + + + Click + here + to deploy this action.&nbsp; Please be sure to set user messages and user mode. + + (1 * day)) of action}]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Enforce Admin Users Compliance (25547).bes b/Sites/Windows Management/Fixlets/Fixlets/Enforce Admin Users Compliance (25547).bes index 5327fea2f..e8fb9e7fa 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Enforce Admin Users Compliance (25547).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Enforce Admin Users Compliance (25547).bes @@ -1,159 +1,159 @@ - - - - - Enforce Admin Users Compliance - This Fixlet removes users from the local "Administrators" group on a computer if they are not listed in a whitelist file deployed using the task:
"Deploy ComplianceWhitelist File"

-

 

-

Action 1:
Compares users who are Members of the local Administrators group on a computer with a "Compliant Admins" Whitelist file that exists on the client.  It then instructs the endpoint to remove any users that are NOT on the Compliance White List from the Local Administrators group.

-

Action 2:
Prompts for a User ID that is then removed from the local "Administrators" group of the target endpoint.

-

 

-

Note:
1.  Before running this task you must create the file "ComplianceWhitelist.txt" on the BES Server in the following directory:
"<BES Server>\wwwrootbes\CustomDownloads\ComplianceWhitelist"
2.  The Task "Deploy ComplianceWhitelist File" must be run before this Fixlet will work properly.

]]>
- true - Utility-Manage Windows Admins - Mike Consuegra - 2018-09-07 - - x-fixlet-modification-time - Tue, 18 Sep 2018 04:10:15 +0000 - - BESC - - - - Remove - &nbsp;Users based on a pre-defined whitelist - - - - - - - Remove - &nbsp;the specified User - - // Prompt the user for an ID to delete from the Administrators group of every targetted computer -action parameter query "UserID" with description "Enter the User ID to remove from the local Administrators group of targetted endpoints:" - - -// Remove each user in the 'blacklist.txt' file from the Local Admin Group -dos net localgroup administrators "{parameter "UserID" of action}" /delete - - -
-
+ + + + + Enforce Admin Users Compliance + This Fixlet removes users from the local "Administrators" group on a computer if they are not listed in a whitelist file deployed using the task:
"Deploy ComplianceWhitelist File"

+

 

+

Action 1:
Compares users who are Members of the local Administrators group on a computer with a "Compliant Admins" Whitelist file that exists on the client.  It then instructs the endpoint to remove any users that are NOT on the Compliance White List from the Local Administrators group.

+

Action 2:
Prompts for a User ID that is then removed from the local "Administrators" group of the target endpoint.

+

 

+

Note:
1.  Before running this task you must create the file "ComplianceWhitelist.txt" on the BES Server in the following directory:
"<BES Server>\wwwrootbes\CustomDownloads\ComplianceWhitelist"
2.  The Task "Deploy ComplianceWhitelist File" must be run before this Fixlet will work properly.

]]>
+ true + Utility-Manage Windows Admins + Mike Consuegra + 2018-09-07 + + x-fixlet-modification-time + Tue, 18 Sep 2018 04:10:15 +0000 + + BESC + + + + Remove + &nbsp;Users based on a pre-defined whitelist + + + + + + + Remove + &nbsp;the specified User + + // Prompt the user for an ID to delete from the Administrators group of every targetted computer +action parameter query "UserID" with description "Enter the User ID to remove from the local Administrators group of targetted endpoints:" + + +// Remove each user in the 'blacklist.txt' file from the Local Admin Group +dos net localgroup administrators "{parameter "UserID" of action}" /delete + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on C Drive (24331).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on C Drive (24331).bes index e7591cd72..c3bf7ddc5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on C Drive (24331).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on C Drive (24331).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on C Drive - Find files with specified extension on C drive. - name of operating system starts with "Win" - exists folder "c:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:38:53 +0000 - - BESC - - - Click - here - to deploy this action. - - c:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on C Drive + Find files with specified extension on C drive. + name of operating system starts with "Win" + exists folder "c:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:38:53 +0000 + + BESC + + + Click + here + to deploy this action. + + c:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on D Drive (24332).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on D Drive (24332).bes index 3235efb4a..2422b14a4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on D Drive (24332).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on D Drive (24332).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on D Drive - - name of operating system starts with "Win" - exists folder "d:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:39:06 +0000 - - BESC - - - Click - here - to deploy this action. - - d:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on D Drive + + name of operating system starts with "Win" + exists folder "d:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:39:06 +0000 + + BESC + + + Click + here + to deploy this action. + + d:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on E Drive (24333).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on E Drive (24333).bes index f6f145d21..cc59f026f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on E Drive (24333).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on E Drive (24333).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on E Drive - - name of operating system starts with "Win" - exists folder "e:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:39:33 +0000 - - BESC - - - Click - here - to deploy this action. - - e:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on E Drive + + name of operating system starts with "Win" + exists folder "e:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:39:33 +0000 + + BESC + + + Click + here + to deploy this action. + + e:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on F Drive (24334).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on F Drive (24334).bes index f8efb23b6..b299dc0fd 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on F Drive (24334).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on F Drive (24334).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on F Drive - - name of operating system starts with "Win" - exists folder "f:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:38:40 +0000 - - BESC - - - Click - here - to deploy this action. - - f:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on F Drive + + name of operating system starts with "Win" + exists folder "f:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:38:40 +0000 + + BESC + + + Click + here + to deploy this action. + + f:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on G Drive (24336).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on G Drive (24336).bes index 6dbaca1b3..0ebc7e959 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on G Drive (24336).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on G Drive (24336).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on G Drive - - name of operating system starts with "Win" - exists folder "g:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:40:01 +0000 - - BESC - - - Click - here - to deploy this action. - - g:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on G Drive + + name of operating system starts with "Win" + exists folder "g:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:40:01 +0000 + + BESC + + + Click + here + to deploy this action. + + g:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on H Drive (24337).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on H Drive (24337).bes index 1a2c26a26..88002e784 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on H Drive (24337).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on H Drive (24337).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on H Drive - - name of operating system starts with "Win" - exists folder "h:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:40:26 +0000 - - BESC - - - Click - here - to deploy this action. - - h:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on H Drive + + name of operating system starts with "Win" + exists folder "h:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:40:26 +0000 + + BESC + + + Click + here + to deploy this action. + + h:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on I Drive (24338).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on I Drive (24338).bes index 4dd95a7ad..10a0577f7 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on I Drive (24338).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on I Drive (24338).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on I Drive - - name of operating system starts with "Win" - exists folder "i:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:40:52 +0000 - - BESC - - - Click - here - to deploy this action. - - i:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on I Drive + + name of operating system starts with "Win" + exists folder "i:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:40:52 +0000 + + BESC + + + Click + here + to deploy this action. + + i:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on J Drive (24339).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on J Drive (24339).bes index 49f4e5715..c6cff6b14 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on J Drive (24339).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on J Drive (24339).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on J Drive - - name of operating system starts with "Win" - exists folder "j:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:41:17 +0000 - - BESC - - - Click - here - to deploy this action. - - j:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on J Drive + + name of operating system starts with "Win" + exists folder "j:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:41:17 +0000 + + BESC + + + Click + here + to deploy this action. + + j:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on K Drive (24340).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on K Drive (24340).bes index 552d44fc5..d0e063b86 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on K Drive (24340).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on K Drive (24340).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on K Drive - - name of operating system starts with "Win" - exists folder "k:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:41:39 +0000 - - BESC - - - Click - here - to deploy this action. - - k:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on K Drive + + name of operating system starts with "Win" + exists folder "k:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:41:39 +0000 + + BESC + + + Click + here + to deploy this action. + + k:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on L Drive (24341).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on L Drive (24341).bes index dbb0bd841..e494ad011 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on L Drive (24341).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on L Drive (24341).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on L Drive - - name of operating system starts with "Win" - exists folder "l:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:42:01 +0000 - - BESC - - - Click - here - to deploy this action. - - l:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on L Drive + + name of operating system starts with "Win" + exists folder "l:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:42:01 +0000 + + BESC + + + Click + here + to deploy this action. + + l:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on M Drive (24342).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on M Drive (24342).bes index 57ec1e794..a94f6f63e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on M Drive (24342).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on M Drive (24342).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on M Drive - - name of operating system starts with "Win" - exists folder "m:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:42:21 +0000 - - BESC - - - Click - here - to deploy this action. - - m:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on M Drive + + name of operating system starts with "Win" + exists folder "m:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:42:21 +0000 + + BESC + + + Click + here + to deploy this action. + + m:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on N Drive (24343).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on N Drive (24343).bes index cd14ee7a4..6c0f1f33c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on N Drive (24343).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on N Drive (24343).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on N Drive - - name of operating system starts with "Win" - exists folder "n:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:42:45 +0000 - - BESC - - - Click - here - to deploy this action. - - n:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on N Drive + + name of operating system starts with "Win" + exists folder "n:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:42:45 +0000 + + BESC + + + Click + here + to deploy this action. + + n:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on O Drive (24344).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on O Drive (24344).bes index b627a5863..2f8e132ac 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on O Drive (24344).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on O Drive (24344).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on O Drive - - name of operating system starts with "Win" - exists folder "o:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:43:05 +0000 - - BESC - - - Click - here - to deploy this action. - - o:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on O Drive + + name of operating system starts with "Win" + exists folder "o:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:43:05 +0000 + + BESC + + + Click + here + to deploy this action. + + o:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on P Drive (24345).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on P Drive (24345).bes index 950e7f5af..e42931f17 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on P Drive (24345).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on P Drive (24345).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on P Drive - - name of operating system starts with "Win" - exists folder "p:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:43:27 +0000 - - BESC - - - Click - here - to deploy this action. - - p:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on P Drive + + name of operating system starts with "Win" + exists folder "p:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:43:27 +0000 + + BESC + + + Click + here + to deploy this action. + + p:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on X Drive (24346).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on X Drive (24346).bes index 865b40e18..0427511d7 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on X Drive (24346).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on X Drive (24346).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on X Drive - - name of operating system starts with "Win" - exists folder "x:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:44:03 +0000 - - BESC - - - Click - here - to deploy this action. - - x:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on X Drive + + name of operating system starts with "Win" + exists folder "x:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:44:03 +0000 + + BESC + + + Click + here + to deploy this action. + + x:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on Y Drive (24347).bes b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on Y Drive (24347).bes index 98979ea29..50d35181d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on Y Drive (24347).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Find Ransomware Files on Y Drive (24347).bes @@ -1,35 +1,35 @@ - - - - - Find Ransomware Files on Y Drive - - name of operating system starts with "Win" - exists folder "y:\" - Internal - 2016-05-04 - - x-fixlet-modification-time - Tue, 16 May 2017 02:44:26 +0000 - - BESC - - - Click - here - to deploy this action. - - y:\ransomware_list.txt]]> - - - + + + + + Find Ransomware Files on Y Drive + + name of operating system starts with "Win" + exists folder "y:\" + Internal + 2016-05-04 + + x-fixlet-modification-time + Tue, 16 May 2017 02:44:26 +0000 + + BESC + + + Click + here + to deploy this action. + + y:\ransomware_list.txt]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Fix Skype shortcut missing from Start Menu (741).bes b/Sites/Windows Management/Fixlets/Fixlets/Fix Skype shortcut missing from Start Menu (741).bes index 65bdd2160..9b8adbfcf 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Fix Skype shortcut missing from Start Menu (741).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Fix Skype shortcut missing from Start Menu (741).bes @@ -1,51 +1,51 @@ - - - - - Fix Skype shortcut missing from Start Menu - Fix Skype shortcut missing from Start Menu - (name of it = "WinVista" or name of it = "Win7") of operating system - exists key whose (value "displayname" of it as string contains "Skype" of it AND value "displayname" of it as string as lowercase does not contain "Click to Call" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry - (value "DisplayIcon" of key whose (value "displayname" of it as string contains "Skype" of it AND value "displayname" of it as string as lowercase does not contain "Click to Call" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry) as string as lowercase contains "Skype.exe" as lowercase - exists file ((value "DisplayIcon" of key whose (value "displayname" of it as string contains "Skype" of it AND value "displayname" of it as string as lowercase does not contain "Click to Call" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry) as string) - not exists file "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Skype.lnk" AND not exists file "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Skype\Skype.lnk" - Internal - 2011-08-04 - - x-fixlet-modification-time - Thu, 04 Aug 2011 21:26:26 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - + + + + + Fix Skype shortcut missing from Start Menu + Fix Skype shortcut missing from Start Menu + (name of it = "WinVista" or name of it = "Win7") of operating system + exists key whose (value "displayname" of it as string contains "Skype" of it AND value "displayname" of it as string as lowercase does not contain "Click to Call" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry + (value "DisplayIcon" of key whose (value "displayname" of it as string contains "Skype" of it AND value "displayname" of it as string as lowercase does not contain "Click to Call" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry) as string as lowercase contains "Skype.exe" as lowercase + exists file ((value "DisplayIcon" of key whose (value "displayname" of it as string contains "Skype" of it AND value "displayname" of it as string as lowercase does not contain "Click to Call" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of registry) as string) + not exists file "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Skype.lnk" AND not exists file "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Skype\Skype.lnk" + Internal + 2011-08-04 + + x-fixlet-modification-time + Thu, 04 Aug 2011 21:26:26 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Fix Unquoted Registry Paths (24886).bes b/Sites/Windows Management/Fixlets/Fixlets/Fix Unquoted Registry Paths (24886).bes index 4aabbd8d6..aadea6c41 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Fix Unquoted Registry Paths (24886).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Fix Unquoted Registry Paths (24886).bes @@ -1,40 +1,40 @@ - - - - - Fix Unquoted Registry Paths -
This task uses the PowerShell fix from: https://gallery.technet.microsoft.com/scriptcenter/Windows-Unquoted-Service-190f0341 to correct the unquoted service paths with spaces.  The relevance looks for machines with out a quote that have a space in the service path.]]>
- exists services whose (exists (image paths of it as lowercase) whose (it does not start with "%22" and preceding text of first ".exe" of it contains " ")) - Software Distribution - Software Distribution Wizard - 2018-01-16 - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Wed, 10 Jan 2018 17:26:19 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - //Download the powershell file from https://gallery.technet.microsoft.com/scriptcenter/Windows-Unquoted-Service-190f0341. You will use that to update the unquoted paths. Make sure to add that download command here either as a prefetch or download from Microsoft. -run powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File __Download\fixpaths.ps1 - - -
-
+ + + + + Fix Unquoted Registry Paths +
This task uses the PowerShell fix from: https://gallery.technet.microsoft.com/scriptcenter/Windows-Unquoted-Service-190f0341 to correct the unquoted service paths with spaces.  The relevance looks for machines with out a quote that have a space in the service path.]]>
+ exists services whose (exists (image paths of it as lowercase) whose (it does not start with "%22" and preceding text of first ".exe" of it contains " ")) + Software Distribution + Software Distribution Wizard + 2018-01-16 + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 10 Jan 2018 17:26:19 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + //Download the powershell file from https://gallery.technet.microsoft.com/scriptcenter/Windows-Unquoted-Service-190f0341. You will use that to update the unquoted paths. Make sure to add that download command here either as a prefetch or download from Microsoft. +run powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File __Download\fixpaths.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Fix WMI Errors (3652).bes b/Sites/Windows Management/Fixlets/Fixlets/Fix WMI Errors (3652).bes index 5cff0911a..3e0ddaad8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Fix WMI Errors (3652).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Fix WMI Errors (3652).bes @@ -1,91 +1,91 @@ - - - - - Fix WMI Errors - Created By: Martin Carnegie
Created: Nov 5, 2013
Comments:
NOTE: Please do testing of this fixlet before using in production as this could cause further issues with WMI!

-

This script contains two actions that can be used to fix WMI errors on Windows systems.

WMI Simple should be the first one used as it does not impact the system that much and seems to fix most issues.

-

WMI Advanced should only be used if the WMI Simple does not fix the issue. This will require a reboot

Both wmi_simple and wmi_advanced were provided from a source at Microsoft, but I am unable to find that source.

]]>
- name of operating system contains "Win" - not exists wmi | true - Troubleshooting - martin@zaazee.ca - 2013-11-05 - Repair WMI on Windows systems - - x-fixlet-modification-time - Tue, 05 Nov 2013 18:27:23 +0000 - - BESC - - - Click - here - to deploy WMI Simple (Recommended). - - {value of variable "temp" of environment}\wmi_simple.log 2>&1]]> - - - - Click - here - to deploy WMI Advanced. - - {value of variable "temp" of environment}\wmi_advanced.log 2>&1 - -//According to the MS script, the system should be restarted after the script is executed. -action requires restart]]> - -
-
+ + + + + Fix WMI Errors + Created By: Martin Carnegie
Created: Nov 5, 2013
Comments:
NOTE: Please do testing of this fixlet before using in production as this could cause further issues with WMI!

+

This script contains two actions that can be used to fix WMI errors on Windows systems.

WMI Simple should be the first one used as it does not impact the system that much and seems to fix most issues.

+

WMI Advanced should only be used if the WMI Simple does not fix the issue. This will require a reboot

Both wmi_simple and wmi_advanced were provided from a source at Microsoft, but I am unable to find that source.

]]>
+ name of operating system contains "Win" + not exists wmi | true + Troubleshooting + martin@zaazee.ca + 2013-11-05 + Repair WMI on Windows systems + + x-fixlet-modification-time + Tue, 05 Nov 2013 18:27:23 +0000 + + BESC + + + Click + here + to deploy WMI Simple (Recommended). + + {value of variable "temp" of environment}\wmi_simple.log 2>&1]]> + + + + Click + here + to deploy WMI Advanced. + + {value of variable "temp" of environment}\wmi_advanced.log 2>&1 + +//According to the MS script, the system should be restarted after the script is executed. +action requires restart]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer (652).bes b/Sites/Windows Management/Fixlets/Fixlets/Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer (652).bes index c6340c7da..8fc6c831b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer (652).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer (652).bes @@ -1,36 +1,36 @@ - - - - - Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer - Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer on target machines. This must be run while the user(s) that you wish to enable these settings for is logged in. - name of operating system starts with "Win" - Common Tasks - danielheth@bigfix.me - <Unspecified> - 2012-10-31 - <Unspecified> - - x-fixlet-modification-time - Wed, 31 Oct 2012 14:53:03 +0000 - - BESC - - - Click - here - to deploy this action. - - regset "[HKEY_USERS\{name of key whose (value "Logon User Name" of key "Explorer" of key "CurrentVersion" of key "Windows" of key "Microsoft" of key "Software" of it as string as lowercase = name of current user as string as lowercase) of key "HKEY_USERS" of registry}\Software\Microsoft\Windows\CurrentVersion\Internet Settings]" "SecureProtocols"=dword:000000a8 - - - + + + + + Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer + Force Enable TLS 1.0, SSL 2.0 and SSL 3.0 in Internet Explorer on target machines. This must be run while the user(s) that you wish to enable these settings for is logged in. + name of operating system starts with "Win" + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2012-10-31 + <Unspecified> + + x-fixlet-modification-time + Wed, 31 Oct 2012 14:53:03 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_USERS\{name of key whose (value "Logon User Name" of key "Explorer" of key "CurrentVersion" of key "Windows" of key "Microsoft" of key "Software" of it as string as lowercase = name of current user as string as lowercase) of key "HKEY_USERS" of registry}\Software\Microsoft\Windows\CurrentVersion\Internet Settings]" "SecureProtocols"=dword:000000a8 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Force GP Update for Computer and Reboot (651).bes b/Sites/Windows Management/Fixlets/Fixlets/Force GP Update for Computer and Reboot (651).bes index 14d0cca92..73972afce 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Force GP Update for Computer and Reboot (651).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Force GP Update for Computer and Reboot (651).bes @@ -1,36 +1,36 @@ - - - - - Force GP Update for Computer and Reboot - Run a GPUpdate and rebot target computer - name of operating system starts with "Win" - Common Tasks - danielheth@bigfix.me - <Unspecified> - 2012-10-31 - <Unspecified> - - x-fixlet-modification-time - Wed, 31 Oct 2012 14:50:24 +0000 - - BESC - - - Click - here - to deploy this action. - - waithidden cmd.exe /C gpupdate /force /boot /target:computer - - - + + + + + Force GP Update for Computer and Reboot + Run a GPUpdate and rebot target computer + name of operating system starts with "Win" + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2012-10-31 + <Unspecified> + + x-fixlet-modification-time + Wed, 31 Oct 2012 14:50:24 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden cmd.exe /C gpupdate /force /boot /target:computer + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 (22387).bes b/Sites/Windows Management/Fixlets/Fixlets/Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 (22387).bes index c5a0bed43..592bf644f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 (22387).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 (22387).bes @@ -1,166 +1,166 @@ - - - - - Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 - This Task will export Local Group Policy Registry.pol files into a defined set of Registry keys. 

-

The purpose is to provide a means of inspecting the Local Group Policy configuration in other Fixlets/Tasks.  Originally we had a large number of Fixlets reading values from Registry.pol files directly; but the Relevance for doing so was complex, resource-intensive, and prone to causing issues due to file locking of the Registry.pol files.

-

This Task will search for both Computer, User, and MLGPO instances of Registry.pol, export them to text files via Microsoft's "LGPO.exe" utility, and import the results into the Registry under a number of keys.  Currently these are exported to HKLM\Software\BES_LGPO with subkeys for "Machine", "User", and (potentially) for each MLGPO-defined policy.

-

MLGPO reference: https://technet.microsoft.com/en-us/library/cc766291%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396

-

This Fixlet adds data at HKLM\Software\BES_LGPO subkeys:

-
    -
  • Machine -
  • User -
  • S-<whatever SIDS defined for MLGPO settings>
-

 Beneath each of these Keys are a number of Values.  The Value Name corresponds to the registy key & value that the LGPO configures; and the Value Data corresponds to the Data Type and Value that the LGPO applies.  Example

-

[HKEY_LOCAL_MACHINE\SOFTWARE\BES_LGPO\User]

-

Software\Policies\Microsoft\Windows\Control Panel\Desktop\ScreenSaveActive

-

REG_SZ:"SZ:1"

-

 

-

This Task should be run as a repeating Policy to ensure the registry values are updated periodically.  The registry values output will be used by a number of Security Policy fixlets.  This should also be added as a task in any Baseline that changes Local Group Policy settings, to ensure the new values are captured after the settings are applied.

-

 v1.1: Updated to handle XP/2003 using ImportRegPol.exe rather than LGPO.exe

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - Data Collection - Internal - 2016-07-05 - - x-fixlet-modification-time - Mon, 01 Aug 2016 21:16:09 +0000 - - BESC - - - Click - here - to deploy this action. - - = version "6"} - add prefetch item name=LGPO.exe sha1=f5a4a8e27b428c2d9a1c1ba7d72ba08b77406a9c size=380208 url=http://MANUAL_BES_CACHING_REQUIRED/LGPO.exe sha256=a8e0b52dea3836071f3f46235c126cb7fe986abdcc3d1b819d7c2cd101999cb3 - else - add prefetch item name=ImportRegPol.exe sha1=69d4881eb10a8f8c121e9ea63323ba6bfc028f31 size=181248 url=http://MANUAL_BES_CACHING_REQUIRED/ImportRegPol.exe - endif - collect prefetch items -end prefetch block - - -action uses wow64 redirection false -if {version of operating system >= version "6"} - parameter "LGPO"="{pathname of download file "LGPO.EXE"}" - utility __Download\LGPO.exe - else - parameter "LGPO"="{pathname of download file "ImportRegPol.EXE"}" - utility __Download\ImportRegPol.exe -endif - -// Path of each registry.pol file to parse, and the context (Computer|User) for the settings -// Split via ";", ", /u" refers to User and ", /m" refers to Machine -// Check Machine\Registry.pol, User\Registry.pol, and each potential MLGPO folder at System32\GroupPolicyUsers -parameter "Registry.pol"="{pathname of system folder}\GroupPolicy\Machine\Registry.pol, /m;{pathname of system folder}\GroupPolicy\User\Registry.pol, /u{(if it !="" then ";" & it else "") of concatenation ";" of (it & ", /u") of pathnames of files "Registry.pol" of folders of folders "GroupPolicyUsers" of native system folder}" - -// Registry key into which we are going to write the output settings - -parameter "RootKey"="HKEY_LOCAL_MACHINE\Software\BES_LGPO" - -// Locate Registry.pol and export it to LGPO Text file -delete __appendfile -// This creates a .inf file corresponding to each Registry.pol file found -// Output .INF files are saved in the __Download folder (taking advantage of the BES Client behavior of keeping the download folder clean) -// Files are named for the parent folder of Registry.pol - should be "Machine", "User", or the SID for an MLGPO user object -// Output is generated by LGPO.exe or ImportRegPol.exe depending on OS -// IF EXIST "PATH\Registry.pol" "PATH\LGPO.EXE" /parse /m "PATH\registry.pol" > __Download\parentdir.inf 2>>__Download\Export_Registry_Pol.err || EXIT /B 1 -if {version of operating system >= version "6"} - appendfile {concatenation "%0d%0a" of ("IF EXIST %22" & tuple string item 0 of it & "%22 %22" & parameter "LGPO" & "%22 /parse " & tuple string item 1 of it & " %22" & tuple string item 0 of it & "%22 > __Download\" & (following text of last "\" of preceding text of last "\" of tuple string item 0 of it) & ".inf 2>>__Download\Export_Registry_Pol.err || EXIT /B 1" ) of substrings separated by ";" of parameter "Registry.pol"} -else - appendfile {concatenation "%0d%0a" of ("IF EXIST %22" & tuple string item 0 of it & "%22 %22" & parameter "LGPO" & "%22 " & tuple string item 1 of it & " %22" & tuple string item 0 of it & "%22 /parseOnly /log __Download\" & (following text of last "\" of preceding text of last "\" of tuple string item 0 of it) & ".inf /error __Download\Export_Registry_Pol.err || EXIT /B 1" ) of substrings separated by ";" of parameter "Registry.pol"} -endif - -delete ExportRegistryPol.cmd -move __appendfile ExportRegistryPol.cmd - -waithidden cmd /c ExportRegistryPol.cmd -// Check for ExportRegistryPol.cmd error output -continue if {not exists lines whose (it contains "Error") of files "Export_Registry_Pol.err" of download folder } - -// If we failed to export any of the registry.pol files to INF, stop here, leaving the prior Registry entries intact -continue if {exit code of action = 0} - -// All targeted Registry.pol files have been exported. -// Delete the output Registry key, -// insert a new CaptureTime, and import all of the outputted Registry.inf files -delete __appendfile -appendfile reg.exe delete "{parameter "RootKey"}" /F -appendfile reg.exe add "{parameter "RootKey"}" /v __CaptureTime /t REG_SZ /d "{now}" /F - -appendfile SET RETCODE=0 -// Include handling for special cases: -// if "value name" is empty substitute "(default)" -// escape any embedded quotes with backslash (%22 ==> \%22 ) -// Double-up on any embedded percent signs ( %25 ==> %25%25 ) -// - -appendfile {concatenation "%0d%0a" of ("reg.exe add %22HKLM\Software\BES_LGPO\" & preceding text of last ".inf" of name of item 3 of it /* Removed: naming the key for "computer" or "user", that's evident already :: & "\" & item 0 of it */ & "%22 /v %22" & item 1 of it & "%22 /t REG_SZ /d %22" & item 2 of it & "%22 /F || SET RETCODE += 1") of ((item 0 of it, next line of item 0 of it & "\" & (if it as trimmed string = "" then "(default)" else it) of next line of next line of item 0 of it, concatenation "\%22" of substrings separated by "%22" of concatenation "%25%25" of substrings separated by "%25" of next line of next line of next line of item 0 of it, item 1 of it)) of (lines whose (previous line of it = "" and it as trimmed string as lowercase = "computer" or it as trimmed string as lowercase = "user") of it, it) of files whose (name of it as lowercase ends with ".inf") of download folder} -appendfile exit /B %RETCODE% - -delete regadd.cmd -move __appendfile regadd.cmd -waithidden cmd /c regadd.cmd - -// If any of the REG ADD commands failed, the batch will return a non-zero code which we should flag here -continue if {exit code of action = 0} - -// Even if we try to force a GPUpdate, the Policies registry key may not update until reboot -runhidden gpupdate.exe /target:computer /wait:0 - - -// ---- Only comments beyond this line ------ - -// Example .inf file format -//; ---------------------------------------------------------- -//; PARSING COMPUTER POLICY -//; Source file: Registry.pol - -//Computer -//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer -//NoInternetOpenWith -//DWORD:1 -// -//Computer -//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer -//NoOnlinePrintsWizard -//DWORD:1 -// -//Computer -//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer -//PreXPSP2ShellProtocolBehavior -//DWORD:0 -// -//Computer -//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer -//DisableLocalMachineRunOnce -//DWORD:1 -// -// Parsing logic: -// * Grab a list of .inf files, and preserve their names (filename is used in naming the output registry key) -// * Find a line that is only "Computer" or "User", preceded by an empty line -// * Grab that line (Computer|User), and the three lines after it, as items -// * The first line (Computer|User) is ignored. Line 2 and 3 are concatenated to make a registry value name (like Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisableLocalMachineRunOnce). If line 3 is empty replace it with (default) -// * The fourth line is used as the value data (DWORD:1). -// Include handling for special cases: -// if "value name" is empty substitute "(default)" -// escape any embedded quotes with backslash (%22 ==> \%22 ) -// Double-up on any embedded percent signs ( %25 ==> %25%25 ) - -]]> - -
-
+ + + + + Generate Local Group Policy Registry.pol info to Registry (Policy) 1.1 + This Task will export Local Group Policy Registry.pol files into a defined set of Registry keys. 

+

The purpose is to provide a means of inspecting the Local Group Policy configuration in other Fixlets/Tasks.  Originally we had a large number of Fixlets reading values from Registry.pol files directly; but the Relevance for doing so was complex, resource-intensive, and prone to causing issues due to file locking of the Registry.pol files.

+

This Task will search for both Computer, User, and MLGPO instances of Registry.pol, export them to text files via Microsoft's "LGPO.exe" utility, and import the results into the Registry under a number of keys.  Currently these are exported to HKLM\Software\BES_LGPO with subkeys for "Machine", "User", and (potentially) for each MLGPO-defined policy.

+

MLGPO reference: https://technet.microsoft.com/en-us/library/cc766291%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396

+

This Fixlet adds data at HKLM\Software\BES_LGPO subkeys:

+
    +
  • Machine +
  • User +
  • S-<whatever SIDS defined for MLGPO settings>
+

 Beneath each of these Keys are a number of Values.  The Value Name corresponds to the registy key & value that the LGPO configures; and the Value Data corresponds to the Data Type and Value that the LGPO applies.  Example

+

[HKEY_LOCAL_MACHINE\SOFTWARE\BES_LGPO\User]

+

Software\Policies\Microsoft\Windows\Control Panel\Desktop\ScreenSaveActive

+

REG_SZ:"SZ:1"

+

 

+

This Task should be run as a repeating Policy to ensure the registry values are updated periodically.  The registry values output will be used by a number of Security Policy fixlets.  This should also be added as a task in any Baseline that changes Local Group Policy settings, to ensure the new values are captured after the settings are applied.

+

 v1.1: Updated to handle XP/2003 using ImportRegPol.exe rather than LGPO.exe

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + Data Collection + Internal + 2016-07-05 + + x-fixlet-modification-time + Mon, 01 Aug 2016 21:16:09 +0000 + + BESC + + + Click + here + to deploy this action. + + = version "6"} + add prefetch item name=LGPO.exe sha1=f5a4a8e27b428c2d9a1c1ba7d72ba08b77406a9c size=380208 url=http://MANUAL_BES_CACHING_REQUIRED/LGPO.exe sha256=a8e0b52dea3836071f3f46235c126cb7fe986abdcc3d1b819d7c2cd101999cb3 + else + add prefetch item name=ImportRegPol.exe sha1=69d4881eb10a8f8c121e9ea63323ba6bfc028f31 size=181248 url=http://MANUAL_BES_CACHING_REQUIRED/ImportRegPol.exe + endif + collect prefetch items +end prefetch block + + +action uses wow64 redirection false +if {version of operating system >= version "6"} + parameter "LGPO"="{pathname of download file "LGPO.EXE"}" + utility __Download\LGPO.exe + else + parameter "LGPO"="{pathname of download file "ImportRegPol.EXE"}" + utility __Download\ImportRegPol.exe +endif + +// Path of each registry.pol file to parse, and the context (Computer|User) for the settings +// Split via ";", ", /u" refers to User and ", /m" refers to Machine +// Check Machine\Registry.pol, User\Registry.pol, and each potential MLGPO folder at System32\GroupPolicyUsers +parameter "Registry.pol"="{pathname of system folder}\GroupPolicy\Machine\Registry.pol, /m;{pathname of system folder}\GroupPolicy\User\Registry.pol, /u{(if it !="" then ";" & it else "") of concatenation ";" of (it & ", /u") of pathnames of files "Registry.pol" of folders of folders "GroupPolicyUsers" of native system folder}" + +// Registry key into which we are going to write the output settings - +parameter "RootKey"="HKEY_LOCAL_MACHINE\Software\BES_LGPO" + +// Locate Registry.pol and export it to LGPO Text file +delete __appendfile +// This creates a .inf file corresponding to each Registry.pol file found +// Output .INF files are saved in the __Download folder (taking advantage of the BES Client behavior of keeping the download folder clean) +// Files are named for the parent folder of Registry.pol - should be "Machine", "User", or the SID for an MLGPO user object +// Output is generated by LGPO.exe or ImportRegPol.exe depending on OS +// IF EXIST "PATH\Registry.pol" "PATH\LGPO.EXE" /parse /m "PATH\registry.pol" > __Download\parentdir.inf 2>>__Download\Export_Registry_Pol.err || EXIT /B 1 +if {version of operating system >= version "6"} + appendfile {concatenation "%0d%0a" of ("IF EXIST %22" & tuple string item 0 of it & "%22 %22" & parameter "LGPO" & "%22 /parse " & tuple string item 1 of it & " %22" & tuple string item 0 of it & "%22 > __Download\" & (following text of last "\" of preceding text of last "\" of tuple string item 0 of it) & ".inf 2>>__Download\Export_Registry_Pol.err || EXIT /B 1" ) of substrings separated by ";" of parameter "Registry.pol"} +else + appendfile {concatenation "%0d%0a" of ("IF EXIST %22" & tuple string item 0 of it & "%22 %22" & parameter "LGPO" & "%22 " & tuple string item 1 of it & " %22" & tuple string item 0 of it & "%22 /parseOnly /log __Download\" & (following text of last "\" of preceding text of last "\" of tuple string item 0 of it) & ".inf /error __Download\Export_Registry_Pol.err || EXIT /B 1" ) of substrings separated by ";" of parameter "Registry.pol"} +endif + +delete ExportRegistryPol.cmd +move __appendfile ExportRegistryPol.cmd + +waithidden cmd /c ExportRegistryPol.cmd +// Check for ExportRegistryPol.cmd error output +continue if {not exists lines whose (it contains "Error") of files "Export_Registry_Pol.err" of download folder } + +// If we failed to export any of the registry.pol files to INF, stop here, leaving the prior Registry entries intact +continue if {exit code of action = 0} + +// All targeted Registry.pol files have been exported. +// Delete the output Registry key, +// insert a new CaptureTime, and import all of the outputted Registry.inf files +delete __appendfile +appendfile reg.exe delete "{parameter "RootKey"}" /F +appendfile reg.exe add "{parameter "RootKey"}" /v __CaptureTime /t REG_SZ /d "{now}" /F + +appendfile SET RETCODE=0 +// Include handling for special cases: +// if "value name" is empty substitute "(default)" +// escape any embedded quotes with backslash (%22 ==> \%22 ) +// Double-up on any embedded percent signs ( %25 ==> %25%25 ) +// + +appendfile {concatenation "%0d%0a" of ("reg.exe add %22HKLM\Software\BES_LGPO\" & preceding text of last ".inf" of name of item 3 of it /* Removed: naming the key for "computer" or "user", that's evident already :: & "\" & item 0 of it */ & "%22 /v %22" & item 1 of it & "%22 /t REG_SZ /d %22" & item 2 of it & "%22 /F || SET RETCODE += 1") of ((item 0 of it, next line of item 0 of it & "\" & (if it as trimmed string = "" then "(default)" else it) of next line of next line of item 0 of it, concatenation "\%22" of substrings separated by "%22" of concatenation "%25%25" of substrings separated by "%25" of next line of next line of next line of item 0 of it, item 1 of it)) of (lines whose (previous line of it = "" and it as trimmed string as lowercase = "computer" or it as trimmed string as lowercase = "user") of it, it) of files whose (name of it as lowercase ends with ".inf") of download folder} +appendfile exit /B %RETCODE% + +delete regadd.cmd +move __appendfile regadd.cmd +waithidden cmd /c regadd.cmd + +// If any of the REG ADD commands failed, the batch will return a non-zero code which we should flag here +continue if {exit code of action = 0} + +// Even if we try to force a GPUpdate, the Policies registry key may not update until reboot +runhidden gpupdate.exe /target:computer /wait:0 + + +// ---- Only comments beyond this line ------ + +// Example .inf file format +//; ---------------------------------------------------------- +//; PARSING COMPUTER POLICY +//; Source file: Registry.pol + +//Computer +//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer +//NoInternetOpenWith +//DWORD:1 +// +//Computer +//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer +//NoOnlinePrintsWizard +//DWORD:1 +// +//Computer +//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer +//PreXPSP2ShellProtocolBehavior +//DWORD:0 +// +//Computer +//Software\Microsoft\Windows\CurrentVersion\Policies\Explorer +//DisableLocalMachineRunOnce +//DWORD:1 +// +// Parsing logic: +// * Grab a list of .inf files, and preserve their names (filename is used in naming the output registry key) +// * Find a line that is only "Computer" or "User", preceded by an empty line +// * Grab that line (Computer|User), and the three lines after it, as items +// * The first line (Computer|User) is ignored. Line 2 and 3 are concatenated to make a registry value name (like Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisableLocalMachineRunOnce). If line 3 is empty replace it with (default) +// * The fourth line is used as the value data (DWORD:1). +// Include handling for special cases: +// if "value name" is empty substitute "(default)" +// escape any embedded quotes with backslash (%22 ==> \%22 ) +// Double-up on any embedded percent signs ( %25 ==> %25%25 ) + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Generate PowerCFG Energy Report - Windows (6040).bes b/Sites/Windows Management/Fixlets/Fixlets/Generate PowerCFG Energy Report - Windows (6040).bes index 8a49683d8..681f3573e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Generate PowerCFG Energy Report - Windows (6040).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Generate PowerCFG Energy Report - Windows (6040).bes @@ -1,67 +1,67 @@ - - - - - Generate PowerCFG Energy Report - Windows - - /* Windows Only */ windows of operating system - = "5.1"]]> - (now - modification time of it)) of parent folder of client]]> - Internal - jgstew - 2014-03-28 - - x-fixlet-modification-time - Fri, 11 Apr 2014 18:39:56 +0000 - - BESC - - - Click - here - to deploy this action. - - ] [/XML] [/DURATION ] -// POWERCFG /ENERGY /TRACE [/D ] [/XML] [/DURATION ] - -// Parameter List: -// /OUTPUT Specify the path and filename to store the energy report HTML or XML file. -// /XML Format the report file as XML. -// /DURATION Specify the number of seconds to observe system behavior. Default is 60 seconds. -// /TRACE Record system behavior and do not perform analysis. Trace files will be generated in the current path unless the /D parameter is specified. -// /D Specify the directory to store trace data. May only be used with the /TRACE parameter. - -// Examples: -// POWERCFG /ENERGY -// POWERCFG /ENERGY /OUTPUT "longtrace.html" /DURATION 120 - -waithidden {system folder}\powercfg.exe /energy /xml /DURATION 15 /output "{pathname of parent folder of client}\__BESData\__Global\Logs\energy-report.xml" >> "{pathname of parent folder of client}\__BESData\__Global\Logs\energy-report_PowerCFG_CMD.log" -]]> - - - - + + + + + Generate PowerCFG Energy Report - Windows + + /* Windows Only */ windows of operating system + = "5.1"]]> + (now - modification time of it)) of parent folder of client]]> + Internal + jgstew + 2014-03-28 + + x-fixlet-modification-time + Fri, 11 Apr 2014 18:39:56 +0000 + + BESC + + + Click + here + to deploy this action. + + ] [/XML] [/DURATION ] +// POWERCFG /ENERGY /TRACE [/D ] [/XML] [/DURATION ] + +// Parameter List: +// /OUTPUT Specify the path and filename to store the energy report HTML or XML file. +// /XML Format the report file as XML. +// /DURATION Specify the number of seconds to observe system behavior. Default is 60 seconds. +// /TRACE Record system behavior and do not perform analysis. Trace files will be generated in the current path unless the /D parameter is specified. +// /D Specify the directory to store trace data. May only be used with the /TRACE parameter. + +// Examples: +// POWERCFG /ENERGY +// POWERCFG /ENERGY /OUTPUT "longtrace.html" /DURATION 120 + +waithidden {system folder}\powercfg.exe /energy /xml /DURATION 15 /output "{pathname of parent folder of client}\__BESData\__Global\Logs\energy-report.xml" >> "{pathname of parent folder of client}\__BESData\__Global\Logs\energy-report_PowerCFG_CMD.log" +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Get AD Description (3755).bes b/Sites/Windows Management/Fixlets/Fixlets/Get AD Description (3755).bes index c3ecff075..c2221c7f8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Get AD Description (3755).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Get AD Description (3755).bes @@ -1,86 +1,86 @@ - - - - - Get AD Description - ADLocation.txt' located in the client root directory ]]> - (not exist file "ADDescription.txt" of parent folder of client) OR (exists file "ADDescription.txt" whose (not exist line 1 of it) of parent folder of client) - IBM (mike.english@us.ibm.com) - 2013-06-05 - N/A - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Wed, 05 Jun 2013 21:52:45 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - "" Then -appendfile 'wscript.echo sDescription -appendfile objOutputFile.WriteLine(sDescription) -appendfile objOutputFile.Close -appendfile -appendfile Else -appendfile sDescription = "AD Description could not be obtained" -appendfile 'wscript.echo sDescription -appendfile objOutputFile.WriteLine(sDescription) -appendfile objOutputFile.Close -appendfile -appendfile End If -appendfile -appendfile Set objFileSystem = Nothing -appendfile Set oShell = Nothing -appendfile Set oAdSysInfo = Nothing -appendfile Set o = Nothing -appendfile -appendfile WScript.Quit(0) - -move __appendfile GetADDescription.vbs - -// Execute the VBScript silently using cscript.exe -waithidden cscript.exe GetADDescription.vbs - -// Delete the VBScript we just created. -delete GetADDescription.vbs]]> - - - - + + + + + Get AD Description + ADLocation.txt' located in the client root directory ]]> + (not exist file "ADDescription.txt" of parent folder of client) OR (exists file "ADDescription.txt" whose (not exist line 1 of it) of parent folder of client) + IBM (mike.english@us.ibm.com) + 2013-06-05 + N/A + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 05 Jun 2013 21:52:45 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + "" Then +appendfile 'wscript.echo sDescription +appendfile objOutputFile.WriteLine(sDescription) +appendfile objOutputFile.Close +appendfile +appendfile Else +appendfile sDescription = "AD Description could not be obtained" +appendfile 'wscript.echo sDescription +appendfile objOutputFile.WriteLine(sDescription) +appendfile objOutputFile.Close +appendfile +appendfile End If +appendfile +appendfile Set objFileSystem = Nothing +appendfile Set oShell = Nothing +appendfile Set oAdSysInfo = Nothing +appendfile Set o = Nothing +appendfile +appendfile WScript.Quit(0) + +move __appendfile GetADDescription.vbs + +// Execute the VBScript silently using cscript.exe +waithidden cscript.exe GetADDescription.vbs + +// Delete the VBScript we just created. +delete GetADDescription.vbs]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Get AD Location (3756).bes b/Sites/Windows Management/Fixlets/Fixlets/Get AD Location (3756).bes index edc027a2f..29a966717 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Get AD Location (3756).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Get AD Location (3756).bes @@ -1,86 +1,86 @@ - - - - - Get AD Location - ADLocation.txt' located in the client root directory ]]> - (not exist file "ADLocation.txt" of parent folder of client) OR (exists file "ADLocation.txt" whose (not exist line 1 of it) of parent folder of client) - IBM (mike.english@us.ibm.com) - 2013-06-05 - N/A - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Wed, 05 Jun 2013 17:01:40 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - "" Then -appendfile 'wscript.echo sLocation -appendfile objOutputFile.WriteLine(sLocation) -appendfile objOutputFile.Close -appendfile -appendfile Else -appendfile sLocation = "AD Location could not be obtained" -appendfile 'wscript.echo sLocation -appendfile objOutputFile.WriteLine(sLocation) -appendfile objOutputFile.Close -appendfile -appendfile End If -appendfile -appendfile Set objFileSystem = Nothing -appendfile Set oShell = Nothing -appendfile Set oAdSysInfo = Nothing -appendfile Set o = Nothing -appendfile -appendfile WScript.Quit(0) - -move __appendfile GetADLocation.vbs - -// Execute the VBScript silently using cscript.exe -waithidden cscript.exe GetADLocation.vbs - -// Delete the VBScript we just created. -delete GetADLocation.vbs]]> - - - - + + + + + Get AD Location + ADLocation.txt' located in the client root directory ]]> + (not exist file "ADLocation.txt" of parent folder of client) OR (exists file "ADLocation.txt" whose (not exist line 1 of it) of parent folder of client) + IBM (mike.english@us.ibm.com) + 2013-06-05 + N/A + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 05 Jun 2013 17:01:40 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + "" Then +appendfile 'wscript.echo sLocation +appendfile objOutputFile.WriteLine(sLocation) +appendfile objOutputFile.Close +appendfile +appendfile Else +appendfile sLocation = "AD Location could not be obtained" +appendfile 'wscript.echo sLocation +appendfile objOutputFile.WriteLine(sLocation) +appendfile objOutputFile.Close +appendfile +appendfile End If +appendfile +appendfile Set objFileSystem = Nothing +appendfile Set oShell = Nothing +appendfile Set oAdSysInfo = Nothing +appendfile Set o = Nothing +appendfile +appendfile WScript.Quit(0) + +move __appendfile GetADLocation.vbs + +// Execute the VBScript silently using cscript.exe +waithidden cscript.exe GetADLocation.vbs + +// Delete the VBScript we just created. +delete GetADLocation.vbs]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24321).bes b/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24321).bes index 67bdec317..30db12515 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24321).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24321).bes @@ -1,57 +1,57 @@ - - - - - Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 - -

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system - not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrxsmb10" of native registry - Workaround - brolly33 - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 21:03:43 +0000 - - BESC - - - Click - here - to deploy this action. - - // Using Powershell Template https://bigfix.me/fixlet/details/3860 - -// Disable wow64 redirection on x64 OSes -action uses wow64 redirection {not x64 of operating system} - -delete __createfile - -// CREATEFILE -createfile until END_OF_FILE - -Install-WindowsFeature -Name FS-SMB1 - -END_OF_FILE - -delete powershell.ps1 -move __createfile powershell.ps1 - -waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 -action requires restart - -
-
+ + + + + Gracefully install SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system + not exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrxsmb10" of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 21:03:43 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Install-WindowsFeature -Name FS-SMB1 + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24323).bes b/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24323).bes index 083b6dab5..abd10073e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24323).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24323).bes @@ -1,57 +1,57 @@ - - - - - Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 - -

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system - not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\ServicingStorage\ServerComponentCache\FS-SMB1" whose (value "InstallState" of it = 1) of native registry - Workaround - brolly33 - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 23:08:05 +0000 - - BESC - - - Click - here - to deploy this action. - - // Using Powershell Template https://bigfix.me/fixlet/details/3860 - -// Disable wow64 redirection on x64 OSes -action uses wow64 redirection {not x64 of operating system} - -delete __createfile - -// CREATEFILE -createfile until END_OF_FILE - -Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart - -END_OF_FILE - -delete powershell.ps1 -move __createfile powershell.ps1 - -waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 -action requires restart - -
-
+ + + + + Gracefully install SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system + not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\ServicingStorage\ServerComponentCache\FS-SMB1" whose (value "InstallState" of it = 1) of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 23:08:05 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24320).bes b/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24320).bes index 75582f9e0..272ec5400 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24320).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24320).bes @@ -1,57 +1,57 @@ - - - - - Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 - -

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system - exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrxsmb10" of native registry - Workaround - brolly33 - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 21:03:55 +0000 - - BESC - - - Click - here - to deploy this action. - - // Using Powershell Template https://bigfix.me/fixlet/details/3860 - -// Disable wow64 redirection on x64 OSes -action uses wow64 redirection {not x64 of operating system} - -delete __createfile - -// CREATEFILE -createfile until END_OF_FILE - -Remove-WindowsFeature -Name FS-SMB1 - -END_OF_FILE - -delete powershell.ps1 -move __createfile powershell.ps1 - -waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 -action requires restart - -
-
+ + + + + Gracefully remove SMB v1 - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrxsmb10" of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 21:03:55 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Remove-WindowsFeature -Name FS-SMB1 + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24322).bes b/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24322).bes index 43dd4bf8f..735fe1e1b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24322).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 (24322).bes @@ -1,57 +1,57 @@ - - - - - Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 - -

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

-

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

-

Recommended you apply MS17-010 using the published Fixlets.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system - exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\ServicingStorage\ServerComponentCache\FS-SMB1" whose (value "InstallState" of it = 1) of native registry - Workaround - brolly33 - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 23:08:16 +0000 - - BESC - - - Click - here - to deploy this action. - - // Using Powershell Template https://bigfix.me/fixlet/details/3860 - -// Disable wow64 redirection on x64 OSes -action uses wow64 redirection {not x64 of operating system} - -delete __createfile - -// CREATEFILE -createfile until END_OF_FILE - -Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart - -END_OF_FILE - -delete powershell.ps1 -move __createfile powershell.ps1 - -waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 -action requires restart - -
-
+ + + + + Gracefully remove SMB v1 Client - Windows 8.1, Windows 10, Windows 2012 R2, and Windows Server 2016 + +

To support WannaCry2.0 SMB workaround if you cannot apply MS17-010 patch.

+

https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012

+

Recommended you apply MS17-010 using the published Fixlets.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (name of it = "Win2012R2" or name of it = "Win8.1" or name of it = "Win2016" or name of it = "Win10") of operating system + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\ServicingStorage\ServerComponentCache\FS-SMB1" whose (value "InstallState" of it = 1) of native registry + Workaround + brolly33 + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 23:08:16 +0000 + + BESC + + + Click + here + to deploy this action. + + // Using Powershell Template https://bigfix.me/fixlet/details/3860 + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26940).bes b/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26940).bes index 456eb5a9a..005e5ee4b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26940).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26940).bes @@ -1,136 +1,136 @@ - - - - - HCL Labs: Run as Local User without or Without Elevation (Interactive) - - windows of operating system - Internal - 2019-05-20 - - x-fixlet-modification-time - Tue, 19 Jul 2022 16:21:02 +0000 - - BESC - - - Click - here - to run script without elevation. - - %systemroot%\test.out -EOF_EOF_EOF - - -parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" -parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" -// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user -parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" -if {exists logged on users} - -folder create "{parameter "user_profile"}\BES_Action" -delete "{parameter "user_profile"}\BES_Action\test.cmd" -copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" - -// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist -action uses wow64 redirection false - -override wait -hidden=false -runas=localuser -user={parameter "user_domain_name"} -password=impersonate -wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" - -else - parameter "Skipped"="No logged on user" -endif - -]]> - - - - Click - here - to run script with elevation prompt. - - nul 2>&1 - -@REM --> If error flag set, we do not have admin. -@if '%ERRORLEVEL%' NEQ '0' ( - @echo Requesting administrative privileges... - @goto UACPrompt -) else ( @goto gotAdmin ) - -:UACPrompt - @del /q "%temp%\getadmin.vbs" > NUL 2>&1 - @IF EXIST "%temp%\getadmin.vbs" @echo Unable to clear previous getadmin.vbs, aborting... & exit /B 1 - @echo msgbox "A BigFix Action run in user context requires administrative elevation. Please accept the following elevation prompt from User Access Control (UAC)",0,"BigFix Elevation Prompt" > "%temp%\getadmin.vbs" - @echo Set UAC = CreateObject^("Shell.Application"^) >> "%temp%\getadmin.vbs" - @echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" - - @wscript.exe "%temp%\getadmin.vbs" - @exit /B - -:gotAdmin - @if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) - @pushd "%CD%" - @REM CD /D "%~dp0" - -@REM ############################################ -@REM Now do the things that required elevation - -echo test > %systemroot%\test.out -exit /B %ERRORLEVEL% - -@REM ############ End of batch script ########### - - -EOF_EOF_EOF - -//RunAs=currentuser -//asadmin=interactive -parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" -parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" -// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user -parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" -if {exists logged on users} - -folder create "{parameter "user_profile"}\BES_Action" -delete "{parameter "user_profile"}\BES_Action\test.cmd" -copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" - -// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist -action uses wow64 redirection false - -override wait -hidden=false -runas=localuser -user={parameter "user_domain_name"} -password=impersonate -wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" - -else - parameter "Skipped"="No logged on user" -endif - -]]> - - - + + + + + HCL Labs: Run as Local User without or Without Elevation (Interactive) + + windows of operating system + Internal + 2019-05-20 + + x-fixlet-modification-time + Tue, 19 Jul 2022 16:21:02 +0000 + + BESC + + + Click + here + to run script without elevation. + + %systemroot%\test.out +EOF_EOF_EOF + + +parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" +parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" +// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user +parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" +if {exists logged on users} + +folder create "{parameter "user_profile"}\BES_Action" +delete "{parameter "user_profile"}\BES_Action\test.cmd" +copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" + +// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist +action uses wow64 redirection false + +override wait +hidden=false +runas=localuser +user={parameter "user_domain_name"} +password=impersonate +wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" + +else + parameter "Skipped"="No logged on user" +endif + +]]> + + + + Click + here + to run script with elevation prompt. + + nul 2>&1 + +@REM --> If error flag set, we do not have admin. +@if '%ERRORLEVEL%' NEQ '0' ( + @echo Requesting administrative privileges... + @goto UACPrompt +) else ( @goto gotAdmin ) + +:UACPrompt + @del /q "%temp%\getadmin.vbs" > NUL 2>&1 + @IF EXIST "%temp%\getadmin.vbs" @echo Unable to clear previous getadmin.vbs, aborting... & exit /B 1 + @echo msgbox "A BigFix Action run in user context requires administrative elevation. Please accept the following elevation prompt from User Access Control (UAC)",0,"BigFix Elevation Prompt" > "%temp%\getadmin.vbs" + @echo Set UAC = CreateObject^("Shell.Application"^) >> "%temp%\getadmin.vbs" + @echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" + + @wscript.exe "%temp%\getadmin.vbs" + @exit /B + +:gotAdmin + @if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) + @pushd "%CD%" + @REM CD /D "%~dp0" + +@REM ############################################ +@REM Now do the things that required elevation + +echo test > %systemroot%\test.out +exit /B %ERRORLEVEL% + +@REM ############ End of batch script ########### + + +EOF_EOF_EOF + +//RunAs=currentuser +//asadmin=interactive +parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" +parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" +// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user +parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" +if {exists logged on users} + +folder create "{parameter "user_profile"}\BES_Action" +delete "{parameter "user_profile"}\BES_Action\test.cmd" +copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" + +// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist +action uses wow64 redirection false + +override wait +hidden=false +runas=localuser +user={parameter "user_domain_name"} +password=impersonate +wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" + +else + parameter "Skipped"="No logged on user" +endif + +]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26941).bes b/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26941).bes index 351771b6c..f3964e7c8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26941).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/HCL Labs_ Run as Local User without or Without Elevation (Interactive) (26941).bes @@ -1,136 +1,136 @@ - - - - - HCL Labs: Run as Local User without or Without Elevation (Interactive) - - windows of operating system - Internal - 2019-05-20 - - x-fixlet-modification-time - Tue, 19 Jul 2022 16:21:02 +0000 - - BESC - - - Click - here - to run script without elevation. - - %systemroot%\test.out -EOF_EOF_EOF - - -parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" -parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" -// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user -parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" -if {exists logged on users} - -folder create "{parameter "user_profile"}\BES_Action" -delete "{parameter "user_profile"}\BES_Action\test.cmd" -copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" - -// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist -action uses wow64 redirection false - -override wait -hidden=false -runas=localuser -user={parameter "user_domain_name"} -password=impersonate -wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" - -else - parameter "Skipped"="No logged on user" -endif - -]]> - - - - Click - here - to run script with elevation prompt. - - nul 2>&1 - -@REM --> If error flag set, we do not have admin. -@if '%ERRORLEVEL%' NEQ '0' ( - @echo Requesting administrative privileges... - @goto UACPrompt -) else ( @goto gotAdmin ) - -:UACPrompt - @del /q "%temp%\getadmin.vbs" > NUL 2>&1 - @IF EXIST "%temp%\getadmin.vbs" @echo Unable to clear previous getadmin.vbs, aborting... & exit /B 1 - @echo msgbox "A BigFix Action run in user context requires administrative elevation. Please accept the following elevation prompt from User Access Control (UAC)",0,"BigFix Elevation Prompt" > "%temp%\getadmin.vbs" - @echo Set UAC = CreateObject^("Shell.Application"^) >> "%temp%\getadmin.vbs" - @echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" - - @wscript.exe "%temp%\getadmin.vbs" - @exit /B - -:gotAdmin - @if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) - @pushd "%CD%" - @REM CD /D "%~dp0" - -@REM ############################################ -@REM Now do the things that required elevation - -echo test > %systemroot%\test.out -exit /B %ERRORLEVEL% - -@REM ############ End of batch script ########### - - -EOF_EOF_EOF - -//RunAs=currentuser -//asadmin=interactive -parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" -parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" -// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user -parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" -if {exists logged on users} - -folder create "{parameter "user_profile"}\BES_Action" -delete "{parameter "user_profile"}\BES_Action\test.cmd" -copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" - -// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist -action uses wow64 redirection false - -override wait -hidden=false -runas=localuser -user={parameter "user_domain_name"} -password=impersonate -wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" - -else - parameter "Skipped"="No logged on user" -endif - -]]> - - - + + + + + HCL Labs: Run as Local User without or Without Elevation (Interactive) + + windows of operating system + Internal + 2019-05-20 + + x-fixlet-modification-time + Tue, 19 Jul 2022 16:21:02 +0000 + + BESC + + + Click + here + to run script without elevation. + + %systemroot%\test.out +EOF_EOF_EOF + + +parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" +parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" +// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user +parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" +if {exists logged on users} + +folder create "{parameter "user_profile"}\BES_Action" +delete "{parameter "user_profile"}\BES_Action\test.cmd" +copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" + +// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist +action uses wow64 redirection false + +override wait +hidden=false +runas=localuser +user={parameter "user_domain_name"} +password=impersonate +wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" + +else + parameter "Skipped"="No logged on user" +endif + +]]> + + + + Click + here + to run script with elevation prompt. + + nul 2>&1 + +@REM --> If error flag set, we do not have admin. +@if '%ERRORLEVEL%' NEQ '0' ( + @echo Requesting administrative privileges... + @goto UACPrompt +) else ( @goto gotAdmin ) + +:UACPrompt + @del /q "%temp%\getadmin.vbs" > NUL 2>&1 + @IF EXIST "%temp%\getadmin.vbs" @echo Unable to clear previous getadmin.vbs, aborting... & exit /B 1 + @echo msgbox "A BigFix Action run in user context requires administrative elevation. Please accept the following elevation prompt from User Access Control (UAC)",0,"BigFix Elevation Prompt" > "%temp%\getadmin.vbs" + @echo Set UAC = CreateObject^("Shell.Application"^) >> "%temp%\getadmin.vbs" + @echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" + + @wscript.exe "%temp%\getadmin.vbs" + @exit /B + +:gotAdmin + @if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) + @pushd "%CD%" + @REM CD /D "%~dp0" + +@REM ############################################ +@REM Now do the things that required elevation + +echo test > %systemroot%\test.out +exit /B %ERRORLEVEL% + +@REM ############ End of batch script ########### + + +EOF_EOF_EOF + +//RunAs=currentuser +//asadmin=interactive +parameter "user_name"="{(preceding text of first "|" of it | it) of concatenation "|" of names of logged on users}" +parameter "user_profile"="{(preceding text of first "|" of it | it) of concatenation "|" of profile folders of users of logged on users}" +// DOMAIN\ should be specified *only* for domain users. Local users should have not prefix, not even COMPUTERNAME\user +parameter "user_domain_name"="{(preceding text of first "|" of it | it) of concatenation "|" of ((if exists domain whose (it as lowercase != computer name as lowercase) of it then domain of it & "\" else "") of user of it & name of it) of logged on users}" +if {exists logged on users} + +folder create "{parameter "user_profile"}\BES_Action" +delete "{parameter "user_profile"}\BES_Action\test.cmd" +copy __createfile "{parameter "user_profile"}\BES_Action\test.cmd" + +// Important - the check for elevation fails in 32-bit mode because \windows\syswow64\config does not exist +action uses wow64 redirection false + +override wait +hidden=false +runas=localuser +user={parameter "user_domain_name"} +password=impersonate +wait cmd.exe /C "{parameter "user_profile"}\BES_Action\test.cmd" + +else + parameter "Skipped"="No logged on user" +endif + +]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 2.0 Service Pack 2 (106).bes b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 2.0 Service Pack 2 (106).bes index a9dc2eacc..19f439b67 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 2.0 Service Pack 2 (106).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 2.0 Service Pack 2 (106).bes @@ -1,55 +1,55 @@ - - - - - Install Microsoft .NET Framework 2.0 Service Pack 2 -
Please review the supported operating systems for this deployment package in the System Requirements section. The corresponding updates for Windows Vista and Microsoft Windows 2008 are deployed via the full .NET Framework 3.5 service pack 1. ]]>
- (name of it = "Win2000" OR name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2" OR name of it = "WinXPe") of operating system AND TRUE - Install - danielheth@bigfix.me - <Unspecified> - 2012-10-03 - <Unspecified> - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Wed, 03 Oct 2012 16:26:15 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - if {x64 of operating system} - prefetch NetFx20SP2_x64.exe sha1:a7cc6c6e5a4ad9cdf3df16a7d277eb09fec429b7 size:48524296 http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x64.exe - wait __Download\NetFx20SP2_x64.exe /quiet /norestart -else - prefetch NetFx20SP2_x86.exe sha1:22d776d4d204863105a5db99e8b8888be23c61a7 size:25001480 http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe - wait __Download\NetFx20SP2_x86.exe /quiet /norestart -endif - - - - - Click - here - to learn more about this software. - - http://www.microsoft.com/en-us/download/details.aspx?id=1639 - -
-
+ + + + + Install Microsoft .NET Framework 2.0 Service Pack 2 +
Please review the supported operating systems for this deployment package in the System Requirements section. The corresponding updates for Windows Vista and Microsoft Windows 2008 are deployed via the full .NET Framework 3.5 service pack 1. ]]>
+ (name of it = "Win2000" OR name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2" OR name of it = "WinXPe") of operating system AND TRUE + Install + danielheth@bigfix.me + <Unspecified> + 2012-10-03 + <Unspecified> + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 03 Oct 2012 16:26:15 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + if {x64 of operating system} + prefetch NetFx20SP2_x64.exe sha1:a7cc6c6e5a4ad9cdf3df16a7d277eb09fec429b7 size:48524296 http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x64.exe + wait __Download\NetFx20SP2_x64.exe /quiet /norestart +else + prefetch NetFx20SP2_x86.exe sha1:22d776d4d204863105a5db99e8b8888be23c61a7 size:25001480 http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe + wait __Download\NetFx20SP2_x86.exe /quiet /norestart +endif + + + + + Click + here + to learn more about this software. + + http://www.microsoft.com/en-us/download/details.aspx?id=1639 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 3.5 (104).bes b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 3.5 (104).bes index acf44dcb7..7ceb9e8fc 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 3.5 (104).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 3.5 (104).bes @@ -1,58 +1,58 @@ - - - - - Install Microsoft .NET Framework 3.5 - -
    -
  • Deep integration of Language Integrated Query (LINQ) and data awareness. This new feature will let you write code written in LINQ-enabled languages to filter, enumerate, and create projections of several types of SQL data, collections, XML, and DataSets by using the same syntax. -
  • ASP.NET AJAX lets you create more efficient, more interactive, and highly-personalized Web experiences that work across all the most popular browsers. -
  • New Web protocol support for building WCF services including AJAX, JSON, REST, POX, RSS, ATOM, and several new WS-* standards. -
  • Full tooling support in Visual Studio 2008 for WF, WCF, and WPF, including the new workflow-enabled services technology. -
  • New classes in .NET Framework 3.5 base class library (BCL) that address many common customer requests.
]]>
- (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2") of operating system - not exists key "HKLM\SOFTWARE\Microsoft\.NETFramework\v3.0" of native registry - Install - danielheth@bigfix.me - <Unspecified> - 2012-10-02 - <Unspecified> - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Wed, 03 Oct 2012 16:04:19 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - prefetch dotNetFx35setup.exe sha1:b0ca05c12ebb9a3610206bad7f219e02b7873cbd size:2869264 http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe -wait __Download\dotNetFx35setup.exe /norestart /quiet - - - - - - Click - here - to learn more about this software. - - http://www.microsoft.com/en-us/download/details.aspx?id=21 - -
-
+ + + + + Install Microsoft .NET Framework 3.5 + +
    +
  • Deep integration of Language Integrated Query (LINQ) and data awareness. This new feature will let you write code written in LINQ-enabled languages to filter, enumerate, and create projections of several types of SQL data, collections, XML, and DataSets by using the same syntax. +
  • ASP.NET AJAX lets you create more efficient, more interactive, and highly-personalized Web experiences that work across all the most popular browsers. +
  • New Web protocol support for building WCF services including AJAX, JSON, REST, POX, RSS, ATOM, and several new WS-* standards. +
  • Full tooling support in Visual Studio 2008 for WF, WCF, and WPF, including the new workflow-enabled services technology. +
  • New classes in .NET Framework 3.5 base class library (BCL) that address many common customer requests.
]]>
+ (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2") of operating system + not exists key "HKLM\SOFTWARE\Microsoft\.NETFramework\v3.0" of native registry + Install + danielheth@bigfix.me + <Unspecified> + 2012-10-02 + <Unspecified> + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 03 Oct 2012 16:04:19 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch dotNetFx35setup.exe sha1:b0ca05c12ebb9a3610206bad7f219e02b7873cbd size:2869264 http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe +wait __Download\dotNetFx35setup.exe /norestart /quiet + + + + + + Click + here + to learn more about this software. + + http://www.microsoft.com/en-us/download/details.aspx?id=21 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 4 (3626).bes b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 4 (3626).bes index 7e2317bf4..8e6764a55 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 4 (3626).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Install Microsoft .NET Framework 4 (3626).bes @@ -1,82 +1,82 @@ - - - - - Install Microsoft .NET Framework 4 - The .NET Framework is Microsoft's comprehensive and consistent programming model for building applications that have visually stunning user experiences, seamless and secure communication, and the ability to model a range of business processes.

The .NET Framework 4 works side by side with older Framework versions. Applications that are based on earlier versions of the Framework will continue to run on the version targeted by default.

The Microsoft .NET Framework 4 provides the following new features and improvements:

-
    -
  • Improvements in Common Language Runtime (CLR) and Base Class Library (BCL) -
      -
    • Performance improvement including better multicore support, background garbage collection, and profiler attach on server. -
    • New memory mapped file and numeric types. -
    • Easier debugging including dump debugging, Watson minidumps, mixed mode debugging for 64 bit and code contracts. -
    • For a comprehensive list of enhancements to CLR and BCL go here.
    -
  • Innovations in the Visual Basic and C# languages, for example statement lambdas, implicit line continuations, dynamic dispatch, and named/optional parameters. -
  • Improvements in Data Access and Modeling -
      -
    • The Entity Framework enables developers to program against relational databases using .NET objects and Language Integrated Query (LINQ). It has many new features, including persistence ignorance and POCO support, foreign key associations, lazy loading, test-driven development support, functions in the model, and new LINQ operators. Additional features include better n-tier support with self-tracking entities, customizable code generation using T4 templates, model first development, an improved designer experience, better performance, and pluralization of entity sets. For more information go here. -
    • WCF Data Services is a component of the .NET Framework that enables you to create REST-based services and applications that use the Open Data Protocol (OData) to expose and consume data over the Web. WCF Data Services has many new features, including enhanced BLOB support, data binding, row count, feed customization, projections, and request pipeline improvements. Built-in integration with Microsoft Office 2010 now makes it possible to expose Microsoft Office SharePoint Server data as an OData feed and access that data feed by using the WCF Data Services client library. For more information go here.
    -
  • Enhancements to ASP.NET -
      -
    • More control over HTML, element IDs and custom CSS that make it much easier to create standards-compliant and SEO-friendly web forms. -
    • New dynamic data features including new query filters, entity templates, richer support for Entity Framework 4, and validation and templating features that can be easily applied to existing web forms. -
    • Web forms support for new AJAX library improvements including built-in support for content delivery networks (CDNs). -
    • For a comprehensive list of enhancements to ASP.NET go here.
    -
  • Improvements in Windows Presentation Foundation (WPF) -
      -
    • Added support for Windows 7 multi-touch, ribbon controls, and taskbar extensibility features. -
    • Added support for Surface 2.0 SDK. -
    • New line-of-business controls including charting control, smart edit, data grid, and others that improve the experience for developers who build data centric applications. -
    • Improvements in performance and scalability. -
    • Visual improvements in text clarity, layout pixel snapping, localization, and interoperability. -
    • For a comprehensive list of enhancements to WPF go here.
    -
  • Improvements to Windows Workflow (WF) that enable developers to better host and interact with workflows. These include an improved activity programming model, an improved designer experience, a new flowchart modeling style, an expanded activity palette, workflow-rules integration, and new message correlation features. The .NET Framework 4 also offers significant performance gains for WF-based workflows. For a comprehensive list of enhancements to WF go here. -
  • Improvements to Windows Communication Foundation (WCF) such as support for WCF Workflow Services enabling workflow programs with messaging activities, correlation support. Additionally, .NET Framework 4 provides new WCF features such as service discovery, routing service, REST support, diagnostics, and performance. For a comprehensive list of enhancements to WCF go here. -
  • Innovative new parallel-programming features such as parallel loop support, Task Parallel Library (TPL), Parallel LINQ (PLINQ), and coordination data structures which let developers harness the power of multi-core processors.
]]>
- (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2" OR name of it = "WinXPe") of operating system - not exists key "HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" of native registry - Install - danielheth@bigfix.me - <Unspecified> - 2012-10-03 - <Unspecified> - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Wed, 03 Oct 2012 16:07:23 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - prefetch dotNetFx40_Full_x86_x64.exe sha1:58da3d74db353aad03588cbb5cea8234166d8b99 size:50449456 http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe - -wait __Download\dotNetFx40_Full_x86_x64.exe /quiet /norestart - - - - - - Click - here - to learn more about this software. - - http://www.microsoft.com/en-us/download/details.aspx?id=17718 - -
-
+ + + + + Install Microsoft .NET Framework 4 + The .NET Framework is Microsoft's comprehensive and consistent programming model for building applications that have visually stunning user experiences, seamless and secure communication, and the ability to model a range of business processes.

The .NET Framework 4 works side by side with older Framework versions. Applications that are based on earlier versions of the Framework will continue to run on the version targeted by default.

The Microsoft .NET Framework 4 provides the following new features and improvements:

+
    +
  • Improvements in Common Language Runtime (CLR) and Base Class Library (BCL) +
      +
    • Performance improvement including better multicore support, background garbage collection, and profiler attach on server. +
    • New memory mapped file and numeric types. +
    • Easier debugging including dump debugging, Watson minidumps, mixed mode debugging for 64 bit and code contracts. +
    • For a comprehensive list of enhancements to CLR and BCL go here.
    +
  • Innovations in the Visual Basic and C# languages, for example statement lambdas, implicit line continuations, dynamic dispatch, and named/optional parameters. +
  • Improvements in Data Access and Modeling +
      +
    • The Entity Framework enables developers to program against relational databases using .NET objects and Language Integrated Query (LINQ). It has many new features, including persistence ignorance and POCO support, foreign key associations, lazy loading, test-driven development support, functions in the model, and new LINQ operators. Additional features include better n-tier support with self-tracking entities, customizable code generation using T4 templates, model first development, an improved designer experience, better performance, and pluralization of entity sets. For more information go here. +
    • WCF Data Services is a component of the .NET Framework that enables you to create REST-based services and applications that use the Open Data Protocol (OData) to expose and consume data over the Web. WCF Data Services has many new features, including enhanced BLOB support, data binding, row count, feed customization, projections, and request pipeline improvements. Built-in integration with Microsoft Office 2010 now makes it possible to expose Microsoft Office SharePoint Server data as an OData feed and access that data feed by using the WCF Data Services client library. For more information go here.
    +
  • Enhancements to ASP.NET +
      +
    • More control over HTML, element IDs and custom CSS that make it much easier to create standards-compliant and SEO-friendly web forms. +
    • New dynamic data features including new query filters, entity templates, richer support for Entity Framework 4, and validation and templating features that can be easily applied to existing web forms. +
    • Web forms support for new AJAX library improvements including built-in support for content delivery networks (CDNs). +
    • For a comprehensive list of enhancements to ASP.NET go here.
    +
  • Improvements in Windows Presentation Foundation (WPF) +
      +
    • Added support for Windows 7 multi-touch, ribbon controls, and taskbar extensibility features. +
    • Added support for Surface 2.0 SDK. +
    • New line-of-business controls including charting control, smart edit, data grid, and others that improve the experience for developers who build data centric applications. +
    • Improvements in performance and scalability. +
    • Visual improvements in text clarity, layout pixel snapping, localization, and interoperability. +
    • For a comprehensive list of enhancements to WPF go here.
    +
  • Improvements to Windows Workflow (WF) that enable developers to better host and interact with workflows. These include an improved activity programming model, an improved designer experience, a new flowchart modeling style, an expanded activity palette, workflow-rules integration, and new message correlation features. The .NET Framework 4 also offers significant performance gains for WF-based workflows. For a comprehensive list of enhancements to WF go here. +
  • Improvements to Windows Communication Foundation (WCF) such as support for WCF Workflow Services enabling workflow programs with messaging activities, correlation support. Additionally, .NET Framework 4 provides new WCF features such as service discovery, routing service, REST support, diagnostics, and performance. For a comprehensive list of enhancements to WCF go here. +
  • Innovative new parallel-programming features such as parallel loop support, Task Parallel Library (TPL), Parallel LINQ (PLINQ), and coordination data structures which let developers harness the power of multi-core processors.
]]>
+ (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it) OR name of it = "Win2008R2" OR name of it = "WinXPe") of operating system + not exists key "HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" of native registry + Install + danielheth@bigfix.me + <Unspecified> + 2012-10-03 + <Unspecified> + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 03 Oct 2012 16:07:23 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch dotNetFx40_Full_x86_x64.exe sha1:58da3d74db353aad03588cbb5cea8234166d8b99 size:50449456 http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe + +wait __Download\dotNetFx40_Full_x86_x64.exe /quiet /norestart + + + + + + Click + here + to learn more about this software. + + http://www.microsoft.com/en-us/download/details.aspx?id=17718 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install new wifi certificate - Windows (6247).bes b/Sites/Windows Management/Fixlets/Fixlets/Install new wifi certificate - Windows (6247).bes index 3d5b95d5a..1bf154d76 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Install new wifi certificate - Windows (6247).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Install new wifi certificate - Windows (6247).bes @@ -1,42 +1,42 @@ - - - - - Install new wifi certificate - Windows - - windows of operating system - = "5.1"]]> - ( exists node values of selects "/WLANProfile/name/text()" of xml documents of files whose(name of it as lowercase ends with ".xml") of folders of folders "C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces" ) OR ( exists wifis of adapters of networks ) - Internal - jgstew - 2015-10-12 - - x-fixlet-modification-time - Mon, 12 Oct 2015 20:29:59 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - + + + + + Install new wifi certificate - Windows + + windows of operating system + = "5.1"]]> + ( exists node values of selects "/WLANProfile/name/text()" of xml documents of files whose(name of it as lowercase ends with ".xml") of folders of folders "C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces" ) OR ( exists wifis of adapters of networks ) + Internal + jgstew + 2015-10-12 + + x-fixlet-modification-time + Mon, 12 Oct 2015 20:29:59 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install_ Debug Diagnostic Tool v2 Update 1 TODO_ Add Relevance (6061).bes b/Sites/Windows Management/Fixlets/Fixlets/Install_ Debug Diagnostic Tool v2 Update 1 TODO_ Add Relevance (6061).bes index 956131554..427ec1b89 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Install_ Debug Diagnostic Tool v2 Update 1 TODO_ Add Relevance (6061).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Install_ Debug Diagnostic Tool v2 Update 1 TODO_ Add Relevance (6061).bes @@ -1,51 +1,51 @@ - - - - - Install: Debug Diagnostic Tool v2 Update 1 TODO: Add Relevance - This task will deploy: Debug Diagnostic Tool v2 Update 1.

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - Software Distribution - Software Distribution Wizard - jgs194 - 2014-06-03 - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Tue, 12 May 2015 19:10:12 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - - - -
-
+ + + + + Install: Debug Diagnostic Tool v2 Update 1 TODO: Add Relevance + This task will deploy: Debug Diagnostic Tool v2 Update 1.

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + Software Distribution + Software Distribution Wizard + jgs194 + 2014-06-03 + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Tue, 12 May 2015 19:10:12 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Install_Update_ Debug Diagnostic Tool v2 Update 1 - Windows (6063).bes b/Sites/Windows Management/Fixlets/Fixlets/Install_Update_ Debug Diagnostic Tool v2 Update 1 - Windows (6063).bes index 0477b4244..d09af1087 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Install_Update_ Debug Diagnostic Tool v2 Update 1 - Windows (6063).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Install_Update_ Debug Diagnostic Tool v2 Update 1 - Windows (6063).bes @@ -1,55 +1,55 @@ - - - - - Install/Update: Debug Diagnostic Tool v2 Update 1 - Windows - This task will deploy: Debug Diagnostic Tool v2 Update 1.

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - = "2.1.0.7") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x64 registries;x32 registries)]]> - Software Distribution - Software Distribution Wizard - jgs194 - 2014-06-03 - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Tue, 12 May 2015 19:23:29 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - - - -
-
+ + + + + Install/Update: Debug Diagnostic Tool v2 Update 1 - Windows + This task will deploy: Debug Diagnostic Tool v2 Update 1.

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + = "2.1.0.7") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x64 registries;x32 registries)]]> + Software Distribution + Software Distribution Wizard + jgs194 + 2014-06-03 + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Tue, 12 May 2015 19:23:29 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows (22607).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows (22607).bes index 0a5d7c521..a2ab05e55 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows (22607).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows (22607).bes @@ -1,42 +1,42 @@ - - - - - Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows - This Fixlet adds the currently logged on user, who is an Authorized Admin Requestor, to the Remote Desktop Users group permanently.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists logged on user - /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" - exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry - not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ ); ( ( set of ( /*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) + ( set of ( /*Users and Groups in Remote Desktop Users */ sids of members of local group "remote desktop users" as string) ) ) ) - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to grant the current user authorized admin requestor&nbsp;remote desktop access. - - -wait net localgroup "Remote Desktop Users" "{sid of current user}" /add - - - -
-
+ + + + + Invoke - Add Current Authorized Requestor to Remote Desktop Users - Windows + This Fixlet adds the currently logged on user, who is an Authorized Admin Requestor, to the Remote Desktop Users group permanently.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ ); ( ( set of ( /*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) + ( set of ( /*Users and Groups in Remote Desktop Users */ sids of members of local group "remote desktop users" as string) ) ) ) + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to grant the current user authorized admin requestor&nbsp;remote desktop access. + + +wait net localgroup "Remote Desktop Users" "{sid of current user}" /add + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows (24153).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows (24153).bes index f7faad235..52777b38d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows (24153).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows (24153).bes @@ -1,808 +1,808 @@ - - - - - Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows - This Fixlet adds the currently logged on user, who is an Authorized Admin Requestor, to the administrators group temporarily.

-

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists logged on user - /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" - exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry - not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((if (exists sids of groups of logged on user of active directory) then (sids of groups of logged on user of active directory) else (nothing)) as string); /*User Group Memberships. If Statement helps protect against bogus AD Cache results.*/ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to grant the current user authorized admin requestor&nbsp;administrative rights for 1 hour. - - - - - - - Click - here - to grant the current user authorized admin requestor&nbsp;administrative rights for&nbsp;8 hours. - - - - - - Click - here - to grant the current user authorized admin requestor&nbsp;administrative rights for 1 day. - - - - - - Click - here - to grant the current user authorized admin requestor&nbsp;administrative rights for&nbsp;5 days. - - - - - - Click - here - to grant the current user authorized admin requestor&nbsp;administrative rights permanently. - - - -
-
+ + + + + Invoke - Add Current Authorized Requestor to Temporary Administrators - Windows + This Fixlet adds the currently logged on user, who is an Authorized Admin Requestor, to the administrators group temporarily.

+

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((if (exists sids of groups of logged on user of active directory) then (sids of groups of logged on user of active directory) else (nothing)) as string); /*User Group Memberships. If Statement helps protect against bogus AD Cache results.*/ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights for 1 hour. + + + + + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights for&nbsp;8 hours. + + + + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights for 1 day. + + + + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights for&nbsp;5 days. + + + + + + Click + here + to grant the current user authorized admin requestor&nbsp;administrative rights permanently. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators - Windows (24405).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators - Windows (24405).bes index 0ba034e3c..5b19d247e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators - Windows (24405).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators - Windows (24405).bes @@ -1,41 +1,41 @@ - - - - - Invoke - Add Current User to Administrators - Windows - This Fixlet adds the currently logged on user to the Administrators group.

-

Applicability Note: This Fixlet will only be relevant if the currently logged on user is not a part of the Administrators group. This Fixlet will not be relevant if the currently logged on user is a part of a group that is part of the Administrators Group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists logged on user - /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" - not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) - Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait net localgroup "administrators" "{sid of current user}" /add - -
-
+ + + + + Invoke - Add Current User to Administrators - Windows + This Fixlet adds the currently logged on user to the Administrators group.

+

Applicability Note: This Fixlet will only be relevant if the currently logged on user is not a part of the Administrators group. This Fixlet will not be relevant if the currently logged on user is a part of a group that is part of the Administrators Group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) + Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait net localgroup "administrators" "{sid of current user}" /add + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators Temporarily - Windows (21369).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators Temporarily - Windows (21369).bes index 3787d7f66..7a1b8a8fc 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators Temporarily - Windows (21369).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Administrators Temporarily - Windows (21369).bes @@ -1,101 +1,101 @@ - - - - - Invoke - Add Current User to Administrators Temporarily - Windows - This Fixlet can be paired with the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to temporarily grant users administrative rights to workstations.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists logged on user - not exists members whose (sid of it = sid of logged on user) of local group "administrators" - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to grant the current user administrative rights for 1 hour. - - wait net localgroup "administrators" "{sid of logged on user}" /add - -parameter "Timestamp"="{now as string}" - -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (1 * hour)}" - -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (1 * hour)}" - - - - - - - Click - here - to grant the current user administrative rights for 8 hours. - - wait net localgroup "administrators" "{sid of logged on user}" /add - -parameter "Timestamp"="{now as string}" - -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (8 * hour)}" - -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (8 * hour)}" - - - - - - Click - here - to grant the current user administrative rights for 1 day. - - wait net localgroup "administrators" "{sid of logged on user}" /add - -parameter "Timestamp"="{now as string}" - -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (1 * day)}" - -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (1 * day)}" - - - - - - Click - here - to grant the current user administrative rights for&nbsp;5 days. - - wait net localgroup "administrators" "{sid of logged on user}" /add - -parameter "Timestamp"="{now as string}" - -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (5 * day)}" - -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" -regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (5 * day)}" - - - -
-
+ + + + + Invoke - Add Current User to Administrators Temporarily - Windows + This Fixlet can be paired with the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to temporarily grant users administrative rights to workstations.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + not exists members whose (sid of it = sid of logged on user) of local group "administrators" + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to grant the current user administrative rights for 1 hour. + + wait net localgroup "administrators" "{sid of logged on user}" /add + +parameter "Timestamp"="{now as string}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (1 * hour)}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (1 * hour)}" + + + + + + + Click + here + to grant the current user administrative rights for 8 hours. + + wait net localgroup "administrators" "{sid of logged on user}" /add + +parameter "Timestamp"="{now as string}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (8 * hour)}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (8 * hour)}" + + + + + + Click + here + to grant the current user administrative rights for 1 day. + + wait net localgroup "administrators" "{sid of logged on user}" /add + +parameter "Timestamp"="{now as string}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (1 * day)}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (1 * day)}" + + + + + + Click + here + to grant the current user administrative rights for&nbsp;5 days. + + wait net localgroup "administrators" "{sid of logged on user}" /add + +parameter "Timestamp"="{now as string}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration\{sid of logged on user}]" "Expiration"="{now + (5 * day)}" + +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Start"="{now as string}" +regset "[HKEY_LOCAL_MACHINE\Software\Admin Expiration History\{parameter "Timestamp"}\{sid of logged on user}]" "Expiration"="{now + (5 * day)}" + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Authorized Requestors - Windows (24154).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Authorized Requestors - Windows (24154).bes index c09ade979..53a4557f4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Authorized Requestors - Windows (24154).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Authorized Requestors - Windows (24154).bes @@ -1,186 +1,186 @@ - - - - - Invoke - Add Current User to Authorized Requestors - Windows - This Fixlet marks the currently logged on user as being an authorized temporary administrative rights requestor. This can be paired with the other Authorized Admin Requestor content to manage who is allowed to request administrative rights on an endpoint.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists logged on user - /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" - not exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to add the user as an Authorized Temporary Admin Requestor. - - - - -
-
+ + + + + Invoke - Add Current User to Authorized Requestors - Windows + This Fixlet marks the currently logged on user as being an authorized temporary administrative rights requestor. This can be paired with the other Authorized Admin Requestor content to manage who is allowed to request administrative rights on an endpoint.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + not exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to add the user as an Authorized Temporary Admin Requestor. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Remote Desktop Users - Windows (24406).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Remote Desktop Users - Windows (24406).bes index 33af957fe..d7ff03c4d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Remote Desktop Users - Windows (24406).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Remote Desktop Users - Windows (24406).bes @@ -1,41 +1,41 @@ - - - - - Invoke - Add Current User to Remote Desktop Users - Windows - This Fixlet adds the currently logged on user to the Remote Desktop Users group.

-

Applicability Note: This Fixlet will not be relevant if the currently logged on user is a part of the Remote Desktop Users group or the Administrators Group. This Fixlet will not be relevant if the currently logged on user is a part of a group that is part of the Administrators Group or the Remote Desktop Users group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists logged on user - /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" - not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ ); ( ( set of ( /*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) + ( set of ( /*Users and Groups in Remote Desktop Users */ sids of members of local group "remote desktop users" as string) ) ) ) - Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait net localgroup "Remote Desktop Users" "{sid of current user}" /add - -
-
+ + + + + Invoke - Add Current User to Remote Desktop Users - Windows + This Fixlet adds the currently logged on user to the Remote Desktop Users group.

+

Applicability Note: This Fixlet will not be relevant if the currently logged on user is a part of the Remote Desktop Users group or the Administrators Group. This Fixlet will not be relevant if the currently logged on user is a part of a group that is part of the Administrators Group or the Remote Desktop Users group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ ); ( ( set of ( /*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) + ( set of ( /*Users and Groups in Remote Desktop Users */ sids of members of local group "remote desktop users" as string) ) ) ) + Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait net localgroup "Remote Desktop Users" "{sid of current user}" /add + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Temporary Administrators - Windows (24155).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Temporary Administrators - Windows (24155).bes index d6cd194bd..b01e29b7b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Temporary Administrators - Windows (24155).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Current User to Temporary Administrators - Windows (24155).bes @@ -1,807 +1,807 @@ - - - - - Invoke - Add Current User to Temporary Administrators - Windows - This Fixlet grants a user administrative rights and creates a store of users with their expirations dates/times.

-

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists logged on user - /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" - not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to grant the current user administrative rights for 1 hour. - - - - - - - Click - here - to grant the current user administrative rights for 8 hours. - - - - - - Click - here - to grant the current user administrative rights for 1 day. - - - - - - Click - here - to grant the current user administrative rights for&nbsp;5 days. - - - - - - Click - here - to grant the current user administrative rights for&nbsp;permanently. - - - -
-
+ + + + + Invoke - Add Current User to Temporary Administrators - Windows + This Fixlet grants a user administrative rights and creates a store of users with their expirations dates/times.

+

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + not exists elements of intersection of ( /*IS THE LOGGED IN USER AN ADMINISTRATOR? */ set of ( /* User's SID and Group Memberships */ ((sids of groups of logged on user of active directory) as string); /*User Group Memberships */ (sid of logged on user) as string /*Users SID*/ );( set of (/*Users and Groups in Administrators */ sids of members of local group "administrators" as string) ) ) + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to grant the current user administrative rights for 1 hour. + + + + + + + Click + here + to grant the current user administrative rights for 8 hours. + + + + + + Click + here + to grant the current user administrative rights for 1 day. + + + + + + Click + here + to grant the current user administrative rights for&nbsp;5 days. + + + + + + Click + here + to grant the current user administrative rights for&nbsp;permanently. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Gold Image Hashes to Authorized Files - Windows (21897).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Gold Image Hashes to Authorized Files - Windows (21897).bes index 09fe1c4de..fe1fd68e2 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Gold Image Hashes to Authorized Files - Windows (21897).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Gold Image Hashes to Authorized Files - Windows (21897).bes @@ -1,84 +1,84 @@ - - - - - Invoke - Add Gold Image Hashes to Authorized Files - Windows - - exists main gather service - - RES Software - 2016-10-03 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - > $LogFile -} - -#Get List of Files older than the TimeStamp in the Repository (Initialize Empty Array for PS <= 2.0) -$Files = @(Get-ChildItem -force -Recurse (resolve-path $InputDir).path -Filter $InputFilter -ErrorAction SilentlyContinue) - -foreach ($File in $Files) {{ - write-log "Processing $($File.FullName)" - - write-log "Running: & ""$PwrTech"" /importhashes=""$($File.FullName)"" /createifnotexists" - - $Output = & "$PwrTech" /importhashes="$($File.FullName)" /createifnotexists | Out-String - - write-log $Output - - if (($Output -join "`r`n") -like "*Finished importing file hashes*") {{ - write-log "Success. Deleting $($File.FullName)" - remove-item $File.FullName -erroraction silentlycontinue - } else {{ - write-log "Failure. Leaving $($File.FullName)" - } - - write-log "Done Processing $($File.FullName)" -} -_end_ - -move __createfile run.ps1 - -waithidden powershell.exe -executionpolicy bypass -file "run.ps1" -InputDir "{(value "EnterpriseServerFolder" of it as string & "UploadManagerData\BufferDir\sha1") of key "HKEY_LOCAL_MACHINE\Software\BigFix\Enterprise Server" of x32 registry}"]]> - - - + + + + + Invoke - Add Gold Image Hashes to Authorized Files - Windows + + exists main gather service + + RES Software + 2016-10-03 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + > $LogFile +} + +#Get List of Files older than the TimeStamp in the Repository (Initialize Empty Array for PS <= 2.0) +$Files = @(Get-ChildItem -force -Recurse (resolve-path $InputDir).path -Filter $InputFilter -ErrorAction SilentlyContinue) + +foreach ($File in $Files) {{ + write-log "Processing $($File.FullName)" + + write-log "Running: & ""$PwrTech"" /importhashes=""$($File.FullName)"" /createifnotexists" + + $Output = & "$PwrTech" /importhashes="$($File.FullName)" /createifnotexists | Out-String + + write-log $Output + + if (($Output -join "`r`n") -like "*Finished importing file hashes*") {{ + write-log "Success. Deleting $($File.FullName)" + remove-item $File.FullName -erroraction silentlycontinue + } else {{ + write-log "Failure. Leaving $($File.FullName)" + } + + write-log "Done Processing $($File.FullName)" +} +_end_ + +move __createfile run.ps1 + +waithidden powershell.exe -executionpolicy bypass -file "run.ps1" -InputDir "{(value "EnterpriseServerFolder" of it as string & "UploadManagerData\BufferDir\sha1") of key "HKEY_LOCAL_MACHINE\Software\BigFix\Enterprise Server" of x32 registry}"]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Permanent Administrators to Authorized Requestors - Windows (24156).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Permanent Administrators to Authorized Requestors - Windows (24156).bes index be4e6f295..1afdf7097 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Permanent Administrators to Authorized Requestors - Windows (24156).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Add Permanent Administrators to Authorized Requestors - Windows (24156).bes @@ -1,187 +1,187 @@ - - - - - Invoke - Add Permanent Administrators to Authorized Requestors - Windows - This all all explicit members of the local administrators group as Authorized Temporary Administartive Rights Requestors.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - 0) of ( /* Add All Explicit Members of Administrators */ set of component strings of (sids of members of local group "Administrators") whose (exists user of it) /* Subtract Current Authorized Requestors */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry /* Subtract Current Temporary Administrators */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry /* Subtract Local Administrator (Can't Remove) */ - set of component string of sid of user "Administrator" )]]> - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to add all local administrators&nbsp;as&nbsp;Authorized Temporary Administrative&nbsp;Rights&nbsp;Requestors. - - - - -
-
+ + + + + Invoke - Add Permanent Administrators to Authorized Requestors - Windows + This all all explicit members of the local administrators group as Authorized Temporary Administartive Rights Requestors.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + 0) of ( /* Add All Explicit Members of Administrators */ set of component strings of (sids of members of local group "Administrators") whose (exists user of it) /* Subtract Current Authorized Requestors */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry /* Subtract Current Temporary Administrators */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry /* Subtract Local Administrator (Can't Remove) */ - set of component string of sid of user "Administrator" )]]> + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to add all local administrators&nbsp;as&nbsp;Authorized Temporary Administrative&nbsp;Rights&nbsp;Requestors. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Analyze Application Usage - Windows (21122).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Analyze Application Usage - Windows (21122).bes index db17e80d0..701a1631b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Analyze Application Usage - Windows (21122).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Analyze Application Usage - Windows (21122).bes @@ -1,152 +1,152 @@ - - - - - Invoke - Analyze Application Usage - Windows - This Fixlet does an extraction of Applocker Logs from the system and stores the results in an XML document in the __Global\C3AppUsage folder. This XML document can then be read to track application usage.

-

For general information or to report issues with C3 Application Usage content please visit GitHub here: https://github.com/strawgate/C3-Application-Usage

]]>
- windows of operating system - exists keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry - Internal - 2016-07-16 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - Monday, January 1, 00010001-01-01T06:00:00.0000000Z' - } -} - -function get-ApplockerLogs {{ - param ( - $EventsAfter - ) - $Logs = get-winevent -logname "Microsoft-Windows-AppLocker/EXE and DLL" -FilterXPath "*[System[TimeCreated[@SystemTime > '$EventsAfter']]]" - - return $Logs | sort-object -property TimeCreated -} - -function set-datetime {{ - param ( - $XMLNode, - [DateTime]$DateTime - ) - $XMLNode.Date = $DateTime.ToString("ddd, dd MMM yyyy") - $XMLNode.Time = $DateTime.ToString("HH:mm:ss") - $XMLNode.DateTime = "$($DateTime.GetDateTimeFormats("o"))" -} - -# Load Application Usage Store -$Usage = load-usage -File $UsageFile - -$Applications = $Usage.SelectSingleNode("/Usage/Applications") - -$FirstUpdate = $Usage.SelectSingleNode("/Usage/FirstUpdate") -$LastUpdate = $Usage.SelectSingleNode("/Usage/LastUpdate") - -#Get Events -$Applocker = get-applockerlogs -EventsAfter ($LastUpdate.DateTime) - -if (!($Applocker)) {{ write-verbose "No new logs. Exiting."; exit} - -#Process Events into Application Usage Store -foreach ($Event in $Applocker){{ - - if (!($Event.Message -match '(.*?\\([^\\]*?)) was allowed to run.')) {{ continue; } - - $Hash = ([System.BitConverter]::ToString($Event.Properties[12].Value)).replace("-","") - - if (!($Applications.SelectSingleNode("/Usage/Applications/App[@Hash = '$Hash']"))){{ - #Pull Out Regex Matches - $Exe = $Matches[2]; $Path = $Matches[1]; $Version = "N/A" - - # Get Version if it's available - if ($Event.Properties[14].Value -match "(\d+\.*)+$") {{ $Version = $Matches[0]} - # If we've never set FirstUpdate, set it now - if (!($FirstUpdate.DateTime)) {{ set-datetime -XMLNode $FirstUpdate -DateTime $Event.TimeCreated } - - # Create XML Node - [xml]$XML = @" - - $Path - $Exe - - - - $Version - 1 - -"@ - set-datetime -XMLNode $XML.App -DateTime $Event.TimeCreated - - $Applications.AppendChild($Usage.ImportNode($XML.app, $true)) | out-null - } else {{ - $Node = $Applications.SelectSingleNode("/Usage/Applications/App[@Hash = '$Hash']") - - set-datetime -XMLNode $Node -DateTime $Event.TimeCreated - - $Node.Count = "$([int]$Node.Count + 1)" - } -} - -#Save TimeStamp -Set-datetime -XMLNode $LastUpdate -DateTime $Event.TimeCreated - -#Output updated Application Usage Store -#$Usage.OuterXml > $Usage -$Usage.Save($UsageFile) - -_end_ - -move __createfile powershell.ps1 - -override wait -hidden=true -completion=job -wait "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -NoProfile -File powershell.ps1 -UsageFile "{parameter "Storage"}\AppUsage.xml"]]> - - -
-
+ + + + + Invoke - Analyze Application Usage - Windows + This Fixlet does an extraction of Applocker Logs from the system and stores the results in an XML document in the __Global\C3AppUsage folder. This XML document can then be read to track application usage.

+

For general information or to report issues with C3 Application Usage content please visit GitHub here: https://github.com/strawgate/C3-Application-Usage

]]>
+ windows of operating system + exists keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + Internal + 2016-07-16 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + Monday, January 1, 00010001-01-01T06:00:00.0000000Z' + } +} + +function get-ApplockerLogs {{ + param ( + $EventsAfter + ) + $Logs = get-winevent -logname "Microsoft-Windows-AppLocker/EXE and DLL" -FilterXPath "*[System[TimeCreated[@SystemTime > '$EventsAfter']]]" + + return $Logs | sort-object -property TimeCreated +} + +function set-datetime {{ + param ( + $XMLNode, + [DateTime]$DateTime + ) + $XMLNode.Date = $DateTime.ToString("ddd, dd MMM yyyy") + $XMLNode.Time = $DateTime.ToString("HH:mm:ss") + $XMLNode.DateTime = "$($DateTime.GetDateTimeFormats("o"))" +} + +# Load Application Usage Store +$Usage = load-usage -File $UsageFile + +$Applications = $Usage.SelectSingleNode("/Usage/Applications") + +$FirstUpdate = $Usage.SelectSingleNode("/Usage/FirstUpdate") +$LastUpdate = $Usage.SelectSingleNode("/Usage/LastUpdate") + +#Get Events +$Applocker = get-applockerlogs -EventsAfter ($LastUpdate.DateTime) + +if (!($Applocker)) {{ write-verbose "No new logs. Exiting."; exit} + +#Process Events into Application Usage Store +foreach ($Event in $Applocker){{ + + if (!($Event.Message -match '(.*?\\([^\\]*?)) was allowed to run.')) {{ continue; } + + $Hash = ([System.BitConverter]::ToString($Event.Properties[12].Value)).replace("-","") + + if (!($Applications.SelectSingleNode("/Usage/Applications/App[@Hash = '$Hash']"))){{ + #Pull Out Regex Matches + $Exe = $Matches[2]; $Path = $Matches[1]; $Version = "N/A" + + # Get Version if it's available + if ($Event.Properties[14].Value -match "(\d+\.*)+$") {{ $Version = $Matches[0]} + # If we've never set FirstUpdate, set it now + if (!($FirstUpdate.DateTime)) {{ set-datetime -XMLNode $FirstUpdate -DateTime $Event.TimeCreated } + + # Create XML Node + [xml]$XML = @" + + $Path + $Exe + + + + $Version + 1 + +"@ + set-datetime -XMLNode $XML.App -DateTime $Event.TimeCreated + + $Applications.AppendChild($Usage.ImportNode($XML.app, $true)) | out-null + } else {{ + $Node = $Applications.SelectSingleNode("/Usage/Applications/App[@Hash = '$Hash']") + + set-datetime -XMLNode $Node -DateTime $Event.TimeCreated + + $Node.Count = "$([int]$Node.Count + 1)" + } +} + +#Save TimeStamp +Set-datetime -XMLNode $LastUpdate -DateTime $Event.TimeCreated + +#Output updated Application Usage Store +#$Usage.OuterXml > $Usage +$Usage.Save($UsageFile) + +_end_ + +move __createfile powershell.ps1 + +override wait +hidden=true +completion=job +wait "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -NoProfile -File powershell.ps1 -UsageFile "{parameter "Storage"}\AppUsage.xml"]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Applocker Rule Creation From Blocks and Warnings - Windows (21336).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Applocker Rule Creation From Blocks and Warnings - Windows (21336).bes index 992c40ec6..92ffdf3a5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Applocker Rule Creation From Blocks and Warnings - Windows (21336).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Applocker Rule Creation From Blocks and Warnings - Windows (21336).bes @@ -1,250 +1,250 @@ - - - - - Invoke - Applocker Rule Creation From Blocks and Warnings - Windows - Creates BigFix Fixlets for denied or audited Applocker events on the target system.

-

Fixlets are placed in the BES Client Directory under __BESData\__Global\ApplockerGeneratedRules

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - Internal - 2016-05-28 - BESC - - - Click - here - to deploy this action. - - // Enter your action script here -action uses wow64 redirection {not x64 of operating system} - -parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" -parameter "Storage"="{pathname of data folder of client}\__Global\ApplockerGeneratedRules" - -createfile until __end__ -Function Remove-InvalidFileNameChars {{ -<# -.SYNOPSIS -Removes characters considered invalid by the Windows Operating System for file names. - -.DESCRIPTION -Takes a string over the pipline or as a parameter and removes invalid characters from the file name. -This sanitization allows you safely take the name you have passed and use it to save a file to disk. - -.PARAMETER Name -A string you wish to escape -#> - param( - [Parameter(Mandatory=$true, - Position=0, - ValueFromPipeline=$true, - ValueFromPipelineByPropertyName=$true)] - [String]$Name - ) - - $invalidChars = [IO.Path]::GetInvalidFileNameChars() -join '' - $re = "[{{0}%]" -f [RegEx]::Escape($invalidChars) - return ($Name -replace $re) -} - -Function Merge-AppLockerPolicy {{ - Param ( - $Policies - ) - $ExeMethod = "" - $MsiMethod = "" - $ScriptMethod = "" - $AppxMethod = "" - - $ExeRules = "" - $MsiRules = "" - $ScriptRules = "" - $AppXRules = "" - - foreach ($Policy in $Policies) {{ - $xml = select-xml -Path $Ruleset.fullname -XPath "/AppLockerPolicy/RuleCollection" - - foreach ($Collection in $XML) {{ - - if ($Collection.Node.Type -eq "Exe") {{ - if ($Collection.Node.InnerXml.trim()) {{$ExeRules += $Collection.Node.InnerXml.tostring()} - if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $ExeMethod -ne "Enabled") {{ $ExeMethod = 'EnforcementMode="AuditOnly"' } - if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $ExeMethod = 'EnforcementMode="Enabled"' } - } - - if ($Collection.Node.Type -eq "Script") {{ - if ($Collection.Node.InnerXml.trim()) {{$ScriptRules += $Collection.Node.InnerXml.tostring()} - if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $ScriptMethod -ne "Enabled") {{ $ScriptMethod = 'EnforcementMode="AuditOnly"' } - if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $ScriptMethod = 'EnforcementMode="Enabled"' } - } - - if ($Collection.Node.Type -eq "Msi") {{ - if ($Collection.Node.InnerXml.trim()) {{$MsiRules += $Collection.Node.InnerXml.tostring()} - if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $MsiMethod -ne "Enabled") {{ $MsiMethod = 'EnforcementMode="AuditOnly"' } - if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $MsiMethod = 'EnforcementMode="Enabled"' } - } - - if ($Collection.Node.Type -eq "AppX") {{ - if ($Collection.Node.InnerXml.trim()) {{$AppXRules += $Xml.Node.InnerXml.tostring()} - if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $AppXMethod -ne "Enabled") {{ $AppXMethod = 'EnforcementMode="AuditOnly"' } - if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $AppXMethod = 'EnforcementMode="Enabled"' } - } - - } - } - - $Policy = @" -<AppLockerPolicy Version="1"> - <RuleCollection Type="Exe" $ExeMethod> - $ExeRules - </RuleCollection> - <RuleCollection Type="Msi" $MsiMethod> - $MsiRules - </RuleCollection> - <RuleCollection Type="Script" $ScriptMethod> - $ScriptRules - </RuleCollection> - <RuleCollection Type="Appx" $AppxMethod> - $AppxRules - </RuleCollection> -</AppLockerPolicy> -"@ - return $Policy -} - -Function New-ApplockerFixlet {{ - Param ( - $Type, - $Name, - $XML - ) - -$Fixlet = @" -<?xml version="1.0" encoding="UTF-8"?> -<BES xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="BES.xsd"> - <Fixlet> - <Title>Config - Cache Applocker Rules - $Type, $Name - Windows</Title> - <Description><![CDATA[<P>This policy adds a policy to Applocker. Specifically it provides a rule for $Type</P><br>The rule self describes as: $Name]]></Description> - <Relevance>Windows of Operating System</Relevance> - <Relevance><![CDATA[(not exists file (pathname of data folder of client & "\__Global\Applocker\$(Remove-InvalidFileNameChars "$Type-$Name").xml"))]]></Relevance> - <Category>Application Whitelisting</Category> - <Source>Internal</Source> - <SourceID></SourceID> - <SourceReleaseDate>2016-05-10</SourceReleaseDate> - <SourceSeverity></SourceSeverity> - <CVENames></CVENames> - <SANSID></SANSID> - <MIMEField> - <Name>x-fixlet-modification-time</Name> - <Value>Tue, 17 May 2016 21:39:44 +0000</Value> - </MIMEField> - <Domain>BESC</Domain> - <DefaultAction ID="Action1"> - <Description> - <PreLink>Click </PreLink> - <Link>here</Link> - <PostLink> to deploy this action.</PostLink> - </Description> - <ActionScript MIMEType="application/x-Fixlet-Windows-Shell"><![CDATA[action uses wow64 redirection {{not x64 of operating system} - -parameter "RuleName"="$(Remove-InvalidFileNameChars "$Type-$Name")" -parameter "Storage"="{{pathname of data folder of client}\__Global\Applocker" - -delete __createfile - -createfile until _end_ -<AppLockerPolicy Version="1"> -<RuleCollection Type="$Type"> -$($XML) -</RuleCollection> -</AppLockerPolicy> -_end_ - -folder create "{{parameter "Storage"}" - -delete "{{parameter "Storage"}\{{parameter "RuleName"}.xml" -move __createfile "{{parameter "Storage"}\{{parameter "RuleName"}.xml" - -]]></ActionScript> - </DefaultAction> - </Fixlet> -</BES> -"@ - return $Fixlet -} -__end__ - -delete Applocker.psm1 -move __createfile Applocker.psm1 - -createfile until __end__ -param ( - $OutDir = ".\Output" -) - -import-module applocker -import-module ".\Applocker.psm1" -force - -$Policy = Get-AppLockerFileInformation -EventLog -LogPath "Microsoft-Windows-AppLocker/EXE and DLL" -EventType Denied, Audited | New-AppLockerPolicy -RuleType Publisher, Hash, Path -User Everyone -Optimize - -foreach ($CollectionType in $Policy.RuleCollectionTypes){{ - foreach($Rule in $Policy.GetRuleCollection($CollectionType)) {{ - $Action = $Rule.Action - $Name = $Rule.Name - $Type = $CollectionType - $ID = $Rule.ID - - $Fixlet = New-AppLockerFixlet -Name $Name -Type $Type -Xml $Rule.ToXML() - - $Fixlet > "$OutDir\$(Remove-InvalidFileNameChars "$Type-$Name.bes")" - } -} - -$Policy = Get-AppLockerFileInformation -EventLog -LogPath "Microsoft-Windows-AppLocker/Msi and Script" -EventType Denied, Audited | New-AppLockerPolicy -RuleType Publisher, Hash, Path -User Everyone -Optimize - -foreach ($CollectionType in $Policy.RuleCollectionTypes){{ - foreach($Rule in $Policy.GetRuleCollection($CollectionType)) {{ - $Action = $Rule.Action - $Name = $Rule.Name - $Type = $CollectionType - $ID = $Rule.ID - - $Fixlet = New-AppLockerFixlet -Name $Name -Type $Type -Xml $Rule.ToXML() - - $Fixlet > "$OutDir\$(Remove-InvalidFileNameChars "$Type-$Name.bes")" - } -} -__end__ - -delete GenerateRules.ps1 -move __createfile GenerateRules.ps1 - -folder create "{parameter "Storage"}" - -// -// Configure Upload Manager -// - -setting "_BESClient_ArchiveManager_MaxArchiveSize"="2097152" on "{parameter "action issue date" of action}" for client -setting "_BESClient_ArchiveManager_OperatingMode"="2" on "{parameter "action issue date" of action}" for client -setting "_BESClient_ArchiveManager_FileSet-APPLOCKER"="{parameter "Storage"}\*.*" on "{parameter "action issue date" of action}" for client - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File GenerateRules.ps1 -OutDir "{parameter "Storage"}" - -archive now - - - -
-
+ + + + + Invoke - Applocker Rule Creation From Blocks and Warnings - Windows + Creates BigFix Fixlets for denied or audited Applocker events on the target system.

+

Fixlets are placed in the BES Client Directory under __BESData\__Global\ApplockerGeneratedRules

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Applocker 

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + Internal + 2016-05-28 + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" +parameter "Storage"="{pathname of data folder of client}\__Global\ApplockerGeneratedRules" + +createfile until __end__ +Function Remove-InvalidFileNameChars {{ +<# +.SYNOPSIS +Removes characters considered invalid by the Windows Operating System for file names. + +.DESCRIPTION +Takes a string over the pipline or as a parameter and removes invalid characters from the file name. +This sanitization allows you safely take the name you have passed and use it to save a file to disk. + +.PARAMETER Name +A string you wish to escape +#> + param( + [Parameter(Mandatory=$true, + Position=0, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true)] + [String]$Name + ) + + $invalidChars = [IO.Path]::GetInvalidFileNameChars() -join '' + $re = "[{{0}%]" -f [RegEx]::Escape($invalidChars) + return ($Name -replace $re) +} + +Function Merge-AppLockerPolicy {{ + Param ( + $Policies + ) + $ExeMethod = "" + $MsiMethod = "" + $ScriptMethod = "" + $AppxMethod = "" + + $ExeRules = "" + $MsiRules = "" + $ScriptRules = "" + $AppXRules = "" + + foreach ($Policy in $Policies) {{ + $xml = select-xml -Path $Ruleset.fullname -XPath "/AppLockerPolicy/RuleCollection" + + foreach ($Collection in $XML) {{ + + if ($Collection.Node.Type -eq "Exe") {{ + if ($Collection.Node.InnerXml.trim()) {{$ExeRules += $Collection.Node.InnerXml.tostring()} + if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $ExeMethod -ne "Enabled") {{ $ExeMethod = 'EnforcementMode="AuditOnly"' } + if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $ExeMethod = 'EnforcementMode="Enabled"' } + } + + if ($Collection.Node.Type -eq "Script") {{ + if ($Collection.Node.InnerXml.trim()) {{$ScriptRules += $Collection.Node.InnerXml.tostring()} + if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $ScriptMethod -ne "Enabled") {{ $ScriptMethod = 'EnforcementMode="AuditOnly"' } + if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $ScriptMethod = 'EnforcementMode="Enabled"' } + } + + if ($Collection.Node.Type -eq "Msi") {{ + if ($Collection.Node.InnerXml.trim()) {{$MsiRules += $Collection.Node.InnerXml.tostring()} + if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $MsiMethod -ne "Enabled") {{ $MsiMethod = 'EnforcementMode="AuditOnly"' } + if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $MsiMethod = 'EnforcementMode="Enabled"' } + } + + if ($Collection.Node.Type -eq "AppX") {{ + if ($Collection.Node.InnerXml.trim()) {{$AppXRules += $Xml.Node.InnerXml.tostring()} + if ($Collection.Node.EnforcementMode -eq "AuditOnly" -and $AppXMethod -ne "Enabled") {{ $AppXMethod = 'EnforcementMode="AuditOnly"' } + if ($Collection.Node.EnforcementMode -eq "Enabled") {{ $AppXMethod = 'EnforcementMode="Enabled"' } + } + + } + } + + $Policy = @" +<AppLockerPolicy Version="1"> + <RuleCollection Type="Exe" $ExeMethod> + $ExeRules + </RuleCollection> + <RuleCollection Type="Msi" $MsiMethod> + $MsiRules + </RuleCollection> + <RuleCollection Type="Script" $ScriptMethod> + $ScriptRules + </RuleCollection> + <RuleCollection Type="Appx" $AppxMethod> + $AppxRules + </RuleCollection> +</AppLockerPolicy> +"@ + return $Policy +} + +Function New-ApplockerFixlet {{ + Param ( + $Type, + $Name, + $XML + ) + +$Fixlet = @" +<?xml version="1.0" encoding="UTF-8"?> +<BES xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="BES.xsd"> + <Fixlet> + <Title>Config - Cache Applocker Rules - $Type, $Name - Windows</Title> + <Description><![CDATA[<P>This policy adds a policy to Applocker. Specifically it provides a rule for $Type</P><br>The rule self describes as: $Name]]></Description> + <Relevance>Windows of Operating System</Relevance> + <Relevance><![CDATA[(not exists file (pathname of data folder of client & "\__Global\Applocker\$(Remove-InvalidFileNameChars "$Type-$Name").xml"))]]></Relevance> + <Category>Application Whitelisting</Category> + <Source>Internal</Source> + <SourceID></SourceID> + <SourceReleaseDate>2016-05-10</SourceReleaseDate> + <SourceSeverity></SourceSeverity> + <CVENames></CVENames> + <SANSID></SANSID> + <MIMEField> + <Name>x-fixlet-modification-time</Name> + <Value>Tue, 17 May 2016 21:39:44 +0000</Value> + </MIMEField> + <Domain>BESC</Domain> + <DefaultAction ID="Action1"> + <Description> + <PreLink>Click </PreLink> + <Link>here</Link> + <PostLink> to deploy this action.</PostLink> + </Description> + <ActionScript MIMEType="application/x-Fixlet-Windows-Shell"><![CDATA[action uses wow64 redirection {{not x64 of operating system} + +parameter "RuleName"="$(Remove-InvalidFileNameChars "$Type-$Name")" +parameter "Storage"="{{pathname of data folder of client}\__Global\Applocker" + +delete __createfile + +createfile until _end_ +<AppLockerPolicy Version="1"> +<RuleCollection Type="$Type"> +$($XML) +</RuleCollection> +</AppLockerPolicy> +_end_ + +folder create "{{parameter "Storage"}" + +delete "{{parameter "Storage"}\{{parameter "RuleName"}.xml" +move __createfile "{{parameter "Storage"}\{{parameter "RuleName"}.xml" + +]]></ActionScript> + </DefaultAction> + </Fixlet> +</BES> +"@ + return $Fixlet +} +__end__ + +delete Applocker.psm1 +move __createfile Applocker.psm1 + +createfile until __end__ +param ( + $OutDir = ".\Output" +) + +import-module applocker +import-module ".\Applocker.psm1" -force + +$Policy = Get-AppLockerFileInformation -EventLog -LogPath "Microsoft-Windows-AppLocker/EXE and DLL" -EventType Denied, Audited | New-AppLockerPolicy -RuleType Publisher, Hash, Path -User Everyone -Optimize + +foreach ($CollectionType in $Policy.RuleCollectionTypes){{ + foreach($Rule in $Policy.GetRuleCollection($CollectionType)) {{ + $Action = $Rule.Action + $Name = $Rule.Name + $Type = $CollectionType + $ID = $Rule.ID + + $Fixlet = New-AppLockerFixlet -Name $Name -Type $Type -Xml $Rule.ToXML() + + $Fixlet > "$OutDir\$(Remove-InvalidFileNameChars "$Type-$Name.bes")" + } +} + +$Policy = Get-AppLockerFileInformation -EventLog -LogPath "Microsoft-Windows-AppLocker/Msi and Script" -EventType Denied, Audited | New-AppLockerPolicy -RuleType Publisher, Hash, Path -User Everyone -Optimize + +foreach ($CollectionType in $Policy.RuleCollectionTypes){{ + foreach($Rule in $Policy.GetRuleCollection($CollectionType)) {{ + $Action = $Rule.Action + $Name = $Rule.Name + $Type = $CollectionType + $ID = $Rule.ID + + $Fixlet = New-AppLockerFixlet -Name $Name -Type $Type -Xml $Rule.ToXML() + + $Fixlet > "$OutDir\$(Remove-InvalidFileNameChars "$Type-$Name.bes")" + } +} +__end__ + +delete GenerateRules.ps1 +move __createfile GenerateRules.ps1 + +folder create "{parameter "Storage"}" + +// +// Configure Upload Manager +// + +setting "_BESClient_ArchiveManager_MaxArchiveSize"="2097152" on "{parameter "action issue date" of action}" for client +setting "_BESClient_ArchiveManager_OperatingMode"="2" on "{parameter "action issue date" of action}" for client +setting "_BESClient_ArchiveManager_FileSet-APPLOCKER"="{parameter "Storage"}\*.*" on "{parameter "action issue date" of action}" for client + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File GenerateRules.ps1 -OutDir "{parameter "Storage"}" + +archive now + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Configuration Probe - Windows (20701).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Configuration Probe - Windows (20701).bes index 4dd98dd7b..00a1c220a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Configuration Probe - Windows (20701).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Configuration Probe - Windows (20701).bes @@ -1,78 +1,78 @@ - - - - - Invoke - Bitlocker Configuration Probe - Windows - This probe grabs the current bitlocker configuration of the system in it's raw format and outputs it to disk to be gathered by analyses.

-

Creates a Volume-Status.txt file in __BESData.

-

Example

-
    -
  • C-Status.txt -
  • D-Status.txt
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
- windows of operating system - = 1) else (false)]]> - = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> - Disk Encryption - Internal - 2016-04-30 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - "$OutFolder\$($Volume[0])-Status.txt" -} -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}"]]> - - -
-
+ + + + + Invoke - Bitlocker Configuration Probe - Windows + This probe grabs the current bitlocker configuration of the system in it's raw format and outputs it to disk to be gathered by analyses.

+

Creates a Volume-Status.txt file in __BESData.

+

Example

+
    +
  • C-Status.txt +
  • D-Status.txt
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> + Disk Encryption + Internal + 2016-04-30 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + "$OutFolder\$($Volume[0])-Status.txt" +} +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}"]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt Secondary Volume - Windows (21696).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt Secondary Volume - Windows (21696).bes index b59dcf55a..645dfce4e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt Secondary Volume - Windows (21696).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt Secondary Volume - Windows (21696).bes @@ -1,255 +1,255 @@ - - - - - Invoke - Bitlocker Encrypt Secondary Volume - Windows - This fixlet will encrypt the specified drive of a device.

-

The recovery password generated by action 1 is available via the Analysis: Bitlocker - Recovery Password - Windows

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
- windows of operating system - = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) /* Correct version of Windows */]]> - (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") /* TPM Active, Owned, and Enabled */ - = 1) else (false) /* There is a drive to encrypt... This should probable be made more specific*/]]> - 10*minute /* Bitlocker status doesn't change immediately after first reboot */]]> - - - Disk Encryption - Internal - 2016-04-29 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to encrypt the specified drive using the TPM and a random recovery password. - - "{parameter "InstanceStorage"}\Status.log" -_end_ - -move __createfile status.bat - -createfile until _end_ -manage-bde -on {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Enable.log" -_end_ - -move __createfile enable.bat - -createfile until _end_ -manage-bde -off {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Terminate.log -manage-bde -protectors {parameter "Volume" of action} -delete -type -recoverypassword >> "{parameter "InstanceStorage"}\Terminate.log -_end_ - -move __createfile terminate.bat - -createfile until _end_ -manage-bde -protectors -add {parameter "Volume" of action} -recoverypassword > "{parameter "InstanceStorage"}\AddRecoveryKey.log -_end_ - -move __createfile addrecoverykey.bat - -// -// Get BitLocker Status -// - -wait status.bat - -if {((not exists lines containing "Encryption in Progress" of it) and (not exists lines containing "NOTE: Encryption will begin after the hardware test succeeds." of it)) of file "Status.log" of folder (parameter "InstanceStorage") } - - // DO NOT CONTINUE IF THERE IS AN EXISTING UPLOAD IN PROGRESS - continue if {not exists setting "_BESClient_UploadManager_Progress" of client} - - wait enable.bat - - // No existing recovery key -- add one - if { not exists lines containing "Numerical Password" of file "Status.log" of folder (parameter "InstanceStorage")} - wait addrecoverykey.bat - endif - - // If the action dies here there is a bootable CD or DVD in the drive - if { exists lines containing "ERROR: BitLocker detected a bootable CD or DVD on the computer." of file "Enable.log" of folder (parameter "InstanceStorage")} - // BitLocker is in inconsistent state -- kill encryption - wait terminate.bat - archive now - exit 20 - endif - - // If the action dies here there was another error - if { exists lines containing "ERROR" of file "Enable.log" of folder (parameter "InstanceStorage")} - // BitLocker is in inconsistent state -- kill encryption - wait terminate.bat - archive now - exit 10 - endif - - archive now - - action requires restart - -else - - archive now - - action requires restart - -endif]]> - - - - Click - here - to encrypt the specified drive using just the TPM. - - "{parameter "InstanceStorage"}\Status.log" -_end_ - -move __createfile status.bat - -createfile until _end_ -manage-bde -on {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Enable.log" -_end_ - -move __createfile enable.bat - -createfile until _end_ -manage-bde -off {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Terminate.log -manage-bde -protectors {parameter "Volume" of action} -delete -type -recoverypassword >> "{parameter "InstanceStorage"}\Terminate.log -_end_ - -move __createfile terminate.bat - -createfile until _end_ -manage-bde -protectors -add {parameter "Volume" of action} -recoverypassword > "{parameter "InstanceStorage"}\AddRecoveryKey.log -_end_ - -move __createfile addrecoverykey.bat - -// -// Get BitLocker Status -// - -wait status.bat - -if {((not exists lines containing "Encryption in Progress" of it) and (not exists lines containing "NOTE: Encryption will begin after the hardware test succeeds." of it)) of file "Status.log" of folder (parameter "InstanceStorage") } - - // DO NOT CONTINUE IF THERE IS AN EXISTING UPLOAD IN PROGRESS - continue if {not exists setting "_BESClient_UploadManager_Progress" of client} - - wait enable.bat - - // If the action dies here there is a bootable CD or DVD in the drive - if { exists lines containing "ERROR: BitLocker detected a bootable CD or DVD on the computer." of file "Enable.log" of folder (parameter "InstanceStorage")} - // BitLocker is in inconsistent state -- kill encryption - wait terminate.bat - archive now - exit 20 - endif - - // If the action dies here there was another error - if { exists lines containing "ERROR" of file "Enable.log" of folder (parameter "InstanceStorage")} - // BitLocker is in inconsistent state -- kill encryption - wait terminate.bat - archive now - exit 10 - endif - - archive now - - action requires restart - -else - - archive now - - action requires restart - -endif]]> - -
-
+ + + + + Invoke - Bitlocker Encrypt Secondary Volume - Windows + This fixlet will encrypt the specified drive of a device.

+

The recovery password generated by action 1 is available via the Analysis: Bitlocker - Recovery Password - Windows

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) /* Correct version of Windows */]]> + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") /* TPM Active, Owned, and Enabled */ + = 1) else (false) /* There is a drive to encrypt... This should probable be made more specific*/]]> + 10*minute /* Bitlocker status doesn't change immediately after first reboot */]]> + + + Disk Encryption + Internal + 2016-04-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to encrypt the specified drive using the TPM and a random recovery password. + + "{parameter "InstanceStorage"}\Status.log" +_end_ + +move __createfile status.bat + +createfile until _end_ +manage-bde -on {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Enable.log" +_end_ + +move __createfile enable.bat + +createfile until _end_ +manage-bde -off {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Terminate.log +manage-bde -protectors {parameter "Volume" of action} -delete -type -recoverypassword >> "{parameter "InstanceStorage"}\Terminate.log +_end_ + +move __createfile terminate.bat + +createfile until _end_ +manage-bde -protectors -add {parameter "Volume" of action} -recoverypassword > "{parameter "InstanceStorage"}\AddRecoveryKey.log +_end_ + +move __createfile addrecoverykey.bat + +// +// Get BitLocker Status +// + +wait status.bat + +if {((not exists lines containing "Encryption in Progress" of it) and (not exists lines containing "NOTE: Encryption will begin after the hardware test succeeds." of it)) of file "Status.log" of folder (parameter "InstanceStorage") } + + // DO NOT CONTINUE IF THERE IS AN EXISTING UPLOAD IN PROGRESS + continue if {not exists setting "_BESClient_UploadManager_Progress" of client} + + wait enable.bat + + // No existing recovery key -- add one + if { not exists lines containing "Numerical Password" of file "Status.log" of folder (parameter "InstanceStorage")} + wait addrecoverykey.bat + endif + + // If the action dies here there is a bootable CD or DVD in the drive + if { exists lines containing "ERROR: BitLocker detected a bootable CD or DVD on the computer." of file "Enable.log" of folder (parameter "InstanceStorage")} + // BitLocker is in inconsistent state -- kill encryption + wait terminate.bat + archive now + exit 20 + endif + + // If the action dies here there was another error + if { exists lines containing "ERROR" of file "Enable.log" of folder (parameter "InstanceStorage")} + // BitLocker is in inconsistent state -- kill encryption + wait terminate.bat + archive now + exit 10 + endif + + archive now + + action requires restart + +else + + archive now + + action requires restart + +endif]]> + + + + Click + here + to encrypt the specified drive using just the TPM. + + "{parameter "InstanceStorage"}\Status.log" +_end_ + +move __createfile status.bat + +createfile until _end_ +manage-bde -on {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Enable.log" +_end_ + +move __createfile enable.bat + +createfile until _end_ +manage-bde -off {parameter "Volume" of action} > "{parameter "InstanceStorage"}\Terminate.log +manage-bde -protectors {parameter "Volume" of action} -delete -type -recoverypassword >> "{parameter "InstanceStorage"}\Terminate.log +_end_ + +move __createfile terminate.bat + +createfile until _end_ +manage-bde -protectors -add {parameter "Volume" of action} -recoverypassword > "{parameter "InstanceStorage"}\AddRecoveryKey.log +_end_ + +move __createfile addrecoverykey.bat + +// +// Get BitLocker Status +// + +wait status.bat + +if {((not exists lines containing "Encryption in Progress" of it) and (not exists lines containing "NOTE: Encryption will begin after the hardware test succeeds." of it)) of file "Status.log" of folder (parameter "InstanceStorage") } + + // DO NOT CONTINUE IF THERE IS AN EXISTING UPLOAD IN PROGRESS + continue if {not exists setting "_BESClient_UploadManager_Progress" of client} + + wait enable.bat + + // If the action dies here there is a bootable CD or DVD in the drive + if { exists lines containing "ERROR: BitLocker detected a bootable CD or DVD on the computer." of file "Enable.log" of folder (parameter "InstanceStorage")} + // BitLocker is in inconsistent state -- kill encryption + wait terminate.bat + archive now + exit 20 + endif + + // If the action dies here there was another error + if { exists lines containing "ERROR" of file "Enable.log" of folder (parameter "InstanceStorage")} + // BitLocker is in inconsistent state -- kill encryption + wait terminate.bat + archive now + exit 10 + endif + + archive now + + action requires restart + +else + + archive now + + action requires restart + +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt System Volume - Windows (23093).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt System Volume - Windows (23093).bes index a810d2418..e3bb3b3ef 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt System Volume - Windows (23093).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Encrypt System Volume - Windows (23093).bes @@ -1,156 +1,156 @@ - - - - - Invoke - Bitlocker Encrypt System Volume - Windows - This fixlet will encrypt the system drive of a device.

-

If you choose to encrypt using the TPM and a random recovery password you should enable Analysis: Bitlocker - Recovery Password - Windows

-

The following Exit Codes can be returned:

-

10 - Encryption was Terminated for some reason

-

20 - Encryption was Terminated due to a bootable CD/DVD in the system

-

30 - Encryption was Terminated due to a lack of a numerical password on the system

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
- windows of operating system - = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) /* Correct version of Windows */]]> - (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") /* TPM Active, Owned, and Enabled */ - = 1) else (false) /* There is a drive to encrypt... This should probable be made more specific*/]]> - - - - Disk Encryption - Internal - 2016-04-29 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to encrypt the system drive using the TPM and a random recovery password. - - "{parameter "Storage"}\Status.log" - -_end_ - -move __createfile status.bat - -// -// Write Termination Script -// -delete terminate.bat - -createfile until _end_ - -manage-bde -off {name of drive of system folder} > "{parameter "Storage"}\Terminate.log -manage-bde -protectors {name of drive of system folder} -delete -type recoverypassword >> "{parameter "Storage"}\Terminate.log - -_end_ - -move __createfile terminate.bat - - -// -// Write Enable Script -// - -delete enable.bat - -createfile until _end_ - -manage-bde -protectors {name of drive of system folder} -delete -type recoverypassword -manage-bde -on {name of drive of system folder} -recoverypassword > "{parameter "Storage"}\Enable.log" - -_end_ - -move __createfile enable.bat - -// -// Get BitLocker Status -// - -wait status.bat - -if {((not exists lines containing "Encryption in Progress" of it) and (not exists lines containing "NOTE: Encryption will begin after the hardware test succeeds." of it)) of file "Status.log" of folder (parameter "Storage") } - - // DO NOT CONTINUE IF THERE IS AN EXISTING UPLOAD IN PROGRESS - continue if {not exists setting "_BESClient_UploadManager_Progress" of client} - - wait enable.bat - - // If the action dies here there was a failure adding the Numerical Password - if { not exists lines containing "Numerical Password" of file "Enable.log" of folder (parameter "Storage")} - wait terminate.bat - archive now - exit 30 - endif - - // If the action dies here there is a bootable CD or DVD in the drive - if { exists lines containing "ERROR: BitLocker detected a bootable CD or DVD on the computer." of file "Enable.log" of folder (parameter "Storage")} - wait terminate.bat - archive now - exit 20 - endif - - // If the action dies here there was another error - if { exists lines containing "ERROR" of file "Enable.log" of folder (parameter "Storage")} - wait terminate.bat - archive now - exit 10 - endif - - archive now - - notify client ForceRefresh - - action requires restart - -else - - archive now - - action requires restart - -endif]]> - - -
-
+ + + + + Invoke - Bitlocker Encrypt System Volume - Windows + This fixlet will encrypt the system drive of a device.

+

If you choose to encrypt using the TPM and a random recovery password you should enable Analysis: Bitlocker - Recovery Password - Windows

+

The following Exit Codes can be returned:

+

10 - Encryption was Terminated for some reason

+

20 - Encryption was Terminated due to a bootable CD/DVD in the system

+

30 - Encryption was Terminated due to a lack of a numerical password on the system

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) )) /* Correct version of Windows */]]> + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") /* TPM Active, Owned, and Enabled */ + = 1) else (false) /* There is a drive to encrypt... This should probable be made more specific*/]]> + + + + Disk Encryption + Internal + 2016-04-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to encrypt the system drive using the TPM and a random recovery password. + + "{parameter "Storage"}\Status.log" + +_end_ + +move __createfile status.bat + +// +// Write Termination Script +// +delete terminate.bat + +createfile until _end_ + +manage-bde -off {name of drive of system folder} > "{parameter "Storage"}\Terminate.log +manage-bde -protectors {name of drive of system folder} -delete -type recoverypassword >> "{parameter "Storage"}\Terminate.log + +_end_ + +move __createfile terminate.bat + + +// +// Write Enable Script +// + +delete enable.bat + +createfile until _end_ + +manage-bde -protectors {name of drive of system folder} -delete -type recoverypassword +manage-bde -on {name of drive of system folder} -recoverypassword > "{parameter "Storage"}\Enable.log" + +_end_ + +move __createfile enable.bat + +// +// Get BitLocker Status +// + +wait status.bat + +if {((not exists lines containing "Encryption in Progress" of it) and (not exists lines containing "NOTE: Encryption will begin after the hardware test succeeds." of it)) of file "Status.log" of folder (parameter "Storage") } + + // DO NOT CONTINUE IF THERE IS AN EXISTING UPLOAD IN PROGRESS + continue if {not exists setting "_BESClient_UploadManager_Progress" of client} + + wait enable.bat + + // If the action dies here there was a failure adding the Numerical Password + if { not exists lines containing "Numerical Password" of file "Enable.log" of folder (parameter "Storage")} + wait terminate.bat + archive now + exit 30 + endif + + // If the action dies here there is a bootable CD or DVD in the drive + if { exists lines containing "ERROR: BitLocker detected a bootable CD or DVD on the computer." of file "Enable.log" of folder (parameter "Storage")} + wait terminate.bat + archive now + exit 20 + endif + + // If the action dies here there was another error + if { exists lines containing "ERROR" of file "Enable.log" of folder (parameter "Storage")} + wait terminate.bat + archive now + exit 10 + endif + + archive now + + notify client ForceRefresh + + action requires restart + +else + + archive now + + action requires restart + +endif]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows (23097).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows (23097).bes index 5ec516768..3726631bd 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows (23097).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows (23097).bes @@ -1,75 +1,75 @@ - - - - - Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows - This task will backup the recovery password to Active Directory.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
- windows of operating system - = 1) else (false)]]> - = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> - Disk Encryption - Internal - 2016-04-30 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - -
-
+ + + + + Invoke - Bitlocker Recovery Password Backup to Active Directory - Windows + This task will backup the recovery password to Active Directory.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> + Disk Encryption + Internal + 2016-04-30 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Probe - Windows (21335).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Probe - Windows (21335).bes index 34720c769..b4d51dc0d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Probe - Windows (21335).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Recovery Password Probe - Windows (21335).bes @@ -1,118 +1,118 @@ - - - - - Invoke - Bitlocker Recovery Password Probe - Windows - This probe grabs the current bitlocker recovery password for the system in it's raw format and outputs it to disk to be gathered by analyses. -

Creates a Volume-RecoveryPwd.txt file in __BESData. If there is already a file it checks to see if the recovery key has changed. If it has changed it archives the old one and writes the new recovery key to disk

-

Example

-
    -
  • C-RecoveryPwd.txt -
  • D-RecoveryPwd.txt
-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
- windows of operating system - = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> - Disk Encryption - Internal - 2016-04-29 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - "$OutFolder\$($Volume[0])-RecoveryPwd.txt"} -} -_end_ - -move __createfile powershell.ps1 - -// -// Configure Upload Manager -// - -setting "_BESClient_ArchiveManager_MaxArchiveSize"="2097152" on "{now}" for client -setting "_BESClient_ArchiveManager_OperatingMode"="2" on "{now}" for client -setting "_BESClient_ArchiveManager_FileSet-RECOVER"="{parameter "Storage"}\*.*" on "{now}" for client - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" - -archive now -]]> - - -
-
+ + + + + Invoke - Bitlocker Recovery Password Probe - Windows + This probe grabs the current bitlocker recovery password for the system in it's raw format and outputs it to disk to be gathered by analyses. +

Creates a Volume-RecoveryPwd.txt file in __BESData. If there is already a file it checks to see if the recovery key has changed. If it has changed it archives the old one and writes the new recovery key to disk

+

Example

+
    +
  • C-RecoveryPwd.txt +
  • D-RecoveryPwd.txt
+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = "6.0") AND (( exists product info string whose(it ends with "Enterprise" OR it starts with "Enterprise" OR it ends with "Ultimate" OR it ends with "Server Datacenter") of operating system ) OR ( (version of operating system >= "6.2") AND (exists product info string whose(it ends with "Business") of operating system) ))]]> + Disk Encryption + Internal + 2016-04-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + "$OutFolder\$($Volume[0])-RecoveryPwd.txt"} +} +_end_ + +move __createfile powershell.ps1 + +// +// Configure Upload Manager +// + +setting "_BESClient_ArchiveManager_MaxArchiveSize"="2097152" on "{now}" for client +setting "_BESClient_ArchiveManager_OperatingMode"="2" on "{now}" for client +setting "_BESClient_ArchiveManager_FileSet-RECOVER"="{parameter "Storage"}\*.*" on "{now}" for client + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +archive now +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Refresh System Drive Encryption - Windows (24097).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Refresh System Drive Encryption - Windows (24097).bes index 8026882f7..2782f34ed 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Refresh System Drive Encryption - Windows (24097).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Refresh System Drive Encryption - Windows (24097).bes @@ -1,56 +1,56 @@ - - - - - Invoke - Bitlocker Refresh System Drive Encryption - Windows - This Fixlet will suspend and immediately resume BitLocker protection.

-

This should be performed immediately after any TPM/Recovery issues on an endpoint.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
- windows of operating system - = 1) else (false)]]> - - Disk Encryption - Internal - 2016-09-28 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - -
-
+ + + + + Invoke - Bitlocker Refresh System Drive Encryption - Windows + This Fixlet will suspend and immediately resume BitLocker protection.

+

This should be performed immediately after any TPM/Recovery issues on an endpoint.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + + Disk Encryption + Internal + 2016-09-28 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Resume System Drive Encryption - Windows (24111).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Resume System Drive Encryption - Windows (24111).bes index f86c4b70c..98ac9d0cf 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Resume System Drive Encryption - Windows (24111).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Resume System Drive Encryption - Windows (24111).bes @@ -1,54 +1,54 @@ - - - - - Invoke - Bitlocker Resume System Drive Encryption - Windows - This Fixlet will resume paused BitLocker protection on the system volume.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
- windows of operating system - = 1) else (false)]]> - - - Disk Encryption - Internal - 2016-09-28 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" - -delete __createfile -delete powershell.ps1 - -createfile until _end_ - -manage-bde -protectors -enable "{name of drive of system folder}" - -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 - - -
-
+ + + + + Invoke - Bitlocker Resume System Drive Encryption - Windows + This Fixlet will resume paused BitLocker protection on the system volume.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + + + Disk Encryption + Internal + 2016-09-28 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ + +manage-bde -protectors -enable "{name of drive of system folder}" + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Suspend System Drive Encryption - Windows (24112).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Suspend System Drive Encryption - Windows (24112).bes index a067fcfa3..98f9e3504 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Suspend System Drive Encryption - Windows (24112).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Bitlocker Suspend System Drive Encryption - Windows (24112).bes @@ -1,53 +1,53 @@ - - - - - Invoke - Bitlocker Suspend System Drive Encryption - Windows - This Fixlet will suspend BitLocker protection on the system volume.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
- windows of operating system - = 1) else (false)]]> - - Disk Encryption - Internal - 2016-09-28 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" - -delete __createfile -delete powershell.ps1 - -createfile until _end_ - -manage-bde -protectors -disable "{name of drive of system folder}" - -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 - - -
-
+ + + + + Invoke - Bitlocker Suspend System Drive Encryption - Windows + This Fixlet will suspend BitLocker protection on the system volume.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

]]>
+ windows of operating system + = 1) else (false)]]> + + Disk Encryption + Internal + 2016-09-28 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ + +manage-bde -protectors -disable "{name of drive of system folder}" + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Certificate Store Probe - Windows (24040).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Certificate Store Probe - Windows (24040).bes index 117e9f8da..691a5d297 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Certificate Store Probe - Windows (24040).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Certificate Store Probe - Windows (24040).bes @@ -1,107 +1,107 @@ - - - - - Invoke - Certificate Store Probe - Windows - This fixlet probes the Windows Certificate Store and outputs a report for consumption by BigFix.

-

This fixlet will always be relevant on a Windows system.

-

Information on using this content is available here: https://github.com/strawgate/C3-Inventory/wiki/Certificate-Store

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - Certificate Store - Internal - 2016-08-12 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -//Script will not capture bitlocker recovery password with wow64 redirection enabled -action uses wow64 redirection {not x64 of operating system} - -parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" - -delete __createfile -delete powershell.ps1 - -createfile until _end_ -#Requires -Version 3.0 -$RegStorage = "HKLM:\Software\C3 Inventory\Certificate Store" - -function Write-CertToRegistry{{ - param ( - [System.Security.Cryptography.X509Certificates.X509Certificate2] $Certificate, - [string] $Path, - [string] $Childpath - ) - -# $Storage = "$($Global:RegStorage)\$($Certificate.PSParentPath.Replace("Microsoft.PowerShell.Security\Certificate::",''))\$($Certificate.ThumbPrint)" - $Storage = "$Path\$ChildPath\$($Certificate.ThumbPrint)" - - New-Item $Storage -force -ErrorAction SilentlyContinue | out-null - - new-ItemProperty -Path $Storage -Name "Subject" -Value $Certificate.Subject | out-null - new-ItemProperty -Path $Storage -Name "Friendly Name" -Value $Certificate.FriendlyName | out-null - new-ItemProperty -Path $Storage -Name "Issuer" -Value $Certificate.Issuer | out-null - new-ItemProperty -Path $Storage -Name "Serial Number" -Value $Certificate.SerialNumber | out-null - new-ItemProperty -Path $Storage -Name "Not Before" -Value $Certificate.NotBefore | out-null - new-ItemProperty -Path $Storage -Name "Not Before Date" -Value $Certificate.NotBefore.ToString("ddd, dd MMM yyyy") | out-null - new-ItemProperty -Path $Storage -Name "Not Before Time" -Value $Certificate.NotBefore.ToString("HH:mm:ss") | out-null - new-ItemProperty -Path $Storage -Name "Not After" -Value $Certificate.NotAfter | out-null - new-ItemProperty -Path $Storage -Name "Not After Date" -Value $Certificate.NotAfter.ToString("ddd, dd MMM yyyy") | out-null - new-ItemProperty -Path $Storage -Name "Not After Time" -Value $Certificate.NotAfter.ToString("HH:mm:ss") | out-null - new-ItemProperty -Path $Storage -Name "Format" -Value $Certificate.GetFormat() | out-null - new-ItemProperty -Path $Storage -Name "Archived" -Value $Certificate.Archived | out-null - new-ItemProperty -Path $Storage -Name "Private Key" -Value $Certificate.HasPrivateKey | out-null - new-ItemProperty -Path $Storage -Name "Algorithm" -Value ($Certificate.SignatureAlgorithm.FriendlyName -join ",") | out-null - new-ItemProperty -Path $Storage -Name "Usage" -Value ($Certificate.EnhancedKeyUsageList.FriendlyName -join ",") | out-null - new-ItemProperty -Path $Storage -Name "DNS" -Value ($Certificate.DnsNameList.Punycode -join ",") | out-null -} - -#Clean-up previous cert export -Remove-Item "HKLM:\Software\Certificates" -Recurse -ErrorAction SilentlyContinue - -#Pull all the certificate stores -$Certificates = Get-ChildItem -Path Cert:\LocalMachine -Recurse - -#Iterate over each store -foreach ($Store in Get-ChildItem -Path Cert:\LocalMachine) {{ - - #Iterate over each certificate in each store - foreach ($Certificate in Get-ChildItem -Path "Cert:\LocalMachine\$($Store.Name)") {{ - Write-CertToRegistry -Certificate $Certificate -Path "$RegStorage\LocalMachine" -childpath $Store.Name - } -} - -#Print probe run timestamp -$Timestamp = get-date -New-ItemProperty -Path $Global:RegStorage -Name "Last Updated" -Value $Timestamp -Force | out-null -New-ItemProperty -Path $Global:RegStorage -Name "Last Updated Date" -Value $Timestamp.ToString("ddd, dd MMM yyyy") -Force | out-null -New-ItemProperty -Path $Global:RegStorage -Name "Last Updated Time" -Value $Timestamp.ToString("HH:mm:ss") -Force | out-null -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 - - - -
-
+ + + + + Invoke - Certificate Store Probe - Windows + This fixlet probes the Windows Certificate Store and outputs a report for consumption by BigFix.

+

This fixlet will always be relevant on a Windows system.

+

Information on using this content is available here: https://github.com/strawgate/C3-Inventory/wiki/Certificate-Store

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Certificate Store + Internal + 2016-08-12 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +//Script will not capture bitlocker recovery password with wow64 redirection enabled +action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ +#Requires -Version 3.0 +$RegStorage = "HKLM:\Software\C3 Inventory\Certificate Store" + +function Write-CertToRegistry{{ + param ( + [System.Security.Cryptography.X509Certificates.X509Certificate2] $Certificate, + [string] $Path, + [string] $Childpath + ) + +# $Storage = "$($Global:RegStorage)\$($Certificate.PSParentPath.Replace("Microsoft.PowerShell.Security\Certificate::",''))\$($Certificate.ThumbPrint)" + $Storage = "$Path\$ChildPath\$($Certificate.ThumbPrint)" + + New-Item $Storage -force -ErrorAction SilentlyContinue | out-null + + new-ItemProperty -Path $Storage -Name "Subject" -Value $Certificate.Subject | out-null + new-ItemProperty -Path $Storage -Name "Friendly Name" -Value $Certificate.FriendlyName | out-null + new-ItemProperty -Path $Storage -Name "Issuer" -Value $Certificate.Issuer | out-null + new-ItemProperty -Path $Storage -Name "Serial Number" -Value $Certificate.SerialNumber | out-null + new-ItemProperty -Path $Storage -Name "Not Before" -Value $Certificate.NotBefore | out-null + new-ItemProperty -Path $Storage -Name "Not Before Date" -Value $Certificate.NotBefore.ToString("ddd, dd MMM yyyy") | out-null + new-ItemProperty -Path $Storage -Name "Not Before Time" -Value $Certificate.NotBefore.ToString("HH:mm:ss") | out-null + new-ItemProperty -Path $Storage -Name "Not After" -Value $Certificate.NotAfter | out-null + new-ItemProperty -Path $Storage -Name "Not After Date" -Value $Certificate.NotAfter.ToString("ddd, dd MMM yyyy") | out-null + new-ItemProperty -Path $Storage -Name "Not After Time" -Value $Certificate.NotAfter.ToString("HH:mm:ss") | out-null + new-ItemProperty -Path $Storage -Name "Format" -Value $Certificate.GetFormat() | out-null + new-ItemProperty -Path $Storage -Name "Archived" -Value $Certificate.Archived | out-null + new-ItemProperty -Path $Storage -Name "Private Key" -Value $Certificate.HasPrivateKey | out-null + new-ItemProperty -Path $Storage -Name "Algorithm" -Value ($Certificate.SignatureAlgorithm.FriendlyName -join ",") | out-null + new-ItemProperty -Path $Storage -Name "Usage" -Value ($Certificate.EnhancedKeyUsageList.FriendlyName -join ",") | out-null + new-ItemProperty -Path $Storage -Name "DNS" -Value ($Certificate.DnsNameList.Punycode -join ",") | out-null +} + +#Clean-up previous cert export +Remove-Item "HKLM:\Software\Certificates" -Recurse -ErrorAction SilentlyContinue + +#Pull all the certificate stores +$Certificates = Get-ChildItem -Path Cert:\LocalMachine -Recurse + +#Iterate over each store +foreach ($Store in Get-ChildItem -Path Cert:\LocalMachine) {{ + + #Iterate over each certificate in each store + foreach ($Certificate in Get-ChildItem -Path "Cert:\LocalMachine\$($Store.Name)") {{ + Write-CertToRegistry -Certificate $Certificate -Path "$RegStorage\LocalMachine" -childpath $Store.Name + } +} + +#Print probe run timestamp +$Timestamp = get-date +New-ItemProperty -Path $Global:RegStorage -Name "Last Updated" -Value $Timestamp -Force | out-null +New-ItemProperty -Path $Global:RegStorage -Name "Last Updated Date" -Value $Timestamp.ToString("ddd, dd MMM yyyy") -Force | out-null +New-ItemProperty -Path $Global:RegStorage -Name "Last Updated Time" -Value $Timestamp.ToString("HH:mm:ss") -Force | out-null +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 14 days - Windows (24041).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 14 days - Windows (24041).bes index 12d5bc9ea..d800d406f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 14 days - Windows (24041).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 14 days - Windows (24041).bes @@ -1,49 +1,49 @@ - - - - - Invoke - Cleanup User Profiles older than 14 days - Windows - This Fixlet will use DelProf2 to cleanup user profiles older than 14 days from the system.

-

DelProf2 is free for Non-Profit and Higher Education. For instructions on licensing it for private organizations please visit their homepage: https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - - Disk Cleanup - Internal - 2016-10-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - prefetch DelProf2.zip sha1:B4FFB416395941CBF682ADFE472DCAC7D4E7F533 size:235595 https://helgeklein.com/downloads/DelProf2/current/Delprof2 1.6.0.zip sha256:14EE8BAF68AC5B015613ECDF23D1CC49A7045F791E2F7A1952F32AAD5B4A606B - -prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac - -utility __Download\unzip.exe - -waithidden __Download\unzip.exe -o "__Download\DelProf2.zip" -d "{pathname of client folder of current site}\__Download" - -override wait -hidden=true -completion=job -wait "__Download\Delprof2 1.6.0\delprof2.exe" /u /d:14 /i - - -
-
+ + + + + Invoke - Cleanup User Profiles older than 14 days - Windows + This Fixlet will use DelProf2 to cleanup user profiles older than 14 days from the system.

+

DelProf2 is free for Non-Profit and Higher Education. For instructions on licensing it for private organizations please visit their homepage: https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Disk Cleanup + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch DelProf2.zip sha1:B4FFB416395941CBF682ADFE472DCAC7D4E7F533 size:235595 https://helgeklein.com/downloads/DelProf2/current/Delprof2 1.6.0.zip sha256:14EE8BAF68AC5B015613ECDF23D1CC49A7045F791E2F7A1952F32AAD5B4A606B + +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "__Download\DelProf2.zip" -d "{pathname of client folder of current site}\__Download" + +override wait +hidden=true +completion=job +wait "__Download\Delprof2 1.6.0\delprof2.exe" /u /d:14 /i + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 30 days - Windows (24042).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 30 days - Windows (24042).bes index 670a28cb9..33b29592f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 30 days - Windows (24042).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 30 days - Windows (24042).bes @@ -1,49 +1,49 @@ - - - - - Invoke - Cleanup User Profiles older than 30 days - Windows - This Fixlet will use DelProf2 to cleanup user profiles older than 30 days from the system.

-

DelProf2 is free for Non-Profit and Higher Education. For instructions on licensing it for private organizations please visit their homepage: https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - - Disk Cleanup - Internal - 2016-10-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - prefetch DelProf2.zip sha1:B4FFB416395941CBF682ADFE472DCAC7D4E7F533 size:235595 https://helgeklein.com/downloads/DelProf2/current/Delprof2 1.6.0.zip sha256:14EE8BAF68AC5B015613ECDF23D1CC49A7045F791E2F7A1952F32AAD5B4A606B - -prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac - -utility __Download\unzip.exe - -waithidden __Download\unzip.exe -o "__Download\DelProf2.zip" -d "{pathname of client folder of current site}\__Download" - -override wait -hidden=true -completion=job -wait "__Download\Delprof2 1.6.0\delprof2.exe" /u /d:30 /i - - -
-
+ + + + + Invoke - Cleanup User Profiles older than 30 days - Windows + This Fixlet will use DelProf2 to cleanup user profiles older than 30 days from the system.

+

DelProf2 is free for Non-Profit and Higher Education. For instructions on licensing it for private organizations please visit their homepage: https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Disk Cleanup + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch DelProf2.zip sha1:B4FFB416395941CBF682ADFE472DCAC7D4E7F533 size:235595 https://helgeklein.com/downloads/DelProf2/current/Delprof2 1.6.0.zip sha256:14EE8BAF68AC5B015613ECDF23D1CC49A7045F791E2F7A1952F32AAD5B4A606B + +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "__Download\DelProf2.zip" -d "{pathname of client folder of current site}\__Download" + +override wait +hidden=true +completion=job +wait "__Download\Delprof2 1.6.0\delprof2.exe" /u /d:30 /i + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 60 days - Windows (24043).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 60 days - Windows (24043).bes index 1aaf98b83..4cb5d2921 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 60 days - Windows (24043).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Cleanup User Profiles older than 60 days - Windows (24043).bes @@ -1,49 +1,49 @@ - - - - - Invoke - Cleanup User Profiles older than 60 days - Windows - This Fixlet will use DelProf2 to cleanup user profiles older than 60 days from the system.

-

DelProf2 is free for Non-Profit and Higher Education. For instructions on licensing it for private organizations please visit their homepage: https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - - Disk Cleanup - Internal - 2016-10-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - prefetch DelProf2.zip sha1:B4FFB416395941CBF682ADFE472DCAC7D4E7F533 size:235595 https://helgeklein.com/downloads/DelProf2/current/Delprof2 1.6.0.zip sha256:14EE8BAF68AC5B015613ECDF23D1CC49A7045F791E2F7A1952F32AAD5B4A606B - -prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac - -utility __Download\unzip.exe - -waithidden __Download\unzip.exe -o "__Download\DelProf2.zip" -d "{pathname of client folder of current site}\__Download" - -override wait -hidden=true -completion=job -wait "__Download\Delprof2 1.6.0\delprof2.exe" /u /d:60 /i - - -
-
+ + + + + Invoke - Cleanup User Profiles older than 60 days - Windows + This Fixlet will use DelProf2 to cleanup user profiles older than 60 days from the system.

+

DelProf2 is free for Non-Profit and Higher Education. For instructions on licensing it for private organizations please visit their homepage: https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Disk Cleanup + Internal + 2016-10-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch DelProf2.zip sha1:B4FFB416395941CBF682ADFE472DCAC7D4E7F533 size:235595 https://helgeklein.com/downloads/DelProf2/current/Delprof2 1.6.0.zip sha256:14EE8BAF68AC5B015613ECDF23D1CC49A7045F791E2F7A1952F32AAD5B4A606B + +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "__Download\DelProf2.zip" -d "{pathname of client folder of current site}\__Download" + +override wait +hidden=true +completion=job +wait "__Download\Delprof2 1.6.0\delprof2.exe" /u /d:60 /i + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using Physical Presence - Windows (24044).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using Physical Presence - Windows (24044).bes index 20516e769..d0c2eae59 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using Physical Presence - Windows (24044).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using Physical Presence - Windows (24044).bes @@ -1,54 +1,54 @@ - - - - - Invoke - Clear TPM using Physical Presence - Windows - - windows of operating system - (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") - exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ - file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client - Internal - 2016-12-17 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - > "$($env:SystemDrive)\TPMClear.log" -_end_ - -move __createfile clearTPM.ps1 - -waithidden powershell.exe -executionpolicy bypass -file clearTPM.ps1 - -action requires restart]]> - - - + + + + + Invoke - Clear TPM using Physical Presence - Windows + + windows of operating system + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ + file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client + Internal + 2016-12-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + > "$($env:SystemDrive)\TPMClear.log" +_end_ + +move __createfile clearTPM.ps1 + +waithidden powershell.exe -executionpolicy bypass -file clearTPM.ps1 + +action requires restart]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using provided Owner Authorization - Windows (24113).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using provided Owner Authorization - Windows (24113).bes index 881dddc67..07abd571f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using provided Owner Authorization - Windows (24113).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using provided Owner Authorization - Windows (24113).bes @@ -1,57 +1,57 @@ - - - - - Invoke - Clear TPM using provided Owner Authorization - Windows - - windows of operating system - (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") - exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ - Internal - 2016-12-17 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here -action parameter query "OwnerAuth" with description "Provide an Ownership Authorization String" - -parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" - -parameter "OwnerAuth"="{line 0 of file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client}" - -createfile until _end_ -param ( - $OwnerAuthorization -) - -$TPM = Get-WmiObject -Class Win32_TPM -Namespace root\CIMV2\Security\MicrosoftTpm - -$TPM.Clear($OwnerAuthorization) - -_end_ - -move __createfile clearTPM.ps1 - -waithidden powershell.exe -executionpolicy bypass -file clearTPM.ps1 -OwnerAuthorization "{parameter "OwnerAuth" of action}" - -action requires restart - - - + + + + + Invoke - Clear TPM using provided Owner Authorization - Windows + + windows of operating system + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ + Internal + 2016-12-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +action parameter query "OwnerAuth" with description "Provide an Ownership Authorization String" + +parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" + +parameter "OwnerAuth"="{line 0 of file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client}" + +createfile until _end_ +param ( + $OwnerAuthorization +) + +$TPM = Get-WmiObject -Class Win32_TPM -Namespace root\CIMV2\Security\MicrosoftTpm + +$TPM.Clear($OwnerAuthorization) + +_end_ + +move __createfile clearTPM.ps1 + +waithidden powershell.exe -executionpolicy bypass -file clearTPM.ps1 -OwnerAuthorization "{parameter "OwnerAuth" of action}" + +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using saved Owner Authorization - Windows (24114).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using saved Owner Authorization - Windows (24114).bes index 1bf8480b2..aee86d603 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using saved Owner Authorization - Windows (24114).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Clear TPM using saved Owner Authorization - Windows (24114).bes @@ -1,57 +1,57 @@ - - - - - Invoke - Clear TPM using saved Owner Authorization - Windows - - windows of operating system - (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") - exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ - file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client - Internal - 2016-12-17 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" - -parameter "OwnerAuth"="{line 0 of file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client}" - -createfile until _end_ -param ( - $OwnerAuthorization -) - -$TPM = Get-WmiObject -Class Win32_TPM -Namespace root\CIMV2\Security\MicrosoftTpm - -$TPM.Clear($OwnerAuthorization) - -_end_ - -move __createfile clearTPM.ps1 - -waithidden powershell.exe -executionpolicy bypass -file clearTPM.ps1 -OwnerAuthorization "{parameter "OwnerAuth" of action}" - -action requires restart - - - + + + + + Invoke - Clear TPM using saved Owner Authorization - Windows + + windows of operating system + (boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") and (boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ + file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client + Internal + 2016-12-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" + +parameter "OwnerAuth"="{line 0 of file "TPMOwnerAuthorization.txt" of Folder "Bitlocker" of folder "__Global" of data folder of client}" + +createfile until _end_ +param ( + $OwnerAuthorization +) + +$TPM = Get-WmiObject -Class Win32_TPM -Namespace root\CIMV2\Security\MicrosoftTpm + +$TPM.Clear($OwnerAuthorization) + +_end_ + +move __createfile clearTPM.ps1 + +waithidden powershell.exe -executionpolicy bypass -file clearTPM.ps1 -OwnerAuthorization "{parameter "OwnerAuth" of action}" + +action requires restart + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Commit Cached Applocker Rules - Windows (20716).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Commit Cached Applocker Rules - Windows (20716).bes index 2a0439fb8..05c638a1a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Commit Cached Applocker Rules - Windows (20716).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Commit Cached Applocker Rules - Windows (20716).bes @@ -1,116 +1,116 @@ - - - - - Invoke - Commit Cached Applocker Rules - Windows - - windows of operating system - 0]]> - Internal - 2016-05-28 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - $ExeRules - - - $MsiRules - - - $ScriptRules - - - $AppxRules - - -"@ - -$Rules > "$Indir\Effective.xml" - -_end_ - -delete mergerules.ps1 -move __createfile mergerules.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File mergerules.ps1 -inDir "{parameter "Storage"}" - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -XMLPolicy ""{parameter "Storage"}\Effective.xml"""]]> - - - + + + + + Invoke - Commit Cached Applocker Rules - Windows + + windows of operating system + 0]]> + Internal + 2016-05-28 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + $ExeRules + + + $MsiRules + + + $ScriptRules + + + $AppxRules + + +"@ + +$Rules > "$Indir\Effective.xml" + +_end_ + +delete mergerules.ps1 +move __createfile mergerules.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File mergerules.ps1 -inDir "{parameter "Storage"}" + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -command "Import-Module AppLocker;Set-ApplockerPolicy -XMLPolicy ""{parameter "Storage"}\Effective.xml"""]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators to Temporary Administrators - Windows (24157).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators to Temporary Administrators - Windows (24157).bes index c092dd5ae..0e001a5d6 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators to Temporary Administrators - Windows (24157).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators to Temporary Administrators - Windows (24157).bes @@ -1,820 +1,820 @@ - - - - - Invoke - Convert Permanent Administrators to Temporary Administrators - Windows - This Fixlet cycles through all explicitely defined local administrators and marks them as temporary administrators. This can be used to expire administrative rights over time.

-

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - 0) of ( /* Add All Explicit Members of Administrators */ set of component strings of (sids of members of local group "Administrators") whose (exists user of it) /* Subtract Current Temporary Administrators */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry /* Subtract Local Administrator (Can't Remove) */ - set of component string of sid of user "Administrator" )]]> - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to grant all local administrators temporary administrative rights for 1 hour. - - - - - - - Click - here - to grant all local administrators temporary administrative rights for&nbsp;5 hours. - - - - - - Click - here - to grant all local administrators temporary administrative rights for 1 day. - - - - - - Click - here - to grant all local administrators temporary administrative rights for 5 days. - - - - - - Click - here - to grant all local administrators temporary administrative rights permanently. - - - -
-
+ + + + + Invoke - Convert Permanent Administrators to Temporary Administrators - Windows + This Fixlet cycles through all explicitely defined local administrators and marks them as temporary administrators. This can be used to expire administrative rights over time.

+

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + 0) of ( /* Add All Explicit Members of Administrators */ set of component strings of (sids of members of local group "Administrators") whose (exists user of it) /* Subtract Current Temporary Administrators */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry /* Subtract Local Administrator (Can't Remove) */ - set of component string of sid of user "Administrator" )]]> + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to grant all local administrators temporary administrative rights for 1 hour. + + + + + + + Click + here + to grant all local administrators temporary administrative rights for&nbsp;5 hours. + + + + + + Click + here + to grant all local administrators temporary administrative rights for 1 day. + + + + + + Click + here + to grant all local administrators temporary administrative rights for 5 days. + + + + + + Click + here + to grant all local administrators temporary administrative rights permanently. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows (24158).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows (24158).bes index c09b32d46..a9d5c6a46 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows (24158).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows (24158).bes @@ -1,815 +1,815 @@ - - - - - Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows - This Fixlet cycles through all explicitely defined local administrators and marks them as temporary administrators. This can be used to expire administrative rights over time.

-

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - 0) of ( /*Authorized Requestors who have Permanent Administrative Rights */ intersection of ( /* Authorized Requestors who have any Admin */ set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry; set of component strings of (sids of members of local group "Administrators") whose (exists user of it) ) /* Subtract Current Temporary Administrators */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry )]]> - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for 1 hour. - - - - - - - Click - here - to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for&nbsp;5 hours. - - - - - - Click - here - to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for 1 day. - - - - - - Click - here - to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for 5 days. - - - - - - Click - here - to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights permanently. - - - -
-
+ + + + + Invoke - Convert Permanent Administrators who are Authorized Requestors to Temporary Administrators - Windows + This Fixlet cycles through all explicitely defined local administrators and marks them as temporary administrators. This can be used to expire administrative rights over time.

+

This fixlet by itself does not remove their administartive rights when the expiration time passes. Removing their access requires the, "Invoke - Remove Expired Users from Temporary Administrators - Windows" fixlet to be run as a policy action.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + 0) of ( /*Authorized Requestors who have Permanent Administrative Rights */ intersection of ( /* Authorized Requestors who have any Admin */ set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry; set of component strings of (sids of members of local group "Administrators") whose (exists user of it) ) /* Subtract Current Temporary Administrators */ - set of names of keys of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry )]]> + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for 1 hour. + + + + + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for&nbsp;5 hours. + + + + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for 1 day. + + + + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights for 5 days. + + + + + + Click + here + to convert all permanent administrators with&nbsp;authorized requestors permission to having temporary administrative rights permanently. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Defragement and Optimize Drives - Windows (23382).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Defragement and Optimize Drives - Windows (23382).bes index 211587795..b50cc1718 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Defragement and Optimize Drives - Windows (23382).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Defragement and Optimize Drives - Windows (23382).bes @@ -1,36 +1,36 @@ - - - - - Invoke - Defragement and Optimize Drives - Windows - This Fixlet runs defragmentation or optimization on the targeted devices.

-

This fixlet has generic relevance and should not be set to re-apply without a delay.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - Internal - 2016-11-15 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - runhidden schtasks /run /TN "Microsoft\Windows\Defrag\ScheduledDefrag" - - -
-
+ + + + + Invoke - Defragement and Optimize Drives - Windows + This Fixlet runs defragmentation or optimization on the targeted devices.

+

This fixlet has generic relevance and should not be set to re-apply without a delay.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Internal + 2016-11-15 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + runhidden schtasks /run /TN "Microsoft\Windows\Defrag\ScheduledDefrag" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Application Usage Log - Windows (21052).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Application Usage Log - Windows (21052).bes index e69b7d724..4a9df87f7 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Application Usage Log - Windows (21052).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Application Usage Log - Windows (21052).bes @@ -1,35 +1,35 @@ - - - - - Invoke - Delete Application Usage Log - Windows - This fixlet removes the application usage log from the system.

-

For general information or to report issues with C3 Application Usage content please visit GitHub here: https://github.com/strawgate/C3-Application-Usage

]]>
- windows of operating system - exists pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client - Internal - 2016-07-18 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - waithidden cmd.exe /c del /Q /F "{pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client}" - -
-
+ + + + + Invoke - Delete Application Usage Log - Windows + This fixlet removes the application usage log from the system.

+

For general information or to report issues with C3 Application Usage content please visit GitHub here: https://github.com/strawgate/C3-Application-Usage

]]>
+ windows of operating system + exists pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client + Internal + 2016-07-18 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden cmd.exe /c del /Q /F "{pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Legacy Application Usage Log - Windows (21059).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Legacy Application Usage Log - Windows (21059).bes index 82af3c953..34a5aed21 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Legacy Application Usage Log - Windows (21059).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Delete Legacy Application Usage Log - Windows (21059).bes @@ -1,36 +1,36 @@ - - - - - Invoke - Delete Legacy Application Usage Log - Windows - This fixlet removes legacy-formatted application usage logs from the system.

-

For general information or to report issues with C3 Application Usage content please visit GitHub here: https://github.com/strawgate/C3-Application-Usage

]]>
- windows of operating system - exists pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client - not exists selects "/Usage/Applications" of xml document of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client - Internal - 2016-07-18 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - waithidden cmd.exe /c del /Q /F "{pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client}" - -
-
+ + + + + Invoke - Delete Legacy Application Usage Log - Windows + This fixlet removes legacy-formatted application usage logs from the system.

+

For general information or to report issues with C3 Application Usage content please visit GitHub here: https://github.com/strawgate/C3-Application-Usage

]]>
+ windows of operating system + exists pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client + not exists selects "/Usage/Applications" of xml document of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client + Internal + 2016-07-18 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden cmd.exe /c del /Q /F "{pathname of file "AppUsage.xml" of folder "C3AppUsage" of folder "__Global" of data folder of client}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Disk Cleanup - Windows (21628).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Disk Cleanup - Windows (21628).bes index f2156136d..77efdb761 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Disk Cleanup - Windows (21628).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Disk Cleanup - Windows (21628).bes @@ -1,107 +1,107 @@ - - - - - Invoke - Disk Cleanup - Windows - This will invoke a Window Disk Cleanup with aggressive cleanup settings.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - Disk Cleanup - Internal - 2016-08-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -if {x64 of operating system} -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\BranchCache]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameNewsFiles]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameStatisticsFiles]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameUpdateFiles]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Internet Cache Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Memory Dump Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Offline Pages Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Old ChkDsk Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Previous Installations]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\RetailDemo Offline Content]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Service Pack Cleanup]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Setup Log Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error memory dump files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error minidump files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Setup Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Sync Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Upgrade Discarded Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Defender]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Archive Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Queue Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Archive Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Queue Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Temp Files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows ESD installation files]" "StateFlags1337"=dword:00000002 -regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Upgrade Log Files]" "StateFlags1337"=dword:00000002 - -else - -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\BranchCache]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameNewsFiles]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameStatisticsFiles]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameUpdateFiles]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Internet Cache Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Memory Dump Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Offline Pages Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Old ChkDsk Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Previous Installations]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\RetailDemo Offline Content]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Service Pack Cleanup]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Setup Log Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error memory dump files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error minidump files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Setup Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Sync Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Upgrade Discarded Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Defender]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Archive Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Queue Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Archive Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Queue Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Temp Files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows ESD installation files]" "StateFlags1337"=dword:00000002 -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Upgrade Log Files]" "StateFlags1337"=dword:00000002 - -endif - -waithidden cleanmgr /sagerun:1337 - - -
-
+ + + + + Invoke - Disk Cleanup - Windows + This will invoke a Window Disk Cleanup with aggressive cleanup settings.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +if {x64 of operating system} +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\BranchCache]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameNewsFiles]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameStatisticsFiles]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameUpdateFiles]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Internet Cache Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Memory Dump Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Offline Pages Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Old ChkDsk Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Previous Installations]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\RetailDemo Offline Content]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Service Pack Cleanup]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Setup Log Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error memory dump files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error minidump files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Setup Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Sync Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Upgrade Discarded Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Defender]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Archive Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Queue Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Archive Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Queue Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Temp Files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows ESD installation files]" "StateFlags1337"=dword:00000002 +regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Upgrade Log Files]" "StateFlags1337"=dword:00000002 + +else + +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\BranchCache]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameNewsFiles]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameStatisticsFiles]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\GameUpdateFiles]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Internet Cache Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Memory Dump Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Offline Pages Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Old ChkDsk Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Previous Installations]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\RetailDemo Offline Content]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Service Pack Cleanup]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Setup Log Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error memory dump files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error minidump files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Setup Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Sync Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Upgrade Discarded Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Defender]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Archive Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Queue Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Archive Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting System Queue Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Temp Files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows ESD installation files]" "StateFlags1337"=dword:00000002 +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Upgrade Log Files]" "StateFlags1337"=dword:00000002 + +endif + +waithidden cleanmgr /sagerun:1337 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Group Policy Refresh - Windows (22887).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Group Policy Refresh - Windows (22887).bes index 744dd3bd1..3c1ccb465 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Group Policy Refresh - Windows (22887).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Group Policy Refresh - Windows (22887).bes @@ -1,51 +1,51 @@ - - - - - Invoke - Group Policy Refresh - Windows - This will invoke a group policy refresh on the target endpoint.

-

NOTE: Performing a group policy refresh may cause a explorer to flash during a user session and it may drop a connected user's remote desktop session.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- "5.1"]]> - exists file "gpupdate.exe" of system folder - Group Policy - Internal - 2016-04-22 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -override wait -completion=job -hidden=true -wait cmd.exe /c "echo n | gpupdate /target:computer /force /wait:120" - -if {exists current user} - override wait - completion=job - hidden=true - runas=currentuser - wait cmd.exe /c "echo n | gpupdate /target:user /force /wait:120" -endif - - -
-
+ + + + + Invoke - Group Policy Refresh - Windows + This will invoke a group policy refresh on the target endpoint.

+

NOTE: Performing a group policy refresh may cause a explorer to flash during a user session and it may drop a connected user's remote desktop session.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ "5.1"]]> + exists file "gpupdate.exe" of system folder + Group Policy + Internal + 2016-04-22 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +override wait +completion=job +hidden=true +wait cmd.exe /c "echo n | gpupdate /target:computer /force /wait:120" + +if {exists current user} + override wait + completion=job + hidden=true + runas=currentuser + wait cmd.exe /c "echo n | gpupdate /target:user /force /wait:120" +endif + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Join Active Directory Domain - Windows (23387).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Join Active Directory Domain - Windows (23387).bes index 945eea31a..a1fa58a87 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Join Active Directory Domain - Windows (23387).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Join Active Directory Domain - Windows (23387).bes @@ -1,99 +1,99 @@ - - - - - Invoke - Join Active Directory Domain - Windows - -
-

Securely Domain Join a Windows Computer!

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - string value of select "Domain from Win32_ComputerSystem" of wmi as lowercase = "workgroup" - 2016-05-07 - - parametermetadatatag - { "Section1":{ "Name":"ADConfiguration", "Title":"AD Configuration", "UIType":"accordion", "Values":[ { "Name":"ADDomain", "Title":"Active Directory Domain", "Description":"Active Directory Domain", "Override":"True", "ValueType":"relevance", "UIType":"Select", "Values":"unique values of (concatenations \".\" of substrings separated by \",DC=\" of following texts of firsts \"DC=\" of it) whose (it != \"\") of values of results from (bes property \"Active Directory Path\") of bes computers" }, { "Name":"ADUser", "Title":"Active Directory Account Username", "Description":"Active Directory Account Username", "UIType":"TextBox", "Default":"NetBIOS\\Username" }, { "Name":"ADpwd", "Title":"Active Directory Account Password", "Description":"Active Directory Account Password", "UIType":"Textbox", "Encrypt":"true", "SubUIType":"Password" }, { "Name":"ADOU", "Title":"Active Directory Organizational Unit", "Description":"Active Directory Organizational Unit", "Override":"True", "ValueType":"relevance", "UIType":"Select", "Values":"unique values of (concatenations \";\" of substrings separated by \",\" of it) of following texts of firsts \",\" of values of results from (bes property \"Active Directory Path\") of bes computers" } ] } } - - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - -parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" - -delete __createfile -delete powershell.ps1 - -createfile until _end_ -param ( - $Username, - $Password -) - -$domain = "{parameter "ADDomain" of action}" -$OU = "{(concatenations "," of substrings separated by ";" of it) of parameter "ADOU" of action}" - -$password = $Password | ConvertTo-SecureString -asPlainText -Force -$credential = New-Object System.Management.Automation.PSCredential($username,$password) - -#Try Domain Join with OU -- will fail if object already exists -Add-Computer -DomainName $domain -Credential $credential -OUPath $OU -ErrorAction silentlycontinue - -#Try Domain Join without OU -Add-Computer -DomainName $domain -Credential $credential -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -Username "{parameter "ADUser" of action}" -Password "{parameter "ADPwd" of action}" - -action requires restart - -
-
+ + + + + Invoke - Join Active Directory Domain - Windows + +
+

Securely Domain Join a Windows Computer!

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + string value of select "Domain from Win32_ComputerSystem" of wmi as lowercase = "workgroup" + 2016-05-07 + + parametermetadatatag + { "Section1":{ "Name":"ADConfiguration", "Title":"AD Configuration", "UIType":"accordion", "Values":[ { "Name":"ADDomain", "Title":"Active Directory Domain", "Description":"Active Directory Domain", "Override":"True", "ValueType":"relevance", "UIType":"Select", "Values":"unique values of (concatenations \".\" of substrings separated by \",DC=\" of following texts of firsts \"DC=\" of it) whose (it != \"\") of values of results from (bes property \"Active Directory Path\") of bes computers" }, { "Name":"ADUser", "Title":"Active Directory Account Username", "Description":"Active Directory Account Username", "UIType":"TextBox", "Default":"NetBIOS\\Username" }, { "Name":"ADpwd", "Title":"Active Directory Account Password", "Description":"Active Directory Account Password", "UIType":"Textbox", "Encrypt":"true", "SubUIType":"Password" }, { "Name":"ADOU", "Title":"Active Directory Organizational Unit", "Description":"Active Directory Organizational Unit", "Override":"True", "ValueType":"relevance", "UIType":"Select", "Values":"unique values of (concatenations \";\" of substrings separated by \",\" of it) of following texts of firsts \",\" of values of results from (bes property \"Active Directory Path\") of bes computers" } ] } } + + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ +param ( + $Username, + $Password +) + +$domain = "{parameter "ADDomain" of action}" +$OU = "{(concatenations "," of substrings separated by ";" of it) of parameter "ADOU" of action}" + +$password = $Password | ConvertTo-SecureString -asPlainText -Force +$credential = New-Object System.Management.Automation.PSCredential($username,$password) + +#Try Domain Join with OU -- will fail if object already exists +Add-Computer -DomainName $domain -Credential $credential -OUPath $OU -ErrorAction silentlycontinue + +#Try Domain Join without OU +Add-Computer -DomainName $domain -Credential $credential +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -Username "{parameter "ADUser" of action}" -Password "{parameter "ADPwd" of action}" + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Kernel Kext Cache Reset - Mac (20530).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Kernel Kext Cache Reset - Mac (20530).bes index 6a09d5722..b96552e3a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Kernel Kext Cache Reset - Mac (20530).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Kernel Kext Cache Reset - Mac (20530).bes @@ -1,39 +1,39 @@ - - - - - Invoke - Kernel Kext Cache Reset - Mac - Invokes a Kernel Kext Cache reset on Mac OS.

-

Reseting the Kernel kext can often reduce the boot time of a Mac device but should only be done as a troubleshooting measure. The first reboot after reseting the kernel kext may take a little while longer.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- mac of operating system - Internal - 2016-05-07 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait sh -c "kextcache -system-prelinked-kernel" -wait sh -c "kextcache -system-caches" - - -
-
+ + + + + Invoke - Kernel Kext Cache Reset - Mac + Invokes a Kernel Kext Cache reset on Mac OS.

+

Reseting the Kernel kext can often reduce the boot time of a Mac device but should only be done as a troubleshooting measure. The first reboot after reseting the kernel kext may take a little while longer.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ mac of operating system + Internal + 2016-05-07 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait sh -c "kextcache -system-prelinked-kernel" +wait sh -c "kextcache -system-caches" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Convert MBR to GPT - Windows (23810).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Convert MBR to GPT - Windows (23810).bes index b966b10b0..cbbb938c7 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Convert MBR to GPT - Windows (23810).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Convert MBR to GPT - Windows (23810).bes @@ -1,79 +1,79 @@ - - - - - Invoke - MBR2GPT Convert MBR to GPT - Windows - This Fixlet will use the Windows 10 MBR2GPT executable to convert the disk from MBR to GPT.

-

Your system WILL NOT BOOT after running this fixlet unless you use a related Vendor-Specific command to switch the machine to boot using UEFI.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- exists file "MBR2GPT.exe" of system x64 folder - not exists Selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi - Internal - 2017-03-11 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BES - - - Click - here - to deploy this action. - - // Enter your action script here - -parameter "mbr2gpt"="{pathname of file "MBR2GPT.exe" of system x64 folder}" - -// Validate Disk Configuration within Windows -waithidden "{parameter "mbr2gpt"} /convert /allowFullOS - -//Conversion completed successfully. -//continue if {exit code of action != 1} - -//Conversion was cancelled by the user -continue if {exit code of action != 1} - -//Conversion failed due to an internal error -continue if {exit code of action != 2} - -//Conversion failed due to an initialization error -continue if {exit code of action != 3} - -//Conversion failed due to invalid command-line parameters -continue if {exit code of action != 4} - -//Conversion failed due to error reading the geometry and layout of the selected disk. -continue if {exit code of action != 5} - -//Conversion failed because one or more volumes on the disk is encrypted. -continue if {exit code of action != 6} - -//Conversion failed because the geometry and layout of the selected disk do not meet requirements. -continue if {exit code of action != 7} - -//Conversion failed due to error while creating the EFI system partition. -continue if {exit code of action != 8} - -// Conversion failed due to error installing boot files. -continue if {exit code of action != 9} - -//Conversion failed due to error while applying GPT layout. -continue if {exit code of action != 10} - -// Conversion to GPT layout succeeded, but some boot configuration data entries could not be restored. -//continue if {exit code of action != 100} - -action requires restart - -
-
+ + + + + Invoke - MBR2GPT Convert MBR to GPT - Windows + This Fixlet will use the Windows 10 MBR2GPT executable to convert the disk from MBR to GPT.

+

Your system WILL NOT BOOT after running this fixlet unless you use a related Vendor-Specific command to switch the machine to boot using UEFI.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ exists file "MBR2GPT.exe" of system x64 folder + not exists Selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi + Internal + 2017-03-11 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "mbr2gpt"="{pathname of file "MBR2GPT.exe" of system x64 folder}" + +// Validate Disk Configuration within Windows +waithidden "{parameter "mbr2gpt"} /convert /allowFullOS + +//Conversion completed successfully. +//continue if {exit code of action != 1} + +//Conversion was cancelled by the user +continue if {exit code of action != 1} + +//Conversion failed due to an internal error +continue if {exit code of action != 2} + +//Conversion failed due to an initialization error +continue if {exit code of action != 3} + +//Conversion failed due to invalid command-line parameters +continue if {exit code of action != 4} + +//Conversion failed due to error reading the geometry and layout of the selected disk. +continue if {exit code of action != 5} + +//Conversion failed because one or more volumes on the disk is encrypted. +continue if {exit code of action != 6} + +//Conversion failed because the geometry and layout of the selected disk do not meet requirements. +continue if {exit code of action != 7} + +//Conversion failed due to error while creating the EFI system partition. +continue if {exit code of action != 8} + +// Conversion failed due to error installing boot files. +continue if {exit code of action != 9} + +//Conversion failed due to error while applying GPT layout. +continue if {exit code of action != 10} + +// Conversion to GPT layout succeeded, but some boot configuration data entries could not be restored. +//continue if {exit code of action != 100} + +action requires restart + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Validate MBR to GPT - Windows (23811).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Validate MBR to GPT - Windows (23811).bes index 9ad030d30..5b7899928 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Validate MBR to GPT - Windows (23811).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - MBR2GPT Validate MBR to GPT - Windows (23811).bes @@ -1,80 +1,80 @@ - - - - - Invoke - MBR2GPT Validate MBR to GPT - Windows - This Fixlet will use the Windows 10 MBR2GPT executable to convert the disk from MBR to GPT.

-

Your system WILL NOT BOOT after running this fixlet unless you use a related Vendor-Specific command to switch the machine to boot using UEFI.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- exists file "MBR2GPT.exe" of system x64 folder - not exists Selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi - Internal - 2017-03-11 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BES - - - Click - here - to deploy this action. - - // Enter your action script here - -parameter "mbr2gpt"="{pathname of file "MBR2GPT.exe" of system x64 folder}" - -// Validate Disk Configuration within Windows -waithidden "{parameter "mbr2gpt"} /validate /allowFullOS - -//Conversion completed successfully. -//continue if {exit code of action != 1} - -//Conversion was cancelled by the user -continue if {exit code of action != 1} - -//Conversion failed due to an internal error -continue if {exit code of action != 2} - -//Conversion failed due to an initialization error -continue if {exit code of action != 3} - -//Conversion failed due to invalid command-line parameters -continue if {exit code of action != 4} - -//Conversion failed due to error reading the geometry and layout of the selected disk. -continue if {exit code of action != 5} - -//Conversion failed because one or more volumes on the disk is encrypted. -continue if {exit code of action != 6} - -//Conversion failed because the geometry and layout of the selected disk do not meet requirements. -continue if {exit code of action != 7} - -//Conversion failed due to error while creating the EFI system partition. -continue if {exit code of action != 8} - -// Conversion failed due to error installing boot files. -continue if {exit code of action != 9} - -//Conversion failed due to error while applying GPT layout. -continue if {exit code of action != 10} - -// Conversion to GPT layout succeeded, but some boot configuration data entries could not be restored. -//continue if {exit code of action != 100} - -exit 0 - - -
-
+ + + + + Invoke - MBR2GPT Validate MBR to GPT - Windows + This Fixlet will use the Windows 10 MBR2GPT executable to convert the disk from MBR to GPT.

+

Your system WILL NOT BOOT after running this fixlet unless you use a related Vendor-Specific command to switch the machine to boot using UEFI.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ exists file "MBR2GPT.exe" of system x64 folder + not exists Selects "* from Win32_DiskPartition Where Type = 'GPT: System'" of wmi + Internal + 2017-03-11 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here + +parameter "mbr2gpt"="{pathname of file "MBR2GPT.exe" of system x64 folder}" + +// Validate Disk Configuration within Windows +waithidden "{parameter "mbr2gpt"} /validate /allowFullOS + +//Conversion completed successfully. +//continue if {exit code of action != 1} + +//Conversion was cancelled by the user +continue if {exit code of action != 1} + +//Conversion failed due to an internal error +continue if {exit code of action != 2} + +//Conversion failed due to an initialization error +continue if {exit code of action != 3} + +//Conversion failed due to invalid command-line parameters +continue if {exit code of action != 4} + +//Conversion failed due to error reading the geometry and layout of the selected disk. +continue if {exit code of action != 5} + +//Conversion failed because one or more volumes on the disk is encrypted. +continue if {exit code of action != 6} + +//Conversion failed because the geometry and layout of the selected disk do not meet requirements. +continue if {exit code of action != 7} + +//Conversion failed due to error while creating the EFI system partition. +continue if {exit code of action != 8} + +// Conversion failed due to error installing boot files. +continue if {exit code of action != 9} + +//Conversion failed due to error while applying GPT layout. +continue if {exit code of action != 10} + +// Conversion to GPT layout succeeded, but some boot configuration data entries could not be restored. +//continue if {exit code of action != 100} + +exit 0 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21716).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21716).bes index 6f6d8c252..b764b66db 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21716).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21716).bes @@ -1,48 +1,48 @@ - - - - - Invoke - Power Efficiency Probe - Windows - Invokes PowerCFG on the Endpoint to print out diagnostic information.

-

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
- windows of operating system - Internal - 2016-09-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - "energy-requests.txt" -_end_ - -move __createfile run.bat - -wait run.bat]]> - - -
-
+ + + + + Invoke - Power Efficiency Probe - Windows + Invokes PowerCFG on the Endpoint to print out diagnostic information.

+

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ windows of operating system + Internal + 2016-09-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + "energy-requests.txt" +_end_ + +move __createfile run.bat + +wait run.bat]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21726).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21726).bes index 1f9ac3e42..8975189ee 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21726).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Power Efficiency Probe - Windows (21726).bes @@ -1,48 +1,48 @@ - - - - - Invoke - Power Efficiency Probe - Windows - Invokes PowerCFG on the Endpoint to print out diagnostic information.

-

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
- windows of operating system - Internal - 2016-09-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - "energy-requests.txt" -_end_ - -move __createfile run.bat - -wait run.bat]]> - - -
-
+ + + + + Invoke - Power Efficiency Probe - Windows + Invokes PowerCFG on the Endpoint to print out diagnostic information.

+

For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ windows of operating system + Internal + 2016-09-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + "energy-requests.txt" +_end_ + +move __createfile run.bat + +wait run.bat]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Provision Trusted Platform Module - Windows (23094).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Provision Trusted Platform Module - Windows (23094).bes index 70f6cb005..5db3f5d8c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Provision Trusted Platform Module - Windows (23094).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Provision Trusted Platform Module - Windows (23094).bes @@ -1,241 +1,241 @@ - - - - - Invoke - Provision Trusted Platform Module - Windows - Provisions the trusted platform module on the device. The device must have an activated TPM in the BIOS before this fixlet will be relevant.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ - /* Verify the TPM isn't fully provisioned */ (not boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") or (not boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") or (not boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") - Disk Encryption - Internal - 2016-04-29 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to provision the trusted platform module, set a random password on TPM ownership, and backup the password to the _BESData folder. - - > "$OutFolder\TPMOwnerAuthorization.txt" - -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" - -action requires restart]]> - - - - Click - here - to provision the trusted platform module and&nbsp;set a password on TPM ownership. - - // Enter your action script here -action uses wow64 redirection {not x64 of operating system} - -parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" - -parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" - -folder create "{parameter "Storage"}" - -delete __createfile -delete powershell.ps1 - -createfile until _end_ -param ( - $OutFolder = "." -) - -import-module Bitlocker - -$guid = [guid]::NewGuid().Guid - -# If we are running on a version newer than Windows 7 use the new TPM cmdlets -if ([Environment]::OSVersion.Version -gt (new-object 'Version' 6,2)) {{ - #Physical Presence Allowed - #$TPMResult = Initialize-Tpm -ForceClearAllowed -PhysicalPresenceAllowed - - #No Physical Presence Allowed - $TPMResult = Initialize-Tpm -allowclear - - #Set TPM Owner Key - Set-TpmOwnerAuth -NewOwnerAuthorization (ConvertTo-TpmOwnerAuth -PassPhrase $guid) - - #Backup Owner Key to Registry - Import-TpmOwnerAuth -OwnershipAuthorization (ConvertTo-TpmOwnerAuth -PassPhrase $guid) - -} else {{ # If we are running on Windows 7 use the old manage-bde method - manage-bde -tpm -turnon - manage-bde -tpm -takeownership "$GUID" -} - -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" - -action requires restart - - - - Click - here - to provision the trusted platform module - - // Enter your action script here -action uses wow64 redirection {not x64 of operating system} - -parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" - -parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" - -folder create "{parameter "Storage"}" - -delete __createfile -delete powershell.ps1 - -createfile until _end_ -param ( - $OutFolder = "." -) - -import-module Bitlocker - - -# If we are running on a version newer than Windows 7 use the new TPM cmdlets -if ([Environment]::OSVersion.Version -gt (new-object 'Version' 6,2)) {{ - #Physical Presence Allowed - #$TPMResult = Initialize-Tpm -ForceClearAllowed -PhysicalPresenceAllowed - - #No Physical Presence Allowed - $TPMResult = Initialize-Tpm -allowclear - -} else {{ # If we are running on Windows 7 use the old manage-bde method - manage-bde -tpm -turnon -} - -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" - -action requires restart - - - - Click - here - to provision the trusted platform module allowing a physical presence requirement, set a random password on TPM ownership, and backup the password to the _BESData folder. - - > "$OutFolder\TPMOwnerAuthorization.txt" - -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" - -action requires restart]]> - -
-
+ + + + + Invoke - Provision Trusted Platform Module - Windows + Provisions the trusted platform module on the device. The device must have an activated TPM in the BIOS before this fixlet will be relevant.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists selects "* from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm" /* Require the TPM Exists on the System */ + /* Verify the TPM isn't fully provisioned */ (not boolean value of selects "IsActivated_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") or (not boolean value of selects "IsEnabled_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") or (not boolean value of selects "IsOwned_InitialValue from Win32_Tpm" of wmis "root\CIMv2\Security\MicrosoftTpm") + Disk Encryption + Internal + 2016-04-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to provision the trusted platform module, set a random password on TPM ownership, and backup the password to the _BESData folder. + + > "$OutFolder\TPMOwnerAuthorization.txt" + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +action requires restart]]> + + + + Click + here + to provision the trusted platform module and&nbsp;set a password on TPM ownership. + + // Enter your action script here +action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" + +folder create "{parameter "Storage"}" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ +param ( + $OutFolder = "." +) + +import-module Bitlocker + +$guid = [guid]::NewGuid().Guid + +# If we are running on a version newer than Windows 7 use the new TPM cmdlets +if ([Environment]::OSVersion.Version -gt (new-object 'Version' 6,2)) {{ + #Physical Presence Allowed + #$TPMResult = Initialize-Tpm -ForceClearAllowed -PhysicalPresenceAllowed + + #No Physical Presence Allowed + $TPMResult = Initialize-Tpm -allowclear + + #Set TPM Owner Key + Set-TpmOwnerAuth -NewOwnerAuthorization (ConvertTo-TpmOwnerAuth -PassPhrase $guid) + + #Backup Owner Key to Registry + Import-TpmOwnerAuth -OwnershipAuthorization (ConvertTo-TpmOwnerAuth -PassPhrase $guid) + +} else {{ # If we are running on Windows 7 use the old manage-bde method + manage-bde -tpm -turnon + manage-bde -tpm -takeownership "$GUID" +} + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +action requires restart + + + + Click + here + to provision the trusted platform module + + // Enter your action script here +action uses wow64 redirection {not x64 of operating system} + +parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +parameter "Storage"="{pathname of folder "__Global" of data folder of client}\Bitlocker" + +folder create "{parameter "Storage"}" + +delete __createfile +delete powershell.ps1 + +createfile until _end_ +param ( + $OutFolder = "." +) + +import-module Bitlocker + + +# If we are running on a version newer than Windows 7 use the new TPM cmdlets +if ([Environment]::OSVersion.Version -gt (new-object 'Version' 6,2)) {{ + #Physical Presence Allowed + #$TPMResult = Initialize-Tpm -ForceClearAllowed -PhysicalPresenceAllowed + + #No Physical Presence Allowed + $TPMResult = Initialize-Tpm -allowclear + +} else {{ # If we are running on Windows 7 use the old manage-bde method + manage-bde -tpm -turnon +} + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +action requires restart + + + + Click + here + to provision the trusted platform module allowing a physical presence requirement, set a random password on TPM ownership, and backup the password to the _BESData folder. + + > "$OutFolder\TPMOwnerAuthorization.txt" + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1 -OutFolder "{parameter "Storage"}" + +action requires restart]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Administrators - Windows (24407).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Administrators - Windows (24407).bes index 1447beea5..9817e3598 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Administrators - Windows (24407).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Administrators - Windows (24407).bes @@ -1,39 +1,39 @@ - - - - - Invoke - Remove Current User from Administrators - Windows - This Fixlet removes the currently logged on user from the Administrators group.

-

Applicability Note: This Fixlet will be relevant only if the currently logged on user is explicitly a member of the Administrators group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists members whose (sid of it = sid of logged on user) of local group "administrators" - /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" - Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - wait net localgroup "administrators" "{sid of current user}" /delete - - -
-
+ + + + + Invoke - Remove Current User from Administrators - Windows + This Fixlet removes the currently logged on user from the Administrators group.

+

Applicability Note: This Fixlet will be relevant only if the currently logged on user is explicitly a member of the Administrators group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists members whose (sid of it = sid of logged on user) of local group "administrators" + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + wait net localgroup "administrators" "{sid of current user}" /delete + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Authorized Requestors - Windows (24159).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Authorized Requestors - Windows (24159).bes index cd6877113..b139940c7 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Authorized Requestors - Windows (24159).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Authorized Requestors - Windows (24159).bes @@ -1,185 +1,185 @@ - - - - - Invoke - Remove Current User from Authorized Requestors - Windows - This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists logged on user - exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - -
-
+ + + + + Invoke - Remove Current User from Authorized Requestors - Windows + This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Authorized Requestors\Current" of x32 registry + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Remote Desktop Users - Windows (24408).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Remote Desktop Users - Windows (24408).bes index f0b3b2c60..83b41f1b6 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Remote Desktop Users - Windows (24408).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Remote Desktop Users - Windows (24408).bes @@ -1,41 +1,41 @@ - - - - - Invoke - Remove Current User from Remote Desktop Users - Windows - This Fixlet removes the currently logged on user from the Remote Desktop Users group.

-

Applicability Note: This Fixlet will be relevant if the currently logged on user is explicitely a member of the Remote Desktop Users group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" - exists members whose (sid of it = sid of logged on user) of local group "Remote Desktop User" - Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -wait net localgroup "Remote Desktop Users" "{sid of current user}" /delete - - -
-
+ + + + + Invoke - Remove Current User from Remote Desktop Users - Windows + This Fixlet removes the currently logged on user from the Remote Desktop Users group.

+

Applicability Note: This Fixlet will be relevant if the currently logged on user is explicitely a member of the Remote Desktop Users group. This Fixlet will not be relevant if there are no logged on users or if there is more than one logged on user.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + /* exclude Built-In Administrator */ component string of sid of logged on user does not start with "S-1-5-21-" or component string of sid of logged on user does not end with "-500" + exists members whose (sid of it = sid of logged on user) of local group "Remote Desktop User" + Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +wait net localgroup "Remote Desktop Users" "{sid of current user}" /delete + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Temporary Administrators - Windows (24160).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Temporary Administrators - Windows (24160).bes index df169a7a5..2a4a91ff2 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Temporary Administrators - Windows (24160).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Current User from Temporary Administrators - Windows (24160).bes @@ -1,185 +1,185 @@ - - - - - Invoke - Remove Current User from Temporary Administrators - Windows - This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists logged on user - exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - - - -
-
+ + + + + Invoke - Remove Current User from Temporary Administrators - Windows + This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists logged on user + exists key (component string of sid of logged on user as string) of keys "HKEY_LOCAL_MACHINE\Software\C3 Inventory\Temporary Administrative Rights\Administrators\Current" of x32 registry + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Authorized Requestors - Windows (24161).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Authorized Requestors - Windows (24161).bes index 268c9a3e7..76b02a1d2 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Authorized Requestors - Windows (24161).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Authorized Requestors - Windows (24161).bes @@ -1,184 +1,184 @@ - - - - - Invoke - Remove Expired Users from Authorized Requestors - Windows - This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - -
-
+ + + + + Invoke - Remove Expired Users from Authorized Requestors - Windows + This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Temporary Administrators - Windows (24162).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Temporary Administrators - Windows (24162).bes index bcad7cef8..b65599aae 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Temporary Administrators - Windows (24162).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Remove Expired Users from Temporary Administrators - Windows (24162).bes @@ -1,184 +1,184 @@ - - - - - Invoke - Remove Expired Users from Temporary Administrators - Windows - This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - - Temporary Administrative Rights - Internal - 2016-04-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - - - -
-
+ + + + + Invoke - Remove Expired Users from Temporary Administrators - Windows + This Fixlet removes any expired temporary administrators as provisioned by the temporary administrator fixlet in the C3-Inventory site.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + + Temporary Administrative Rights + Internal + 2016-04-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Reset Local Group Policy - Windows (22647).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Reset Local Group Policy - Windows (22647).bes index 1353a0b70..594d333ab 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Reset Local Group Policy - Windows (22647).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Reset Local Group Policy - Windows (22647).bes @@ -1,51 +1,51 @@ - - - - - Invoke - Reset Local Group Policy - Windows - This Fixlet resets local Group Policy.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists SELECT objects "* FROM RSOP_RegistryPolicySetting WHERE GPOID='LocalGPO' and valueName != ''" /* valueName != '' removes blank keys, not sure if this breaks anything*/ of rsop computer wmi - Group Policy - Internal - 2016-09-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -delete __createfile -delete run.bat - -createfile until _end_ -RD /S /Q "%WinDir%\System32\GroupPolicyUsers" -RD /S /Q "%WinDir%\System32\GroupPolicy" -echo n | gpupdate /target:computer /force /wait:120 -echo n | gpupdate /target:user /force /wait:120 -_end_ - -move __createfile run.bat - -waithidden run.bat - - -
-
+ + + + + Invoke - Reset Local Group Policy - Windows + This Fixlet resets local Group Policy.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists SELECT objects "* FROM RSOP_RegistryPolicySetting WHERE GPOID='LocalGPO' and valueName != ''" /* valueName != '' removes blank keys, not sure if this breaks anything*/ of rsop computer wmi + Group Policy + Internal + 2016-09-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +delete __createfile +delete run.bat + +createfile until _end_ +RD /S /Q "%WinDir%\System32\GroupPolicyUsers" +RD /S /Q "%WinDir%\System32\GroupPolicy" +echo n | gpupdate /target:computer /force /wait:120 +echo n | gpupdate /target:user /force /wait:120 +_end_ + +move __createfile run.bat + +waithidden run.bat + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Sync Client Clock - Windows (24110).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Sync Client Clock - Windows (24110).bes index 222d4f7c6..63e8d0b2a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Sync Client Clock - Windows (24110).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Sync Client Clock - Windows (24110).bes @@ -1,37 +1,37 @@ - - - - - Invoke - Sync Client Clock - Windows - This fixlet forces a sync of the client clock on Windows.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - Internal - 2017-04-21 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - -waithidden net stop w32time -waithidden net start w32time -waithidden w32tm /resync /rediscover - -
-
+ + + + + Invoke - Sync Client Clock - Windows + This fixlet forces a sync of the client clock on Windows.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Internal + 2017-04-21 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden net stop w32time +waithidden net start w32time +waithidden w32tm /resync /rediscover + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - WMI Repository Reset - Windows (22648).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - WMI Repository Reset - Windows (22648).bes index 4aab5bddf..ffebf9103 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - WMI Repository Reset - Windows (22648).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - WMI Repository Reset - Windows (22648).bes @@ -1,57 +1,57 @@ - - - - - Invoke - WMI Repository Reset - Windows - This fixlet will reset WMI it will be relevant on any Windows computer.

-

NOTE: Setting this fixlet to reapply will cause it to constantly reset the WMI repository. Apply once and DO NOT reapply.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - Windows Management Interface - Internal - 2016-04-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - {value of variable "temp" of environment}\wmi_simple.log 2>&1]]> - - -
-
+ + + + + Invoke - WMI Repository Reset - Windows + This fixlet will reset WMI it will be relevant on any Windows computer.

+

NOTE: Setting this fixlet to reapply will cause it to constantly reset the WMI repository. Apply once and DO NOT reapply.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + Windows Management Interface + Internal + 2016-04-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + {value of variable "temp" of environment}\wmi_simple.log 2>&1]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Cached Credentials Probe - Windows (20768).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Cached Credentials Probe - Windows (20768).bes index b62c206e1..1f312ee02 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Cached Credentials Probe - Windows (20768).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Cached Credentials Probe - Windows (20768).bes @@ -1,422 +1,422 @@ - - - - - Invoke - Windows Cached Credentials Probe - Windows - This fixlet uses published methods of extracting password hashes out of Windows systems in order to extract out the user name of the users whose credentials are cached on the workstation.

-

The script used by this fixlet stops short of extracting the password hash and ONLY extracts the user name associated with the cached credential.

-

This script is paired with the Analysis: Credentials - Cached Login Creds - Windows

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Windows-Credentials

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - Credential Caching - Internal - 2016-05-01 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - Get-PassHashes - -.LINK -http://www.labofapenetrationtester.com/2013/05/poshing-hashes-part-2.html?showComment=1386725874167#c8513980725823764060 -https://github.com/samratashok/nishang - -#> -#######################################powerdump written by David Kennedy######################################### - -#######################################powerdump written by David Kennedy######################################### -function LoadApi -{{ - $oldErrorAction = $global:ErrorActionPreference; - $global:ErrorActionPreference = "SilentlyContinue"; - $test = [PowerDump.Native]; - $global:ErrorActionPreference = $oldErrorAction; - if ($test) - {{ - # already loaded - return; - } - -$code = @' -using System; -using System.Security.Cryptography; -using System.Runtime.InteropServices; -using System.Text; - -namespace PowerDump -{{ - public class Native - {{ - [DllImport("advapi32.dll", CharSet = CharSet.Auto)] - public static extern int RegOpenKeyEx( - int hKey, - string subKey, - int ulOptions, - int samDesired, - out int hkResult); - - [DllImport("advapi32.dll", EntryPoint = "RegEnumKeyEx")] - extern public static int RegEnumKeyEx( - int hkey, - int index, - StringBuilder lpName, - ref int lpcbName, - int reserved, - StringBuilder lpClass, - ref int lpcbClass, - out long lpftLastWriteTime); - - [DllImport("advapi32.dll", EntryPoint="RegQueryInfoKey", CallingConvention=CallingConvention.Winapi, SetLastError=true)] - extern public static int RegQueryInfoKey( - int hkey, - StringBuilder lpClass, - ref int lpcbClass, - int lpReserved, - out int lpcSubKeys, - out int lpcbMaxSubKeyLen, - out int lpcbMaxClassLen, - out int lpcValues, - out int lpcbMaxValueNameLen, - out int lpcbMaxValueLen, - out int lpcbSecurityDescriptor, - IntPtr lpftLastWriteTime); - - [DllImport("advapi32.dll", SetLastError=true)] - public static extern int RegCloseKey( - int hKey); - - } - } // end namespace PowerDump - - public class Shift {{ - public static int Right(int x, int count) {{ return x >> count; } - public static uint Right(uint x, int count) {{ return x >> count; } - public static long Right(long x, int count) {{ return x >> count; } - public static ulong Right(ulong x, int count) {{ return x >> count; } - public static int Left(int x, int count) {{ return x << count; } - public static uint Left(uint x, int count) {{ return x << count; } - public static long Left(long x, int count) {{ return x << count; } - public static ulong Left(ulong x, int count) {{ return x << count; } - } -'@ - - $provider = New-Object Microsoft.CSharp.CSharpCodeProvider - $dllName = [PsObject].Assembly.Location - $compilerParameters = New-Object System.CodeDom.Compiler.CompilerParameters - $assemblies = @("System.dll", $dllName) - $compilerParameters.ReferencedAssemblies.AddRange($assemblies) - $compilerParameters.GenerateInMemory = $true - $compilerResults = $provider.CompileAssemblyFromSource($compilerParameters, $code) - if($compilerResults.Errors.Count -gt 0) {{ - $compilerResults.Errors | % {{ Write-Error ("{{0}:`t{{1}" -f $_.Line,$_.ErrorText) } - } - -} - -$antpassword = [Text.Encoding]::ASCII.GetBytes("NTPASSWORD`0"); -$almpassword = [Text.Encoding]::ASCII.GetBytes("LMPASSWORD`0"); -$empty_lm = [byte[]]@(0xaa,0xd3,0xb4,0x35,0xb5,0x14,0x04,0xee,0xaa,0xd3,0xb4,0x35,0xb5,0x14,0x04,0xee); -$empty_nt = [byte[]]@(0x31,0xd6,0xcf,0xe0,0xd1,0x6a,0xe9,0x31,0xb7,0x3c,0x59,0xd7,0xe0,0xc0,0x89,0xc0); -$odd_parity = @( - 1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11, 13, 13, 14, 14, - 16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31, - 32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47, - 49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62, - 64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79, - 81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94, - 97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110, - 112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127, - 128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143, - 145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158, - 161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174, - 176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191, - 193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206, - 208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223, - 224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239, - 241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254 -); - -function sid_to_key($sid) -{{ - $s1 = @(); - $s1 += [char]($sid -band 0xFF); - $s1 += [char]([Shift]::Right($sid,8) -band 0xFF); - $s1 += [char]([Shift]::Right($sid,16) -band 0xFF); - $s1 += [char]([Shift]::Right($sid,24) -band 0xFF); - $s1 += $s1[0]; - $s1 += $s1[1]; - $s1 += $s1[2]; - $s2 = @(); - $s2 += $s1[3]; $s2 += $s1[0]; $s2 += $s1[1]; $s2 += $s1[2]; - $s2 += $s2[0]; $s2 += $s2[1]; $s2 += $s2[2]; - return ,((str_to_key $s1),(str_to_key $s2)); -} - -function str_to_key($s) -{{ - $key = @(); - $key += [Shift]::Right([int]($s[0]), 1 ); - $key += [Shift]::Left( $([int]($s[0]) -band 0x01), 6) -bor [Shift]::Right([int]($s[1]),2); - $key += [Shift]::Left( $([int]($s[1]) -band 0x03), 5) -bor [Shift]::Right([int]($s[2]),3); - $key += [Shift]::Left( $([int]($s[2]) -band 0x07), 4) -bor [Shift]::Right([int]($s[3]),4); - $key += [Shift]::Left( $([int]($s[3]) -band 0x0F), 3) -bor [Shift]::Right([int]($s[4]),5); - $key += [Shift]::Left( $([int]($s[4]) -band 0x1F), 2) -bor [Shift]::Right([int]($s[5]),6); - $key += [Shift]::Left( $([int]($s[5]) -band 0x3F), 1) -bor [Shift]::Right([int]($s[6]),7); - $key += $([int]($s[6]) -band 0x7F); - 0..7 | %{{ - $key[$_] = [Shift]::Left($key[$_], 1); - $key[$_] = $odd_parity[$key[$_]]; - } - return ,$key; -} - -function NewRC4([byte[]]$key) -{{ - return new-object Object | - Add-Member NoteProperty key $key -PassThru | - Add-Member NoteProperty S $null -PassThru | - Add-Member ScriptMethod init {{ - if (-not $this.S) - {{ - [byte[]]$this.S = 0..255; - 0..255 | % -begin{{[long]$j=0;}{{ - $j = ($j + $this.key[$($_ % $this.key.Length)] + $this.S[$_]) % $this.S.Length; - $temp = $this.S[$_]; $this.S[$_] = $this.S[$j]; $this.S[$j] = $temp; - } - } - } -PassThru | - Add-Member ScriptMethod "encrypt" {{ - $data = $args[0]; - $this.init(); - $outbuf = new-object byte[] $($data.Length); - $S2 = $this.S[0..$this.S.Length]; - 0..$($data.Length-1) | % -begin{{$i=0;$j=0;} {{ - $i = ($i+1) % $S2.Length; - $j = ($j + $S2[$i]) % $S2.Length; - $temp = $S2[$i];$S2[$i] = $S2[$j];$S2[$j] = $temp; - $a = $data[$_]; - $b = $S2[ $($S2[$i]+$S2[$j]) % $S2.Length ]; - $outbuf[$_] = ($a -bxor $b); - } - return ,$outbuf; - } -PassThru -} - -function des_encrypt([byte[]]$data, [byte[]]$key) -{{ - return ,(des_transform $data $key $true) -} - -function des_decrypt([byte[]]$data, [byte[]]$key) -{{ - return ,(des_transform $data $key $false) -} - -function des_transform([byte[]]$data, [byte[]]$key, $doEncrypt) -{{ - $des = new-object Security.Cryptography.DESCryptoServiceProvider; - $des.Mode = [Security.Cryptography.CipherMode]::ECB; - $des.Padding = [Security.Cryptography.PaddingMode]::None; - $des.Key = $key; - $des.IV = $key; - $transform = $null; - if ($doEncrypt) {{$transform = $des.CreateEncryptor();} - else{{$transform = $des.CreateDecryptor();} - $result = $transform.TransformFinalBlock($data, 0, $data.Length); - return ,$result; -} - -function Get-RegKeyClass([string]$key, [string]$subkey) -{{ - switch ($Key) {{ - "HKCR" {{ $nKey = 0x80000000} #HK Classes Root - "HKCU" {{ $nKey = 0x80000001} #HK Current User - "HKLM" {{ $nKey = 0x80000002} #HK Local Machine - "HKU" {{ $nKey = 0x80000003} #HK Users - "HKCC" {{ $nKey = 0x80000005} #HK Current Config - default {{ - throw "Invalid Key. Use one of the following options HKCR, HKCU, HKLM, HKU, HKCC" - } - } - $KEYQUERYVALUE = 0x1; - $KEYREAD = 0x19; - $KEYALLACCESS = 0x3F; - $result = ""; - [int]$hkey=0 - if (-not [PowerDump.Native]::RegOpenKeyEx($nkey,$subkey,0,$KEYREAD,[ref]$hkey)) - {{ - $classVal = New-Object Text.Stringbuilder 1024 - [int]$len = 1024 - if (-not [PowerDump.Native]::RegQueryInfoKey($hkey,$classVal,[ref]$len,0,[ref]$null,[ref]$null, - [ref]$null,[ref]$null,[ref]$null,[ref]$null,[ref]$null,0)) - {{ - $result = $classVal.ToString() - } - else - {{ - Write-Error "RegQueryInfoKey failed"; - } - [PowerDump.Native]::RegCloseKey($hkey) | Out-Null - } - else - {{ - Write-Error "Cannot open key"; - } - return $result; -} - -function Get-BootKey -{{ - $s = [string]::Join("",$("JD","Skew1","GBG","Data" | %{{Get-RegKeyClass "HKLM" "SYSTEM\CurrentControlSet\Control\Lsa\$_"})); - $b = new-object byte[] $($s.Length/2); - 0..$($b.Length-1) | %{{$b[$_] = [Convert]::ToByte($s.Substring($($_*2),2),16)} - $b2 = new-object byte[] 16; - 0x8, 0x5, 0x4, 0x2, 0xb, 0x9, 0xd, 0x3, 0x0, 0x6, 0x1, 0xc, 0xe, 0xa, 0xf, 0x7 | % -begin{{$i=0;}{{$b2[$i]=$b[$_];$i++} - return ,$b2; -} - -function Get-HBootKey -{{ - param([byte[]]$bootkey); - $aqwerty = [Text.Encoding]::ASCII.GetBytes("!@#$%^&*()qwertyUIOPAzxcvbnmQQQQQQQQQQQQ)(*@&%`0"); - $anum = [Text.Encoding]::ASCII.GetBytes("0123456789012345678901234567890123456789`0"); - $k = Get-Item HKLM:\SAM\SAM\Domains\Account; - if (-not $k) {{return $null} - [byte[]]$F = $k.GetValue("F"); - if (-not $F) {{return $null} - $rc4key = [Security.Cryptography.MD5]::Create().ComputeHash($F[0x70..0x7F] + $aqwerty + $bootkey + $anum); - $rc4 = NewRC4 $rc4key; - return ,($rc4.encrypt($F[0x80..0x9F])); -} - -function Get-UserName([byte[]]$V) -{{ - if (-not $V) {{return $null}; - $offset = [BitConverter]::ToInt32($V[0x0c..0x0f],0) + 0xCC; - $len = [BitConverter]::ToInt32($V[0x10..0x13],0); - return [Text.Encoding]::Unicode.GetString($V, $offset, $len); -} - -function Get-UserHashes($u, [byte[]]$hbootkey) -{{ - [byte[]]$enc_lm_hash = $null; [byte[]]$enc_nt_hash = $null; - if ($u.HashOffset + 0x28 -lt $u.V.Length) - {{ - $lm_hash_offset = $u.HashOffset + 4; - $nt_hash_offset = $u.HashOffset + 8 + 0x10; - $enc_lm_hash = $u.V[$($lm_hash_offset)..$($lm_hash_offset+0x0f)]; - $enc_nt_hash = $u.V[$($nt_hash_offset)..$($nt_hash_offset+0x0f)]; - } - elseif ($u.HashOffset + 0x14 -lt $u.V.Length) - {{ - $nt_hash_offset = $u.HashOffset + 8; - $enc_nt_hash = [byte[]]$u.V[$($nt_hash_offset)..$($nt_hash_offset+0x0f)]; - } - return ,(DecryptHashes $u.Rid $enc_lm_hash $enc_nt_hash $hbootkey); -} - -function DecryptHashes($rid, [byte[]]$enc_lm_hash, [byte[]]$enc_nt_hash, [byte[]]$hbootkey) -{{ - [byte[]]$lmhash = $empty_lm; [byte[]]$nthash=$empty_nt; - # LM Hash - if ($enc_lm_hash) - {{ - $lmhash = DecryptSingleHash $rid $hbootkey $enc_lm_hash $almpassword; - } - - # NT Hash - if ($enc_nt_hash) - {{ - $nthash = DecryptSingleHash $rid $hbootkey $enc_nt_hash $antpassword; - } - - return ,($lmhash,$nthash) -} - -function DecryptSingleHash($rid,[byte[]]$hbootkey,[byte[]]$enc_hash,[byte[]]$lmntstr) -{{ - $deskeys = sid_to_key $rid; - $md5 = [Security.Cryptography.MD5]::Create(); - $rc4_key = $md5.ComputeHash($hbootkey[0..0x0f] + [BitConverter]::GetBytes($rid) + $lmntstr); - $rc4 = NewRC4 $rc4_key; - $obfkey = $rc4.encrypt($enc_hash); - $hash = (des_decrypt $obfkey[0..7] $deskeys[0]) + - (des_decrypt $obfkey[8..$($obfkey.Length - 1)] $deskeys[1]); - return ,$hash; -} - -function Get-UserKeys -{{ - ls HKLM:\SAM\SAM\Domains\Account\Users | - where {{$_.PSChildName -match "^[0-9A-Fa-f]{{8}$"} | - Add-Member AliasProperty KeyName PSChildName -PassThru | - Add-Member ScriptProperty Rid {{[Convert]::ToInt32($this.PSChildName, 16)} -PassThru | - Add-Member ScriptProperty V {{[byte[]]($this.GetValue("V"))} -PassThru | - Add-Member ScriptProperty UserName {{Get-UserName($this.GetValue("V"))} -PassThru | - Add-Member ScriptProperty HashOffset {{[BitConverter]::ToUInt32($this.GetValue("V")[0x9c..0x9f],0) + 0xCC} -PassThru -} - -function DumpHashes -{{ - LoadApi - $bootkey = Get-BootKey; - $hbootKey = Get-HBootKey $bootkey; - Get-UserKeys | %{{ - $hashes = Get-UserHashes $_ $hBootKey; - "{{0}" -f ($_.UserName);#,$_.Rid, - # [BitConverter]::ToString($hashes[0]).Replace("-","").ToLower(), - # [BitConverter]::ToString($hashes[1]).Replace("-","").ToLower() - - } -} - -DumpHashes | out-file -filePath "{parameter "Storage"}\CachedUsers.txt" -encoding ASCII - -_end_ - -move __createfile powershell.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1]]> - - -
-
+ + + + + Invoke - Windows Cached Credentials Probe - Windows + This fixlet uses published methods of extracting password hashes out of Windows systems in order to extract out the user name of the users whose credentials are cached on the workstation.

+

The script used by this fixlet stops short of extracting the password hash and ONLY extracts the user name associated with the cached credential.

+

This script is paired with the Analysis: Credentials - Cached Login Creds - Windows

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Windows-Credentials

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + Credential Caching + Internal + 2016-05-01 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + Get-PassHashes + +.LINK +http://www.labofapenetrationtester.com/2013/05/poshing-hashes-part-2.html?showComment=1386725874167#c8513980725823764060 +https://github.com/samratashok/nishang + +#> +#######################################powerdump written by David Kennedy######################################### + +#######################################powerdump written by David Kennedy######################################### +function LoadApi +{{ + $oldErrorAction = $global:ErrorActionPreference; + $global:ErrorActionPreference = "SilentlyContinue"; + $test = [PowerDump.Native]; + $global:ErrorActionPreference = $oldErrorAction; + if ($test) + {{ + # already loaded + return; + } + +$code = @' +using System; +using System.Security.Cryptography; +using System.Runtime.InteropServices; +using System.Text; + +namespace PowerDump +{{ + public class Native + {{ + [DllImport("advapi32.dll", CharSet = CharSet.Auto)] + public static extern int RegOpenKeyEx( + int hKey, + string subKey, + int ulOptions, + int samDesired, + out int hkResult); + + [DllImport("advapi32.dll", EntryPoint = "RegEnumKeyEx")] + extern public static int RegEnumKeyEx( + int hkey, + int index, + StringBuilder lpName, + ref int lpcbName, + int reserved, + StringBuilder lpClass, + ref int lpcbClass, + out long lpftLastWriteTime); + + [DllImport("advapi32.dll", EntryPoint="RegQueryInfoKey", CallingConvention=CallingConvention.Winapi, SetLastError=true)] + extern public static int RegQueryInfoKey( + int hkey, + StringBuilder lpClass, + ref int lpcbClass, + int lpReserved, + out int lpcSubKeys, + out int lpcbMaxSubKeyLen, + out int lpcbMaxClassLen, + out int lpcValues, + out int lpcbMaxValueNameLen, + out int lpcbMaxValueLen, + out int lpcbSecurityDescriptor, + IntPtr lpftLastWriteTime); + + [DllImport("advapi32.dll", SetLastError=true)] + public static extern int RegCloseKey( + int hKey); + + } + } // end namespace PowerDump + + public class Shift {{ + public static int Right(int x, int count) {{ return x >> count; } + public static uint Right(uint x, int count) {{ return x >> count; } + public static long Right(long x, int count) {{ return x >> count; } + public static ulong Right(ulong x, int count) {{ return x >> count; } + public static int Left(int x, int count) {{ return x << count; } + public static uint Left(uint x, int count) {{ return x << count; } + public static long Left(long x, int count) {{ return x << count; } + public static ulong Left(ulong x, int count) {{ return x << count; } + } +'@ + + $provider = New-Object Microsoft.CSharp.CSharpCodeProvider + $dllName = [PsObject].Assembly.Location + $compilerParameters = New-Object System.CodeDom.Compiler.CompilerParameters + $assemblies = @("System.dll", $dllName) + $compilerParameters.ReferencedAssemblies.AddRange($assemblies) + $compilerParameters.GenerateInMemory = $true + $compilerResults = $provider.CompileAssemblyFromSource($compilerParameters, $code) + if($compilerResults.Errors.Count -gt 0) {{ + $compilerResults.Errors | % {{ Write-Error ("{{0}:`t{{1}" -f $_.Line,$_.ErrorText) } + } + +} + +$antpassword = [Text.Encoding]::ASCII.GetBytes("NTPASSWORD`0"); +$almpassword = [Text.Encoding]::ASCII.GetBytes("LMPASSWORD`0"); +$empty_lm = [byte[]]@(0xaa,0xd3,0xb4,0x35,0xb5,0x14,0x04,0xee,0xaa,0xd3,0xb4,0x35,0xb5,0x14,0x04,0xee); +$empty_nt = [byte[]]@(0x31,0xd6,0xcf,0xe0,0xd1,0x6a,0xe9,0x31,0xb7,0x3c,0x59,0xd7,0xe0,0xc0,0x89,0xc0); +$odd_parity = @( + 1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11, 13, 13, 14, 14, + 16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31, + 32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47, + 49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62, + 64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79, + 81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94, + 97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110, + 112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127, + 128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143, + 145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158, + 161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174, + 176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191, + 193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206, + 208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223, + 224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239, + 241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254 +); + +function sid_to_key($sid) +{{ + $s1 = @(); + $s1 += [char]($sid -band 0xFF); + $s1 += [char]([Shift]::Right($sid,8) -band 0xFF); + $s1 += [char]([Shift]::Right($sid,16) -band 0xFF); + $s1 += [char]([Shift]::Right($sid,24) -band 0xFF); + $s1 += $s1[0]; + $s1 += $s1[1]; + $s1 += $s1[2]; + $s2 = @(); + $s2 += $s1[3]; $s2 += $s1[0]; $s2 += $s1[1]; $s2 += $s1[2]; + $s2 += $s2[0]; $s2 += $s2[1]; $s2 += $s2[2]; + return ,((str_to_key $s1),(str_to_key $s2)); +} + +function str_to_key($s) +{{ + $key = @(); + $key += [Shift]::Right([int]($s[0]), 1 ); + $key += [Shift]::Left( $([int]($s[0]) -band 0x01), 6) -bor [Shift]::Right([int]($s[1]),2); + $key += [Shift]::Left( $([int]($s[1]) -band 0x03), 5) -bor [Shift]::Right([int]($s[2]),3); + $key += [Shift]::Left( $([int]($s[2]) -band 0x07), 4) -bor [Shift]::Right([int]($s[3]),4); + $key += [Shift]::Left( $([int]($s[3]) -band 0x0F), 3) -bor [Shift]::Right([int]($s[4]),5); + $key += [Shift]::Left( $([int]($s[4]) -band 0x1F), 2) -bor [Shift]::Right([int]($s[5]),6); + $key += [Shift]::Left( $([int]($s[5]) -band 0x3F), 1) -bor [Shift]::Right([int]($s[6]),7); + $key += $([int]($s[6]) -band 0x7F); + 0..7 | %{{ + $key[$_] = [Shift]::Left($key[$_], 1); + $key[$_] = $odd_parity[$key[$_]]; + } + return ,$key; +} + +function NewRC4([byte[]]$key) +{{ + return new-object Object | + Add-Member NoteProperty key $key -PassThru | + Add-Member NoteProperty S $null -PassThru | + Add-Member ScriptMethod init {{ + if (-not $this.S) + {{ + [byte[]]$this.S = 0..255; + 0..255 | % -begin{{[long]$j=0;}{{ + $j = ($j + $this.key[$($_ % $this.key.Length)] + $this.S[$_]) % $this.S.Length; + $temp = $this.S[$_]; $this.S[$_] = $this.S[$j]; $this.S[$j] = $temp; + } + } + } -PassThru | + Add-Member ScriptMethod "encrypt" {{ + $data = $args[0]; + $this.init(); + $outbuf = new-object byte[] $($data.Length); + $S2 = $this.S[0..$this.S.Length]; + 0..$($data.Length-1) | % -begin{{$i=0;$j=0;} {{ + $i = ($i+1) % $S2.Length; + $j = ($j + $S2[$i]) % $S2.Length; + $temp = $S2[$i];$S2[$i] = $S2[$j];$S2[$j] = $temp; + $a = $data[$_]; + $b = $S2[ $($S2[$i]+$S2[$j]) % $S2.Length ]; + $outbuf[$_] = ($a -bxor $b); + } + return ,$outbuf; + } -PassThru +} + +function des_encrypt([byte[]]$data, [byte[]]$key) +{{ + return ,(des_transform $data $key $true) +} + +function des_decrypt([byte[]]$data, [byte[]]$key) +{{ + return ,(des_transform $data $key $false) +} + +function des_transform([byte[]]$data, [byte[]]$key, $doEncrypt) +{{ + $des = new-object Security.Cryptography.DESCryptoServiceProvider; + $des.Mode = [Security.Cryptography.CipherMode]::ECB; + $des.Padding = [Security.Cryptography.PaddingMode]::None; + $des.Key = $key; + $des.IV = $key; + $transform = $null; + if ($doEncrypt) {{$transform = $des.CreateEncryptor();} + else{{$transform = $des.CreateDecryptor();} + $result = $transform.TransformFinalBlock($data, 0, $data.Length); + return ,$result; +} + +function Get-RegKeyClass([string]$key, [string]$subkey) +{{ + switch ($Key) {{ + "HKCR" {{ $nKey = 0x80000000} #HK Classes Root + "HKCU" {{ $nKey = 0x80000001} #HK Current User + "HKLM" {{ $nKey = 0x80000002} #HK Local Machine + "HKU" {{ $nKey = 0x80000003} #HK Users + "HKCC" {{ $nKey = 0x80000005} #HK Current Config + default {{ + throw "Invalid Key. Use one of the following options HKCR, HKCU, HKLM, HKU, HKCC" + } + } + $KEYQUERYVALUE = 0x1; + $KEYREAD = 0x19; + $KEYALLACCESS = 0x3F; + $result = ""; + [int]$hkey=0 + if (-not [PowerDump.Native]::RegOpenKeyEx($nkey,$subkey,0,$KEYREAD,[ref]$hkey)) + {{ + $classVal = New-Object Text.Stringbuilder 1024 + [int]$len = 1024 + if (-not [PowerDump.Native]::RegQueryInfoKey($hkey,$classVal,[ref]$len,0,[ref]$null,[ref]$null, + [ref]$null,[ref]$null,[ref]$null,[ref]$null,[ref]$null,0)) + {{ + $result = $classVal.ToString() + } + else + {{ + Write-Error "RegQueryInfoKey failed"; + } + [PowerDump.Native]::RegCloseKey($hkey) | Out-Null + } + else + {{ + Write-Error "Cannot open key"; + } + return $result; +} + +function Get-BootKey +{{ + $s = [string]::Join("",$("JD","Skew1","GBG","Data" | %{{Get-RegKeyClass "HKLM" "SYSTEM\CurrentControlSet\Control\Lsa\$_"})); + $b = new-object byte[] $($s.Length/2); + 0..$($b.Length-1) | %{{$b[$_] = [Convert]::ToByte($s.Substring($($_*2),2),16)} + $b2 = new-object byte[] 16; + 0x8, 0x5, 0x4, 0x2, 0xb, 0x9, 0xd, 0x3, 0x0, 0x6, 0x1, 0xc, 0xe, 0xa, 0xf, 0x7 | % -begin{{$i=0;}{{$b2[$i]=$b[$_];$i++} + return ,$b2; +} + +function Get-HBootKey +{{ + param([byte[]]$bootkey); + $aqwerty = [Text.Encoding]::ASCII.GetBytes("!@#$%^&*()qwertyUIOPAzxcvbnmQQQQQQQQQQQQ)(*@&%`0"); + $anum = [Text.Encoding]::ASCII.GetBytes("0123456789012345678901234567890123456789`0"); + $k = Get-Item HKLM:\SAM\SAM\Domains\Account; + if (-not $k) {{return $null} + [byte[]]$F = $k.GetValue("F"); + if (-not $F) {{return $null} + $rc4key = [Security.Cryptography.MD5]::Create().ComputeHash($F[0x70..0x7F] + $aqwerty + $bootkey + $anum); + $rc4 = NewRC4 $rc4key; + return ,($rc4.encrypt($F[0x80..0x9F])); +} + +function Get-UserName([byte[]]$V) +{{ + if (-not $V) {{return $null}; + $offset = [BitConverter]::ToInt32($V[0x0c..0x0f],0) + 0xCC; + $len = [BitConverter]::ToInt32($V[0x10..0x13],0); + return [Text.Encoding]::Unicode.GetString($V, $offset, $len); +} + +function Get-UserHashes($u, [byte[]]$hbootkey) +{{ + [byte[]]$enc_lm_hash = $null; [byte[]]$enc_nt_hash = $null; + if ($u.HashOffset + 0x28 -lt $u.V.Length) + {{ + $lm_hash_offset = $u.HashOffset + 4; + $nt_hash_offset = $u.HashOffset + 8 + 0x10; + $enc_lm_hash = $u.V[$($lm_hash_offset)..$($lm_hash_offset+0x0f)]; + $enc_nt_hash = $u.V[$($nt_hash_offset)..$($nt_hash_offset+0x0f)]; + } + elseif ($u.HashOffset + 0x14 -lt $u.V.Length) + {{ + $nt_hash_offset = $u.HashOffset + 8; + $enc_nt_hash = [byte[]]$u.V[$($nt_hash_offset)..$($nt_hash_offset+0x0f)]; + } + return ,(DecryptHashes $u.Rid $enc_lm_hash $enc_nt_hash $hbootkey); +} + +function DecryptHashes($rid, [byte[]]$enc_lm_hash, [byte[]]$enc_nt_hash, [byte[]]$hbootkey) +{{ + [byte[]]$lmhash = $empty_lm; [byte[]]$nthash=$empty_nt; + # LM Hash + if ($enc_lm_hash) + {{ + $lmhash = DecryptSingleHash $rid $hbootkey $enc_lm_hash $almpassword; + } + + # NT Hash + if ($enc_nt_hash) + {{ + $nthash = DecryptSingleHash $rid $hbootkey $enc_nt_hash $antpassword; + } + + return ,($lmhash,$nthash) +} + +function DecryptSingleHash($rid,[byte[]]$hbootkey,[byte[]]$enc_hash,[byte[]]$lmntstr) +{{ + $deskeys = sid_to_key $rid; + $md5 = [Security.Cryptography.MD5]::Create(); + $rc4_key = $md5.ComputeHash($hbootkey[0..0x0f] + [BitConverter]::GetBytes($rid) + $lmntstr); + $rc4 = NewRC4 $rc4_key; + $obfkey = $rc4.encrypt($enc_hash); + $hash = (des_decrypt $obfkey[0..7] $deskeys[0]) + + (des_decrypt $obfkey[8..$($obfkey.Length - 1)] $deskeys[1]); + return ,$hash; +} + +function Get-UserKeys +{{ + ls HKLM:\SAM\SAM\Domains\Account\Users | + where {{$_.PSChildName -match "^[0-9A-Fa-f]{{8}$"} | + Add-Member AliasProperty KeyName PSChildName -PassThru | + Add-Member ScriptProperty Rid {{[Convert]::ToInt32($this.PSChildName, 16)} -PassThru | + Add-Member ScriptProperty V {{[byte[]]($this.GetValue("V"))} -PassThru | + Add-Member ScriptProperty UserName {{Get-UserName($this.GetValue("V"))} -PassThru | + Add-Member ScriptProperty HashOffset {{[BitConverter]::ToUInt32($this.GetValue("V")[0x9c..0x9f],0) + 0xCC} -PassThru +} + +function DumpHashes +{{ + LoadApi + $bootkey = Get-BootKey; + $hbootKey = Get-HBootKey $bootkey; + Get-UserKeys | %{{ + $hashes = Get-UserHashes $_ $hBootKey; + "{{0}" -f ($_.UserName);#,$_.Rid, + # [BitConverter]::ToString($hashes[0]).Replace("-","").ToLower(), + # [BitConverter]::ToString($hashes[1]).Replace("-","").ToLower() + + } +} + +DumpHashes | out-file -filePath "{parameter "Storage"}\CachedUsers.txt" -encoding ASCII + +_end_ + +move __createfile powershell.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File powershell.ps1]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Update Troubleshooter - Windows (21363).bes b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Update Troubleshooter - Windows (21363).bes index 68a677e40..d8626f6f8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Update Troubleshooter - Windows (21363).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Invoke - Windows Update Troubleshooter - Windows (21363).bes @@ -1,54 +1,54 @@ - - - - - Invoke - Windows Update Troubleshooter - Windows - This runs the Windows Update Troubleshooter on the targeted endpoint.

-

For more information on the Windows Update Troubleshooter see:

- -

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - = "5.1"]]> - Internal - 2016-08-29 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" - -delete __createfile -delete run.ps1 - -createfile until _end_ - -Import-Module troubleshootingpack - -Get-TroubleshootingPack -Path "{pathname of windows folder}\diagnostics\system\WindowsUpdate" | Invoke-TroubleshootingPack -Unattended - -_end_ - -move __createfile run.ps1 - -waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File run.ps1 - -
-
+ + + + + Invoke - Windows Update Troubleshooter - Windows + This runs the Windows Update Troubleshooter on the targeted endpoint.

+

For more information on the Windows Update Troubleshooter see:

+ +

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + = "5.1"]]> + Internal + 2016-08-29 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + parameter "PowerShellExe"="{ pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) }" + +delete __createfile +delete run.ps1 + +createfile until _end_ + +Import-Module troubleshootingpack + +Get-TroubleshootingPack -Path "{pathname of windows folder}\diagnostics\system\WindowsUpdate" | Invoke-TroubleshootingPack -Unattended + +_end_ + +move __createfile run.ps1 + +waithidden "{parameter "PowershellExe"}" -ExecutionPolicy Bypass -File run.ps1 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Join Computer to domain - wmic (26947).bes b/Sites/Windows Management/Fixlets/Fixlets/Join Computer to domain - wmic (26947).bes index dc38b1301..62007a948 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Join Computer to domain - wmic (26947).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Join Computer to domain - wmic (26947).bes @@ -1,88 +1,88 @@ - - - - - Join Computer to domain - wmic -

-
-

- - - - - - - - - - - - - - -

-

Important Notes

-
    -
  • -
    You must enter a password in order to take an action
    -
  • -
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
]]>
- windows of operating system - = "9.0"]]> - if exists property "in proxy agent context" then not in proxy agent context else true - not exists netbios domainnames of local computers of active directories - Accounts - HCL Lab Services - 2019-05-20 - - x-fixlet-modification-time - Fri, 04 Oct 2019 17:39:01 +0000 - - BESC - - - - Join - &nbsp;the computer to a domain - - - - -
-
+ + + + + Join Computer to domain - wmic +

+
+

+ + + + + + + + + + + + + + +

+

Important Notes

+
    +
  • +
    You must enter a password in order to take an action
    +
  • +
    Because of the way secure parameters work, you cannot use this task in a baseline, target an action dynamically by property (e.g., automatic groups), use add additional actions.
]]>
+ windows of operating system + = "9.0"]]> + if exists property "in proxy agent context" then not in proxy agent context else true + not exists netbios domainnames of local computers of active directories + Accounts + HCL Lab Services + 2019-05-20 + + x-fixlet-modification-time + Fri, 04 Oct 2019 17:39:01 +0000 + + BESC + + + + Join + &nbsp;the computer to a domain + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/KB2731771_ New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 (2592).bes b/Sites/Windows Management/Fixlets/Fixlets/KB2731771_ New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 (2592).bes index 5fedb81e9..ec990ce04 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/KB2731771_ New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 (2592).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/KB2731771_ New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 (2592).bes @@ -1,96 +1,96 @@ - - - - - KB2731771: New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 - - - - -
When you run an application that requires date interpretation and that uses the new APIs on a computer that is running Windows 7 or Windows Server 2008 R2, the following issues may occur:
-
    -
  • Applications or web pages crash. -
  • You cannot log on to web-based applications. -
  • When you schedule a meeting by using a calendar application, and the recipient of the calendar item is located in a different time zone, the calendar item does not display the correct meeting time. -
  • JavaScript-based stock ticker applications or JavaScript-based chart applications do not work as expected.
-

Note: Affected computers may report back as 'Pending Restart' once the update has run successfully, but will not report back their final status until the computer has been restarted.

Note: This security update is also referenced under KB2731771.

-
-

File Size:

4.67 MB or 6.27 MB
]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - NOT(exists names whose (it as string contains "6.1.1.1") of values of keys whose (name of it contains "Package_for_KB2731771") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageIndex" of native registry) - not pending restart "86675d2fd327b328793dc179727ce0ce5107a72e" AND not pending restart "98dba6673cedbc2860c76b9686e895664d463347" - ((name of it = "Win7" OR name of it = "Win2008R2") AND (service pack major version of it = 1 OR service pack major version of it = 0)) of operating system - Security Patch - Microsoft - KB2731771 - 2013-09-09 - Optional - - x-fixlet-superseded_date - 2012-11-14 - - - x-fixlet-first-propagation - Tue, 14 Aug 2012 23:40:59 +0000 - - - x-fixlet-superseded - MS12-075 - - - x-fixlet-modification-time - Mon, 09 Sep 2013 16:24:52 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - - - - - Click - here - to view this Security Bulletin from Microsoft. - - http://support.microsoft.com/kb/2731771 - -
-
+ + + + + KB2731771: New APIs for conversion between local time and UTC - Windows 7 (x86 and x64) and Windows Server 2008r2 + + + + +
When you run an application that requires date interpretation and that uses the new APIs on a computer that is running Windows 7 or Windows Server 2008 R2, the following issues may occur:
+
    +
  • Applications or web pages crash. +
  • You cannot log on to web-based applications. +
  • When you schedule a meeting by using a calendar application, and the recipient of the calendar item is located in a different time zone, the calendar item does not display the correct meeting time. +
  • JavaScript-based stock ticker applications or JavaScript-based chart applications do not work as expected.
+

Note: Affected computers may report back as 'Pending Restart' once the update has run successfully, but will not report back their final status until the computer has been restarted.

Note: This security update is also referenced under KB2731771.

+
+

File Size:

4.67 MB or 6.27 MB
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + NOT(exists names whose (it as string contains "6.1.1.1") of values of keys whose (name of it contains "Package_for_KB2731771") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\PackageIndex" of native registry) + not pending restart "86675d2fd327b328793dc179727ce0ce5107a72e" AND not pending restart "98dba6673cedbc2860c76b9686e895664d463347" + ((name of it = "Win7" OR name of it = "Win2008R2") AND (service pack major version of it = 1 OR service pack major version of it = 0)) of operating system + Security Patch + Microsoft + KB2731771 + 2013-09-09 + Optional + + x-fixlet-superseded_date + 2012-11-14 + + + x-fixlet-first-propagation + Tue, 14 Aug 2012 23:40:59 +0000 + + + x-fixlet-superseded + MS12-075 + + + x-fixlet-modification-time + Mon, 09 Sep 2013 16:24:52 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + + + + + Click + here + to view this Security Bulletin from Microsoft. + + http://support.microsoft.com/kb/2731771 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/KB2953095 - Disable RTF processing in MS Word (3741).bes b/Sites/Windows Management/Fixlets/Fixlets/KB2953095 - Disable RTF processing in MS Word (3741).bes index 11042eac2..648988aee 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/KB2953095 - Disable RTF processing in MS Word (3741).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/KB2953095 - Disable RTF processing in MS Word (3741).bes @@ -1,101 +1,101 @@ - - - - - KB2953095 - Disable RTF processing in MS Word -  

-

This fixlet uses Local Group Policy to set per-user registry entries. These entries disable RTF processing in MS Word. See the MS KB2953095.

-

NOTE: This may report back as "failed" but actually succeed due to difficulties with writing relevance to detect the local GPO change.

-

The changes are made the binary file located here:  C:\Windows\System32\GroupPolicy\User\Registry.pol

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - = "11.0" AND version of it < "16")]]> - 0) of it) of keys "word\security" of keys of key "Software\Policies\Microsoft\office" of it) of key "HKEY_USERS" of registry]]> - Internal - jgstew - 2014-03-27 - - x-fixlet-modification-time - Thu, 27 Mar 2014 19:17:58 +0000 - - BESC - - - Click - here - to deploy this action. - - > "{pathname of client folder of current site}\__Download\gpupdate.log" -// Updating GPO as current user might not be needed. -//waithidden __Download\RunAsCurrentUser.exe --w gpupdate /Force /Target:User /Wait:600 >> "{pathname of client folder of current site}\__Download\gpupdate.log" - -// If the above gpupdate commands work correctly, then a restart should not be needed. -action requires restart]]> - - -
-
+ + + + + KB2953095 - Disable RTF processing in MS Word +  

+

This fixlet uses Local Group Policy to set per-user registry entries. These entries disable RTF processing in MS Word. See the MS KB2953095.

+

NOTE: This may report back as "failed" but actually succeed due to difficulties with writing relevance to detect the local GPO change.

+

The changes are made the binary file located here:  C:\Windows\System32\GroupPolicy\User\Registry.pol

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + = "11.0" AND version of it < "16")]]> + 0) of it) of keys "word\security" of keys of key "Software\Policies\Microsoft\office" of it) of key "HKEY_USERS" of registry]]> + Internal + jgstew + 2014-03-27 + + x-fixlet-modification-time + Thu, 27 Mar 2014 19:17:58 +0000 + + BESC + + + Click + here + to deploy this action. + + > "{pathname of client folder of current site}\__Download\gpupdate.log" +// Updating GPO as current user might not be needed. +//waithidden __Download\RunAsCurrentUser.exe --w gpupdate /Force /Target:User /Wait:600 >> "{pathname of client folder of current site}\__Download\gpupdate.log" + +// If the above gpupdate commands work correctly, then a restart should not be needed. +action requires restart]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 (153).bes b/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 (153).bes index b60cb512b..4f219d90d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 (153).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 (153).bes @@ -1,88 +1,88 @@ - - - - - Known issues for Windows Server and/or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 -

Version 8.1.634.0 of Tivoli Endpoint Manager is now available!

The latest version of Tivoli Endpoint Manager provides several enhancements and fixes. Click on the link below for more information on changes in Tivoli Endpoint Manager 8.1.

Windows Installer 3.1 or greater must be installed to perform this upgrade. Use the action below to install Windows Installer 3.1. Once this is complete, you can use to upgrade Tivoli Endpoint Manager Servers and Consoles to version 8.1.634.0.

Note: Affected computers may report back as 'Pending Restart' once the patch has run successfully, but the vulnerability will not be closed until the affected computer is restarted.

If you have any issues during the upgrade, you may want to review the manual upgrade instructions below to help resolve the issues.

-]]>
- name of operating system as lowercase starts with "win" - = 1) OR ((it = "WinXP" OR it = "WinXP-2003") of name of it AND service pack major version of it >= 2))) of operating system]]> - evaluation of client license = false - = "7.0.1")) of registry) OR (exists regapp "BESConsole.exe" whose (version of it < "8.1.634.0" AND version of it >= "6"))]]> - = "3.1") of system folder)]]> - if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" whose (exists value "value" of it) of registry) then (value "value" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" of registry as string = "BigFix") else ("BigFix"="BigFix") - 11 - IBM - <Unspecified> - 2012-01-09 - Critical - - x-fixlet-first-propagation - Tue, 31 Jan 2012 21:19:33 +0000 - - - x-fixlet-modification-time - Mon, 30 Jul 2012 22:05:05 +0000 - - - x-fixlet-domain-attributes - BES Deploy Server Console - - BESC - - - Click - here - to install Windows Installer 3.1 on relevant computers. - - prefetch WindowsKBforServer.exe sha1:8318455b36ba0a748307459279d46f2f4cdb5a0e size:2585872 http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe -delete __Local/Get/WindowsKBforServer.exe -move __Download/WindowsKBforServer.exe __Local/Get/WindowsKBforServer.exe -wait __Local/Get/WindowsKBforServer.exe /passive /quiet /norestart -delete __Local/Get/WindowsKBforServer.exe -action may require restart - - - - Click - here - for manual upgrade instructions. - - http://support.bigfix.com/bes/install/upgradebes.html - - - - Click - here - to see the new features in Trend Micro Endpoint Security Platform 8.1. - - http://support.bigfix.com/bes/changes/changes-8.1.html - - - - Click - here - to view the Microsoft Windows Installer 3.1 information page. - - http://support.microsoft.com/?id=893803 - - - - Click - here - to see the new features in Tivoli Endpoint Manager 8.1. - - http://support.bigfix.com/bes/changes/changes-8.1.html - -
-
+ + + + + Known issues for Windows Server and/or Console upgrades - Tivoli Endpoint Manager version 8.1.634.0 +

Version 8.1.634.0 of Tivoli Endpoint Manager is now available!

The latest version of Tivoli Endpoint Manager provides several enhancements and fixes. Click on the link below for more information on changes in Tivoli Endpoint Manager 8.1.

Windows Installer 3.1 or greater must be installed to perform this upgrade. Use the action below to install Windows Installer 3.1. Once this is complete, you can use to upgrade Tivoli Endpoint Manager Servers and Consoles to version 8.1.634.0.

Note: Affected computers may report back as 'Pending Restart' once the patch has run successfully, but the vulnerability will not be closed until the affected computer is restarted.

If you have any issues during the upgrade, you may want to review the manual upgrade instructions below to help resolve the issues.

+]]>
+ name of operating system as lowercase starts with "win" + = 1) OR ((it = "WinXP" OR it = "WinXP-2003") of name of it AND service pack major version of it >= 2))) of operating system]]> + evaluation of client license = false + = "7.0.1")) of registry) OR (exists regapp "BESConsole.exe" whose (version of it < "8.1.634.0" AND version of it >= "6"))]]> + = "3.1") of system folder)]]> + if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" whose (exists value "value" of it) of registry) then (value "value" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" of registry as string = "BigFix") else ("BigFix"="BigFix") + 11 + IBM + <Unspecified> + 2012-01-09 + Critical + + x-fixlet-first-propagation + Tue, 31 Jan 2012 21:19:33 +0000 + + + x-fixlet-modification-time + Mon, 30 Jul 2012 22:05:05 +0000 + + + x-fixlet-domain-attributes + BES Deploy Server Console + + BESC + + + Click + here + to install Windows Installer 3.1 on relevant computers. + + prefetch WindowsKBforServer.exe sha1:8318455b36ba0a748307459279d46f2f4cdb5a0e size:2585872 http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe +delete __Local/Get/WindowsKBforServer.exe +move __Download/WindowsKBforServer.exe __Local/Get/WindowsKBforServer.exe +wait __Local/Get/WindowsKBforServer.exe /passive /quiet /norestart +delete __Local/Get/WindowsKBforServer.exe +action may require restart + + + + Click + here + for manual upgrade instructions. + + http://support.bigfix.com/bes/install/upgradebes.html + + + + Click + here + to see the new features in Trend Micro Endpoint Security Platform 8.1. + + http://support.bigfix.com/bes/changes/changes-8.1.html + + + + Click + here + to view the Microsoft Windows Installer 3.1 information page. + + http://support.microsoft.com/?id=893803 + + + + Click + here + to see the new features in Tivoli Endpoint Manager 8.1. + + http://support.bigfix.com/bes/changes/changes-8.1.html + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 (129).bes b/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 (129).bes index bbd9b4579..56c8e3ee8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 (129).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Known issues for Windows Server and_or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 (129).bes @@ -1,80 +1,80 @@ - - - - - Known issues for Windows Server and/or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 -

Version 8.1.634.0 of Trend Micro Endpoint Security Platform is now available!

The latest version of Trend Micro Endpoint Security Platform provides several enhancements and fixes. Click on the link below for more information on changes in Trend Micro Endpoint Security Platform 8.1.

Windows Installer 3.1 or greater must be installed to perform this upgrade. Use the action below to install Windows Installer 3.1. Once this is complete, you can use to upgrade Trend Micro Endpoint Security Platform Servers and Consoles to version 8.1.634.0.

Note: Affected computers may report back as 'Pending Restart' once the patch has run successfully, but the vulnerability will not be closed until the affected computer is restarted.

If you have any issues during the upgrade, you may want to review the manual upgrade instructions below to help resolve the issues.

-]]>
- name of operating system as lowercase starts with "win" - = 1) OR ((it = "WinXP" OR it = "WinXP-2003") of name of it AND service pack major version of it >= 2))) of operating system]]> - if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" whose (exists value "value" of it) of registry) then (value "value" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" of registry as string = "Trend") else ("Trend"="BigFix") - evaluation of client license = false - = "7.0.1")) of registry) OR (exists regapp "BESConsole.exe" whose (version of it < "8.1.634.0" AND version of it >= "6"))]]> - = "3.1") of system folder)]]> - Upgrade - IBM - <Unspecified> - 2012-01-31 - Critical - - x-fixlet-first-propagation - Tue, 31 Jan 2012 21:19:33 +0000 - - - x-fixlet-modification-time - Mon, 30 Jul 2012 22:05:05 +0000 - - - x-fixlet-domain-attributes - BES Deploy Server Console - - BESC - - - Click - here - to install Windows Installer 3.1 on relevant computers. - - prefetch WindowsKBforServer.exe sha1:8318455b36ba0a748307459279d46f2f4cdb5a0e size:2585872 http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe -delete __Local/Get/WindowsKBforServer.exe -move __Download/WindowsKBforServer.exe __Local/Get/WindowsKBforServer.exe -wait __Local/Get/WindowsKBforServer.exe /passive /quiet /norestart -delete __Local/Get/WindowsKBforServer.exe -action may require restart - - - - Click - here - for manual upgrade instructions. - - http://support.bigfix.com/bes/install/upgradebes.html - - - - Click - here - to see the new features in Trend Micro Endpoint Security Platform 8.1. - - http://support.bigfix.com/bes/changes/changes-8.1.html - - - - Click - here - to view the Microsoft Windows Installer 3.1 information page. - - http://support.microsoft.com/?id=893803 - -
-
+ + + + + Known issues for Windows Server and/or Console upgrades - Trend Micro Endpoint Security Platform version 8.1.634.0 +

Version 8.1.634.0 of Trend Micro Endpoint Security Platform is now available!

The latest version of Trend Micro Endpoint Security Platform provides several enhancements and fixes. Click on the link below for more information on changes in Trend Micro Endpoint Security Platform 8.1.

Windows Installer 3.1 or greater must be installed to perform this upgrade. Use the action below to install Windows Installer 3.1. Once this is complete, you can use to upgrade Trend Micro Endpoint Security Platform Servers and Consoles to version 8.1.634.0.

Note: Affected computers may report back as 'Pending Restart' once the patch has run successfully, but the vulnerability will not be closed until the affected computer is restarted.

If you have any issues during the upgrade, you may want to review the manual upgrade instructions below to help resolve the issues.

+]]>
+ name of operating system as lowercase starts with "win" + = 1) OR ((it = "WinXP" OR it = "WinXP-2003") of name of it AND service pack major version of it >= 2))) of operating system]]> + if (exists key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" whose (exists value "value" of it) of registry) then (value "value" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\Brand" of registry as string = "Trend") else ("Trend"="BigFix") + evaluation of client license = false + = "7.0.1")) of registry) OR (exists regapp "BESConsole.exe" whose (version of it < "8.1.634.0" AND version of it >= "6"))]]> + = "3.1") of system folder)]]> + Upgrade + IBM + <Unspecified> + 2012-01-31 + Critical + + x-fixlet-first-propagation + Tue, 31 Jan 2012 21:19:33 +0000 + + + x-fixlet-modification-time + Mon, 30 Jul 2012 22:05:05 +0000 + + + x-fixlet-domain-attributes + BES Deploy Server Console + + BESC + + + Click + here + to install Windows Installer 3.1 on relevant computers. + + prefetch WindowsKBforServer.exe sha1:8318455b36ba0a748307459279d46f2f4cdb5a0e size:2585872 http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe +delete __Local/Get/WindowsKBforServer.exe +move __Download/WindowsKBforServer.exe __Local/Get/WindowsKBforServer.exe +wait __Local/Get/WindowsKBforServer.exe /passive /quiet /norestart +delete __Local/Get/WindowsKBforServer.exe +action may require restart + + + + Click + here + for manual upgrade instructions. + + http://support.bigfix.com/bes/install/upgradebes.html + + + + Click + here + to see the new features in Trend Micro Endpoint Security Platform 8.1. + + http://support.bigfix.com/bes/changes/changes-8.1.html + + + + Click + here + to view the Microsoft Windows Installer 3.1 information page. + + http://support.microsoft.com/?id=893803 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy (26933).bes b/Sites/Windows Management/Fixlets/Fixlets/LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy (26933).bes index 0782cb80d..f74e5254b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy (26933).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy (26933).bes @@ -1,110 +1,110 @@ - - - - - LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy - LGPO v3.0 is described at https://www.microsoft.com/en-us/download/details.aspx?id=55319.  The utility allows for scripted configuration of Local Group Policy (Computer, User, and MLGPO contexts).  

-

LGPO can configure Registry policies, apply Secedit templates, and configure Advanced Audit Policies.  Existing policy settings can be exported or imported from text.

-

This example fixlet demonstrates the use of LGPO by configuring the Security Event Log maximum size to 80 MB. 

-

The LGPO zip file includes a PDF explaining its use. 

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - = version "6.1"]]> - /* Sample check to set Security Event Log maximum size to 80 MB */ not exists keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Eventlog\Security" whose (value "MaxSize" of it as integer = 81920) of native registry - LGPO Template Policy - Internal - 2017-08-17 - - bigfixme-added-time - Thu, 17 Aug 2017 14:27:09 GMT - - - bigfixme-modification-time - Thu, 17 Aug 2017 14:27:09 GMT - - - bigfixme-keywords - Local Group Policy, LGPO, Security, MLGPO, Secedit - - - bigfixme-ID - 24619 - - - x-fixlet-modification-time - Mon, 23 May 2022 17:48:53 +0000 - - BESC - - - Click - here - to deploy this action. - - // To use this template, update or remove the following blocks and replace the Relevance - -// Enter your action script here - -begin prefetch block - - add prefetch item name=LGPO.zip sha1=4578a97946102a20505d1e8f09abedd1fd7a8d89 size=531635 url=https://download.microsoft.com/download/8/5/C/85C25433-A1B0-4FFA-9429-7E023E7DA8D8/LGPO.zip sha256=cb7159d134a0a1e7b1ed2ada9a3ce8ce8f4de391d14403d55438af824247cc55 - - // Download UnZip utility - add prefetch item name=unzip.exe sha1=84debf12767785cd9b43811022407de7413beb6f size=204800 url=http://software.bigfix.com/download/redist/unzip-6.0.exe sha256=2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac - - -collect prefetch items -end prefetch block - -// Add LGPO.zip to the client utility cache -utility __Download\LGPO.zip - -// Add unzip.exe to the client utility cache -utility __Download\unzip.exe - -waithidden __Download\unzip.exe -o "{pathname of client folder of current site}\__Download\LGPO.zip" -d "{pathname of client folder of current site}\__Download" - - -action uses wow64 redirection false - -delete __createfile -createfile until EOF_EOF_EOF -; ---------------------------------------------------------------------- -; PARSING COMPUTER POLICY -; Source file: \temp\Registry.pol - -Computer -Software\Policies\Microsoft\Windows\Eventlog\Security -MaxSize -DWORD:81920 - -; PARSING COMPLETED. -; ---------------------------------------------------------------------- - -EOF_EOF_EOF - -delete regpol.txt -move __createfile regpol.txt - -waithidden __Download\LGPO_30\LGPO.exe /t regpol.txt -continue if {exit code of action = 0} - - - - Click - here - to review this task in the bigfix.me Content Database. - - https://bigfix.me/cdb/fixlet/24619 - -
-
+ + + + + LGPOv3.0 Example - Set Security Event Log Max Size to 80 MB via Local Group Policy + LGPO v3.0 is described at https://www.microsoft.com/en-us/download/details.aspx?id=55319.  The utility allows for scripted configuration of Local Group Policy (Computer, User, and MLGPO contexts).  

+

LGPO can configure Registry policies, apply Secedit templates, and configure Advanced Audit Policies.  Existing policy settings can be exported or imported from text.

+

This example fixlet demonstrates the use of LGPO by configuring the Security Event Log maximum size to 80 MB. 

+

The LGPO zip file includes a PDF explaining its use. 

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = version "6.1"]]> + /* Sample check to set Security Event Log maximum size to 80 MB */ not exists keys "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Eventlog\Security" whose (value "MaxSize" of it as integer = 81920) of native registry + LGPO Template Policy + Internal + 2017-08-17 + + bigfixme-added-time + Thu, 17 Aug 2017 14:27:09 GMT + + + bigfixme-modification-time + Thu, 17 Aug 2017 14:27:09 GMT + + + bigfixme-keywords + Local Group Policy, LGPO, Security, MLGPO, Secedit + + + bigfixme-ID + 24619 + + + x-fixlet-modification-time + Mon, 23 May 2022 17:48:53 +0000 + + BESC + + + Click + here + to deploy this action. + + // To use this template, update or remove the following blocks and replace the Relevance + +// Enter your action script here + +begin prefetch block + + add prefetch item name=LGPO.zip sha1=4578a97946102a20505d1e8f09abedd1fd7a8d89 size=531635 url=https://download.microsoft.com/download/8/5/C/85C25433-A1B0-4FFA-9429-7E023E7DA8D8/LGPO.zip sha256=cb7159d134a0a1e7b1ed2ada9a3ce8ce8f4de391d14403d55438af824247cc55 + + // Download UnZip utility + add prefetch item name=unzip.exe sha1=84debf12767785cd9b43811022407de7413beb6f size=204800 url=http://software.bigfix.com/download/redist/unzip-6.0.exe sha256=2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + + +collect prefetch items +end prefetch block + +// Add LGPO.zip to the client utility cache +utility __Download\LGPO.zip + +// Add unzip.exe to the client utility cache +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "{pathname of client folder of current site}\__Download\LGPO.zip" -d "{pathname of client folder of current site}\__Download" + + +action uses wow64 redirection false + +delete __createfile +createfile until EOF_EOF_EOF +; ---------------------------------------------------------------------- +; PARSING COMPUTER POLICY +; Source file: \temp\Registry.pol + +Computer +Software\Policies\Microsoft\Windows\Eventlog\Security +MaxSize +DWORD:81920 + +; PARSING COMPLETED. +; ---------------------------------------------------------------------- + +EOF_EOF_EOF + +delete regpol.txt +move __createfile regpol.txt + +waithidden __Download\LGPO_30\LGPO.exe /t regpol.txt +continue if {exit code of action = 0} + + + + Click + here + to review this task in the bigfix.me Content Database. + + https://bigfix.me/cdb/fixlet/24619 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/List Offline Files (PowerShell) (644).bes b/Sites/Windows Management/Fixlets/Fixlets/List Offline Files (PowerShell) (644).bes index 8c10cacc8..afe8adc8a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/List Offline Files (PowerShell) (644).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/List Offline Files (PowerShell) (644).bes @@ -1,96 +1,96 @@ - - - - - List Offline Files (PowerShell) - List Offline Files

-

This is considered a brute force search since it recursively looks at every file. 

-

Be careful to try and be specific with which folder to start your search.  If you start at the "c:\" folder, the scan is likely to take a very long time... and this task waits for that search to complete... thus your client will be stalled until this search is finished.

-

The results file is saved in the "parent folder of the client" and named "OfflineFiles.csv".

]]>
- name of operating system as string contains "Win" - exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry - = "2.0") of registry]]> - Search - danielheth@bigfix.me - <Unspecified> - 2012-10-26 - <Unspecified> - - x-fixlet-modification-time - Fri, 26 Oct 2012 21:05:37 +0000 - - BESC - - - Click&nbsp; - here - &nbsp;to search for offline folders/files. - - action parameter query "startDir" with description "Specify the root folder path you want to scan recursively through:" and with default value "c:\users" -//============================================================================ -//PowerShell Script... -// -//1. Save old ExecutionPolicy value -parameter "PolicyExisted"="{exists value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry)}" -parameter "oldExecutionPolicy"="{if (parameter "PolicyExisted" as boolean) then (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) as string) else ""}" -//2. set to ExecutionPolicy=Unrestricted and Pull PowerShell exe from registry... if 64bit then pull PowerShell x64 -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" - parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" -else - //we need to determine what the current execution policy is so we can put it back when we're done. - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" - parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry}" -endif -//3. Create PowerShell script and save to a ps1 file -delete __appendfile -delete script.ps1 -appendfile Get-ChildItem "{parameter "startDir"}" -recurse | Where-Object {$_.Attributes -eq 'offline'} | Export-Csv "{pathname of parent folder of client}\OfflineFiles.csv" -move __appendfile script.ps1 -//4. Execute PowerShell with ps1 script file -action uses wow64 redirection false -waithidden "{parameter "PowerShellexe"}" -file "{pathname of client folder of current site}\script.ps1" -action uses wow64 redirection {x64 of operating system} -//5. Restore ExecutionPolicy back -if {x64 of operating system} - if {parameter "PolicyExisted" as boolean} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" - else - regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" - endif -else - if {parameter "PolicyExisted" as boolean} - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" - else - regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" - endif -endif -//============================================================================ - - - - Click - here - to learn about Ben Shorehill's research into the powershell command we're using. - - http://www.symantec.com/connect/downloads/csv-report-all-offline-files-powershell - - - - Click - here - to learn about Microsoft's Offline Files features. - - http://windows.microsoft.com/en-US/windows-vista/Understanding-offline-files - -
-
+ + + + + List Offline Files (PowerShell) + List Offline Files

+

This is considered a brute force search since it recursively looks at every file. 

+

Be careful to try and be specific with which folder to start your search.  If you start at the "c:\" folder, the scan is likely to take a very long time... and this task waits for that search to complete... thus your client will be stalled until this search is finished.

+

The results file is saved in the "parent folder of the client" and named "OfflineFiles.csv".

]]>
+ name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + = "2.0") of registry]]> + Search + danielheth@bigfix.me + <Unspecified> + 2012-10-26 + <Unspecified> + + x-fixlet-modification-time + Fri, 26 Oct 2012 21:05:37 +0000 + + BESC + + + Click&nbsp; + here + &nbsp;to search for offline folders/files. + + action parameter query "startDir" with description "Specify the root folder path you want to scan recursively through:" and with default value "c:\users" +//============================================================================ +//PowerShell Script... +// +//1. Save old ExecutionPolicy value +parameter "PolicyExisted"="{exists value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry)}" +parameter "oldExecutionPolicy"="{if (parameter "PolicyExisted" as boolean) then (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) as string) else ""}" +//2. set to ExecutionPolicy=Unrestricted and Pull PowerShell exe from registry... if 64bit then pull PowerShell x64 +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" + parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +else + //we need to determine what the current execution policy is so we can put it back when we're done. + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" + parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry}" +endif +//3. Create PowerShell script and save to a ps1 file +delete __appendfile +delete script.ps1 +appendfile Get-ChildItem "{parameter "startDir"}" -recurse | Where-Object {$_.Attributes -eq 'offline'} | Export-Csv "{pathname of parent folder of client}\OfflineFiles.csv" +move __appendfile script.ps1 +//4. Execute PowerShell with ps1 script file +action uses wow64 redirection false +waithidden "{parameter "PowerShellexe"}" -file "{pathname of client folder of current site}\script.ps1" +action uses wow64 redirection {x64 of operating system} +//5. Restore ExecutionPolicy back +if {x64 of operating system} + if {parameter "PolicyExisted" as boolean} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" + else + regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" + endif +else + if {parameter "PolicyExisted" as boolean} + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" + else + regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" + endif +endif +//============================================================================ + + + + Click + here + to learn about Ben Shorehill's research into the powershell command we're using. + + http://www.symantec.com/connect/downloads/csv-report-all-offline-files-powershell + + + + Click + here + to learn about Microsoft's Offline Files features. + + http://windows.microsoft.com/en-US/windows-vista/Understanding-offline-files + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Lock Screen - Windows (23995).bes b/Sites/Windows Management/Fixlets/Fixlets/Lock Screen - Windows (23995).bes index 204b298b8..a05a275d6 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Lock Screen - Windows (23995).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Lock Screen - Windows (23995).bes @@ -1,40 +1,40 @@ - - - - - Lock Screen - Windows - - windows of operating system - exists (current users;logged on users) - not exists processes "LogonUI.exe" - Internal - 2015-11-05 - - x-fixlet-modification-time - Thu, 05 Nov 2015 19:36:31 +0000 - - BESC - - - Click - here - to deploy this action. - - -override wait -runas=currentuser -wait rundll32.exe user32.dll,LockWorkStation - - - - - + + + + + Lock Screen - Windows + + windows of operating system + exists (current users;logged on users) + not exists processes "LogonUI.exe" + Internal + 2015-11-05 + + x-fixlet-modification-time + Thu, 05 Nov 2015 19:36:31 +0000 + + BESC + + + Click + here + to deploy this action. + + +override wait +runas=currentuser +wait rundll32.exe user32.dll,LockWorkStation + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Lock computer multiple options (26856).bes b/Sites/Windows Management/Fixlets/Fixlets/Lock computer multiple options (26856).bes index 820241b89..2eba72153 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Lock computer multiple options (26856).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Lock computer multiple options (26856).bes @@ -1,66 +1,66 @@ - - - - - Lock computer multiple options - - true - Internal - 2021-06-09 - - x-fixlet-modification-time - Thu, 10 Jun 2021 07:30:24 +0000 - - BESC - - - Click - here - to lock the computer for 24 hours - - // Lock computer for 24 hours - -action lock until "{now + (24 * hour)}" "{parameter "action issue date" of action}" - - - - Click - here - to to lock the computer for&nbsp;7 days - - // Lock computer for 7 days - -action lock until "{now + (7 * day)}" "{parameter "action issue date" of action}" - - - - Click - here - to to lock the computer for custom&nbsp; time (in hours) - - // Lock computer for custom hours -action parameter query "_hours_lock" with description "Lock the system for this many hours [hh]" - -action lock until "{now + (parameter "_hours_lock" as integer) * hour}" "{parameter "action issue date" of action}" for client - - - - Click - here - to lock the computer indefinitely - - // Lock computer indefinitely -action lock indefinite "{parameter "action issue date" of action}" -continue if { lock string of action lock state = "Yes" } - - - + + + + + Lock computer multiple options + + true + Internal + 2021-06-09 + + x-fixlet-modification-time + Thu, 10 Jun 2021 07:30:24 +0000 + + BESC + + + Click + here + to lock the computer for 24 hours + + // Lock computer for 24 hours + +action lock until "{now + (24 * hour)}" "{parameter "action issue date" of action}" + + + + Click + here + to to lock the computer for&nbsp;7 days + + // Lock computer for 7 days + +action lock until "{now + (7 * day)}" "{parameter "action issue date" of action}" + + + + Click + here + to to lock the computer for custom&nbsp; time (in hours) + + // Lock computer for custom hours +action parameter query "_hours_lock" with description "Lock the system for this many hours [hh]" + +action lock until "{now + (parameter "_hours_lock" as integer) * hour}" "{parameter "action issue date" of action}" for client + + + + Click + here + to lock the computer indefinitely + + // Lock computer indefinitely +action lock indefinite "{parameter "action issue date" of action}" +continue if { lock string of action lock state = "Yes" } + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Locky malware detection (9275).bes b/Sites/Windows Management/Fixlets/Fixlets/Locky malware detection (9275).bes index 8aee107b0..84abf470c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Locky malware detection (9275).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Locky malware detection (9275).bes @@ -1,41 +1,41 @@ - - - - - Locky malware detection - This fixlet is for the detection of the locky malware on Windows machines. For more information about locky, click on the links below.

-

NOTE: detection for logged in user.

-

Vendor KB on locky - here

-

Blog on Locky - here.

-

 Ransomware called Locky spreads via a malicious macro in a Word document. The malware demands a ransom of half a Bitcoin for the key to unlock the encrypted files. Locky has infected machines in Europe, Russia, Pakistan, Mali, and the US.
-http://www.theregister.co.uk/2016/02/17/locky_ransomware/
-http://www.computerworld.com/article/3033941/security/locky-ransomware-which-inf
ects-like-dridex-hits-the-unlucky.html

-http://arstechnica.com/security/2016/02/locky-crypto-ransomware-rides-in-on-mali
cious-word-document-macro/

-http://www.darkreading.com/vulnerabilities---threats/advanced-threats/here-comes
-locky-a-brand-new-ransomware-threat/d/d-id/1324371?

-

note: this fixlet is not tested against locky or variants. mileage may vary.

]]>
- name of operating system contains "Win" - - Malware Detection - BigFix.me - 2016-03-11 - CVE-2016-1716 - - x-fixlet-modification-time - Sat, 12 Mar 2016 00:42:14 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -
-
+ + + + + Locky malware detection + This fixlet is for the detection of the locky malware on Windows machines. For more information about locky, click on the links below.

+

NOTE: detection for logged in user.

+

Vendor KB on locky - here

+

Blog on Locky - here.

+

 Ransomware called Locky spreads via a malicious macro in a Word document. The malware demands a ransom of half a Bitcoin for the key to unlock the encrypted files. Locky has infected machines in Europe, Russia, Pakistan, Mali, and the US.
-http://www.theregister.co.uk/2016/02/17/locky_ransomware/
-http://www.computerworld.com/article/3033941/security/locky-ransomware-which-inf
ects-like-dridex-hits-the-unlucky.html

-http://arstechnica.com/security/2016/02/locky-crypto-ransomware-rides-in-on-mali
cious-word-document-macro/

-http://www.darkreading.com/vulnerabilities---threats/advanced-threats/here-comes
-locky-a-brand-new-ransomware-threat/d/d-id/1324371?

+

note: this fixlet is not tested against locky or variants. mileage may vary.

]]>
+ name of operating system contains "Win" + + Malware Detection + BigFix.me + 2016-03-11 + CVE-2016-1716 + + x-fixlet-modification-time + Sat, 12 Mar 2016 00:42:14 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Log Unique SMBv1 Connection Server Names - Windows (23554).bes b/Sites/Windows Management/Fixlets/Fixlets/Log Unique SMBv1 Connection Server Names - Windows (23554).bes index 6172bc379..98c3932d9 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Log Unique SMBv1 Connection Server Names - Windows (23554).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Log Unique SMBv1 Connection Server Names - Windows (23554).bes @@ -1,51 +1,51 @@ - - - - - Log Unique SMBv1 Connection Server Names - Windows - - windows of operating system - - Internal - jgstew - 2017-02-14 - - x-fixlet-modification-time - Tue, 21 Feb 2017 19:43:50 +0000 - - BESC - - - Click - here - to deploy this action. - - > "{ pathnames of folders "Logs" of folders "__Global" of data folders of clients }\results_SMBv1_ServerNames.log") - -// The following is to provide timeout functionality in case CMD hangs -pause while { now < (active start time of active action + 5 * minute) AND exists items 3 of (pid of it, (active start time of active action | ( if (exists properties whose(it as string starts with "creation time of ")) then creation time of it else start time of it ) of it), set of ("BESClientUI.exe";"BESClientUI"), processes ) whose( creation time of item 3 of it > item 1 of it AND name of item 3 of it is not contained by item 2 of it AND item 0 of it = ppid of item 3 of it) of (processes "BESClient.exe" ; processes "BESClient") } - -if {exists items 3 of (pid of it, (active start time of active action | ( if (exists properties whose(it as string starts with "creation time of ")) then creation time of it else start time of it ) of it), set of ("BESClientUI.exe";"BESClientUI"), processes ) whose( creation time of item 3 of it > item 1 of it AND name of item 3 of it is not contained by item 2 of it AND item 0 of it = ppid of item 3 of it) of (processes "BESClient.exe" ; processes "BESClient") } - parameter "KillingItDueToTimeout"="True" - waithidden Taskkill /T /F { ("/PID " & it) of concatenations " /PID " of (it as string) of pids of items 3 of (pid of it, (active start time of active action | ( if (exists properties whose(it as string starts with "creation time of ")) then creation time of it else start time of it ) of it), set of ("BESClientUI.exe";"BESClientUI"), processes ) whose( creation time of item 3 of it > item 1 of it AND name of item 3 of it is not contained by item 2 of it AND item 0 of it = ppid of item 3 of it) of (processes "BESClient.exe" ; processes "BESClient") } -else - parameter "KillingItDueToTimeout"="False" -endif -]]> - - - + + + + + Log Unique SMBv1 Connection Server Names - Windows + + windows of operating system + + Internal + jgstew + 2017-02-14 + + x-fixlet-modification-time + Tue, 21 Feb 2017 19:43:50 +0000 + + BESC + + + Click + here + to deploy this action. + + > "{ pathnames of folders "Logs" of folders "__Global" of data folders of clients }\results_SMBv1_ServerNames.log") + +// The following is to provide timeout functionality in case CMD hangs +pause while { now < (active start time of active action + 5 * minute) AND exists items 3 of (pid of it, (active start time of active action | ( if (exists properties whose(it as string starts with "creation time of ")) then creation time of it else start time of it ) of it), set of ("BESClientUI.exe";"BESClientUI"), processes ) whose( creation time of item 3 of it > item 1 of it AND name of item 3 of it is not contained by item 2 of it AND item 0 of it = ppid of item 3 of it) of (processes "BESClient.exe" ; processes "BESClient") } + +if {exists items 3 of (pid of it, (active start time of active action | ( if (exists properties whose(it as string starts with "creation time of ")) then creation time of it else start time of it ) of it), set of ("BESClientUI.exe";"BESClientUI"), processes ) whose( creation time of item 3 of it > item 1 of it AND name of item 3 of it is not contained by item 2 of it AND item 0 of it = ppid of item 3 of it) of (processes "BESClient.exe" ; processes "BESClient") } + parameter "KillingItDueToTimeout"="True" + waithidden Taskkill /T /F { ("/PID " & it) of concatenations " /PID " of (it as string) of pids of items 3 of (pid of it, (active start time of active action | ( if (exists properties whose(it as string starts with "creation time of ")) then creation time of it else start time of it ) of it), set of ("BESClientUI.exe";"BESClientUI"), processes ) whose( creation time of item 3 of it > item 1 of it AND name of item 3 of it is not contained by item 2 of it AND item 0 of it = ppid of item 3 of it) of (processes "BESClient.exe" ; processes "BESClient") } +else + parameter "KillingItDueToTimeout"="False" +endif +]]> + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Look for Wanna Cry encrypted files on the C_ drive - v1.1 (24312).bes b/Sites/Windows Management/Fixlets/Fixlets/Look for Wanna Cry encrypted files on the C_ drive - v1.1 (24312).bes index b8b457101..120470d79 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Look for Wanna Cry encrypted files on the C_ drive - v1.1 (24312).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Look for Wanna Cry encrypted files on the C_ drive - v1.1 (24312).bes @@ -1,44 +1,44 @@ - - - - - Look for Wanna Cry encrypted files on the C: drive - v1.1 - Seach for any files with .wncry extenstions that exist on the C: drive.  Old school batch file, so if there are a ton of files, this will take a while and can possibly have a noticable performance impact when it runs.

-

This will create a file (c:\wannacry_files.txt) for the search results.  There is a corresponding property (Wanna Cry Files - C: Drive) that will parse this file for any files that are found and report the results back up.

-

This file is expected to have the following two lines.  Anymore than that is bad.

-

 Volume in drive C has no label.
 Volume Serial Number is 7A01-AEAF

-


 

-

There are three expected results returned by the property:

-

Wanna Cry Encrypted files found (this is bad)

-

No Encrypted Files Found (results file exists, nothing bad found, scan could still be running though)

-

Scan Results File Not Found (this means you have not executed this task yet)

-

 

]]>
- windows of operating system - exists folder "c:\" - Jason Cordell (jcordell@cbihome.com) - 2017-05-15 - - x-fixlet-modification-time - Mon, 15 May 2017 13:17:41 +0000 - - BESC - - - Click - here - to deploy this action. - - c:\wannacry_files.txt]]> - -
-
+ + + + + Look for Wanna Cry encrypted files on the C: drive - v1.1 + Seach for any files with .wncry extenstions that exist on the C: drive.  Old school batch file, so if there are a ton of files, this will take a while and can possibly have a noticable performance impact when it runs.

+

This will create a file (c:\wannacry_files.txt) for the search results.  There is a corresponding property (Wanna Cry Files - C: Drive) that will parse this file for any files that are found and report the results back up.

+

This file is expected to have the following two lines.  Anymore than that is bad.

+

 Volume in drive C has no label.
 Volume Serial Number is 7A01-AEAF

+


 

+

There are three expected results returned by the property:

+

Wanna Cry Encrypted files found (this is bad)

+

No Encrypted Files Found (results file exists, nothing bad found, scan could still be running though)

+

Scan Results File Not Found (this means you have not executed this task yet)

+

 

]]>
+ windows of operating system + exists folder "c:\" + Jason Cordell (jcordell@cbihome.com) + 2017-05-15 + + x-fixlet-modification-time + Mon, 15 May 2017 13:17:41 +0000 + + BESC + + + Click + here + to deploy this action. + + c:\wannacry_files.txt]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Disable Debug Logging (1410).bes b/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Disable Debug Logging (1410).bes index a67d04a20..653df8b91 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Disable Debug Logging (1410).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Disable Debug Logging (1410).bes @@ -1,50 +1,50 @@ - - - - - Net Logon - Disable Debug Logging - If you are having accounts getting locked out... it is helpful to enable netlogon debug logging to track down where the problem is coming from.  This task will enable debug logging on Windows Servers.

]]>
- windows of operating system - exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry - exists value "DBFlag" whose (it as integer != 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry - Troubleshooting - dsmith - <Unspecified> - 2013-02-19 - <Unspecified> - - x-fixlet-modification-time - Tue, 19 Feb 2013 18:21:38 +0000 - - BESC - - - Click - here - to Disable Debug Logging. - - //now configure debug setting -regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]" "DBFlag"=dword:0 -//restart netlogon service -waithidden net stop "netlogon" -waithidden net start "netlogon" - - - - Click - here - to read the Microsoft KB 109626. - - http://support.microsoft.com/kb/109626 - -
-
+ + + + + Net Logon - Disable Debug Logging + If you are having accounts getting locked out... it is helpful to enable netlogon debug logging to track down where the problem is coming from.  This task will enable debug logging on Windows Servers.

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry + exists value "DBFlag" whose (it as integer != 0) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry + Troubleshooting + dsmith + <Unspecified> + 2013-02-19 + <Unspecified> + + x-fixlet-modification-time + Tue, 19 Feb 2013 18:21:38 +0000 + + BESC + + + Click + here + to Disable Debug Logging. + + //now configure debug setting +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]" "DBFlag"=dword:0 +//restart netlogon service +waithidden net stop "netlogon" +waithidden net start "netlogon" + + + + Click + here + to read the Microsoft KB 109626. + + http://support.microsoft.com/kb/109626 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Enable Debug Logging (1409).bes b/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Enable Debug Logging (1409).bes index 47ba34f42..837014e79 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Enable Debug Logging (1409).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Net Logon - Enable Debug Logging (1409).bes @@ -1,52 +1,52 @@ - - - - - Net Logon - Enable Debug Logging - If you are having accounts getting locked out... it is helpful to enable netlogon debug logging to track down where the problem is coming from.  This task will enable debug logging on Windows Servers.

]]>
- windows of operating system - exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry - if exists value "DBFlag" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry then exists value "DBFlag" whose (it as integer != 545325055) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry else true - Troubleshooting - dsmith - <Unspecified> - 2013-02-19 - <Unspecified> - - x-fixlet-modification-time - Tue, 19 Feb 2013 18:22:22 +0000 - - BESC - - - Click - here - to Enable Debug Logging. - - //delete registry setting -regdelete "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]" "DBFlag" -//now configure debug setting -regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]" "DBFlag"=dword:2080FFFF -//restart netlogon service -waithidden net stop "netlogon" -waithidden net start "netlogon" - - - - Click - here - to read the Microsoft KB 109626. - - http://support.microsoft.com/kb/109626 - -
-
+ + + + + Net Logon - Enable Debug Logging + If you are having accounts getting locked out... it is helpful to enable netlogon debug logging to track down where the problem is coming from.  This task will enable debug logging on Windows Servers.

]]>
+ windows of operating system + exists key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry + if exists value "DBFlag" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry then exists value "DBFlag" whose (it as integer != 545325055) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" of native registry else true + Troubleshooting + dsmith + <Unspecified> + 2013-02-19 + <Unspecified> + + x-fixlet-modification-time + Tue, 19 Feb 2013 18:22:22 +0000 + + BESC + + + Click + here + to Enable Debug Logging. + + //delete registry setting +regdelete "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]" "DBFlag" +//now configure debug setting +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]" "DBFlag"=dword:2080FFFF +//restart netlogon service +waithidden net stop "netlogon" +waithidden net start "netlogon" + + + + Click + here + to read the Microsoft KB 109626. + + http://support.microsoft.com/kb/109626 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Nuke IPv6 - Windows (27385).bes b/Sites/Windows Management/Fixlets/Fixlets/Nuke IPv6 - Windows (27385).bes index 5e8df9aeb..42811b9a6 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Nuke IPv6 - Windows (27385).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Nuke IPv6 - Windows (27385).bes @@ -1,40 +1,40 @@ - - - - - Nuke IPv6 - Windows - Does what it says on the box - true - Internal - 2025-09-09 - - x-fixlet-modification-time - Tue, 09 Sep 2025 23:05:09 +0000 - - BESC - - - Click - here - to deploy this action. - - dos reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" /v DisabledComponents /t REG_DWORD /d 255 /f -dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /f -dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /v Teredo_State /t REG_SZ /d Disabled /f -dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /v 6to4_State /t REG_SZ /d Disabled /f -dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /v ISATAP_State /t REG_SZ /d Disabled /f - -waithidden cmd.exe /C netsh interface ipv6 uninstall - - - - + + + + + Nuke IPv6 - Windows + Does what it says on the box + true + Internal + 2025-09-09 + + x-fixlet-modification-time + Tue, 09 Sep 2025 23:05:09 +0000 + + BESC + + + Click + here + to deploy this action. + + dos reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" /v DisabledComponents /t REG_DWORD /d 255 /f +dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /f +dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /v Teredo_State /t REG_SZ /d Disabled /f +dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /v 6to4_State /t REG_SZ /d Disabled /f +dos reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\TCPIP\v6Transition" /v ISATAP_State /t REG_SZ /d Disabled /f + +waithidden cmd.exe /C netsh interface ipv6 uninstall + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/OLDER Version_ Create LS alias for DIR command - Windows (20414).bes b/Sites/Windows Management/Fixlets/Fixlets/OLDER Version_ Create LS alias for DIR command - Windows (20414).bes index 0d8ac11c0..82c06feef 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/OLDER Version_ Create LS alias for DIR command - Windows (20414).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/OLDER Version_ Create LS alias for DIR command - Windows (20414).bes @@ -1,49 +1,49 @@ - - - - - OLDER Version: Create LS alias for DIR command - Windows - This makes me hate windows less - windows of operating system - exists folders "C:\ProgramData\chocolatey\bin" - - not exists lines whose(it contains "@dir %25*") of files "C:\ProgramData\chocolatey\bin\ls.bat" - Internal - jgstew - 2016-04-15 - - x-fixlet-modification-time - Fri, 15 Apr 2016 21:24:52 +0000 - - BESC - - - Click - here - to deploy this action. - - -// http://stackoverflow.com/questions/9362692/how-to-create-ls-in-windows-command-prompt -// http://stackoverflow.com/questions/20530996/aliases-in-windows-command-prompt - -delete __createfile -createfile until END_OF_FILE -@dir %* -END_OF_FILE - -delete C:\ProgramData\chocolatey\bin\ls.bat -copy __createfile C:\ProgramData\chocolatey\bin\ls.bat - - - - - + + + + + OLDER Version: Create LS alias for DIR command - Windows + This makes me hate windows less + windows of operating system + exists folders "C:\ProgramData\chocolatey\bin" + + not exists lines whose(it contains "@dir %25*") of files "C:\ProgramData\chocolatey\bin\ls.bat" + Internal + jgstew + 2016-04-15 + + x-fixlet-modification-time + Fri, 15 Apr 2016 21:24:52 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://stackoverflow.com/questions/9362692/how-to-create-ls-in-windows-command-prompt +// http://stackoverflow.com/questions/20530996/aliases-in-windows-command-prompt + +delete __createfile +createfile until END_OF_FILE +@dir %* +END_OF_FILE + +delete C:\ProgramData\chocolatey\bin\ls.bat +copy __createfile C:\ProgramData\chocolatey\bin\ls.bat + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Outlook Profile Reset (24867).bes b/Sites/Windows Management/Fixlets/Fixlets/Outlook Profile Reset (24867).bes index 16f30c88d..63c1374b0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Outlook Profile Reset (24867).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Outlook Profile Reset (24867).bes @@ -1,47 +1,47 @@ - - - - - Outlook Profile Reset - This task will close Outlook, Skype, and Teams.  It will then delete all mail profiles from the currently logged in user, including OST.  The mail profile will need to be set up from scratch.

]]>
- windows of operating system - exists folder "C:\Program Files (x86)\Microsoft Office" - Scripting - Internal - 2017-12-13 - - x-fixlet-modification-time - Thu, 14 Dec 2017 20:01:23 +0000 - - BESC - - - Click - here - to deploy this action. - - // Disable wow64 redirection on x64 OSes -//action uses wow64 redirection {not x64 of operating system} - -waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM OUTLOOK.EXE -waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM lync.exe -waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM SkypeHost.exe -waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM Teams.exe -waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM OneDrive.exe - -dos reg delete "HKEY_USERS\{component string of sid of security account (name of logged on user)}\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" /f -dos reg delete "HKEY_USERS\{component string of sid of security account (name of logged on user)}\Software\Microsoft\Office\16.0\Outlook\Profiles" /f - -folder delete "C:\Users\{name of logged on user}\AppData\Local\Microsoft\Outlook" - -
-
+ + + + + Outlook Profile Reset + This task will close Outlook, Skype, and Teams.  It will then delete all mail profiles from the currently logged in user, including OST.  The mail profile will need to be set up from scratch.

]]>
+ windows of operating system + exists folder "C:\Program Files (x86)\Microsoft Office" + Scripting + Internal + 2017-12-13 + + x-fixlet-modification-time + Thu, 14 Dec 2017 20:01:23 +0000 + + BESC + + + Click + here + to deploy this action. + + // Disable wow64 redirection on x64 OSes +//action uses wow64 redirection {not x64 of operating system} + +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM OUTLOOK.EXE +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM lync.exe +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM SkypeHost.exe +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM Teams.exe +waithidden "C:\Program Files (x86)\BigFix Enterprise\BES Client\__BESData\BES Support\taskkill.exe" /F /T /IM OneDrive.exe + +dos reg delete "HKEY_USERS\{component string of sid of security account (name of logged on user)}\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" /f +dos reg delete "HKEY_USERS\{component string of sid of security account (name of logged on user)}\Software\Microsoft\Office\16.0\Outlook\Profiles" /f + +folder delete "C:\Users\{name of logged on user}\AppData\Local\Microsoft\Outlook" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Output Drivers using Driverquery - Windows (6060).bes b/Sites/Windows Management/Fixlets/Fixlets/Output Drivers using Driverquery - Windows (6060).bes index 823dce41f..39719ee1b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Output Drivers using Driverquery - Windows (6060).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Output Drivers using Driverquery - Windows (6060).bes @@ -1,42 +1,42 @@ - - - - - Output Drivers using Driverquery - Windows - This task will dump the details of the installed windows drivers to log files, which can be reported on using relevance.

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - not exists files whose(name of it as lowercase starts with "info_driverquery_" AND name of it as lowercase ends with ".csv") of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) - Internal - jgstew - 2014-03-28 - - x-fixlet-modification-time - Tue, 12 May 2015 18:58:07 +0000 - - BESC - - - Click - here - to deploy this action. - - "{pathname of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) )}\info_driverquery_verbose.csv" -dos driverquery /SI /fo CSV > "{pathname of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) )}\info_driverquery_signed.csv" -]]> - - -
-
+ + + + + Output Drivers using Driverquery - Windows + This task will dump the details of the installed windows drivers to log files, which can be reported on using relevance.

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists files whose(name of it as lowercase starts with "info_driverquery_" AND name of it as lowercase ends with ".csv") of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) ) + Internal + jgstew + 2014-03-28 + + x-fixlet-modification-time + Tue, 12 May 2015 18:58:07 +0000 + + BESC + + + Click + here + to deploy this action. + + "{pathname of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) )}\info_driverquery_verbose.csv" +dos driverquery /SI /fo CSV > "{pathname of folders "Logs" of folders "__Global" of ( (if (exists properties whose(it as string starts with "data folder of " AND it as string contains "client")) then (data folder of client) else NULL)|(folder "/var/opt/BESClient/__BESData")|(folder "/Library/Application Support/BigFix/BES Agent/__BESData")|(folder "__BESData" of parent folder of client) )}\info_driverquery_signed.csv" +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Output Windows Update Results - Windows (23123).bes b/Sites/Windows Management/Fixlets/Fixlets/Output Windows Update Results - Windows (23123).bes index b7094aa4c..dfbda7235 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Output Windows Update Results - Windows (23123).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Output Windows Update Results - Windows (23123).bes @@ -1,103 +1,103 @@ - - - - - Output Windows Update Results - Windows - read results with this analysis: https://github.com/jgstew/bigfix-content/blob/master/analyses/Windows%20Update%20check%20results%20-%20Windows.bes

-

 

]]>
- windows of operating system - - Internal - jgstew - 2016-12-21 - - x-fixlet-modification-time - Fri, 23 Dec 2016 23:36:10 +0000 - - BESC - - - Click - here - to deploy this action. - - WindowsUpdates.ini -' Source: https://msdn.microsoft.com/en-us/library/windows/desktop/aa387102(v=vs.85).aspx -' Modifications by @jgstew in 2016 - Public Domain - -' It is possible to do this "offline": https://msdn.microsoft.com/en-us/library/windows/desktop/aa387290(v=vs.85).aspx - -Set updateSession = CreateObject("Microsoft.Update.Session") -updateSession.ClientApplicationID = "Check for Windows Updates" - -Set updateSearcher = updateSession.CreateUpdateSearcher() - -' Method: https://msdn.microsoft.com/en-us/library/windows/desktop/aa386526(v=vs.85).aspx -Set searchResult = updateSearcher.Search("IsInstalled=0") -' also works as a single line: Set searchResult = CreateObject("Microsoft.Update.Session").CreateUpdateSearcher().Search("IsInstalled=0") - -WScript.Echo "[Windows Updates]" & vbCRLF & "Number= " & searchResult.Updates.Count - -numHidden = 0 -numSoftware = 0 -numDriver = 0 - -For I = 0 To searchResult.Updates.Count-1 -' IUpdate interface: https://msdn.microsoft.com/en-us/library/windows/desktop/aa386099(v=vs.85).aspx - Set update = searchResult.Updates.Item(I) - - ' Update Type Enum: https://msdn.microsoft.com/en-us/library/windows/desktop/aa387284(v=vs.85).aspx - updateTypeStr = "Unknown" - If 1=update.Type Then - updateTypeStr = "Software" - numSoftware = numSoftware + 1 - ElseIf 2=update.Type Then - updateTypeStr = "Driver" - numDriver = numDriver + 1 - End If - - WScript.Echo updateTypeStr & I + 1 & "= " & update.Title - - If update.IsHidden Then - numHidden = numHidden + 1 - End If -Next - -WScript.Echo "Hidden= " & numHidden -WScript.Echo "Software= " & numSoftware -WScript.Echo "Driver= " & numDriver - -' Related: -' - https://thwack.solarwinds.com/community/application-and-server_tht/patchzone/blog/2012/10/05/how-the-windows-update-agent-determines-the-status-of-an-update -' - https://bigfix.me/fixlet/details/23096 -' - https://github.com/jgstew/bigfix-content/blob/master/fixlet/Output%20Windows%20Update%20Results%20-%20Windows.bes - -_END_OF_FILE_ - -delete "{ download path "WUA_Search.vbs" }" -move __createfile "{ download path "WUA_Search.vbs" }" - -waithidden cmd /c cscript __Download\WUA_Search.vbs //Nologo > __Download\results_WindowsUpdates.ini - -delete "{pathnames of folders "__Global\Logs" of data folders of client}\results_WindowsUpdates.ini" -move __Download\results_WindowsUpdates.ini "{pathnames of folders "__Global\Logs" of data folders of client}\results_WindowsUpdates.ini" -]]> - - -
-
+ + + + + Output Windows Update Results - Windows + read results with this analysis: https://github.com/jgstew/bigfix-content/blob/master/analyses/Windows%20Update%20check%20results%20-%20Windows.bes

+

 

]]>
+ windows of operating system + + Internal + jgstew + 2016-12-21 + + x-fixlet-modification-time + Fri, 23 Dec 2016 23:36:10 +0000 + + BESC + + + Click + here + to deploy this action. + + WindowsUpdates.ini +' Source: https://msdn.microsoft.com/en-us/library/windows/desktop/aa387102(v=vs.85).aspx +' Modifications by @jgstew in 2016 - Public Domain + +' It is possible to do this "offline": https://msdn.microsoft.com/en-us/library/windows/desktop/aa387290(v=vs.85).aspx + +Set updateSession = CreateObject("Microsoft.Update.Session") +updateSession.ClientApplicationID = "Check for Windows Updates" + +Set updateSearcher = updateSession.CreateUpdateSearcher() + +' Method: https://msdn.microsoft.com/en-us/library/windows/desktop/aa386526(v=vs.85).aspx +Set searchResult = updateSearcher.Search("IsInstalled=0") +' also works as a single line: Set searchResult = CreateObject("Microsoft.Update.Session").CreateUpdateSearcher().Search("IsInstalled=0") + +WScript.Echo "[Windows Updates]" & vbCRLF & "Number= " & searchResult.Updates.Count + +numHidden = 0 +numSoftware = 0 +numDriver = 0 + +For I = 0 To searchResult.Updates.Count-1 +' IUpdate interface: https://msdn.microsoft.com/en-us/library/windows/desktop/aa386099(v=vs.85).aspx + Set update = searchResult.Updates.Item(I) + + ' Update Type Enum: https://msdn.microsoft.com/en-us/library/windows/desktop/aa387284(v=vs.85).aspx + updateTypeStr = "Unknown" + If 1=update.Type Then + updateTypeStr = "Software" + numSoftware = numSoftware + 1 + ElseIf 2=update.Type Then + updateTypeStr = "Driver" + numDriver = numDriver + 1 + End If + + WScript.Echo updateTypeStr & I + 1 & "= " & update.Title + + If update.IsHidden Then + numHidden = numHidden + 1 + End If +Next + +WScript.Echo "Hidden= " & numHidden +WScript.Echo "Software= " & numSoftware +WScript.Echo "Driver= " & numDriver + +' Related: +' - https://thwack.solarwinds.com/community/application-and-server_tht/patchzone/blog/2012/10/05/how-the-windows-update-agent-determines-the-status-of-an-update +' - https://bigfix.me/fixlet/details/23096 +' - https://github.com/jgstew/bigfix-content/blob/master/fixlet/Output%20Windows%20Update%20Results%20-%20Windows.bes + +_END_OF_FILE_ + +delete "{ download path "WUA_Search.vbs" }" +move __createfile "{ download path "WUA_Search.vbs" }" + +waithidden cmd /c cscript __Download\WUA_Search.vbs //Nologo > __Download\results_WindowsUpdates.ini + +delete "{pathnames of folders "__Global\Logs" of data folders of client}\results_WindowsUpdates.ini" +move __Download\results_WindowsUpdates.ini "{pathnames of folders "__Global\Logs" of data folders of client}\results_WindowsUpdates.ini" +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7 (312).bes b/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7 (312).bes index 0bf522b52..2f1be54d5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7 (312).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7 (312).bes @@ -1,51 +1,51 @@ - - - - - PC Narcolepsy: Set System Unattended Sleep Timeout - Windows Vista/7 -

By default, systems on standby that are woken by a Wake-on-LAN or Wake-from-Standby event will go back to sleep in two minutes if the system does not receive any user input. This may cause a condition called "PC Narcolepsy" where the computer will fall back asleep before tasks can be run on that system.

Use this Fixlet to configure the amount of time the system will stay awake after recieving a Wake-on-LAN or Wake-from-Standby event on Windows Vista and Windows 7 systems. This setting is called the "System Unattended Sleep Timeout".

Note: This task only changes the System Unattended Sleep Timeout setting on the current power profile. If the power profile is changed, this task may need to be reapplied.

-]]>
- name of operating system starts with "Win" - (it = "WinVista" OR it = "Win7") of name of operating system - = "7.2"]]> - Standby Behavior - BigFix - <Unspecified> - 2010-08-13 - N/A - - x-fixlet-modification-time - Sat, 12 May 2012 00:55:27 +0000 - - - x-fixlet-first-propagation - Thu, 17 Nov 2011 19:28:18 +0000 - - - x-fixlet-domain_attributes - Manage_Standby_Behavior - - BESC - - - Click - here - to change the System Unattended Sleep Timeout setting on the current power profile. You will be prompted for the number of minutes. - - = 2 AND parameter "inputMinutes" of action as integer <= 1440} -waithidden "{pathname of system folder & "\powercfg.exe"}" -SETACVALUEINDEX {value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of registry as string} {"238c9fa8-0aad-41ed-83f4-97be242c8f20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0"} {parameter "inputMinutes" of action as integer * 60} -waithidden "{pathname of system folder & "\powercfg.exe"}" -SETDCVALUEINDEX {value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of registry as string} {"238c9fa8-0aad-41ed-83f4-97be242c8f20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0"} {parameter "inputMinutes" of action as integer * 60}]]> - -
-
+ + + + + PC Narcolepsy: Set System Unattended Sleep Timeout - Windows Vista/7 +

By default, systems on standby that are woken by a Wake-on-LAN or Wake-from-Standby event will go back to sleep in two minutes if the system does not receive any user input. This may cause a condition called "PC Narcolepsy" where the computer will fall back asleep before tasks can be run on that system.

Use this Fixlet to configure the amount of time the system will stay awake after recieving a Wake-on-LAN or Wake-from-Standby event on Windows Vista and Windows 7 systems. This setting is called the "System Unattended Sleep Timeout".

Note: This task only changes the System Unattended Sleep Timeout setting on the current power profile. If the power profile is changed, this task may need to be reapplied.

+]]>
+ name of operating system starts with "Win" + (it = "WinVista" OR it = "Win7") of name of operating system + = "7.2"]]> + Standby Behavior + BigFix + <Unspecified> + 2010-08-13 + N/A + + x-fixlet-modification-time + Sat, 12 May 2012 00:55:27 +0000 + + + x-fixlet-first-propagation + Thu, 17 Nov 2011 19:28:18 +0000 + + + x-fixlet-domain_attributes + Manage_Standby_Behavior + + BESC + + + Click + here + to change the System Unattended Sleep Timeout setting on the current power profile. You will be prompted for the number of minutes. + + = 2 AND parameter "inputMinutes" of action as integer <= 1440} +waithidden "{pathname of system folder & "\powercfg.exe"}" -SETACVALUEINDEX {value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of registry as string} {"238c9fa8-0aad-41ed-83f4-97be242c8f20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0"} {parameter "inputMinutes" of action as integer * 60} +waithidden "{pathname of system folder & "\powercfg.exe"}" -SETDCVALUEINDEX {value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes" of registry as string} {"238c9fa8-0aad-41ed-83f4-97be242c8f20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0"} {parameter "inputMinutes" of action as integer * 60}]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7_8 - altered to set defaults to 35min - testing (1419).bes b/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7_8 - altered to set defaults to 35min - testing (1419).bes index d3b6a4bca..b2fc9ef15 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7_8 - altered to set defaults to 35min - testing (1419).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/PC Narcolepsy_ Set System Unattended Sleep Timeout - Windows Vista_7_8 - altered to set defaults to 35min - testing (1419).bes @@ -1,68 +1,68 @@ - - - - - PC Narcolepsy: Set System Unattended Sleep Timeout - Windows Vista/7/8 - altered to set defaults to 35min - testing - - - - -

By default, systems on standby that are woken by a Wake-on-LAN or Wake-from-Standby event will go back to sleep in two minutes if the system does not receive any user input. This may cause a condition called "PC Narcolepsy" where the computer will fall back asleep before tasks can be run on that system.

-

Use this Fixlet to configure the amount of time the system will stay awake after recieving a Wake-on-LAN or Wake-from-Standby event on Windows Vista, 7 and 8 systems. This setting is called the "System Unattended Sleep Timeout".

-

Note: This task only changes the System Unattended Sleep Timeout setting on the current power profile. If the power profile is changed, this task may need to be reapplied.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else true) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - (it = "WinVista" OR it = "Win7" OR it = "Win8") of name of operating system - exists keys whose(exists values "AcSettingIndex" of it AND (35*60) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry - Standby Behavior - jgs194 - <Unspecified> - 2010-08-13 - N/A - - x-fixlet-first-propagation - Tue, 29 Mar 2011 23:24:21 +0000 - - - x-fixlet-domain_attributes - Manage_Standby_Behavior - - - x-fixlet-modification-time - Thu, 21 Mar 2013 15:32:32 +0000 - - BESC - - - Click - here - to change the System Unattended Sleep Timeout setting on the current power profile. You will be prompted for the number of minutes. - - = (2*60) AND parameter "secToWaitAfterWakeUpUnattended" of action as integer <= (1440*60)} -//set for balanced -//regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\381b4222-f694-41f0-9685-ff5bb260df2e]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} -//set for high performance -//regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} -//set for power saver -//regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\a1841308-3541-4fab-bc81-f71556f20b4a]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} -//set for any power profile that needs altered, only if it needs altered. -continue if{exists keys whose(exists values "AcSettingIndex" of it AND (parameter "secToWaitAfterWakeUpUnattended" of action as integer) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry} -regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\{(preceding text of first "," of (it & ",") of concatenation "," of names of keys whose(exists values "AcSettingIndex" of it AND (parameter "secToWaitAfterWakeUpUnattended" of action as integer) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry)}]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} -]]> - (parameter "numOfValuesToChange" of action as integer) = (number of values "AcSettingIndex" of keys whose(exists values "AcSettingIndex" of it AND (parameter "secToWaitAfterWakeUpUnattended" of action as integer) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry) - -
-
+ + + + + PC Narcolepsy: Set System Unattended Sleep Timeout - Windows Vista/7/8 - altered to set defaults to 35min - testing + + + + +

By default, systems on standby that are woken by a Wake-on-LAN or Wake-from-Standby event will go back to sleep in two minutes if the system does not receive any user input. This may cause a condition called "PC Narcolepsy" where the computer will fall back asleep before tasks can be run on that system.

+

Use this Fixlet to configure the amount of time the system will stay awake after recieving a Wake-on-LAN or Wake-from-Standby event on Windows Vista, 7 and 8 systems. This setting is called the "System Unattended Sleep Timeout".

+

Note: This task only changes the System Unattended Sleep Timeout setting on the current power profile. If the power profile is changed, this task may need to be reapplied.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else true) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + (it = "WinVista" OR it = "Win7" OR it = "Win8") of name of operating system + exists keys whose(exists values "AcSettingIndex" of it AND (35*60) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry + Standby Behavior + jgs194 + <Unspecified> + 2010-08-13 + N/A + + x-fixlet-first-propagation + Tue, 29 Mar 2011 23:24:21 +0000 + + + x-fixlet-domain_attributes + Manage_Standby_Behavior + + + x-fixlet-modification-time + Thu, 21 Mar 2013 15:32:32 +0000 + + BESC + + + Click + here + to change the System Unattended Sleep Timeout setting on the current power profile. You will be prompted for the number of minutes. + + = (2*60) AND parameter "secToWaitAfterWakeUpUnattended" of action as integer <= (1440*60)} +//set for balanced +//regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\381b4222-f694-41f0-9685-ff5bb260df2e]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} +//set for high performance +//regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} +//set for power saver +//regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\a1841308-3541-4fab-bc81-f71556f20b4a]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} +//set for any power profile that needs altered, only if it needs altered. +continue if{exists keys whose(exists values "AcSettingIndex" of it AND (parameter "secToWaitAfterWakeUpUnattended" of action as integer) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry} +regset64 "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues\{(preceding text of first "," of (it & ",") of concatenation "," of names of keys whose(exists values "AcSettingIndex" of it AND (parameter "secToWaitAfterWakeUpUnattended" of action as integer) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry)}]" "AcSettingIndex"=dword:{parameter "secToWaitAfterWakeUpUnattended" of action as integer as hexadecimal} +]]> + (parameter "numOfValuesToChange" of action as integer) = (number of values "AcSettingIndex" of keys whose(exists values "AcSettingIndex" of it AND (parameter "secToWaitAfterWakeUpUnattended" of action as integer) != value "AcSettingIndex" of it) of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues" of native registry) + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING (10608).bes b/Sites/Windows Management/Fixlets/Fixlets/Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING (10608).bes index efda3f710..134b3c01e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING (10608).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING (10608).bes @@ -1,50 +1,50 @@ - - - - - Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING - - /* Windows Only */ windows of operating system - = "5.1"]]> - exists file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) - exists lines containing "Get-WindowsUpdateLog PowerShell" of files "WindowsUpdate.log" of windows folders - Internal - jgstew - 2016-03-29 - - x-fixlet-modification-time - Tue, 29 Mar 2016 20:34:08 +0000 - - BESC - - - Click - here - to deploy this action. - - -parameter "LogLocation" = "{ pathname of folders "Logs" of folders "__Global" of data folders of clients }" - -parameter "SymLocation" = "{ pathname of items 1 of it whose(item 0 of it = maximum of modification times of files "wuapi.mof" of item 1 of it) of (it, folders "WindowsUpdateLog\SymCache" of ( folders "AppData\Local\Temp" of folders of folders "C:\Users" ) ) of maximum of modification times of files "wuapi.mof" of folders "WindowsUpdateLog\SymCache" of ( folders "AppData\Local\Temp" of folders of folders "C:\Users" ) }" - -// https://technet.microsoft.com/en-us/library/mt238376.aspx -// http://powershell-guru.com/dont-19-use-double-quotes-escape-characters/ -// https://msdn.microsoft.com/en-us/library/windows/desktop/ee416588(v=vs.85).aspx#symbol_servers -waithidden powershell -ExecutionPolicy Bypass -command "Get-WindowsUpdateLog -SymbolServer '{ parameter "SymLocation" }' -LogPath '{ parameter "LogLocation" }\WindowsUpdate.log'" - -// http://answers.microsoft.com/en-us/windows/forum/windows_10-update/windowsupdatelog-unreadable/2e6b05ed-ac91-4186-a362-c6b5a7e42911?auth=1 -// It seems like you can specify a folder for -SymbolServer : -// Get-WindowsUpdateLog -SymbolServer C:\Users\user\Documents\MySymbols - - - - + + + + + Periodically decode contents of WindowsUpdate.log - Windows NOT WORKING + + /* Windows Only */ windows of operating system + = "5.1"]]> + exists file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) + exists lines containing "Get-WindowsUpdateLog PowerShell" of files "WindowsUpdate.log" of windows folders + Internal + jgstew + 2016-03-29 + + x-fixlet-modification-time + Tue, 29 Mar 2016 20:34:08 +0000 + + BESC + + + Click + here + to deploy this action. + + +parameter "LogLocation" = "{ pathname of folders "Logs" of folders "__Global" of data folders of clients }" + +parameter "SymLocation" = "{ pathname of items 1 of it whose(item 0 of it = maximum of modification times of files "wuapi.mof" of item 1 of it) of (it, folders "WindowsUpdateLog\SymCache" of ( folders "AppData\Local\Temp" of folders of folders "C:\Users" ) ) of maximum of modification times of files "wuapi.mof" of folders "WindowsUpdateLog\SymCache" of ( folders "AppData\Local\Temp" of folders of folders "C:\Users" ) }" + +// https://technet.microsoft.com/en-us/library/mt238376.aspx +// http://powershell-guru.com/dont-19-use-double-quotes-escape-characters/ +// https://msdn.microsoft.com/en-us/library/windows/desktop/ee416588(v=vs.85).aspx#symbol_servers +waithidden powershell -ExecutionPolicy Bypass -command "Get-WindowsUpdateLog -SymbolServer '{ parameter "SymLocation" }' -LogPath '{ parameter "LogLocation" }\WindowsUpdate.log'" + +// http://answers.microsoft.com/en-us/windows/forum/windows_10-update/windowsupdatelog-unreadable/2e6b05ed-ac91-4186-a362-c6b5a7e42911?auth=1 +// It seems like you can specify a folder for -SymbolServer : +// Get-WindowsUpdateLog -SymbolServer C:\Users\user\Documents\MySymbols + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Start Menu (677).bes b/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Start Menu (677).bes index 8e05ea44e..9363da5b2 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Start Menu (677).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Start Menu (677).bes @@ -1,79 +1,79 @@ - - - - - Pin Calc to Windows 7 Start Menu - Pin the calculator to a Windows 7 Start Menu - name of operating system contains "Win7" - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-11-30 - <Unspecified> - - x-fixlet-modification-time - Fri, 30 Nov 2012 16:55:17 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - Click - here - &nbsp;to read source forum thread. - - - - - - Click - here - to read more about silent pinning. - - http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx - - - - Click - here - to read more about RunAsCurrentUser utility. - - http://www-01.ibm.com/support/docview.wss?uid=swg21506033 - - - + + + + + Pin Calc to Windows 7 Start Menu + Pin the calculator to a Windows 7 Start Menu + name of operating system contains "Win7" + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-11-30 + <Unspecified> + + x-fixlet-modification-time + Fri, 30 Nov 2012 16:55:17 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + Click + here + &nbsp;to read source forum thread. + + + + + + Click + here + to read more about silent pinning. + + http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx + + + + Click + here + to read more about RunAsCurrentUser utility. + + http://www-01.ibm.com/support/docview.wss?uid=swg21506033 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Taskbar (678).bes b/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Taskbar (678).bes index 4d169addf..bc415b884 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Taskbar (678).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Pin Calc to Windows 7 Taskbar (678).bes @@ -1,79 +1,79 @@ - - - - - Pin Calc to Windows 7 Taskbar - Pin the calculator to a Windows 7 Taskbar - name of operating system contains "Win7" - Configuration - danielheth@bigfix.me - <Unspecified> - 2012-11-30 - <Unspecified> - - x-fixlet-modification-time - Fri, 30 Nov 2012 16:56:27 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - - Click - here - &nbsp;to read source forum thread. - - - - - - Click - here - to read more about silent pinning. - - http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx - - - - Click - here - to read more about RunAsCurrentUser utility. - - http://www-01.ibm.com/support/docview.wss?uid=swg21506033 - - - + + + + + Pin Calc to Windows 7 Taskbar + Pin the calculator to a Windows 7 Taskbar + name of operating system contains "Win7" + Configuration + danielheth@bigfix.me + <Unspecified> + 2012-11-30 + <Unspecified> + + x-fixlet-modification-time + Fri, 30 Nov 2012 16:56:27 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + + Click + here + &nbsp;to read source forum thread. + + + + + + Click + here + to read more about silent pinning. + + http://blogs.technet.com/b/deploymentguys/archive/2009/04/08/pin-items-to-the-start-menu-or-windows-7-taskbar-via-script.aspx + + + + Click + here + to read more about RunAsCurrentUser utility. + + http://www-01.ibm.com/support/docview.wss?uid=swg21506033 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/PointAndPrint Mitigation for Printnightmare vulnerability (26861).bes b/Sites/Windows Management/Fixlets/Fixlets/PointAndPrint Mitigation for Printnightmare vulnerability (26861).bes index 30ce0fab3..52121d414 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/PointAndPrint Mitigation for Printnightmare vulnerability (26861).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/PointAndPrint Mitigation for Printnightmare vulnerability (26861).bes @@ -1,48 +1,48 @@ - - - - - PointAndPrint Mitigation for Printnightmare vulnerability - Optionally configure the RestrictDriverInstallationToAdministrators registry value to prevent non-administrators from installing printer drivers on a print server.

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - windows of operating system - not exists key "HKEY_LOCAL_MACHINE \Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" whose (value "RestrictDriverInstallationToAdministrators" of it as integer = 1) of native registry - Internal - 2021-07-08 - - x-fixlet-modification-time - Thu, 08 Jul 2021 17:01:57 +0000 - - BESC - - - Click - here - to deploy this action. - - if {x64 of operating system} -regset64 "[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint]" "RestrictDriverInstallationToAdministrators"=dword:00000001 -else -regset "[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint]" "RestrictDriverInstallationToAdministrators"=dword:00000001 -endif - - - - - Click - here - to read more from Microsoft. - - https://support.microsoft.com/en-us/topic/kb5005010-restricting-installation-of-new-printer-drivers-after-applying-the-july-6-2021-updates-31b91c02-05bc-4ada-a7ea-183b129578a7 - -
-
+ + + + + PointAndPrint Mitigation for Printnightmare vulnerability + Optionally configure the RestrictDriverInstallationToAdministrators registry value to prevent non-administrators from installing printer drivers on a print server.

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + windows of operating system + not exists key "HKEY_LOCAL_MACHINE \Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" whose (value "RestrictDriverInstallationToAdministrators" of it as integer = 1) of native registry + Internal + 2021-07-08 + + x-fixlet-modification-time + Thu, 08 Jul 2021 17:01:57 +0000 + + BESC + + + Click + here + to deploy this action. + + if {x64 of operating system} +regset64 "[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint]" "RestrictDriverInstallationToAdministrators"=dword:00000001 +else +regset "[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint]" "RestrictDriverInstallationToAdministrators"=dword:00000001 +endif + + + + + Click + here + to read more from Microsoft. + + https://support.microsoft.com/en-us/topic/kb5005010-restricting-installation-of-new-printer-drivers-after-applying-the-july-6-2021-updates-31b91c02-05bc-4ada-a7ea-183b129578a7 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Powershell - Assign System Account Folder Rights (Prompt for Path) (26609).bes b/Sites/Windows Management/Fixlets/Fixlets/Powershell - Assign System Account Folder Rights (Prompt for Path) (26609).bes index fc0eb23b4..f9764d621 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Powershell - Assign System Account Folder Rights (Prompt for Path) (26609).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Powershell - Assign System Account Folder Rights (Prompt for Path) (26609).bes @@ -1,129 +1,129 @@ - - - - - Powershell - Assign System Account Folder Rights (Prompt for Path) - - (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - Software Distribution - OSD - <Unspecified> - 2019-02-21 - <Unspecified> - - x-fixlet-runAsSystem - {"passwordType":"required","username":"","asAdmin":"true","userType":"system","completion":"none","targetuser":""} - - - action-ui-metadata - {"icon":"","size":"9046533","version":"0.0"} - - - x-fixlet-swdCommandOverride - a - - - x-fixlet-swd-wizard-data - {"lastmodified":"Thu Feb 21 20:29:36 GMT-0500 2019","categories":[],"useCommandLine":false,"site":null,"os":[],"vendor":"Wallpaper","pkgvariablekey":"SWD_Package_brad.sexton@sexton.local_1550780131285592","runAsSystem":null,"pkgTag":"","product":"OSD","files":[{"file_url":null,"msi_metadata":null,"sha1":"C861E36BD7A7F119757BCBA945BC6F23515E6715","id":"C861E36BD7A7F119757BCBA945BC6F23515E6715_1550798976595193","filename":"IMG_2071.JPG","appx_metatdata":null,"dateadded":"Thu, 21 Feb 2019 20:29:36 -0500","exe_metadata":null,"compressed_data_for_package":false,"spb_metadata":null,"osd_metadata":null,"size":6131476,"folderoffset":"","ReferenceName":"/C861E36BD7A7F119757BCBA945BC6F23515E6715/IMG_2071.JPG","HasAnonymousReference":false,"sha256":"0b1fbb69323abf4c6d94221626b598ceae46320ffebad240464f0350ec5aa6e2","uploadSuffix":"bfswd","appv_metadata":null,"ReferenceID":"5151","rpm_metadata":null},{"file_url":null,"msi_metadata":null,"sha1":"054E100047CA5C0AAAB3C01CB965313E5994A00F","id":"054E100047CA5C0AAAB3C01CB965313E5994A00F_1550780146769758","filename":"IMG_3675.JPG","appx_metatdata":null,"dateadded":"Thu, 21 Feb 2019 15:15:44 -0500","exe_metadata":null,"compressed_data_for_package":false,"spb_metadata":null,"osd_metadata":null,"size":2915057,"folderoffset":"","ReferenceName":"/054E100047CA5C0AAAB3C01CB965313E5994A00F/IMG_3675.JPG","HasAnonymousReference":false,"sha256":"96f30e46ec7c5faac96da6d17ae69c091eb21dc779db2a9b9e8f1ce60e45e693","uploadSuffix":"bfswd","appv_metadata":null,"ReferenceID":"5067","rpm_metadata":null}],"fullInstallCommand":null,"comment":null,"description":null,"owner":"brad.sexton@sexton.local","version":"0.0","creator":"brad.sexton@sexton.local"} - - - x-fixlet-advancedPathOptions - {"deleteCustomPath":false,"customPath":false,"customPathName":null} - - - x-fixlet-advancedLogOptions - {"individualLogCustomerName":null,"uploadTheLog":false,"individualLog":false} - - - x-fixlet-swdPackageID - SWD_Package_brad.sexton@sexton.local_1550780131285592 - - - x-fixlet-prePostInstall - {"preInstall":null,"postType":null,"preType":null,"selected":false,"postInstall":null} - - - x-fixlet-pkgTag - - - - x-fixlet-pkgType - - - - x-fixlet-swdSelectedFiles - ["C861E36BD7A7F119757BCBA945BC6F23515E6715","054E100047CA5C0AAAB3C01CB965313E5994A00F"] - - - x-fixlet-canPreserveCustom - true - - - x-fixlet-swdUseCommandLine - true - - - x-fixlet-swdDeployCategory - Install - - - x-fixlet-adf-wizard-source - Software Distribution_SoftwareDistribution - - - x-fixlet-adf-wizard-data - "" - - - x-fixlet-modification-time - Tue, 05 Mar 2019 18:20:28 +0000 - - SYST - - - Click&nbsp; - here - &nbsp;to deploy this action - - // Disable wow64 redirection on x64 OSes -action parameter query "Path" with description "Please enter full path of the folder" - - - - -action uses wow64 redirection {not x64 of operating system} - -delete __createfile - -// CREATEFILE -createfile until END_OF_FILE - -set-executionpolicy unrestricted -takeown /f {parameter "Path" of action} /R /D Y /A -icacls {parameter "Path" of action} /Grant ‘System:(OI)(CI)F’ /T - - - -get-help | Out-File "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_powershell.log" - - -END_OF_FILE - -delete powershell.ps1 -move __createfile powershell.ps1 - -waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy unrestricted -File powershell.ps1 - - - - - + + + + + Powershell - Assign System Account Folder Rights (Prompt for Path) + + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + Software Distribution + OSD + <Unspecified> + 2019-02-21 + <Unspecified> + + x-fixlet-runAsSystem + {"passwordType":"required","username":"","asAdmin":"true","userType":"system","completion":"none","targetuser":""} + + + action-ui-metadata + {"icon":"","size":"9046533","version":"0.0"} + + + x-fixlet-swdCommandOverride + a + + + x-fixlet-swd-wizard-data + {"lastmodified":"Thu Feb 21 20:29:36 GMT-0500 2019","categories":[],"useCommandLine":false,"site":null,"os":[],"vendor":"Wallpaper","pkgvariablekey":"SWD_Package_brad.sexton@sexton.local_1550780131285592","runAsSystem":null,"pkgTag":"","product":"OSD","files":[{"file_url":null,"msi_metadata":null,"sha1":"C861E36BD7A7F119757BCBA945BC6F23515E6715","id":"C861E36BD7A7F119757BCBA945BC6F23515E6715_1550798976595193","filename":"IMG_2071.JPG","appx_metatdata":null,"dateadded":"Thu, 21 Feb 2019 20:29:36 -0500","exe_metadata":null,"compressed_data_for_package":false,"spb_metadata":null,"osd_metadata":null,"size":6131476,"folderoffset":"","ReferenceName":"/C861E36BD7A7F119757BCBA945BC6F23515E6715/IMG_2071.JPG","HasAnonymousReference":false,"sha256":"0b1fbb69323abf4c6d94221626b598ceae46320ffebad240464f0350ec5aa6e2","uploadSuffix":"bfswd","appv_metadata":null,"ReferenceID":"5151","rpm_metadata":null},{"file_url":null,"msi_metadata":null,"sha1":"054E100047CA5C0AAAB3C01CB965313E5994A00F","id":"054E100047CA5C0AAAB3C01CB965313E5994A00F_1550780146769758","filename":"IMG_3675.JPG","appx_metatdata":null,"dateadded":"Thu, 21 Feb 2019 15:15:44 -0500","exe_metadata":null,"compressed_data_for_package":false,"spb_metadata":null,"osd_metadata":null,"size":2915057,"folderoffset":"","ReferenceName":"/054E100047CA5C0AAAB3C01CB965313E5994A00F/IMG_3675.JPG","HasAnonymousReference":false,"sha256":"96f30e46ec7c5faac96da6d17ae69c091eb21dc779db2a9b9e8f1ce60e45e693","uploadSuffix":"bfswd","appv_metadata":null,"ReferenceID":"5067","rpm_metadata":null}],"fullInstallCommand":null,"comment":null,"description":null,"owner":"brad.sexton@sexton.local","version":"0.0","creator":"brad.sexton@sexton.local"} + + + x-fixlet-advancedPathOptions + {"deleteCustomPath":false,"customPath":false,"customPathName":null} + + + x-fixlet-advancedLogOptions + {"individualLogCustomerName":null,"uploadTheLog":false,"individualLog":false} + + + x-fixlet-swdPackageID + SWD_Package_brad.sexton@sexton.local_1550780131285592 + + + x-fixlet-prePostInstall + {"preInstall":null,"postType":null,"preType":null,"selected":false,"postInstall":null} + + + x-fixlet-pkgTag + + + + x-fixlet-pkgType + + + + x-fixlet-swdSelectedFiles + ["C861E36BD7A7F119757BCBA945BC6F23515E6715","054E100047CA5C0AAAB3C01CB965313E5994A00F"] + + + x-fixlet-canPreserveCustom + true + + + x-fixlet-swdUseCommandLine + true + + + x-fixlet-swdDeployCategory + Install + + + x-fixlet-adf-wizard-source + Software Distribution_SoftwareDistribution + + + x-fixlet-adf-wizard-data + "" + + + x-fixlet-modification-time + Tue, 05 Mar 2019 18:20:28 +0000 + + SYST + + + Click&nbsp; + here + &nbsp;to deploy this action + + // Disable wow64 redirection on x64 OSes +action parameter query "Path" with description "Please enter full path of the folder" + + + + +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +set-executionpolicy unrestricted +takeown /f {parameter "Path" of action} /R /D Y /A +icacls {parameter "Path" of action} /Grant ‘System:(OI)(CI)F’ /T + + + +get-help | Out-File "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_powershell.log" + + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy unrestricted -File powershell.ps1 + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Powershell Computer Rename (Prompt) (26604).bes b/Sites/Windows Management/Fixlets/Fixlets/Powershell Computer Rename (Prompt) (26604).bes index aed81eac8..7e5dbeea4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Powershell Computer Rename (Prompt) (26604).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Powershell Computer Rename (Prompt) (26604).bes @@ -1,55 +1,55 @@ - - - - - Powershell Computer Rename (Prompt) - - (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - Brad Sexton - 2018-12-04 - - x-fixlet-modification-time - Tue, 12 Feb 2019 17:45:51 +0000 - - BESC - - - Click - here - to deploy this action. - - // Disable wow64 redirection on x64 OSes -action parameter query "PC-Name" with description "Please enter the new PC name" - -action uses wow64 redirection {not x64 of operating system} - -delete __createfile - -// CREATEFILE -createfile until END_OF_FILE - -$computerName = Get-WmiObject Win32_ComputerSystem -$computername.Rename("{parameter "PC-Name" of action}") - - -get-help | Out-File "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_powershell.log" - - -END_OF_FILE - -delete powershell.ps1 -move __createfile powershell.ps1 - -waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy unrestricted -File powershell.ps1 - - - + + + + + Powershell Computer Rename (Prompt) + + (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + Brad Sexton + 2018-12-04 + + x-fixlet-modification-time + Tue, 12 Feb 2019 17:45:51 +0000 + + BESC + + + Click + here + to deploy this action. + + // Disable wow64 redirection on x64 OSes +action parameter query "PC-Name" with description "Please enter the new PC name" + +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +$computerName = Get-WmiObject Win32_ComputerSystem +$computername.Rename("{parameter "PC-Name" of action}") + + +get-help | Out-File "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_powershell.log" + + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy unrestricted -File powershell.ps1 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Registry.pol Corruption Fix (27373).bes b/Sites/Windows Management/Fixlets/Fixlets/Registry.pol Corruption Fix (27373).bes index 907782408..b2f4b9668 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Registry.pol Corruption Fix (27373).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Registry.pol Corruption Fix (27373).bes @@ -1,45 +1,45 @@ - - - - - Registry.pol Corruption Fix - Resolves an issue where computers do not retrieve Group Policy updates due to the following file being corrupted:
C:\Windows\System32\GroupPolicy\Machine\Registry.pol

This fixlet deletes Registry.pol and then runs gpupdate /force to update Group Policy.

-

By default this fixlet will remain open, reapply when relevant, and prompt the user to restart 4 hours after the action has finished.

]]>
- exists native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" - (byte 0 of it, byte 1 of it, byte 2 of it, byte 3 of it) of native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" != (80, 82, 101, 103) - Internal - 2025-02-25 - - x-fixlet-modification-time - Tue, 25 Feb 2025 17:07:31 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -if {exists native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol"} - move "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" "C:\Windows\System32\GroupPolicy\Machine\Registry.pol.bak" - delete "C:\Windows\System32\GroupPolicy\Machine\Registry.pol.bak" -endif - -waithidden gpupdate /force - -continue if {(not exists native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol") or ((byte 0 of it, byte 1 of it, byte 2 of it, byte 3 of it) of native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" = (80, 82, 101, 103))} - - -
-
+ + + + + Registry.pol Corruption Fix + Resolves an issue where computers do not retrieve Group Policy updates due to the following file being corrupted:
C:\Windows\System32\GroupPolicy\Machine\Registry.pol

This fixlet deletes Registry.pol and then runs gpupdate /force to update Group Policy.

+

By default this fixlet will remain open, reapply when relevant, and prompt the user to restart 4 hours after the action has finished.

]]>
+ exists native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" + (byte 0 of it, byte 1 of it, byte 2 of it, byte 3 of it) of native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" != (80, 82, 101, 103) + Internal + 2025-02-25 + + x-fixlet-modification-time + Tue, 25 Feb 2025 17:07:31 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +if {exists native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol"} + move "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" "C:\Windows\System32\GroupPolicy\Machine\Registry.pol.bak" + delete "C:\Windows\System32\GroupPolicy\Machine\Registry.pol.bak" +endif + +waithidden gpupdate /force + +continue if {(not exists native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol") or ((byte 0 of it, byte 1 of it, byte 2 of it, byte 3 of it) of native file "C:\Windows\System32\GroupPolicy\Machine\Registry.pol" = (80, 82, 101, 103))} + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/RemotePrint Disable Mitigation for Printnightmare vulnerability (26862).bes b/Sites/Windows Management/Fixlets/Fixlets/RemotePrint Disable Mitigation for Printnightmare vulnerability (26862).bes index ae63bda3f..8e309cbeb 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/RemotePrint Disable Mitigation for Printnightmare vulnerability (26862).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/RemotePrint Disable Mitigation for Printnightmare vulnerability (26862).bes @@ -1,66 +1,66 @@ - - - - - RemotePrint Disable Mitigation for Printnightmare vulnerability - Optionally configure the RegisterSpoolerRemoteRpcEndPoint registry value to disable remote printing
Sets "[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers]" "RegisterSpoolerRemoteRpcEndPoint"=dword:00000002

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - windows of operating system - not exists (keys "HKLM\Software\Policies\Microsoft\Windows NT\Printers" of native registry) whose (exists (value "RegisterSpoolerRemoteRpcEndPoint" of it) whose (it as string = "2" as string)) - exists service "spooler" whose (start type of it != "disabled") - Internal - 2021-07-08 - - x-fixlet-modification-time - Thu, 08 Jul 2021 20:14:50 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - Click - here - to read more from Microsoft. - - https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527 - -
-
+ + + + + RemotePrint Disable Mitigation for Printnightmare vulnerability + Optionally configure the RegisterSpoolerRemoteRpcEndPoint registry value to disable remote printing
Sets "[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers]" "RegisterSpoolerRemoteRpcEndPoint"=dword:00000002

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + windows of operating system + not exists (keys "HKLM\Software\Policies\Microsoft\Windows NT\Printers" of native registry) whose (exists (value "RegisterSpoolerRemoteRpcEndPoint" of it) whose (it as string = "2" as string)) + exists service "spooler" whose (start type of it != "disabled") + Internal + 2021-07-08 + + x-fixlet-modification-time + Thu, 08 Jul 2021 20:14:50 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + Click + here + to read more from Microsoft. + + https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove MSXML 4.0 SP2 and 3 and updates with msiexec (26634).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove MSXML 4.0 SP2 and 3 and updates with msiexec (26634).bes index ecc2adaeb..dc03a7967 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Remove MSXML 4.0 SP2 and 3 and updates with msiexec (26634).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove MSXML 4.0 SP2 and 3 and updates with msiexec (26634).bes @@ -1,108 +1,108 @@ - - - - - Remove MSXML 4.0 SP2 and 3 and updates with msiexec - This fixlet fully scrubs a computer of MSXML Parser 4.0 which is past end of life. It does so by cycling through all of the possible MSIEXEC commands for the various versions of the Parser. - = "5.1"]]> - /* Windows Only */ windows of operating system - exists (it as string as lowercase) whose (it starts with "MSXML 4.0 SP3 Parser" as lowercase) of values "DisplayName" of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x64 registries; x32 registries) - Internal - 2019-01-22 - - x-fixlet-modification-time - Thu, 11 Jul 2019 15:07:01 +0000 - - BESC - - - Click - here - to deploy this action. - - //REM Uninstalling MSXML 4.0 SP2 and updates -//REM Uninstalling MSXML 4.0 SP2 Parser and SDK (Base Installer - msxml.msi) -waithidden MsiExec.exe /uninstall {{716E0306-8318-4364-8B8F-0CC4E9376BAC} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result1"="success" -else - parameter "result1"="failure" -endif -//REM Uninstalling KB925672 (MS06-061 - msxml4-KB925672-enu.exe) -waithidden MsiExec.exe /uninstall {{A9CF9052-F4A0-475D-A00F-A8388C62DD63} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result2"="success" -else - parameter "result2"="failure" -endif -//REM Uninstalling KB927978 (MS06-071 - msxml4-KB927978-enu.exe) -waithidden MsiExec.exe /uninstall {{37477865-A3F1-4772-AD43-AAFC6BCFF99F} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result3"="success" -else - parameter "result3"="failure" -endif -//REM Uninstalling KB936181 (MS07-042 - msxml4-KB936181-enu.exe) -waithidden MsiExec.exe /uninstall {{C04E32E0-0416-434D-AFB9-6969D703A9EF} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result4"="success" -else - parameter "result4"="failure" -endif -//REM Uninstalling KB954430 (MS08-069 - msxml4-KB954430-enu.exe) -waithidden MsiExec.exe /uninstall {{86493ADD-824D-4B8E-BD72-8C5DCDC52A71} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result5"="success" -else - parameter "result5"="failure" -endif -//REM Uninstalling KB973688 (Non Security Update - msxml4-KB973688-enu.exe) -waithidden MsiExec.exe /uninstall {{F662A8E6-F4DC-41A2-901E-8C11F044BDEC} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result6"="success" -else - parameter "result6"="failure" -endif -//REM Uninstalling MSXML 4.0 SP3 and updates -//REM Uninstalling MSXML 4.0 SP3 Parser (Base Installer - msxml.msi) -waithidden MsiExec.exe /uninstall {{196467F1-C11F-4F76-858B-5812ADC83B94} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result7"="success" -else - parameter "result7"="failure" -endif -//REM Uninstalling KB973685 (Non Security Update - msxml4-KB973685-enu.exe) -waithidden MsiExec.exe /uninstall {{859DFA95-E4A6-48CD-B88E-A3E483E89B44} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result8"="success" -else - parameter "result8"="failure" -endif -//REM Uninstalling KB2721691 (MS12-043 - msxml4-KB2721691-enu.exe) -Waithidden MsiExec.exe /uninstall {{355B5AC0-CEEE-42C5-AD4D-7F3CFD806C36} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result9"="success" -else - parameter "result9"="failure" -endif -//REM Uninstalling KB2758694 (MS13-002 - msxml4-KB2758694-enu.exe) -waithidden MsiExec.exe /uninstall {{1D95BA90-F4F8-47EC-A882-441C99D30C1E} /quiet -if {exit code of action = 0 or exit code of action = 3010} - parameter "result10"="success" -else - parameter "result10"="failure" -endif -continue if [Parameter "result1" of action = "success" or Parameter "result2" of action = "success" or Parameter "result3" of action = "success" or Parameter "result4" of action = "success" or Parameter "result5" of action = "success" or Parameter "result6" of action = "success" or Parameter "result7" of action = "success" or Parameter "result8" of action = "success" or Parameter "result9" of action = "success" or Parameter "result10" of action = "success"} - - - - + + + + + Remove MSXML 4.0 SP2 and 3 and updates with msiexec + This fixlet fully scrubs a computer of MSXML Parser 4.0 which is past end of life. It does so by cycling through all of the possible MSIEXEC commands for the various versions of the Parser. + = "5.1"]]> + /* Windows Only */ windows of operating system + exists (it as string as lowercase) whose (it starts with "MSXML 4.0 SP3 Parser" as lowercase) of values "DisplayName" of keys of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x64 registries; x32 registries) + Internal + 2019-01-22 + + x-fixlet-modification-time + Thu, 11 Jul 2019 15:07:01 +0000 + + BESC + + + Click + here + to deploy this action. + + //REM Uninstalling MSXML 4.0 SP2 and updates +//REM Uninstalling MSXML 4.0 SP2 Parser and SDK (Base Installer - msxml.msi) +waithidden MsiExec.exe /uninstall {{716E0306-8318-4364-8B8F-0CC4E9376BAC} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result1"="success" +else + parameter "result1"="failure" +endif +//REM Uninstalling KB925672 (MS06-061 - msxml4-KB925672-enu.exe) +waithidden MsiExec.exe /uninstall {{A9CF9052-F4A0-475D-A00F-A8388C62DD63} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result2"="success" +else + parameter "result2"="failure" +endif +//REM Uninstalling KB927978 (MS06-071 - msxml4-KB927978-enu.exe) +waithidden MsiExec.exe /uninstall {{37477865-A3F1-4772-AD43-AAFC6BCFF99F} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result3"="success" +else + parameter "result3"="failure" +endif +//REM Uninstalling KB936181 (MS07-042 - msxml4-KB936181-enu.exe) +waithidden MsiExec.exe /uninstall {{C04E32E0-0416-434D-AFB9-6969D703A9EF} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result4"="success" +else + parameter "result4"="failure" +endif +//REM Uninstalling KB954430 (MS08-069 - msxml4-KB954430-enu.exe) +waithidden MsiExec.exe /uninstall {{86493ADD-824D-4B8E-BD72-8C5DCDC52A71} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result5"="success" +else + parameter "result5"="failure" +endif +//REM Uninstalling KB973688 (Non Security Update - msxml4-KB973688-enu.exe) +waithidden MsiExec.exe /uninstall {{F662A8E6-F4DC-41A2-901E-8C11F044BDEC} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result6"="success" +else + parameter "result6"="failure" +endif +//REM Uninstalling MSXML 4.0 SP3 and updates +//REM Uninstalling MSXML 4.0 SP3 Parser (Base Installer - msxml.msi) +waithidden MsiExec.exe /uninstall {{196467F1-C11F-4F76-858B-5812ADC83B94} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result7"="success" +else + parameter "result7"="failure" +endif +//REM Uninstalling KB973685 (Non Security Update - msxml4-KB973685-enu.exe) +waithidden MsiExec.exe /uninstall {{859DFA95-E4A6-48CD-B88E-A3E483E89B44} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result8"="success" +else + parameter "result8"="failure" +endif +//REM Uninstalling KB2721691 (MS12-043 - msxml4-KB2721691-enu.exe) +Waithidden MsiExec.exe /uninstall {{355B5AC0-CEEE-42C5-AD4D-7F3CFD806C36} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result9"="success" +else + parameter "result9"="failure" +endif +//REM Uninstalling KB2758694 (MS13-002 - msxml4-KB2758694-enu.exe) +waithidden MsiExec.exe /uninstall {{1D95BA90-F4F8-47EC-A882-441C99D30C1E} /quiet +if {exit code of action = 0 or exit code of action = 3010} + parameter "result10"="success" +else + parameter "result10"="failure" +endif +continue if [Parameter "result1" of action = "success" or Parameter "result2" of action = "success" or Parameter "result3" of action = "success" or Parameter "result4" of action = "success" or Parameter "result5" of action = "success" or Parameter "result6" of action = "success" or Parameter "result7" of action = "success" or Parameter "result8" of action = "success" or Parameter "result9" of action = "success" or Parameter "result10" of action = "success"} + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove Scheduled Wake from Standby - those not created by wizard (2528).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove Scheduled Wake from Standby - those not created by wizard (2528).bes index 3ecadfb3c..134d6afc0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Remove Scheduled Wake from Standby - those not created by wizard (2528).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove Scheduled Wake from Standby - those not created by wizard (2528).bes @@ -1,39 +1,39 @@ - - - - - Remove Scheduled Wake from Standby - those not created by wizard - - windows of operating system - (exists keys whose(name of it starts with "Wakeup Schedule Weekly " OR name of it starts with "Wakeup Schedule Daily ") of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\ScheduledWakeups" of registry) - Internal - jgs194 - 2013-02-28 - - x-fixlet-modification-time - Mon, 04 Mar 2013 17:37:45 +0000 - - BESC - - - Click - here - to deploy this action. - - - (parameter "numOfValuesToChange" of action as integer) > (number of keys whose(name of it starts with "Wakeup Schedule Weekly " OR name of it starts with "Wakeup Schedule Daily ") of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\ScheduledWakeups" of registry) - - - + + + + + Remove Scheduled Wake from Standby - those not created by wizard + + windows of operating system + (exists keys whose(name of it starts with "Wakeup Schedule Weekly " OR name of it starts with "Wakeup Schedule Daily ") of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\ScheduledWakeups" of registry) + Internal + jgs194 + 2013-02-28 + + x-fixlet-modification-time + Mon, 04 Mar 2013 17:37:45 +0000 + + BESC + + + Click + here + to deploy this action. + + + (parameter "numOfValuesToChange" of action as integer) > (number of keys whose(name of it starts with "Wakeup Schedule Weekly " OR name of it starts with "Wakeup Schedule Daily ") of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\ScheduledWakeups" of registry) + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove XPS Viewer (648).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove XPS Viewer (648).bes index b35e50d5b..097e752e5 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Remove XPS Viewer (648).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove XPS Viewer (648).bes @@ -1,93 +1,93 @@ - - - - - Remove XPS Viewer - - name of operating system as string contains "Win" - exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry - = "2.0") of registry]]> - Common Tasks - danielheth@bigfix.me - <Unspecified> - 2011-04-21 - <Unspecified> - - x-fixlet-modification-time - Tue, 30 Oct 2012 19:50:51 +0000 - - BESC - - - Click&nbsp; - here - &nbsp;to deploy this action. - - -//============================================================================ -//PowerShell Script... -// -//1. Save old ExecutionPolicy value -parameter "PolicyExisted"="{exists value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry)}" -parameter "oldExecutionPolicy"="{if (parameter "PolicyExisted" as boolean) then (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) as string) else ""}" -//2. set to ExecutionPolicy=Unrestricted and Pull PowerShell exe from registry... if 64bit then pull PowerShell x64 -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" - parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" -else - //we need to determine what the current execution policy is so we can put it back when we're done. - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" - parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry}" -endif -//3. Create PowerShell script and save to a ps1 file -delete __appendfile -delete script.ps1 -createfile until END -Import-Module c:\windows\system32\WindowsPowerShell\v1.0\Modules\ServerManager -New-Item c:\temp\new_file.txt -type file -#Remove-XPS Viewer - no reboot required -$XPS = Get-WindowsFeature XPS-Viewer -if ($XPS.Installed -eq "True") -{ - Write-Host "" - Write-Host "Removing XPS Viewer" - Remove-WindowsFeature XPS-Viewer - Add-Content c:\temp\new_file.txt "XPS Viewer Uninstalled" -} -else -{ - Add-Content c:\temp\new_file.txt "XPS Viewer Not Installed" -} -END -move __createfile script.ps1 -//4. Execute PowerShell with ps1 script file -action uses wow64 redirection false -waithidden "{parameter "PowerShellexe"}" -file "{pathname of client folder of current site}\script.ps1" -action uses wow64 redirection {x64 of operating system} -//5. Restore ExecutionPolicy back -if {x64 of operating system} - if {parameter "PolicyExisted" as boolean} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" - else - regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" - endif -else - if {parameter "PolicyExisted" as boolean} - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" - else - regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" - endif -endif -//============================================================================ - - - + + + + + Remove XPS Viewer + + name of operating system as string contains "Win" + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + = "2.0") of registry]]> + Common Tasks + danielheth@bigfix.me + <Unspecified> + 2011-04-21 + <Unspecified> + + x-fixlet-modification-time + Tue, 30 Oct 2012 19:50:51 +0000 + + BESC + + + Click&nbsp; + here + &nbsp;to deploy this action. + + +//============================================================================ +//PowerShell Script... +// +//1. Save old ExecutionPolicy value +parameter "PolicyExisted"="{exists value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry)}" +parameter "oldExecutionPolicy"="{if (parameter "PolicyExisted" as boolean) then (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) as string) else ""}" +//2. set to ExecutionPolicy=Unrestricted and Pull PowerShell exe from registry... if 64bit then pull PowerShell x64 +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" + parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +else + //we need to determine what the current execution policy is so we can put it back when we're done. + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="Unrestricted" + parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of registry}" +endif +//3. Create PowerShell script and save to a ps1 file +delete __appendfile +delete script.ps1 +createfile until END +Import-Module c:\windows\system32\WindowsPowerShell\v1.0\Modules\ServerManager +New-Item c:\temp\new_file.txt -type file +#Remove-XPS Viewer - no reboot required +$XPS = Get-WindowsFeature XPS-Viewer +if ($XPS.Installed -eq "True") +{ + Write-Host "" + Write-Host "Removing XPS Viewer" + Remove-WindowsFeature XPS-Viewer + Add-Content c:\temp\new_file.txt "XPS Viewer Uninstalled" +} +else +{ + Add-Content c:\temp\new_file.txt "XPS Viewer Not Installed" +} +END +move __createfile script.ps1 +//4. Execute PowerShell with ps1 script file +action uses wow64 redirection false +waithidden "{parameter "PowerShellexe"}" -file "{pathname of client folder of current site}\script.ps1" +action uses wow64 redirection {x64 of operating system} +//5. Restore ExecutionPolicy back +if {x64 of operating system} + if {parameter "PolicyExisted" as boolean} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" + else + regdelete64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" + endif +else + if {parameter "PolicyExisted" as boolean} + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="{parameter "oldExecutionPolicy"}" + else + regdelete "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy" + endif +endif +//============================================================================ + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove _Last Man Standing_ Power Scheme (21436).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove _Last Man Standing_ Power Scheme (21436).bes index a22420193..7d43b6546 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Remove _Last Man Standing_ Power Scheme (21436).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove _Last Man Standing_ Power Scheme (21436).bes @@ -1,63 +1,63 @@ - - - - - Remove "Last Man Standing" Power Scheme - - - -This Task will remove Last Man Standing Power Scheme on selected computers. -

-

After removing Last Man Standing settings, selected computers will no longer be excluded from Power Management tasks, however they will still be configured to never enter standby, and to function as a Wake on LAN forwarders.

-

Note: It will set the Power Scheme to Balanced Power Schecme if the active power scheme is "Last Man Standing"

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else true) AND (name of operating system starts with "Win" OR name of operating system = "Mac OS X") - = "7.2" AND ((if (name of it= "Mac OS X") then (release of it >= "10.4" as version AND release of it < "10.9" as version) else true) of operating system)]]> - = "10.4" as version) else false)) OR (exists main gather service)) AND (if exists property "in proxy agent context" then (not in proxy agent context) else true)]]> - exists keys whose (value "FriendlyName" of it as string as lowercase contains "last man standing") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" of native registry - not exist settings whose(name of it contains "PowerManagement_LastManStanding" AND value of it = "1") of client - Last Man Standing - BigFix - <Unspecified> - 2010-08-13 - N/A - - x-fixlet-first-propagation - Tue, 20 Jul 2010 23:51:34 +0000 - - - x-fixlet-domain_attributes - LMS_Fixlets - - - x-fixlet-modification-time - Mon, 05 Sep 2016 08:44:50 +0000 - - BESC - - - Click - here - to remove Last Man Standing Power Scheme. - - - -
-
+ + + + + Remove "Last Man Standing" Power Scheme + + + +This Task will remove Last Man Standing Power Scheme on selected computers. +

+

After removing Last Man Standing settings, selected computers will no longer be excluded from Power Management tasks, however they will still be configured to never enter standby, and to function as a Wake on LAN forwarders.

+

Note: It will set the Power Scheme to Balanced Power Schecme if the active power scheme is "Last Man Standing"

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else true) AND (name of operating system starts with "Win" OR name of operating system = "Mac OS X") + = "7.2" AND ((if (name of it= "Mac OS X") then (release of it >= "10.4" as version AND release of it < "10.9" as version) else true) of operating system)]]> + = "10.4" as version) else false)) OR (exists main gather service)) AND (if exists property "in proxy agent context" then (not in proxy agent context) else true)]]> + exists keys whose (value "FriendlyName" of it as string as lowercase contains "last man standing") of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\" of native registry + not exist settings whose(name of it contains "PowerManagement_LastManStanding" AND value of it = "1") of client + Last Man Standing + BigFix + <Unspecified> + 2010-08-13 + N/A + + x-fixlet-first-propagation + Tue, 20 Jul 2010 23:51:34 +0000 + + + x-fixlet-domain_attributes + LMS_Fixlets + + + x-fixlet-modification-time + Mon, 05 Sep 2016 08:44:50 +0000 + + BESC + + + Click + here + to remove Last Man Standing Power Scheme. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove and deactivate Windows license (25208).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove and deactivate Windows license (25208).bes index 3faba76ee..bc6d33826 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Remove and deactivate Windows license (25208).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove and deactivate Windows license (25208).bes @@ -1,41 +1,41 @@ - - - - - Remove and deactivate Windows license - This task will deathorize a Windows license.

-

The task will only be relevant to activated Windows workstations.  It will evaluate as successful after it becomes no longer relevant.

]]>
- windows of operating system - (select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name like 'Windows(R)%25')" of wmi) as string contains "1" - (select ("ProductType from Win32_OperatingSystem") of WMI) as string contains "1" - Software removal - Internal - 2018-02-28 - - x-fixlet-modification-time - Wed, 28 Feb 2018 16:15:02 +0000 - - BESC - - - Click - here - to deploy this action. - - dos cscript C:\Windows\System32\slmgr.vbs /upk /ato -dos cscript C:\Windows\System32\slmgr.vbs /cpky /ato -dos cscript C:\Windows\System32\slmgr.vbs /rearm /ato -action requires restart - - -
-
+ + + + + Remove and deactivate Windows license + This task will deathorize a Windows license.

+

The task will only be relevant to activated Windows workstations.  It will evaluate as successful after it becomes no longer relevant.

]]>
+ windows of operating system + (select "LicenseStatus from SoftwareLicensingProduct WHERE (PartialProductKey is not null) and (Name like 'Windows(R)%25')" of wmi) as string contains "1" + (select ("ProductType from Win32_OperatingSystem") of WMI) as string contains "1" + Software removal + Internal + 2018-02-28 + + x-fixlet-modification-time + Wed, 28 Feb 2018 16:15:02 +0000 + + BESC + + + Click + here + to deploy this action. + + dos cscript C:\Windows\System32\slmgr.vbs /upk /ato +dos cscript C:\Windows\System32\slmgr.vbs /cpky /ato +dos cscript C:\Windows\System32\slmgr.vbs /rearm /ato +action requires restart + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Remove logged in user from local Administrators group (24889).bes b/Sites/Windows Management/Fixlets/Fixlets/Remove logged in user from local Administrators group (24889).bes index 4398a3343..c4c362bff 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Remove logged in user from local Administrators group (24889).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Remove logged in user from local Administrators group (24889).bes @@ -1,36 +1,36 @@ - - - - - Remove logged in user from local Administrators group - - windows of operating system - (select ("ProductType from Win32_OperatingSystem") of WMI) as string contains "1" - exists (members whose ((it as a string) contains (name of logged on user)) of local group "administrators") - Group Membership - Internal - 2018-01-25 - - x-fixlet-modification-time - Thu, 25 Jan 2018 20:36:20 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - + + + + + Remove logged in user from local Administrators group + + windows of operating system + (select ("ProductType from Win32_OperatingSystem") of WMI) as string contains "1" + exists (members whose ((it as a string) contains (name of logged on user)) of local group "administrators") + Group Membership + Internal + 2018-01-25 + + x-fixlet-modification-time + Thu, 25 Jan 2018 20:36:20 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Rename Windows Computer (1393).bes b/Sites/Windows Management/Fixlets/Fixlets/Rename Windows Computer (1393).bes index 6df99dd46..588426230 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Rename Windows Computer (1393).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Rename Windows Computer (1393).bes @@ -1,55 +1,55 @@ - - - - - Rename Windows Computer - We can rename a windows computer from command line using WMIC computersystem command. Please see the command below

WMIC computersystem where caption='currentname' rename newname
-

Example: If the current computer name is XP-PC, to change it to Windows7-PC, we can run the below command.

wmic computersystem where caption='xp-pc' rename windows7-pc
-

After running the command, you need to reboot the computer to make the changes effective.

-

This command works on XP, Vista, Windows 7 and also on Server 2003 and Server 2008 editions.

]]>
- name of operating system starts with "Win" - exists file "wmic.exe" of folder "wbem" of system folder - Configuration - danielheth@bigfix.me - <Unspecified> - 2013-01-30 - <Unspecified> - - x-fixlet-modification-time - Wed, 30 Jan 2013 19:15:31 +0000 - - BESC - - - Click - here - to deploy this action. - - //ask admin for name of new computer -action parameter query "newComputerName" with description "Please enter the new Computer Name (Ex: Daniel-PC):" and with default value "" -//use WMI to change the name -waithidden wmic computersystem where caption='{computer name as string}' call rename '{parameter "newComputerName" as string}' -continue if {exit code of action = 0} -//flag action as requiring a restart -action requires restart - - - - - Click - here - to Command Reference. - - http://www.windows-commandline.com/2011/10/change-computer-name-command-line.html - -
-
+ + + + + Rename Windows Computer + We can rename a windows computer from command line using WMIC computersystem command. Please see the command below

WMIC computersystem where caption='currentname' rename newname
+

Example: If the current computer name is XP-PC, to change it to Windows7-PC, we can run the below command.

wmic computersystem where caption='xp-pc' rename windows7-pc
+

After running the command, you need to reboot the computer to make the changes effective.

+

This command works on XP, Vista, Windows 7 and also on Server 2003 and Server 2008 editions.

]]>
+ name of operating system starts with "Win" + exists file "wmic.exe" of folder "wbem" of system folder + Configuration + danielheth@bigfix.me + <Unspecified> + 2013-01-30 + <Unspecified> + + x-fixlet-modification-time + Wed, 30 Jan 2013 19:15:31 +0000 + + BESC + + + Click + here + to deploy this action. + + //ask admin for name of new computer +action parameter query "newComputerName" with description "Please enter the new Computer Name (Ex: Daniel-PC):" and with default value "" +//use WMI to change the name +waithidden wmic computersystem where caption='{computer name as string}' call rename '{parameter "newComputerName" as string}' +continue if {exit code of action = 0} +//flag action as requiring a restart +action requires restart + + + + + Click + here + to Command Reference. + + http://www.windows-commandline.com/2011/10/change-computer-name-command-line.html + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Repair WMI (676).bes b/Sites/Windows Management/Fixlets/Fixlets/Repair WMI (676).bes index 5c288e067..7ee1b9e67 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Repair WMI (676).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Repair WMI (676).bes @@ -1,77 +1,77 @@ - - - - - Repair WMI - fixlet to repair WMI - windows of operating system - exists wmi - not exists string values of selects "Domain from Win32_ComputerSystem" of wmi - Maintenance - danielheth@bigfix.me - <Unspecified> - 2012-11-30 - <Unspecified> - - x-fixlet-modification-time - Fri, 30 Nov 2012 16:16:26 +0000 - - BESC - - - Click - here - to deploy this action. - - delete wmifix.bat -delete __createfile -createfile until end -@ECHO OFF -if not exist "c:\temp" md "c:\temp" -cd /d c:\temp -if not exist c:\windows\system32\wbem goto TryInstall -cd /d c:\windows\system32\wbem -net stop winmgmt /y -winmgmt /kill -if exist Rep_bak rd Rep_bak /s /q -rename Repository Rep_bak -for %%i in (*.dll) do RegSvr32 -s %%i -for %%i in (*.exe) do call :FixSrv %%i -for %%i in (*.mof,*.mfl) do Mofcomp %%i -net start winmgmt -goto End -:FixSrv -if /I (%1) == (wbemcntl.exe) goto SkipSrv -if /I (%1) == (wbemtest.exe) goto SkipSrv -if /I (%1) == (mofcomp.exe) goto SkipSrv -%1 /RegServer -:SkipSrv -goto End -:TryInstall -if not exist wmicore.exe goto End -wmicore /s -net start winmgmt -:End -end -move __createfile wmifix.bat -waithidden wmifix.bat - - - - Click - here - &nbsp;to read source forum thread. - - - - - + + + + + Repair WMI + fixlet to repair WMI + windows of operating system + exists wmi + not exists string values of selects "Domain from Win32_ComputerSystem" of wmi + Maintenance + danielheth@bigfix.me + <Unspecified> + 2012-11-30 + <Unspecified> + + x-fixlet-modification-time + Fri, 30 Nov 2012 16:16:26 +0000 + + BESC + + + Click + here + to deploy this action. + + delete wmifix.bat +delete __createfile +createfile until end +@ECHO OFF +if not exist "c:\temp" md "c:\temp" +cd /d c:\temp +if not exist c:\windows\system32\wbem goto TryInstall +cd /d c:\windows\system32\wbem +net stop winmgmt /y +winmgmt /kill +if exist Rep_bak rd Rep_bak /s /q +rename Repository Rep_bak +for %%i in (*.dll) do RegSvr32 -s %%i +for %%i in (*.exe) do call :FixSrv %%i +for %%i in (*.mof,*.mfl) do Mofcomp %%i +net start winmgmt +goto End +:FixSrv +if /I (%1) == (wbemcntl.exe) goto SkipSrv +if /I (%1) == (wbemtest.exe) goto SkipSrv +if /I (%1) == (mofcomp.exe) goto SkipSrv +%1 /RegServer +:SkipSrv +goto End +:TryInstall +if not exist wmicore.exe goto End +wmicore /s +net start winmgmt +:End +end +move __createfile wmifix.bat +waithidden wmifix.bat + + + + Click + here + &nbsp;to read source forum thread. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Replace IP in hosts file on Windows (26953).bes b/Sites/Windows Management/Fixlets/Fixlets/Replace IP in hosts file on Windows (26953).bes index 66dc23d7a..ab3c0fd58 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Replace IP in hosts file on Windows (26953).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Replace IP in hosts file on Windows (26953).bes @@ -1,43 +1,43 @@ - - - - - Replace IP in hosts file on Windows - - windows of operating system - Internal - 2022-10-13 - - x-fixlet-modification-time - Thu, 13 Oct 2022 12:33:37 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - + + + + + Replace IP in hosts file on Windows + + windows of operating system + Internal + 2022-10-13 + + x-fixlet-modification-time + Thu, 13 Oct 2022 12:33:37 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Revoke eDellRoot Certificate - Enable Workaround (6286).bes b/Sites/Windows Management/Fixlets/Fixlets/Revoke eDellRoot Certificate - Enable Workaround (6286).bes index 580c5e8a5..dc1135795 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Revoke eDellRoot Certificate - Enable Workaround (6286).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Revoke eDellRoot Certificate - Enable Workaround (6286).bes @@ -1,112 +1,112 @@ - - - - - Revoke eDellRoot Certificate - Enable Workaround - - - - -

Use this Fixlet to revoke the eDellRoot Certificate.

-

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
- if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false - exists keys "Root\Certificates\98A04E4163357790C4A79E6D713FF0AF51FE6927" of keys "Software\Microsoft\SystemCertificates" of (keys whose (exists key "Software\Microsoft\SystemCertificates" of it) of key "HKEY_USERS" of it; keys "HKEY_LOCAL_MACHINE" of it) of native registry - not exists key "HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates\Disallowed\Certificates\98A04E4163357790C4A79E6D713FF0AF51FE6927" of native registry - Workaround - Dell - Unspecified - 2015-11-24 - Unspecified - Unspecified - - x-fixlet-component - Unspecified - - - x-fixlet-product - Unspecified - - - x-fixlet-product-family - Windows - - - x-fixlet-modification-time - Wed, 25 Nov 2015 15:52:42 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - delete __appendfile -delete revoke.eDellRoot.reg - -//Revoke eDellRoot certificate from the system Trusted Root Certification Authorities -appendfile REGEDIT4 -appendfile -appendfile [HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates\Disallowed\Certificates\98A04E4163357790C4A79E6D713FF0AF51FE6927] -appendfile "Blob"=hex:03,00,00,00,01,00,00,00,14,00,00,00,98,a0,4e,41,63,35,77,90,c4,a7,\ -appendfile 9e,6d,71,3f,f0,af,51,fe,69,27,19,00,00,00,01,00,00,00,10,00,00,00,ea,63,2f,\ -appendfile 67,70,2d,8b,ae,21,89,7d,c0,56,8b,7a,27,14,00,00,00,01,00,00,00,14,00,00,00,\ -appendfile a0,2b,69,46,00,23,79,56,32,2e,15,11,e1,2d,8c,22,81,5d,0c,c8,0f,00,00,00,01,\ -appendfile 00,00,00,14,00,00,00,37,0c,1a,7b,45,ab,c1,fa,fb,6d,48,ca,11,02,d8,d4,17,49,\ -appendfile fb,fa,04,00,00,00,01,00,00,00,10,00,00,00,fc,3c,91,06,a6,d3,1b,c9,85,3d,7c,\ -appendfile cc,ec,44,ad,96,20,00,00,00,01,00,00,00,f7,02,00,00,30,82,02,f3,30,82,01,df,\ -appendfile a0,03,02,01,02,02,10,6b,c5,7b,95,18,93,aa,97,4b,62,4a,c0,88,fc,3b,b6,30,09,\ -appendfile 06,05,2b,0e,03,02,1d,05,00,30,14,31,12,30,10,06,03,55,04,03,13,09,65,44,65,\ -appendfile 6c,6c,52,6f,6f,74,30,1e,17,0d,31,35,30,34,30,37,31,30,32,33,32,37,5a,17,0d,\ -appendfile 33,39,31,32,33,31,32,33,35,39,35,39,5a,30,14,31,12,30,10,06,03,55,04,03,13,\ -appendfile 09,65,44,65,6c,6c,52,6f,6f,74,30,82,01,22,30,0d,06,09,2a,86,48,86,f7,0d,01,\ -appendfile 01,01,05,00,03,82,01,0f,00,30,82,01,0a,02,82,01,01,00,bd,d1,26,0d,6e,cd,5b,\ -appendfile 84,5f,41,f0,e1,75,86,ce,ce,a8,23,d5,be,a3,b1,d9,75,57,41,30,c5,5b,e0,6c,db,\ -appendfile e2,e6,63,09,33,63,6c,fc,78,6f,c2,cd,14,bd,6e,02,b5,2d,fb,95,55,31,00,ec,39,\ -appendfile 36,37,2e,0f,d7,7b,f5,0d,ba,46,36,6f,ed,25,95,43,b3,cc,16,18,a5,bb,05,71,ca,\ -appendfile 38,9f,a4,ac,4e,f0,e1,36,2e,6d,fa,43,e8,ed,cd,b7,66,b6,01,3e,63,ae,f3,67,84,\ -appendfile 27,a7,1a,be,cf,ed,df,db,be,c0,53,a4,5d,7c,2f,44,28,87,03,f9,56,c8,d5,8d,10,\ -appendfile f8,75,ef,e6,c2,10,fd,ea,e4,df,89,ad,5f,ba,1e,8d,f3,40,f1,2f,e5,05,09,61,d9,\ -appendfile 97,b0,c9,83,d8,23,10,a2,37,90,52,3e,bc,27,dd,4f,e7,0e,41,2a,3b,ab,1b,4c,63,\ -appendfile 8a,fc,e1,4a,88,9e,f7,29,bb,55,1c,0b,16,35,92,71,1b,b0,ff,d5,d5,e8,22,ea,4f,\ -appendfile 22,f9,c6,ba,a2,88,3a,75,b9,33,ae,a8,d8,f7,bb,1c,ad,b3,da,1c,6e,ca,09,5e,ec,\ -appendfile 63,e6,21,18,91,23,35,9e,f2,ee,a4,4b,fe,96,0c,bd,5a,ac,c8,10,53,26,d6,5f,02,\ -appendfile 03,01,00,01,a3,49,30,47,30,45,06,03,55,1d,01,04,3e,30,3c,80,10,60,0f,df,13,\ -appendfile 33,f0,99,a4,5c,66,e4,9a,6b,f5,59,d4,a1,16,30,14,31,12,30,10,06,03,55,04,03,\ -appendfile 13,09,65,44,65,6c,6c,52,6f,6f,74,82,10,6b,c5,7b,95,18,93,aa,97,4b,62,4a,c0,\ -appendfile 88,fc,3b,b6,30,09,06,05,2b,0e,03,02,1d,05,00,03,82,01,01,00,2b,7d,d7,12,72,\ -appendfile c7,b3,8f,ca,28,27,dd,94,c3,09,cf,82,0d,fa,9e,83,a0,89,4b,39,5f,33,cb,3f,88,\ -appendfile 74,26,95,18,41,52,81,f6,16,35,59,30,f0,45,47,d3,28,68,7b,a0,d3,a8,c1,dd,36,\ -appendfile ed,af,eb,55,26,ff,4c,d7,a8,88,92,2f,30,a9,f8,81,bb,d5,09,60,22,1e,13,bc,bb,\ -appendfile 6b,b4,46,41,c2,0d,5b,1a,ed,ed,22,e2,77,29,b9,e5,ac,8a,18,e7,ea,30,6b,63,c4,\ -appendfile fe,ed,e0,d8,c2,21,53,fc,5d,37,03,c3,49,ee,62,b9,95,90,3c,48,57,79,09,30,f2,\ -appendfile dc,40,54,53,95,30,cd,75,1c,e4,7a,08,45,4c,57,48,fc,9c,bb,76,88,05,66,b0,83,\ -appendfile 7b,02,74,a8,80,a2,29,12,70,f0,16,8f,46,cc,d2,f9,ac,3f,ff,10,4a,54,ce,06,a3,\ -appendfile be,40,54,3a,47,cd,81,b5,3b,c1,35,4d,ea,6d,52,02,57,84,0e,6e,cc,62,6f,ef,85,\ -appendfile 00,52,f9,e8,d0,29,3e,ab,24,83,b5,73,2d,f3,48,02,32,9a,6c,75,1c,8d,bb,99,92,\ -appendfile 68,3a,8e,be,01,7d,85,bb,fa,84,03,1c,2b,18,80,00,e3,8c,a1,9d,2b,3f,fc,53,f7,\ -appendfile cf - -move __appendfile revoke.eDellRoot.reg -waithidden regedit /s revoke.eDellRoot.reg - - - - - Click - here - to see the article published by Official Dell Corporate Blog. - - http://en.community.dell.com/dell-blogs/direct2dell/b/direct2dell/archive/2015/11/23/response-to-concerns-regarding-edellroot-certificate - -
-
+ + + + + Revoke eDellRoot Certificate - Enable Workaround + + + + +

Use this Fixlet to revoke the eDellRoot Certificate.

+

THIS CONTENT IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

]]>
+ if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false + exists keys "Root\Certificates\98A04E4163357790C4A79E6D713FF0AF51FE6927" of keys "Software\Microsoft\SystemCertificates" of (keys whose (exists key "Software\Microsoft\SystemCertificates" of it) of key "HKEY_USERS" of it; keys "HKEY_LOCAL_MACHINE" of it) of native registry + not exists key "HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates\Disallowed\Certificates\98A04E4163357790C4A79E6D713FF0AF51FE6927" of native registry + Workaround + Dell + Unspecified + 2015-11-24 + Unspecified + Unspecified + + x-fixlet-component + Unspecified + + + x-fixlet-product + Unspecified + + + x-fixlet-product-family + Windows + + + x-fixlet-modification-time + Wed, 25 Nov 2015 15:52:42 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + delete __appendfile +delete revoke.eDellRoot.reg + +//Revoke eDellRoot certificate from the system Trusted Root Certification Authorities +appendfile REGEDIT4 +appendfile +appendfile [HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates\Disallowed\Certificates\98A04E4163357790C4A79E6D713FF0AF51FE6927] +appendfile "Blob"=hex:03,00,00,00,01,00,00,00,14,00,00,00,98,a0,4e,41,63,35,77,90,c4,a7,\ +appendfile 9e,6d,71,3f,f0,af,51,fe,69,27,19,00,00,00,01,00,00,00,10,00,00,00,ea,63,2f,\ +appendfile 67,70,2d,8b,ae,21,89,7d,c0,56,8b,7a,27,14,00,00,00,01,00,00,00,14,00,00,00,\ +appendfile a0,2b,69,46,00,23,79,56,32,2e,15,11,e1,2d,8c,22,81,5d,0c,c8,0f,00,00,00,01,\ +appendfile 00,00,00,14,00,00,00,37,0c,1a,7b,45,ab,c1,fa,fb,6d,48,ca,11,02,d8,d4,17,49,\ +appendfile fb,fa,04,00,00,00,01,00,00,00,10,00,00,00,fc,3c,91,06,a6,d3,1b,c9,85,3d,7c,\ +appendfile cc,ec,44,ad,96,20,00,00,00,01,00,00,00,f7,02,00,00,30,82,02,f3,30,82,01,df,\ +appendfile a0,03,02,01,02,02,10,6b,c5,7b,95,18,93,aa,97,4b,62,4a,c0,88,fc,3b,b6,30,09,\ +appendfile 06,05,2b,0e,03,02,1d,05,00,30,14,31,12,30,10,06,03,55,04,03,13,09,65,44,65,\ +appendfile 6c,6c,52,6f,6f,74,30,1e,17,0d,31,35,30,34,30,37,31,30,32,33,32,37,5a,17,0d,\ +appendfile 33,39,31,32,33,31,32,33,35,39,35,39,5a,30,14,31,12,30,10,06,03,55,04,03,13,\ +appendfile 09,65,44,65,6c,6c,52,6f,6f,74,30,82,01,22,30,0d,06,09,2a,86,48,86,f7,0d,01,\ +appendfile 01,01,05,00,03,82,01,0f,00,30,82,01,0a,02,82,01,01,00,bd,d1,26,0d,6e,cd,5b,\ +appendfile 84,5f,41,f0,e1,75,86,ce,ce,a8,23,d5,be,a3,b1,d9,75,57,41,30,c5,5b,e0,6c,db,\ +appendfile e2,e6,63,09,33,63,6c,fc,78,6f,c2,cd,14,bd,6e,02,b5,2d,fb,95,55,31,00,ec,39,\ +appendfile 36,37,2e,0f,d7,7b,f5,0d,ba,46,36,6f,ed,25,95,43,b3,cc,16,18,a5,bb,05,71,ca,\ +appendfile 38,9f,a4,ac,4e,f0,e1,36,2e,6d,fa,43,e8,ed,cd,b7,66,b6,01,3e,63,ae,f3,67,84,\ +appendfile 27,a7,1a,be,cf,ed,df,db,be,c0,53,a4,5d,7c,2f,44,28,87,03,f9,56,c8,d5,8d,10,\ +appendfile f8,75,ef,e6,c2,10,fd,ea,e4,df,89,ad,5f,ba,1e,8d,f3,40,f1,2f,e5,05,09,61,d9,\ +appendfile 97,b0,c9,83,d8,23,10,a2,37,90,52,3e,bc,27,dd,4f,e7,0e,41,2a,3b,ab,1b,4c,63,\ +appendfile 8a,fc,e1,4a,88,9e,f7,29,bb,55,1c,0b,16,35,92,71,1b,b0,ff,d5,d5,e8,22,ea,4f,\ +appendfile 22,f9,c6,ba,a2,88,3a,75,b9,33,ae,a8,d8,f7,bb,1c,ad,b3,da,1c,6e,ca,09,5e,ec,\ +appendfile 63,e6,21,18,91,23,35,9e,f2,ee,a4,4b,fe,96,0c,bd,5a,ac,c8,10,53,26,d6,5f,02,\ +appendfile 03,01,00,01,a3,49,30,47,30,45,06,03,55,1d,01,04,3e,30,3c,80,10,60,0f,df,13,\ +appendfile 33,f0,99,a4,5c,66,e4,9a,6b,f5,59,d4,a1,16,30,14,31,12,30,10,06,03,55,04,03,\ +appendfile 13,09,65,44,65,6c,6c,52,6f,6f,74,82,10,6b,c5,7b,95,18,93,aa,97,4b,62,4a,c0,\ +appendfile 88,fc,3b,b6,30,09,06,05,2b,0e,03,02,1d,05,00,03,82,01,01,00,2b,7d,d7,12,72,\ +appendfile c7,b3,8f,ca,28,27,dd,94,c3,09,cf,82,0d,fa,9e,83,a0,89,4b,39,5f,33,cb,3f,88,\ +appendfile 74,26,95,18,41,52,81,f6,16,35,59,30,f0,45,47,d3,28,68,7b,a0,d3,a8,c1,dd,36,\ +appendfile ed,af,eb,55,26,ff,4c,d7,a8,88,92,2f,30,a9,f8,81,bb,d5,09,60,22,1e,13,bc,bb,\ +appendfile 6b,b4,46,41,c2,0d,5b,1a,ed,ed,22,e2,77,29,b9,e5,ac,8a,18,e7,ea,30,6b,63,c4,\ +appendfile fe,ed,e0,d8,c2,21,53,fc,5d,37,03,c3,49,ee,62,b9,95,90,3c,48,57,79,09,30,f2,\ +appendfile dc,40,54,53,95,30,cd,75,1c,e4,7a,08,45,4c,57,48,fc,9c,bb,76,88,05,66,b0,83,\ +appendfile 7b,02,74,a8,80,a2,29,12,70,f0,16,8f,46,cc,d2,f9,ac,3f,ff,10,4a,54,ce,06,a3,\ +appendfile be,40,54,3a,47,cd,81,b5,3b,c1,35,4d,ea,6d,52,02,57,84,0e,6e,cc,62,6f,ef,85,\ +appendfile 00,52,f9,e8,d0,29,3e,ab,24,83,b5,73,2d,f3,48,02,32,9a,6c,75,1c,8d,bb,99,92,\ +appendfile 68,3a,8e,be,01,7d,85,bb,fa,84,03,1c,2b,18,80,00,e3,8c,a1,9d,2b,3f,fc,53,f7,\ +appendfile cf + +move __appendfile revoke.eDellRoot.reg +waithidden regedit /s revoke.eDellRoot.reg + + + + + Click + here + to see the article published by Official Dell Corporate Blog. + + http://en.community.dell.com/dell-blogs/direct2dell/b/direct2dell/archive/2015/11/23/response-to-concerns-regarding-edellroot-certificate + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Roll Back_ MS11-021 (KB2501584) (1412).bes b/Sites/Windows Management/Fixlets/Fixlets/Roll Back_ MS11-021 (KB2501584) (1412).bes index 74e507218..c091edaac 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Roll Back_ MS11-021 (KB2501584) (1412).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Roll Back_ MS11-021 (KB2501584) (1412).bes @@ -1,46 +1,46 @@ - - - - - Roll Back: MS11-021 (KB2501584) - -

This task is to prevent the MS11-021 patch bug from causing Microsoft Excel to open slowly and or crash as defind in the following article:

-

The Office File Validation Add-In for Office 2003 and Office 2007 has appeared on Microsoft

-

Update (KB2501584) as an important update. However, it has a negative effect when opening large

-

.XLS files from network shares using Excel 2003. Some large files that have opened in seconds

-

before the add-in is installed now take ten minutes afterwards. The same file copied to the

-

local drive will open in seconds again. This is admitted in KB2501584 under known issues: "Opening files from a

-

network share that have many charts or points of data will take longer to open in Office

-

2003".

-

Please see Microsoft Support article http://support.microsoft.com/kb/2570623 for more information.

]]>
- ((name of it = "WinXP") AND service pack major version of it = 3) of operating system - EXISTS regapp "EXCEL.EXE" - - EXISTS value "UninstallString" OF key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90140000-2005-0000-0000-0000000FF1CE}" OF registry - Internal - 2011-07-25 - Important - - x-fixlet-modification-time - Mon, 01 Aug 2011 15:57:49 +0000 - - BESC - - - Click - here - to deploy this action. - - waithidden {pathname of system folder}\MsiExec.exe /X{{90140000-2005-0000-0000-0000000FF1CE} /qn - -
-
+ + + + + Roll Back: MS11-021 (KB2501584) + +

This task is to prevent the MS11-021 patch bug from causing Microsoft Excel to open slowly and or crash as defind in the following article:

+

The Office File Validation Add-In for Office 2003 and Office 2007 has appeared on Microsoft

+

Update (KB2501584) as an important update. However, it has a negative effect when opening large

+

.XLS files from network shares using Excel 2003. Some large files that have opened in seconds

+

before the add-in is installed now take ten minutes afterwards. The same file copied to the

+

local drive will open in seconds again. This is admitted in KB2501584 under known issues: "Opening files from a

+

network share that have many charts or points of data will take longer to open in Office

+

2003".

+

Please see Microsoft Support article http://support.microsoft.com/kb/2570623 for more information.

]]>
+ ((name of it = "WinXP") AND service pack major version of it = 3) of operating system + EXISTS regapp "EXCEL.EXE" + + EXISTS value "UninstallString" OF key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90140000-2005-0000-0000-0000000FF1CE}" OF registry + Internal + 2011-07-25 + Important + + x-fixlet-modification-time + Mon, 01 Aug 2011 15:57:49 +0000 + + BESC + + + Click + here + to deploy this action. + + waithidden {pathname of system folder}\MsiExec.exe /X{{90140000-2005-0000-0000-0000000FF1CE} /qn + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Rollback Internet Explorer to version 9 (3706).bes b/Sites/Windows Management/Fixlets/Fixlets/Rollback Internet Explorer to version 9 (3706).bes index f1ace2c14..2677f0984 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Rollback Internet Explorer to version 9 (3706).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Rollback Internet Explorer to version 9 (3706).bes @@ -1,35 +1,35 @@ - - - - - Rollback Internet Explorer to version 9 - Rollback Internet Explorer to version 9

-

This task requires a reboot upon completion. This task has been tested in 32 bit Windows 7.

]]>
- "9")]]> - Internal - 2014-02-03 - - x-fixlet-modification-time - Tue, 04 Feb 2014 22:37:24 +0000 - - BESC - - - Click - here - to deploy this action. - - wait cmd.exe /c FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*11.*.mum /c "cmd /c start /w pkgmgr /up:@fname /quiet /norestart" -wait cmd.exe /c FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*10.*.mum /c "cmd /c start /w pkgmgr /up:@fname /quiet /norestart" - -
-
+ + + + + Rollback Internet Explorer to version 9 + Rollback Internet Explorer to version 9

+

This task requires a reboot upon completion. This task has been tested in 32 bit Windows 7.

]]>
+ "9")]]> + Internal + 2014-02-03 + + x-fixlet-modification-time + Tue, 04 Feb 2014 22:37:24 +0000 + + BESC + + + Click + here + to deploy this action. + + wait cmd.exe /c FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*11.*.mum /c "cmd /c start /w pkgmgr /up:@fname /quiet /norestart" +wait cmd.exe /c FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*10.*.mum /c "cmd /c start /w pkgmgr /up:@fname /quiet /norestart" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB2871997 - Fix potential Kerberos problem - Windows7+ (3783).bes b/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB2871997 - Fix potential Kerberos problem - Windows7+ (3783).bes index c9ad3697c..f657b2ef7 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB2871997 - Fix potential Kerberos problem - Windows7+ (3783).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB2871997 - Fix potential Kerberos problem - Windows7+ (3783).bes @@ -1,58 +1,58 @@ - - - - - Rollback Patch Task: KB2871997 - Fix potential Kerberos problem - Windows7+ - This task will roll back the Microsoft Patch: KB2871997.  This may fix a recent problem with Kerberos authentication with the dce.psu.edu realm. This may not be required on all systems.

This task is applicable on: Windows 7+

-

 

-

References:

-

https://technet.microsoft.com/library/security/2871997

-

http://support.microsoft.com/kb/262841

-

 

]]>
- /* Windows Only */ windows of operating system - = "6.1"]]> - (exists key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" whose ( exists substrings before "~" whose (it contains "KB2871997" as uppercase AND it does not contain "_") of substrings after "for_" of names of keys whose (name of it contains "for_") of it) of native registry) - Rollback - Rollback Task Wizard - jgs194 - 2014-05-14 - - x-fixlet-source - Rollback Task Wizard - - - x-fixlet-modification-time - Wed, 14 May 2014 18:00:21 +0000 - - BESC - - - Click - here - to rollback the patch, requires reboot to complete. - - -if {x64 of operating system} - wait {pathname of windows folder}\sysnative\wusa.exe /uninstall /kb:2871997 /quiet /norestart -else - wait {pathname of system folder}\wusa.exe /uninstall /kb:2871997 /quiet /norestart -endif - - -dos wuauclt /detectnow -dos wuauclt /reportnow - -action requires restart - - -
-
+ + + + + Rollback Patch Task: KB2871997 - Fix potential Kerberos problem - Windows7+ + This task will roll back the Microsoft Patch: KB2871997.  This may fix a recent problem with Kerberos authentication with the dce.psu.edu realm. This may not be required on all systems.

This task is applicable on: Windows 7+

+

 

+

References:

+

https://technet.microsoft.com/library/security/2871997

+

http://support.microsoft.com/kb/262841

+

 

]]>
+ /* Windows Only */ windows of operating system + = "6.1"]]> + (exists key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" whose ( exists substrings before "~" whose (it contains "KB2871997" as uppercase AND it does not contain "_") of substrings after "for_" of names of keys whose (name of it contains "for_") of it) of native registry) + Rollback + Rollback Task Wizard + jgs194 + 2014-05-14 + + x-fixlet-source + Rollback Task Wizard + + + x-fixlet-modification-time + Wed, 14 May 2014 18:00:21 +0000 + + BESC + + + Click + here + to rollback the patch, requires reboot to complete. + + +if {x64 of operating system} + wait {pathname of windows folder}\sysnative\wusa.exe /uninstall /kb:2871997 /quiet /norestart +else + wait {pathname of system folder}\wusa.exe /uninstall /kb:2871997 /quiet /norestart +endif + + +dos wuauclt /detectnow +dos wuauclt /reportnow + +action requires restart + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB971033 (26600).bes b/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB971033 (26600).bes index 275e72bf9..37f36b867 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB971033 (26600).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Rollback Patch Task_ KB971033 (26600).bes @@ -1,46 +1,46 @@ - - - - - Rollback Patch Task: KB971033 -
This task is applicable on: Windows 7, Windows 7 x64. ]]>
- ( (exists key whose (name of it starts with "x86_microsoft-windows-s..technologies-deploy_31bf3856ad364e35_none" AND exists value "7.1.7600.16395" of keys of it) of it) of item 1 of it) of (key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of it, key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners" of it) of native registry OR (( (exists key whose (name of it starts with "amd64_microsoft-windows-s..technologies-deploy_31bf3856ad364e35_none" AND exists value "7.1.7600.16395" of keys of it) of it) of item 1 of it) of (key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of it, key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners" of it) of native registry) - ((name of it = "Win7" AND not x64 of it AND NOT ia64 of it) of operating system OR (name of it = "Win7" AND x64 of it AND NOT ia64 of it) of operating system) - Rollback - Rollback Task Wizard - 2019-01-25 - - x-fixlet-source - Rollback Task Wizard - - - x-fixlet-modification-time - Sat, 26 Jan 2019 06:00:28 +0000 - - BESC - - - Click - here - to deploy this action. - - if {x64 of operating system} -wait {pathname of windows folder}\sysnative\wusa.exe /uninstall /kb:971033 /quiet /norestart -else -wait {pathname of system folder}\wusa.exe /uninstall /kb:971033 /quiet /norestart -endif -action requires restart - - - -
-
+ + + + + Rollback Patch Task: KB971033 +
This task is applicable on: Windows 7, Windows 7 x64. ]]>
+ ( (exists key whose (name of it starts with "x86_microsoft-windows-s..technologies-deploy_31bf3856ad364e35_none" AND exists value "7.1.7600.16395" of keys of it) of it) of item 1 of it) of (key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of it, key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners" of it) of native registry OR (( (exists key whose (name of it starts with "amd64_microsoft-windows-s..technologies-deploy_31bf3856ad364e35_none" AND exists value "7.1.7600.16395" of keys of it) of it) of item 1 of it) of (key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of it, key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners" of it) of native registry) + ((name of it = "Win7" AND not x64 of it AND NOT ia64 of it) of operating system OR (name of it = "Win7" AND x64 of it AND NOT ia64 of it) of operating system) + Rollback + Rollback Task Wizard + 2019-01-25 + + x-fixlet-source + Rollback Task Wizard + + + x-fixlet-modification-time + Sat, 26 Jan 2019 06:00:28 +0000 + + BESC + + + Click + here + to deploy this action. + + if {x64 of operating system} +wait {pathname of windows folder}\sysnative\wusa.exe /uninstall /kb:971033 /quiet /norestart +else +wait {pathname of system folder}\wusa.exe /uninstall /kb:971033 /quiet /norestart +endif +action requires restart + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Run a Full Disk Cleanup (6133).bes b/Sites/Windows Management/Fixlets/Fixlets/Run a Full Disk Cleanup (6133).bes index 851926bd1..ad4407e21 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Run a Full Disk Cleanup (6133).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Run a Full Disk Cleanup (6133).bes @@ -1,170 +1,170 @@ - - - - - Run a Full Disk Cleanup -

-]]>
- = "8.2"]]> - windows of operating system - = "5.1" as version]]> - - Internal - 2015-05-19 - - x-fixlet-first-propagation - Tue, 19 May 2015 09:44:13 +0000 - - - x-fixlet-modification-time - Tue, 19 May 2015 09:44:13 +0000 - - BESC - - - Click - here - to deploy this action. - - - -
-
+ + + + + Run a Full Disk Cleanup +

+]]>
+ = "8.2"]]> + windows of operating system + = "5.1" as version]]> + + Internal + 2015-05-19 + + x-fixlet-first-propagation + Tue, 19 May 2015 09:44:13 +0000 + + + x-fixlet-modification-time + Tue, 19 May 2015 09:44:13 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Run_ PowerShell Script - Windows - TEMPLATE (3860).bes b/Sites/Windows Management/Fixlets/Fixlets/Run_ PowerShell Script - Windows - TEMPLATE (3860).bes index c7be8a4c2..5151c21ae 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Run_ PowerShell Script - Windows - TEMPLATE (3860).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Run_ PowerShell Script - Windows - TEMPLATE (3860).bes @@ -1,58 +1,58 @@ - - - - - Run: PowerShell Script - Windows - TEMPLATE - Template to run a powershell script

-

 

-

References:

-

http://bigfix.me/fixlet/details/633

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - exists file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) - Internal - jgs194 - 2014-09-22 - - x-fixlet-modification-time - Mon, 22 Sep 2014 19:47:00 +0000 - - BESC - - - Click - here - to deploy this action. - - -// Disable wow64 redirection on x64 OSes -action uses wow64 redirection {not x64 of operating system} - -delete __createfile - -// CREATEFILE -createfile until END_OF_FILE - -# REPLACE THE FOLLOWING WITH THE SCRIPT YOU WANT TO RUN ON THE ENDPOINT -get-help | Out-File "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_powershell.log" - -END_OF_FILE - -delete powershell.ps1 -move __createfile powershell.ps1 - -waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 - - -
-
+ + + + + Run: PowerShell Script - Windows - TEMPLATE + Template to run a powershell script

+

 

+

References:

+

http://bigfix.me/fixlet/details/633

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + exists file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) + Internal + jgs194 + 2014-09-22 + + x-fixlet-modification-time + Mon, 22 Sep 2014 19:47:00 +0000 + + BESC + + + Click + here + to deploy this action. + + +// Disable wow64 redirection on x64 OSes +action uses wow64 redirection {not x64 of operating system} + +delete __createfile + +// CREATEFILE +createfile until END_OF_FILE + +# REPLACE THE FOLLOWING WITH THE SCRIPT YOU WANT TO RUN ON THE ENDPOINT +get-help | Out-File "{(pathname of folder "__BESData\__Global\Logs" of parent folder of client)}\config_powershell.log" + +END_OF_FILE + +delete powershell.ps1 +move __createfile powershell.ps1 + +waithidden { pathname of file ((it as string) of value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of native registry) } -ExecutionPolicy Bypass -File powershell.ps1 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Run_ produkey - recover Microsoft product keys - Windows (3941).bes b/Sites/Windows Management/Fixlets/Fixlets/Run_ produkey - recover Microsoft product keys - Windows (3941).bes index b2fc850a8..2cb5266c6 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Run_ produkey - recover Microsoft product keys - Windows (3941).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Run_ produkey - recover Microsoft product keys - Windows (3941).bes @@ -1,49 +1,49 @@ - - - - - Run: produkey - recover Microsoft product keys - Windows - - = "5.1"]]> - /* Windows Only */ windows of operating system - - Internal - 2015-01-09 - - x-fixlet-modification-time - Fri, 09 Jan 2015 20:43:46 +0000 - - BESC - - - Click - here - to deploy this action. - - -prefetch produkey.zip sha1:55344cc446a2fb45ddd05bb3e307fc6cc80c572c size:57206 http://www.nirsoft.net/utils/produkey.zip - - -// - This unzip is a compiled verion of unzip v5.52 fom http://info-zip.org/ -// - https://www.virustotal.com/en/file/8d9b5190aace52a1db1ac73a65ee9999c329157c8e88f61a772433323d6b7a4a/analysis -prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac - -utility __Download\unzip.exe - -waithidden __Download\unzip.exe -o "{pathname of file "produkey.zip" of folder "__Download" of client folder of current site}" ProduKey.exe -d "{pathname of folder "__Download" of client folder of current site}" - -waithidden __Download\produkey.exe /sxml "{folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client}\config_prodkey.xml" - - - - - + + + + + Run: produkey - recover Microsoft product keys - Windows + + = "5.1"]]> + /* Windows Only */ windows of operating system + + Internal + 2015-01-09 + + x-fixlet-modification-time + Fri, 09 Jan 2015 20:43:46 +0000 + + BESC + + + Click + here + to deploy this action. + + +prefetch produkey.zip sha1:55344cc446a2fb45ddd05bb3e307fc6cc80c572c size:57206 http://www.nirsoft.net/utils/produkey.zip + + +// - This unzip is a compiled verion of unzip v5.52 fom http://info-zip.org/ +// - https://www.virustotal.com/en/file/8d9b5190aace52a1db1ac73a65ee9999c329157c8e88f61a772433323d6b7a4a/analysis +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +utility __Download\unzip.exe + +waithidden __Download\unzip.exe -o "{pathname of file "produkey.zip" of folder "__Download" of client folder of current site}" ProduKey.exe -d "{pathname of folder "__Download" of client folder of current site}" + +waithidden __Download\produkey.exe /sxml "{folder "Logs" of folder "__Global" of folder "__BESData" of parent folder of client}\config_prodkey.xml" + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Secedit Example_ Windows Account Lockout_ 15_10_10 (27000).bes b/Sites/Windows Management/Fixlets/Fixlets/Secedit Example_ Windows Account Lockout_ 15_10_10 (27000).bes index 0666c2bd1..0e8eb16bc 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Secedit Example_ Windows Account Lockout_ 15_10_10 (27000).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Secedit Example_ Windows Account Lockout_ 15_10_10 (27000).bes @@ -1,56 +1,56 @@ - - - - - Secedit Example: Windows Account Lockout: 15/10/10 - Configure Windows Account Lockout Policy (for Workstation or Member Servers, not Domain Controllers).

-

15 bad attempts in 10 minutes triggers 10 minute lockout.

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - /* no domain controllers */ product type of operating system = nt workstation product type or product type of operating system = nt server product type - (account lockout duration of it / minute != 10 or account lockout observation window of it /minute != 10 or account lockout threshold of it != 15) of security database - Internal - 2023-04-10 - - x-fixlet-modification-time - Mon, 10 Apr 2023 23:28:54 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} -delete __createfile -createfile until BIGFIX_EOF_MARKER -[Unicode] -Unicode=yes -[System Access] -LockoutBadCount = 15 -ResetLockoutCount = 10 -LockoutDuration = 10 -[Version] -signature="$CHICAGO$" -Revision=1 -BIGFIX_EOF_MARKER - -delete tempdb.sdb -delete tempcfg.inf -move __createfile tempcfg.inf -waithidden secedit.exe /configure /cfg tempcfg.inf /db tempdb.sdb -continue if {exit code of action = 0} - - -
-
+ + + + + Secedit Example: Windows Account Lockout: 15/10/10 + Configure Windows Account Lockout Policy (for Workstation or Member Servers, not Domain Controllers).

+

15 bad attempts in 10 minutes triggers 10 minute lockout.

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + /* no domain controllers */ product type of operating system = nt workstation product type or product type of operating system = nt server product type + (account lockout duration of it / minute != 10 or account lockout observation window of it /minute != 10 or account lockout threshold of it != 15) of security database + Internal + 2023-04-10 + + x-fixlet-modification-time + Mon, 10 Apr 2023 23:28:54 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} +delete __createfile +createfile until BIGFIX_EOF_MARKER +[Unicode] +Unicode=yes +[System Access] +LockoutBadCount = 15 +ResetLockoutCount = 10 +LockoutDuration = 10 +[Version] +signature="$CHICAGO$" +Revision=1 +BIGFIX_EOF_MARKER + +delete tempdb.sdb +delete tempcfg.inf +move __createfile tempcfg.inf +waithidden secedit.exe /configure /cfg tempcfg.inf /db tempdb.sdb +continue if {exit code of action = 0} + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Default Profile Picture - Windows 10 (25579).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Default Profile Picture - Windows 10 (25579).bes index eb83b1c9a..5f65067e4 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set Default Profile Picture - Windows 10 (25579).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Default Profile Picture - Windows 10 (25579).bes @@ -1,54 +1,54 @@ - - - - - Set Default Profile Picture - Windows 10 - Sets the default profile picture for all users in Windows 10.

-

*** Files need to be the same picture, just different names ***

]]>
- true - Bigfix.me - Internal - n0m4d1c - 2018-10-03 - - x-fixlet-modification-time - Fri, 09 Nov 2018 23:24:00 +0000 - - BESC - - - Click - here - to deploy this action. - - //********************************************************************* -// Insert prefetch for your PNG files -//********************************************************************* - -delete "C:\ProgramData\Microsoft\User Account Pictures\guest.png" -delete "C:\ProgramData\Microsoft\User Account Pictures\user.png" -delete "C:\ProgramData\Microsoft\User Account Pictures\user-32.png" -delete "C:\ProgramData\Microsoft\User Account Pictures\user-40.png" -delete "C:\ProgramData\Microsoft\User Account Pictures\user-48.png" -delete "C:\ProgramData\Microsoft\User Account Pictures\user-192.png" - -copy "__Download\guest.png" "C:\ProgramData\Microsoft\User Account Pictures\guest.png" -copy "__Download\user.png" "C:\ProgramData\Microsoft\User Account Pictures\user.png" -copy "__Download\user-32.png" "C:\ProgramData\Microsoft\User Account Pictures\user-32.png" -copy "__Download\user-40.png" "C:\ProgramData\Microsoft\User Account Pictures\user-40.png" -copy "__Download\user-48.png" "C:\ProgramData\Microsoft\User Account Pictures\user-48.png" -copy "__Download\user-192.png" "C:\ProgramData\Microsoft\User Account Pictures\user-192.png" - -waithidden cmd.exe /C reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v UseDefaultTile /t REG_DWORD /d 1 /f - -
-
+ + + + + Set Default Profile Picture - Windows 10 + Sets the default profile picture for all users in Windows 10.

+

*** Files need to be the same picture, just different names ***

]]>
+ true + Bigfix.me + Internal + n0m4d1c + 2018-10-03 + + x-fixlet-modification-time + Fri, 09 Nov 2018 23:24:00 +0000 + + BESC + + + Click + here + to deploy this action. + + //********************************************************************* +// Insert prefetch for your PNG files +//********************************************************************* + +delete "C:\ProgramData\Microsoft\User Account Pictures\guest.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user-32.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user-40.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user-48.png" +delete "C:\ProgramData\Microsoft\User Account Pictures\user-192.png" + +copy "__Download\guest.png" "C:\ProgramData\Microsoft\User Account Pictures\guest.png" +copy "__Download\user.png" "C:\ProgramData\Microsoft\User Account Pictures\user.png" +copy "__Download\user-32.png" "C:\ProgramData\Microsoft\User Account Pictures\user-32.png" +copy "__Download\user-40.png" "C:\ProgramData\Microsoft\User Account Pictures\user-40.png" +copy "__Download\user-48.png" "C:\ProgramData\Microsoft\User Account Pictures\user-48.png" +copy "__Download\user-192.png" "C:\ProgramData\Microsoft\User Account Pictures\user-192.png" + +waithidden cmd.exe /C reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v UseDefaultTile /t REG_DWORD /d 1 /f + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Display Resolution to Maximum Resolution (27420).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Display Resolution to Maximum Resolution (27420).bes index 7597a9f1f..42660dd53 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set Display Resolution to Maximum Resolution (27420).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Display Resolution to Maximum Resolution (27420).bes @@ -1,471 +1,471 @@ - - - - - Set Display Resolution to Maximum Resolution - Sets the resolution of a computer to its recommended max resolution. Works best with laptops, may have issues with computers connected to multiple displays of different resolutions.

-

Works utilizing one of two methods:

-
    -
  1. If user logged on and not on lock screen: Utilizes DisplaySettings PowerShell module (embedded in actionscript) which uses the ChangeDisplaySettings function to change the display settings.
  2. -
  3. If no user logged on or on lock screen: Utilizes direct registry edits and then restarts the display driver.
  4. -
      -
    • WARNING: Restarting the display driver will cause the screen to temporarily go black.
    • -
    • WARNING: This will modify ALL display configurations for the device and may have unintended consequences.
]]>
- (name of it starts with "Win") of operating system - Internal - 2026-07-14 - - x-fixlet-modification-time - Tue, 28 Jul 2026 17:33:18 +0000 - - BESC - - - Click - here - to use ChangeDisplaySettings <STRONG>or</STRONG> registry edit method depending if a user is logged on. - - = 0x0501) - // #define DISP_CHANGE_BADDUALVIEW -6 - // #endif /* _WIN32_WINNT >= 0x0501 */ - - var devMode = GetDisplaySettings(); - - devMode.dmPelsWidth = width; - devMode.dmPelsHeight = height; - - var res = ChangeDisplaySettings(ref devMode, flags); - switch (res) - {{ - case 0: - return "The settings change was successful."; - case 1: - return "The computer must be restarted for the graphics mode to work."; - case -1: - return "The display driver failed the specified graphics mode."; - case -2: - return "The graphics mode is not supported."; - case -3: - return "Unable to write settings to the registry."; - case -4: - return "An invalid set of flags was passed in."; - case -5: - return "An invalid parameter was passed in. This can include an invalid flag or combination of flags."; - case -6: - return "The settings change was unsuccessful because the system is DualView capable."; - default: - return "unknow return code: " + res; - } - } - - [DllImport("user32.dll")] - static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode); - - [DllImport("user32.dll")] - public static extern int ChangeDisplaySettings(ref DEVMODE devMode, int flags); - - public class Flags - {{ - // #define CDS_UPDATEREGISTRY 0x00000001 - // #define CDS_TEST 0x00000002 - // #define CDS_FULLSCREEN 0x00000004 - // #define CDS_GLOBAL 0x00000008 - // #define CDS_SET_PRIMARY 0x00000010 - // #define CDS_RESET 0x40000000 - // #define CDS_NORESET 0x10000000 - - public const int CDS_UPDATEREGISTRY = 0x01; - public const int CDS_TEST = 0x02; - public const int CDS_FULLSCREEN = 0x04; - public const int CDS_GLOBAL = 0x08; - public const int CDS_SET_PRIMARY = 0x10; - public const int CDS_RESET = 0x40000000; - public const int CDS_NORESET = 0x10000000; - } - } - } - "@ - - [Flags()] enum CDSFlags {{ - Dynamically = 0 - UpdateRegistry = 0x01 - Test = 0x02 - FullScreen = 0x04 - Global = 0x08 - SetPrimary = 0x10 - Reset = 0x40000000 - NoReset = 0x10000000 - } - - Add-Type -TypeDefinition $cds - - function Set-DisplayResolution {{ - param ( - [Parameter(Mandatory = $true, Position = 0)] - [int]$Width, - - [Parameter(Mandatory = $true, Position = 1)] - [int]$Height, - - [CDSFlags] - $Flag = [CDSFlags]::Dynamically - ) - - [cds.Helper]::ChangeDisplaySettings($Width, $Height, $Flag) - } - - function Get-DisplayResolution {{ - [cds.Helper]::GetDisplaySettings() - } - - $resolution = Get-WmiObject -Class CIM_VideoControllerResolution | Sort-Object -Property @{{Expression={{$_.HorizontalResolution * $_.VerticalResolution}} -Descending | Select-Object -First 1 -Property HorizontalResolution, VerticalResolution - - Set-DisplayResolution -Width $resolution.HorizontalResolution -Height $resolution.VerticalResolution -Flag "Global, UpdateRegistry" - - ENDOFSCRIPT -endif - -// Run script -copy __createfile "{(parameter "ScriptPath")}" - -if {(exists process "logonui.exe") or (not exists logged on users whose (active of it = True))} - waithidden powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" -else - override wait // SYSTEM user is unable to change display settings w/ ChangeDisplaySettings function, must run as current user - completion=job - hidden=true - runas=currentuser - wait powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" -endif - -//delete "{(parameter "ScriptPath")}"]]> - - - - Click - here - to only use ChangeDisplaySettings method. <STRONG>Requires user to be logged on.</STRONG>&nbsp; - - = 0x0501) - // #define DISP_CHANGE_BADDUALVIEW -6 - // #endif /* _WIN32_WINNT >= 0x0501 */ - - var devMode = GetDisplaySettings(); - - devMode.dmPelsWidth = width; - devMode.dmPelsHeight = height; - - var res = ChangeDisplaySettings(ref devMode, flags); - switch (res) - {{ - case 0: - return "The settings change was successful."; - case 1: - return "The computer must be restarted for the graphics mode to work."; - case -1: - return "The display driver failed the specified graphics mode."; - case -2: - return "The graphics mode is not supported."; - case -3: - return "Unable to write settings to the registry."; - case -4: - return "An invalid set of flags was passed in."; - case -5: - return "An invalid parameter was passed in. This can include an invalid flag or combination of flags."; - case -6: - return "The settings change was unsuccessful because the system is DualView capable."; - default: - return "unknow return code: " + res; - } - } - - [DllImport("user32.dll")] - static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode); - - [DllImport("user32.dll")] - public static extern int ChangeDisplaySettings(ref DEVMODE devMode, int flags); - - public class Flags - {{ - // #define CDS_UPDATEREGISTRY 0x00000001 - // #define CDS_TEST 0x00000002 - // #define CDS_FULLSCREEN 0x00000004 - // #define CDS_GLOBAL 0x00000008 - // #define CDS_SET_PRIMARY 0x00000010 - // #define CDS_RESET 0x40000000 - // #define CDS_NORESET 0x10000000 - - public const int CDS_UPDATEREGISTRY = 0x01; - public const int CDS_TEST = 0x02; - public const int CDS_FULLSCREEN = 0x04; - public const int CDS_GLOBAL = 0x08; - public const int CDS_SET_PRIMARY = 0x10; - public const int CDS_RESET = 0x40000000; - public const int CDS_NORESET = 0x10000000; - } - } -} -"@ - -[Flags()] enum CDSFlags {{ - Dynamically = 0 - UpdateRegistry = 0x01 - Test = 0x02 - FullScreen = 0x04 - Global = 0x08 - SetPrimary = 0x10 - Reset = 0x40000000 - NoReset = 0x10000000 -} - -Add-Type -TypeDefinition $cds - -function Set-DisplayResolution {{ - param ( - [Parameter(Mandatory = $true, Position = 0)] - [int]$Width, - - [Parameter(Mandatory = $true, Position = 1)] - [int]$Height, - - [CDSFlags] - $Flag = [CDSFlags]::Dynamically - ) - - [cds.Helper]::ChangeDisplaySettings($Width, $Height, $Flag) -} - -function Get-DisplayResolution {{ - [cds.Helper]::GetDisplaySettings() -} - -$resolution = Get-WmiObject -Class CIM_VideoControllerResolution | Sort-Object -Property @{{Expression={{$_.HorizontalResolution * $_.VerticalResolution}} -Descending | Select-Object -First 1 -Property HorizontalResolution, VerticalResolution - -Set-DisplayResolution -Width $resolution.HorizontalResolution -Height $resolution.VerticalResolution -Flag "Global, UpdateRegistry" - -ENDOFSCRIPT - -// Run script -copy __createfile "{(parameter "ScriptPath")}" - -override wait // SYSTEM user is unable to change display settings w/ ChangeDisplaySettings function, must run as current user - completion=job - hidden=true - runas=currentuser -wait powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" - -//delete "{(parameter "ScriptPath")}"]]> - - - - Click - here - to only use registry edit method. - - // Create PowerShell script -parameter "ScriptPath" = "__Download\display-resolution.ps1" -delete "{(parameter "ScriptPath")}" - -createfile until ENDOFSCRIPT - -$resolution = Get-WmiObject -Class CIM_VideoControllerResolution | Sort-Object -Property @{{Expression={{$_.HorizontalResolution * $_.VerticalResolution}} -Descending | Select-Object -First 1 -Property HorizontalResolution, VerticalResolution - -$displayConfigs = Get-Item HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\*\00 -$displayConfigs | ForEach-Object {{ - Set-ItemProperty -Path $_.PsPath -Name PrimSurfSize.cx -Value $resolution.HorizontalResolution -Force - Set-ItemProperty -Path $_.PsPath -Name PrimSurfSize.cy -Value $resolution.VerticalResolution -Force - Set-ItemProperty -Path "$($_.PsPath)\00" -Name ActiveSize.cx -Value $resolution.HorizontalResolution -Force - Set-ItemProperty -Path "$($_.PsPath)\00" -Name ActiveSize.cy -Value $resolution.VerticalResolution -Force - Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.bottom -Value $resolution.VerticalResolution -Force - Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.left -Value 0 -Force - Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.right -Value $resolution.HorizontalResolution -Force - Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.top -Value 0 -Force - Set-ItemProperty -Path "$($_.PsPath)\00" -Name PrimSurfSize.cx -Value $resolution.HorizontalResolution -Force - Set-ItemProperty -Path "$($_.PsPath)\00" -Name PrimSurfSize.cy -Value $resolution.VerticalResolution -Force -} - -$displayDriver = Get-PnpDevice | Where-Object {{ $_.Class -like "Display*" } -$displayDriver | Disable-PnpDevice -Confirm:$false -$displayDriver | Enable-PnpDevice -Confirm:$false - -ENDOFSCRIPT - -// Run script -copy __createfile "{(parameter "ScriptPath")}" - -waithidden powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" - -//delete "{(parameter "ScriptPath")}" - - - - Click - here - to view DisplaySettings PowerShell module from PowerShell Gallery. - - https://www.powershellgallery.com/packages/DisplaySettings/0.0.2 - - - - Click - here - to view ChangeDisplaySettings function documentation from Microsoft. - - https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-changedisplaysettingsa - -
-
+ + + + + Set Display Resolution to Maximum Resolution + Sets the resolution of a computer to its recommended max resolution. Works best with laptops, may have issues with computers connected to multiple displays of different resolutions.

+

Works utilizing one of two methods:

+
    +
  1. If user logged on and not on lock screen: Utilizes DisplaySettings PowerShell module (embedded in actionscript) which uses the ChangeDisplaySettings function to change the display settings.
  2. +
  3. If no user logged on or on lock screen: Utilizes direct registry edits and then restarts the display driver.
  4. +
      +
    • WARNING: Restarting the display driver will cause the screen to temporarily go black.
    • +
    • WARNING: This will modify ALL display configurations for the device and may have unintended consequences.
]]>
+ (name of it starts with "Win") of operating system + Internal + 2026-07-14 + + x-fixlet-modification-time + Tue, 28 Jul 2026 17:33:18 +0000 + + BESC + + + Click + here + to use ChangeDisplaySettings <STRONG>or</STRONG> registry edit method depending if a user is logged on. + + = 0x0501) + // #define DISP_CHANGE_BADDUALVIEW -6 + // #endif /* _WIN32_WINNT >= 0x0501 */ + + var devMode = GetDisplaySettings(); + + devMode.dmPelsWidth = width; + devMode.dmPelsHeight = height; + + var res = ChangeDisplaySettings(ref devMode, flags); + switch (res) + {{ + case 0: + return "The settings change was successful."; + case 1: + return "The computer must be restarted for the graphics mode to work."; + case -1: + return "The display driver failed the specified graphics mode."; + case -2: + return "The graphics mode is not supported."; + case -3: + return "Unable to write settings to the registry."; + case -4: + return "An invalid set of flags was passed in."; + case -5: + return "An invalid parameter was passed in. This can include an invalid flag or combination of flags."; + case -6: + return "The settings change was unsuccessful because the system is DualView capable."; + default: + return "unknow return code: " + res; + } + } + + [DllImport("user32.dll")] + static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode); + + [DllImport("user32.dll")] + public static extern int ChangeDisplaySettings(ref DEVMODE devMode, int flags); + + public class Flags + {{ + // #define CDS_UPDATEREGISTRY 0x00000001 + // #define CDS_TEST 0x00000002 + // #define CDS_FULLSCREEN 0x00000004 + // #define CDS_GLOBAL 0x00000008 + // #define CDS_SET_PRIMARY 0x00000010 + // #define CDS_RESET 0x40000000 + // #define CDS_NORESET 0x10000000 + + public const int CDS_UPDATEREGISTRY = 0x01; + public const int CDS_TEST = 0x02; + public const int CDS_FULLSCREEN = 0x04; + public const int CDS_GLOBAL = 0x08; + public const int CDS_SET_PRIMARY = 0x10; + public const int CDS_RESET = 0x40000000; + public const int CDS_NORESET = 0x10000000; + } + } + } + "@ + + [Flags()] enum CDSFlags {{ + Dynamically = 0 + UpdateRegistry = 0x01 + Test = 0x02 + FullScreen = 0x04 + Global = 0x08 + SetPrimary = 0x10 + Reset = 0x40000000 + NoReset = 0x10000000 + } + + Add-Type -TypeDefinition $cds + + function Set-DisplayResolution {{ + param ( + [Parameter(Mandatory = $true, Position = 0)] + [int]$Width, + + [Parameter(Mandatory = $true, Position = 1)] + [int]$Height, + + [CDSFlags] + $Flag = [CDSFlags]::Dynamically + ) + + [cds.Helper]::ChangeDisplaySettings($Width, $Height, $Flag) + } + + function Get-DisplayResolution {{ + [cds.Helper]::GetDisplaySettings() + } + + $resolution = Get-WmiObject -Class CIM_VideoControllerResolution | Sort-Object -Property @{{Expression={{$_.HorizontalResolution * $_.VerticalResolution}} -Descending | Select-Object -First 1 -Property HorizontalResolution, VerticalResolution + + Set-DisplayResolution -Width $resolution.HorizontalResolution -Height $resolution.VerticalResolution -Flag "Global, UpdateRegistry" + + ENDOFSCRIPT +endif + +// Run script +copy __createfile "{(parameter "ScriptPath")}" + +if {(exists process "logonui.exe") or (not exists logged on users whose (active of it = True))} + waithidden powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" +else + override wait // SYSTEM user is unable to change display settings w/ ChangeDisplaySettings function, must run as current user + completion=job + hidden=true + runas=currentuser + wait powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" +endif + +//delete "{(parameter "ScriptPath")}"]]> + + + + Click + here + to only use ChangeDisplaySettings method. <STRONG>Requires user to be logged on.</STRONG>&nbsp; + + = 0x0501) + // #define DISP_CHANGE_BADDUALVIEW -6 + // #endif /* _WIN32_WINNT >= 0x0501 */ + + var devMode = GetDisplaySettings(); + + devMode.dmPelsWidth = width; + devMode.dmPelsHeight = height; + + var res = ChangeDisplaySettings(ref devMode, flags); + switch (res) + {{ + case 0: + return "The settings change was successful."; + case 1: + return "The computer must be restarted for the graphics mode to work."; + case -1: + return "The display driver failed the specified graphics mode."; + case -2: + return "The graphics mode is not supported."; + case -3: + return "Unable to write settings to the registry."; + case -4: + return "An invalid set of flags was passed in."; + case -5: + return "An invalid parameter was passed in. This can include an invalid flag or combination of flags."; + case -6: + return "The settings change was unsuccessful because the system is DualView capable."; + default: + return "unknow return code: " + res; + } + } + + [DllImport("user32.dll")] + static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE devMode); + + [DllImport("user32.dll")] + public static extern int ChangeDisplaySettings(ref DEVMODE devMode, int flags); + + public class Flags + {{ + // #define CDS_UPDATEREGISTRY 0x00000001 + // #define CDS_TEST 0x00000002 + // #define CDS_FULLSCREEN 0x00000004 + // #define CDS_GLOBAL 0x00000008 + // #define CDS_SET_PRIMARY 0x00000010 + // #define CDS_RESET 0x40000000 + // #define CDS_NORESET 0x10000000 + + public const int CDS_UPDATEREGISTRY = 0x01; + public const int CDS_TEST = 0x02; + public const int CDS_FULLSCREEN = 0x04; + public const int CDS_GLOBAL = 0x08; + public const int CDS_SET_PRIMARY = 0x10; + public const int CDS_RESET = 0x40000000; + public const int CDS_NORESET = 0x10000000; + } + } +} +"@ + +[Flags()] enum CDSFlags {{ + Dynamically = 0 + UpdateRegistry = 0x01 + Test = 0x02 + FullScreen = 0x04 + Global = 0x08 + SetPrimary = 0x10 + Reset = 0x40000000 + NoReset = 0x10000000 +} + +Add-Type -TypeDefinition $cds + +function Set-DisplayResolution {{ + param ( + [Parameter(Mandatory = $true, Position = 0)] + [int]$Width, + + [Parameter(Mandatory = $true, Position = 1)] + [int]$Height, + + [CDSFlags] + $Flag = [CDSFlags]::Dynamically + ) + + [cds.Helper]::ChangeDisplaySettings($Width, $Height, $Flag) +} + +function Get-DisplayResolution {{ + [cds.Helper]::GetDisplaySettings() +} + +$resolution = Get-WmiObject -Class CIM_VideoControllerResolution | Sort-Object -Property @{{Expression={{$_.HorizontalResolution * $_.VerticalResolution}} -Descending | Select-Object -First 1 -Property HorizontalResolution, VerticalResolution + +Set-DisplayResolution -Width $resolution.HorizontalResolution -Height $resolution.VerticalResolution -Flag "Global, UpdateRegistry" + +ENDOFSCRIPT + +// Run script +copy __createfile "{(parameter "ScriptPath")}" + +override wait // SYSTEM user is unable to change display settings w/ ChangeDisplaySettings function, must run as current user + completion=job + hidden=true + runas=currentuser +wait powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" + +//delete "{(parameter "ScriptPath")}"]]> + + + + Click + here + to only use registry edit method. + + // Create PowerShell script +parameter "ScriptPath" = "__Download\display-resolution.ps1" +delete "{(parameter "ScriptPath")}" + +createfile until ENDOFSCRIPT + +$resolution = Get-WmiObject -Class CIM_VideoControllerResolution | Sort-Object -Property @{{Expression={{$_.HorizontalResolution * $_.VerticalResolution}} -Descending | Select-Object -First 1 -Property HorizontalResolution, VerticalResolution + +$displayConfigs = Get-Item HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\*\00 +$displayConfigs | ForEach-Object {{ + Set-ItemProperty -Path $_.PsPath -Name PrimSurfSize.cx -Value $resolution.HorizontalResolution -Force + Set-ItemProperty -Path $_.PsPath -Name PrimSurfSize.cy -Value $resolution.VerticalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name ActiveSize.cx -Value $resolution.HorizontalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name ActiveSize.cy -Value $resolution.VerticalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.bottom -Value $resolution.VerticalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.left -Value 0 -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.right -Value $resolution.HorizontalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name DwmClipBox.top -Value 0 -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name PrimSurfSize.cx -Value $resolution.HorizontalResolution -Force + Set-ItemProperty -Path "$($_.PsPath)\00" -Name PrimSurfSize.cy -Value $resolution.VerticalResolution -Force +} + +$displayDriver = Get-PnpDevice | Where-Object {{ $_.Class -like "Display*" } +$displayDriver | Disable-PnpDevice -Confirm:$false +$displayDriver | Enable-PnpDevice -Confirm:$false + +ENDOFSCRIPT + +// Run script +copy __createfile "{(parameter "ScriptPath")}" + +waithidden powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File "{(parameter "ScriptPath")}" + +//delete "{(parameter "ScriptPath")}" + + + + Click + here + to view DisplaySettings PowerShell module from PowerShell Gallery. + + https://www.powershellgallery.com/packages/DisplaySettings/0.0.2 + + + + Click + here + to view ChangeDisplaySettings function documentation from Microsoft. + + https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-changedisplaysettingsa + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Hostname and Local Subnet Name to Sharing Name V2 - Mac (3649).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Hostname and Local Subnet Name to Sharing Name V2 - Mac (3649).bes index 378c044b6..cadd4a3c3 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set Hostname and Local Subnet Name to Sharing Name V2 - Mac (3649).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Hostname and Local Subnet Name to Sharing Name V2 - Mac (3649).bes @@ -1,59 +1,59 @@ - - - - - Set Hostname and Local Subnet Name to Sharing Name V2 - Mac - This task gets the Sharing Name, Hostname and Local Subnet Name (Bonjour Name). It checks for apostrophes, spaces, and other illegal characters.  It then checks to see if the cleaned Sharing Name matches the Hostname (with .local on the end).  If they don't match it changes the Hostname to correct it.  It also checks to see if the cleaned Sharing Name matches the Local Subnet Name.  If it doesn't match it updates the Local Subnet Name to the Sharing Name with .local on the end. Finally, if the computer name doesn't match the sanitized name, it updates the sharing name.

-

By making these names all match computers should appear in SEP and Secunia using their Sharing Name.

-

Note: The script will replace any spaces in the Sharing Name with hyphens!

]]>
- name of operating system = "Mac OS X" - = "10.5" as version]]> - (not (hostname contains computer name)) OR ((it contains "_" or it contains "'" or it contains " ") of hostname) - Internal - 2012-04-06 - - x-fixlet-modification-time - Fri, 08 Feb 2013 21:55:41 +0000 - - BESC - - - Click - here - to deploy this action. - - #!/bin/bash - -sharename=`networksetup -getcomputername` -compname=`networksetup -getcomputername | sed 's/ /-/g' | sed "s/'//g" | sed "s/’//g" | sed 's/_/-/g'` -hstname=`hostname` -lclname="`systemsetup -getlocalsubnetname | sed 's/Local Subnet Name: //'`" - -if [ "${compname}.local" != "$hstname" ] -then - scutil --set HostName ${compname}.local -fi - -if [ "$compname" != "$lclname" ] -then - systemsetup -setlocalsubnetname $compname -fi - -if [ "$sharename" != "$compname" ] -then - scutil --set ComputerName $compname -fi - -exit 0 - -
-
+ + + + + Set Hostname and Local Subnet Name to Sharing Name V2 - Mac + This task gets the Sharing Name, Hostname and Local Subnet Name (Bonjour Name). It checks for apostrophes, spaces, and other illegal characters.  It then checks to see if the cleaned Sharing Name matches the Hostname (with .local on the end).  If they don't match it changes the Hostname to correct it.  It also checks to see if the cleaned Sharing Name matches the Local Subnet Name.  If it doesn't match it updates the Local Subnet Name to the Sharing Name with .local on the end. Finally, if the computer name doesn't match the sanitized name, it updates the sharing name.

+

By making these names all match computers should appear in SEP and Secunia using their Sharing Name.

+

Note: The script will replace any spaces in the Sharing Name with hyphens!

]]>
+ name of operating system = "Mac OS X" + = "10.5" as version]]> + (not (hostname contains computer name)) OR ((it contains "_" or it contains "'" or it contains " ") of hostname) + Internal + 2012-04-06 + + x-fixlet-modification-time + Fri, 08 Feb 2013 21:55:41 +0000 + + BESC + + + Click + here + to deploy this action. + + #!/bin/bash + +sharename=`networksetup -getcomputername` +compname=`networksetup -getcomputername | sed 's/ /-/g' | sed "s/'//g" | sed "s/’//g" | sed 's/_/-/g'` +hstname=`hostname` +lclname="`systemsetup -getlocalsubnetname | sed 's/Local Subnet Name: //'`" + +if [ "${compname}.local" != "$hstname" ] +then + scutil --set HostName ${compname}.local +fi + +if [ "$compname" != "$lclname" ] +then + systemsetup -setlocalsubnetname $compname +fi + +if [ "$sharename" != "$compname" ] +then + scutil --set ComputerName $compname +fi + +exit 0 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set LanmanWorkstation service to NOT depend on SMBv1 - Windows (23441).bes b/Sites/Windows Management/Fixlets/Fixlets/Set LanmanWorkstation service to NOT depend on SMBv1 - Windows (23441).bes index b66892000..6158aaf95 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set LanmanWorkstation service to NOT depend on SMBv1 - Windows (23441).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set LanmanWorkstation service to NOT depend on SMBv1 - Windows (23441).bes @@ -1,42 +1,42 @@ - - - - - Set LanmanWorkstation service to NOT depend on SMBv1 - Windows - - exists unique values whose(it contains "mrxsmb10") of (it as string as lowercase) of values "DependOnService" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation" of (x64 registries;x32 registries) - windows of operating systems - Configuration - Internal - jgstew - 2017-02-14 - - x-fixlet-modification-time - Tue, 14 Feb 2017 23:25:37 +0000 - - BESC - - - Click - here - to deploy this action. - - -// https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012 -waithidden sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi - -action requires restart "SMBv1_LanManDepends" - - - - - + + + + + Set LanmanWorkstation service to NOT depend on SMBv1 - Windows + + exists unique values whose(it contains "mrxsmb10") of (it as string as lowercase) of values "DependOnService" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation" of (x64 registries;x32 registries) + windows of operating systems + Configuration + Internal + jgstew + 2017-02-14 + + x-fixlet-modification-time + Tue, 14 Feb 2017 23:25:37 +0000 + + BESC + + + Click + here + to deploy this action. + + +// https://support.microsoft.com/en-us/help/2696547/how-to-enable-and-disable-smbv1,-smbv2,-and-smbv3-in-windows-vista,-windows-server-2008,-windows-7,-windows-server-2008-r2,-windows-8,-and-windows-server-2012 +waithidden sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi + +action requires restart "SMBv1_LanManDepends" + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set MTU to 1400 (2456).bes b/Sites/Windows Management/Fixlets/Fixlets/Set MTU to 1400 (2456).bes index ffcd03f41..4ae44953c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set MTU to 1400 (2456).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set MTU to 1400 (2456).bes @@ -1,34 +1,34 @@ - - - - - Set MTU to 1400 - Detects if the MTU for the 10.* interface is NOT set to 1400. If so, this will report as relevant and will change the interface to 1400 - - Internal - 2011-11-07 - - x-fixlet-modification-time - Mon, 07 Nov 2011 20:59:28 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here -regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{(names of it) of it whose (exists value "IPAddress" whose (it as string starts with "10.") of it) of (it; keys of it) of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces" of registry}]" "MTU"=dword:00000578 - - - + + + + + Set MTU to 1400 + Detects if the MTU for the 10.* interface is NOT set to 1400. If so, this will report as relevant and will change the interface to 1400 + + Internal + 2011-11-07 + + x-fixlet-modification-time + Mon, 07 Nov 2011 20:59:28 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here +regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{(names of it) of it whose (exists value "IPAddress" whose (it as string starts with "10.") of it) of (it; keys of it) of key "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces" of registry}]" "MTU"=dword:00000578 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to Auto - Windows (24613).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to Auto - Windows (24613).bes index d78cba583..106d864ea 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to Auto - Windows (24613).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to Auto - Windows (24613).bes @@ -1,46 +1,46 @@ - - - - - Set Service tzautoupdate to Auto - Windows - - windows of operating system - exists services "tzautoupdate" - not exists keys whose(name of it as lowercase = "tzautoupdate" as lowercase AND not exists values "DelayedAutoStart" whose(it as integer = 1) of it AND exists values "Start" whose(it as integer = 2) of it) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" of registries - Internal - 2017-08-04 - - x-fixlet-modification-time - Thu, 10 Aug 2017 04:12:41 +0000 - - BESC - - - Click - here - to deploy this action. - - -waithidden cmd /C sc config tzautoupdate start= auto - -// References: -// - https://technet.microsoft.com/en-us/library/cc990290 -// - https://developer.bigfix.com/relevance/reference/service.html -// - https://serverfault.com/questions/599099/windows-service-trigger-start-difference-manual-vs-automatic -// - https://www.tenforums.com/general-support/7464-difference-between-manual-manual-trigger-start-services.html#post924871 -// - https://bigfix.me/relevance/details/3020300 -// - https://bigfix.me/relevance/details/3020298 -// - https://bigfix.me/relevance/details/3020297 - - - - + + + + + Set Service tzautoupdate to Auto - Windows + + windows of operating system + exists services "tzautoupdate" + not exists keys whose(name of it as lowercase = "tzautoupdate" as lowercase AND not exists values "DelayedAutoStart" whose(it as integer = 1) of it AND exists values "Start" whose(it as integer = 2) of it) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" of registries + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:12:41 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc config tzautoupdate start= auto + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://serverfault.com/questions/599099/windows-service-trigger-start-difference-manual-vs-automatic +// - https://www.tenforums.com/general-support/7464-difference-between-manual-manual-trigger-start-services.html#post924871 +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to DelayedAutoStart - Windows (24612).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to DelayedAutoStart - Windows (24612).bes index 158b9a60c..0867f0319 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to DelayedAutoStart - Windows (24612).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to DelayedAutoStart - Windows (24612).bes @@ -1,44 +1,44 @@ - - - - - Set Service tzautoupdate to DelayedAutoStart - Windows - - windows of operating system - exists services "tzautoupdate" - not exists keys whose(name of it as lowercase = "tzautoupdate" as lowercase AND exists values "DelayedAutoStart" whose(it as integer = 1) of it AND exists values "Start" whose(it as integer = 2) of it) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" of registries - Internal - 2017-08-04 - - x-fixlet-modification-time - Thu, 10 Aug 2017 04:16:08 +0000 - - BESC - - - Click - here - to deploy this action. - - -waithidden cmd /C sc config tzautoupdate start= delayed-auto - -// References: -// - https://technet.microsoft.com/en-us/library/cc990290 -// - https://developer.bigfix.com/relevance/reference/service.html -// - https://bigfix.me/relevance/details/3020300 -// - https://bigfix.me/relevance/details/3020298 -// - https://bigfix.me/relevance/details/3020297 - - - - + + + + + Set Service tzautoupdate to DelayedAutoStart - Windows + + windows of operating system + exists services "tzautoupdate" + not exists keys whose(name of it as lowercase = "tzautoupdate" as lowercase AND exists values "DelayedAutoStart" whose(it as integer = 1) of it AND exists values "Start" whose(it as integer = 2) of it) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" of registries + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:16:08 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc config tzautoupdate start= delayed-auto + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to demand - Windows (24611).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to demand - Windows (24611).bes index b345f9694..bd289b840 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to demand - Windows (24611).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to demand - Windows (24611).bes @@ -1,44 +1,44 @@ - - - - - Set Service tzautoupdate to demand - Windows - - windows of operating system - exists services "tzautoupdate" - not exists start types whose(it = "demand") of services "tzautoupdate" - Internal - 2017-08-04 - - x-fixlet-modification-time - Thu, 10 Aug 2017 04:15:55 +0000 - - BESC - - - Click - here - to deploy this action. - - -waithidden cmd /C sc config tzautoupdate start= demand - -// References: -// - https://technet.microsoft.com/en-us/library/cc990290 -// - https://developer.bigfix.com/relevance/reference/service.html -// - https://bigfix.me/relevance/details/3020300 -// - https://bigfix.me/relevance/details/3020298 -// - https://bigfix.me/relevance/details/3020297 - - - - + + + + + Set Service tzautoupdate to demand - Windows + + windows of operating system + exists services "tzautoupdate" + not exists start types whose(it = "demand") of services "tzautoupdate" + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:15:55 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc config tzautoupdate start= demand + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to disabled - Windows (24610).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to disabled - Windows (24610).bes index e94f220e5..f667c5f51 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to disabled - Windows (24610).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Service tzautoupdate to disabled - Windows (24610).bes @@ -1,44 +1,44 @@ - - - - - Set Service tzautoupdate to disabled - Windows - - windows of operating system - exists services "tzautoupdate" - not exists start types whose(it = "disabled") of services "tzautoupdate" - Internal - 2017-08-04 - - x-fixlet-modification-time - Thu, 10 Aug 2017 04:15:38 +0000 - - BESC - - - Click - here - to deploy this action. - - -waithidden cmd /C sc config tzautoupdate start= disabled - -// References: -// - https://technet.microsoft.com/en-us/library/cc990290 -// - https://developer.bigfix.com/relevance/reference/service.html -// - https://bigfix.me/relevance/details/3020300 -// - https://bigfix.me/relevance/details/3020298 -// - https://bigfix.me/relevance/details/3020297 - - - - + + + + + Set Service tzautoupdate to disabled - Windows + + windows of operating system + exists services "tzautoupdate" + not exists start types whose(it = "disabled") of services "tzautoupdate" + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:15:38 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc config tzautoupdate start= disabled + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set Timezone - Windows (2613).bes b/Sites/Windows Management/Fixlets/Fixlets/Set Timezone - Windows (2613).bes index 3e5bde58e..3b55154de 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set Timezone - Windows (2613).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set Timezone - Windows (2613).bes @@ -1,365 +1,365 @@ - - - - - Set Timezone - Windows - This fixlet will set the timezone on the endpoint. A few popular timezones have been preset but if you need a custom timezone, use the list below. If the timezone needs to have Daylight Saving Time disabled, append the timezone name with _dstoff, i.e. "Pacific Standard Time_dstoff". A list of all valid timezones is below. Copy the name in the right column of the timezone that you want. Do not include any quotes, just the name in the right column.

-

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(UTC-12:00) International Date Line West Dateline Standard Time
(UTC-11:00) Coordinated Universal Time-11 UTC-11
(UTC-11:00) Samoa Samoa Standard Time
(UTC-10:00) Hawaii Hawaiian Standard Time
(UTC-09:00) Alaska Alaskan Standard Time
(UTC-08:00) Baja California Pacific Standard Time (Mexico)
(UTC-08:00) Pacific Time (US & Canada) Pacific Standard Time
(UTC-07:00) Arizona US Mountain Standard Time
(UTC-07:00) Chihuahua, La Paz, Mazatlan Mountain Standard Time (Mexico)
(UTC-07:00) Mountain Time (US & Canada) Mountain Standard Time
(UTC-06:00) Central America Central America Standard Time
(UTC-06:00) Central Time (US & Canada) Central Standard Time
(UTC-06:00) Guadalajara, Mexico City, Monterrey Central Standard Time (Mexico)
(UTC-06:00) Saskatchewan Canada Central Standard Time
(UTC-05:00) Bogota, Lima, Quito SA Pacific Standard Time
(UTC-05:00) Eastern Time (US & Canada) Eastern Standard Time
(UTC-05:00) Indiana (East) US Eastern Standard Time
(UTC-04:30) Caracas Venezuela Standard Time
(UTC-04:00) Asuncion Paraguay Standard Time
(UTC-04:00) Atlantic Time (Canada) Atlantic Standard Time
(UTC-04:00) Cuiaba Central Brazilian Standard Time
(UTC-04:00) Georgetown, La Paz, Manaus, San Juan SA Western Standard Time
(UTC-04:00) Santiago Pacific SA Standard Time
(UTC-03:30) Newfoundland Newfoundland Standard Time
(UTC-03:00) Brasilia E. South America Standard Time
(UTC-03:00) Buenos Aires Argentina Standard Time
(UTC-03:00) Cayenne, Fortaleza SA Eastern Standard Time
(UTC-03:00) Greenland Greenland Standard Time
(UTC-03:00) Montevideo Montevideo Standard Time
(UTC-02:00) Coordinated Universal Time-02 UTC-02
(UTC-02:00) Mid-Atlantic Mid-Atlantic Standard Time
(UTC-01:00) Azores Azores Standard Time
(UTC-01:00) Cape Verde Is. Cape Verde Standard Time
(UTC) Casablanca Morocco Standard Time
(UTC) Coordinated Universal Time UTC
(UTC) Dublin, Edinburgh, Lisbon, London GMT Standard Time
(UTC) Monrovia, Reykjavik Greenwich Standard Time
(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna W. Europe Standard Time
(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague Central Europe Standard Time
(UTC+01:00) Brussels, Copenhagen, Madrid, Paris Romance Standard Time
(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb Central European Standard Time
(UTC+01:00) West Central Africa W. Central Africa Standard Time
(UTC+01:00) Windhoek Namibia Standard Time
(UTC+02:00) Amman Jordan Standard Time
(UTC+02:00) Athens, Bucharest, Istanbul GTB Standard Time
(UTC+02:00) Beirut Middle East Standard Time
(UTC+02:00) Cairo Egypt Standard Time
(UTC+02:00) Damascus Syria Standard Time
(UTC+02:00) Harare, Pretoria South Africa Standard Time
(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius FLE Standard Time
(UTC+02:00) Jerusalem Israel Standard Time
(UTC+02:00) Minsk E. Europe Standard Time
(UTC+03:00) Baghdad Arabic Standard Time
(UTC+03:00) Kuwait, Riyadh Arab Standard Time
(UTC+03:00) Moscow, St. Petersburg, Volgograd Russian Standard Time
(UTC+03:00) Nairobi E. Africa Standard Time
(UTC+03:30) Tehran Iran Standard Time
(UTC+04:00) Abu Dhabi, Muscat Arabian Standard Time
(UTC+04:00) Baku Azerbaijan Standard Time
(UTC+04:00) Port Louis Mauritius Standard Time
(UTC+04:00) Tbilisi Georgian Standard Time
(UTC+04:00) Yerevan Caucasus Standard Time
(UTC+04:30) Kabul Afghanistan Standard Time
(UTC+05:00) Ekaterinburg Ekaterinburg Standard Time
(UTC+05:00) Islamabad, Karachi Pakistan Standard Time
(UTC+05:00) Tashkent West Asia Standard Time
(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi India Standard Time
(UTC+05:30) Sri Jayawardenepura Sri Lanka Standard Time
(UTC+05:45) Kathmandu Nepal Standard Time
(UTC+06:00) Astana Central Asia Standard Time
(UTC+06:00) Dhaka Bangladesh Standard Time
(UTC+06:00) Novosibirsk N. Central Asia Standard Time
(UTC+06:30) Yangon (Rangoon) Myanmar Standard Time
(UTC+07:00) Bangkok, Hanoi, Jakarta SE Asia Standard Time
(UTC+07:00) Krasnoyarsk North Asia Standard Time
(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi China Standard Time
(UTC+08:00) Irkutsk North Asia East Standard Time
(UTC+08:00) Kuala Lumpur, Singapore Singapore Standard Time
(UTC+08:00) Perth W. Australia Standard Time
(UTC+08:00) Taipei Taipei Standard Time
(UTC+08:00) Ulaanbaatar Ulaanbaatar Standard Time
(UTC+09:00) Osaka, Sapporo, Tokyo Tokyo Standard Time
(UTC+09:00) Seoul Korea Standard Time
(UTC+09:00) Yakutsk Yakutsk Standard Time
(UTC+09:30) Adelaide Cen. Australia Standard Time
(UTC+09:30) Darwin AUS Central Standard Time
(UTC+10:00) Brisbane E. Australia Standard Time
(UTC+10:00) Canberra, Melbourne, Sydney AUS Eastern Standard Time
(UTC+10:00) Guam, Port Moresby West Pacific Standard Time
(UTC+10:00) Hobart Tasmania Standard Time
(UTC+10:00) Vladivostok Vladivostok Standard Time
(UTC+11:00) Magadan Magadan Standard Time
(UTC+11:00) Solomon Is., New Caledonia Central Pacific Standard Time
(UTC+12:00) Auckland, Wellington New Zealand Standard Time
(UTC+12:00) Coordinated Universal Time+12 UTC+12
(UTC+12:00) Fiji Fiji Standard Time
(UTC+13:00) Nuku'alofa Tonga Standard Time

-

 

]]>
- ((name of it = "Win2008R2") OR (name of it = "Win7") OR (name of it = "Win8") OR (name of it = "Win2012")) of operating system - Internal - 2013-10-08 - - x-fixlet-modification-time - Tue, 08 Oct 2013 20:19:55 +0000 - - BESC - - - - Set to Eastern Time. - - - wait cmd.exe /C tzutil /s "Eastern Standard Time" - - - - - Set to custom timezone. - &nbsp; - - action parameter query "Timezone" with description "Please type the timezone that you'd like to set. Use the list from the fixlet details." - -wait cmd.exe /C tzutil /s "{parameter "Timezone" of action}" - - - - - Set to Central Time. - - - wait cmd.exe /C tzutil /s "Central Standard Time" - - - - - Set to Mountain Time. - - - wait cmd.exe /C tzutil /s "Mountain Standard Time" - - - - - Set to Pacific Time. - - - wait cmd.exe /C tzutil /s "Pacific Standard Time" - -
-
+ + + + + Set Timezone - Windows + This fixlet will set the timezone on the endpoint. A few popular timezones have been preset but if you need a custom timezone, use the list below. If the timezone needs to have Daylight Saving Time disabled, append the timezone name with _dstoff, i.e. "Pacific Standard Time_dstoff". A list of all valid timezones is below. Copy the name in the right column of the timezone that you want. Do not include any quotes, just the name in the right column.

+

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
(UTC-12:00) International Date Line West Dateline Standard Time
(UTC-11:00) Coordinated Universal Time-11 UTC-11
(UTC-11:00) Samoa Samoa Standard Time
(UTC-10:00) Hawaii Hawaiian Standard Time
(UTC-09:00) Alaska Alaskan Standard Time
(UTC-08:00) Baja California Pacific Standard Time (Mexico)
(UTC-08:00) Pacific Time (US & Canada) Pacific Standard Time
(UTC-07:00) Arizona US Mountain Standard Time
(UTC-07:00) Chihuahua, La Paz, Mazatlan Mountain Standard Time (Mexico)
(UTC-07:00) Mountain Time (US & Canada) Mountain Standard Time
(UTC-06:00) Central America Central America Standard Time
(UTC-06:00) Central Time (US & Canada) Central Standard Time
(UTC-06:00) Guadalajara, Mexico City, Monterrey Central Standard Time (Mexico)
(UTC-06:00) Saskatchewan Canada Central Standard Time
(UTC-05:00) Bogota, Lima, Quito SA Pacific Standard Time
(UTC-05:00) Eastern Time (US & Canada) Eastern Standard Time
(UTC-05:00) Indiana (East) US Eastern Standard Time
(UTC-04:30) Caracas Venezuela Standard Time
(UTC-04:00) Asuncion Paraguay Standard Time
(UTC-04:00) Atlantic Time (Canada) Atlantic Standard Time
(UTC-04:00) Cuiaba Central Brazilian Standard Time
(UTC-04:00) Georgetown, La Paz, Manaus, San Juan SA Western Standard Time
(UTC-04:00) Santiago Pacific SA Standard Time
(UTC-03:30) Newfoundland Newfoundland Standard Time
(UTC-03:00) Brasilia E. South America Standard Time
(UTC-03:00) Buenos Aires Argentina Standard Time
(UTC-03:00) Cayenne, Fortaleza SA Eastern Standard Time
(UTC-03:00) Greenland Greenland Standard Time
(UTC-03:00) Montevideo Montevideo Standard Time
(UTC-02:00) Coordinated Universal Time-02 UTC-02
(UTC-02:00) Mid-Atlantic Mid-Atlantic Standard Time
(UTC-01:00) Azores Azores Standard Time
(UTC-01:00) Cape Verde Is. Cape Verde Standard Time
(UTC) Casablanca Morocco Standard Time
(UTC) Coordinated Universal Time UTC
(UTC) Dublin, Edinburgh, Lisbon, London GMT Standard Time
(UTC) Monrovia, Reykjavik Greenwich Standard Time
(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna W. Europe Standard Time
(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague Central Europe Standard Time
(UTC+01:00) Brussels, Copenhagen, Madrid, Paris Romance Standard Time
(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb Central European Standard Time
(UTC+01:00) West Central Africa W. Central Africa Standard Time
(UTC+01:00) Windhoek Namibia Standard Time
(UTC+02:00) Amman Jordan Standard Time
(UTC+02:00) Athens, Bucharest, Istanbul GTB Standard Time
(UTC+02:00) Beirut Middle East Standard Time
(UTC+02:00) Cairo Egypt Standard Time
(UTC+02:00) Damascus Syria Standard Time
(UTC+02:00) Harare, Pretoria South Africa Standard Time
(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius FLE Standard Time
(UTC+02:00) Jerusalem Israel Standard Time
(UTC+02:00) Minsk E. Europe Standard Time
(UTC+03:00) Baghdad Arabic Standard Time
(UTC+03:00) Kuwait, Riyadh Arab Standard Time
(UTC+03:00) Moscow, St. Petersburg, Volgograd Russian Standard Time
(UTC+03:00) Nairobi E. Africa Standard Time
(UTC+03:30) Tehran Iran Standard Time
(UTC+04:00) Abu Dhabi, Muscat Arabian Standard Time
(UTC+04:00) Baku Azerbaijan Standard Time
(UTC+04:00) Port Louis Mauritius Standard Time
(UTC+04:00) Tbilisi Georgian Standard Time
(UTC+04:00) Yerevan Caucasus Standard Time
(UTC+04:30) Kabul Afghanistan Standard Time
(UTC+05:00) Ekaterinburg Ekaterinburg Standard Time
(UTC+05:00) Islamabad, Karachi Pakistan Standard Time
(UTC+05:00) Tashkent West Asia Standard Time
(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi India Standard Time
(UTC+05:30) Sri Jayawardenepura Sri Lanka Standard Time
(UTC+05:45) Kathmandu Nepal Standard Time
(UTC+06:00) Astana Central Asia Standard Time
(UTC+06:00) Dhaka Bangladesh Standard Time
(UTC+06:00) Novosibirsk N. Central Asia Standard Time
(UTC+06:30) Yangon (Rangoon) Myanmar Standard Time
(UTC+07:00) Bangkok, Hanoi, Jakarta SE Asia Standard Time
(UTC+07:00) Krasnoyarsk North Asia Standard Time
(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi China Standard Time
(UTC+08:00) Irkutsk North Asia East Standard Time
(UTC+08:00) Kuala Lumpur, Singapore Singapore Standard Time
(UTC+08:00) Perth W. Australia Standard Time
(UTC+08:00) Taipei Taipei Standard Time
(UTC+08:00) Ulaanbaatar Ulaanbaatar Standard Time
(UTC+09:00) Osaka, Sapporo, Tokyo Tokyo Standard Time
(UTC+09:00) Seoul Korea Standard Time
(UTC+09:00) Yakutsk Yakutsk Standard Time
(UTC+09:30) Adelaide Cen. Australia Standard Time
(UTC+09:30) Darwin AUS Central Standard Time
(UTC+10:00) Brisbane E. Australia Standard Time
(UTC+10:00) Canberra, Melbourne, Sydney AUS Eastern Standard Time
(UTC+10:00) Guam, Port Moresby West Pacific Standard Time
(UTC+10:00) Hobart Tasmania Standard Time
(UTC+10:00) Vladivostok Vladivostok Standard Time
(UTC+11:00) Magadan Magadan Standard Time
(UTC+11:00) Solomon Is., New Caledonia Central Pacific Standard Time
(UTC+12:00) Auckland, Wellington New Zealand Standard Time
(UTC+12:00) Coordinated Universal Time+12 UTC+12
(UTC+12:00) Fiji Fiji Standard Time
(UTC+13:00) Nuku'alofa Tonga Standard Time

+

 

]]>
+ ((name of it = "Win2008R2") OR (name of it = "Win7") OR (name of it = "Win8") OR (name of it = "Win2012")) of operating system + Internal + 2013-10-08 + + x-fixlet-modification-time + Tue, 08 Oct 2013 20:19:55 +0000 + + BESC + + + + Set to Eastern Time. + + + wait cmd.exe /C tzutil /s "Eastern Standard Time" + + + + + Set to custom timezone. + &nbsp; + + action parameter query "Timezone" with description "Please type the timezone that you'd like to set. Use the list from the fixlet details." + +wait cmd.exe /C tzutil /s "{parameter "Timezone" of action}" + + + + + Set to Central Time. + + + wait cmd.exe /C tzutil /s "Central Standard Time" + + + + + Set to Mountain Time. + + + wait cmd.exe /C tzutil /s "Mountain Standard Time" + + + + + Set to Pacific Time. + + + wait cmd.exe /C tzutil /s "Pacific Standard Time" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows (21118).bes b/Sites/Windows Management/Fixlets/Fixlets/Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows (21118).bes index d3dc15ae0..3d6d8c060 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows (21118).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows (21118).bes @@ -1,96 +1,96 @@ - - - - - Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows - You must set up Upgrade Analytics through Microsoft to get the required "CommerciaId"

-

More info here: https://www.microsoft.com/en-us/WindowsForBusiness/upgrade-analytics

-

 

]]>
- windows of operating system - not exists lines containing "Script finished successfully" of files whose(name of it as lowercase ends with ".txt" AND exists lines of it) of folders of folders "Temp\UpgradeAnalytics\Logs" of windows folders - Internal - 2016-07-27 - - x-fixlet-modification-time - Wed, 27 Jul 2016 18:16:57 +0000 - - BESC - - - Click - here - to deploy this action. - - -action parameter query "CommerciaId" - -prefetch UpgradeAnalytics.zip sha1:e4ec6b46379428209183f2e5fb872f18ebb78f55 size:53320712 https://download.microsoft.com/download/C/9/3/C9308EB7-26B7-4956-8BC4-1565FD62B8EA/UpgradeAnalytics.zip sha256:fbeedff147a6a9f42ca6146ef8b9979fc669a493b2957a4e13446214f4628d1d - -// - This unzip is a compiled verion of unzip v5.52 fom http://info-zip.org/ -// - https://www.virustotal.com/en/file/8d9b5190aace52a1db1ac73a65ee9999c329157c8e88f61a772433323d6b7a4a/analysis -prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac - -// ADD TO UTILITY CACHE (to use in multiple tasks) -utility __Download\unzip.exe - -// EXTRACT using unzip -waithidden __Download\unzip.exe -o "{pathname of file "UpgradeAnalytics.zip" of folder "__Download" of client folder of current site}" -d "{pathname of folder "temp" of windows folder}" - - -delete __createfile -createfile until _END_OF_FILE_ -@echo off -@echo Running config batch -cd {pathname of folders "Temp\UpgradeAnalytics" of windows folders} -:: File share to store telemetry logs -set logPath={pathname of folders "Temp\UpgradeAnalytics" of windows folders}\Logs - -:: Commercial ID provided to you -set commercialIDValue={parameter "CommerciaId"} - -:: By Default script logs to both console and log file. -:: logMode == 0 log to console only -:: logMode == 1 log to file and console -:: logMode == 2 log to file only -set logMode=1 - -:: To run inventory scan in verbose mode change below value to $true -set isVerboseLogging=$false - -:: To notify users with Pop-up messages about reboot - By default its false -set isPopupMode=$false - -set source=%~dp0 - -powershell -ExecutionPolicy unrestricted -Command "dir %source%\*.ps1 | Unblock-File" - -%source%Psexec.exe -accepteula -si powershell.exe -ExecutionPolicy Bypass -Command %source%ConfigScript.ps1 ^ - -LogPath %logPath% ^ - -FilePath %source% ^ - -CommerciaIdInput %commercialIDValue% ^ - -LogMode %logMode% ^ - -VerboseLogging %isVerboseLogging% ^ - -PopUpMode %isPopupMode% - -_END_OF_FILE_ - -delete {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\RunConfig.bat -move __createfile {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\RunConfig.bat - -waithidden {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\RunConfig.bat - -// waithidden powershell -ExecutionPolicy Bypass -Command {pathname of files "ConfigScript.ps1" of folders "Temp\UpgradeAnalytics" of windows folders} -LogPath {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\Logs -FilePath {pathname of folders "Temp\UpgradeAnalytics" of windows folders} -CommerciaIdInput {parameter "CommerciaId"} -LogMode 1 -VerboseLogging $true -PopUpMode $false - - - -
-
+ + + + + Set up collection of Windows telemetry data for Upgrade Analytics Preview - Windows + You must set up Upgrade Analytics through Microsoft to get the required "CommerciaId"

+

More info here: https://www.microsoft.com/en-us/WindowsForBusiness/upgrade-analytics

+

 

]]>
+ windows of operating system + not exists lines containing "Script finished successfully" of files whose(name of it as lowercase ends with ".txt" AND exists lines of it) of folders of folders "Temp\UpgradeAnalytics\Logs" of windows folders + Internal + 2016-07-27 + + x-fixlet-modification-time + Wed, 27 Jul 2016 18:16:57 +0000 + + BESC + + + Click + here + to deploy this action. + + +action parameter query "CommerciaId" + +prefetch UpgradeAnalytics.zip sha1:e4ec6b46379428209183f2e5fb872f18ebb78f55 size:53320712 https://download.microsoft.com/download/C/9/3/C9308EB7-26B7-4956-8BC4-1565FD62B8EA/UpgradeAnalytics.zip sha256:fbeedff147a6a9f42ca6146ef8b9979fc669a493b2957a4e13446214f4628d1d + +// - This unzip is a compiled verion of unzip v5.52 fom http://info-zip.org/ +// - https://www.virustotal.com/en/file/8d9b5190aace52a1db1ac73a65ee9999c329157c8e88f61a772433323d6b7a4a/analysis +prefetch unzip.exe sha1:84debf12767785cd9b43811022407de7413beb6f size:204800 http://software.bigfix.com/download/redist/unzip-6.0.exe sha256:2122557d350fd1c59fb0ef32125330bde673e9331eb9371b454c2ad2d82091ac + +// ADD TO UTILITY CACHE (to use in multiple tasks) +utility __Download\unzip.exe + +// EXTRACT using unzip +waithidden __Download\unzip.exe -o "{pathname of file "UpgradeAnalytics.zip" of folder "__Download" of client folder of current site}" -d "{pathname of folder "temp" of windows folder}" + + +delete __createfile +createfile until _END_OF_FILE_ +@echo off +@echo Running config batch +cd {pathname of folders "Temp\UpgradeAnalytics" of windows folders} +:: File share to store telemetry logs +set logPath={pathname of folders "Temp\UpgradeAnalytics" of windows folders}\Logs + +:: Commercial ID provided to you +set commercialIDValue={parameter "CommerciaId"} + +:: By Default script logs to both console and log file. +:: logMode == 0 log to console only +:: logMode == 1 log to file and console +:: logMode == 2 log to file only +set logMode=1 + +:: To run inventory scan in verbose mode change below value to $true +set isVerboseLogging=$false + +:: To notify users with Pop-up messages about reboot - By default its false +set isPopupMode=$false + +set source=%~dp0 + +powershell -ExecutionPolicy unrestricted -Command "dir %source%\*.ps1 | Unblock-File" + +%source%Psexec.exe -accepteula -si powershell.exe -ExecutionPolicy Bypass -Command %source%ConfigScript.ps1 ^ + -LogPath %logPath% ^ + -FilePath %source% ^ + -CommerciaIdInput %commercialIDValue% ^ + -LogMode %logMode% ^ + -VerboseLogging %isVerboseLogging% ^ + -PopUpMode %isPopupMode% + +_END_OF_FILE_ + +delete {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\RunConfig.bat +move __createfile {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\RunConfig.bat + +waithidden {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\RunConfig.bat + +// waithidden powershell -ExecutionPolicy Bypass -Command {pathname of files "ConfigScript.ps1" of folders "Temp\UpgradeAnalytics" of windows folders} -LogPath {pathname of folders "Temp\UpgradeAnalytics" of windows folders}\Logs -FilePath {pathname of folders "Temp\UpgradeAnalytics" of windows folders} -CommerciaIdInput {parameter "CommerciaId"} -LogMode 1 -VerboseLogging $true -PopUpMode $false + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Software Distribution - Deploy_ Windows Update KB917607 - WinHlp32.exe (1364).bes b/Sites/Windows Management/Fixlets/Fixlets/Software Distribution - Deploy_ Windows Update KB917607 - WinHlp32.exe (1364).bes index c52525cc9..1ec30d954 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Software Distribution - Deploy_ Windows Update KB917607 - WinHlp32.exe (1364).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Software Distribution - Deploy_ Windows Update KB917607 - WinHlp32.exe (1364).bes @@ -1,48 +1,48 @@ - - - - - Software Distribution - Deploy: Windows Update KB917607 - WinHlp32.exe -
This task is applicable on: Windows 7 x64. ]]>
- x64 of operating system - "Win7" = name of operating system - exists running service "wuauserv" OR NOT exists service "wuauserv" whose (start type of it = "disabled") - not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\UpdateDetect\KB917607" of native registry - - Software Distribution - Software Distribution Wizard - jgstew - 2011-07-27 - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Mon, 07 Jan 2013 15:47:07 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - - - -
-
+ + + + + Software Distribution - Deploy: Windows Update KB917607 - WinHlp32.exe +
This task is applicable on: Windows 7 x64. ]]>
+ x64 of operating system + "Win7" = name of operating system + exists running service "wuauserv" OR NOT exists service "wuauserv" whose (start type of it = "disabled") + not exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\UpdateDetect\KB917607" of native registry + + Software Distribution + Software Distribution Wizard + jgstew + 2011-07-27 + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Mon, 07 Jan 2013 15:47:07 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start and Enable Windows Service (26632).bes b/Sites/Windows Management/Fixlets/Fixlets/Start and Enable Windows Service (26632).bes index 643ff801d..72d8a3934 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Start and Enable Windows Service (26632).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Start and Enable Windows Service (26632).bes @@ -1,45 +1,45 @@ - - - - - Start and Enable Windows Service - This task will start (and if necessary enable) a given Windows Service. - windows of operating system - Internal - 2019-06-14 - - x-fixlet-modification-time - Fri, 14 Jun 2019 15:37:52 +0000 - - BESC - - - Click - here - to deploy this action. - - // Which service? -action parameter query "svcname" with description "Please enter the service name to start:" - -// Is Service Disabled? -if {start type of service (parameter "svcname" of action) = "disabled"} - - // Enable service (set Start Type to Automatic) - waithidden cmd /C sc config {parameter "svcname" of action} start= auto - -endif - -// Start service -waithidden cmd /C sc start {parameter "svcname" of action} - - - + + + + + Start and Enable Windows Service + This task will start (and if necessary enable) a given Windows Service. + windows of operating system + Internal + 2019-06-14 + + x-fixlet-modification-time + Fri, 14 Jun 2019 15:37:52 +0000 + + BESC + + + Click + here + to deploy this action. + + // Which service? +action parameter query "svcname" with description "Please enter the service name to start:" + +// Is Service Disabled? +if {start type of service (parameter "svcname" of action) = "disabled"} + + // Enable service (set Start Type to Automatic) + waithidden cmd /C sc config {parameter "svcname" of action} start= auto + +endif + +// Start service +waithidden cmd /C sc start {parameter "svcname" of action} + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the DCOM Launcher Service (9282).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the DCOM Launcher Service (9282).bes index c4a0e0b6c..ee677d0ea 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Start the DCOM Launcher Service (9282).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the DCOM Launcher Service (9282).bes @@ -1,36 +1,36 @@ - - - - - Start the DCOM Launcher Service - Starts the DCOM Launcher Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

-

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
- name of operating system starts with "Win" - exists service "DcomLaunch" whose (state of it != "Running") - Internal - 2016-03-15 - - x-fixlet-modification-time - Tue, 15 Mar 2016 12:35:56 +0000 - - BES - - - Click - here - to deploy this action. - - // Enter your action script here -waithidden net start DcomLaunch - -
-
+ + + + + Start the DCOM Launcher Service + Starts the DCOM Launcher Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "DcomLaunch" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:35:56 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start DcomLaunch + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the RPC EndPoint Mapper Service (9283).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the RPC EndPoint Mapper Service (9283).bes index ad1653637..31960e44e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Start the RPC EndPoint Mapper Service (9283).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the RPC EndPoint Mapper Service (9283).bes @@ -1,36 +1,36 @@ - - - - - Start the RPC EndPoint Mapper Service - Starts the RPC Endpoint Mapper Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

-

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
- name of operating system starts with "Win" - exists service "RpcEptMapper" whose (state of it != "Running") - Internal - 2016-03-15 - - x-fixlet-modification-time - Tue, 15 Mar 2016 12:29:36 +0000 - - BES - - - Click - here - to deploy this action. - - // Enter your action script here -waithidden net start rpcss - -
-
+ + + + + Start the RPC EndPoint Mapper Service + Starts the RPC Endpoint Mapper Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "RpcEptMapper" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:29:36 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start rpcss + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Procedure Call Service (9284).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Procedure Call Service (9284).bes index 53e3e2eb0..ee04aa44f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Procedure Call Service (9284).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Procedure Call Service (9284).bes @@ -1,36 +1,36 @@ - - - - - Start the Remote Procedure Call Service - Starts the Remote Procdure Call Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

-

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
- name of operating system starts with "Win" - exists service "RpcSs" whose (state of it != "Running") - Internal - 2016-03-15 - - x-fixlet-modification-time - Tue, 15 Mar 2016 12:25:32 +0000 - - BES - - - Click - here - to deploy this action. - - // Enter your action script here -waithidden net start rpcss - -
-
+ + + + + Start the Remote Procedure Call Service + Starts the Remote Procdure Call Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "RpcSs" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:25:32 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start rpcss + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Registry Service (9286).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Registry Service (9286).bes index d9affc135..5da754e26 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Registry Service (9286).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the Remote Registry Service (9286).bes @@ -1,36 +1,36 @@ - - - - - Start the Remote Registry Service - Starts the Remote Registry Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

-

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
- name of operating system starts with "Win" - exists service "RemoteRegistry" whose (state of it != "Running") - Internal - 2016-03-15 - - x-fixlet-modification-time - Tue, 15 Mar 2016 12:07:46 +0000 - - BES - - - Click - here - to deploy this action. - - // Enter your action script here -waithidden net start RemoteRegistry - -
-
+ + + + + Start the Remote Registry Service + Starts the Remote Registry Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "RemoteRegistry" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:07:46 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start RemoteRegistry + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Start the Windows Management Instrumentation Service (9285).bes b/Sites/Windows Management/Fixlets/Fixlets/Start the Windows Management Instrumentation Service (9285).bes index 5d748476d..35a681495 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Start the Windows Management Instrumentation Service (9285).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Start the Windows Management Instrumentation Service (9285).bes @@ -1,36 +1,36 @@ - - - - - Start the Windows Management Instrumentation Service - Starts the Windows Management Instrumentation Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

-

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
- name of operating system starts with "Win" - exists service "Winmgmt" whose (state of it != "Running") - Internal - 2016-03-15 - - x-fixlet-modification-time - Tue, 15 Mar 2016 12:20:57 +0000 - - BES - - - Click - here - to deploy this action. - - // Enter your action script here -waithidden net start winmgmt - -
-
+ + + + + Start the Windows Management Instrumentation Service + Starts the Windows Management Instrumentation Service.  This is needed to run a QRadar Vulnerability Manager patch scans.

+

For more details see http://www-01.ibm.com/support/docview.wss?uid=swg27043767

]]>
+ name of operating system starts with "Win" + exists service "Winmgmt" whose (state of it != "Running") + Internal + 2016-03-15 + + x-fixlet-modification-time + Tue, 15 Mar 2016 12:20:57 +0000 + + BES + + + Click + here + to deploy this action. + + // Enter your action script here +waithidden net start winmgmt + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Stop and disable Print Spooler service (26914).bes b/Sites/Windows Management/Fixlets/Fixlets/Stop and disable Print Spooler service (26914).bes index 2fcd618fe..48c5a2ce2 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Stop and disable Print Spooler service (26914).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Stop and disable Print Spooler service (26914).bes @@ -1,47 +1,47 @@ - - - - - Stop and disable Print Spooler service - -

This fixlet will handle a few cases:

-

1. If print spooler service is running and not set to disabled, it will stop it first then set service to disabled

-

2. If print spooler is not running but service is not set to disabled, it will simply set service to disabled

]]>
- (exists service "spooler" and not exists start types whose(it = "disabled") of services "spooler") and (name of operating system as lowercase contains "win") - Bigfix AVP- Jeff Schafer - 2022-03-10 - - x-fixlet-modification-time - Thu, 10 Mar 2022 22:09:18 +0000 - - BESC - - - Click - here - to deploy this action. - - NUL 2> NUL -move __appendfile netquiet.bat -waithidden "{pathname of client folder of site "BESSupport" & "\RunQuiet.exe"}" netquiet.bat stop "spooler" -delete netquiet.bat -waithidden cmd /C sc config spooler start= disabled -else if {exists not running service "spooler" and not exists start type whose(it = "disabled") of service "spooler"} -waithidden cmd /C sc config spooler start= disabled]]> - - -
-
+ + + + + Stop and disable Print Spooler service + +

This fixlet will handle a few cases:

+

1. If print spooler service is running and not set to disabled, it will stop it first then set service to disabled

+

2. If print spooler is not running but service is not set to disabled, it will simply set service to disabled

]]>
+ (exists service "spooler" and not exists start types whose(it = "disabled") of services "spooler") and (name of operating system as lowercase contains "win") + Bigfix AVP- Jeff Schafer + 2022-03-10 + + x-fixlet-modification-time + Thu, 10 Mar 2022 22:09:18 +0000 + + BESC + + + Click + here + to deploy this action. + + NUL 2> NUL +move __appendfile netquiet.bat +waithidden "{pathname of client folder of site "BESSupport" & "\RunQuiet.exe"}" netquiet.bat stop "spooler" +delete netquiet.bat +waithidden cmd /C sc config spooler start= disabled +else if {exists not running service "spooler" and not exists start type whose(it = "disabled") of service "spooler"} +waithidden cmd /C sc config spooler start= disabled]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/System Restore Off _ Disable (20643).bes b/Sites/Windows Management/Fixlets/Fixlets/System Restore Off _ Disable (20643).bes index 2c28062db..ca8bb85f7 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/System Restore Off _ Disable (20643).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/System Restore Off _ Disable (20643).bes @@ -1,247 +1,247 @@ - - - - - System Restore Off / Disable - -

Developer Documentation for System Restore Off

-

Author(s): Sean Seymour

-

Document Version: 2.3

-

Last Updated: 04/05/2016

-

Overview

-

System Restore has been found to cause issues with disk space on certain devices and issues with restoring old versions of programs on other devices. This package fixes the System Restore state if it has been disabled incorrectly, then deletes all system restore points and disables it correctly. On Windows 7 devices, it also disables the built in scheduled task that periodically creates restore points.

-

Affected Device(s)

-

·         Any device with System Restore Information > 10 MB

-

·         Any Win7+ device that has registry data or scheduled tasks indicating System Restore is active (details below)

-

Files Installed

-

Some temporary files are created, then executed and deleted.

-

Installation and Operation

-

From the BigFix console, Take Action on the System Restore Off fixlet. The client will run the actionscript, which does the following:

-

Windows XP

-

·         Sets HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\DiskPercent to 1

-

·         Temporarily sets HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\DisableSR to 0

-

·         If the System Restore service is running, restarts it. Otherwise it sets the System Restore service to automatically start then starts it

-

·         Disables the System Restore service via WMI, which also deletes all System Restore points and sets the DisableSR registry value back to 1.

-

Windows 7+

-

·         Disables the Microsoft\Windows\SystemRestore\SR scheduled task

-

·         Removes any values in HKLM\Software\Microsoft\Windows NT\CurrentVersion\SPP\Clients

-

·         Attempts to remove existing restore points using vssadmin delete shadows /all /quiet

-

·         Creates a scheduled task to run on the next reboot that:

-

o   Deletes the contents of any remaining System Volume Information folders on the drives’ root folders

-

o   Deletes any temporary files that were created

-

o   Deletes the scheduled task

-

Known Issues

-

It’s possible that something in the filesystem continues to use the System Restore files even after a reboot, which would prevent deletion. If this amount of data is more than 10 MB then the result of the BigFix action will show as Failed. In these rare cases I would suggest running the fixlet again. If the issue persists, connect to the device and attempt to delete the existing restore points and disable System Restore manually through the System control panel.

-

Rollback Procedures

-

Configure System Restore via the control panel, or create a fixlet to re-enable it.

-

Notes

-

·         This fixlet requires a restart before completing fully.

-

Document Changelog

-

·         04/05/2016, Sean Seymour: Version 2.3 - Fixed a bug in the actionscript command to create the scheduled task that runs after the reboot.

-

·         03/16/2016, Sean Seymour: Version 2.2 - Added Win7+ info

-

·         11/03/2015, Sean Seymour: Version 2.1  - Clarified that the DisableSR registry value gets set back to 1.

-

·         10/28/2015, Sean Seymour: Version 2.0 with updated information regarding the WMI step

-

·         09/22/2015, Sean Seymour: Version 1.0 of this document created

]]>
- windows of operating system - 10) or ((windows of operating system and version of operating system >= "6.1") and (exists value whose (name of it is "RPSessionInterval" and it > 0) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" of native registry) or (exists values of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SPP\Clients" of native registry) or exists scheduled task whose (path of it is "\Microsoft\Windows\SystemRestore\SR" and enabled of it))]]> - Internal - 2016-05-17 - - x-fixlet-modification-time - Tue, 17 May 2016 14:50:17 +0000 - - BESC - - - Click - here - to deploy this action. - - = "2.0") of native registry} - parameter "PowerShellExists" = "True" -else - parameter "PowerShellExists" = "False" -endif - -if {(parameter "PowerShellExists") is "True"} - waithidden powershell -executionpolicy bypass "[System.IO.DriveInfo]::GetDrives() | ? {{$_.DriveType -eq 'Fixed'} | % {{Disable-ComputerRestore -Drive $_}" -else - // Disable System Restore via wmi & vbcript. - delete __createfile - delete run.vbs - - createfile until _end_ -' Original source: http://windowsitpro.com/scripting/rem-disabling-system-restore -Option Explicit -Dim SystemRestoreEnabled, objRP, ReturnCode - -' Check if computer has any restore points. -SystemRestoreEnabled = False -For Each objRP In GetObject("winmgmts:{{impersonationlevel=impersonate}!root/default").InstancesOf("SystemRestore") - SystemRestoreEnabled = True - Exit For -Next - -ReturnCode = 0 - -If SystemRestoreEnabled Then - ' Disable System Restore for all drives on the computer - ReturnCode = GetObject("winmgmts:{{impersonationLevel=impersonate}!root/default:SystemRestore").Disable("") -End If - -Wscript.Quit ReturnCode - _end_ - - move __createfile run.vbs - - override wait - hidden=true - completion=job - wait cscript.exe run.vbs -endif - -// The above code for Win7 simply disables the ability to restore system restore points. -// There is additional work needed to: -// 1. Disable the built in scheduled task that periodically creates restore points. -// 2. Remove a registry key that may have some drives as System Restore 'clients'. -// 3. Delete any existing restore points. -// 4. Clean up the System Volume Information folders after the next reboot. -if {windows of operating system and version of operating system >= "6.1"} - // 1. Disable the built in scheduled task that periodically creates restore points. - parameter "SysRestoreTaskPath" = "\Microsoft\Windows\SystemRestore\SR" - if {exists scheduled task whose (path of it is (parameter "SysRestoreTaskPath") and enabled of it)} - waithidden schtasks /change /tn {parameter "SysRestoreTaskPath"} /disable - endif - - // 2. Remove a registry key that may have some drives as System Restore 'clients'. - action uses wow64 redirection false - parameter "SysRestoreClientPath" = "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SPP\Clients" - waithidden reg delete "{parameter "SysRestoreClientPath"}" /va /f - - // 3. Delete any existing restore points. - waithidden vssadmin delete shadows /all /quiet - - // 4. Clean up the System Volume Information folders. - // Any remaining files in the System Volume Information folders are usually - // locked / in use until the next reboot. So create a scheduled task that - // will delete the files at startup then delete itself (the task). - parameter "SysVolInfoBasename" = "DeleteSysVolInfoContents" - parameter "OutputFolder" = "{storage folder of client as string & "\SystemRestoreOff"}" - parameter "TaskScriptPath" = "{parameter "OutputFolder"}\{parameter "SysVolInfoBasename"}.bat" - - if {not exist folder (parameter "OutputFolder")} - folder create "{parameter "OutputFolder"}" - endif - - // Create a script to delete the contents of all files in the System Volume Information - // folder on the root of any fixed drive. - if {(parameter "PowerShellExists") is "True"} - parameter "ScriptCall" = "powershell -executionpolicy bypass -file {"%22"}%~n0.ps1{"%22"}" - parameter "ScriptPath" = "{parameter "OutputFolder"}\{parameter "SysVolInfoBasename"}.ps1" - delete __createfile - createfile until _end_ -[System.IO.DriveInfo]::GetDrives() | ? {{$_.DriveType -eq 'Fixed'} | % {{Get-ChildItem -Path (Join-Path $_ 'System Volume Information') -Recurse | Remove-Item -Force -Recurse} -_end_ - else - parameter "ScriptCall" = "cscript {"%22"}%~n0.vbs{"%22"}" - parameter "ScriptPath" = "{parameter "OutputFolder"}\{parameter "SysVolInfoBasename"}.vbs" - - delete __createfile - createfile until _end_ -option explicit -on error resume next -const FixedDrive = 2 -dim file, folder, objDrive, objFolder, sysVolInfoPath -dim objFSO: set objFSO = CreateObject("Scripting.FileSystemObject") -dim colDrives: set colDrives = objFSO.Drives - -for each objDrive in colDrives - if FixedDrive = objDrive.DriveType then - sysVolInfoPath = objDrive.RootFolder & "System Volume Information" - - set objFolder = objFSO.GetFolder(sysVolInfoPath) - - for each folder in objFolder.SubFolders - objFSO.DeleteFolder folder.path, true - next - - for each file in objFolder.Files - objFSO.DeleteFile file.path, true - next - end if -next -_end_ - endif - - // Copy fails if the file exists, so delete it first. - // Delete calls do not fail if the file is not there. - delete "{parameter "ScriptPath"}" - move __createfile "{parameter "ScriptPath"}" - - // Create the batch file that the scheduled task will use to execute the script. - // When it's done it will delete the task, itself and any helper files in that dir. - // In some instances the call to vssadmin doesn't work pre-reboot, so throw it in here again. - delete __createfile - createfile until _end_ -@echo off -cd /d "%~dp0" -vssadmin delete shadows /all /quiet -{parameter "ScriptCall"} -schtasks /delete /tn "%~n0" /f -cd /d %systemdrive%\ -start cmd /c rd /s/q "%~dp0"&exit /b -_end_ - - // Copy the batch file to the predefined path for the scheduled task. - delete "{parameter "TaskScriptPath"}" - move __createfile "{parameter "TaskScriptPath"}" - - // Create the startup task. - // The tr argument requires the quotes to be escaped if there are spaces in the path. - waithidden schtasks /create /ru System /tn "{parameter "SysVolInfoBasename"}" /sc onstart /tr "\"{parameter "TaskScriptPath"}"\" /f - - action requires restart "SystemRestoreOff" -endif]]> - -
-
+ + + + + System Restore Off / Disable + +

Developer Documentation for System Restore Off

+

Author(s): Sean Seymour

+

Document Version: 2.3

+

Last Updated: 04/05/2016

+

Overview

+

System Restore has been found to cause issues with disk space on certain devices and issues with restoring old versions of programs on other devices. This package fixes the System Restore state if it has been disabled incorrectly, then deletes all system restore points and disables it correctly. On Windows 7 devices, it also disables the built in scheduled task that periodically creates restore points.

+

Affected Device(s)

+

·         Any device with System Restore Information > 10 MB

+

·         Any Win7+ device that has registry data or scheduled tasks indicating System Restore is active (details below)

+

Files Installed

+

Some temporary files are created, then executed and deleted.

+

Installation and Operation

+

From the BigFix console, Take Action on the System Restore Off fixlet. The client will run the actionscript, which does the following:

+

Windows XP

+

·         Sets HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\DiskPercent to 1

+

·         Temporarily sets HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\DisableSR to 0

+

·         If the System Restore service is running, restarts it. Otherwise it sets the System Restore service to automatically start then starts it

+

·         Disables the System Restore service via WMI, which also deletes all System Restore points and sets the DisableSR registry value back to 1.

+

Windows 7+

+

·         Disables the Microsoft\Windows\SystemRestore\SR scheduled task

+

·         Removes any values in HKLM\Software\Microsoft\Windows NT\CurrentVersion\SPP\Clients

+

·         Attempts to remove existing restore points using vssadmin delete shadows /all /quiet

+

·         Creates a scheduled task to run on the next reboot that:

+

o   Deletes the contents of any remaining System Volume Information folders on the drives’ root folders

+

o   Deletes any temporary files that were created

+

o   Deletes the scheduled task

+

Known Issues

+

It’s possible that something in the filesystem continues to use the System Restore files even after a reboot, which would prevent deletion. If this amount of data is more than 10 MB then the result of the BigFix action will show as Failed. In these rare cases I would suggest running the fixlet again. If the issue persists, connect to the device and attempt to delete the existing restore points and disable System Restore manually through the System control panel.

+

Rollback Procedures

+

Configure System Restore via the control panel, or create a fixlet to re-enable it.

+

Notes

+

·         This fixlet requires a restart before completing fully.

+

Document Changelog

+

·         04/05/2016, Sean Seymour: Version 2.3 - Fixed a bug in the actionscript command to create the scheduled task that runs after the reboot.

+

·         03/16/2016, Sean Seymour: Version 2.2 - Added Win7+ info

+

·         11/03/2015, Sean Seymour: Version 2.1  - Clarified that the DisableSR registry value gets set back to 1.

+

·         10/28/2015, Sean Seymour: Version 2.0 with updated information regarding the WMI step

+

·         09/22/2015, Sean Seymour: Version 1.0 of this document created

]]>
+ windows of operating system + 10) or ((windows of operating system and version of operating system >= "6.1") and (exists value whose (name of it is "RPSessionInterval" and it > 0) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" of native registry) or (exists values of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SPP\Clients" of native registry) or exists scheduled task whose (path of it is "\Microsoft\Windows\SystemRestore\SR" and enabled of it))]]> + Internal + 2016-05-17 + + x-fixlet-modification-time + Tue, 17 May 2016 14:50:17 +0000 + + BESC + + + Click + here + to deploy this action. + + = "2.0") of native registry} + parameter "PowerShellExists" = "True" +else + parameter "PowerShellExists" = "False" +endif + +if {(parameter "PowerShellExists") is "True"} + waithidden powershell -executionpolicy bypass "[System.IO.DriveInfo]::GetDrives() | ? {{$_.DriveType -eq 'Fixed'} | % {{Disable-ComputerRestore -Drive $_}" +else + // Disable System Restore via wmi & vbcript. + delete __createfile + delete run.vbs + + createfile until _end_ +' Original source: http://windowsitpro.com/scripting/rem-disabling-system-restore +Option Explicit +Dim SystemRestoreEnabled, objRP, ReturnCode + +' Check if computer has any restore points. +SystemRestoreEnabled = False +For Each objRP In GetObject("winmgmts:{{impersonationlevel=impersonate}!root/default").InstancesOf("SystemRestore") + SystemRestoreEnabled = True + Exit For +Next + +ReturnCode = 0 + +If SystemRestoreEnabled Then + ' Disable System Restore for all drives on the computer + ReturnCode = GetObject("winmgmts:{{impersonationLevel=impersonate}!root/default:SystemRestore").Disable("") +End If + +Wscript.Quit ReturnCode + _end_ + + move __createfile run.vbs + + override wait + hidden=true + completion=job + wait cscript.exe run.vbs +endif + +// The above code for Win7 simply disables the ability to restore system restore points. +// There is additional work needed to: +// 1. Disable the built in scheduled task that periodically creates restore points. +// 2. Remove a registry key that may have some drives as System Restore 'clients'. +// 3. Delete any existing restore points. +// 4. Clean up the System Volume Information folders after the next reboot. +if {windows of operating system and version of operating system >= "6.1"} + // 1. Disable the built in scheduled task that periodically creates restore points. + parameter "SysRestoreTaskPath" = "\Microsoft\Windows\SystemRestore\SR" + if {exists scheduled task whose (path of it is (parameter "SysRestoreTaskPath") and enabled of it)} + waithidden schtasks /change /tn {parameter "SysRestoreTaskPath"} /disable + endif + + // 2. Remove a registry key that may have some drives as System Restore 'clients'. + action uses wow64 redirection false + parameter "SysRestoreClientPath" = "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SPP\Clients" + waithidden reg delete "{parameter "SysRestoreClientPath"}" /va /f + + // 3. Delete any existing restore points. + waithidden vssadmin delete shadows /all /quiet + + // 4. Clean up the System Volume Information folders. + // Any remaining files in the System Volume Information folders are usually + // locked / in use until the next reboot. So create a scheduled task that + // will delete the files at startup then delete itself (the task). + parameter "SysVolInfoBasename" = "DeleteSysVolInfoContents" + parameter "OutputFolder" = "{storage folder of client as string & "\SystemRestoreOff"}" + parameter "TaskScriptPath" = "{parameter "OutputFolder"}\{parameter "SysVolInfoBasename"}.bat" + + if {not exist folder (parameter "OutputFolder")} + folder create "{parameter "OutputFolder"}" + endif + + // Create a script to delete the contents of all files in the System Volume Information + // folder on the root of any fixed drive. + if {(parameter "PowerShellExists") is "True"} + parameter "ScriptCall" = "powershell -executionpolicy bypass -file {"%22"}%~n0.ps1{"%22"}" + parameter "ScriptPath" = "{parameter "OutputFolder"}\{parameter "SysVolInfoBasename"}.ps1" + delete __createfile + createfile until _end_ +[System.IO.DriveInfo]::GetDrives() | ? {{$_.DriveType -eq 'Fixed'} | % {{Get-ChildItem -Path (Join-Path $_ 'System Volume Information') -Recurse | Remove-Item -Force -Recurse} +_end_ + else + parameter "ScriptCall" = "cscript {"%22"}%~n0.vbs{"%22"}" + parameter "ScriptPath" = "{parameter "OutputFolder"}\{parameter "SysVolInfoBasename"}.vbs" + + delete __createfile + createfile until _end_ +option explicit +on error resume next +const FixedDrive = 2 +dim file, folder, objDrive, objFolder, sysVolInfoPath +dim objFSO: set objFSO = CreateObject("Scripting.FileSystemObject") +dim colDrives: set colDrives = objFSO.Drives + +for each objDrive in colDrives + if FixedDrive = objDrive.DriveType then + sysVolInfoPath = objDrive.RootFolder & "System Volume Information" + + set objFolder = objFSO.GetFolder(sysVolInfoPath) + + for each folder in objFolder.SubFolders + objFSO.DeleteFolder folder.path, true + next + + for each file in objFolder.Files + objFSO.DeleteFile file.path, true + next + end if +next +_end_ + endif + + // Copy fails if the file exists, so delete it first. + // Delete calls do not fail if the file is not there. + delete "{parameter "ScriptPath"}" + move __createfile "{parameter "ScriptPath"}" + + // Create the batch file that the scheduled task will use to execute the script. + // When it's done it will delete the task, itself and any helper files in that dir. + // In some instances the call to vssadmin doesn't work pre-reboot, so throw it in here again. + delete __createfile + createfile until _end_ +@echo off +cd /d "%~dp0" +vssadmin delete shadows /all /quiet +{parameter "ScriptCall"} +schtasks /delete /tn "%~n0" /f +cd /d %systemdrive%\ +start cmd /c rd /s/q "%~dp0"&exit /b +_end_ + + // Copy the batch file to the predefined path for the scheduled task. + delete "{parameter "TaskScriptPath"}" + move __createfile "{parameter "TaskScriptPath"}" + + // Create the startup task. + // The tr argument requires the quotes to be escaped if there are spaces in the path. + waithidden schtasks /create /ru System /tn "{parameter "SysVolInfoBasename"}" /sc onstart /tr "\"{parameter "TaskScriptPath"}"\" /f + + action requires restart "SystemRestoreOff" +endif]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/TASK_ Change System Time (773).bes b/Sites/Windows Management/Fixlets/Fixlets/TASK_ Change System Time (773).bes index 915810a17..d604b6f2d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/TASK_ Change System Time (773).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/TASK_ Change System Time (773).bes @@ -1,37 +1,37 @@ - - - - - TASK: Change System Time - - (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it)) of operating system - Internal - 2011-08-12 - - x-fixlet-modification-time - Tue, 20 Mar 2012 14:35:38 +0000 - - BESC - - - Click - here - to deploy this action. - - // The following syntax can be used to set the clock to any given time -//waithidden cmd.exe /C time 4:30:00 PM -// The following will set the clock to the current time of the BES Server -set clock - - - - + + + + + TASK: Change System Time + + (name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR (name of it = "Win7" AND NOT x64 of it) OR (name of it = "Win7" AND x64 of it)) of operating system + Internal + 2011-08-12 + + x-fixlet-modification-time + Tue, 20 Mar 2012 14:35:38 +0000 + + BESC + + + Click + here + to deploy this action. + + // The following syntax can be used to set the clock to any given time +//waithidden cmd.exe /C time 4:30:00 PM +// The following will set the clock to the current time of the BES Server +set clock + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Run System File Checker tool - SFC _scannow (6038).bes b/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Run System File Checker tool - SFC _scannow (6038).bes index 796974466..ac60f9929 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Run System File Checker tool - SFC _scannow (6038).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Run System File Checker tool - SFC _scannow (6038).bes @@ -1,59 +1,59 @@ - - - - - TROUBLESHOOTING: Run System File Checker tool - SFC /scannow - From: http://bigfix.me/cdb/fixlet/1369

-

This task will run the Microsoft System File Checker tool.

-

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/system_file_checker.mspx?mfr=true

]]>
- windows of operating system - exists service "TrustedInstaller" - = "5.1"]]> - exists file "sfc.exe" of system x64 folder - Troubleshooting - Internal - jgs194 - 2011-09-19 - - x-fixlet-modification-time - Wed, 06 May 2015 13:59:23 +0000 - - BESC - - - Click - here - to deploy this action. - - -// http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/system_file_checker.mspx?mfr=true - -// SFC relies on the "TrustedInstaller" service: -// http://www.winhelponline.com/blog/fix-for-error-windows-resource-protection-could-not-start-the-repair-service-when-running-sfc-in-vista/ -if{not exists running service "TrustedInstaller"} - waithidden cmd.exe /C net start TrustedInstaller -endif - -continue if{ exists running service "TrustedInstaller" } - -// http://pic.dhe.ibm.com/infocenter/tivihelp/v26r1/index.jsp?topic=%2Fcom.ibm.tem.doc_8.2%2FPlatform%2FAction%2Fc_action_launch_preference_low_p.html -// launch exe's with low priority settings to help prevent disrupting the user -action launch preference low-priority - -// Run the System File Checker Utility -// http://support.microsoft.com/kb/929833 -continue if{exists running service "TrustedInstaller"} -waithidden sfc /scannow - - -
-
+ + + + + TROUBLESHOOTING: Run System File Checker tool - SFC /scannow + From: http://bigfix.me/cdb/fixlet/1369

+

This task will run the Microsoft System File Checker tool.

+

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/system_file_checker.mspx?mfr=true

]]>
+ windows of operating system + exists service "TrustedInstaller" + = "5.1"]]> + exists file "sfc.exe" of system x64 folder + Troubleshooting + Internal + jgs194 + 2011-09-19 + + x-fixlet-modification-time + Wed, 06 May 2015 13:59:23 +0000 + + BESC + + + Click + here + to deploy this action. + + +// http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/system_file_checker.mspx?mfr=true + +// SFC relies on the "TrustedInstaller" service: +// http://www.winhelponline.com/blog/fix-for-error-windows-resource-protection-could-not-start-the-repair-service-when-running-sfc-in-vista/ +if{not exists running service "TrustedInstaller"} + waithidden cmd.exe /C net start TrustedInstaller +endif + +continue if{ exists running service "TrustedInstaller" } + +// http://pic.dhe.ibm.com/infocenter/tivihelp/v26r1/index.jsp?topic=%2Fcom.ibm.tem.doc_8.2%2FPlatform%2FAction%2Fc_action_launch_preference_low_p.html +// launch exe's with low priority settings to help prevent disrupting the user +action launch preference low-priority + +// Run the System File Checker Utility +// http://support.microsoft.com/kb/929833 +continue if{exists running service "TrustedInstaller"} +waithidden sfc /scannow + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Volume Snapshot Service - VSS - Backups (6043).bes b/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Volume Snapshot Service - VSS - Backups (6043).bes index 4263c795f..31c2259aa 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Volume Snapshot Service - VSS - Backups (6043).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/TROUBLESHOOTING_ Volume Snapshot Service - VSS - Backups (6043).bes @@ -1,36 +1,36 @@ - - - - - TROUBLESHOOTING: Volume Snapshot Service - VSS - Backups - This task will flush all old shadow copies and set the max shadow copy storage to 10GB - windows of operating system - Internal - 2011-08-12 - - x-fixlet-modification-time - Wed, 06 May 2015 19:13:43 +0000 - - BESC - - - Click - here - to deploy this action. - - //Delete all old shadow copies -waithidden cmd.exe /C vssadmin delete shadows /all -//Set max VSS Shadow Copy storage to 10GB -waithidden cmd.exe /C vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=10GB - - - + + + + + TROUBLESHOOTING: Volume Snapshot Service - VSS - Backups + This task will flush all old shadow copies and set the max shadow copy storage to 10GB + windows of operating system + Internal + 2011-08-12 + + x-fixlet-modification-time + Wed, 06 May 2015 19:13:43 +0000 + + BESC + + + Click + here + to deploy this action. + + //Delete all old shadow copies +waithidden cmd.exe /C vssadmin delete shadows /all +//Set max VSS Shadow Copy storage to 10GB +waithidden cmd.exe /C vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=10GB + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10_2016) (TEST!!!) (export) (25565).bes b/Sites/Windows Management/Fixlets/Fixlets/Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10_2016) (TEST!!!) (export) (25565).bes index 075490e5d..7c743851e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10_2016) (TEST!!!) (export) (25565).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10_2016) (TEST!!!) (export) (25565).bes @@ -1,196 +1,196 @@ - - - - - Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10/2016) (TEST!!!) (export) - Example message:

-

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
 and APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
 to the user NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

-

Microsoft article indicates this should be ignored:  https://support.microsoft.com/en-us/help/4022522/dcom-event-id-10016-is-logged-in-windows-10-windows-server

-

Many community forums indicate it may be an actual problem; and the presence of so many error messages from the Event Log hampers troubleshooting in all scenarios.

-

https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/windows-10-error-10016-from-run-time-broker-cannot/3f21a980-7f1e-48e5-85ea-6aa8843ecf40

-

https://social.technet.microsoft.com/Forums/en-US/fd339448-8430-4a60-9377-71fd8aae228d/comdtc-setup-with-powershell?forum=winserverpowershell

-

The DCOM permissions are controlled by REG_BINARY values in a could of locations.
HKLM\Software\Classes\AppID\{guid}
AccessPermission:REG_BINARY
LaunchPermission:REG_BINARY
Each of these are binary-encoded values representing launch permissions. I've come across some PowerShell snippets that might be used to read and write these values. Changing these values first requires taking ownership of the registry key, as these are owned by TrustedInstaller.  Given the complexity of the PowerShell scripts to apply permissions, it appears that it may be simpler to create the appropriate permissions on one host, capture those settings, and simply use reg.exe to distribute that configuration to other hosts.

-

 Task Notes:

-
    -
  • To identify the correct permissions to set, examine the Event Log to determine which security principal is being denied Access or Launch permissions -
  • Take Ownership of the affected AppID by using a modified version of this Task, or the Template (which only takes ownership without changing the DCOM launch/activation permissions themselves).  Then, use DCOMCNFG.EXE to update the permissions of the AppID, and craft a relevance using the updated registry values. -
  • Pro tip:  The Relevance Statement for a given AppID can be auto-generated via the following in the Fixlet Debugger: -
      -
    • -

      q: ("exists keys %22" & pathname of it & "%22 whose (not exists values %22AccessPermission%22 whose (it as string = %22" & value "AccessPermission" of it as string & "%22) of it OR not exists values %22LaunchPermission%22 whose (it as string = %22" & value "LaunchPermission" of it as string & "%22 ) of it) of native registry") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}" of native registry

      -

      A: exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}" whose (not exists values "AccessPermission" whose (it as string = "01001480bc000000c80000001400000034000000020020000100000011001400040000000101000000000010001000000000000002008800060000000000180003000000010200000000000520000000200200000000180003000000010200000000000f0200000001000000000014000300000001010000000000050a000000000014000300000001010000000000051200000000001400030000000101000000000005130000000000140003000000010100000000000514000000010100000000000512000000010100000000000512000000") of it OR not exists values "LaunchPermission" whose (it as string = "01001480a8000000b4000000140000003400000002002000010000001100140004000000010100000000001000100000000000000200740005000000000018000b00000001020000000000052000000020020000000018000b000000010200000000000f0200000001000000000014000b000000010100000000000504000000000014000b00000001010000000000050a000000000014000b000000010100000000000512000000010100000000000512000000010100000000000512000000" ) of it) of native registry

-

Notes on testing.  This task makes changes to some very deep system-level functions so treat it with care! 

]]>
- windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) - = version "10"]]> - exists keys "{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}" whose (not exists values "AccessPermission" whose (it as string = "01001480bc000000c80000001400000034000000020020000100000011001400040000000101000000000010001000000000000002008800060000000000180003000000010200000000000520000000200200000000180003000000010200000000000f0200000001000000000014000300000001010000000000050a000000000014000300000001010000000000051200000000001400030000000101000000000005130000000000140003000000010100000000000514000000010100000000000512000000010100000000000512000000") of it OR not exists values "LaunchPermission" whose (it as string = "01001480a8000000b4000000140000003400000002002000010000001100140004000000010100000000001000100000000000000200740005000000000018000b00000001020000000000052000000020020000000018000b000000010200000000000f0200000001000000000014000b000000010100000000000504000000000014000b00000001010000000000050a000000000014000b000000010100000000000512000000010100000000000512000000010100000000000512000000" ) of it) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID" of native registry - Internal - 2018-11-08 - - x-fixlet-modification-time - Thu, 08 Nov 2018 22:51:38 +0000 - - BESC - - - Click - here - to deploy this action. - - Applies to this key only -// "NT AUTHORITY\System","FullControl",@("ObjectInherit","ContainerInherit"),"None","Allow" ==> applies to this key, subkeys, and values - -delete __createfile -createfile until EOF_EOF_EOF - -##Taken with thanks from https://social.technet.microsoft.com/Forums/windowsserver/en-US/e718a560-2908-4b91-ad42-d392e7f8f1ad/take-ownership-of-a-registry-key-and-change-permissions?forum=winserverpowershell - -function enable-privilege { - param( - ## The privilege to adjust. This set is taken from - ## http://msdn.microsoft.com/en-us/library/bb530716(VS.85).aspx - [ValidateSet( - "SeAssignPrimaryTokenPrivilege", "SeAuditPrivilege", "SeBackupPrivilege", - "SeChangeNotifyPrivilege", "SeCreateGlobalPrivilege", "SeCreatePagefilePrivilege", - "SeCreatePermanentPrivilege", "SeCreateSymbolicLinkPrivilege", "SeCreateTokenPrivilege", - "SeDebugPrivilege", "SeEnableDelegationPrivilege", "SeImpersonatePrivilege", "SeIncreaseBasePriorityPrivilege", - "SeIncreaseQuotaPrivilege", "SeIncreaseWorkingSetPrivilege", "SeLoadDriverPrivilege", - "SeLockMemoryPrivilege", "SeMachineAccountPrivilege", "SeManageVolumePrivilege", - "SeProfileSingleProcessPrivilege", "SeRelabelPrivilege", "SeRemoteShutdownPrivilege", - "SeRestorePrivilege", "SeSecurityPrivilege", "SeShutdownPrivilege", "SeSyncAgentPrivilege", - "SeSystemEnvironmentPrivilege", "SeSystemProfilePrivilege", "SeSystemtimePrivilege", - "SeTakeOwnershipPrivilege", "SeTcbPrivilege", "SeTimeZonePrivilege", "SeTrustedCredManAccessPrivilege", - "SeUndockPrivilege", "SeUnsolicitedInputPrivilege")] - $Privilege, - ## The process on which to adjust the privilege. Defaults to the current process. - $ProcessId = $pid, - ## Switch to disable the privilege, rather than enable it. - [Switch] $Disable - ) - - ## Taken from P/Invoke.NET with minor adjustments. - $definition = @' - using System; - using System.Runtime.InteropServices; - - public class AdjPriv - { - [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] - internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, - ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen); - - [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] - internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok); - [DllImport("advapi32.dll", SetLastError = true)] - internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid); - [StructLayout(LayoutKind.Sequential, Pack = 1)] - internal struct TokPriv1Luid - { - public int Count; - public long Luid; - public int Attr; - } - - internal const int SE_PRIVILEGE_ENABLED = 0x00000002; - internal const int SE_PRIVILEGE_DISABLED = 0x00000000; - internal const int TOKEN_QUERY = 0x00000008; - internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020; - public static bool EnablePrivilege(long processHandle, string privilege, bool disable) - { - bool retVal; - TokPriv1Luid tp; - IntPtr hproc = new IntPtr(processHandle); - IntPtr htok = IntPtr.Zero; - retVal = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok); - tp.Count = 1; - tp.Luid = 0; - if(disable) - { - tp.Attr = SE_PRIVILEGE_DISABLED; - } - else - { - tp.Attr = SE_PRIVILEGE_ENABLED; - } - retVal = LookupPrivilegeValue(null, privilege, ref tp.Luid); - retVal = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero); - return retVal; - } - } -'@ - - $processHandle = (Get-Process -id $ProcessId).Handle - $type = Add-Type $definition -PassThru - $type[0]::EnablePrivilege($processHandle, $Privilege, $Disable) -} - -enable-privilege SeTakeOwnershipPrivilege -enable-privilege seRestorePrivilege - -$key = [Microsoft.Win32.Registry]::{parameter "RootKey" of action}.OpenSubKey("{parameter "RegKey" of action}",[Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::takeownership) - -## *** Note from Jason Walker - I find the following to not be true if the system account has at least "Read Permissions" to the key. -## Rather than starting from an empty ACL list, I instead try to start from the existing ACL list on the registry key and then modify it as needed -# You must get a blank acl for the key b/c you do not currently have access -#$acl = $key.GetAccessControl([System.Security.AccessControl.AccessControlSections]::None) - -$acl = $key.GetAccessControl() -$me = [System.Security.Principal.NTAccount]"{parameter "NewOwner" of action}" -$acl.SetOwner($me) -$key.SetAccessControl($acl) - -# After you have set owner you need to get the acl with the perms so you can modify it. -$acl = $key.GetAccessControl() -$rule = New-Object System.Security.AccessControl.RegistryAccessRule ({parameter "AddACL" of action}) -$acl.AddAccessRule($rule) -$key.SetAccessControl($acl) - -$key.Close() - -EOF_EOF_EOF - - -delete TakeOwnerReg.ps1 -move __createfile TakeOwnerReg.ps1 - -waithidden powershell.exe -ExecutionPolicy Bypass -File TakeOwnerReg.ps1 - -continue if {exit code of action = 0} - -waithidden reg.exe add "{parameter "FullKeyPath" of action}" /v AccessPermission /t REG_BINARY /d {parameter "AccessPermission" of action} /f -waithidden reg.exe add "{parameter "FullKeyPath" of action}" /v LaunchPermission /t REG_BINARY /d {parameter "LaunchPermission" of action} /f - -]]> - -
-
+ + + + + Take Registry Ownership and configure DCOM permissions for RunTimeBroker AppID {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} (Win10/2016) (TEST!!!) (export) + Example message:

+

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
 and APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
 to the user NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

+

Microsoft article indicates this should be ignored:  https://support.microsoft.com/en-us/help/4022522/dcom-event-id-10016-is-logged-in-windows-10-windows-server

+

Many community forums indicate it may be an actual problem; and the presence of so many error messages from the Event Log hampers troubleshooting in all scenarios.

+

https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/windows-10-error-10016-from-run-time-broker-cannot/3f21a980-7f1e-48e5-85ea-6aa8843ecf40

+

https://social.technet.microsoft.com/Forums/en-US/fd339448-8430-4a60-9377-71fd8aae228d/comdtc-setup-with-powershell?forum=winserverpowershell

+

The DCOM permissions are controlled by REG_BINARY values in a could of locations.
HKLM\Software\Classes\AppID\{guid}
AccessPermission:REG_BINARY
LaunchPermission:REG_BINARY
Each of these are binary-encoded values representing launch permissions. I've come across some PowerShell snippets that might be used to read and write these values. Changing these values first requires taking ownership of the registry key, as these are owned by TrustedInstaller.  Given the complexity of the PowerShell scripts to apply permissions, it appears that it may be simpler to create the appropriate permissions on one host, capture those settings, and simply use reg.exe to distribute that configuration to other hosts.

+

 Task Notes:

+
    +
  • To identify the correct permissions to set, examine the Event Log to determine which security principal is being denied Access or Launch permissions +
  • Take Ownership of the affected AppID by using a modified version of this Task, or the Template (which only takes ownership without changing the DCOM launch/activation permissions themselves).  Then, use DCOMCNFG.EXE to update the permissions of the AppID, and craft a relevance using the updated registry values. +
  • Pro tip:  The Relevance Statement for a given AppID can be auto-generated via the following in the Fixlet Debugger: +
      +
    • +

      q: ("exists keys %22" & pathname of it & "%22 whose (not exists values %22AccessPermission%22 whose (it as string = %22" & value "AccessPermission" of it as string & "%22) of it OR not exists values %22LaunchPermission%22 whose (it as string = %22" & value "LaunchPermission" of it as string & "%22 ) of it) of native registry") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}" of native registry

      +

      A: exists keys "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}" whose (not exists values "AccessPermission" whose (it as string = "01001480bc000000c80000001400000034000000020020000100000011001400040000000101000000000010001000000000000002008800060000000000180003000000010200000000000520000000200200000000180003000000010200000000000f0200000001000000000014000300000001010000000000050a000000000014000300000001010000000000051200000000001400030000000101000000000005130000000000140003000000010100000000000514000000010100000000000512000000010100000000000512000000") of it OR not exists values "LaunchPermission" whose (it as string = "01001480a8000000b4000000140000003400000002002000010000001100140004000000010100000000001000100000000000000200740005000000000018000b00000001020000000000052000000020020000000018000b000000010200000000000f0200000001000000000014000b000000010100000000000504000000000014000b00000001010000000000050a000000000014000b000000010100000000000512000000010100000000000512000000010100000000000512000000" ) of it) of native registry

+

Notes on testing.  This task makes changes to some very deep system-level functions so treat it with care! 

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + = version "10"]]> + exists keys "{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}" whose (not exists values "AccessPermission" whose (it as string = "01001480bc000000c80000001400000034000000020020000100000011001400040000000101000000000010001000000000000002008800060000000000180003000000010200000000000520000000200200000000180003000000010200000000000f0200000001000000000014000300000001010000000000050a000000000014000300000001010000000000051200000000001400030000000101000000000005130000000000140003000000010100000000000514000000010100000000000512000000010100000000000512000000") of it OR not exists values "LaunchPermission" whose (it as string = "01001480a8000000b4000000140000003400000002002000010000001100140004000000010100000000001000100000000000000200740005000000000018000b00000001020000000000052000000020020000000018000b000000010200000000000f0200000001000000000014000b000000010100000000000504000000000014000b00000001010000000000050a000000000014000b000000010100000000000512000000010100000000000512000000010100000000000512000000" ) of it) of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID" of native registry + Internal + 2018-11-08 + + x-fixlet-modification-time + Thu, 08 Nov 2018 22:51:38 +0000 + + BESC + + + Click + here + to deploy this action. + + Applies to this key only +// "NT AUTHORITY\System","FullControl",@("ObjectInherit","ContainerInherit"),"None","Allow" ==> applies to this key, subkeys, and values + +delete __createfile +createfile until EOF_EOF_EOF + +##Taken with thanks from https://social.technet.microsoft.com/Forums/windowsserver/en-US/e718a560-2908-4b91-ad42-d392e7f8f1ad/take-ownership-of-a-registry-key-and-change-permissions?forum=winserverpowershell + +function enable-privilege { + param( + ## The privilege to adjust. This set is taken from + ## http://msdn.microsoft.com/en-us/library/bb530716(VS.85).aspx + [ValidateSet( + "SeAssignPrimaryTokenPrivilege", "SeAuditPrivilege", "SeBackupPrivilege", + "SeChangeNotifyPrivilege", "SeCreateGlobalPrivilege", "SeCreatePagefilePrivilege", + "SeCreatePermanentPrivilege", "SeCreateSymbolicLinkPrivilege", "SeCreateTokenPrivilege", + "SeDebugPrivilege", "SeEnableDelegationPrivilege", "SeImpersonatePrivilege", "SeIncreaseBasePriorityPrivilege", + "SeIncreaseQuotaPrivilege", "SeIncreaseWorkingSetPrivilege", "SeLoadDriverPrivilege", + "SeLockMemoryPrivilege", "SeMachineAccountPrivilege", "SeManageVolumePrivilege", + "SeProfileSingleProcessPrivilege", "SeRelabelPrivilege", "SeRemoteShutdownPrivilege", + "SeRestorePrivilege", "SeSecurityPrivilege", "SeShutdownPrivilege", "SeSyncAgentPrivilege", + "SeSystemEnvironmentPrivilege", "SeSystemProfilePrivilege", "SeSystemtimePrivilege", + "SeTakeOwnershipPrivilege", "SeTcbPrivilege", "SeTimeZonePrivilege", "SeTrustedCredManAccessPrivilege", + "SeUndockPrivilege", "SeUnsolicitedInputPrivilege")] + $Privilege, + ## The process on which to adjust the privilege. Defaults to the current process. + $ProcessId = $pid, + ## Switch to disable the privilege, rather than enable it. + [Switch] $Disable + ) + + ## Taken from P/Invoke.NET with minor adjustments. + $definition = @' + using System; + using System.Runtime.InteropServices; + + public class AdjPriv + { + [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] + internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, + ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen); + + [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] + internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok); + [DllImport("advapi32.dll", SetLastError = true)] + internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid); + [StructLayout(LayoutKind.Sequential, Pack = 1)] + internal struct TokPriv1Luid + { + public int Count; + public long Luid; + public int Attr; + } + + internal const int SE_PRIVILEGE_ENABLED = 0x00000002; + internal const int SE_PRIVILEGE_DISABLED = 0x00000000; + internal const int TOKEN_QUERY = 0x00000008; + internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020; + public static bool EnablePrivilege(long processHandle, string privilege, bool disable) + { + bool retVal; + TokPriv1Luid tp; + IntPtr hproc = new IntPtr(processHandle); + IntPtr htok = IntPtr.Zero; + retVal = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok); + tp.Count = 1; + tp.Luid = 0; + if(disable) + { + tp.Attr = SE_PRIVILEGE_DISABLED; + } + else + { + tp.Attr = SE_PRIVILEGE_ENABLED; + } + retVal = LookupPrivilegeValue(null, privilege, ref tp.Luid); + retVal = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero); + return retVal; + } + } +'@ + + $processHandle = (Get-Process -id $ProcessId).Handle + $type = Add-Type $definition -PassThru + $type[0]::EnablePrivilege($processHandle, $Privilege, $Disable) +} + +enable-privilege SeTakeOwnershipPrivilege +enable-privilege seRestorePrivilege + +$key = [Microsoft.Win32.Registry]::{parameter "RootKey" of action}.OpenSubKey("{parameter "RegKey" of action}",[Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::takeownership) + +## *** Note from Jason Walker - I find the following to not be true if the system account has at least "Read Permissions" to the key. +## Rather than starting from an empty ACL list, I instead try to start from the existing ACL list on the registry key and then modify it as needed +# You must get a blank acl for the key b/c you do not currently have access +#$acl = $key.GetAccessControl([System.Security.AccessControl.AccessControlSections]::None) + +$acl = $key.GetAccessControl() +$me = [System.Security.Principal.NTAccount]"{parameter "NewOwner" of action}" +$acl.SetOwner($me) +$key.SetAccessControl($acl) + +# After you have set owner you need to get the acl with the perms so you can modify it. +$acl = $key.GetAccessControl() +$rule = New-Object System.Security.AccessControl.RegistryAccessRule ({parameter "AddACL" of action}) +$acl.AddAccessRule($rule) +$key.SetAccessControl($acl) + +$key.Close() + +EOF_EOF_EOF + + +delete TakeOwnerReg.ps1 +move __createfile TakeOwnerReg.ps1 + +waithidden powershell.exe -ExecutionPolicy Bypass -File TakeOwnerReg.ps1 + +continue if {exit code of action = 0} + +waithidden reg.exe add "{parameter "FullKeyPath" of action}" /v AccessPermission /t REG_BINARY /d {parameter "AccessPermission" of action} /f +waithidden reg.exe add "{parameter "FullKeyPath" of action}" /v LaunchPermission /t REG_BINARY /d {parameter "LaunchPermission" of action} /f + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Take Screenshot - Windows (21898).bes b/Sites/Windows Management/Fixlets/Fixlets/Take Screenshot - Windows (21898).bes index 1de08261e..514d1848c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Take Screenshot - Windows (21898).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Take Screenshot - Windows (21898).bes @@ -1,368 +1,368 @@ - - - - - Take Screenshot - Windows - This is useful for automated testing. Install something with BigFix on a test VM, open it with BigFix as a logged in test user, take a screenshot, then close application.

-

This requires there to be exactly 1 user logged into the system. It might be possible to do this as the SYSTEM user if executed interactively using something like PSExec or PAExec, but it definitely does not work as the SYSTEM user as executed by BigFix normally.

-

DO NOT USE without the consent of the currently logged on user.

-

 

]]>
- windows of operating system - 1 = number of unique values of home directories of users of (current users;logged on users) - not exists files "ScreenShot.png.base64" of folders "Logs" of folders "__Global" of data folders of client - Internal - 2016-09-30 - - x-fixlet-modification-time - Tue, 04 Oct 2016 18:03:27 +0000 - - BESC - - - Click - here - to deploy this action. - - nul||@goto :batch -/* -:batch -@echo off -setlocal - -:: find csc.exe -set "csc=" -for /r "%SystemRoot%\Microsoft.NET\Framework\" %%# in ("*csc.exe") do set "csc=%%#" - -if not exist "%csc%" ( - echo no .net framework installed - exit /b 10 -) - -if not exist "%~n0.exe" ( - call %csc% /nologo /r:"Microsoft.VisualBasic.dll" /out:"%~n0.exe" "%~dpsfnx0" || ( - exit /b %errorlevel% - ) -) -%~n0.exe %* -endlocal & exit /b %errorlevel% - -*/ - -// reference -// https://gallery.technet.microsoft.com/scriptcenter/eeff544a-f690-4f6b-a586-11eea6fc5eb8 - -using System; -using System.Runtime.InteropServices; -using System.Drawing; -using System.Drawing.Imaging; -using System.Collections.Generic; -using Microsoft.VisualBasic; - - -/// Provides functions to capture the entire screen, or a particular window, and save it to a file. - -public class ScreenCapture -{{ - - /// Creates an Image object containing a screen shot the active window - - public Image CaptureActiveWindow() - {{ - return CaptureWindow(User32.GetForegroundWindow()); - } - - /// Creates an Image object containing a screen shot of the entire desktop - - public Image CaptureScreen() - {{ - return CaptureWindow(User32.GetDesktopWindow()); - } - - /// Creates an Image object containing a screen shot of a specific window - - private Image CaptureWindow(IntPtr handle) - {{ - // get te hDC of the target window - IntPtr hdcSrc = User32.GetWindowDC(handle); - // get the size - User32.RECT windowRect = new User32.RECT(); - User32.GetWindowRect(handle, ref windowRect); - int width = windowRect.right - windowRect.left; - int height = windowRect.bottom - windowRect.top; - // create a device context we can copy to - IntPtr hdcDest = GDI32.CreateCompatibleDC(hdcSrc); - // create a bitmap we can copy it to, - // using GetDeviceCaps to get the width/height - IntPtr hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc, width, height); - // select the bitmap object - IntPtr hOld = GDI32.SelectObject(hdcDest, hBitmap); - // bitblt over - GDI32.BitBlt(hdcDest, 0, 0, width, height, hdcSrc, 0, 0, GDI32.SRCCOPY); - // restore selection - GDI32.SelectObject(hdcDest, hOld); - // clean up - GDI32.DeleteDC(hdcDest); - User32.ReleaseDC(handle, hdcSrc); - // get a .NET image object for it - Image img = Image.FromHbitmap(hBitmap); - // free up the Bitmap object - GDI32.DeleteObject(hBitmap); - return img; - } - - public void CaptureActiveWindowToFile(string filename, ImageFormat format) - {{ - Image img = CaptureActiveWindow(); - img.Save(filename, format); - } - - public void CaptureScreenToFile(string filename, ImageFormat format) - {{ - Image img = CaptureScreen(); - img.Save(filename, format); - } - - static bool fullscreen = true; - static String file = "screenshot.bmp"; - static System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Bmp; - static String windowTitle = ""; - - static void parseArguments() - {{ - String[] arguments = Environment.GetCommandLineArgs(); - if (arguments.Length == 1) - {{ - printHelp(); - Environment.Exit(0); - } - if (arguments[1].ToLower().Equals("/h") || arguments[1].ToLower().Equals("/help")) - {{ - printHelp(); - Environment.Exit(0); - } - - file = arguments[1]; - Dictionary formats = - new Dictionary(); - - formats.Add("bmp", System.Drawing.Imaging.ImageFormat.Bmp); - formats.Add("emf", System.Drawing.Imaging.ImageFormat.Emf); - formats.Add("exif", System.Drawing.Imaging.ImageFormat.Exif); - formats.Add("jpg", System.Drawing.Imaging.ImageFormat.Jpeg); - formats.Add("jpeg", System.Drawing.Imaging.ImageFormat.Jpeg); - formats.Add("gif", System.Drawing.Imaging.ImageFormat.Gif); - formats.Add("png", System.Drawing.Imaging.ImageFormat.Png); - formats.Add("tiff", System.Drawing.Imaging.ImageFormat.Tiff); - formats.Add("wmf", System.Drawing.Imaging.ImageFormat.Wmf); - - - String ext = ""; - if (file.LastIndexOf('.') > -1) - {{ - ext = file.ToLower().Substring(file.LastIndexOf('.') + 1, file.Length - file.LastIndexOf('.') - 1); - } - else - {{ - Console.WriteLine("Invalid file name - no extension"); - Environment.Exit(7); - } - - try - {{ - format = formats[ext]; - } - catch (Exception e) - {{ - Console.WriteLine("Probably wrong file format:" + ext); - Console.WriteLine(e.ToString()); - Environment.Exit(8); - } - - - if (arguments.Length > 2) - {{ - windowTitle = arguments[2]; - fullscreen = false; - } - - } - - static void printHelp() - {{ - //clears the extension from the script name - String scriptName = Environment.GetCommandLineArgs()[0]; - scriptName = scriptName.Substring(0, scriptName.Length); - Console.WriteLine(scriptName + " captures the screen or the active window and saves it to a file."); - Console.WriteLine(""); - Console.WriteLine("Usage:"); - Console.WriteLine(" " + scriptName + " filename [WindowTitle]"); - Console.WriteLine(""); - Console.WriteLine("finename - the file where the screen capture will be saved"); - Console.WriteLine(" allowed file extensions are - Bmp,Emf,Exif,Gif,Icon,Jpeg,Png,Tiff,Wmf."); - Console.WriteLine("WindowTitle - instead of capture whole screen you can point to a window "); - Console.WriteLine(" with a title which will put on focus and captuted."); - Console.WriteLine(" For WindowTitle you can pass only the first few characters."); - Console.WriteLine(" If don't want to change the current active window pass only \"\""); - } - - public static void Main() - {{ - parseArguments(); - ScreenCapture sc = new ScreenCapture(); - if (!fullscreen && !windowTitle.Equals("")) - {{ - try - {{ - - Interaction.AppActivate(windowTitle); - Console.WriteLine("setting " + windowTitle + " on focus"); - } - catch (Exception e) - {{ - Console.WriteLine("Probably there's no window like " + windowTitle); - Console.WriteLine(e.ToString()); - Environment.Exit(9); - } - - - } - try - {{ - if (fullscreen) - {{ - Console.WriteLine("Taking a capture of the whole screen to " + file); - sc.CaptureScreenToFile(file, format); - } - else - {{ - Console.WriteLine("Taking a capture of the active window to " + file); - sc.CaptureActiveWindowToFile(file, format); - } - } - catch (Exception e) - {{ - Console.WriteLine("Check if file path is valid " + file); - Console.WriteLine(e.ToString()); - } - } - - /// Helper class containing Gdi32 API functions - - private class GDI32 - {{ - - public const int SRCCOPY = 0x00CC0020; // BitBlt dwRop parameter - [DllImport("gdi32.dll")] - public static extern bool BitBlt(IntPtr hObject, int nXDest, int nYDest, - int nWidth, int nHeight, IntPtr hObjectSource, - int nXSrc, int nYSrc, int dwRop); - [DllImport("gdi32.dll")] - public static extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int nWidth, - int nHeight); - [DllImport("gdi32.dll")] - public static extern IntPtr CreateCompatibleDC(IntPtr hDC); - [DllImport("gdi32.dll")] - public static extern bool DeleteDC(IntPtr hDC); - [DllImport("gdi32.dll")] - public static extern bool DeleteObject(IntPtr hObject); - [DllImport("gdi32.dll")] - public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject); - } - - - /// Helper class containing User32 API functions - - private class User32 - {{ - [StructLayout(LayoutKind.Sequential)] - public struct RECT - {{ - public int left; - public int top; - public int right; - public int bottom; - } - [DllImport("user32.dll")] - public static extern IntPtr GetDesktopWindow(); - [DllImport("user32.dll")] - public static extern IntPtr GetWindowDC(IntPtr hWnd); - [DllImport("user32.dll")] - public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDC); - [DllImport("user32.dll")] - public static extern IntPtr GetWindowRect(IntPtr hWnd, ref RECT rect); - [DllImport("user32.dll")] - public static extern IntPtr GetForegroundWindow(); - } -} -_END_OF_FILE_ -// -------------------------------------------------------------------------------------------- - -delete __Download\screenCapture.bat -move __createfile __Download\screenCapture.bat -delete __Download\screenCapture.exe -action uses wow64 redirection {not x64 of operating system} -// reference: https://forum.bigfix.com/t/trying-to-run-a-linux-sh-script-in-a-bigfix-action/17748/6 (using cd &&) -waithidden cmd /c cd __Download && screenCapture.bat -delete {parameter "CurrentUserTempFolder"}\screenCapture.exe -copy __Download\screenCapture.exe {parameter "CurrentUserTempFolder"}\screenCapture.exe - -// take screenshot of currently active window -//override wait -//hidden=true -//runas=currentuser -//wait {parameter "CurrentUserTempFolder"}\screenCapture.exe {parameter "CurrentUserTempFolder"}\ScreenShotActiveWindow.png "" -//delete __Download\ScreenShotActiveWindow.png -//move {parameter "CurrentUserTempFolder"}\ScreenShotActiveWindow.png __Download\ScreenShotActiveWindow.png - -// take screenshot of fullscreen -override wait -hidden=true -runas=currentuser -wait {parameter "CurrentUserTempFolder"}\screenCapture.exe {parameter "CurrentUserTempFolder"}\ScreenShot.png -delete __Download\ScreenShot.png -move {parameter "CurrentUserTempFolder"}\ScreenShot.png __Download\ScreenShot.png - -// Clean up -delete {parameter "CurrentUserTempFolder"}\screenCapture.exe - -delete __Download\ScreenShot.png.base64 -waithidden powershell -ExecutionPolicy Bypass -command "[convert]::ToBase64String((get-content '{ pathname of download file "ScreenShot.png" }' -encoding byte)) | set-content( '__Download\ScreenShot.png.base64' )" -delete "{pathname of folders "Logs" of folders "__Global" of data folders of client}\ScreenShot.png.base64" -copy __Download\ScreenShot.png.base64 "{pathname of folders "Logs" of folders "__Global" of data folders of client}\ScreenShot.png.base64" -notify client ForceRefresh - -// http://optipng.sourceforge.net/ PNG optimizer -// prefetch optipng-0.7.6-win32.zip sha1:5cfaa48f01e354645b4cf415a0eaedcc76f542ea size:142313 http://heanet.dl.sourceforge.net/project/optipng/OptiPNG/optipng-0.7.6/optipng-0.7.6-win32.zip sha256:0012ec30ee5292e1fd19e0f8c45de4cc291fb5872c5bc83355c17e0b6ce662f7 - -// References: -// - http://superuser.com/questions/75614/take-a-screen-shot-from-command-line-in-windows/309290#309290 -// - https://github.com/npocmaka/batch.scripts/blob/master/hybrids/.net/c/screenCapture.bat -// - https://blog.mozilla.org/ted/2009/02/05/command-line-screenshot-tool-for-windows/ -// - https://code.google.com/archive/p/screenshot-cmd/ -// - http://www.nirsoft.net/utils/nircmd.html -// - https://davidwalsh.name/convert-image-data-uri-javascript -// - http://powershellscripts.blogspot.com/2007/02/base64-encode-file.html - -]]> - -
-
+ + + + + Take Screenshot - Windows + This is useful for automated testing. Install something with BigFix on a test VM, open it with BigFix as a logged in test user, take a screenshot, then close application.

+

This requires there to be exactly 1 user logged into the system. It might be possible to do this as the SYSTEM user if executed interactively using something like PSExec or PAExec, but it definitely does not work as the SYSTEM user as executed by BigFix normally.

+

DO NOT USE without the consent of the currently logged on user.

+

 

]]>
+ windows of operating system + 1 = number of unique values of home directories of users of (current users;logged on users) + not exists files "ScreenShot.png.base64" of folders "Logs" of folders "__Global" of data folders of client + Internal + 2016-09-30 + + x-fixlet-modification-time + Tue, 04 Oct 2016 18:03:27 +0000 + + BESC + + + Click + here + to deploy this action. + + nul||@goto :batch +/* +:batch +@echo off +setlocal + +:: find csc.exe +set "csc=" +for /r "%SystemRoot%\Microsoft.NET\Framework\" %%# in ("*csc.exe") do set "csc=%%#" + +if not exist "%csc%" ( + echo no .net framework installed + exit /b 10 +) + +if not exist "%~n0.exe" ( + call %csc% /nologo /r:"Microsoft.VisualBasic.dll" /out:"%~n0.exe" "%~dpsfnx0" || ( + exit /b %errorlevel% + ) +) +%~n0.exe %* +endlocal & exit /b %errorlevel% + +*/ + +// reference +// https://gallery.technet.microsoft.com/scriptcenter/eeff544a-f690-4f6b-a586-11eea6fc5eb8 + +using System; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Drawing.Imaging; +using System.Collections.Generic; +using Microsoft.VisualBasic; + + +/// Provides functions to capture the entire screen, or a particular window, and save it to a file. + +public class ScreenCapture +{{ + + /// Creates an Image object containing a screen shot the active window + + public Image CaptureActiveWindow() + {{ + return CaptureWindow(User32.GetForegroundWindow()); + } + + /// Creates an Image object containing a screen shot of the entire desktop + + public Image CaptureScreen() + {{ + return CaptureWindow(User32.GetDesktopWindow()); + } + + /// Creates an Image object containing a screen shot of a specific window + + private Image CaptureWindow(IntPtr handle) + {{ + // get te hDC of the target window + IntPtr hdcSrc = User32.GetWindowDC(handle); + // get the size + User32.RECT windowRect = new User32.RECT(); + User32.GetWindowRect(handle, ref windowRect); + int width = windowRect.right - windowRect.left; + int height = windowRect.bottom - windowRect.top; + // create a device context we can copy to + IntPtr hdcDest = GDI32.CreateCompatibleDC(hdcSrc); + // create a bitmap we can copy it to, + // using GetDeviceCaps to get the width/height + IntPtr hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc, width, height); + // select the bitmap object + IntPtr hOld = GDI32.SelectObject(hdcDest, hBitmap); + // bitblt over + GDI32.BitBlt(hdcDest, 0, 0, width, height, hdcSrc, 0, 0, GDI32.SRCCOPY); + // restore selection + GDI32.SelectObject(hdcDest, hOld); + // clean up + GDI32.DeleteDC(hdcDest); + User32.ReleaseDC(handle, hdcSrc); + // get a .NET image object for it + Image img = Image.FromHbitmap(hBitmap); + // free up the Bitmap object + GDI32.DeleteObject(hBitmap); + return img; + } + + public void CaptureActiveWindowToFile(string filename, ImageFormat format) + {{ + Image img = CaptureActiveWindow(); + img.Save(filename, format); + } + + public void CaptureScreenToFile(string filename, ImageFormat format) + {{ + Image img = CaptureScreen(); + img.Save(filename, format); + } + + static bool fullscreen = true; + static String file = "screenshot.bmp"; + static System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Bmp; + static String windowTitle = ""; + + static void parseArguments() + {{ + String[] arguments = Environment.GetCommandLineArgs(); + if (arguments.Length == 1) + {{ + printHelp(); + Environment.Exit(0); + } + if (arguments[1].ToLower().Equals("/h") || arguments[1].ToLower().Equals("/help")) + {{ + printHelp(); + Environment.Exit(0); + } + + file = arguments[1]; + Dictionary formats = + new Dictionary(); + + formats.Add("bmp", System.Drawing.Imaging.ImageFormat.Bmp); + formats.Add("emf", System.Drawing.Imaging.ImageFormat.Emf); + formats.Add("exif", System.Drawing.Imaging.ImageFormat.Exif); + formats.Add("jpg", System.Drawing.Imaging.ImageFormat.Jpeg); + formats.Add("jpeg", System.Drawing.Imaging.ImageFormat.Jpeg); + formats.Add("gif", System.Drawing.Imaging.ImageFormat.Gif); + formats.Add("png", System.Drawing.Imaging.ImageFormat.Png); + formats.Add("tiff", System.Drawing.Imaging.ImageFormat.Tiff); + formats.Add("wmf", System.Drawing.Imaging.ImageFormat.Wmf); + + + String ext = ""; + if (file.LastIndexOf('.') > -1) + {{ + ext = file.ToLower().Substring(file.LastIndexOf('.') + 1, file.Length - file.LastIndexOf('.') - 1); + } + else + {{ + Console.WriteLine("Invalid file name - no extension"); + Environment.Exit(7); + } + + try + {{ + format = formats[ext]; + } + catch (Exception e) + {{ + Console.WriteLine("Probably wrong file format:" + ext); + Console.WriteLine(e.ToString()); + Environment.Exit(8); + } + + + if (arguments.Length > 2) + {{ + windowTitle = arguments[2]; + fullscreen = false; + } + + } + + static void printHelp() + {{ + //clears the extension from the script name + String scriptName = Environment.GetCommandLineArgs()[0]; + scriptName = scriptName.Substring(0, scriptName.Length); + Console.WriteLine(scriptName + " captures the screen or the active window and saves it to a file."); + Console.WriteLine(""); + Console.WriteLine("Usage:"); + Console.WriteLine(" " + scriptName + " filename [WindowTitle]"); + Console.WriteLine(""); + Console.WriteLine("finename - the file where the screen capture will be saved"); + Console.WriteLine(" allowed file extensions are - Bmp,Emf,Exif,Gif,Icon,Jpeg,Png,Tiff,Wmf."); + Console.WriteLine("WindowTitle - instead of capture whole screen you can point to a window "); + Console.WriteLine(" with a title which will put on focus and captuted."); + Console.WriteLine(" For WindowTitle you can pass only the first few characters."); + Console.WriteLine(" If don't want to change the current active window pass only \"\""); + } + + public static void Main() + {{ + parseArguments(); + ScreenCapture sc = new ScreenCapture(); + if (!fullscreen && !windowTitle.Equals("")) + {{ + try + {{ + + Interaction.AppActivate(windowTitle); + Console.WriteLine("setting " + windowTitle + " on focus"); + } + catch (Exception e) + {{ + Console.WriteLine("Probably there's no window like " + windowTitle); + Console.WriteLine(e.ToString()); + Environment.Exit(9); + } + + + } + try + {{ + if (fullscreen) + {{ + Console.WriteLine("Taking a capture of the whole screen to " + file); + sc.CaptureScreenToFile(file, format); + } + else + {{ + Console.WriteLine("Taking a capture of the active window to " + file); + sc.CaptureActiveWindowToFile(file, format); + } + } + catch (Exception e) + {{ + Console.WriteLine("Check if file path is valid " + file); + Console.WriteLine(e.ToString()); + } + } + + /// Helper class containing Gdi32 API functions + + private class GDI32 + {{ + + public const int SRCCOPY = 0x00CC0020; // BitBlt dwRop parameter + [DllImport("gdi32.dll")] + public static extern bool BitBlt(IntPtr hObject, int nXDest, int nYDest, + int nWidth, int nHeight, IntPtr hObjectSource, + int nXSrc, int nYSrc, int dwRop); + [DllImport("gdi32.dll")] + public static extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int nWidth, + int nHeight); + [DllImport("gdi32.dll")] + public static extern IntPtr CreateCompatibleDC(IntPtr hDC); + [DllImport("gdi32.dll")] + public static extern bool DeleteDC(IntPtr hDC); + [DllImport("gdi32.dll")] + public static extern bool DeleteObject(IntPtr hObject); + [DllImport("gdi32.dll")] + public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject); + } + + + /// Helper class containing User32 API functions + + private class User32 + {{ + [StructLayout(LayoutKind.Sequential)] + public struct RECT + {{ + public int left; + public int top; + public int right; + public int bottom; + } + [DllImport("user32.dll")] + public static extern IntPtr GetDesktopWindow(); + [DllImport("user32.dll")] + public static extern IntPtr GetWindowDC(IntPtr hWnd); + [DllImport("user32.dll")] + public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDC); + [DllImport("user32.dll")] + public static extern IntPtr GetWindowRect(IntPtr hWnd, ref RECT rect); + [DllImport("user32.dll")] + public static extern IntPtr GetForegroundWindow(); + } +} +_END_OF_FILE_ +// -------------------------------------------------------------------------------------------- + +delete __Download\screenCapture.bat +move __createfile __Download\screenCapture.bat +delete __Download\screenCapture.exe +action uses wow64 redirection {not x64 of operating system} +// reference: https://forum.bigfix.com/t/trying-to-run-a-linux-sh-script-in-a-bigfix-action/17748/6 (using cd &&) +waithidden cmd /c cd __Download && screenCapture.bat +delete {parameter "CurrentUserTempFolder"}\screenCapture.exe +copy __Download\screenCapture.exe {parameter "CurrentUserTempFolder"}\screenCapture.exe + +// take screenshot of currently active window +//override wait +//hidden=true +//runas=currentuser +//wait {parameter "CurrentUserTempFolder"}\screenCapture.exe {parameter "CurrentUserTempFolder"}\ScreenShotActiveWindow.png "" +//delete __Download\ScreenShotActiveWindow.png +//move {parameter "CurrentUserTempFolder"}\ScreenShotActiveWindow.png __Download\ScreenShotActiveWindow.png + +// take screenshot of fullscreen +override wait +hidden=true +runas=currentuser +wait {parameter "CurrentUserTempFolder"}\screenCapture.exe {parameter "CurrentUserTempFolder"}\ScreenShot.png +delete __Download\ScreenShot.png +move {parameter "CurrentUserTempFolder"}\ScreenShot.png __Download\ScreenShot.png + +// Clean up +delete {parameter "CurrentUserTempFolder"}\screenCapture.exe + +delete __Download\ScreenShot.png.base64 +waithidden powershell -ExecutionPolicy Bypass -command "[convert]::ToBase64String((get-content '{ pathname of download file "ScreenShot.png" }' -encoding byte)) | set-content( '__Download\ScreenShot.png.base64' )" +delete "{pathname of folders "Logs" of folders "__Global" of data folders of client}\ScreenShot.png.base64" +copy __Download\ScreenShot.png.base64 "{pathname of folders "Logs" of folders "__Global" of data folders of client}\ScreenShot.png.base64" +notify client ForceRefresh + +// http://optipng.sourceforge.net/ PNG optimizer +// prefetch optipng-0.7.6-win32.zip sha1:5cfaa48f01e354645b4cf415a0eaedcc76f542ea size:142313 http://heanet.dl.sourceforge.net/project/optipng/OptiPNG/optipng-0.7.6/optipng-0.7.6-win32.zip sha256:0012ec30ee5292e1fd19e0f8c45de4cc291fb5872c5bc83355c17e0b6ce662f7 + +// References: +// - http://superuser.com/questions/75614/take-a-screen-shot-from-command-line-in-windows/309290#309290 +// - https://github.com/npocmaka/batch.scripts/blob/master/hybrids/.net/c/screenCapture.bat +// - https://blog.mozilla.org/ted/2009/02/05/command-line-screenshot-tool-for-windows/ +// - https://code.google.com/archive/p/screenshot-cmd/ +// - http://www.nirsoft.net/utils/nircmd.html +// - https://davidwalsh.name/convert-image-data-uri-javascript +// - http://powershellscripts.blogspot.com/2007/02/base64-encode-file.html + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Testing PrintNightmare Spooler Disable mitigation (26860).bes b/Sites/Windows Management/Fixlets/Fixlets/Testing PrintNightmare Spooler Disable mitigation (26860).bes index d42b04fa8..4a5378870 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Testing PrintNightmare Spooler Disable mitigation (26860).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Testing PrintNightmare Spooler Disable mitigation (26860).bes @@ -1,44 +1,44 @@ - - - - - Testing PrintNightmare Spooler Disable mitigation - TEST WELL

PrintNightmare, Critical Windows Print Spooler Vulnerability | CISA ]]>
- windows of operating system - product type of operating system != nt workstation product type /*optionally avoids desktops*/ - exists services "spooler" whose (state of it = "Running" OR start type of it != "disabled") - Internal - 2021-07-01 - - x-fixlet-modification-time - Thu, 01 Jul 2021 19:24:19 +0000 - - BESC - - - Click - here - to deploy this action. - - wait sc.exe stop spooler -wait sc.exe config spooler start= disabled - - - - Click - here - to see more information. - - https://us-cert.cisa.gov/ncas/current-activity/2021/06/30/printnightmare-critical-windows-print-spooler-vulnerability - -
-
+ + + + + Testing PrintNightmare Spooler Disable mitigation + TEST WELL

PrintNightmare, Critical Windows Print Spooler Vulnerability | CISA ]]>
+ windows of operating system + product type of operating system != nt workstation product type /*optionally avoids desktops*/ + exists services "spooler" whose (state of it = "Running" OR start type of it != "disabled") + Internal + 2021-07-01 + + x-fixlet-modification-time + Thu, 01 Jul 2021 19:24:19 +0000 + + BESC + + + Click + here + to deploy this action. + + wait sc.exe stop spooler +wait sc.exe config spooler start= disabled + + + + Click + here + to see more information. + + https://us-cert.cisa.gov/ncas/current-activity/2021/06/30/printnightmare-critical-windows-print-spooler-vulnerability + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Track Primary User v2.8 (2533).bes b/Sites/Windows Management/Fixlets/Fixlets/Track Primary User v2.8 (2533).bes index e810541b0..864b68109 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Track Primary User v2.8 (2533).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Track Primary User v2.8 (2533).bes @@ -1,47 +1,47 @@ - - - - - Track Primary User v2.8 - The "Primary User" of an endpoint is the user who has logged on most frequently in a given history window (e.g. the past 10 logins).

This task monitors each login and records the most recent logins.  This information is stored in the following registry values:

-

[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LoggedIn]
-[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LastLoggedInUser]
-[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LastTime]
-[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LogonHistory]
-[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\PrimaryUser]

-

Note:  This task will not run on domain controllers.
-

Note:  This task will be set as a policy and will run following each logon.

]]>
- (exists logged on users) AND (((it contains "win2000" OR it contains "winxp" OR it contains "win2003" OR it contains "winvista" OR it contains "win2008" OR it contains "win7") of (name of operating system as lowercase)) AND product type of operating system != nt domain controller product type) AND ((not exists value "LoggedIn" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry) OR (value "LoggedIn" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry != (exists logged on users whose (active of it)) as string) OR (if (exists values "LogonHistory" of keys "HKLM\Software\BigFix\EnterpriseClient\userstats" of registry) then (value "LogonHistory" of keys "HKLM\Software\BigFix\EnterpriseClient\userstats" of registry as string does not contain (maximum of time values of selects "starttime from win32_logonsession where (LogonType=2 OR LogonType=10)" of wmi) as string) else TRUE)) - Policy - Custom - 2007-10-10 - Custom - - x-fixlet-modification-time - Wed, 10 Jul 2013 17:58:26 +0000 - - BESC - - - Click&nbsp; - here - &nbsp;to deploy this action. - - (now - 7 * day)) of it) of ((preceding texts of firsts ";;" of it, following texts of firsts ";;" of it) of (substrings separated by "::" whose (it != "") of (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string))))))))) else ("::" & (tuple string item 0 of concatenation ", " of items 0 of ((item 0 of item 1 of it, item 1 of item 0 of it) of ((it,((preceding texts of firsts "%22" of following texts of firsts "Name=%22" of it, preceding texts of firsts "%22" of following texts of firsts ".LogonId=%22" of it) of ((following texts whose (number of substrings "|" of it is 1) of substrings "|" of preceding texts whose (number of substrings "|" of it mod 2 is 0) of substrings "|" of it) of ("|" & (concatenation "|" of (string values of selects "* from Win32_LoggedOnUser" of wmi)) & "|")))) of ((preceding texts of firsts "|" of it, following texts of firsts "|" of it) of ((following texts whose (number of substrings "|" of it is 1) of substrings "|" of preceding texts whose (number of substrings "|" of it mod 2 is 0) of substrings "|" of it) of ("|" & (concatenation "|" of ((if (it as string contains "LogonId") then (string values of it) else if (it as string contains "StartTime") then (time values of it as string) else "") of (selects "StartTime, LogonId from Win32_LogonSession where (LogonType=2 OR LogonType=10)" of wmi))) & "|")))) whose (item 0 of item 0 of it = item 1 of item 1 of it)) whose (item 1 of it = (maximum of time values of selects "starttime from win32_logonsession where (LogonType=2 OR LogonType=10)" of wmi as string))) & ";;" & (maximum of time values of selects "starttime from win32_logonsession where (LogonType=2 OR LogonType=10)" of wmi as string))) else (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)}" -regset "[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats]" "PrimaryUser"="{if (exists (key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" whose (exists value "LogonHistory" of it) of registry)) then (item 0 of ((items 0 whose ((concatenation of (unique values whose ((multiplicity of it = (maximum of multiplicities of unique values of preceding texts of firsts ";;" of substrings separated by "::" of (value "LogonHistory" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)))) of preceding texts of firsts ";;" of substrings separated by "::" of (value "LogonHistory" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)) as string) contains it) of it, items 1 whose (it as time = maximum of (((following texts of firsts ";;" of it) of (substrings separated by "::" whose (it != "") of (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string))) as time)) of it) of (((preceding texts of firsts ";;" of it, following texts of firsts ";;" of it) of (substrings separated by "::" whose (it != "") of (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)))))) else "N/A"}" -]]> - -
-
+ + + + + Track Primary User v2.8 + The "Primary User" of an endpoint is the user who has logged on most frequently in a given history window (e.g. the past 10 logins).

This task monitors each login and records the most recent logins.  This information is stored in the following registry values:

+

[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LoggedIn]
+[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LastLoggedInUser]
+[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LastTime]
+[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\LogonHistory]
+[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats\PrimaryUser]

+

Note:  This task will not run on domain controllers.
+

Note:  This task will be set as a policy and will run following each logon.

]]>
+ (exists logged on users) AND (((it contains "win2000" OR it contains "winxp" OR it contains "win2003" OR it contains "winvista" OR it contains "win2008" OR it contains "win7") of (name of operating system as lowercase)) AND product type of operating system != nt domain controller product type) AND ((not exists value "LoggedIn" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry) OR (value "LoggedIn" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry != (exists logged on users whose (active of it)) as string) OR (if (exists values "LogonHistory" of keys "HKLM\Software\BigFix\EnterpriseClient\userstats" of registry) then (value "LogonHistory" of keys "HKLM\Software\BigFix\EnterpriseClient\userstats" of registry as string does not contain (maximum of time values of selects "starttime from win32_logonsession where (LogonType=2 OR LogonType=10)" of wmi) as string) else TRUE)) + Policy + Custom + 2007-10-10 + Custom + + x-fixlet-modification-time + Wed, 10 Jul 2013 17:58:26 +0000 + + BESC + + + Click&nbsp; + here + &nbsp;to deploy this action. + + (now - 7 * day)) of it) of ((preceding texts of firsts ";;" of it, following texts of firsts ";;" of it) of (substrings separated by "::" whose (it != "") of (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string))))))))) else ("::" & (tuple string item 0 of concatenation ", " of items 0 of ((item 0 of item 1 of it, item 1 of item 0 of it) of ((it,((preceding texts of firsts "%22" of following texts of firsts "Name=%22" of it, preceding texts of firsts "%22" of following texts of firsts ".LogonId=%22" of it) of ((following texts whose (number of substrings "|" of it is 1) of substrings "|" of preceding texts whose (number of substrings "|" of it mod 2 is 0) of substrings "|" of it) of ("|" & (concatenation "|" of (string values of selects "* from Win32_LoggedOnUser" of wmi)) & "|")))) of ((preceding texts of firsts "|" of it, following texts of firsts "|" of it) of ((following texts whose (number of substrings "|" of it is 1) of substrings "|" of preceding texts whose (number of substrings "|" of it mod 2 is 0) of substrings "|" of it) of ("|" & (concatenation "|" of ((if (it as string contains "LogonId") then (string values of it) else if (it as string contains "StartTime") then (time values of it as string) else "") of (selects "StartTime, LogonId from Win32_LogonSession where (LogonType=2 OR LogonType=10)" of wmi))) & "|")))) whose (item 0 of item 0 of it = item 1 of item 1 of it)) whose (item 1 of it = (maximum of time values of selects "starttime from win32_logonsession where (LogonType=2 OR LogonType=10)" of wmi as string))) & ";;" & (maximum of time values of selects "starttime from win32_logonsession where (LogonType=2 OR LogonType=10)" of wmi as string))) else (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)}" +regset "[HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats]" "PrimaryUser"="{if (exists (key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" whose (exists value "LogonHistory" of it) of registry)) then (item 0 of ((items 0 whose ((concatenation of (unique values whose ((multiplicity of it = (maximum of multiplicities of unique values of preceding texts of firsts ";;" of substrings separated by "::" of (value "LogonHistory" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)))) of preceding texts of firsts ";;" of substrings separated by "::" of (value "LogonHistory" of key "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)) as string) contains it) of it, items 1 whose (it as time = maximum of (((following texts of firsts ";;" of it) of (substrings separated by "::" whose (it != "") of (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string))) as time)) of it) of (((preceding texts of firsts ";;" of it, following texts of firsts ";;" of it) of (substrings separated by "::" whose (it != "") of (value "LogonHistory" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\BigFix\EnterpriseClient\userstats" of registry as string)))))) else "N/A"}" +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Troubleshooting_ Reset Windows Update, Pending Updates, and DISM Repair (27344).bes b/Sites/Windows Management/Fixlets/Fixlets/Troubleshooting_ Reset Windows Update, Pending Updates, and DISM Repair (27344).bes index a30d161b4..7e6d3c1ea 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Troubleshooting_ Reset Windows Update, Pending Updates, and DISM Repair (27344).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Troubleshooting_ Reset Windows Update, Pending Updates, and DISM Repair (27344).bes @@ -1,379 +1,379 @@ - - - - - Troubleshooting: Reset Windows Update, Pending Updates, and DISM Repair - USE WITH CAUTION

-

 

-

This Task performs several cleanup operations to attempt to resolve failing Windows Updates.  This should be used with care, and only on systems that are failing to install updates after all other troubleshooting steps have been taken, consider this a last effort before reimaging the problem machine.  Making system changes, especially to an already-broken system, may further corrupt the system.  Backup any important data before running this task!

-

 

-

This Task

-
    -
  • -
    Attempts to clear cached Windows Update data to resolve cases where Windows Updates fail to install due to a corruption of the SoftwareDistribution folder.
    -
-

 

- -

The Second action allows specifying a path to a trusted set of Windows installation files to be used to perform a repair, if original Windows installation files are required, for example 'C:\Windows-Media-Source'.  The path should be accessible to the LocalSystem WIndows account (network UNC shares are generally not accessible and the media should be copied to a client path before running the action).

-

  

]]>
- windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) - = version "6.2"]]> - Internal - 2023-10-04 - - x-fixlet-modification-time - Tue, 14 May 2024 17:10:54 +0000 - - BESC - - - Click - here - to attempt repair without specifying an Installation Source. - - "{parameter "LogFolder"}\windows-update-cleanup.txt" 2>&1" - -// DISM Pending Component Updates Reset -delete __createfile -createfile until EOF_EOF_EOF -@echo DISM repair running %DATE% %TIME% - -@echo Kill any running WUSA update -taskkill.exe /im wusa.exe /f - -@echo Package list before servicing: -dism /online /get-packages /format:table - -@echo Removing any Pending Package installations via DISM -for /f %%i in ('dism /online /get-packages /format:table ^|findstr " Pending ^|"') do dism.exe /online /remove-package /PackageName:%%i /NoRestart -@echo DISM command ended with result code %ERRORLEVEL% - -@echo Package list after servicing: -dism /online /get-packages /format:table - - - -@echo DISM repair completed %DATE% %TIME% - -EOF_EOF_EOF - -delete DISM-repair.cmd -move __createfile DISM-repair.cmd - -delete "{parameter "LogFolder"}\DISM-RemovePending.log" -waithidden cmd.exe /c "DISM-repair.cmd >> "{parameter "LogFolder"}\DISM-RemovePending.log" 2>&1" - - - -delete "{parameter "LogFolder"}\DISM-RestoreHealth.log" -delete "{parameter "LogFolder"}\DISM-RestoreHealth.out" - -waithidden cmd /C "DISM.EXE /LogPath:"{parameter "LogFolder"}\DISM-RestoreHealth.log" /LogLevel:4 /NoRestart /Online /Cleanup-Image /RestoreHealth > "{parameter "LogFolder"}\DISM-RestoreHealth.out" 2>&1" - - -action requires restart "windows_update_reset" - -]]> - - - - Click - here - to attempt repair with a specific Windows Installation Source. - - "{parameter "LogFolder"}\windows-update-cleanup.txt" 2>&1" - -// DISM Pending Component Updates Reset -delete __createfile -createfile until EOF_EOF_EOF -@echo DISM repair running %DATE% %TIME% - -@echo Kill any running WUSA update -taskkill.exe /im wusa.exe /f - -@echo Package list before servicing: -dism /online /get-packages /format:table - -@echo Removing any Pending Package installations via DISM -for /f %%i in ('dism /online /get-packages /format:table ^|findstr " Pending ^|"') do dism.exe /online /remove-package /PackageName:%%i /NoRestart -@echo DISM command ended with result code %ERRORLEVEL% - -@echo Package list after servicing: -dism /online /get-packages /format:table - - - -@echo DISM repair completed %DATE% %TIME% - -EOF_EOF_EOF - -delete DISM-repair.cmd -move __createfile DISM-repair.cmd - -delete "{parameter "LogFolder"}\DISM-RemovePending.log" -waithidden cmd.exe /c "DISM-repair.cmd >> "{parameter "LogFolder"}\DISM-RemovePending.log" 2>&1" - - - -delete "{parameter "LogFolder"}\DISM-RestoreHealth.log" -delete "{parameter "LogFolder"}\DISM-RestoreHealth.out" - -waithidden cmd /C "DISM.EXE /LogPath:"{parameter "LogFolder"}\DISM-RestoreHealth.log" /LogLevel:4 /NoRestart /Online /Cleanup-Image /RestoreHealth /Source:"{parameter "RepairSource" of action}" /LimitAccess > "{parameter "LogFolder"}\DISM-RestoreHealth.out" 2>&1" - -action requires restart "windows_update_reset" - -]]> - -
-
+ + + + + Troubleshooting: Reset Windows Update, Pending Updates, and DISM Repair + USE WITH CAUTION

+

 

+

This Task performs several cleanup operations to attempt to resolve failing Windows Updates.  This should be used with care, and only on systems that are failing to install updates after all other troubleshooting steps have been taken, consider this a last effort before reimaging the problem machine.  Making system changes, especially to an already-broken system, may further corrupt the system.  Backup any important data before running this task!

+

 

+

This Task

+
    +
  • +
    Attempts to clear cached Windows Update data to resolve cases where Windows Updates fail to install due to a corruption of the SoftwareDistribution folder.
    +
+

 

+ +

The Second action allows specifying a path to a trusted set of Windows installation files to be used to perform a repair, if original Windows installation files are required, for example 'C:\Windows-Media-Source'.  The path should be accessible to the LocalSystem WIndows account (network UNC shares are generally not accessible and the media should be copied to a client path before running the action).

+

  

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + = version "6.2"]]> + Internal + 2023-10-04 + + x-fixlet-modification-time + Tue, 14 May 2024 17:10:54 +0000 + + BESC + + + Click + here + to attempt repair without specifying an Installation Source. + + "{parameter "LogFolder"}\windows-update-cleanup.txt" 2>&1" + +// DISM Pending Component Updates Reset +delete __createfile +createfile until EOF_EOF_EOF +@echo DISM repair running %DATE% %TIME% + +@echo Kill any running WUSA update +taskkill.exe /im wusa.exe /f + +@echo Package list before servicing: +dism /online /get-packages /format:table + +@echo Removing any Pending Package installations via DISM +for /f %%i in ('dism /online /get-packages /format:table ^|findstr " Pending ^|"') do dism.exe /online /remove-package /PackageName:%%i /NoRestart +@echo DISM command ended with result code %ERRORLEVEL% + +@echo Package list after servicing: +dism /online /get-packages /format:table + + + +@echo DISM repair completed %DATE% %TIME% + +EOF_EOF_EOF + +delete DISM-repair.cmd +move __createfile DISM-repair.cmd + +delete "{parameter "LogFolder"}\DISM-RemovePending.log" +waithidden cmd.exe /c "DISM-repair.cmd >> "{parameter "LogFolder"}\DISM-RemovePending.log" 2>&1" + + + +delete "{parameter "LogFolder"}\DISM-RestoreHealth.log" +delete "{parameter "LogFolder"}\DISM-RestoreHealth.out" + +waithidden cmd /C "DISM.EXE /LogPath:"{parameter "LogFolder"}\DISM-RestoreHealth.log" /LogLevel:4 /NoRestart /Online /Cleanup-Image /RestoreHealth > "{parameter "LogFolder"}\DISM-RestoreHealth.out" 2>&1" + + +action requires restart "windows_update_reset" + +]]> + + + + Click + here + to attempt repair with a specific Windows Installation Source. + + "{parameter "LogFolder"}\windows-update-cleanup.txt" 2>&1" + +// DISM Pending Component Updates Reset +delete __createfile +createfile until EOF_EOF_EOF +@echo DISM repair running %DATE% %TIME% + +@echo Kill any running WUSA update +taskkill.exe /im wusa.exe /f + +@echo Package list before servicing: +dism /online /get-packages /format:table + +@echo Removing any Pending Package installations via DISM +for /f %%i in ('dism /online /get-packages /format:table ^|findstr " Pending ^|"') do dism.exe /online /remove-package /PackageName:%%i /NoRestart +@echo DISM command ended with result code %ERRORLEVEL% + +@echo Package list after servicing: +dism /online /get-packages /format:table + + + +@echo DISM repair completed %DATE% %TIME% + +EOF_EOF_EOF + +delete DISM-repair.cmd +move __createfile DISM-repair.cmd + +delete "{parameter "LogFolder"}\DISM-RemovePending.log" +waithidden cmd.exe /c "DISM-repair.cmd >> "{parameter "LogFolder"}\DISM-RemovePending.log" 2>&1" + + + +delete "{parameter "LogFolder"}\DISM-RestoreHealth.log" +delete "{parameter "LogFolder"}\DISM-RestoreHealth.out" + +waithidden cmd /C "DISM.EXE /LogPath:"{parameter "LogFolder"}\DISM-RestoreHealth.log" /LogLevel:4 /NoRestart /Online /Cleanup-Image /RestoreHealth /Source:"{parameter "RepairSource" of action}" /LimitAccess > "{parameter "LogFolder"}\DISM-RestoreHealth.out" 2>&1" + +action requires restart "windows_update_reset" + +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/UPDATE_ Microsoft .NET Framework 4.8 Available - Windows 7 SP1 _ Windows 8.1 _ Windows 10 _ Windows Server 2008 R2 SP1 _ Windows Server 2012 _ Windows Server 2012 R2 _ Windows Server 2016 _ Windows Server 2019 (26631).bes b/Sites/Windows Management/Fixlets/Fixlets/UPDATE_ Microsoft .NET Framework 4.8 Available - Windows 7 SP1 _ Windows 8.1 _ Windows 10 _ Windows Server 2008 R2 SP1 _ Windows Server 2012 _ Windows Server 2012 R2 _ Windows Server 2016 _ Windows Server 2019 (26631).bes index 2a0025eaa..0b80c8c2c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/UPDATE_ Microsoft .NET Framework 4.8 Available - Windows 7 SP1 _ Windows 8.1 _ Windows 10 _ Windows Server 2008 R2 SP1 _ Windows Server 2012 _ Windows Server 2012 R2 _ Windows Server 2016 _ Windows Server 2019 (26631).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/UPDATE_ Microsoft .NET Framework 4.8 Available - Windows 7 SP1 _ Windows 8.1 _ Windows 10 _ Windows Server 2008 R2 SP1 _ Windows Server 2012 _ Windows Server 2012 R2 _ Windows Server 2016 _ Windows Server 2019 (26631).bes @@ -1,86 +1,86 @@ - - - - - UPDATE: Microsoft .NET Framework 4.8 Available - Windows 7 SP1 / Windows 8.1 / Windows 10 / Windows Server 2008 R2 SP1 / Windows Server 2012 / Windows Server 2012 R2 / Windows Server 2016 / Windows Server 2019 - - - - -
-

The Microsoft .NET Framework 4.8 is a highly compatible, in-place update to the Microsoft .NET Framework 4, Microsoft .NET Framework 4.5, Microsoft .NET Framework 4.5.1, Microsoft .NET Framework 4.5.2, Microsoft .NET Framework 4.6, Microsoft .NET Framework 4.6.1, Microsoft .NET Framework 4.6.2, Microsoft .NET Framework 4.7, Microsoft .NET Framework 4.7.1, and Microsoft .NET Framework 4.7.2. The offline package can be used in situations where the web installer cannot be used due to lack of internet connectivity.

After downloading and installing this update, affected computers will no longer be susceptible to this vulnerability.

Important Note: There are known issues associated with the installation of this update. See the Known Issues section of the Knowledge Base Article for more information.

-

Note: Affected computers may report back as 'Pending Restart' once the update has run successfully, but will not report back their final status until the computer has been restarted.

-
-

File Size:

69.3 MB
]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - not ia64 of operating system - (((name of it = "Win7" OR name of it = "Win2008R2") AND service pack major version of it = 1) OR (((name of it = "Win8.1" OR name of it = "Win8" AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.3") OR name of it = "Win2012" OR name of it = "Win2012R2") AND service pack major version of it = 0) OR (name of it = "Win10" OR (it starts with "Win" AND it does not start with "Win20") of name of it AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) OR ((((it starts with "Win20" or it = "Win2016" or it = "Win2019") of name of it AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) AND service pack major version of it = 0))) of operating system - - if (name of it = "Win8.1" OR name of it = "Win8" AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.3") of operating system then exists key ("Package_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14"; "Package_for_KB2919355~31bf3856ad364e35~x86~~6.3.1.14") whose (112 = value "CurrentState" of it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry else true - if ((exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10 of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) then ((it as integer = 1607 OR it as integer = 1703 OR it as integer = 1709 OR it as integer = 1803 OR it as integer = 1809) of value "ReleaseId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) else true - Update - Microsoft - 2018-04-18 - Unspecified - Unspecified - - x-fixlet-first-propagation - Thu, 14 Jun 2018 06:43:49 +0000 - - - x-fixlet-operating-system - Windows 7 SP1 |~| Windows 8 Gold |~| Windows 8.1 Gold |~| Windows Server 2008 R2 SP1 |~| Windows Server 2008 SP2 |~| Windows Server 2012 Gold |~| Windows Server 2012 R2 Gold |~| Windows Vista SP2 (x64) - - - no-relevance-health-check - false - - - x-fixlet-product-family - Windows - - - x-fixlet-component - .NET Framework - - - x-fixlet-product - Win8.1|Win2012|Win2012R2|Win2008R2|Win8|Win7|WinVista|Win2008 - - - x-fixlet-modification-time - Fri, 14 Jun 2019 18:04:11 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - prefetch ndp48-x86-x64-allos-enu.exe sha1:0d425249d42a01e7ab3ac243152fa7773c43f0bf size:72721568 https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe sha256:95889D6DE3F2070C07790AD6CF2000D33D9A1BDFC6A381725AB82AB1C314FD53 - -waithidden __Download\ndp48-x86-x64-allos-enu.exe /quiet /norestart - -action may require restart "0d425249d42a01e7ab3ac243152fa7773c43f0bf" - - - - - Click - here - to see the Knowledge Base Article for this update. - - https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8 - -
-
+ + + + + UPDATE: Microsoft .NET Framework 4.8 Available - Windows 7 SP1 / Windows 8.1 / Windows 10 / Windows Server 2008 R2 SP1 / Windows Server 2012 / Windows Server 2012 R2 / Windows Server 2016 / Windows Server 2019 + + + + +
+

The Microsoft .NET Framework 4.8 is a highly compatible, in-place update to the Microsoft .NET Framework 4, Microsoft .NET Framework 4.5, Microsoft .NET Framework 4.5.1, Microsoft .NET Framework 4.5.2, Microsoft .NET Framework 4.6, Microsoft .NET Framework 4.6.1, Microsoft .NET Framework 4.6.2, Microsoft .NET Framework 4.7, Microsoft .NET Framework 4.7.1, and Microsoft .NET Framework 4.7.2. The offline package can be used in situations where the web installer cannot be used due to lack of internet connectivity.

After downloading and installing this update, affected computers will no longer be susceptible to this vulnerability.

Important Note: There are known issues associated with the installation of this update. See the Known Issues section of the Knowledge Base Article for more information.

+

Note: Affected computers may report back as 'Pending Restart' once the update has run successfully, but will not report back their final status until the computer has been restarted.

+
+

File Size:

69.3 MB
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + not ia64 of operating system + (((name of it = "Win7" OR name of it = "Win2008R2") AND service pack major version of it = 1) OR (((name of it = "Win8.1" OR name of it = "Win8" AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.3") OR name of it = "Win2012" OR name of it = "Win2012R2") AND service pack major version of it = 0) OR (name of it = "Win10" OR (it starts with "Win" AND it does not start with "Win20") of name of it AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) OR ((((it starts with "Win20" or it = "Win2016" or it = "Win2019") of name of it AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) AND service pack major version of it = 0))) of operating system + + if (name of it = "Win8.1" OR name of it = "Win8" AND value "CurrentVersion" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry as string is "6.3") of operating system then exists key ("Package_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14"; "Package_for_KB2919355~31bf3856ad364e35~x86~~6.3.1.14") whose (112 = value "CurrentState" of it as integer) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" of native registry else true + if ((exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10 of it) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) then ((it as integer = 1607 OR it as integer = 1703 OR it as integer = 1709 OR it as integer = 1803 OR it as integer = 1809) of value "ReleaseId" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry) else true + Update + Microsoft + 2018-04-18 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 14 Jun 2018 06:43:49 +0000 + + + x-fixlet-operating-system + Windows 7 SP1 |~| Windows 8 Gold |~| Windows 8.1 Gold |~| Windows Server 2008 R2 SP1 |~| Windows Server 2008 SP2 |~| Windows Server 2012 Gold |~| Windows Server 2012 R2 Gold |~| Windows Vista SP2 (x64) + + + no-relevance-health-check + false + + + x-fixlet-product-family + Windows + + + x-fixlet-component + .NET Framework + + + x-fixlet-product + Win8.1|Win2012|Win2012R2|Win2008R2|Win8|Win7|WinVista|Win2008 + + + x-fixlet-modification-time + Fri, 14 Jun 2019 18:04:11 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch ndp48-x86-x64-allos-enu.exe sha1:0d425249d42a01e7ab3ac243152fa7773c43f0bf size:72721568 https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe sha256:95889D6DE3F2070C07790AD6CF2000D33D9A1BDFC6A381725AB82AB1C314FD53 + +waithidden __Download\ndp48-x86-x64-allos-enu.exe /quiet /norestart + +action may require restart "0d425249d42a01e7ab3ac243152fa7773c43f0bf" + + + + + Click + here + to see the Knowledge Base Article for this update. + + https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/UnSet Service tzautoupdate triggers (Trigger Start) - Windows (24614).bes b/Sites/Windows Management/Fixlets/Fixlets/UnSet Service tzautoupdate triggers (Trigger Start) - Windows (24614).bes index dcd848246..375ca731a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/UnSet Service tzautoupdate triggers (Trigger Start) - Windows (24614).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/UnSet Service tzautoupdate triggers (Trigger Start) - Windows (24614).bes @@ -1,47 +1,47 @@ - - - - - UnSet Service tzautoupdate triggers (Trigger Start) - Windows - WARNING: This is a bad idea to do to a service without understanding the consequences!!!  You probably shouldn't do this!

-

 

]]>
- windows of operating system - exists services "tzautoupdate" - exists keys whose(name of it as lowercase = "tzautoupdate" as lowercase AND exists keys "TriggerInfo" whose(exists keys of it) of it AND not exists values "Start" whose(it as integer = 4) of it) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" of registries - Internal - 2017-08-04 - - x-fixlet-modification-time - Thu, 10 Aug 2017 04:13:32 +0000 - - BESC - - - Click - here - to deploy this action. - - -waithidden cmd /C sc triggerinfo tzautoupdate delete - -// References: -// - https://technet.microsoft.com/en-us/library/cc990290 -// - https://developer.bigfix.com/relevance/reference/service.html -// - https://serverfault.com/questions/599099/windows-service-trigger-start-difference-manual-vs-automatic -// - https://www.tenforums.com/general-support/7464-difference-between-manual-manual-trigger-start-services.html#post924871 -// - https://bigfix.me/relevance/details/3020300 -// - https://bigfix.me/relevance/details/3020298 -// - https://bigfix.me/relevance/details/3020297 - - -
-
+ + + + + UnSet Service tzautoupdate triggers (Trigger Start) - Windows + WARNING: This is a bad idea to do to a service without understanding the consequences!!!  You probably shouldn't do this!

+

 

]]>
+ windows of operating system + exists services "tzautoupdate" + exists keys whose(name of it as lowercase = "tzautoupdate" as lowercase AND exists keys "TriggerInfo" whose(exists keys of it) of it AND not exists values "Start" whose(it as integer = 4) of it) of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" of registries + Internal + 2017-08-04 + + x-fixlet-modification-time + Thu, 10 Aug 2017 04:13:32 +0000 + + BESC + + + Click + here + to deploy this action. + + +waithidden cmd /C sc triggerinfo tzautoupdate delete + +// References: +// - https://technet.microsoft.com/en-us/library/cc990290 +// - https://developer.bigfix.com/relevance/reference/service.html +// - https://serverfault.com/questions/599099/windows-service-trigger-start-difference-manual-vs-automatic +// - https://www.tenforums.com/general-support/7464-difference-between-manual-manual-trigger-start-services.html#post924871 +// - https://bigfix.me/relevance/details/3020300 +// - https://bigfix.me/relevance/details/3020298 +// - https://bigfix.me/relevance/details/3020297 + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Uninstall_ Internet-Explorer 11 (Windows 64BIT) (26938).bes b/Sites/Windows Management/Fixlets/Fixlets/Uninstall_ Internet-Explorer 11 (Windows 64BIT) (26938).bes index 57f3ba57d..29d46ea0d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Uninstall_ Internet-Explorer 11 (Windows 64BIT) (26938).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Uninstall_ Internet-Explorer 11 (Windows 64BIT) (26938).bes @@ -1,83 +1,83 @@ - - - - - Uninstall: Internet-Explorer 11 (Windows 64BIT) - UniInstall Internet explorer 11 via the DISM tool.  This action will be relevant on Windows OS's that have Internet Explorer 11 installed

]]>
- name of operating systems as lowercase starts with "win" - exists regapp "iexplore.exe" and product version of regapp "iexplore.exe" as string starts with "11." - Uninstall - AVP-Jeff Schafer - 2022-07-13 - CRITICAL - - bigfixme-added-time - Wed, 26 Dec 2012 15:35:15 GMT - - - bigfixme-modification-time - Wed, 26 Dec 2012 15:35:15 GMT - - - bigfixme-keywords - Uninstall Feature Internet Explorer Optional - - - bigfixme-ID - 1048 - - - x-fixlet-modification-time - Wed, 13 Jul 2022 22:18:48 +0000 - - SYST - - - Click - here - to&nbsp;remove IE 11 on targeted systems with no forced reboot (Note: Reboot will be required to complete) - - action uses wow64 redirection {not x64 of operating system} -delete __appendfile -appendfile "{pathname of system folder}\dism.exe" /online /NoRestart /Remove-Capability /CapabilityName:Browser.InternetExplorer~~~~0.0.11.0 /quiet -delete __Download\remove_ie_11.bat -move __appendfile __Download\remove_ie_11.bat -waithidden __Download\remove_ie_11.bat -action requires restart - - - - - - Click - here - to&nbsp;&nbsp;remove IE 11 on targeted system with immediate foreced reboot (Warning). - - action uses wow64 redirection {not x64 of operating system} -delete __appendfile -appendfile "{pathname of system folder}\dism.exe" /online /Remove-Capability /CapabilityName:Browser.InternetExplorer~~~~0.0.11.0 /quiet -delete __Download\remove_ie_11.bat -move __appendfile __Download\remove_ie_11.bat -waithidden __Download\remove_ie_11.bat -action requires restart - - - - Click - here - to review Microsoft website on how to disable IE 11 - - https://docs.microsoft.com/en-us/troubleshoot/developer/browsers/installation/disable-internet-explorer-windows - - -
-
+ + + + + Uninstall: Internet-Explorer 11 (Windows 64BIT) + UniInstall Internet explorer 11 via the DISM tool.  This action will be relevant on Windows OS's that have Internet Explorer 11 installed

]]>
+ name of operating systems as lowercase starts with "win" + exists regapp "iexplore.exe" and product version of regapp "iexplore.exe" as string starts with "11." + Uninstall + AVP-Jeff Schafer + 2022-07-13 + CRITICAL + + bigfixme-added-time + Wed, 26 Dec 2012 15:35:15 GMT + + + bigfixme-modification-time + Wed, 26 Dec 2012 15:35:15 GMT + + + bigfixme-keywords + Uninstall Feature Internet Explorer Optional + + + bigfixme-ID + 1048 + + + x-fixlet-modification-time + Wed, 13 Jul 2022 22:18:48 +0000 + + SYST + + + Click + here + to&nbsp;remove IE 11 on targeted systems with no forced reboot (Note: Reboot will be required to complete) + + action uses wow64 redirection {not x64 of operating system} +delete __appendfile +appendfile "{pathname of system folder}\dism.exe" /online /NoRestart /Remove-Capability /CapabilityName:Browser.InternetExplorer~~~~0.0.11.0 /quiet +delete __Download\remove_ie_11.bat +move __appendfile __Download\remove_ie_11.bat +waithidden __Download\remove_ie_11.bat +action requires restart + + + + + + Click + here + to&nbsp;&nbsp;remove IE 11 on targeted system with immediate foreced reboot (Warning). + + action uses wow64 redirection {not x64 of operating system} +delete __appendfile +appendfile "{pathname of system folder}\dism.exe" /online /Remove-Capability /CapabilityName:Browser.InternetExplorer~~~~0.0.11.0 /quiet +delete __Download\remove_ie_11.bat +move __appendfile __Download\remove_ie_11.bat +waithidden __Download\remove_ie_11.bat +action requires restart + + + + Click + here + to review Microsoft website on how to disable IE 11 + + https://docs.microsoft.com/en-us/troubleshoot/developer/browsers/installation/disable-internet-explorer-windows + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Unjoin Domain on Windows Computer - wmic (26948).bes b/Sites/Windows Management/Fixlets/Fixlets/Unjoin Domain on Windows Computer - wmic (26948).bes index c43ef4b1d..1c5802364 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Unjoin Domain on Windows Computer - wmic (26948).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Unjoin Domain on Windows Computer - wmic (26948).bes @@ -1,37 +1,37 @@ - - - - - Unjoin Domain on Windows Computer - wmic - - windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - exists netbios domainnames of local computers of active directories - Internal - 2019-05-20 - - x-fixlet-modification-time - Fri, 04 Oct 2019 17:39:01 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection false -waithidden wmic.exe computersystem where name!=null call unjoindomainorworkgroup -action requires restart RenameComputer - - - + + + + + Unjoin Domain on Windows Computer - wmic + + windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + exists netbios domainnames of local computers of active directories + Internal + 2019-05-20 + + x-fixlet-modification-time + Fri, 04 Oct 2019 17:39:01 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection false +waithidden wmic.exe computersystem where name!=null call unjoindomainorworkgroup +action requires restart RenameComputer + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Unmount PST Files from Outlook (26642).bes b/Sites/Windows Management/Fixlets/Fixlets/Unmount PST Files from Outlook (26642).bes index 79693d8a4..12eb3cd06 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Unmount PST Files from Outlook (26642).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Unmount PST Files from Outlook (26642).bes @@ -1,134 +1,134 @@ - - - - - Unmount PST Files from Outlook - Unmount PST files from Outlook for Current User and close Outlook to unlock the file - windows of operating system - "15.0.0.0") AND (version of regapp "outlook.exe" < "16.0.0.0")) then (if exists (names of values of key "Software\Microsoft\Office\15.0\Outlook\Search\Catalog" of keys of key "HKEY_USERS" of registry) whose (it as string contains ".pst") then true else false) else false) else false) OR (if exists regapp "outlook.exe" then (if version of regapp "outlook.exe" > "16.0.0.0" then (if exists (names of values of key "Software\Microsoft\Office\16.0\Outlook\Search\Catalog" of keys of key "HKEY_USERS" of registry) whose (it as string contains ".pst") then true else false) else false) else false) OR (if exists regapp "outlook.exe" then (if version of regapp "outlook.exe" = "10" then (if exists values whose (it as string contains ".pst") of keys of keys of keys "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" of keys of keys "HKEY_USERS" of registry then true else false) else false) else false)]]> - Internal - 2019-08-20 - - x-fixlet-modification-time - Fri, 23 Aug 2019 19:47:09 +0000 - - BESC - - - Click - here - to Unmount using PowerShell - - - - - - - Click - here - to Unmount using VBScript - - - - - - + + + + + Unmount PST Files from Outlook + Unmount PST files from Outlook for Current User and close Outlook to unlock the file + windows of operating system + "15.0.0.0") AND (version of regapp "outlook.exe" < "16.0.0.0")) then (if exists (names of values of key "Software\Microsoft\Office\15.0\Outlook\Search\Catalog" of keys of key "HKEY_USERS" of registry) whose (it as string contains ".pst") then true else false) else false) else false) OR (if exists regapp "outlook.exe" then (if version of regapp "outlook.exe" > "16.0.0.0" then (if exists (names of values of key "Software\Microsoft\Office\16.0\Outlook\Search\Catalog" of keys of key "HKEY_USERS" of registry) whose (it as string contains ".pst") then true else false) else false) else false) OR (if exists regapp "outlook.exe" then (if version of regapp "outlook.exe" = "10" then (if exists values whose (it as string contains ".pst") of keys of keys of keys "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" of keys of keys "HKEY_USERS" of registry then true else false) else false) else false)]]> + Internal + 2019-08-20 + + x-fixlet-modification-time + Fri, 23 Aug 2019 19:47:09 +0000 + + BESC + + + Click + here + to Unmount using PowerShell + + + + + + + Click + here + to Unmount using VBScript + + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows (24602).bes b/Sites/Windows Management/Fixlets/Fixlets/Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows (24602).bes index ef3aaa381..0bd3f21ac 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows (24602).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows (24602).bes @@ -1,48 +1,48 @@ - - - - - Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows - - x64 of operating system - windows of operating system - "6.3.9200") of operating systems]]> - - Internal - jgstew - 2017-07-19 - - x-fixlet-modification-time - Wed, 19 Jul 2017 19:18:02 +0000 - - BESC - - - Click - here - to deploy this action. - - -// https://www.microsoft.com/en-us/wdsi/definitions -prefetch mpam-fe.exe sha1:d118361ac364a7dd8e78062228f513f22adac505 size:131255056 https://definitionupdates.microsoft.com/download/DefinitionUpdates/VersionedSignatures/AM/1.247.1082.0/amd64/mpam-fe.exe sha256:d9fd34cc92f00d0ae4d0905656dce783c4bc271970bac8608c834f973179863c - -wait __Download\mpam-fe.exe /q - -// References: -// - http://www.itninja.com/link/install-the-latest-microsoft-security-essentials-definition-updates-get-the-latest-definitions-microsoft-malware-protection-center -// - https://bigfix.me/analysis/details/2994634 -// - https://bigfix.me/analysis/details/2998358 -// - https://bigfix.me/analysis/details/2996952 -// - https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx - - - + + + + + Update Windows Defender Virus Definitions - v1.247.1082.0 - 64bit - Windows + + x64 of operating system + windows of operating system + "6.3.9200") of operating systems]]> + + Internal + jgstew + 2017-07-19 + + x-fixlet-modification-time + Wed, 19 Jul 2017 19:18:02 +0000 + + BESC + + + Click + here + to deploy this action. + + +// https://www.microsoft.com/en-us/wdsi/definitions +prefetch mpam-fe.exe sha1:d118361ac364a7dd8e78062228f513f22adac505 size:131255056 https://definitionupdates.microsoft.com/download/DefinitionUpdates/VersionedSignatures/AM/1.247.1082.0/amd64/mpam-fe.exe sha256:d9fd34cc92f00d0ae4d0905656dce783c4bc271970bac8608c834f973179863c + +wait __Download\mpam-fe.exe /q + +// References: +// - http://www.itninja.com/link/install-the-latest-microsoft-security-essentials-definition-updates-get-the-latest-definitions-microsoft-malware-protection-center +// - https://bigfix.me/analysis/details/2994634 +// - https://bigfix.me/analysis/details/2998358 +// - https://bigfix.me/analysis/details/2996952 +// - https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Update Windows Experience Index - WinSAT (6045).bes b/Sites/Windows Management/Fixlets/Fixlets/Update Windows Experience Index - WinSAT (6045).bes index 260a4b4a0..e5cb8a62a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Update Windows Experience Index - WinSAT (6045).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Update Windows Experience Index - WinSAT (6045).bes @@ -1,46 +1,46 @@ - - - - - Update Windows Experience Index - WinSAT - - windows of operating system - = "6.0"/* Windows Vista or later */]]> - exists name whose(it does not contain "Win2008" AND it does not contain "Win2012") of operating system/* Exclude Windows Server */ - /* This does not need to run on virtual machines */ "Physical" = /* The following is from the Physical/Virtual Computer Type Analysis - Improved */ (if (mac of operating system) then /* the Mac BES client does not currently support the smbios inspector. This needs refinement, but for now just assuming apple devices are physical since virtualiztion of OS X is relatively rare */ "Physical" else (if ((it contains "VMware" or (it contains "Microsoft" AND /* This check is needed to exclude Microsoft Surface devices */ ((value "product_name" of structure "system_information" of smbios) as string contains "Virtual Machine")) or it contains "Xen" or /* This check is needed to properly identify Parallels VMs as virtual instead of physical */ it contains "Parallels Software") of (value "manufacturer" of structure "system_information" of smbios as string)) then "Virtual" else "Physical")) - - Internal - jgs194 - 2013-08-22 - - x-fixlet-modification-time - Fri, 15 Nov 2013 19:51:53 +0000 - - BESC - - - Click - here - to deploy this action. - - // http://technet.microsoft.com/en-us/library/cc742136.aspx -// http://blogs.technet.com/b/mniehaus/archive/2009/08/26/prepopulating-windows-experience-index-wei-a-k-a-winsat-numbers-in-windows-7.aspx - -parameter "iNumResultsBefore" = "{((it as string) of number of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment") of folder "Performance\WinSAT\DataStore" of windows folder)}" - -//waithidden cmd /c winsat prepop -waithidden cmd /c winsat formal -restart - - - - - + + + + + Update Windows Experience Index - WinSAT + + windows of operating system + = "6.0"/* Windows Vista or later */]]> + exists name whose(it does not contain "Win2008" AND it does not contain "Win2012") of operating system/* Exclude Windows Server */ + /* This does not need to run on virtual machines */ "Physical" = /* The following is from the Physical/Virtual Computer Type Analysis - Improved */ (if (mac of operating system) then /* the Mac BES client does not currently support the smbios inspector. This needs refinement, but for now just assuming apple devices are physical since virtualiztion of OS X is relatively rare */ "Physical" else (if ((it contains "VMware" or (it contains "Microsoft" AND /* This check is needed to exclude Microsoft Surface devices */ ((value "product_name" of structure "system_information" of smbios) as string contains "Virtual Machine")) or it contains "Xen" or /* This check is needed to properly identify Parallels VMs as virtual instead of physical */ it contains "Parallels Software") of (value "manufacturer" of structure "system_information" of smbios as string)) then "Virtual" else "Physical")) + + Internal + jgs194 + 2013-08-22 + + x-fixlet-modification-time + Fri, 15 Nov 2013 19:51:53 +0000 + + BESC + + + Click + here + to deploy this action. + + // http://technet.microsoft.com/en-us/library/cc742136.aspx +// http://blogs.technet.com/b/mniehaus/archive/2009/08/26/prepopulating-windows-experience-index-wei-a-k-a-winsat-numbers-in-windows-7.aspx + +parameter "iNumResultsBefore" = "{((it as string) of number of files whose(name of it ends with ".WinSAT.xml" AND name of it contains "Assessment") of folder "Performance\WinSAT\DataStore" of windows folder)}" + +//waithidden cmd /c winsat prepop +waithidden cmd /c winsat formal -restart + + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Upload DISM.txt (1049).bes b/Sites/Windows Management/Fixlets/Fixlets/Upload DISM.txt (1049).bes index 1f43e3805..9fc9f3597 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Upload DISM.txt (1049).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Upload DISM.txt (1049).bes @@ -1,52 +1,52 @@ - - - - - Upload DISM.txt - http://bigfix.me/features/import database. -

Source: http://bigfix.me/features/

]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - exists file "DISM.txt" of parent folder of client - Upload - danielheth@bigfix.me - <Unspecified> - 2012-10-02 - <Unspecified> - - x-fixlet-modification-time - Wed, 26 Dec 2012 21:34:45 +0000 - - BESC - - - Click - here - to upload the DISM.txt file. - - parameter "current_time"="{(now - "01 Jan 1970 00:00:00" as local time)/second}" -// set max size to 20 MB to prevent too much data -setting "_BESClient_ArchiveManager_MaxArchiveSize"="20971520" on "{parameter "action issue date" of action}" for client -setting "_BESClient_ArchiveManager_OperatingMode"="2" on "{parameter "action issue date" of action}" for client -setting "_BESClient_ArchiveManager_FileSet-DISM{parameter "current_time"}"="{pathname of parent folder of client}\DISM.txt" on "{parameter "action issue date" of action}" for client -// send results -archive now - - - - Click - here - to learn more and download the latest versions of Feature Installer tasks. - - http://bigfix.me/features/ - -
-
+ + + + + Upload DISM.txt + http://bigfix.me/features/import database. +

Source: http://bigfix.me/features/

]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + exists file "DISM.txt" of parent folder of client + Upload + danielheth@bigfix.me + <Unspecified> + 2012-10-02 + <Unspecified> + + x-fixlet-modification-time + Wed, 26 Dec 2012 21:34:45 +0000 + + BESC + + + Click + here + to upload the DISM.txt file. + + parameter "current_time"="{(now - "01 Jan 1970 00:00:00" as local time)/second}" +// set max size to 20 MB to prevent too much data +setting "_BESClient_ArchiveManager_MaxArchiveSize"="20971520" on "{parameter "action issue date" of action}" for client +setting "_BESClient_ArchiveManager_OperatingMode"="2" on "{parameter "action issue date" of action}" for client +setting "_BESClient_ArchiveManager_FileSet-DISM{parameter "current_time"}"="{pathname of parent folder of client}\DISM.txt" on "{parameter "action issue date" of action}" for client +// send results +archive now + + + + Click + here + to learn more and download the latest versions of Feature Installer tasks. + + http://bigfix.me/features/ + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4013).bes b/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4013).bes index 67fcc11fd..c611bb996 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4013).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4013).bes @@ -1,77 +1,77 @@ - - - - - WARNING: Possible Memory Leak in ITM OS Client - - - -The listed computers have ITM OS Agents with high memory usage. This may indicate a possible memory leak. This fixlet message is triggered when the ITM OS Windows agent is using more than 150 MB of memory. The recommended action is to restart the ITM OS Agent in order to free memory. -

Revision History

-
    -
  • 31/03/2015 - zanesand - Initial Creation
]]>
- name of operating system starts with "Win" - = "8.0"]]> - 200 OR (ia64 of operating system AND ((page file usage of it) / (1024*1024)) > 300) OR ((page file usage of it) > size of ram / 2)))]]> - Support - BigFix.me - <Unspecified> - 2015-03-31 - Important - - bigfixme-added-time - Wed, 17 Oct 2012 13:14:46 GMT - - - bigfixme-modification-time - Wed, 17 Oct 2012 13:14:46 GMT - - - x-fixlet-first-propagation - Thu, 03 Feb 2011 17:36:14 +0000 - - - x-fixlet-domain_attributes - BES Warn Important - - - bigfixme-keywords - BES Client TABLE TBODY memory - - - x-fixlet-modification-time - Tue, 31 Mar 2015 22:53:48 +0000 - - BESC - - - Click - here - to restart the ITM OS Agent. - - delete __appendfile -appendfile net stop KNTCMA_Primary -appendfile net start KNTCMA_Primary -delete agentRestart.bat -copy __appendfile agentRestart.bat -runhidden agentRestart.bat - - - - Click - here - to review this task in the bigfix.me Content Database. - - http://bigfix.me/cdb/fixlet/306 - -
-
+ + + + + WARNING: Possible Memory Leak in ITM OS Client + + + +The listed computers have ITM OS Agents with high memory usage. This may indicate a possible memory leak. This fixlet message is triggered when the ITM OS Windows agent is using more than 150 MB of memory. The recommended action is to restart the ITM OS Agent in order to free memory. +

Revision History

+
    +
  • 31/03/2015 - zanesand - Initial Creation
]]>
+ name of operating system starts with "Win" + = "8.0"]]> + 200 OR (ia64 of operating system AND ((page file usage of it) / (1024*1024)) > 300) OR ((page file usage of it) > size of ram / 2)))]]> + Support + BigFix.me + <Unspecified> + 2015-03-31 + Important + + bigfixme-added-time + Wed, 17 Oct 2012 13:14:46 GMT + + + bigfixme-modification-time + Wed, 17 Oct 2012 13:14:46 GMT + + + x-fixlet-first-propagation + Thu, 03 Feb 2011 17:36:14 +0000 + + + x-fixlet-domain_attributes + BES Warn Important + + + bigfixme-keywords + BES Client TABLE TBODY memory + + + x-fixlet-modification-time + Tue, 31 Mar 2015 22:53:48 +0000 + + BESC + + + Click + here + to restart the ITM OS Agent. + + delete __appendfile +appendfile net stop KNTCMA_Primary +appendfile net start KNTCMA_Primary +delete agentRestart.bat +copy __appendfile agentRestart.bat +runhidden agentRestart.bat + + + + Click + here + to review this task in the bigfix.me Content Database. + + http://bigfix.me/cdb/fixlet/306 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4014).bes b/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4014).bes index 69bf02495..b306084cf 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4014).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/WARNING_ Possible Memory Leak in ITM OS Client (4014).bes @@ -1,49 +1,49 @@ - - - - - WARNING: Possible Memory Leak in ITM OS Client - - - -The listed computers have ITM OS Agents with high memory usage. This may indicate a possible memory leak. This fixlet message is triggered when the ITM OS Windows agent (kntcma.exe) is using more than 150 MB of memory. The recommended action is to restart the ITM OS Agent in order to free memory. -

Revision History

-
    -
  • 31/03/2015 - zanesand - Initial Creation
]]>
- name of operating system starts with "Win" - = "8.0"]]> - 200 OR (ia64 of operating system AND ((page file usage of it) / (1024*1024)) > 300) OR ((page file usage of it) > size of ram / 2)))]]> - Support - SMI - <Unspecified> - 2015-04-01 - Important - - x-fixlet-modification-time - Wed, 01 Apr 2015 03:27:47 +0000 - - BESC - - - Click - here - to restart the ITM OS Agent - - delete __appendfile -appendfile net stop KNTCMA_Primary -appendfile net start KNTCMA_Primary -delete agentRestart.bat -copy __appendfile agentRestart.bat -runhidden agentRestart.bat - -
-
+ + + + + WARNING: Possible Memory Leak in ITM OS Client + + + +The listed computers have ITM OS Agents with high memory usage. This may indicate a possible memory leak. This fixlet message is triggered when the ITM OS Windows agent (kntcma.exe) is using more than 150 MB of memory. The recommended action is to restart the ITM OS Agent in order to free memory. +

Revision History

+
    +
  • 31/03/2015 - zanesand - Initial Creation
]]>
+ name of operating system starts with "Win" + = "8.0"]]> + 200 OR (ia64 of operating system AND ((page file usage of it) / (1024*1024)) > 300) OR ((page file usage of it) > size of ram / 2)))]]> + Support + SMI + <Unspecified> + 2015-04-01 + Important + + x-fixlet-modification-time + Wed, 01 Apr 2015 03:27:47 +0000 + + BESC + + + Click + here + to restart the ITM OS Agent + + delete __appendfile +appendfile net stop KNTCMA_Primary +appendfile net start KNTCMA_Primary +delete agentRestart.bat +copy __appendfile agentRestart.bat +runhidden agentRestart.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/WUAUSERV Enable (21611).bes b/Sites/Windows Management/Fixlets/Fixlets/WUAUSERV Enable (21611).bes index 09a783d33..a5b66d215 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/WUAUSERV Enable (21611).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/WUAUSERV Enable (21611).bes @@ -1,34 +1,34 @@ - - - - - WUAUSERV Enable - This will change the wuauserv service to a manual/demand state - windows of operating system - value "Start" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv" of native registry as string = "4" - Internal - 2016-09-13 - - x-fixlet-modification-time - Tue, 13 Sep 2016 21:33:58 +0000 - - BESC - - - Click - here - to deploy this action. - - regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wuauserv]" "Start"=dword:00000003 - - - + + + + + WUAUSERV Enable + This will change the wuauserv service to a manual/demand state + windows of operating system + value "Start" of keys "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv" of native registry as string = "4" + Internal + 2016-09-13 + + x-fixlet-modification-time + Tue, 13 Sep 2016 21:33:58 +0000 + + BESC + + + Click + here + to deploy this action. + + regset "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wuauserv]" "Start"=dword:00000003 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Application Identity service may not be running (22654).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Application Identity service may not be running (22654).bes index 97390644e..c5ebb8090 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Application Identity service may not be running (22654).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Application Identity service may not be running (22654).bes @@ -1,40 +1,40 @@ - - - - - Warning - Applocker Application Identity service may not be running - This fixlet will be applicable on machines that do not have the application identity service running.

-

The Application Identity Service is required for Applocker to work.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - NOT in proxy agent context - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - state of service "AppIDSvc" != "Running" - Application Whitelisting - Internal - 2016-04-19 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - wait sc config AppIDSvc start= auto -wait net start AppIDSvc - -
-
+ + + + + Warning - Applocker Application Identity service may not be running + This fixlet will be applicable on machines that do not have the application identity service running.

+

The Application Identity Service is required for Applocker to work.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + NOT in proxy agent context + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + state of service "AppIDSvc" != "Running" + Application Whitelisting + Internal + 2016-04-19 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + wait sc config AppIDSvc start= auto +wait net start AppIDSvc + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but AppIDSvc is stopped - Windows (22655).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but AppIDSvc is stopped - Windows (22655).bes index 15b05e98d..58fd7e6fd 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but AppIDSvc is stopped - Windows (22655).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but AppIDSvc is stopped - Windows (22655).bes @@ -1,36 +1,36 @@ - - - - - Warning - Applocker Rules exist but AppIDSvc is stopped - Windows - There are Applocker rules defined but the AppIDSvc is stopped! This means rules may be ENFORCED.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- state of service "AppIDSvc" != "Running" - exists keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry - Internal - 2016-05-17 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - wait sc config AppIDSvc start= auto -wait net start AppIDSvc - -
-
+ + + + + Warning - Applocker Rules exist but AppIDSvc is stopped - Windows + There are Applocker rules defined but the AppIDSvc is stopped! This means rules may be ENFORCED.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ state of service "AppIDSvc" != "Running" + exists keys of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + Internal + 2016-05-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + wait sc config AppIDSvc start= auto +wait net start AppIDSvc + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows (20664).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows (20664).bes index bf05db9ef..6196bd5ec 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows (20664).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows (20664).bes @@ -1,27 +1,27 @@ - - - - - Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows - There are Applocker rules defined but no Enforcement mode is set! This means the rule are ENFORCED.

-

https://technet.microsoft.com/en-us/library/dd759115(v=ws.11).aspx

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- exists keys whose (exists keys of it and not exists value "EnforcementMode" of it) of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry - Internal - 2016-05-17 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC -
-
+ + + + + Warning - Applocker Rules exist but no Enforcement Mode is Set - Windows + There are Applocker rules defined but no Enforcement mode is set! This means the rule are ENFORCED.

+

https://technet.microsoft.com/en-us/library/dd759115(v=ws.11).aspx

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ exists keys whose (exists keys of it and not exists value "EnforcementMode" of it) of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + Internal + 2016-05-17 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker cannot run on non-enterprise versions of Windows (20223).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker cannot run on non-enterprise versions of Windows (20223).bes index f5821a8e4..8eb07b977 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker cannot run on non-enterprise versions of Windows (20223).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker cannot run on non-enterprise versions of Windows (20223).bes @@ -1,28 +1,28 @@ - - - - - Warning - Applocker cannot run on non-enterprise versions of Windows - This fixlet is relevant on Windows computers that cannot run AppLocker because it is not supported by the edition or version of the Operating System. - windows of operating system - NOT in proxy agent context - (product info string of operating system does not contain "Enterprise" and product info string of operating system does not contain "Server") - Application Whitelisting - Internal - 2016-04-19 - - x-fixlet-modification-time - Tue, 19 Apr 2016 19:00:51 +0000 - - BESC - - + + + + + Warning - Applocker cannot run on non-enterprise versions of Windows + This fixlet is relevant on Windows computers that cannot run AppLocker because it is not supported by the edition or version of the Operating System. + windows of operating system + NOT in proxy agent context + (product info string of operating system does not contain "Enterprise" and product info string of operating system does not contain "Server") + Application Whitelisting + Internal + 2016-04-19 + + x-fixlet-modification-time + Tue, 19 Apr 2016 19:00:51 +0000 + + BESC + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker maximum event log size may be too small (20583).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker maximum event log size may be too small (20583).bes index ad3adce45..d8ae03d98 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker maximum event log size may be too small (20583).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Applocker maximum event log size may be too small (20583).bes @@ -1,31 +1,31 @@ - - - - - Warning - Applocker maximum event log size may be too small - The Applocker logs on the system are at their default values or set to a value less than 20 Megabytes

-

Consider increasing the applocker log sizes to store more log data regarding Applocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - (product info string of operating system = "Enterprise" or product info string of operating system = "Server") - exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry - - Application Whitelisting - Internal - 2016-04-19 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC -
-
+ + + + + Warning - Applocker maximum event log size may be too small + The Applocker logs on the system are at their default values or set to a value less than 20 Megabytes

+

Consider increasing the applocker log sizes to store more log data regarding Applocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + (product info string of operating system = "Enterprise" or product info string of operating system = "Server") + exists key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2" of native registry + + Application Whitelisting + Internal + 2016-04-19 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows (20584).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows (20584).bes index 3e01057ac..8b2fe986f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows (20584).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows (20584).bes @@ -1,31 +1,31 @@ - - - - - Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows - This fixlet is relevant on machines where BigFix is storing current or previous BitLocker Recovery keys on an unencrypted drive.

-

This occurs can occur if the BigFix Client is stored on a drive other than the system drive but only the system drive is encrypted.

-

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - - exists (files whose (Name of it contains "RecoveryPwd") of folder "BitLocker" of folder "__Global" of data folder of client) - Disk Encryption - Internal - 2016-04-30 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC -
-
+ + + + + Warning - Bitlocker Recovery Keys stored on Unencrypted Drive - Windows + This fixlet is relevant on machines where BigFix is storing current or previous BitLocker Recovery keys on an unencrypted drive.

+

This occurs can occur if the BigFix Client is stored on a drive other than the system drive but only the system drive is encrypted.

+

Information on using this content is available here: https://github.com/strawgate/C3-Protect/wiki/Bitlocker

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + + exists (files whose (Name of it contains "RecoveryPwd") of folder "BitLocker" of folder "__Global" of data folder of client) + Disk Encryption + Internal + 2016-04-30 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - CBS Log files are too large to compress - Windows (23431).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - CBS Log files are too large to compress - Windows (23431).bes index 5b8af3e51..35a7bed50 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - CBS Log files are too large to compress - Windows (23431).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - CBS Log files are too large to compress - Windows (23431).bes @@ -1,56 +1,56 @@ - - - - - Warning - CBS Log files are too large to compress - Windows - This fixlet corrects an issue with the Windows Component-Based Servicing system.

-

The issue originates from the cbs.log file becoming too large to compress into an archive cab causing the files to fill up the Windows Temp directory.

-

This fixlet will remove CBS Log files and any cab files from the Windows Temp Directory.

-

Kudos and Compliments to Jason Walker for his work on the original fixlet here: https://bigfix.me/fixlet/details/11930

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - if exists property "in proxy agent context" then not in proxy agent context else true - = version "6"]]> - 1000) of folders "Logs\CBS" of windows folder]]> - Internal - 2017-02-09 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - 1000) of folders "Logs\CBS" of windows folder} -appendfile {concatenation "%0d%0a" of ("del /q %22" & it & "%22") of pathnames of files whose (name of it as lowercase starts with "cab_" ) of folders "TEMP" of windows folder} -appendfile net start TrustedInstaller - -delete DeleteLog.cmd - -move __appendfile DeleteLog.cmd - -waithidden cmd /c DeleteLog.cmd > {pathname of windows folder}\TEMP\cbscleanup.txt 2>&1 - -pause while {exists files whose (name of it as lowercase starts with "cbspersist" and name of it as lowercase ends with ".log" and size of it / 1024 / 1024 > 2100) of folders "Logs\CBS" of windows folder AND (now - active start time of action) < (2 * minute)} -]]> - -
-
+ + + + + Warning - CBS Log files are too large to compress - Windows + This fixlet corrects an issue with the Windows Component-Based Servicing system.

+

The issue originates from the cbs.log file becoming too large to compress into an archive cab causing the files to fill up the Windows Temp directory.

+

This fixlet will remove CBS Log files and any cab files from the Windows Temp Directory.

+

Kudos and Compliments to Jason Walker for his work on the original fixlet here: https://bigfix.me/fixlet/details/11930

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + if exists property "in proxy agent context" then not in proxy agent context else true + = version "6"]]> + 1000) of folders "Logs\CBS" of windows folder]]> + Internal + 2017-02-09 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + 1000) of folders "Logs\CBS" of windows folder} +appendfile {concatenation "%0d%0a" of ("del /q %22" & it & "%22") of pathnames of files whose (name of it as lowercase starts with "cab_" ) of folders "TEMP" of windows folder} +appendfile net start TrustedInstaller + +delete DeleteLog.cmd + +move __appendfile DeleteLog.cmd + +waithidden cmd /c DeleteLog.cmd > {pathname of windows folder}\TEMP\cbscleanup.txt 2>&1 + +pause while {exists files whose (name of it as lowercase starts with "cbspersist" and name of it as lowercase ends with ".log" and size of it / 1024 / 1024 > 2100) of folders "Logs\CBS" of windows folder AND (now - active start time of action) < (2 * minute)} +]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Control+Alt+Delete Injection may not be allowed (23558).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Control+Alt+Delete Injection may not be allowed (23558).bes index 939c1f778..2fcd8981c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Control+Alt+Delete Injection may not be allowed (23558).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Control+Alt+Delete Injection may not be allowed (23558).bes @@ -1,31 +1,31 @@ - - - - - Warning - Control+Alt+Delete Injection may not be allowed - Control Alt Delete is a Secure Attention Sequence that brings the user to a secure desktop.

-

By design, neither a remote user, nor an application or service can inject the Secure Attention Sequence. This prevents malicious applications from answering questions on the secure desktop or proceeding through winlogon. This potentially impacts remote assistance and other remote help software because it will prevent a remote user from answering a UAC prompt for elevation instead requiring the user to accept on behalf of the remote user.

-

If this fixlet is relevant than Control+Alt+Delete injection is not corrently allowed for remote assistance software. You should enable this via Group Policy under: "Computer Configuration -> Administrative Templates -> Windows Components -> Windows Logon Options" the setting is called, "Disable or enable software Secure Attention Sequence Policy" and should be set to enabled with the dropdown set to "Services"

-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- windows of operating system - = "6.0"]]> - NOT in proxy agent context - (if (it = 0 or it = 2) then (true) else (false)) of ((value "SoftwareSASGeneration" of key "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" of native registry as string as integer) | 0) - Internal - 2016-04-18 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC -
-
+ + + + + Warning - Control+Alt+Delete Injection may not be allowed + Control Alt Delete is a Secure Attention Sequence that brings the user to a secure desktop.

+

By design, neither a remote user, nor an application or service can inject the Secure Attention Sequence. This prevents malicious applications from answering questions on the secure desktop or proceeding through winlogon. This potentially impacts remote assistance and other remote help software because it will prevent a remote user from answering a UAC prompt for elevation instead requiring the user to accept on behalf of the remote user.

+

If this fixlet is relevant than Control+Alt+Delete injection is not corrently allowed for remote assistance software. You should enable this via Group Policy under: "Computer Configuration -> Administrative Templates -> Windows Components -> Windows Logon Options" the setting is called, "Disable or enable software Secure Attention Sequence Policy" and should be set to enabled with the dropdown set to "Services"

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + = "6.0"]]> + NOT in proxy agent context + (if (it = 0 or it = 2) then (true) else (false)) of ((value "SoftwareSASGeneration" of key "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" of native registry as string as integer) | 0) + Internal + 2016-04-18 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Dell_Drivers folder of System Drive - Windows (21631).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Dell_Drivers folder of System Drive - Windows (21631).bes index 0aca870be..298d5b22f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Dell_Drivers folder of System Drive - Windows (21631).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Dell_Drivers folder of System Drive - Windows (21631).bes @@ -1,47 +1,47 @@ - - - - - Warning - Files exist in Dell\Drivers folder of System Drive - Windows - This fixlet will delete any files in the folder System Drive:\Dell\Drivers

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists folder "Drivers" of folder "Dell" of drive of system folder - Disk Cleanup - Internal - 2016-08-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - delete __createfile -delete run.bat - -createfile until _end_ - -rmdir /s /q "{pathname of folder "Drivers" of folder "Dell" of drive of system folder}" - -_end_ - -move __createfile run.bat - -waithidden run.bat - -
-
+ + + + + Warning - Files exist in Dell\Drivers folder of System Drive - Windows + This fixlet will delete any files in the folder System Drive:\Dell\Drivers

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "Drivers" of folder "Dell" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + delete __createfile +delete run.bat + +createfile until _end_ + +rmdir /s /q "{pathname of folder "Drivers" of folder "Dell" of drive of system folder}" + +_end_ + +move __createfile run.bat + +waithidden run.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Drivers folder of System Drive - Windows (21632).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Drivers folder of System Drive - Windows (21632).bes index 3b3ac80ef..9e2fb2130 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Drivers folder of System Drive - Windows (21632).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Drivers folder of System Drive - Windows (21632).bes @@ -1,48 +1,48 @@ - - - - - Warning - Files exist in Drivers folder of System Drive - Windows - This will delete any files in the SystemDrive:\Drivers folder.

-

SystemDrive:\Drivers is typically used by vendor driver installers and various programs. If there is ever a file that is not safe to delete shame on whomever put it here.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists folder "Drivers" of drive of system folder - Disk Cleanup - Internal - 2016-08-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - delete __createfile -delete run.bat - -createfile until _end_ - -rmdir /s /q "{pathname of folder "drivers" of drive of system folder}" - -_end_ - -move __createfile run.bat - -waithidden run.bat - -
-
+ + + + + Warning - Files exist in Drivers folder of System Drive - Windows + This will delete any files in the SystemDrive:\Drivers folder.

+

SystemDrive:\Drivers is typically used by vendor driver installers and various programs. If there is ever a file that is not safe to delete shame on whomever put it here.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "Drivers" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + delete __createfile +delete run.bat + +createfile until _end_ + +rmdir /s /q "{pathname of folder "drivers" of drive of system folder}" + +_end_ + +move __createfile run.bat + +waithidden run.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Logs folder of System Drive - Windows (21633).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Logs folder of System Drive - Windows (21633).bes index 4a4e7636c..f4cc1cadc 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Logs folder of System Drive - Windows (21633).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in Logs folder of System Drive - Windows (21633).bes @@ -1,48 +1,48 @@ - - - - - Warning - Files exist in Logs folder of System Drive - Windows - This will delete any files in the SystemDrive:\Logs folder.

-

SystemDrive:\Logs is typically used by Intel installers and various programs. If there is ever a log that is not safe to delete shame on whomever put it here.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists folder "logs" of drive of system folder - Disk Cleanup - Internal - 2016-08-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - delete __createfile -delete run.bat - -createfile until _end_ - -rmdir /s /q "{pathname of folder "logs" of drive of system folder}" - -_end_ - -move __createfile run.bat - -waithidden run.bat - -
-
+ + + + + Warning - Files exist in Logs folder of System Drive - Windows + This will delete any files in the SystemDrive:\Logs folder.

+

SystemDrive:\Logs is typically used by Intel installers and various programs. If there is ever a log that is not safe to delete shame on whomever put it here.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "logs" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + delete __createfile +delete run.bat + +createfile until _end_ + +rmdir /s /q "{pathname of folder "logs" of drive of system folder}" + +_end_ + +move __createfile run.bat + +waithidden run.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in adobeTemp folder of System Drive - Windows (21634).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in adobeTemp folder of System Drive - Windows (21634).bes index 315dc7ea0..9858a5f4e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in adobeTemp folder of System Drive - Windows (21634).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Files exist in adobeTemp folder of System Drive - Windows (21634).bes @@ -1,48 +1,48 @@ - - - - - Warning - Files exist in adobeTemp folder of System Drive - Windows - This will delete any files in the SystemDrive:\adobeTemp folder.

-

SystemDrive:\adobeTemp is typically used by adobe installers. If there is ever a file that is not safe to delete shame on whomever put it here.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists folder "adobeTemp" of drive of system folder - Disk Cleanup - Internal - 2016-08-25 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - delete __createfile -delete run.bat - -createfile until _end_ - -rmdir /s /q "{pathname of folder "adobeTEmp" of drive of system folder}" - -_end_ - -move __createfile run.bat - -waithidden run.bat - -
-
+ + + + + Warning - Files exist in adobeTemp folder of System Drive - Windows + This will delete any files in the SystemDrive:\adobeTemp folder.

+

SystemDrive:\adobeTemp is typically used by adobe installers. If there is ever a file that is not safe to delete shame on whomever put it here.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "adobeTemp" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + delete __createfile +delete run.bat + +createfile until _end_ + +rmdir /s /q "{pathname of folder "adobeTEmp" of drive of system folder}" + +_end_ + +move __createfile run.bat + +waithidden run.bat + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Folder _Program_ exists in Root of System Drive - Windows (21635).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Folder _Program_ exists in Root of System Drive - Windows (21635).bes index da239d599..e949ffd6c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Folder _Program_ exists in Root of System Drive - Windows (21635).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Folder _Program_ exists in Root of System Drive - Windows (21635).bes @@ -1,50 +1,50 @@ - - - - - Warning - Folder "Program" exists in Root of System Drive - Windows - If there exists a folder called, "Progam" exists in the root of the system drive. Users logging in will receive an error.

-

This Fixlet removes the folder. This fixlet will fail if the folder is not empty.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists folder "Program" of drive of system folder - Disk Cleanup - Internal - 2016-08-25 - Critical - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to remove this folder if it is empty. - - // Enter your action script here - -folder delete "{pathname of folder "Program" of drive of system folder}" - - - - Click - here - to remove this folder regardless of if it is empty. - - // Enter your action script here - -waithidden cmd.exe /c rmdir /s /q "{pathname of folder "Program" of drive of system folder}" - -
-
+ + + + + Warning - Folder "Program" exists in Root of System Drive - Windows + If there exists a folder called, "Progam" exists in the root of the system drive. Users logging in will receive an error.

+

This Fixlet removes the folder. This fixlet will fail if the folder is not empty.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder "Program" of drive of system folder + Disk Cleanup + Internal + 2016-08-25 + Critical + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to remove this folder if it is empty. + + // Enter your action script here + +folder delete "{pathname of folder "Program" of drive of system folder}" + + + + Click + here + to remove this folder regardless of if it is empty. + + // Enter your action script here + +waithidden cmd.exe /c rmdir /s /q "{pathname of folder "Program" of drive of system folder}" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug logging may be enabled - Windows (21636).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug logging may be enabled - Windows (21636).bes index b561e539a..654069118 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug logging may be enabled - Windows (21636).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug logging may be enabled - Windows (21636).bes @@ -1,29 +1,29 @@ - - - - - Warning - Group Policy Preferences debug logging may be enabled - Windows - This fixlet is relevant if tracing is enabled for one or more Group Policy Preferences Extensions.

-

Tracing creates detailed log files on the system and may reduce performance of the Group Policy client. This could impact start-up and login time.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists keys whose (value "LogLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry - Group Policy - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC -
-
+ + + + + Warning - Group Policy Preferences debug logging may be enabled - Windows + This fixlet is relevant if tracing is enabled for one or more Group Policy Preferences Extensions.

+

Tracing creates detailed log files on the system and may reduce performance of the Group Policy client. This could impact start-up and login time.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists keys whose (value "LogLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry + Group Policy + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug tracing may be enabled - Windows (21637).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug tracing may be enabled - Windows (21637).bes index 0131c7554..5899288fa 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug tracing may be enabled - Windows (21637).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Preferences debug tracing may be enabled - Windows (21637).bes @@ -1,29 +1,29 @@ - - - - - Warning - Group Policy Preferences debug tracing may be enabled - Windows - This fixlet is relevant if tracing is enabled for one or more Group Policy Preferences Extensions.

-

Tracing creates detailed log files on the system and may reduce performance of the Group Policy client. This could impact start-up and login times.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists keys whose (value "TraceLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry - Group Policy - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC -
-
+ + + + + Warning - Group Policy Preferences debug tracing may be enabled - Windows + This fixlet is relevant if tracing is enabled for one or more Group Policy Preferences Extensions.

+

Tracing creates detailed log files on the system and may reduce performance of the Group Policy client. This could impact start-up and login times.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists keys whose (value "TraceLevel" of it as string != "0") of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Group Policy" of native registry + Group Policy + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Service debug logging may be enabled - Windows (21638).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Service debug logging may be enabled - Windows (21638).bes index c6844d964..eec90b020 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Service debug logging may be enabled - Windows (21638).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Group Policy Service debug logging may be enabled - Windows (21638).bes @@ -1,28 +1,28 @@ - - - - - Warning - Group Policy Service debug logging may be enabled - Windows - This fixlet evaluates to true if Group Policy debug logging is enabled on the target system.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists value "GPSvcDebugLevel" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion" of native registry - Group Policy - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC -
-
+ + + + + Warning - Group Policy Service debug logging may be enabled - Windows + This fixlet evaluates to true if Group Policy debug logging is enabled on the target system.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists value "GPSvcDebugLevel" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion" of native registry + Group Policy + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Hosts files contains manually defined hosts - Win_Mac (20536).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Hosts files contains manually defined hosts - Win_Mac (20536).bes index c695dbdff..01b2b5422 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Hosts files contains manually defined hosts - Win_Mac (20536).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Hosts files contains manually defined hosts - Win_Mac (20536).bes @@ -1,27 +1,27 @@ - - - - - Warning - Hosts files contains manually defined hosts - Win\Mac - This fixlet is relevant if there are manually defined hosts in the system's hosts file.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system or mac of operating system - 0]]> - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC -
-
+ + + + + Warning - Hosts files contains manually defined hosts - Win\Mac + This fixlet is relevant if there are manually defined hosts in the system's hosts file.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system or mac of operating system + 0]]> + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Incorrect User Shell Folders values may cause Installer errors - Windows (21687).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Incorrect User Shell Folders values may cause Installer errors - Windows (21687).bes index 430d3a9e1..cbb806f8a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Incorrect User Shell Folders values may cause Installer errors - Windows (21687).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Incorrect User Shell Folders values may cause Installer errors - Windows (21687).bes @@ -1,124 +1,124 @@ - - - - - Warning - Incorrect User Shell Folders values may cause Installer errors - Windows - This fixlet detects and remediates the issue outlined in this Microsoft KB Article: https://support.microsoft.com/en-us/kb/886549

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- "6.0"]]> - (value "{374DE290-123F-4565-9164-39C4925E467B}" of it as string != "%25USERPROFILE%25\Downloads%00" or value "AppData" of it as string != "%25USERPROFILE%25\AppData\Roaming%00" or value "Desktop" of it as string != "%25USERPROFILE%25\Desktop%00" or value "Favorites" of it as string != "%25USERPROFILE%25\Favorites%00" or value "History" of it as string != "%25USERPROFILE%25\AppData\Local\Microsoft\Windows\History%00" or value "Local AppData" of it as string != "%25USERPROFILE%25\AppData\Local%00" or value "My Music" of it as string != "%25USERPROFILE%25\Music%00" or value "My Pictures" of it as string != "%25USERPROFILE%25\Pictures%00" or value "My Video" of it as string != "%25USERPROFILE%25\Videos%00" or value "NetHood" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Network Shortcuts%00" or value "Personal" of it as string != "%25USERPROFILE%25\Documents%00" or value "PrintHood" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Printer Shortcuts%00" or value "Programs" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Start Menu\Programs%00" or value "Recent" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Recent%00" or value "SendTo" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\SendTo%00" or value "Start Menu" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Start Menu%00" or value "Startup" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup%00" or value "Templates" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Templates%00") of key "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" of native registry - Internal - 2016-09-21 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -delete __createfile -delete import.reg - -createfile until _end_ -Windows Registry Editor Version 5.00 - -[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] -"AppData"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ - 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,00,00 -"Desktop"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,44,00,65,00,73,00,6b,00,74,00,6f,00,70,00,00,00 -"Favorites"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,46,00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,\ - 00,00,00 -"History"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,\ - 00,6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,\ - 66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,48,00,69,\ - 00,73,00,74,00,6f,00,72,00,79,00,00,00 -"Local AppData"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,\ - 49,00,4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,\ - 00,4c,00,6f,00,63,00,61,00,6c,00,00,00 -"My Music"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,4d,00,75,00,73,00,69,00,63,00,00,00 -"My Pictures"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,\ - 00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,\ - 00,00 -"My Video"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,56,00,69,00,64,00,65,00,6f,00,73,00,00,00 -"NetHood"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ - 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ - 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ - 00,4e,00,65,00,74,00,77,00,6f,00,72,00,6b,00,20,00,53,00,68,00,6f,00,72,00,\ - 74,00,63,00,75,00,74,00,73,00,00,00 -"Personal"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,74,00,73,\ - 00,00,00 -"PrintHood"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ - 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ - 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ - 00,50,00,72,00,69,00,6e,00,74,00,65,00,72,00,20,00,53,00,68,00,6f,00,72,00,\ - 74,00,63,00,75,00,74,00,73,00,00,00 -"Programs"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ - 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ - 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ - 00,53,00,74,00,61,00,72,00,74,00,20,00,4d,00,65,00,6e,00,75,00,5c,00,50,00,\ - 72,00,6f,00,67,00,72,00,61,00,6d,00,73,00,00,00 -"Recent"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\ - 00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,00,\ - 6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,\ - 00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,\ - 52,00,65,00,63,00,65,00,6e,00,74,00,00,00 -"SendTo"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\ - 00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,00,\ - 6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,\ - 00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,\ - 53,00,65,00,6e,00,64,00,54,00,6f,00,00,00 -"Start Menu"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,\ - 00,4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,\ - 52,00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,\ - 00,73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,\ - 5c,00,53,00,74,00,61,00,72,00,74,00,20,00,4d,00,65,00,6e,00,75,00,00,00 -"Startup"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ - 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ - 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ - 00,53,00,74,00,61,00,72,00,74,00,20,00,4d,00,65,00,6e,00,75,00,5c,00,50,00,\ - 72,00,6f,00,67,00,72,00,61,00,6d,00,73,00,5c,00,53,00,74,00,61,00,72,00,74,\ - 00,75,00,70,00,00,00 -"Templates"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ - 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ - 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ - 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ - 00,54,00,65,00,6d,00,70,00,6c,00,61,00,74,00,65,00,73,00,00,00 -"{{374DE290-123F-4565-9164-39C4925E467B}"=hex(2):25,00,55,00,53,00,45,00,52,00,\ - 50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,44,00,6f,00,77,00,6e,\ - 00,6c,00,6f,00,61,00,64,00,73,00,00,00 - - -_end_ - -move __createfile import.reg - -waithidden reg import import.reg - -
-
+ + + + + Warning - Incorrect User Shell Folders values may cause Installer errors - Windows + This fixlet detects and remediates the issue outlined in this Microsoft KB Article: https://support.microsoft.com/en-us/kb/886549

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ "6.0"]]> + (value "{374DE290-123F-4565-9164-39C4925E467B}" of it as string != "%25USERPROFILE%25\Downloads%00" or value "AppData" of it as string != "%25USERPROFILE%25\AppData\Roaming%00" or value "Desktop" of it as string != "%25USERPROFILE%25\Desktop%00" or value "Favorites" of it as string != "%25USERPROFILE%25\Favorites%00" or value "History" of it as string != "%25USERPROFILE%25\AppData\Local\Microsoft\Windows\History%00" or value "Local AppData" of it as string != "%25USERPROFILE%25\AppData\Local%00" or value "My Music" of it as string != "%25USERPROFILE%25\Music%00" or value "My Pictures" of it as string != "%25USERPROFILE%25\Pictures%00" or value "My Video" of it as string != "%25USERPROFILE%25\Videos%00" or value "NetHood" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Network Shortcuts%00" or value "Personal" of it as string != "%25USERPROFILE%25\Documents%00" or value "PrintHood" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Printer Shortcuts%00" or value "Programs" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Start Menu\Programs%00" or value "Recent" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Recent%00" or value "SendTo" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\SendTo%00" or value "Start Menu" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Start Menu%00" or value "Startup" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup%00" or value "Templates" of it as string != "%25USERPROFILE%25\AppData\Roaming\Microsoft\Windows\Templates%00") of key "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" of native registry + Internal + 2016-09-21 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +delete __createfile +delete import.reg + +createfile until _end_ +Windows Registry Editor Version 5.00 + +[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] +"AppData"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,00,00 +"Desktop"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,44,00,65,00,73,00,6b,00,74,00,6f,00,70,00,00,00 +"Favorites"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,46,00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,\ + 00,00,00 +"History"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,\ + 00,6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,\ + 66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,48,00,69,\ + 00,73,00,74,00,6f,00,72,00,79,00,00,00 +"Local AppData"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,\ + 49,00,4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,\ + 00,4c,00,6f,00,63,00,61,00,6c,00,00,00 +"My Music"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,4d,00,75,00,73,00,69,00,63,00,00,00 +"My Pictures"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,\ + 00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,\ + 00,00 +"My Video"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,56,00,69,00,64,00,65,00,6f,00,73,00,00,00 +"NetHood"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,4e,00,65,00,74,00,77,00,6f,00,72,00,6b,00,20,00,53,00,68,00,6f,00,72,00,\ + 74,00,63,00,75,00,74,00,73,00,00,00 +"Personal"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,74,00,73,\ + 00,00,00 +"PrintHood"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,50,00,72,00,69,00,6e,00,74,00,65,00,72,00,20,00,53,00,68,00,6f,00,72,00,\ + 74,00,63,00,75,00,74,00,73,00,00,00 +"Programs"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,53,00,74,00,61,00,72,00,74,00,20,00,4d,00,65,00,6e,00,75,00,5c,00,50,00,\ + 72,00,6f,00,67,00,72,00,61,00,6d,00,73,00,00,00 +"Recent"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\ + 00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,00,\ + 6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,\ + 00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,\ + 52,00,65,00,63,00,65,00,6e,00,74,00,00,00 +"SendTo"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\ + 00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,00,\ + 6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,\ + 00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,\ + 53,00,65,00,6e,00,64,00,54,00,6f,00,00,00 +"Start Menu"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,\ + 00,4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,\ + 52,00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,\ + 00,73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,\ + 5c,00,53,00,74,00,61,00,72,00,74,00,20,00,4d,00,65,00,6e,00,75,00,00,00 +"Startup"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,53,00,74,00,61,00,72,00,74,00,20,00,4d,00,65,00,6e,00,75,00,5c,00,50,00,\ + 72,00,6f,00,67,00,72,00,61,00,6d,00,73,00,5c,00,53,00,74,00,61,00,72,00,74,\ + 00,75,00,70,00,00,00 +"Templates"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\ + 4c,00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,52,\ + 00,6f,00,61,00,6d,00,69,00,6e,00,67,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,\ + 73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,\ + 00,54,00,65,00,6d,00,70,00,6c,00,61,00,74,00,65,00,73,00,00,00 +"{{374DE290-123F-4565-9164-39C4925E467B}"=hex(2):25,00,55,00,53,00,45,00,52,00,\ + 50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,44,00,6f,00,77,00,6e,\ + 00,6c,00,6f,00,61,00,64,00,73,00,00,00 + + +_end_ + +move __createfile import.reg + +waithidden reg import import.reg + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows (24269).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows (24269).bes index e982e144b..69c581c3f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows (24269).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows (24269).bes @@ -1,29 +1,29 @@ - - - - - Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows - This Fixlet is relevant than the system is exposed to exploitation of Intel SA 00075.

-

Please use the Fixlet: Invoke - Intel SA 00075 Probe - Windows to populate results for a system. You can view more details of this in the Analysis: Vulnerabilities - Intel SA 00075 - Windows

-

More information on this vulnerability is available here: https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00075&languageid=en-fr

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - (if (it = 1) then (true) else (false)) of (value "Exposed" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Intel\Setup and Configuration Software\INTEL-SA-00075 Discovery Tool\ME Firmware Information" of x32 registry) - Internal - 2017-05-09 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC -
-
+ + + + + Warning - Intel Management Engine Vulnerability SA 00075 Exposure - Windows + This Fixlet is relevant than the system is exposed to exploitation of Intel SA 00075.

+

Please use the Fixlet: Invoke - Intel SA 00075 Probe - Windows to populate results for a system. You can view more details of this in the Analysis: Vulnerabilities - Intel SA 00075 - Windows

+

More information on this vulnerability is available here: https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00075&languageid=en-fr

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + (if (it = 1) then (true) else (false)) of (value "Exposed" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Intel\Setup and Configuration Software\INTEL-SA-00075 Discovery Tool\ME Firmware Information" of x32 registry) + Internal + 2017-05-09 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee Endoint Security is installed but may not be running (20225).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee Endoint Security is installed but may not be running (20225).bes index f2d678985..a8fb31bd1 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee Endoint Security is installed but may not be running (20225).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee Endoint Security is installed but may not be running (20225).bes @@ -1,29 +1,29 @@ - - - - - Warning - McAfee Endoint Security is installed but may not be running - This fixlet is relevant if McAfee Endpoint Security is installed but not running.

-

This likely indicates an error with the McAfee client.

]]>
- windows of operating system - - (not exists running application "vshwin32.exe") AND (not exists running application "mcshield.exe") - Anti-Virus - Internal - 2016-04-18 - - x-fixlet-modification-time - Tue, 19 Apr 2016 18:58:18 +0000 - - BESC -
-
+ + + + + Warning - McAfee Endoint Security is installed but may not be running + This fixlet is relevant if McAfee Endpoint Security is installed but not running.

+

This likely indicates an error with the McAfee client.

]]>
+ windows of operating system + + (not exists running application "vshwin32.exe") AND (not exists running application "mcshield.exe") + Anti-Virus + Internal + 2016-04-18 + + x-fixlet-modification-time + Tue, 19 Apr 2016 18:58:18 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee VirusScan Enterprise is installed but may not be running (20226).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee VirusScan Enterprise is installed but may not be running (20226).bes index 8e46c19a6..37cc1a8ba 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee VirusScan Enterprise is installed but may not be running (20226).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - McAfee VirusScan Enterprise is installed but may not be running (20226).bes @@ -1,29 +1,29 @@ - - - - - Warning - McAfee VirusScan Enterprise is installed but may not be running - This fixlet is relevant if McAfee VirusScan Enterprise is installed but not running.

-

This likely indicates an error with the McAfee client.

]]>
- windows of operating system - - (not exists running application "vshwin32.exe") AND (not exists running application "mcshield.exe") - Anti-Virus - Internal - 2016-04-18 - - x-fixlet-modification-time - Tue, 19 Apr 2016 18:58:08 +0000 - - BESC -
-
+ + + + + Warning - McAfee VirusScan Enterprise is installed but may not be running + This fixlet is relevant if McAfee VirusScan Enterprise is installed but not running.

+

This likely indicates an error with the McAfee client.

]]>
+ windows of operating system + + (not exists running application "vshwin32.exe") AND (not exists running application "mcshield.exe") + Anti-Virus + Internal + 2016-04-18 + + x-fixlet-modification-time + Tue, 19 Apr 2016 18:58:08 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows (23734).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows (23734).bes index e502dd9ef..cd421485f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows (23734).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows (23734).bes @@ -1,42 +1,42 @@ - - - - - Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows - This Fixlet detects an Office 2010 install on the same machine as an Office 2013 install and uses the Office Cleanup tool to remove the Microsoft Office 2010 Installation.

-

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
- windows of operating system - exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "15.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) - exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "14.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) - Internal - 2017-02-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -prefetch o14-ctrremove.diagcab sha1:84860CDAF2DD94FDF37F7519079195EFD1DE7777 size:401870 http://download.microsoft.com/download/2/8/5/28568719-AD79-41EB-B0F2-76E16817DD0E/MicrosoftFixit20055.mini.diagcab sha256:1F4BF79BA164A975279FBA37C82B6927BA2908C44624F8A80AEAFBC1B422313A - -waithidden expand -i "__Download\O14-CTRRemove.diagcab" -f:OffScrub*.vbs "__Download" - -waithidden cscript "__Download\OffScrub10.vbs" ALL /Quiet /NoCancel /Force - -
-
+ + + + + Warning - Microsoft Office 2010 and 2013 installed Side-by-Side - Windows + This Fixlet detects an Office 2010 install on the same machine as an Office 2013 install and uses the Office Cleanup tool to remove the Microsoft Office 2010 Installation.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "15.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "14.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +prefetch o14-ctrremove.diagcab sha1:84860CDAF2DD94FDF37F7519079195EFD1DE7777 size:401870 http://download.microsoft.com/download/2/8/5/28568719-AD79-41EB-B0F2-76E16817DD0E/MicrosoftFixit20055.mini.diagcab sha256:1F4BF79BA164A975279FBA37C82B6927BA2908C44624F8A80AEAFBC1B422313A + +waithidden expand -i "__Download\O14-CTRRemove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub10.vbs" ALL /Quiet /NoCancel /Force + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows (23735).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows (23735).bes index 2b44cbebb..f01be8e96 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows (23735).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows (23735).bes @@ -1,42 +1,42 @@ - - - - - Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows - This Fixlet detects an Office 2010 install on the same machine as an Office 2016 install and uses the Office Cleanup tool to remove the Microsoft Office 2010 Installation.

-

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
- windows of operating system - exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "16.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) - exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "14.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) - Internal - 2017-02-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -prefetch o14-ctrremove.diagcab sha1:84860CDAF2DD94FDF37F7519079195EFD1DE7777 size:401870 http://download.microsoft.com/download/2/8/5/28568719-AD79-41EB-B0F2-76E16817DD0E/MicrosoftFixit20055.mini.diagcab sha256:1F4BF79BA164A975279FBA37C82B6927BA2908C44624F8A80AEAFBC1B422313A - -waithidden expand -i "__Download\O14-CTRRemove.diagcab" -f:OffScrub*.vbs "__Download" - -waithidden cscript "__Download\OffScrub10.vbs" ALL /Quiet /NoCancel /Force - -
-
+ + + + + Warning - Microsoft Office 2010 and 2016 installed Side-by-Side - Windows + This Fixlet detects an Office 2010 install on the same machine as an Office 2016 install and uses the Office Cleanup tool to remove the Microsoft Office 2010 Installation.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "16.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "14.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +prefetch o14-ctrremove.diagcab sha1:84860CDAF2DD94FDF37F7519079195EFD1DE7777 size:401870 http://download.microsoft.com/download/2/8/5/28568719-AD79-41EB-B0F2-76E16817DD0E/MicrosoftFixit20055.mini.diagcab sha256:1F4BF79BA164A975279FBA37C82B6927BA2908C44624F8A80AEAFBC1B422313A + +waithidden expand -i "__Download\O14-CTRRemove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub10.vbs" ALL /Quiet /NoCancel /Force + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows (23818).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows (23818).bes index fa95ba613..a23634a3d 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows (23818).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows (23818).bes @@ -1,4134 +1,4134 @@ - - - - - Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows - This Fixlet detects an Office 2013 install on the same machine as an Office 2016 install and uses the Office Cleanup tool to remove the Microsoft Office 2013 Installation.

-

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
- windows of operating system - exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "15.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) - exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "16.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) - Internal - 2017-02-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - "fForce" will kill running applications which can result in data loss! <- CAUTION -Dim fForce : fForce = False -'CAUTION! -> "fForce" will kill running applications which can result in data loss! <- CAUTION -Dim fLogInitialized : fLogInitialized = False -Dim fBypass_Stage1 : fBypass_Stage1 = True 'Component Detection -Dim fBypass_Stage2 : fBypass_Stage2 = False 'Setup -Dim fBypass_Stage3 : fBypass_Stage3 = False 'Msiexec -Dim fBypass_Stage4 : fBypass_Stage4 = False 'CleanUp -Dim fRebootRequired : fRebootRequired = False - -'Create required objects -Set oWmiLocal = GetObject("winmgmts:{{(Debug)}\\.\root\cimv2") -Set oWShell = CreateObject("Wscript.Shell") -Set oShellApp = CreateObject("Shell.Application") -Set oFso = CreateObject("Scripting.FileSystemObject") -Set oMsi = CreateObject("WindowsInstaller.Installer") -Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv") - -'Get environment path info -sAppData = oWShell.ExpandEnvironmentStrings("%appdata%") -sLocalAppData = oWShell.ExpandEnvironmentStrings("%localappdata%") -sTemp = oWShell.ExpandEnvironmentStrings("%temp%") -sAllUsersProfile = oWShell.ExpandEnvironmentStrings("%allusersprofile%") -RegReadValue HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "ProfilesDirectory", sProfilesDirectory, "REG_EXPAND_SZ" -If NOT oFso.FolderExists(sProfilesDirectory) Then - sProfilesDirectory = oFso.GetParentFolderName(oWShell.ExpandEnvironmentStrings("%userprofile%")) -End If -sProgramFiles = oWShell.ExpandEnvironmentStrings("%programfiles%") -'Deferred until after architecture check -'sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") - -sCommonProgramFiles = oWShell.ExpandEnvironmentStrings("%commonprogramfiles%") -'Deferred until after architecture check -'sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") - -sProgramData = oWSHell.ExpandEnvironmentStrings("%programdata%") -sWinDir = oWShell.ExpandEnvironmentStrings("%windir%") -sWICacheDir = sWinDir & "\" & "Installer" -sScrubDir = sTemp & "\" & SCRIPTNAME -sScriptDir = wscript.ScriptFullName -sScriptDir = Left(sScriptDir, InStrRev(sScriptDir, "\")) - -' Get current script host -fCScript = UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" - -'Detect if we're running on a 64 bit OS -Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_ComputerSystem") -For Each Item In ComputerItem - f64 = Instr(Left(Item.SystemType,3),"64") > 0 - If f64 Then Exit For -Next -If f64 Then sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") -If f64 Then sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") - -'Get OS details and VersionNT -Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_OperatingSystem") -For Each Item in ComputerItem - sOSinfo = sOSinfo & Item.Caption - sOSinfo = sOSinfo & Item.OtherTypeDescription - sOSinfo = sOSinfo & ", " & "SP " & Item.ServicePackMajorVersion - sOSinfo = sOSinfo & ", " & "Version: " & Item.Version - sOsVersion = Item.Version - sOSinfo = sOSinfo & ", " & "Codepage: " & Item.CodeSet - sOSinfo = sOSinfo & ", " & "Country Code: " & Item.CountryCode - sOSinfo = sOSinfo & ", " & "Language: " & Item.OSLanguage -Next - -'Build the VersionNT number -arrVersion = Split(sOsVersion, Delimiter(sOsVersion)) -iVersionNt = CInt(arrVersion (0)) * 100 + CInt(arrVersion (1)) - -'Check if we're running as 32 bit process on a 64 bit OS -If InStr(LCase(wscript.path), "syswow64") > 0 Then RelaunchAs64Host - -fElevated = CheckRegPermissions -If NOT fElevated AND NOT fNoElevate Then - 'Try to relaunch elevated - RelaunchElevated - - 'Can't relaunch. Exit out - If UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" Then - If Not fLogInitialized Then CreateLog - Log "Insufficient registry access permissions - exiting" - End If - 'Undo temporary entries created in ARP - TmpKeyCleanUp - wscript.quit 3 -End If - -'Create Dictionaries -Set dictionaryKeepProd = CreateObject("Scripting.Dictionary") -Set dicInstalledSku = CreateObject("Scripting.Dictionary") -Set dicRemoveSku = CreateObject("Scripting.Dictionary") -Set dictionaryKeepSku = CreateObject("Scripting.Dictionary") -Set dictionaryKeepLis = CreateObject("Scripting.Dictionary") -Set dictionaryKeepFolder = CreateObject("Scripting.Dictionary") -Set dicApps = CreateObject("Scripting.Dictionary") -Set dicDelRegKey = CreateObject("Scripting.Dictionary") -Set dictionaryKeepReg = CreateObject("Scripting.Dictionary") -Set dicSrv = CreateObject("Scripting.Dictionary") -Set dicCSuite = CreateObject("Scripting.Dictionary") -Set dicCSingle = CreateObject("Scripting.Dictionary") - -'Create the temp folder -If Not oFso.FolderExists(sScrubDir) Then oFso.CreateFolder sScrubDir - -'Set the default logging directory -sLogDir = sScrubDir - -'Call the command line parser -ParseCmdLine - -'Ensure CScript as engine -If NOT fCScript AND NOT fQuiet Then RelaunchAsCScript - -'Get Office Install Folder -If NOT RegReadValue(HKLM,"SOFTWARE\Microsoft\Office\"&OVERSION&"\Common\InstallRoot","Path",sOInstallRoot,"REG_SZ") Then - sOInstallRoot = sProgramFiles & "\Microsoft Office\"&OREF -End If - -'Ensure integrity of WI metadata which could fail used APIs otherwise -EnsureValidWIMetadata HKCU,"Software\Classes\Installer\Products",COMPRESSED -EnsureValidWIMetadata HKCR,"Installer\Products",COMPRESSED -EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products",COMPRESSED -EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components",COMPRESSED -EnsureValidWIMetadata HKCR,"Installer\Components",COMPRESSED - -'Add initial known .exe files that might need to be closed -dicApps.Add "communicator.exe", "communicator.exe" -dicApps.Add "setup.exe", "setup.exe" -Select Case OVERSIONMAJOR -Case "12" -Case "14" - dicApps.Add "bcssync.exe","bcssync.exe" - dicApps.Add "officesas.exe","officesas.exe" - dicApps.Add "officesasscheduler.exe","officesasscheduler.exe" - dicApps.Add "msosync.exe","msosync.exe" - dicApps.Add "onenotem.exe","onenotem.exe" -Case "15" -Case Else -End Select - -'------------------- -'Stage # 0 - Basics | -'------------------- -'Build a list with installed/registered Office products -sTmp = "Stage # 0 " & chr(34) & "Basics" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf - -FindInstalledOProducts -If dicInstalledSku.Count > 0 Then Log "Found registered product(s): " & Join(RemoveDuplicates(dicInstalledSku.Items),",") &vbCrLf - -'Validate the list of products we got from the command line if applicable -ValidateRemoveSkuList - -'Log detection results -If dicRemoveSku.Count > 0 Then Log "Product(s) to be removed: " & Join(RemoveDuplicates(dicRemoveSku.Items),",") -sMode = "Selected " & ONAME & " products" -If NOT dicRemoveSku.Count > 0 Then sMode = "Orphaned " & ONAME & " products" -If fRemoveAll Then sMode = "All " & ONAME & " products" -Log "Final removal mode: " & sMode -Log "Remove OSE service: " & fRemoveOse &vbCrLf - -'Log preview mode if applicable -If fDetectOnly Then Log "*************************************************************************" -If fDetectOnly Then Log "* PREVIEW MODE *" -If fDetectOnly Then Log "* All uninstall and delete operations will only be logged not executed! *" -If fDetectOnly Then Log "*************************************************************************" & vbCrLf - -'Check if there are legacy products installed -CheckForLegacyProducts -If fLegacyProductFound Then Log "Found legacy Office products that will not be removed." Else Log "No legacy Office products found." - -'Cache .msi files -If dicRemoveSku.Count > 0 Then CacheMsiFiles - -'Log Sku/Prod detection results -LogSkuResults - -'UnPin Shortcuts -If NOT fSkipSD AND dicRemoveSku.Count > 0 Then - On Error Resume Next - Log " Searching for pinned shortcuts" - CleanShortcuts sAllUsersProfile, False, True - CleanShortcuts sProfilesDirectory, False, True - On Error Goto 0 -End If 'NOT SkipSD - - -'-------------------------------- -'Stage # 1 - Component Detection | -'-------------------------------- -sTmp = "Stage # 1 " & chr(34) & "Component Detection" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf -If Not fBypass_Stage1 OR fForce Then - 'Build a list with files which are installed/registered to a product that's going to be removed - Log "Prepare for CleanUp stages." - Log "Identifying removable elements. This can take several minutes." - ScanComponents -Else - Log "Not running Component Detection in default removal." -End If - -'End all running Office applications -If fForce OR fQuiet OR fPassive Then CloseOfficeApps - -'---------------------- -'Stage # 2 - Setup.exe | -'---------------------- -sTmp = "Stage # 2 " & chr(34) & "Setup.exe" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf -If Not fBypass_Stage2 Then - SetupExeRemoval -Else - Log "Skipping Setup.exe because bypass was requested." -End If - -'------------------------ -'Stage # 3 - Msiexec.exe | -'------------------------ -sTmp = "Stage # 3 " & chr(34) & "Msiexec.exe" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf -If Not fBypass_Stage3 Then - MsiexecRemoval -Else - Log "Skipping Msiexec.exe because bypass was requested." -End If - -'-------------------- -'Stage # 4 - CleanUp | -'-------------------- -'Removal of files and registry settings -sTmp = "Stage # 4 " & chr(34) & "CleanUp" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf -If Not fBypass_Stage4 Then - - 'Office Source Engine - If fRemoveOse Then RemoveOSE - - 'Local Installation Source (MSOCache) - WipeLIS - - 'Obsolete files - If fRemoveAll Then - FileWipeAll - Else - FileWipeIndividual - End If - - 'Empty Folders - DeleteEmptyFolders - - 'Restore Explorer if needed - If fForce OR fQuiet OR fPassive Then RestoreExplorer - - 'Registry data - RegWipe - - 'Wipe orphaned files from Windows Installer cache - MsiClearOrphanedFiles - - 'Temporary .msi files in scrubcache - DeleteMsiScrubCache - - 'Temporary files - DelScrubTmp - -Else - Log "Skipping CleanUp because bypass was requested." -End If - -If Not sMoveMessage = "" Then Log vbCrLf & "Please remove this folder after next reboot: " & sMoveMessage - -'THE END -Log vbCrLf & "End removal: " & Now & vbCrLf -Log vbCrLf & "For detailed logging please refer to the log in folder " &chr(34)&sScrubDir&chr(34)&vbCrLf - -If fRebootRequired Then - Log vbCrLf & "A restart is required to complete the operation!" - If NOT (fQuiet OR fPassive OR fNoReboot) Then - If MsgBox("Do you want to reboot now?",vbYesNo,"Reboot Required") = VB_YES Then - Dim colOS, oOS - Dim oWmiReboot - Set oWmiReboot = GetObject("winmgmts:{{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2") - Set colOS = oWmiReboot.ExecQuery ("Select * from Win32_OperatingSystem") - For Each oOS in colOS - oOS.Reboot() - Next - End If - End If -End If - -If NOT (fQuiet OR fPassive) Then - For Each Item in Wscript.Arguments - If Item = "UAC" Then - If fCscript Then wscript.stdout.write "Press to close this window" - sTemp = wscript.stdin.read(1) - End If - Next 'Argument -End If -'======================================================================================================= -'======================================================================================================= - -'Stage 0 - 4 Subroutines -'======================================================================================================= - -'Office configuration products are listed with their configuration product name in the "Uninstall" key -'To identify an Office configuration product all of these condiditions have to be met: -' - "SystemComponent" does not have a value of "1" (DWORD) -' - "OPACKAGE" (see constant declaration) entry exists and is not empty -' - "DisplayVersion" exists and the 2 leftmost digits are "OVERSIONMAJOR" -Sub FindInstalledOProducts - Dim ArpItem, File - Dim sCurKey, sValue, sConfigName, sProdC, sCVHValue - Dim sProductCodeList, sProductCode - Dim arrKeys, arrMultiSzValues - Dim fSystemComponent0, fPackages, fDisplayVersion, fReturn, fCategorized - - If dicInstalledSku.Count > 0 Then Exit Sub 'Already done from InputBox prompt - - 'Handle orphaned products to get them added to the detection scope - If fTryReconcile Then - For Each File in oFso.GetFolder(sWICacheDir).Files - If Len(File.Name)>3 Then - Select Case LCase(Right(File.Name, 4)) - Case ".msi" - sProductCode = "" - sProductCode = GetMsiProductCode(File.Path) - If InScope(sProductCode) Then - If NOT RegKeyExists(HKLM, REG_ARP & sProductCode) Then - 'Ensure the orphaned item is getting removed - If Len(sSkuRemoveList) > 0 Then - sSkuRemoveList = sSkuRemoveList & "," & GetProductID(Mid(sProductCode, 11, 4)) - Else - sSkuRemoveList = GetProductID(Mid(sProductCode, 11, 4)) - End If - 'Add to ScrubDir - oFso.CopyFile File.Path,sScrubDir & "\" & sProductCode & ".msi",True - 'Register the product with MSI - MsiRegisterProduct File.Path - End If 'NOT sProductCode - End If 'InScope - Case Else - End Select - End If '>3 - Next 'File - End If 'fTryReconcile - - 'Locate standalone Office products that have no configuration product entry and create a - 'temporary configuration entry - ReDim arrTmpSKUs(-1) - If RegEnumKey(HKLM, REG_ARP, arrKeys) Then - For Each ArpItem in arrKeys - If InScope(ArpItem) Then - sCurKey = REG_ARP & ArpItem & "\" - fSystemComponent0 = Not (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) - If fSystemComponent0 Then - RegReadValue HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ" - Redim arrMultiSzValues(0) - 'Logic changed to drop the LCID identifier - 'sConfigName = GetProductID(Mid(ArpItem,11,4)) & "_" & CInt("&h" & Mid(ArpItem,16,4)) - sConfigName = OREGREF & GetProductID(Mid(ArpItem, 11, 4)) - If NOT RegKeyExists(HKLM, REG_ARP&sConfigName) Then - 'Create a new ARP item - ReDim Preserve arrTmpSKUs(UBound(arrTmpSKUs) + 1) - arrTmpSKUs(UBound(arrTmpSKUs)) = sConfigName - oReg.CreateKey HKLM, REG_ARP & sConfigName - arrMultiSzValues(0) = sConfigName - oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, OPACKAGE, arrMultiSzValues - arrMultiSzValues(0) = ArpItem - oReg.SetStringValue HKLM, REG_ARP & sConfigName, "Comment", "Temporary OffScrub generated key. Please delete this key!" - oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", arrMultiSzValues - oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayVersion", sValue - oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayName", SCRIPTNAME & "_" & sConfigName - oReg.SetDWordValue HKLM, REG_ARP & sConfigName, "SystemComponent", 0 - Else - 'Update the existing temporary ARP item - fReturn = RegReadValue(HKLM, REG_ARP&sConfigName, "ProductCodes", sProdC, "REG_MULTI_SZ") - If NOT InStr(sProdC, ArpItem) > 0 Then sProdC = sProdC & chr(34) & ArpItem - oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", Split(sProdC, Chr(34)) - End If 'RegKeyExists - End If 'fSystemComponent0 - End If 'InScope - Next 'ArpItem - End If 'RegEnumKey - - 'Find the configuration products - If RegEnumKey(HKLM, REG_ARP, arrKeys) Then - For Each ArpItem in arrKeys - sCurKey = REG_ARP & ArpItem & "\" - sValue = "" - fSystemComponent0 = NOT (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) - fPackages = RegReadValue(HKLM, sCurKey, OPACKAGE, sValue, "REG_MULTI_SZ") - fDisplayVersion = RegReadValue(HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ") - If fDisplayVersion Then - If Len(sValue) > 1 Then - fDisplayVersion = (Left(sValue, 2) = OVERSIONMAJOR) - Else - fDisplayVersion = False - End If - End If - 'fSystemComponent0 filter causes issues if the ARP entries have been hidden - 'If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then - If (fPackages AND fDisplayVersion) Then - If InStr(ArpItem,".") > 0 Then sConfigName = UCase(Mid(ArpItem, InStr(ArpItem, ".") + 1)) Else sConfigName = UCase(ArpItem) - If NOT dicInstalledSku.Exists(sConfigName) Then dicInstalledSku.Add sConfigName, sConfigName - - 'Categorize the SKU - 'Four categories are available: ClientSuite, ClientSingleProduct, Server, C2R - If RegReadValue(HKLM, REG_ARP & OREGREF & sConfigName, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then - fCategorized = False - For Each sProductCode in Split(sProductCodeList, Chr(34)) - If Len(sProductCode) = 38 Then - If Mid(sProductCode, 11, 1) = "1" Then - 'Server product - If NOT dicSrv.Exists(UCase(sConfigName)) Then dicSrv.Add UCase(sConfigName), sConfigName - fCategorized = True - Exit For - Else - Select Case Mid(sProductCode, 11, 4) - 'Client Suites - Case "000F","0011","0012","0013","0014","0015","0016","0017","0018","0019","001A","001B","0029","002B","002E","002F","0030","0031","0033","0035","0037","003D","0044","0049","0061","0062","0066","006C","006D","006F","0074","00A1","00A3","00A9","00BA","00CA","00E0","0100","0103","011A" - If NOT dicCSuite.Exists(UCase(sConfigName)) Then dicCSuite.Add UCase(sConfigName), sConfigName - fCategorized = True - Exit For - - Case "007E", "008F", "008C", "24E1", "237A" - If NOT dictionaryKeepProd.Exists(sProductCode) Then dictionaryKeepProd.Add sProductCode, sConfigName - fC2rInstalled = True - Case Else - End Select - End If - End If 'Len 38 - Next 'sProductCode - If NOT fCategorized Then - If NOT dicCSingle.Exists(UCase(sConfigName)) Then dicCSingle.Add UCase(sConfigName), sConfigName - End If 'fCategorized - End If 'RegReadValue "ProductCodes" - End If - Next 'ArpItem - End If 'RegEnumKey -End Sub 'FindInstalledOProducts -'======================================================================================================= - -'Check if there are Office products from previous versions on the computer -Sub CheckForLegacyProducts - Const OLEGACY = "78E1-11D2-B60F-006097C998E7}.6000-11D3-8CFE-0050048383C9}.6000-11D3-8CFE-0150048383C9}.BDCA-11D1-B7AE-00C04FB92F3D}.6D54-11D4-BEE3-00C04F990354}" - Dim Product - - 'Set safe default - fLegacyProductFound = True - - For Each Product in oMsi.Products - If Len(Product) = 38 Then - 'Handle O09 - O11 Products - If InStr(OLEGACY, UCase(Right(Product, 28))) > 0 Then - 'Found legacy Office product. Keep flag in default and exit - Exit Sub - End If - If UCase(Right(Product,PRODLEN)) = OFFICEID Then - Select Case Mid(Product,4,2) - Case "12", "14" - 'Found legacy Office product. Keep flag in default and exit - Exit Sub - Case Else - End Select - End If - End If '38 - Next 'Product - fLegacyProductFound = False - -End Sub 'CheckForLegacyProducts -'======================================================================================================= - -'Create clean list of Products to remove. -'Strip off bad & empty contents -Sub ValidateRemoveSkuList - Dim Sku, Key, sProductCode, sProductCodeList - Dim arrRemoveSKUs - - If fRemoveAll Then - 'Remove all mode - For Each Key in dicInstalledSku.Keys - dicRemoveSku.Add Key,dicInstalledSku.Item(Key) - Next 'Key - Else - 'Remove individual products or preconfigured configurations mode - - 'Ensure to have a string with no unexpected contents - sSkuRemoveList = Replace(sSkuRemoveList,";",",") - sSkuRemoveList = Replace(sSkuRemoveList," ","") - sSkuRemoveList = Replace(sSkuRemoveList,Chr(34),"") - While InStr(sSkuRemoveList,",,")>0 - sSkuRemoveList = Replace(sSkuRemoveList,",,",",") - Wend - - 'Prepare 'remove' and 'keep' dictionaries to determine what has to be removed - - 'Initial pre-fill of 'keep' dic - For Each Key in dicInstalledSku.Keys - dictionaryKeepSku.Add Key,dicInstalledSku.Item(Key) - Next 'Key - - 'Determine contents of keep and remove dic - 'Individual products - arrRemoveSKUs = Split(UCase(sSkuRemoveList),",") - For Each Sku in arrRemoveSKUs - If Sku = "OSE" Then fRemoveOse = True - If dictionaryKeepSku.Exists(Sku) Then - 'A Sku to remove has been passed in - 'remove the item from the keep dic - dictionaryKeepSku.Remove(Sku) - 'Now add it to the remove dic - If NOT dicRemoveSku.Exists(Sku) Then dicRemoveSku.Add Sku,Sku - End If - Next 'Sku - - 'Client Suite Category - If fRemoveCSuites Then - For Each Key in dicInstalledSku.Keys - If dicCSuite.Exists(Key) Then - If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) - If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key - End If - Next 'Key - End If 'fRemoveCSuites - - 'Client Single/Standalone Category - If fRemoveCSingle Then - For Each Key in dicInstalledSku.Keys - If dicCSingle.Exists(Key) Then - If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) - If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key - End If - Next 'Key - End If 'fRemoveCSingle - - 'Server Category - If fRemoveSrv Then - For Each Key in dicInstalledSku.Keys - If dicSrv.Exists(Key) Then - If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) - If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key - End If - Next 'Key - End If 'fRemoveSrv - - If NOT dictionaryKeepSku.Count > 0 Then fRemoveAll = True - - End If 'fRemoveAll - - 'Fill the KeepProd dic - For Each Sku in dictionaryKeepSku.Keys - If RegReadValue(HKLM, REG_ARP & OREGREF & Sku, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then - For Each sProductCode in Split(sProductCodeList, chr(34)) - If Len(sProductCode) = 38 Then - If NOT dictionaryKeepProd.Exists(sProductCode) Then - dictionaryKeepProd.Add sProductCode, Sku - ' also add the UpgradeCode - If Not dictionaryKeepProd.Exists(GetUpgradeCode(sProductCode)) Then dictionaryKeepProd.Add GetUpgradeCode(sProductCode), Sku & "_UpgradeCode" - End If - End If '38 - Next 'sProductCode - End If - Next 'Sku - - If fRemoveAll OR fRemoveOse Then CheckRemoveOSE - If fRemoveAll OR fRemoveOspp Then CheckRemoveOspp - -End Sub 'ValidateRemoveSkuList -'======================================================================================================= - -'Check if OSE service can be scrubbed -Sub CheckRemoveOSE - Const O11 = "6000-11D3-8CFE-0150048383C9}" - Dim Product - - If fRemoveOse Then Exit Sub - For Each Product in oMsi.Products - If Len(Product) = 38 Then - If UCase(Right(Product, 28)) = O11 Then - 'Found Office 2003 Product. Set flag to not remove the OSE service - Exit Sub - End If - If UCase(Right(Product, PRODLEN))= OFFICEID Then - Select Case Mid(Product, 4, 2) - Case "12","14","15","16","17" - If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then - 'Found another Office product. Set flag to keep the OSE service - fRemoveOse = False - Exit Sub - End If - Case Else - End Select - End If - End If '38 - Next 'Product - fRemoveOse = True -End Sub 'CheckRemoveOSE -'======================================================================================================= - -'Check if OSPP service can be scrubbed -Sub CheckRemoveOSPP - Dim Product - - If NOT CInt(OVERSIONMAJOR) > 12 Then - fRemoveOspp = False - Exit Sub - End If - - If fRemoveOspp Then Exit Sub - - If fC2rInstalled Then - fRemoveOspp = False - Exit Sub - End If - - For Each Product in oMsi.Products - If Len(Product) = 38 Then - If UCase(Right(Product, PRODLEN)) = OFFICEID Then - Select Case Mid(Product, 4, 2) - Case "14","15","16","17" - If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then - 'Found another Office product. Set flag to keep the OSPP service - fRemoveOspp = False - Exit Sub - End If - Case Else - End Select - End If - End If '38 - Next 'Product - fRemoveOspp = True -End Sub 'CheckRemoveOSPP -'======================================================================================================= - -'Cache .msi files for products that will be removed in case they are needed for later file detection -Sub CacheMsiFiles - Dim Product - Dim sMsiFile - - 'Non critical routine for failures. - 'Errors will be logged but must not fail the execution - On Error Resume Next - Log " Cache .msi files to temporary Scrub folder" - 'Cache the files - For Each Product in oMsi.Products - 'Ensure valid GUID length - If CheckDeleteEx(Product) Then - CheckError "CacheMsiFiles" - sMsiFile = oMsi.ProductInfo(Product,"LocalPackage") : CheckError "CacheMsiFiles" - LogOnly " - " & Product & ".msi" - If oFso.FileExists(sMsiFile) Then oFso.CopyFile sMsiFile,sScrubDir & "\" & Product & ".msi",True - CheckError "CacheMsiFiles" - End If 'InScope - Next 'Product - - Err.Clear -End Sub 'CacheMsiFiles -'======================================================================================================= - -'Build a list of all files that will be deleted -Sub ScanComponents - Const MSIINSTALLSTATE_LOCAL = 3 - - Dim FileList, RegList, ComponentID, CompClient, Record, qView, MsiDb, CompVerbose - Dim Processes, Process, Prop, prod - Dim sQuery, sSubKeyName, sPath, sFile, sMsiFile, sCompClient, sComponent, sCompReg - Dim fRemoveComponent, fAffectedComponent, fIsPermanent, fIsFile, fIsFolder - Dim i, iProgress, iCompCnt, iRemCnt - Dim dicFLError, oDic, oFolderDic, dicCompPath - Dim hDefKey - - 'Logfile - Set FileList = oFso.OpenTextFile(sScrubDir & "\FileList.txt",FOR_WRITING,True,True) - Set RegList = oFso.OpenTextFile(sScrubDir & "\RegList.txt",FOR_WRITING,True,True) - Set CompVerbose = oFso.OpenTextFile(sScrubDir & "\CompVerbose.txt",FOR_WRITING,True,True) - - 'FileListError dic - Set dicFLError = CreateObject("Scripting.Dictionary") - - Set oDic = CreateObject("Scripting.Dictionary") - Set oFolderDic = CreateObject("Scripting.Dictionary") - Set dicCompPath = CreateObject("Scripting.Dictionary") - - 'Prevent that API errors fail script execution - On Error Resume Next - - iCompCnt = oMsi.Components.Count - If NOT Err = 0 Then - 'API failure - Log "Error during components detection. Cannot complete this task." - Err.Clear - Exit Sub - End If - - 'Ensure to not divide by zero - If iCompCnt = 0 Then iCompCnt = 1 - LogOnly " Scanning " & iCompCnt & " components" - 'Enum all Components - For Each ComponentID In oMsi.Components - CompVerbose.WriteLine vbCrLf & "Checking Component: " & ComponentID - - 'Progress bar - i = i + 1 - If iProgress < (i / iCompCnt) * 100 Then - If fCScript Then wscript.stdout.write "." : LogStream.Write "." - iProgress = iProgress + 1 - If iProgress = 35 OR iProgress = 70 Then Log "" - End If - - 'Check if all ComponentClients will be removed - sCompClient = "" - iRemCnt = 0 - fIsPermanent = False - fRemoveComponent = False 'Flag to track if the component will be completely removed - fAffectedComponent = False 'Flag to track if some clients remain installed who have a none shared location - dicCompPath.RemoveAll - Err.Clear - For Each CompClient In oMsi.ComponentClients(ComponentID) - CompVerbose.Write " CompClient " & CompClient & "-> " - If Err = 0 Then - 'Ensure valid guid length - If Len(CompClient) = 38 Then - fRemoveComponent = InScope(CompClient) - If fRemoveComponent OR (CompClient = "{{00000000-0000-0000-0000-000000000000}") Then - sPath = "" - sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) - sPath = Replace(sPath,"?",":") - 'Scan for msidbComponentAttributesPermanent flag - If CompClient = "{{00000000-0000-0000-0000-000000000000}" Then - fIsPermanent = True - iRemCnt = iRemCnt + 1 - End If - If fRemoveComponent Then fRemoveComponent = CheckDelete(CompClient) - CompVerbose.Write "CheckDelete: " & fRemoveComponent & "; " - If fRemoveComponent Then - iRemCnt = iRemCnt + 1 - fAffectedComponent = True - 'Since the scope remains within one Office family the keypath for the component - 'is assumed to be identical - If sCompClient = "" Then sCompClient = CompClient - ' flag the CompClient entry for removal - sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) - If NOT dicDelRegKey.Exists(sCompReg) Then - dicDelRegKey.Add sCompReg,HKCR - RegList.WriteLine HiveString(HKCR)&"\"&sCompReg - End If - sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) - If NOT dicDelRegKey.Exists(sCompReg) Then - dicDelRegKey.Add sCompReg,HKLM - RegList.WriteLine HiveString(HKCR)&"\"&sCompReg - End If - Else - If NOT dicCompPath.Exists(sPath) Then dicCompPath.Add sPath,CompClient - End If - CompVerbose.WriteLine "AffectedComponent: " & fAffectedComponent - CompVerbose.WriteLine " CompClient now set to: " & sCompClient - Else - CompVerbose.Write "InScope: " & fRemoveComponent & "; " - End If - Else - CompVerbose.WriteLine "Error: Invalid metadata" - If NOT dicFLError.Exists("Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient) Then _ - dicFLError.Add "Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient, ComponentID - End If '38 - Else - CompVerbose.WriteLine "Error: " & Err.number & " " & Err.Description - Err.Clear - End If 'Err = 0 - Next 'CompClient - - 'Determine if the component resources go away - sPath = "" - fRemoveComponent = fAffectedComponent AND (iRemCnt = oMsi.ComponentClients(ComponentID).Count) - CompVerbose.WriteLine " Component goes away: " & fRemoveComponent -' This caused unintentional removals -' If NOT fRemoveComponent AND fAffectedComponent Then -' 'Flag as removable if component has a unique keypath -' sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) -' sPath = Replace(sPath,"?",":") -' fRemoveComponent = NOT dicCompPath.Exists(sPath) -' End If - If fRemoveComponent Then - 'Check msidbComponentAttributesPermanent flag - If fIsPermanent AND NOT fForce Then fRemoveComponent = False - CompVerbose.WriteLine " msidbComponentAttributesPermanent: " & NOT fRemoveComponent - End If - - If fRemoveComponent Then - CompVerbose.WriteLine " RESULT: Component IN SCOPE for removal" - fIsFile = False : fIsFolder = False - - 'Component resources go away for this product - Err.Clear - 'Add the component registration key to ensure removal - sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\" - If NOT dicDelRegKey.Exists(sCompReg) Then - dicDelRegKey.Add sCompReg,HKCR - RegList.WriteLine HiveString(HKCR)&"\"&sCompReg - End If - sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\" - If NOT dicDelRegKey.Exists(sCompReg) Then - dicDelRegKey.Add sCompReg,HKLM - RegList.WriteLine HiveString(HKCR)&"\"&sCompReg - End If - 'Get the component path - If sPath = "" Then - sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) - sPath = Replace(sPath,"?",":") - End If - CompVerbose.WriteLine " Path: " & sPath - If Len(sPath) > 4 Then - If Left(sPath,1) = "0" Then - 'Registry keypath - - Select Case Left(sPath,2) - Case "00" - sPath = Mid(sPath,5) - hDefKey = HKCR - Case "01" - sPath = Mid(sPath,5) - hDefKey = HKCU - Case "02","22" - sPath = Mid(sPath,5) - hDefKey = HKLM - Case Else - ' - End Select - - 'Go for the safe way and just reset the default entry - 'compared to deleting the whole key - If Right(sPath,1) = "\" Then sPath = sPath & "(Default)" - - If NOT dicDelRegKey.Exists(sPath) Then - dicDelRegKey.Add sPath,hDefKey - RegList.WriteLine HiveString(hDefKey)&"\"&sPath - End If - Else - - 'File or Folder - If oFso.FileExists(sPath) OR oFso.FolderExists(sPath) Then - If Right(sPath,1) = "\" Then - fIsFolder = True - CompVerbose.WriteLine " Folder check OK" - Else - fIsFile = True - CompVerbose.WriteLine " File check OK" - End If - If fIsFile Then sPath = oFso.GetFile(sPath).ParentFolder - If Not oFolderDic.Exists(sPath) Then - oFolderDic.Add sPath,sPath - FileList.WriteLine sPath & vbTab & "(FOLDER)" - End If - 'Get the .msi file - If oFso.FileExists(sScrubDir & "\" & sCompClient & ".msi") Then - sMsiFile = sScrubDir & "\" & sCompClient & ".msi" - Else - sMsiFile = oMsi.ProductInfo(sCompClient,"LocalPackage") - End If - CompVerbose.WriteLine " Set msi file to : " & sMsiFile - If Not Err = 0 Then - CompVerbose.WriteLine " Error: Failed to obtain .msi file for product " & sCompClient - If NOT dicFLError.Exists("Failed to obtain .msi file for product "&sCompClient) Then _ - dicFLError.Add "Failed to obtain .msi file for product "&sCompClient, ComponentID - Err.Clear - End If - CompVerbose.Write " Open .msi file for reading returned: " - Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) - - If Err = 0 Then - CompVerbose.WriteLine " SUCCESS" - 'Get the component name from the 'Component' table - sQuery = "SELECT `Component`,`ComponentId` FROM Component WHERE `ComponentId` = '" & ComponentID &"'" - Set qView = MsiDb.OpenView(sQuery) : qView.Execute - Set Record = qView.Fetch() - If Not Record Is Nothing Then sComponent = Record.Stringdata(1) - CompVerbose.WriteLine " Obtained ComponentId as: " & sComponent - - 'Get filenames from the 'File' table - sQuery = "SELECT `Component_`,`FileName` FROM File WHERE `Component_` = '" & sComponent &"'" - Set qView = MsiDb.OpenView(sQuery) : qView.Execute - Set Record = qView.Fetch() - Do Until Record Is Nothing - 'Read the filename - sFile = Record.StringData(2) - If InStr(sFile,"|") > 0 Then sFile = Mid(sFile,InStr(sFile,"|")+1,Len(sFile)) - 'sFile = sPath & "\" & sFile - CompVerbose.WriteLine " File: " & sPath& "\" & sFile - If Not oDic.Exists(sPath & "\" & sFile) Then - 'Exception handler - fAdd = True - Select Case UCase(sFile) - Case "FPERSON.DLL" - 'Catch exception caused by changed .msi keypath authoring logic for smart tags - For Each prod in oMsi.Products - If NOT Checkdelete(prod) Then - If oMsi.FeatureState(prod, "MSTagPluginNamesFiles") = MSIINSTALLSTATE_LOCAL Then - fAdd = False - Exit For - End If - End If - Next 'prod - Case Else - End Select - If fAdd Then - CompVerbose.WriteLine " Added as new file to dictionary" - oDic.Add sPath & "\" & sFile,sFile - FileList.WriteLine sFile & vbTab & sPath & "\" & sFile - If Len(sFile)>4 Then - sFile = LCase(sFile) - If Right(sFile,4) = ".exe" Then - If NOT dicApps.Exists(sFile) Then - Select Case sFile - Case "setup.exe","ose.exe","osppsvc.exe","explorer.exe" - Case Else - dicApps.Add sFile,LCase(sPath) & "\" & sFile - CompVerbose.WriteLine " Added to the list of processes that need to be closed." - End Select - End If 'dicApps.Exists - End If '.exe - End If 'Len > 4 - End If 'fAdd - End If 'oDic.Exists - Set Record = qView.Fetch() - Loop - Set Record = Nothing - qView.Close - Set qView = Nothing - Else - CompVerbose.WriteLine " Error: Could not read from .msi file" - If NOT dicFLError.Exists("Error: Could not read from .msi file: "&sMsiFile) Then _ - dicFLError.Add "Error: Could not read from .msi file: "&sMsiFile, ComponentID - Err.Clear - End If 'Err = 0 - Else - CompVerbose.WriteLine " Error: File check FAILED" - End If 'FileExists(sPath) - End If - End If 'Len(sPath) > 4 - Else - CompVerbose.WriteLine " RESULT: Component NOT in scope for removal" - If fAffectedComponent Then - 'Add the path to the 'Keep' dictionary - Err.Clear - For Each CompClient In oMsi.ComponentClients(ComponentID) - 'Get the component path - sPath = "" : sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) - sPath = Replace(sPath,"?",":") - - If Len(sPath) > 4 Then - If Left(sPath,1) = "0" Then - 'Registry keypath - - Select Case Left(sPath,2) - Case "00" - sPath = Mid(sPath,5) - hDefKey = HKCR - Case "01" - sPath = Mid(sPath,5) - hDefKey = HKCU - Case "02","22" - sPath = Mid(sPath,5) - hDefKey = HKLM - Case Else - ' - End Select - If NOT dictionaryKeepReg.Exists(LCase(sPath)) Then - dictionaryKeepReg.Add LCase(sPath),hDefKey - End If - Else - 'File keypath - If oFso.FileExists(sPath) Then - If NOT dictionaryKeepFolder.Exists(LCase(sPath)) Then dictionaryKeepFolder.Add LCase(sPath) - sPath = LCase(oFso.GetFile(sPath).ParentFolder) & "\" - If NOT dictionaryKeepFolder.Exists(sPath) Then AddKeepFolder sPath - End If - 'Folder keypath - If oFso.FolderExists(sPath) Then AddKeepFolder sPath - End If 'Is Registry - End If 'sPath > 4 - Next 'CompClient - End If 'fAffectedComponent - End If 'fRemoveComponent - Err.Clear - Next 'ComponentID - On Error Goto 0 - - Log " Done" & vbCrLf - If dicFLError.Count > 0 Then LogOnly Join(dicFLError.Keys,vbCrLf) - If Not oFolderDic.Count = 0 Then arrDeleteFolders = oFolderDic.Keys Else Set arrDeleteFolders = Nothing - If Not oDic.Count = 0 Then arrDeleteFiles = oDic.Keys Else Set arrDeleteFiles = Nothing -End Sub 'ScanComponents -'======================================================================================================= - - -'Try to remove the products by calling setup.exe -Sub SetupExeRemoval - Dim OseService, Service, TextStream - Dim iSetupCnt, RetVal - Dim Sku, sConfigFile, sUninstallCmd, sCatalyst, sDll, sDisplayLevel, sNoCancel - iSetupCnt = 0 - If Not dicRemoveSku.Count > 0 Then - Log " Nothing to remove for Setup.exe" - Exit Sub - End If - - 'Ensure that the OSE service is *installed, *not disabled, *running under System context. - 'If validation fails exit out of this sub. - Set OseService = oWmiLocal.Execquery("Select * From Win32_Service Where Name like 'ose%'") - If OseService.Count = 0 Then Exit Sub - For Each Service in OseService - If (Service.StartMode = "Disabled") AND (Not Service.ChangeStartMode("Manual")=0) Then Exit Sub - If (Not Service.StartName = "LocalSystem") AND (Service.Change( , , , , , , "LocalSystem", "")) Then Exit Sub - Next 'Service - - For Each Sku in dicRemoveSku.Keys - - If Sku="CLICK2RUN" Then - 'Already done - Else - 'Create an "unattended" config.xml file for uninstall - If fQuiet Then sDisplayLevel = "None" Else sDisplayLevel="Basic" - If fNoCancel Then sNoCancel="Yes" Else sNoCancel="No" - Set TextStream = oFso.OpenTextFile(sScrubDir & "\config.xml",FOR_WRITING,True,True) - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Close - Set TextStream = Nothing - - 'Ensure path to setup.exe is valid to prevent errors - sDll = "" - If RegReadValue(HKLM,REG_ARP & OREGREF & Sku,"UninstallString",sCatalyst,"REG_SZ") Then - If InStr(LCase(sCatalyst),"/dll")>0 Then sDll = Right(sCatalyst,Len(sCatalyst)-InStr(LCase(sCatalyst),"/dll")+2) - If InStr(sCatalyst,"/")>0 Then sCatalyst = Left(sCatalyst,InStr(sCatalyst,"/")-1) - sCatalyst = Trim(Replace(sCatalyst,Chr(34),"")) - If NOT oFso.FileExists(sCatalyst) Then - sCatalyst = sCommonProgramFiles & "\" & OREF & "\Office Setup Controller\setup.exe" - If NOT oFso.FileExists(sCatalyst) AND f64 Then - sCatalyst = sCommonProgramFilesX86 & "" & OREF & "\Office Setup Controller\setup.exe" - End If - End If - If oFso.FileExists(sCatalyst) Then - sUninstallCmd = Chr(34) & sCatalyst & Chr(34) & " /uninstall " & Sku & " /config " & Chr(34) & sScrubDir & "\config.xml" & Chr(34) & sDll - iSetupCnt = iSetupCnt + 1 - Log " - Calling Setup.exe to remove " & Sku '& vbCrLf & sUninstallCmd - If Not fDetectOnly Then - On Error Resume Next - ' end other instances of setup - EndCurrentInstalls - ' call uninstall - RetVal = oWShell.Run(sUninstallCmd,0,True) : CheckError "SetupExeRemoval" - Log " - Setup.exe returned: " & SetupRetVal(Retval) & " (" & RetVal & ")" & vbCrLf - fRebootRequired = fRebootRequired OR (RetVal = "3010") - On Error Goto 0 - Else - Log " -> Removal suppressed in preview mode." - End If - Else - Log " Error: Office setup.exe appears to be missing" - End If 'RetVal = 0) AND oFso.FileExists - End If 'RegReadValue - End If - Next 'Sku - If iSetupCnt = 0 Then Log " Nothing to remove for setup." -End Sub 'SetupExeRemoval -'======================================================================================================= - -'Invoke msiexec to remove individual .MSI packages -Sub MsiexecRemoval - - Dim Product - Dim i - Dim sCmd, sReturn, sMsiProp - Dim fRegWipe - - fRegWipe = False - - Select Case OVERSIONMAJOR - Case "11" - sMsiProp = " REBOOT=ReallySuppress NOLOCALCACHEROLLBACK=1" - Case "12" - fRegWipe = True - sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" - Case "14" - fRegWipe = True - sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" - Case "15" - fRegWipe = True - sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" - Case Else - End Select - - 'Clear up ARP first to avoid possible custom action dependencies - If fRegWipe Then RegWipeARP - - 'Check MSI registered products - 'Office System does only support per machine installation so it's sufficient to use Installer.Products - i = 0 - sMsiProp = " MSIRESTARTMANAGERCONTROL=Disable" & sMsiProp - For Each Product in oMsi.Products - If CheckDeleteEx(Product) Then - i = i + 1 - Log " Calling msiexec.exe to remove " & Product - sCmd = "msiexec.exe /x" & Product & sMsiProp - If fQuiet AND NOT fBasic Then - sCmd = sCmd & " /q" - Else - sCmd = sCmd & " /qb-" - End If - sCmd = sCmd & " /l*v+ "&chr(34)&sLogDir&"\Uninstall_"&Product&".log"&chr(34) - If NOT fDetectOnly Then - ' end other instances of setup - EndCurrentInstalls - - 'Execute the uninstall - LogOnly " - Calling msiexec with '"&sCmd&"'" - sReturn = oWShell.Run(sCmd, 0, True) - Log " - msiexec returned: " & SetupRetVal(sReturn) & " (" & sReturn & ")" & vbCrLf - fRebootRequired = fRebootRequired OR (sReturn = "3010") OR (sReturn = "1618") - Else - Log " -> Removal suppressed in preview mode." - LogOnly " -> Command: "&sCmd - End If - End If 'InScope - Next 'Product - If i = 0 Then Log " Nothing to remove for msiexec" -End Sub 'MsiexecRemoval -'======================================================================================================= - -'Remove the OSE (Office Source Engine) service -Sub RemoveOSE - On Error Resume Next - Log vbCrLf & "OSE CleanUp" - DeleteService "ose" - 'Delete the folder - DeleteFolder sCommonProgramFiles & "\Microsoft Shared\Source Engine" - 'Delete the registration - RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\ose\" -End Sub 'RemoveOSE -'======================================================================================================= - - -'File cleanup operations for the Local Installation Source (MSOCache) -Sub WipeLIS - Const LISROOT = "MSOCache\All Users\" - Dim LogicalDisks, Disk, Folder, SubFolder, MseFolder, File, Files - Dim arrSubFolders - Dim sFolder - Dim fRemoveFolder - - Log vbCrLf & "LIS CleanUp" - 'Search all hard disks - Set LogicalDisks = oWmiLocal.ExecQuery("Select * From Win32_LogicalDisk WHERE DriveType=3") - For Each Disk in LogicalDisks - If oFso.FolderExists(Disk.DeviceID & "\" & LISROOT) Then - Set Folder = oFso.GetFolder(Disk.DeviceID & "\" & LISROOT) - For Each Subfolder in Folder.Subfolders - If Len(Subfolder) > 37 Then - If fRemoveAll Then - If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) OR _ - LCase(Right(Subfolder.Name,7)) = OVERSIONMAJOR &".data" Then DeleteFolder Subfolder.Path - Else - If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) AND _ - CheckDelete(UCase(Left(Subfolder.Name,38))) AND _ - UCase(Right(Subfolder,1))= UCase(Left(Disk.DeviceID,1))Then DeleteFolder Subfolder.Path - End If - End If 'Len > 37 - Next 'Subfolder - If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then - sFolder = Folder.Path - Set Folder = Nothing - SmartDeleteFolder sFolder - End If - End If 'oFso.FolderExists - Next 'Disk - - 'MSECache - If EnumFolders(sProgramFiles,arrSubFolders) Then - For Each SubFolder in arrSubFolders - If UCase(Right(SubFolder,9))="\MSECACHE" Then - ReDim arrMseFolders(-1) - Set Folder = oFso.GetFolder(SubFolder) - GetMseFolderStructure Folder - For Each MseFolder in arrMseFolders - If oFso.FolderExists(MseFolder) Then - fRemoveFolder = False - Set Folder = oFso.GetFolder(MseFolder) - Set Files = Folder.Files - For Each File in Files - If (LCase(Right(File.Name,4))=".msi") Then - If CheckDelete(ProductCode(File.Path)) Then - fRemoveFolder = True - Exit For - End If 'CheckDelete - End If - Next 'File - Set Files = Nothing - Set Folder = Nothing - If fRemoveFolder Then SmartDeleteFolder MseFolder - End If 'oFso.FolderExists(MseFolder) - Next 'MseFolder - End If - Next 'SubFolder - End If 'oFso.FolderExists -End Sub 'WipeLis -'======================================================================================================= - -'Wipe files and folders as documented in KB 928218 -Sub FileWipeAll - Dim sFolder - Dim Folder, Subfolder - - If fForce OR fQuiet OR fPassive Then CloseOfficeApps - - 'Handle other services. - Select Case OVERSIONMAJOR - Case "11" - Case "12" - Case "14" - DeleteService "odserv" - DeleteService "Microsoft Office Groove Audit Service" - DeleteService "Microsoft SharePoint Workspace Audit Service" - Case "15" - Case Else - End Select - - 'User specific files - If NOT fKeepUser Then - 'Delete files that should be backed up before deleting them - CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normal.dotm" - CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normalemail.dotm" - sFolder = sAppdata & "\microsoft\document building blocks" - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - For Each Subfolder In Folder.Subfolders - If oFso.FileExists(Subfolder & "\blocks.dotx") Then CopyAndDeleteFile Subfolder & "\blocks.dotx" - Next 'Subfolder - Set Folder = Nothing - End If 'oFso.FolderExists(sFolder) - End If - - 'Run the individual filewipe from component detection first - FileWipeIndividual - If fC2rInstalled AND NOT fForce Then Exit Sub - - 'Take care of the rest - DeleteFolder sOInstallRoot - DeleteFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF - DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" - DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" - DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" - DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" - If (fRemoveOspp OR fForce) AND CInt(OVERSIONMAJOR) > 12 Then - If CInt(OVERSIONMAJOR) = 15 Then CleanOSPP - DeleteService "osppsvc" - DeleteFolder sCommonProgramFiles & "\Microsoft Shared\OfficeSoftwareProtectionPlatform" - DeleteFolder sAllUsersProfile & "\Microsoft\OfficeSoftwareProtectionPlatform" - End If - Select Case OVERSIONMAJOR - Case "12" - Case "14" - DeleteFile oWShell.SpecialFolders("AllUsersStartup")&"\OfficeSAS.lnk" - DeleteFile oWShell.SpecialFolders("Startup")&"\OneNote 2010 Screen Clipper and Launcher.lnk" - Case "15" - Case Else - End Select - DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF - DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" - DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" & OREF - DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" - -End Sub 'FileWipeAll -'======================================================================================================= - -'Wipe individual files & folders related to SKU's that are no longer installed -Sub FileWipeIndividual - Dim LogicalDisks, Disk,sc - Dim File, Files, XmlFile, scFiles, oFile, Folder, SubFolder, Processes, Process, item - Dim sFile, sFolder, sPath, sConfigName, sContents, sProductCode, sLocalDrives,sScQuery - Dim sValue, sScRoots - Dim arrSubfolders, arrShortCutRoots - Dim fKeepFolder, fDeleteSC - Dim iRet,iCnt,iPos - - Log vbCrLf & "File CleanUp" - If IsArray(arrDeleteFiles) Then - If fForce OR fQuiet Then - Log " Doing Action: StopOSE" - iRet = StopService("ose") - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like 'ose%.exe'") - For Each Process in Processes - LogOnly " - Running process : " & Process.Name - Log " -> Ending process: " & Process.Name - iRet = Process.Terminate() - Next 'Process - LogOnly " End Action: StopOSE" - CloseOfficeApps - End If - 'Wipe individual files detected earlier - LogOnly " Removing left behind files" - For Each sFile in arrDeleteFiles - If oFso.FileExists(sFile) Then DeleteFile sFile - Next 'File - End If 'IsArray - - 'Wipe Catalyst in commonfiles - sFolder = sCommonProgramFiles & "\microsoft shared\"&OREF&"\Office Setup Controller\" - If EnumFolderNames(sFolder,arrSubFolders) Then - For Each SubFolder in arrSubFolders - sPath = sFolder & SubFolder - If InStr(SubFolder, ".") > 0 Then sConfigName = UCase(Left(SubFolder, InStr(SubFolder, ".") - 1)) Else sConfigName = UCase(Subfolder) - If GetFolderPath(sPath) Then - Set Folder = oFso.GetFolder(sPath) - Set Files = Folder.Files - fKeepFolder = False - For Each File In Files - If Len(File.Name)>3 Then - If (LCase(Right(File.Name,4))=".xml") Then - If Len(File.Name) >= Len(sConfigName) Then - If (UCase(Left(File.Name,Len(sConfigName)))=sConfigName) Then - Set XmlFile = oFso.OpenTextFile(File,1) - sContents = XmlFile.ReadAll - Set XmlFile = Nothing - sProductCode = "" - On Error Resume Next - sProductCode = Mid(sContents,InStr(sContents,"ProductCode=")+Len("ProductCode=")+1,38) - On Error Goto 0 - If Len(sProductCode) = 38 Then - If CheckDelete(sProductCode) Then DeleteFile File.Path Else fKeepFolder = True - End If - End If 'sConfigName - End If 'Len >= - End If '.xml - End If 'Len(File.Name)>3 - Next 'File - Set Files = Nothing - Set Folder = Nothing - If Not fKeepFolder Then DeleteFolder sPath - End If 'GetFolderPath - Next 'SubFolder - End If 'EnumFolderNames - - 'Wipe Shortcuts - If NOT fSkipSD Then - On Error Resume Next - Log " Searching for shortcuts" - CleanShortcuts sAllUsersProfile, True, False - CleanShortcuts sProfilesDirectory, True, False - On Error Goto 0 - End If 'NOT SkipSD - Err.Clear - -End Sub 'FileWipeIndividual -'======================================================================================================= - -'------------------------------------------------------------------------------- -' CleanShortcuts -' -' Recursively search all profile folders for Office shortcuts in scope -'------------------------------------------------------------------------------- -Sub CleanShortcuts (sFolder, fDelete, fUnPin) - Dim oFolder, fld, file, sc, item - Dim fDeleteSC - - Set oFolder = oFso.GetFolder(sFolder) - ' exclude system protected link folders - If CBool(oFolder.Attributes AND 1024) Then Exit Sub - - On Error Resume Next - For Each fld In oFolder.SubFolders - If Err <> 0 Then - CheckError "CleanShortcuts: " & vbTab & sFolder - Else - CleanShortcuts fld.Path, fDelete, fUnPin - End If - Next - For Each file In oFolder.Files - If LCase(Right(file.Path, 4)) = ".lnk" Then - fDeleteSC = False - LogOnly " check file: " & file.Path - set sc = oWShell.CreateShortcut(file.Path) - If Err <> 0 Then - CheckError "CleanShortcutsSC: " & vbTab & sFolder - Else - 'Compare if the shortcut target is in the list of executables that will be removed - 'LogOnly " - SC.TargetPath: " & sc.TargetPath - If Len(sc.TargetPath) > 0 Then - If InStr(sc.TargetPath,"{{") > 0 Then - 'Handle Windows Installer shortcuts - If Len(sc.TargetPath) >= InStr(sc.TargetPath,"{{") + 37 Then - If CheckDelete(Mid(sc.TargetPath, InStr(sc.TargetPath,"{{"), 38)) Then fDeleteSC = True - End If - Else - 'Handle regular shortcuts - If NOT fBypass_Stage1 Then - ' Compare against results from component scan - For Each item in dicApps.Items - If LCase(sc.TargetPath) = item Then - LogOnly " - removing shortcut per match from component detection: " & file.Path - fDeleteSC = True - Exit For - End If - Next 'item - Else - End If - If NOT oFso.FileExists(sc.TargetPath) Then - ' Shortcut target does not exist - If InStr (sc.TargetPath, OREF) > 0 Then - LogOnly " - removing Office shortcut with non-existent target: " & file.Path & " - " & sc.TargetPath - fDeleteSC = True - Else - 'LogOnly " - keep orphaned SC as target is not in scope: " & sc.TargetPath - End If - Else - 'LogOnly " - keep SC as shortcut target does still exist: " & sc.TargetPath - End If - End If - End If - End If - If fDeleteSC Then - If Not IsArray(arrDeleteFolders) Then ReDim arrDeleteFolders(0) - sFolder = file.Drive & file.Path - If Not arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder Then - ReDim Preserve arrDeleteFolders(UBound(arrDeleteFolders) + 1) - arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder - End If - If fUnPin Then UnPin file - If fDelete Then - If fBypass_Stage1 Then UnPin file - DeleteFile file.Path - End If - fDeleteSC = False - End If 'fDeleteSC - End If - Next - On Error Goto 0 -End Sub 'CleanShortcuts - -'------------------------------------------------------------------------------- -' UnPin -' -' Unpins a shortcut from the taskbar or start menu -'------------------------------------------------------------------------------- -Sub UnPin(file) - Dim fldItem, verb - - On Error Resume Next - Set fldItem = oShellApp.NameSpace(file.ParentFolder.Path).ParseName(file.Name) - For Each verb in fldItem.Verbs - Select Case Replace(verb, "&", "") - Case "Unpin from Taskbar", "Von Taskleiste lösen", "Détacher du barre des tâches", "Détacher de la barre des tâches", "Desanclar de la barra de tareas", "Ta bort från Aktivitetsfältet", "??? ????????(K)", "?? ????? ??(K)", "????????? ?? ?????? ?????" - verb.DoIt - Case "Unpin from Start Menu", "Vom Startmenü lösen", "Détacher du menu Démarrer", "Détacher de la menu Démarrer" - If iVersionNT = 601 Then verb.DoIt - End Select - Next - On Error Goto 0 -End Sub - - -'======================================================================================================= - -Sub DelScrubTmp - - On Error Resume Next - If oFso.FolderExists(sScrubDir & "\ScrubTmp") Then oFso.DeleteFolder sScrubDir & "\ScrubTmp",True - -End Sub 'DelScrubTmp -'======================================================================================================= - -'Ensure there are no unexpected .msi files in the scrub folder -Sub DeleteMsiScrubCache - Dim Folder, File, Files - - Log vbCrLf & "ScrubCache CleanUp" - Set Folder = oFso.GetFolder(sScrubDir) : CheckError "DeleteMsiScrubCache" - Set Files = Folder.Files - For Each File in Files - CheckError "DeleteMsiScrubCache" - If LCase(Right(File.Name,4))=".msi" Then - CheckError "DeleteMsiScrubCache" - DeleteFile File.Path : CheckError "DeleteMsiScrubCache" - End If - Next 'File -End Sub 'DeleteMsiScrubCache -'======================================================================================================= - -Sub MsiClearOrphanedFiles - Const USERSIDEVERYONE = "s-1-1-0" - Const MSIINSTALLCONTEXT_ALL = 7 - Const MSIPATCHSTATE_ALL = 15 - - 'Error handling inlined - On Error Resume Next - - Dim Patch, AllPatches, Product, AllProducts - Dim File, Files, Folder - Dim sFName, sLocalMsp, sLocalMsi, sPatchList, sMsiList - - Set Folder = oFso.GetFolder(sWinDir & "\Installer") - Set Files = Folder.Files - - Log vbCrLf & "Windows Installer cache CleanUp" - 'Get a complete list of patches - Err.Clear - Set AllPatches = oMsi.PatchesEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL,MSIPATCHSTATE_ALL) - If Err <> 0 Then - CheckError "MsiClearOrphanedFiles (msp)" - Else - 'Fill a comma separated stringlist with all .msp patchfiles - For Each Patch in AllPatches - sLocalMsp = "" : sLocalMsp = LCase(Patch.Patchproperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msp)" - sPatchList = sPatchList & sLocalMsp & "," - Next 'Patch - - 'Delete all non referenced .msp files from %windir%\installer - For Each File in Files - sFName = "" : sFName = LCase(File.Path) - If LCase(Right(sFName,4)) = ".msp" Then - If Not InStr(sPatchList,sFName) > 0 Then - 'While this is an orphaned file keep the scope of Office only - If InStr(UCase(MspTargets(File.Path)),OFFICEID)>0 Then DeleteFile File.Path - End If - End If 'LCase(Right(sFName,4)) - Next 'File - End If 'Err=0 - - 'Get a complete list products - Err.Clear - Set AllProducts = oMsi.ProductsEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL) - If Err <> 0 Then - CheckError "MsiClearOrphanedFiles (msi)" - Else - 'Fill a comma separated stringlist with all .msi files - For Each Product in AllProducts - sLocalMsi = "" : sLocalMsi = LCase(Product.InstallProperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msi)" - sMsiList = sMsiList & sLocalMsi & "," - Next 'Product - - 'Delete all non referenced .msi files from %windir%\installer - For Each File in Files - sFName = "" : sFName = LCase(File.Path) - If LCase(Right(sFName,4)) = ".msi" Then - If Not InStr(sMsiList,sFName) > 0 Then - 'While this is an orphaned file keep the scope of Office only - If UCase(Right(ProductCode(File.Path),PRODLEN))=OFFICEID Then DeleteFile File.Path - End If - End If 'LCase(Right(sFName,4)) = ".msi" - Next 'File - End If 'Err=0 - -End Sub 'MsiClearOrphanedFiles -'======================================================================================================= - -Sub RegWipe - Dim Item, Name, Sku, key - Dim hDefKey, sSubKeyName, sCurKey, value, sValue, sGuid - Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion - Dim arrKeys, arrNames, arrTypes, arrMultiSzValues, arrMultiSzNewValues - Dim arrTestNames, arrTestTypes - Dim i, iLoopCnt, iPos - Dim fDelReg - - Log vbCrLf & "Registry CleanUp" - 'Wipe registry data - - 'User Profile settings - Log " - User Policies" - RegDeleteKey HKCU,"Software\Policies\Microsoft\Office\" & OVERSION & "\" - If NOT fKeepUser Then - RegDeleteKey HKCU,"Software\Microsoft\Office\" & OVERSION & "\" - Log " - User Settings" - End If 'fKeepUser - - 'Computer specific settings - If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then - Log " - Machine Settings" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\" & OVERSION & "\" - If fRemoveOse OR fForce Then - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office Test\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","LastAccessInstall", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","MID", False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Excel\Addins\Microsoft.PerformancePoint.Planning.Client.Excel\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerExcelImport\Versions\",OVERSION, False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerWordImport\Versions\",OVERSION, False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Outlook\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\MEWord12\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word12\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word97\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\MEWord12\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word12\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word97\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","GrooveMonitor", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","LobiServer", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","BCSSync", False - RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\Outlook\" - End If - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Office\" & OVERSION & "\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" - - Select Case OVERSIONMAJOR - Case "11" - 'Jet_Replication - sValue = "" - If RegReadValue(HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32","SystemDB",sValue,"REG_SZ") Then - If Len(sValue) > Len(sOInstallRoot) Then - If LCase(Left(sValue,Len(sOInstallRoot))) = LCase(sOInstallRoot) Then RegDeleteKey HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32\" - End If - End If - Case "12" - Case "14" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform_Test\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Common\ActiveX Compatibility\{{00024512-0000-0000-C000-000000000046}\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\OneNote\Adapters\","{{456B0D0E-49DD-4C95-8DB6-175F54DE69A3}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{42042206-2D85-11D3-8CFF-005004838597}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{993BE281-6695-4BA5-8A2A-7AACBFAAB69E}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{0006F045-0000-0000-C000-000000000046}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{C41662BB-1FA0-4CE0-8DC5-9B7F8279FF97}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{7CCA70DB-DE7A-4FB7-9B2B-52E2335A3B5A}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{506F4668-F13E-4AA1-BB04-B43203AB3CC0}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{D66DC78C-4F61-447F-942B-3FB6980118CF}", False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{B4F3A835-0E21-4959-BA22-42B3008E02FF}\" - 'Groove Extensions - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{99FD978C-D287-4F50-827F-B2C658EDA8E7}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{AB5C5600-7E6E-4B06-9197-9ECEF74D31CC}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{920E6DB1-9907-4370-B3A0-BAFC03D81399}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{16F3DD56-1AF5-4347-846D-7C10C4192619}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2916C86E-86A6-43FE-8112-43ABE6BF8DCC}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{6C467336-8281-4E60-8204-430CED96822D}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2A541AE1-5BF6-4665-A8A3-CFA9672E4291}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{A449600E-1DC6-4232-B948-9BD794D62056}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{3D60EDA7-9AB4-4DA8-864C-D9B5F2E7281D}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{387E725D-DC16-4D76-B310-2C93ED4752A0}", False - RegDeleteKey HKLM,"SOFTWARE\Classes\*\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Classes\Folder\ShellEx\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\Background\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 1 (GFS Unread Stub)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2 (GFS Stub)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2.5 (GFS Unread Folder)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 3 (GFS Folder)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 4 (GFS Unread Mark)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}\" - - Case 15 - - Case Else - End Select - - 'Win32Assemblies - Log " - Win32Assemblies" - If RegEnumKey(HKCR,"Installer\Win32Assemblies\",arrKeys) Then - For Each Item in arrKeys - If InStr(UCase(Item),OREF)>0 Then RegDeleteKey HKCR,"Installer\Win32Assemblies\"&Item & "\" - Next 'Item - End If 'RegEnumKey - 'Groove blocks reinstall if it locates groove.exe over this key - If RegKeyExists(HKCR,"GrooveFile\Shell\Open\Command\") Then - sValue = "" - RegReadValue HKCR,"GrooveFile\Shell\Open\Command\","",sValue,"REG_SZ" - If InStr(sValue,"\"&OREF&"\")>0 Then RegDeleteKey HKCR,"GrooveFile\" - End If 'RegKeyExists - End If 'fRemoveAll - - Select Case OVERSIONMAJOR - Case "11" - For iLoopCnt = 1 to 3 - Select Case iLoopCnt - Case 1 - 'CIW - HKCU - sSubKeyName = "Software\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" - hDefKey = HKCU - Case 2 - 'CIW - HKLM - sSubKeyName = "SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" - hDefKey = HKLM - Case 3 - 'Add/Remove Programs - sSubKeyName = REG_ARP - hDefKey = HKLM - End Select - - If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - 'OFFICEID id - If Len(Item)>37 Then - sGuid = UCase(Left(Item,38)) - If Right(sGuid,PRODLEN)=OFFICEID Then - If CheckDelete(sGuid) Then - RegDeleteKey hDefKey, sSubKeyName & Item & "\" - End If - End If 'Right(Item,PRODLEN)=OFFICEID - End If 'Len(Item)>37 - Next 'Item - If iLoopCnt < 3 Then - If RegEnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) Then - i = 0 - For Each Name in arrNames - If RegReadValue(hDefKey,sSubKeyName,Name,sValue,arrTypes(i)) Then - If sValue = sGuid Then RegDeleteValue hDefKey,sSubKeyName,Name, False - End If - i = i + 1 - Next - End If - End If - End If - If NOT RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\" - If NOT RegEnumKey(hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\",arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\" - Next 'iLoopCnt - Case "12" - 'Add/Remove Programs - RegWipeARP - Case "14" - 'Add/Remove Programs - RegWipeARP - Case Else - End Select - - 'UpgradeCodes, WI config, WI global config - For iLoopCnt = 1 to 5 - Select Case iLoopCnt - Case 1 - Log " - HKLM UpgradeCodes" - sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\" - hDefKey = HKLM - Case 2 - Log " - HKCR UpgradeCodes" - sSubKeyName = "Installer\UpgradeCodes\" - hDefKey = HKCR - Case 3 - Log " - HKLM Products" - sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" - hDefKey = HKLM - Case 4 - Log " - HKCR Features" - sSubKeyName = "Installer\Features\" - hDefKey = HKCR - Case 5 - Log " - HKCR Products" - sSubKeyName = "Installer\Products\" - hDefKey = HKCR - Case Else - sSubKeyName = "" - hDefKey = "" - End Select - If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - 'Ensure we have the expected length for a compressed GUID - If Len(Item)=32 Then - 'Expand the GUID - sGuid = GetExpandedGuid(Item) - 'Check if it's an Office key - If CheckDeleteEx (sGuid) Then - RegDeleteKey hDefKey,sSubKeyName & Item & "\" - Else - If iLoopCnt < 3 Then - 'Enum all entries - RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes - If IsArray(arrNames) Then - 'Delete entries within removal scope - For Each Name in arrNames - If Len(Name)=32 Then - sGuid = GetExpandedGuid(Name) - If CheckDelete(sGuid) Then RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True - Else - 'Invalid data -> delete the value - RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True - End If - Next 'Name - End If 'IsArray(arrNames) - 'If all entries were removed - delete the key - RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes - If Not IsArray(arrNames) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" - Else 'iLoopCnt >= 3 - If CheckDelete(sGuid) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" - End If 'iLoopCnt < 3 - End If 'fRemoveAll - End If 'Len(Item)=32 - Next 'Item - End If 'RegEnumKey - Next 'iLoopCnt - - 'Components - Log " - Global Components" - sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\" - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - 'Ensure we have the expected length for a compressed GUID - If Len(Item)=32 Then - If RegEnumValues(HKLM,sSubKeyName & Item,arrNames,arrTypes) Then - If IsArray(arrNames) Then - For Each Name in arrNames - If Len(Name)=32 Then - sGuid = GetExpandedGuid(Name) - If CheckDelete(sGuid) Then - RegDeleteValue HKLM, sSubKeyName & Item & "\", Name, False - 'Check if the key is now empty - If NOT RegEnumValues(HKLM,sSubKeyName & Item,arrTestNames,arrTestTypes) Then - If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR - End If - End If - End If '32 - Next 'Name - End If 'IsArray - End If 'RegEnumValues - End If '32 - Next 'Item - End If 'RegEnumKey - - 'Published Components - Log " - Published Components" - sSubKeyName = "Installer\Components\" - If RegEnumKey(HKCR,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - 'Ensure we have the expected length for a compressed GUID - If Len(Item)=32 Then - If RegEnumValues(HKCR,sSubKeyName & Item,arrNames,arrTypes) Then - If IsArray(arrNames) Then - For Each Name in arrNames - If RegReadValue (HKCR,sSubKeyName & Item, Name, sValue,"REG_MULTI_SZ") Then - arrMultiSzValues = Split(sValue,chr(34)) - If IsArray(arrMultiSzValues) Then - i = -1 - ReDim arrMultiSzNewValues(-1) - fDelReg = False - For Each value in arrMultiSzValues - If Len(value) > 19 Then - sGuid = "" - If GetDecodedGuid(Left(value,SQUISHED),sGuid) Then - If CheckDelete(sGuid) Then - fDelReg = True - Else - i = i + 1 - ReDim Preserve arrMultiSzNewValues(i) - arrMultiSzNewValues(i) = value - End If 'CheckDelete - End If 'decode - End If '19 - Next 'Value - If NOT (i = -1) Then - If NOT fDetectOnly Then - If NOT UBound(arrMultiSzValues) = i Then oReg.SetMultiStringValue HKCR,sSubKeyName & Item,Name,arrMultiSzNewValues - End If - Else - If fDelReg Then - RegDeleteValue HKCR,sSubKeyName & Item & "\", Name, False - 'Check if the key is now empty - If NOT RegEnumValues(HKCR,sSubKeyName & Item,arrTestNames,arrTestTypes) Then - If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR - End If - End If 'DelReg - End If - End If 'IsArray - End If - Next 'Name - End If 'IsArray - End If 'RegEnumValues - End If '32 - Next 'Item - End If 'RegEnumKey - - 'Delivery - Log " - Delivery" - hDefKey = HKLM - sSubKeyName = "SOFTWARE\Microsoft\Office\Delivery\SourceEngine\Downloads\" - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - If Len(Item) > 37 Then - If fRemoveAll Then - If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) OR _ - LCase(Right(Item,7))=OVERSIONMAJOR&".data" Then RegDeleteKey HKLM,sSubKeyName & Item & "\" - Else - If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) AND _ - CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" - End If - End If '37 - Next 'Item - End If 'RegEnumKey - - 'Registration - Log " - HKLM Registration" - hDefKey = HKLM - sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\Registration\" - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - If Len(Item)>37 Then - If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" - End If - Next 'Item - End If 'RegEnumKey - - 'User Preconfigurations - Log " - HKLM User Preconfigurations" - hDefKey = HKLM - sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\User Settings\" - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - If Len(Item)>37 Then - If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" - End If - Next 'Item - End If 'RegEnumKey - - 'Known Keypath settings - Log " - Detcted KeyPath settings" - For Each key in dicDelRegKey.Keys - If Right(key,1) = "\" Then - RegDeleteKey dicDelRegKey.Item(key),key - Else - iPos = InStrRev(Key,"\") - If iPos > 0 Then RegDeleteValue dicDelRegKey.Item(key), Left(key,iPos - 1), Mid(key,iPos+1), False - End If - Next - - 'Temporary entries in ARP - TmpKeyCleanUp -End Sub 'RegWipe -'======================================================================================================= - -'Clean up Add/Remove Programs registry -Sub RegWipeARP - - Dim Item, Name, Sku, key - Dim sSubKeyName, sCurKey, sValue, sGuid - Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion - Dim arrKeys - - 'Add/Remove Programs - sSubKeyName = REG_ARP - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - '*0FF1CE* - If Len(Item)>37 Then - sGuid = UCase(Left(Item,38)) - If CheckDeleteEx(sGuid) Then RegDeleteKey HKLM, sSubKeyName & Item - End If 'Len(Item)>37 - - 'Config entries - sCurKey = sSubKeyName & Item & "\" - fSystemComponent0 = Not (RegReadValue(HKLM,sCurKey,"SystemComponent",sValue,"REG_DWORD") AND (sValue = "1")) - fPackages = RegReadValue(HKLM,sCurKey,OPACKAGE,sValue,"REG_MULTI_SZ") - fDisplayVersion = RegReadValue(HKLM,sCurKey,"DisplayVersion",sValue,"REG_SZ") - If fDisplayVersion AND Len(sValue) > 1 Then - fDisplayVersion = (Left(sValue,2) = OVERSIONMAJOR) - End If - If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then - fKeep = False - If Not fRemoveAll Then - For Each Sku in dictionaryKeepSku.Keys - If UCase(Item) = OREGREF & Sku Then - fkeep = True - Exit For - End If - Next 'Sku - End If - If Not fkeep Then RegDeleteKey HKLM, sSubKeyName & Item - End If - Next 'Item - End If 'RegEnumKey - -End Sub 'RegWipeARP -'======================================================================================================= - -'Clean up temporary registry keys -Sub TmpKeyCleanUp - Dim TmpKey - - If fLogInitialized Then Log " - temporary OffScrub registry entries" - If IsArray(arrTmpSKUs) Then - For Each TmpKey in arrTmpSKUs - oReg.DeleteKey HKLM, REG_ARP & TmpKey - Next 'Item - End If 'IsArray -End Sub 'TmpKeyCleanUp - -'======================================================================================================= -' Helper Functions -'======================================================================================================= - -'Create a log with the results of the SKU detection -Sub LogSkuResults - Dim SkuLog, SkuKey , p - - On Error Resume Next 'Don't fail on logging - - Set SkuLog = oFso.OpenTextFile(sScrubDir & "\SkuLog.txt",FOR_WRITING,True,True) - - SkuLog.WriteLine "Installed SKUs (All):" - SkuLog.WriteLine "=====================" - For Each SkuKey in dicInstalledSku.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Server SKUs:" - SkuLog.WriteLine "============" - For Each SkuKey in dicSrv.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Client Suite SKUs:" - SkuLog.WriteLine "==================" - For Each SkuKey in dicCSuite.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Client Standalone SKUs:" - SkuLog.WriteLine "=======================" - For Each SkuKey in dicCSingle.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Installed Products (All):" - SkuLog.WriteLine "=========================" - For Each p in oMsi.Products - If InScope(p) Then - SkuLog.Write " - " & p & " - " - SkuLog.Write oMsi.ProductInfo(p, "ProductName") - SkuLog.WriteLine " " - End If - Next 'Product - - SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf - - SkuLog.WriteLine vbCrLf & "SKUs to keep:" - SkuLog.WriteLine "=============" - For Each SkuKey in dictionaryKeepSku.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Products to keep:" - SkuLog.WriteLine "=================" - For Each p in dictionaryKeepProd.Keys - SkuLog.Write " - " & p & " - " - SkuLog.Write oMsi.ProductInfo(p, "ProductName") - SkuLog.WriteLine " " - Next 'Key - - SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf - - SkuLog.WriteLine vbCrLf & "SKUs to remove:" - SkuLog.WriteLine "===============" - For Each SkuKey in dicRemoveSku.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Products to remove:" - SkuLog.WriteLine "===================" - For Each p in oMsi.Products - If CheckDeleteEx(p) Then - SkuLog.Write " - " & p & " - " - SkuLog.Write oMsi.ProductInfo(p, "ProductName") - SkuLog.WriteLine " " - End If 'InScope - Next 'Product - - SkuLog.Close - Set SkuLog = Nothing - -End Sub 'LogSkuResults -'======================================================================================================= - -'End all running instances of applications that will be removed -Sub CloseOfficeApps - Dim Processes, Process, prop - Dim fWait - Dim iRet - - On Error Resume Next - - fWait = False - Log " Doing Action: CloseOfficeApps" - - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process") - For Each Process in Processes - If dicApps.Exists(LCase(Process.Name)) Then - Log " - End process " & Process.Name - iRet = Process.Terminate() - CheckError "CloseOfficeApps: " & "Process.Name" - Else - For Each prop in Process.Properties_ - If prop.Name = "ExecutablePath" Then - If InStr(UCase(prop.Value), UCase(sOInstallRoot)) > 0 Then - Log " - End process '" & Process.Name - iRet = Process.Terminate() - CheckError "CloseOfficeApps: " & "Process.Name" - fWait = True - End If - End If 'ExcecutablePath - Next 'prop - End If - Next 'Process - If fWait Then - wscript.sleep 10000 - End If - LogOnly " End Action: CloseOfficeApps" -End Sub 'CloseOfficeApps -'======================================================================================================= - -'Ensure Windows Explorer is restarted if needed -Sub RestoreExplorer - Dim Processes, Result, oAT, DateTime, JobID - Dim sCmd - - 'Non critical routine. Don't fail on error - On Error Resume Next - wscript.sleep 1000 - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='explorer.exe'") - If Processes.Count < 1 Then - oWShell.Run "explorer.exe" - 'To handle this in case of System context, schedule and run as interactive task - If iVersionNT > 502 Then - 'Vista and later - oWShell.Run "SCHTASKS /Create /TN OffScrEx /TR explorer /SC ONCE /ST 12:00 /IT",0,True - oWShell.Run "SCHTASKS /Run /TN OffScrEx", 0, True - oWShell.Run "SCHTASKS /Delete /TN OffScrEx /F", 0, False - Else - Set oAT = oWmiLocal.Get("Win32_ScheduledJob") - Set DateTime = CreateObject("WbemScripting.SWbemDateTime") - DateTime.SetVarDate DateAdd("n",1,Now),True - Result = oAT.Create("explorer.exe", DateTime.Value, , , , True, JobID) - End If 'iVersionNT - End If -End Sub 'RestoreExploer -'======================================================================================================= - -'Returns the delimiter for a passed in string -Function Delimiter (sVersion) - - Dim iCnt, iAsc - - Delimiter = " " - For iCnt = 1 To Len(sVersion) - iAsc = Asc(Mid(sVersion, iCnt, 1)) - If Not (iASC >= 48 And iASC <= 57) Then - Delimiter = Mid(sVersion, iCnt, 1) - Exit Function - End If - Next 'iCnt -End Function -'======================================================================================================= - -'Check registry access permissions. Failure will terminate the script -Function CheckRegPermissions - Const KEY_QUERY_VALUE = &H0001 - Const KEY_SET_VALUE = &H0002 - Const KEY_CREATE_SUB_KEY = &H0004 - Const DELETE = &H00010000 - - Dim sSubKeyName - Dim fReturn - - CheckRegPermissions = True - sSubKeyName = "Software\Microsoft\Windows\" - oReg.CheckAccess HKLM, sSubKeyName, KEY_QUERY_VALUE, fReturn - If Not fReturn Then CheckRegPermissions = False - oReg.CheckAccess HKLM, sSubKeyName, KEY_SET_VALUE, fReturn - If Not fReturn Then CheckRegPermissions = False - oReg.CheckAccess HKLM, sSubKeyName, KEY_CREATE_SUB_KEY, fReturn - If Not fReturn Then CheckRegPermissions = False - oReg.CheckAccess HKLM, sSubKeyName, DELETE, fReturn - If Not fReturn Then CheckRegPermissions = False - -End Function 'CheckRegPermissions -'======================================================================================================= - -'Check if a product will be removed -Function CheckDeleteEx (sProductCode) - - CheckDeleteEx = False - If CheckDelete (sProductCode) Then - CheckDeleteEx = True - Exit Function - End If - If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then - CheckDeleteEx = InScope(sProductCode) AND NOT dictionaryKeepProd.Exists(UCase(sProductCode)) - End If -End Function 'CheckDelete -'======================================================================================================= - -'Check if an Office product is still registered with a SKU that stays on the computer -Function CheckDelete (sProductCode) - - 'Ensure valid GUID length - If NOT Len(sProductCode) = 38 Then - CheckDelete = False - Exit Function - End If - - 'If it's a non Office ProductCode exit with false right away - CheckDelete = InScope(sProductCode) - If Not CheckDelete Then Exit Function - If dictionaryKeepProd.Exists(UCase(sProductCode)) Then CheckDelete = False - -End Function 'CheckDelete -'======================================================================================================= - -'Check if ProductCode is in scope -Function InScope(sProductCode) - - Dim fInScope - Dim sProd - - fInScope = False - If Len(sProductCode) = 38 Then - sProd = UCase(sProductCode) - Select Case OVERSIONMAJOR - Case "11" - If Right(sProd,PRODLEN)=OFFICEID Then fInScope = True - Case "12" - If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True - Case "14" - If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True - Case "15" - If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then - Select Case Mid(sProd, 11, 4) - Case "007E", "008F", "008C", "24E1", "237A" - ' C2R products - keep them - Case Else - fInScope = True - End Select - End If - Case Else - End Select - End If '38 - - InScope = fInScope -End Function 'InScope -'======================================================================================================= - -'Register an orphaned .msi product as installed for MSI -Sub MsiRegisterProduct (sMsiFile) - - Dim sDisplayVersion, sCurKey, sDisplayName, sLang, sProductCode, sTmpKey - Dim iCnt - - 'Create a temporary keys to simulate an installed product - sProductCode = "" - sProductCode = GetMsiProductCode(sMsiFile) - sDisplayVersion = GetMsiProductVersion(sMsiFile) - If sDisplayVersion = "" Then sDisplayVersion = OVERSION & ".0000.0000" - sDisplayName = GetMsiProductName(sMsiFile) - If sDisplayName = "" Then sDisplayName = sProductCode - Select Case OVERSIONMAJOR - Case "9","10","11" - sLang = CInt("&h" & Mid(sProductCode,6,4)) - Case "12","14" - sLang = CInt("&h" & Mid(sProductCode,16,4)) - Case Else - End Select - - For iCnt = 1 To 3 - Select Case iCnt - Case 1 - sCurKey = REG_ARP & sProductCode - oReg.CreateKey HKLM,sCurKey - Case 2 - sCurKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & GetCompressedGuid(sProductCode) - oReg.CreateKey HKLM,sCurKey - oReg.CreateKey HKLM,sCurKey & "\Features" - oReg.CreateKey HKLM,sCurKey & "\InstallProperties" - oReg.CreateKey HKLM,sCurKey & "\Patches" - oReg.CreateKey HKLM,sCurKey & "\Usage" - sCurKey = sCurKey & "\InstallProperties" - oReg.SetStringValue HKLM,sCurKey,"LocalPackage",sMsiFile - Case 3 - sCurKey = "Installer\Products\" & GetCompressedGuid(sProductCode) - sTmpKey = sCurKey - oReg.CreateKey HKCR,sCurKey - oReg.SetDWordValue HKCR,sCurKey,"AdvertiseFlags",388 - oReg.SetDWordValue HKCR,sCurKey,"Assignment",1 - oReg.SetDWordValue HKCR,sCurKey,"AuthorizedLUAApp",0 - oReg.SetStringValue HKCR,sCurKey,"Clients",":" - oReg.SetDWordValue HKCR,sCurKey,"DeploymentFlags",3 - oReg.SetDWordValue HKCR,sCurKey,"InstanceType",0 - oReg.SetDWordValue HKCR,sCurKey,"Language",sLang - oReg.SetStringValue HKCR,sCurKey,"PackageCode",GetMsiPackageCode(sMsiFile) - oReg.SetStringValue HKCR,sCurKey,"ProductName",sDisplayName - oReg.SetDWordValue HKCR,sCurKey,"VersionMinor",0 - sCurKey = sTmpKey & "\SourceList" - oReg.CreateKey HKCR,sCurKey - oReg.SetExpandedStringValue HKCR,sCurKey,"LastUsedSource",sScrubDir - oReg.SetStringValue HKCR,sCurKey,"PackageName",Mid(sMsiFile,InstrRev(sMsiFile,"\")+1) - sCurKey = sTmpKey & "\SourceList\Media" - oReg.CreateKey HKCR,sCurKey - oReg.SetStringValue HKCR,sCurKey,"1",OREF & ";1" - oReg.SetStringValue HKCR,sCurKey,"DiskPrompt",sDisplayName - sCurKey = sTmpKey & "\SourceList\Net" - oReg.CreateKey HKCR,sCurKey - oReg.SetExpandedStringValue HKCR,sCurKey,"1",sScrubDir - - Case Else - End Select - If iCnt <3 Then - oReg.SetStringValue HKLM,sCurKey,"Comments","" - oReg.SetStringValue HKLM,sCurKey,"Contact","" - oReg.SetStringValue HKLM,sCurKey,"DisplayName",sDisplayName - oReg.SetStringValue HKLM,sCurKey,"DisplayVersion",sDisplayVersion - oReg.SetDWordValue HKLM,sCurKey,"EstimatedSize",0 - oReg.SetStringValue HKLM,sCurKey,"HelpLink","" - oReg.SetStringValue HKLM,sCurKey,"HelpTelephone","" - oReg.SetStringValue HKLM,sCurKey,"InstallDate","20100101" - If f64 Then - oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFilesX86 - Else - oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFiles - End If - oReg.SetStringValue HKLM,sCurKey,"InstallSource",sScrubDir - oReg.SetDWordValue HKLM,sCurKey,"Language",sLang - oReg.SetExpandedStringValue HKLM,sCurKey,"ModifyPath","MsiExec.exe /X" & sProductCode - oReg.SetDWordValue HKLM,sCurKey,"NoModify",1 - oReg.SetStringValue HKLM,sCurKey,"Publisher","Microsoft Corporation" - oReg.SetStringValue HKLM,sCurKey,"Readme","" - oReg.SetStringValue HKLM,sCurKey,"Size","" - oReg.SetDWordValue HKLM,sCurKey,"SystemComponent",0 - oReg.SetExpandedStringValue HKLM,sCurKey,"UninstallString","MsiExec.exe /X" & sProductCode - oReg.SetStringValue HKLM,sCurKey,"URLInfoAbout","" - oReg.SetStringValue HKLM,sCurKey,"URLUpdateInfo","" - oReg.SetDWordValue HKLM,sCurKey,"Version",0 - oReg.SetDWordValue HKLM,sCurKey,"VersionMajor",OVERSIONMAJOR - oReg.SetDWordValue HKLM,sCurKey,"VersionMinor",0 - oReg.SetDWordValue HKLM,sCurKey,"WindowsInstaller",1 - End If '< 3 - Next 'iCnt - -End Sub 'MsiRegisterProduct -'======================================================================================================= - -'Obtain the ProductCode (GUID) from a .msi package -'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode -Function GetMsiProductCode(sMsiFile) - - Dim MsiDb,Record - Dim qView - - On Error Resume Next - - GetMsiProductCode = "" - Set Record = Nothing - - Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) - Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductCode'") - qView.Execute - Set Record = qView.Fetch - GetMsiProductCode = Record.StringData(1) - qView.Close - -End Function 'GetMsiProductCode -'======================================================================================================= - -'Obtain the ProductVersion from a .msi package -'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode -Function GetMsiProductVersion(sMsiFile) - - Dim MsiDb,Record - Dim qView - - On Error Resume Next - - GetMsiProductVersion = "" - Set Record = Nothing - - Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) - Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductVersion'") - qView.Execute - Set Record = qView.Fetch - GetMsiProductVersion = Record.StringData(1) - qView.Close - -End Function 'GetMsiProductVersion -'======================================================================================================= - -'Obtain the ProductVersion from a .msi package -'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode -Function GetMsiProductName(sMsiFile) - - Dim MsiDb,Record - Dim qView - - On Error Resume Next - - GetMsiProductName = "" - Set Record = Nothing - - Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) - Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductName'") - qView.Execute - Set Record = qView.Fetch - GetMsiProductName = Record.StringData(1) - qView.Close - -End Function 'GetMsiProductVersion -'======================================================================================================= - -'Obtain the PackageCode (GUID) from a .msi package -'The function will the .msi'S SummaryInformation stream -Function GetMsiPackageCode(sMsiFile) - - On Error Resume Next - - Const PID_REVNUMBER = 9 - - GetMsiPackageCode = "" - GetMsiPackageCode = GetCompressedGuid(oMsi.SummaryInformation(sMsiFile,MSIOPENDATABASEREADONLY).Property(PID_REVNUMBER)) - -End Function 'GetMsiPackageCode -'======================================================================================================= - -'Returns a string with a list of ProductCodes from the summary information stream -Function MspTargets (sMspFile) - Const MSIOPENDATABASEMODE_PATCHFILE = 32 - Const PID_TEMPLATE = 7 - - Dim Msp - 'Non critical routine. Don't fail on error - On Error Resume Next - MspTargets = "" - If oFso.FileExists(sMspFile) Then - Set Msp = Msi.OpenDatabase(WScript.Arguments(0),MSIOPENDATABASEMODE_PATCHFILE) - If Err = 0 Then MspTargets = Msp.SummaryInformation.Property(PID_TEMPLATE) - End If 'oFso.FileExists(sMspFile) -End Function 'MspTargets -'======================================================================================================= - -'Return the ProductCode {{GUID} from a .MSI package -Function ProductCode(sMsi) - Const MSIUILEVELNONE = 2 'No UI - Dim MsiSession - - On Error Resume Next - 'Non critical routine. Don't fail on error - If oFso.FileExists(sMsi) Then - oMsi.UILevel = MSIUILEVELNONE - Set MsiSession = oMsi.OpenPackage(sMsi,1) - ProductCode = MsiSession.ProductProperty("ProductCode") - Set MsiSession = Nothing - Else - ProductCode = "" - End If 'oFso.FileExists(sMsi) -End Function 'ProductCode -'======================================================================================================= - -Function GetUpgradeCode(sGuid) - - 'Ensure Valid Length - If NOT Len(sGuid) = 38 Then Exit Function - - GetUpgradeCode = "{{00" & Mid(sGuid, 4, 2) & "0000-" & Mid(sGuid, 11, 4) & "-0000-" & Mid(sGuid, 21, 1) & "000-" & Mid(sGuid, 26, 1) & "000000FF1CE}" - -End Function 'GetUpgradeCode -'======================================================================================================= - -Function GetExpandedGuid (sGuid) - Dim i - - 'Ensure valid length - If NOT Len(sGuid) = 32 Then Exit Function - - GetExpandedGuid = "{{" & StrReverse(Mid(sGuid,1,8)) & "-" & _ - StrReverse(Mid(sGuid,9,4)) & "-" & _ - StrReverse(Mid(sGuid,13,4))& "-" - For i = 17 To 20 - If i Mod 2 Then - GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) - Else - GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) - End If - Next - GetExpandedGuid = GetExpandedGuid & "-" - For i = 21 To 32 - If i Mod 2 Then - GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) - Else - GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) - End If - Next - GetExpandedGuid = GetExpandedGuid & "}" -End Function -'======================================================================================================= - -'Converts a GUID into the compressed format -Function GetCompressedGuid (sGuid) - Dim sCompGUID - Dim i - - 'Ensure Valid Length - If NOT Len(sGuid) = 38 Then Exit Function - - sCompGUID = StrReverse(Mid(sGuid,2,8)) & _ - StrReverse(Mid(sGuid,11,4)) & _ - StrReverse(Mid(sGuid,16,4)) - For i = 21 To 24 - If i Mod 2 Then - sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) - Else - sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) - End If - Next - For i = 26 To 37 - If i Mod 2 Then - sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) - Else - sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) - End If - Next - GetCompressedGuid = sCompGUID -End Function -'======================================================================================================= - -'Unsquish GUID -Function GetDecodedGuid(sEncGuid, sGuid) - -Dim sDecode, sTable, sHex, iChr -Dim arrTable -Dim i, iAsc, pow85, decChar -Dim lTotal -Dim fFailed - - fFailed = False - - sTable = "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ - "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ - "0xff,0x00,0xff,0xff,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff," & _ - "0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0xff,0xff,0xff,0x16,0xff,0x17," & _ - "0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27," & _ - "0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0xff,0x34,0x35,0x36," & _ - "0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46," & _ - "0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xff,0x53,0x54,0xff" - arrTable = Split(sTable,",") - lTotal = 0 : pow85 = 1 - For i = 0 To 19 - fFailed = True - If i Mod 5 = 0 Then - lTotal = 0 : pow85 = 1 - End If ' i Mod 5 = 0 - iAsc = Asc(Mid(sEncGuid,i+1,1)) - sHex = arrTable(iAsc) - If iAsc >=128 Then Exit For - If sHex = "0xff" Then Exit For - iChr = CInt("&h"&Right(sHex,2)) - lTotal = lTotal + (iChr * pow85) - If i Mod 5 = 4 Then sDecode = sDecode & DecToHex(lTotal) - pow85 = pow85 * 85 - fFailed = False - Next 'i - If NOT fFailed Then sGuid = "{{"&Mid(sDecode,1,8)&"-"& _ - Mid(sDecode,13,4)&"-"& _ - Mid(sDecode,9,4)&"-"& _ - Mid(sDecode,23,2) & Mid(sDecode,21,2)&"-"& _ - Mid(sDecode,19,2) & Mid(sDecode,17,2) & Mid(sDecode,31,2) & Mid(sDecode,29,2) & Mid(sDecode,27,2) & Mid(sDecode,25,2) &"}" - - GetDecodedGuid = NOT fFailed - -End Function 'GetDecodedGuid -'======================================================================================================= - -'Convert a long decimal to hex -Function DecToHex(lDec) - - Dim sHex - Dim iLen - Dim lVal, lExp - Dim arrChr - - arrChr = Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F") - sHex = "" - lVal = lDec - lExp = 16^10 - While lExp >= 1 - If lVal >= lExp Then - sHex = sHex & arrChr(Int(lVal / lExp)) - lVal = lVal - lExp * Int(lVal / lExp) - Else - sHex = sHex & "0" - If sHex = "0" Then sHex = "" - End If - lExp = lExp / 16 - Wend - - iLen = 8 - Len(sHex) - If iLen > 0 Then sHex = String(iLen,"0") & sHex - DecToHex = sHex -End Function -'======================================================================================================= - -'Ensures that only valid metadata entries exist to avoid API failures -Sub EnsureValidWIMetadata (hDefKey,sKey,iValidLength) - -Dim arrKeys -Dim SubKey - -If Len(sKey) > 1 Then - If Right(sKey,1) = "\" Then sKey = Left(sKey,Len(sKey)-1) -End If - -If RegEnumKey(hDefKey,sKey,arrKeys) Then - For Each SubKey in arrKeys - If NOT Len(SubKey) = iValidLength Then - RegDeleteKey hDefKey,sKey & "\" & SubKey & "\" - End If - Next 'SubKey -End If - -End Sub 'EnsureValidWIMetadata -'======================================================================================================= - -'------------------------------------------------------------------------------- -' CleanOSPP -' -' Clean out licenses from the Office Software Protection Platform -'------------------------------------------------------------------------------- -Sub CleanOSPP - Dim oProductInstances, pi - Dim sCleanOSPP, sCmd, sRetVal - - CONST OfficeAppId = "0ff1ce15-a989-479d-af46-f275c6370663" 'Office 2013 - - sCleanOSPP = "x64\CleanOSPP.exe" - If Not f64 Then sCleanOSPP = "x86\CleanOSPP.exe" - If oFso.FileExists(sScriptDir & sCleanOSPP) Then - sCmd = sScriptDir & sCleanOSPP - Log " Running: " & sCmd - On Error Resume Next - sRetVal = oWShell.Run(sCmd, 0, True) - Log " Return value: " & sRetVal - On Error Goto 0 - Exit Sub - End If - - On Error Resume Next - ' Initialize the software protection platform object with a filter on Office 2013 products - If iVersionNT > 601 Then - Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM SoftwareLicensingProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") - Else - Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM OfficeSoftwareProtectionProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") - End If - - ' Remove all licenses - For Each pi in oProductInstances - If NOT IsNull(pi) Then - pi.UninstallProductKey( pi.ProductKeyID) - End If - Next 'pi - -End Sub 'CleanOSPP -'======================================================================================================= - - -'Create a backup copy of the file in the ScrubDir then delete the file -Sub CopyAndDeleteFile(sFile) - Dim File - - 'Error handling inlined - On Error Resume Next - If oFso.FileExists(sFile) Then - Set File = oFso.GetFile(sFile) - If Not oFso.FolderExists(sScrubDir & "\" & File.ParentFolder.Name) Then oFso.CreateFolder sScrubDir & "\" & File.ParentFolder.Name - If Not fDetectOnly Then - LogOnly " - Backing up file: " & sFile - oFso.CopyFile sFile,sScrubDir & "\" & File.ParentFolder.Name & "\" & File.Name,True : CheckError "CopyAndDeleteFile" - Set File = Nothing - DeleteFile(sFile) - Else - LogOnly " - Simulate CopyAndDelete file: " & sFile - End If - End If 'oFso.FileExists -End Sub 'CopyAndDeleteFile -'======================================================================================================= - -'Wrapper to delete a file -Sub DeleteFile(sFile) - Dim File - Dim sFileName, sNewPath - - On Error Resume Next - - If dictionaryKeepFolder.Exists(LCase(sFile)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & sFile - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element: " & sFile - LogOnly " Remaining applications will need a repair!" - End If - End If - If f64 Then - If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFile))) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & sFile - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element: " & sFile - LogOnly " Remaining applications will need a repair!" - End If - End If - End If - - If oFso.FileExists(sFile) Then - LogOnly " - Delete file: " & sFile - If Not fDetectOnly Then oFso.DeleteFile sFile,True - If Err <> 0 Then - CheckError "DeleteFile" - If fForce Then - 'Try to move the file and delete from there - Set File = oFso.GetFile(sFile) - sFileName = File.Name - sNewPath = sScrubDir & "\ScrubTmp" - Set File = Nothing - If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) - 'Move the file - LogOnly " - Move file to: " & sNewPath & "\" & sFileName - oFso.MoveFile sFile,sNewPath & "\" & sFileName - If Err <> 0 Then - CheckError "DeleteFile (move)" - End If 'Err <> 0 - Else - fRebootRequired = True - End If 'fForce - End If 'Err <> 0 - End If 'oFso.FileExists -End Sub 'DeleteFile -'======================================================================================================= - -'64 bit aware wrapper to return the requested folder -Function GetFolderPath(sPath) - GetFolderPath = True - If oFso.FolderExists(sPath) Then Exit Function - If f64 AND oFso.FolderExists(Wow64Folder(sPath)) Then - sPath = Wow64Folder(sPath) - Exit Function - End If - GetFolderPath = False -End Function 'GetFolderPath -'======================================================================================================= - -'Enumerates subfolder names of a folder and returns True if subfolders exist -Function EnumFolderNames (sFolder, arrSubFolders) - Dim Folder, Subfolder - Dim sSubFolders - - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - For Each Subfolder in Folder.Subfolders - sSubFolders = sSubFolders & Subfolder.Name & "," - Next 'Subfolder - End If - If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then - Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) - For Each Subfolder in Folder.Subfolders - sSubFolders = sSubFolders & Subfolder.Name & "," - Next 'Subfolder - End If - If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) - EnumFolderNames = Len(sSubFolders)>0 -End Function 'EnumFolderNames -'======================================================================================================= - -'Enumerates subfolders of a folder and returns True if subfolders exist -Function EnumFolders (sFolder, arrSubFolders) - Dim Folder, Subfolder - Dim sSubFolders - - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - For Each Subfolder in Folder.Subfolders - sSubFolders = sSubFolders & Subfolder.Path & "," - Next 'Subfolder - End If - If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then - Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) - For Each Subfolder in Folder.Subfolders - sSubFolders = sSubFolders & Subfolder.Path & "," - Next 'Subfolder - End If - If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) - EnumFolders = Len(sSubFolders)>0 -End Function 'EnumFolders -'======================================================================================================= - -Sub GetMseFolderStructure (Folder) - Dim SubFolder - - For Each SubFolder in Folder.SubFolders - ReDim Preserve arrMseFolders(UBound(arrMseFolders)+1) - arrMseFolders(UBound(arrMseFolders)) = SubFolder.Path - GetMseFolderStructure SubFolder - Next 'SubFolder -End Sub 'GetMseFolderStructure -'======================================================================================================= - -'Wrapper to delete a folder -Sub DeleteFolder(sFolder) - Dim Folder - Dim sDelFolder, sFolderName, sNewPath - - 'Ensure trailing "\" - sFolder = sFolder & "\" - While InStr(sFolder,"\\")>0 - sFolder = Replace(sFolder,"\\","\") - Wend - - If dictionaryKeepFolder.Exists(LCase(sFolder)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & sFolder - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element: " & sFolder - LogOnly " Remaining applications will need a repair!" - End If - End If - If f64 Then - If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFolder))) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & sFolder - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element: " & sFolder - LogOnly " Remaining applications will need a repair!" - End If - End If - End If - - 'Strip trailing "\" - If Len(sFolder) > 1 Then - sFolder = Left(sFolder,Len(sFolder)-1) - End If - - On Error Resume Next - If oFso.FolderExists(sFolder) Then - sDelFolder = sFolder - ElseIf f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then - sDelFolder = Wow64Folder(sFolder) - Else - Exit Sub - End If - If Not fDetectOnly Then - LogOnly " - Delete folder: " & sDelFolder - oFso.DeleteFolder sDelFolder,True - Else - LogOnly " - Simulate delete folder: " & sDelFolder - End If - If Err <> 0 Then - CheckError "DeleteFolder" - 'Try to move the folder and delete from there - Set Folder = oFso.GetFolder(sDelFolder) - sFolderName = Folder.Name - sNewPath = sScrubDir & "\ScrubTmp" - Set Folder = Nothing - 'Ensure we stay within the same drive - If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) - 'Move the folder - LogOnly " - Moving folder to: " & sNewPath & "\" & sFolderName - oFso.MoveFolder sFolder,sNewPath & "\" & sFolderName - If Err <> 0 Then - CheckError "DeleteFolder (move)" - End If 'Err <> 0 - End If 'Err <> 0 -End Sub 'DeleteFolder -'======================================================================================================= - -'Delete empty folder structures -Sub DeleteEmptyFolders - Dim Folder - Dim sFolder - - ' cosmetic' task don't fail on error - On Error Resume Next - If Not IsArray(arrDeleteFolders) Then Exit Sub - Log vbCrLf & "Empty Folder Cleanup" - For Each sFolder in arrDeleteFolders - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - If CBool(Folder.Attributes AND 1024) Then - 'exclude protected folder - Else - If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then - Set Folder = Nothing - SmartDeleteFolder sFolder - End If - End If - End If - Next 'sFolder - CheckError "DeleteEmptyFolders" - On Error Goto 0 -End Sub 'DeleteEmptyFolders -'======================================================================================================= - -'Delete indivdual empty folder structures -Sub DeleteEmptyFolder (sFolder) - Dim Folder - - ' cosmetic' task don't fail on error - On Error Resume Next - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - If CBool(Folder.Attributes AND 1024) Then - 'exclude protected folder - Else - If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then - Set Folder = Nothing - SmartDeleteFolder sFolder - End If - End If - End If - - CheckError "DeleteEmptyFolder" - On Error Goto 0 -End Sub 'DeleteEmptyFolder -'======================================================================================================= - -'Wrapper to delete a folder and remove the empty parent folder structure -Sub SmartDeleteFolder(sFolder) - If oFso.FolderExists(sFolder) Then - If Not fDetectOnly Then - LogOnly " Request SmartDelete for folder: " & sFolder - SmartDeleteFolderEx sFolder - Else - LogOnly " Simulate request SmartDelete for folder: " & sFolder - End If - End If - If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then - If Not fDetectOnly Then - LogOnly "Request SmartDelete for folder: " & Wow64Folder(sFolder) - SmartDeleteFolderEx Wow64Folder(sFolder) - Else - LogOnly "Simulate request SmartDelete for folder: " & Wow64Folder(sFolder) - End If - End If -End Sub 'SmartDeleteFolder -'======================================================================================================= - -'Executes the folder delete operation -Sub SmartDeleteFolderEx(sFolder) - Dim Folder - - On Error Resume Next - DeleteFolder sFolder : CheckError "SmartDeleteFolderEx" - On Error Goto 0 - Set Folder = oFso.GetFolder(oFso.GetParentFolderName(sFolder)) - If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then SmartDeleteFolderEx(Folder.Path) -End Sub 'SmartDeleteFolderEx -'======================================================================================================= - -'Adds the folder structure to the 'KeepFolder' dictionary -Sub AddKeepFolder(sPath) - - Dim Folder - - 'Ensure trailing "\" - sPath = LCase(sPath) & "\" - While InStr(sPath,"\\")>0 - sPath = Replace(sPath,"\\","\") - Wend - - If NOT dictionaryKeepFolder.Exists (sPath) Then - dictionaryKeepFolder.Add sPath,sPath - Else - Exit Sub - End If - sPath = LCase(oFso.GetParentFolderName(sPath)) & "\" - If oFso.FolderExists(sPath) Then AddKeepFolder(sPath) -End Sub -'======================================================================================================= - -'Handles additional folder-path operations on 64 bit environments -Function Wow64Folder(sFolder) - If LCase(Left(sFolder,Len(sWinDir & "\System32"))) = LCase(sWinDir & "\System32") Then - Wow64Folder = sWinDir & "\syswow64" & Right(sFolder,Len(sFolder)-Len(sSys32Dir)) - ElseIf LCase(Left(sFolder,Len(sProgramFiles))) = LCase(sProgramFiles) Then - Wow64Folder = sProgramFilesX86 & Right(sFolder,Len(sFolder)-Len(sProgramFiles)) - Else - Wow64Folder = "?" 'Return invalid string to ensure the folder cannot exist - End If -End Function 'Wow64Folder -'======================================================================================================= - -Function HiveString(hDefKey) - On Error Resume Next - Select Case hDefKey - Case HKCR : HiveString = "HKEY_CLASSES_ROOT" - Case HKCU : HiveString = "HKEY_CURRENT_USER" - Case HKLM : HiveString = "HKEY_LOCAL_MACHINE" - Case HKU : HiveString = "HKEY_USERS" - Case Else : HiveString = hDefKey - End Select -End Function -'======================================================================================================= - -Function RegKeyExists(hDefKey,sSubKeyName) - Dim arrKeys - RegKeyExists = False - If oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) = 0 Then RegKeyExists = True -End Function -'======================================================================================================= - -Function RegValExists(hDefKey,sSubKeyName,sName) - Dim arrValueTypes, arrValueNames - Dim i - - RegValExists = False - If Not RegKeyExists(hDefKey,sSubKeyName) Then Exit Function - If sName = "" Then - RegValExists = True - Exit Function - End If - If oReg.EnumValues(hDefKey,sSubKeyName,arrValueNames,arrValueTypes) = 0 AND IsArray(arrValueNames) Then - For i = 0 To UBound(arrValueNames) - If LCase(arrValueNames(i)) = Trim(LCase(sName)) Then RegValExists = True - Next - End If 'oReg.EnumValues -End Function -'======================================================================================================= - -'Read the value of a given registry entry -Function RegReadValue(hDefKey, sSubKeyName, sName, sValue, sType) - Dim RetVal - Dim Item - Dim arrValues - - Select Case UCase(sType) - Case "1","REG_SZ" - RetVal = oReg.GetStringValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - - Case "2","REG_EXPAND_SZ" - RetVal = oReg.GetExpandedStringValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetExpandedStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - - Case "7","REG_MULTI_SZ" - RetVal = oReg.GetMultiStringValue(hDefKey,sSubKeyName,sName,arrValues) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetMultiStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,arrValues) - If RetVal = 0 Then sValue = Join(arrValues,chr(34)) - - Case "4","REG_DWORD" - RetVal = oReg.GetDWORDValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then - RetVal = oReg.GetDWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - End If - - Case "3","REG_BINARY" - RetVal = oReg.GetBinaryValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetBinaryValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - - Case "11","REG_QWORD" - RetVal = oReg.GetQWORDValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetQWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - - Case Else - RetVal = -1 - End Select 'sValue - - RegReadValue = (RetVal = 0) -End Function 'RegReadValue -'======================================================================================================= - -'Enumerate a registry key to return all values -Function RegEnumValues(hDefKey,sSubKeyName,arrNames, arrTypes) - Dim RetVal, RetVal64 - Dim arrNames32, arrNames64, arrTypes32, arrTypes64 - - If f64 Then - RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames32,arrTypes32) - RetVal64 = oReg.EnumValues(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrNames64,arrTypes64) - If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrTypes32) Then - arrNames = arrNames32 - arrTypes = arrTypes32 - End If - If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames64) AND IsArray(arrTypes64) Then - arrNames = arrNames64 - arrTypes = arrTypes64 - End If - If (RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrNames64) AND IsArray(arrTypes32) AND IsArray(arrTypes64) Then - arrNames = RemoveDuplicates(Split((Join(arrNames32,"\") & "\" & Join(arrNames64,"\")),"\")) - arrTypes = RemoveDuplicates(Split((Join(arrTypes32,"\") & "\" & Join(arrTypes64,"\")),"\")) - End If - Else - RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) - End If 'f64 - RegEnumValues = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrNames) AND IsArray(arrTypes) -End Function 'RegEnumValues -'======================================================================================================= - -'Enumerate a registry key to return all subkeys -Function RegEnumKey(hDefKey,sSubKeyName,arrKeys) - Dim RetVal, RetVal64 - Dim arrKeys32, arrKeys64 - - If f64 Then - RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys32) - RetVal64 = oReg.EnumKey(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrKeys64) - If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrKeys32) Then arrKeys = arrKeys32 - If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrKeys64) Then arrKeys = arrKeys64 - If (RetVal = 0) AND (RetVal64 = 0) Then - If IsArray(arrKeys32) AND IsArray (arrKeys64) Then - arrKeys = RemoveDuplicates(Split((Join(arrKeys32,"\") & "\" & Join(arrKeys64,"\")),"\")) - ElseIf IsArray(arrKeys64) Then - arrKeys = arrKeys64 - Else - arrKeys = arrKeys32 - End If - End If - Else - RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) - End If 'f64 - RegEnumKey = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrKeys) -End Function 'RegEnumKey -'======================================================================================================= - -'Wrapper around oReg.DeleteValue to handle 64 bit -Sub RegDeleteValue(hDefKey, sSubKeyName, sName, fRegMultiSZ) - Dim sWow64Key,sRealName - Dim iRetVal - - sRealName = sName - If UCase(sName) = "(DEFAULT)" Then sRealName = "" - - If dictionaryKeepReg.Exists(LCase(sSubKeyName & sName)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" - End If - End If - If f64 Then - If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName) & sName)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" - End If - End If - End If - - If RegValExists(hDefKey,sSubKeyName,sRealName) Then - On Error Resume Next - If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then - LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName - Exit Sub - End If - If Not fDetectOnly Then - LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName - iRetVal = 0 - iRetVal = oReg.DeleteValue(hDefKey, sSubKeyName, sRealName) - CheckError "RegDeleteValue" - If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal - Else - LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName - End If - On Error Goto 0 - End If 'RegValExists - If f64 Then - sWow64Key = Wow64Key(hDefKey, sSubKeyName) - If RegValExists(hDefKey,sWow64Key,sRealName) Then - On Error Resume Next - If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then - LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName - Exit Sub - End If - If Not fDetectOnly Then - LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName - iRetVal = 0 - iRetVal = oReg.DeleteValue(hDefKey, sWow64Key, sRealName) - CheckError "RegDeleteValue" - If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal - Else - LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName - End If - On Error Goto 0 - End If 'RegKeyExists - End If -End Sub 'RegDeleteValue -'======================================================================================================= - -'Wrappper around RegDeleteKeyEx to handle 64bit scenrios -Sub RegDeleteKey(hDefKey, sSubKeyName) - Dim sWow64Key - - 'Ensure trailing "\" - sSubKeyName = sSubKeyName & "\" - While InStr(sSubKeyName,"\\")>0 - sSubKeyName = Replace(sSubKeyName,"\\","\") - Wend - - If dictionaryKeepReg.Exists(LCase(sSubKeyName)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" - End If - End If - If f64 Then - If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName))) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" - End If - End If - End If - - If Len(sSubKeyName) > 1 Then - 'Strip of trailing "\" - sSubKeyName = Left(sSubKeyName,Len(sSubKeyName)-1) - End If - - If RegKeyExists(hDefKey, sSubKeyName) Then - If Not fDetectOnly Then - LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName - On Error Resume Next - RegDeleteKeyEx hDefKey, sSubKeyName - On Error Goto 0 - Else - LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName - End If - End If 'RegKeyExists - If f64 Then - sWow64Key = Wow64Key(hDefKey, sSubKeyName) - If RegKeyExists(hDefKey,sWow64Key) Then - If Not fDetectOnly Then - LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key - On Error Resume Next - RegDeleteKeyEx hDefKey, sWow64Key - On Error Goto 0 - Else - LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key - End If - End If 'RegKeyExists - End If -End Sub 'RegDeleteKey -'======================================================================================================= - -'Recursively delete a registry structure -Sub RegDeleteKeyEx(hDefKey, sSubKeyName) - Dim arrSubkeys - Dim sSubkey - Dim iRetVal - - On Error Resume Next - oReg.EnumKey hDefKey, sSubKeyName, arrSubkeys - If IsArray(arrSubkeys) Then - For Each sSubkey In arrSubkeys - RegDeleteKeyEx hDefKey, sSubKeyName & "\" & sSubkey - Next - End If - If Not fDetectOnly Then - iRetVal = 0 - iRetVal = oReg.DeleteKey(hDefKey,sSubKeyName) - If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal - End If -End Sub 'RegDeleteKeyEx -'======================================================================================================= - -'Return the alternate regkey location on 64bit environment -Function Wow64Key(hDefKey, sSubKeyName) - Dim iPos - - Select Case hDefKey - Case HKCU - If Left(sSubKeyName,17) = "Software\Classes\" Then - Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) - Else - iPos = InStr(sSubKeyName,"\") - Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) - End If - - Case HKLM - If Left(sSubKeyName,17) = "Software\Classes\" Then - Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) - Else - iPos = InStr(sSubKeyName,"\") - Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) - End If - - Case Else - Wow64Key = "Wow6432Node\" & sSubKeyName - - End Select 'hDefKey -End Function 'Wow64Key -'======================================================================================================= - -'Remove duplicate entries from a one dimensional array -Function RemoveDuplicates(Array) - Dim Item - Dim oDic - - Set oDic = CreateObject("Scripting.Dictionary") - For Each Item in Array - If Not oDic.Exists(Item) Then oDic.Add Item,Item - Next 'Item - RemoveDuplicates = oDic.Keys -End Function 'RemoveDuplicates -'======================================================================================================= - -'End running instances of setup -Sub EndCurrentInstalls () - Dim Processes, Process - Dim iRet - - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like '%setup%' OR Name like '%install%'") - For Each Process in Processes - Log " - End process " & Process.Name - iRet = Process.Terminate() - CheckError "EndCurrentInstalls: " & "Process.Name" - Next 'Process - StopService "msiserver" -End Sub 'EndCurrentInstalls -'======================================================================================================= - -'Uses WMI to stop a service -Function StopService(sService) - Dim Services, Service - Dim sQuery - Dim iRet - - On Error Resume Next - - iRet = 0 - sQuery = "Select * From Win32_Service Where Name='" & sService & "'" - Set Services = oWmiLocal.Execquery(sQuery) - 'Stop the service - For Each Service in Services - If UCase(Service.State) = "STARTED" Then iRet = Service.StopService - If UCase(Service.State) = "RUNNING" Then iRet = Service.StopService - - Next 'Service - StopService = (iRet = 0) -End Function 'StopService -'======================================================================================================= - -'Delete a service -Sub DeleteService(sService) - Dim Services, Service, Processes, Process - Dim sQuery, sStates - Dim iRet - - On Error Resume Next - - sStates = "STARTED;RUNNING" - sQuery = "Select * From Win32_Service Where Name='" & sService & "'" - Set Services = oWmiLocal.Execquery(sQuery) - - 'Stop and delete the service - For Each Service in Services - Log " Found service " & sService & " in state " & Service.State - If InStr(sStates,UCase(Service.State))>0 Then iRet = Service.StopService() - 'Ensure no more instances of the service are running - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='" & sService & ".exe'") - For Each Process in Processes - iRet = Process.Terminate() - Next 'Process - If Not fDetectOnly Then - Log " - Deleting Service -> " & sService - iRet = Service.Delete() - Else - Log " - Simulate deleting Service -> " & sService - End If - Next 'Service - Set Services = Nothing - Err.Clear - -End Sub 'DeleteService -'======================================================================================================= - -'Translation for setup.exe error codes -Function SetupRetVal(RetVal) - Select Case RetVal - Case 0 : SetupRetVal = "Success" - Case 30001,1 : SetupRetVal = "AbstractMethod" - Case 30002,2 : SetupRetVal = "ApiProhibited" - Case 30003,3 : SetupRetVal = "AlreadyImpersonatingAUser" - Case 30004,4 : SetupRetVal = "AlreadyInitialized" - Case 30005,5 : SetupRetVal = "ArgumentNullException" - Case 30006,6 : SetupRetVal = "AssertionFailed" - Case 30007,7 : SetupRetVal = "CABFileAddFailed" - Case 30008,8 : SetupRetVal = "CommandFailed" - Case 30009,9 : SetupRetVal = "ConcatenationFailed" - Case 30010,10 : SetupRetVal = "CopyFailed" - Case 30011,11 : SetupRetVal = "CreateEventFailed" - Case 30012,12 : SetupRetVal = "CustomizationPatchNotFound" - Case 30013,13 : SetupRetVal = "CustomizationPatchNotApplicable" - Case 30014,14 : SetupRetVal = "DuplicateDefinition" - Case 30015,15 : SetupRetVal = "ErrorCodeOnly - Passthrough for Win32 error" - Case 30016,16 : SetupRetVal = "ExceptionNotThrown" - Case 30017,17 : SetupRetVal = "FailedToImpersonateUser" - Case 30018,18 : SetupRetVal = "FailedToInitializeFlexDataSource" - Case 30019,19 : SetupRetVal = "FailedToStartClassFactories" - Case 30020,20 : SetupRetVal = "FileNotFound" - Case 30021,21 : SetupRetVal = "FileNotOpen" - Case 30022,22 : SetupRetVal = "FlexDialogAlreadyInitialized" - Case 30023,23 : SetupRetVal = "HResultOnly - Passthrough for HRESULT errors" - Case 30024,24 : SetupRetVal = "HWNDNotFound" - Case 30025,25 : SetupRetVal = "IncompatibleCacheAction" - Case 30026,26 : SetupRetVal = "IncompleteProductAddOns" - Case 30027,27 : SetupRetVal = "InstalledProductStateCorrupt" - Case 30028,28 : SetupRetVal = "InsufficientBuffer" - Case 30029,29 : SetupRetVal = "InvalidArgument" - Case 30030,30 : SetupRetVal = "InvalidCDKey" - Case 30031,31 : SetupRetVal = "InvalidColumnType" - Case 30032,31 : SetupRetVal = "InvalidConfigAddLanguage" - Case 30033,33 : SetupRetVal = "InvalidData" - Case 30034,34 : SetupRetVal = "InvalidDirectory" - Case 30035,35 : SetupRetVal = "InvalidFormat" - Case 30036,36 : SetupRetVal = "InvalidInitialization" - Case 30037,37 : SetupRetVal = "InvalidMethod" - Case 30038,38 : SetupRetVal = "InvalidOperation" - Case 30039,39 : SetupRetVal = "InvalidParameter" - Case 30040,40 : SetupRetVal = "InvalidProductFromARP" - Case 30041,41 : SetupRetVal = "InvalidProductInConfigXml" - Case 30042,42 : SetupRetVal = "InvalidReference" - Case 30043,43 : SetupRetVal = "InvalidRegistryValueType" - Case 30044,44 : SetupRetVal = "InvalidXMLProperty" - Case 30045,45 : SetupRetVal = "InvalidMetadataFile" - Case 30046,46 : SetupRetVal = "LogNotInitialized" - Case 30047,47 : SetupRetVal = "LogAlreadyInitialized" - Case 30048,48 : SetupRetVal = "MissingXMLNode" - Case 30049,49 : SetupRetVal = "MsiTableNotFound" - Case 30050,50 : SetupRetVal = "MsiAPICallFailure" - Case 30051,51 : SetupRetVal = "NodeNotOfTypeElement" - Case 30052,52 : SetupRetVal = "NoMoreGraceBoots" - Case 30053,53 : SetupRetVal = "NoProductsFound" - Case 30054,54 : SetupRetVal = "NoSupportedCulture" - Case 30055,55 : SetupRetVal = "NotYetImplemented" - Case 30056,56 : SetupRetVal = "NotAvailableCulture" - Case 30057,57 : SetupRetVal = "NotCustomizationPatch" - Case 30058,58 : SetupRetVal = "NullReference" - Case 30059,59 : SetupRetVal = "OCTPatchForbidden" - Case 30060,60 : SetupRetVal = "OCTWrongMSIDll" - Case 30061,61 : SetupRetVal = "OutOfBoundsIndex" - Case 30062,62 : SetupRetVal = "OutOfDiskSpace" - Case 30063,63 : SetupRetVal = "OutOfMemory" - Case 30064,64 : SetupRetVal = "OutOfRange" - Case 30065,65 : SetupRetVal = "PatchApplicationFailure" - Case 30066,66 : SetupRetVal = "PreReqCheckFailure" - Case 30067,67 : SetupRetVal = "ProcessAlreadyStarted" - Case 30068,68 : SetupRetVal = "ProcessNotStarted" - Case 30069,69 : SetupRetVal = "ProcessNotFinished" - Case 30070,70 : SetupRetVal = "ProductAlreadyDefined" - Case 30071,71 : SetupRetVal = "ResourceAlreadyTracked" - Case 30072,72 : SetupRetVal = "ResourceNotFound" - Case 30073,73 : SetupRetVal = "ResourceNotTracked" - Case 30074,74 : SetupRetVal = "SQLAlreadyConnected" - Case 30075,75 : SetupRetVal = "SQLFailedToAllocateHandle" - Case 30076,76 : SetupRetVal = "SQLFailedToConnect" - Case 30077,77 : SetupRetVal = "SQLFailedToExecuteStatement" - Case 30078,78 : SetupRetVal = "SQLFailedToRetrieveData" - Case 30079,79 : SetupRetVal = "SQLFailedToSetAttribute" - Case 30080,80 : SetupRetVal = "StorageNotCreated" - Case 30081,81 : SetupRetVal = "StreamNameTooLong" - Case 30082,82 : SetupRetVal = "SystemError" - Case 30083,83 : SetupRetVal = "ThreadAlreadyStarted" - Case 30084,84 : SetupRetVal = "ThreadNotStarted" - Case 30085,85 : SetupRetVal = "ThreadNotFinished" - Case 30086,86 : SetupRetVal = "TooManyProducts" - Case 30087,87 : SetupRetVal = "UnexpectedXMLNodeType" - Case 30088,88 : SetupRetVal = "UnexpectedError" - Case 30089,89 : SetupRetVal = "Unitialized" - Case 30090,90 : SetupRetVal = "UserCancel" - Case 30091,91 : SetupRetVal = "ExternalCommandFailed" - Case 30092,92 : SetupRetVal = "SPDatabaseOverSize" - Case 30093,93 : SetupRetVal = "IntegerTruncation" - 'msiexec return values - Case 1259 : SetupRetVal = "APPHELP_BLOCK" - Case 1601 : SetupRetVal = "INSTALL_SERVICE_FAILURE" - Case 1602 : SetupRetVal = "INSTALL_USEREXIT" - Case 1603 : SetupRetVal = "INSTALL_FAILURE" - Case 1604 : SetupRetVal = "INSTALL_SUSPEND" - Case 1605 : SetupRetVal = "UNKNOWN_PRODUCT" - Case 1606 : SetupRetVal = "UNKNOWN_FEATURE" - Case 1607 : SetupRetVal = "UNKNOWN_COMPONENT" - Case 1608 : SetupRetVal = "UNKNOWN_PROPERTY" - Case 1609 : SetupRetVal = "INVALID_HANDLE_STATE" - Case 1610 : SetupRetVal = "BAD_CONFIGURATION" - Case 1611 : SetupRetVal = "INDEX_ABSENT" - Case 1612 : SetupRetVal = "INSTALL_SOURCE_ABSENT" - Case 1613 : SetupRetVal = "INSTALL_PACKAGE_VERSION" - Case 1614 : SetupRetVal = "PRODUCT_UNINSTALLED" - Case 1615 : SetupRetVal = "BAD_QUERY_SYNTAX" - Case 1616 : SetupRetVal = "INVALID_FIELD" - Case 1618 : SetupRetVal = "INSTALL_ALREADY_RUNNING" - Case 1619 : SetupRetVal = "INSTALL_PACKAGE_OPEN_FAILED" - Case 1620 : SetupRetVal = "INSTALL_PACKAGE_INVALID" - Case 1621 : SetupRetVal = "INSTALL_UI_FAILURE" - Case 1622 : SetupRetVal = "INSTALL_LOG_FAILURE" - Case 1623 : SetupRetVal = "INSTALL_LANGUAGE_UNSUPPORTED" - Case 1624 : SetupRetVal = "INSTALL_TRANSFORM_FAILURE" - Case 1625 : SetupRetVal = "INSTALL_PACKAGE_REJECTED" - Case 1626 : SetupRetVal = "FUNCTION_NOT_CALLED" - Case 1627 : SetupRetVal = "FUNCTION_FAILED" - Case 1628 : SetupRetVal = "INVALID_TABLE" - Case 1629 : SetupRetVal = "DATATYPE_MISMATCH" - Case 1630 : SetupRetVal = "UNSUPPORTED_TYPE" - Case 1631 : SetupRetVal = "CREATE_FAILED" - Case 1632 : SetupRetVal = "INSTALL_TEMP_UNWRITABLE" - Case 1633 : SetupRetVal = "INSTALL_PLATFORM_UNSUPPORTED" - Case 1634 : SetupRetVal = "INSTALL_NOTUSED" - Case 1635 : SetupRetVal = "PATCH_PACKAGE_OPEN_FAILED" - Case 1636 : SetupRetVal = "PATCH_PACKAGE_INVALID" - Case 1637 : SetupRetVal = "PATCH_PACKAGE_UNSUPPORTED" - Case 1638 : SetupRetVal = "PRODUCT_VERSION" - Case 1639 : SetupRetVal = "INVALID_COMMAND_LINE" - Case 1640 : SetupRetVal = "INSTALL_REMOTE_DISALLOWED" - Case 1641 : SetupRetVal = "SUCCESS_REBOOT_INITIATED" - Case 1642 : SetupRetVal = "PATCH_TARGET_NOT_FOUND" - Case 1643 : SetupRetVal = "PATCH_PACKAGE_REJECTED" - Case 1644 : SetupRetVal = "INSTALL_TRANSFORM_REJECTED" - Case 1645 : SetupRetVal = "INSTALL_REMOTE_PROHIBITED" - Case 1646 : SetupRetVal = "PATCH_REMOVAL_UNSUPPORTED" - Case 1647 : SetupRetVal = "UNKNOWN_PATCH" - Case 1648 : SetupRetVal = "PATCH_NO_SEQUENCE" - Case 1649 : SetupRetVal = "PATCH_REMOVAL_DISALLOWED" - Case 1650 : SetupRetVal = "INVALID_PATCH_XML" - Case 3010 : SetupRetVal = "SUCCESS_REBOOT_REQUIRED" - Case Else : SetupRetVal = "Unknown Return Value" - End Select -End Function 'SetupRetVal -'======================================================================================================= - -Function GetProductID(sProdID) - Dim sReturn - - Select Case sProdId - - Case "000F" : sReturn = "MONDO" - Case "0010" : sReturn = "WEBFLDRS" - Case "0011" : sReturn = "PROPLUS" - Case "0012" : sReturn = "STANDARD" - Case "0013" : sReturn = "BASIC" - Case "0014" : sReturn = "PRO" - Case "0015" : sReturn = "ACCESS" - Case "0016" : sReturn = "EXCEL" - Case "0017" : sReturn = "SharePointDesigner" - Case "0018" : sReturn = "PowerPoint" - Case "0019" : sReturn = "Publisher" - Case "001A" : sReturn = "Outlook" - Case "001B" : sReturn = "Word" - Case "001C" : sReturn = "AccessRuntime" - Case "001F" : sReturn = "Proof" - Case "0020" : sReturn = "O2007CNV" - Case "0021" : sReturn = "VisualWebDeveloper" - Case "0026" : sReturn = "ExpressionWeb" - Case "0029" : sReturn = "Excel" - Case "002A" : sReturn = "Office64" - Case "002B" : sReturn = "Word" - Case "002C" : sReturn = "Proofing" - Case "002E" : sReturn = "Ultimate" - Case "002F" : sReturn = "HomeAndStudent" - Case "0028" : sReturn = "IME" - Case "0030" : sReturn = "Enterprise" - Case "0031" : sReturn = "ProfessionalHybrid" - Case "0033" : sReturn = "Personal" - Case "0035" : sReturn = "ProfessionalHybrid" - Case "0037" : sReturn = "PowerPoint" - Case "0038" : sReturn = "OlTimeZoneTool" - Case "003A" : sReturn = "PrjStd" - Case "003B" : sReturn = "PrjPro" - Case "003D" : sReturn = "SINGLEIMAGE" - Case "0043" : sReturn = "OFFICE32" - Case "0044" : sReturn = "InfoPath" - Case "0045" : sReturn = "XWEB" - Case "0048" : sReturn = "OLC" - Case "0049" : sReturn = "ACADEMIC" - Case "004A" : sReturn = "OWC11" - Case "0051" : sReturn = "VISPRO" - Case "0052" : sReturn = "VisView" - Case "0053" : sReturn = "VisStd" - Case "0054" : sReturn = "VisMUI" - Case "0055" : sReturn = "VisMUI" - Case "0057" : sReturn = "VISIO" - Case "0061" : sReturn = "CLICK2RUN" - Case "0062" : sReturn = "CLICK2RUN" - Case "0066" : sReturn = "CLICK2RUN" - Case "006C" : sReturn = "CLICK2RUN" - Case "006D" : sReturn = "CLICK2RUN" - Case "006E" : sReturn = "Shared" - Case "006F" : sReturn = "OFFICE" - Case "0070" : sReturn = "OOBE" - Case "0074" : sReturn = "STARTER" - Case "007A" : sReturn = "OLC" 'Outlook Connector - Case "007C" : sReturn = "OSCFB" 'Outlook Social Connector for FaceBook - Case "007D" : sReturn = "OSCWL" 'Outlook Social Connector for Windows Live Messenger - Case "007F" : sReturn = "OLC" 'Outlook Social Connector - Case "008A" : sReturn = "RecentDocs" - Case "008B" : sReturn = "SmallBusinessBasics" - Case "00A1" : sReturn = "ONENOTE" - Case "00A3" : sReturn = "OneNoteHomeStudent" - Case "00A4" : sReturn = "OWC11" - Case "00A7" : sReturn = "CPAO" - Case "00A9" : sReturn = "InterConnect" - Case "00AF" : sReturn = "PPtView" - Case "00B0" : sReturn = "ExPdf" - Case "00B1" : sReturn = "ExXps" - Case "00B2" : sReturn = "ExPdfXps" - Case "00B4" : sReturn = "PrjMUI" - Case "00B5" : sReturn = "PrjtMUI" - Case "00B9" : sReturn = "AER" - Case "00BA" : sReturn = "Groove" - Case "00CA" : sReturn = "SmallBusiness" - Case "00E0" : sReturn = "Outlook" - Case "00D1" : sReturn = "ACE" - Case "0100" : sReturn = "OfficeMUI" - Case "0101" : sReturn = "OfficeXMUI" - Case "0103" : sReturn = "PTK" - Case "0114" : sReturn = "GrooveSetupMetadata" - Case "0115" : sReturn = "SharedSetupMetadata" - Case "0116" : sReturn = "SharedSetupMetadata" - Case "0117" : sReturn = "AccessSetupMetadata" - Case "011A" : sReturn = "SendASmile" - Case "011D" : sReturn = "ProPlusSubscription" - Case "011F" : sReturn = "OLConnect" - Case "0126" : sReturn = "WWLIBCXM" - - Case "1014" : sReturn = "STS" - Case "1015" : sReturn = "WSSMUI" - Case "1032" : sReturn = "PJSVRAPP" - Case "104B" : sReturn = "SPS" - Case "104E" : sReturn = "SPSMUI" - Case "107F" : sReturn = "OSrv" - Case "1080" : sReturn = "OSrv" - Case "1088" : sReturn = "lpsrvwfe" - Case "10D7" : sReturn = "IFS" - Case "10D8" : sReturn = "IFSMUI" - Case "10EB" : sReturn = "DLCAPP" - Case "10F5" : sReturn = "XLSRVAPP" - Case "10F6" : sReturn = "XlSrvWFE" - Case "10F7" : sReturn = "DLC" - Case "10F8" : sReturn = "SlSrvMui" - Case "10FB" : sReturn = "OSrchWFE" - Case "10FC" : sReturn = "OSRCHAPP" - Case "10FD" : sReturn = "OSrchMUI" - Case "1103" : sReturn = "DLC" - Case "1104" : sReturn = "LHPSRV" - Case "1105" : sReturn = "PIA" - Case "1106" : sReturn = "GRVMGMTSRV" - Case "1109" : sReturn = "GSERVERRELAY" - Case "110D" : sReturn = "OSERVER" - Case "110F" : sReturn = "PSERVER" - Case "1110" : sReturn = "WSS" - Case "1121" : sReturn = "SPSSDK" - Case "1122" : sReturn = "SPSDev" - Case "1163" : sReturn = "SCC" 'SharePoint Client Components - Case Else : sReturn = sProdID - - End Select 'sProdId - GetProductID = sReturn -End Function 'GetProductID -'======================================================================================================= - -Sub Log (sLog) - If NOT fQuiet AND fCScript Then wscript.echo sLog - LogStream.WriteLine sLog -End Sub 'Log -'======================================================================================================= - -Sub LogOnly (sLog) - LogStream.WriteLine sLog -End Sub 'Log -'======================================================================================================= - -Sub CheckError(sModule) - If Err <> 0 Then - LogOnly " " & Now & " - " & sModule & " - Source: " & Err.Source & "; Err# (Hex): " & Hex( Err ) & _ - "; Err# (Dec): " & Err & "; Description : " & Err.Description - End If 'Err = 0 - Err.Clear -End Sub -'======================================================================================================= - -'Command line parser -Sub ParseCmdLine - - Dim iCnt, iArgCnt - Dim arrArguments - Dim sArg0, sArguments - - iArgCnt = Wscript.Arguments.Count - If iArgCnt > 1 Then - If wscript.Arguments(1) = "UAC" Then - If wscript.arguments.count = 2 Then iArgCnt = 0 - End If - End If - - sArguments = "" - If iArgCnt = 0 Then - If sDefault = "" Then - 'Create the log - CreateLog - Log "No argument specified. Preparing user prompt" & vbCrLf - fPassive = False - FindInstalledOProducts - If dicInstalledSku.Count > 0 Then sDefault = Join(RemoveDuplicates(dicInstalledSku.Items),",") Else sDefault = "CLIENTALL" - sDefault = InputBox("Enter a list of " & ONAME & " products to remove" & vbCrLf & vbCrLf & _ - "Examples:" & vbCrLf & _ - "CLIENTALL" & vbTab & "-> all Client products" & vbCrLf & _ - "SERVER" & vbTab & "-> all Server products" & vbCrLf & _ - "ALL" & vbTab & vbTab & "-> all Server & Client products" & vbCrLf & _ - "ProPlus,PrjPro" & vbTab & "-> ProPlus and Project" & vbCrLf &_ - "?" & vbTab & vbTab & "-> display Help", _ - SCRIPTFILE & " - " & ONAME & " remover", _ - sDefault) - - If IsEmpty(sDefault) Then 'User cancelled - Log "User cancelled. CleanUp & Exit." - 'Undo temporary entries created in ARP - TmpKeyCleanUp - wscript.quit 1602 - End If 'IsEmpty(sDefault) - Log "Answer from prompt: " & sDefault & vbCrLf - End If - sDefault = Trim(UCase(Trim(Replace(sDefault, Chr(34), "")))) - arrArguments = Split(Trim(sDefault), " ") - If UBound(arrArguments) = -1 Then ReDim arrArguments(0) - Else - ReDim arrArguments(iArgCnt-1) - For iCnt = 0 To (iArgCnt-1) - sArguments = sArguments & arrArguments(iCnt) & " " - arrArguments(iCnt) = UCase(Wscript.Arguments(iCnt)) - Next 'iCnt - End If 'iArgCnt = 0 - - 'Handle the SKU list - sArg0 = Replace(arrArguments(0), "/", "") - If Left(sArg0, 1) = "-" Then sArg0 = Mid(sArg0, 2) - - Select Case UCase(sArg0) - - Case "?" - ShowSyntax - - Case "ALL" - fRemoveAll = True - fRemoveOse = False - - Case "CLIENTSUITES" - fRemoveCSuites = True - fRemoveOse = False - - Case "CLIENTSTANDALONE" - fRemoveCSingle = True - fRemoveOse = False - - Case "CLIENTALL" - fRemoveCSuites = True - fRemoveCSingle = True - fRemoveOse = False - - Case "SERVER" - fRemoveSrv = True - fRemoveOse = False - - Case "ALL,OSE" - fRemoveAll = True - fRemoveOse = True - - Case Else - fRemoveAll = False - fRemoveOse = False - sSkuRemoveList = sArg0 - - End Select - - For iCnt = 0 To UBound(arrArguments) - - Select Case arrArguments(iCnt) - - Case "?", "/?", "-?" - ShowSyntax - - Case "/B", "/BYPASS" - If UBound(arrArguments) > iCnt Then - If InStr(arrArguments(iCnt + 1), "1") > 0 Then fBypass_Stage1 = True - If InStr(arrArguments(iCnt + 1), "2") > 0 Then fBypass_Stage2 = True - If InStr(arrArguments(iCnt + 1), "3") > 0 Then fBypass_Stage3 = True - If InStr(arrArguments(iCnt + 1), "4") > 0 Then fBypass_Stage4 = True - End If - - Case "/D", "/DELETEUSERSETTINGS" - fKeepUser = False - - Case "/FR", "/FASTREMOVE" - fBypass_Stage1 = True - fSkipSD = True - - Case "/F", "/FORCE" - fForce = True - - Case "/K", "/KEEPUSERSETTINGS" - fKeepUser = True - - Case "/KEEPSG", "/KEEPSOFTGRID" - fKeepSG = True - - Case "/KEEPLYNC" - fRemoveLync = False - - Case "/REMOVELYNC" - fRemoveLync = True - - Case "/L", "/LOG" - fLogInitialized = False - If UBound(arrArguments) > iCnt Then - If oFso.FolderExists(arrArguments(iCnt + 1)) Then - sLogDir = arrArguments(iCnt + 1) - Else - On Error Resume Next - oFso.CreateFolder(arrArguments(iCnt + 1)) - If Err <> 0 Then sLogDir = sScrubDir Else sLogDir = arrArguments(iCnt + 1) - End If - End If - - Case "/NOCANCEL" - fNoCancel = True - - Case "/NOREBOOT" - fNoReboot = True - - Case "/NE", "/NOELEVATE" - fNoElevate = True - - Case "/O", "/OSE" - fRemoveOse = True - - Case "/P", "/PREVIEW", "/DETECTONLY" - fDetectOnly = True - - Case "/PASSIVE", "/QB-" - fPassive = True - - Case "/Q", "/QUIET" - fQuiet = True - - Case "/QB" - fQuiet = True - fBasic = True - - Case "/QND" - fBypass_Stage1 = True - fBypass_Stage2 = True - fBypass_Stage3 = True - fRemoveOse = True - fRemoveOspp = True - fRemoveAll = True - fSkipSD = True - fForce = True - - Case "/R", "/RECONCILE" - fTryReconcile = True - - Case "/REMOVEOSPP" , "/CLEANOSPP" - fRemoveOspp = True - - Case "/S", "/SKIPSD", "/SKIPSHORTCUTDETECTION" - fSkipSD = True - - Case "/SC", "/SCANCOMPONENTS" - fBypass_Stage1 = False - - Case Else - - End Select - Next 'iCnt - If Not fLogInitialized Then CreateLog - LogOnly "Arguments: " & sArguments & vbCrLf - -End Sub 'ParseCmdLine -'======================================================================================================= - -Sub CreateLog - Dim DateTime - Dim sLogName - - On Error Resume Next - 'Create the log file - Set DateTime = CreateObject("WbemScripting.SWbemDateTime") - DateTime.SetVarDate Now,True - sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") - sLogName = sLogName & "_" & Left(DateTime.Value,14) - sLogName = sLogName & "_ScrubLog.txt" - Err.Clear - Set LogStream = oFso.CreateTextFile(sLogName,True,True) - If Err <> 0 Then - Err.Clear - sLogDir = sScrubDir - sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") - sLogName = sLogName & "_" & Left(DateTime.Value,14) - sLogName = sLogName & "_ScrubLog.txt" - Set LogStream = oFso.CreateTextFile(sLogName,True,True) - End If - - Log "Microsoft Customer Support Services - " & ONAME & " Removal Utility" & vbCrLf & vbCrLf & _ - "OffScrub Version: " & SCRIPTVERSION & vbCrLf & _ - "64 bit OS: " & f64 - LogOnly "OS Details: " & sOSinfo & vbCrLf - Log "Start removal: " & Now & vbCrLf - fLogInitialized = True -End Sub 'CreateLog -'======================================================================================================= -'------------------------------------------------------------------------------- -' RelaunchAs64Host -' -' Relaunch self with 64 bit WScript host -'------------------------------------------------------------------------------- -Sub RelaunchAs64Host - Dim Argument, sCmd - - sCmd = Replace (LCase(wscript.Path), "syswow64", "sysnative") & "\cscript.exe " & Chr(34) & WScript.scriptFullName & Chr(34) - If fQuiet AND NOT fCScript Then sCmd = Replace (sCmd, "\cscript.exe", "\wscript.exe") - If Wscript.Arguments.Count > 0 Then - For Each Argument in Wscript.Arguments - sCmd = sCmd & " " & chr(34) & Argument & chr(34) - Next 'Argument - Else - If Not sDefault = "" Then sCmd = sCmd & " " & chr(34) & sDefault & chr(34) - End If - sCmd = sCmd & " /ChangedHostBitness" - Wscript.Quit oWShell.Run(sCmd, 1, True) - -End Sub 'RelaunchAs64Host -'======================================================================================================= - -Sub RelaunchAsCScript - Dim Argument - Dim sCmdLine - - sCmdLine = "cmd.exe /c " & WScript.Path & "\cscript.exe //NOLOGO " & Chr(34) & WScript.scriptFullName & Chr(34) - If Wscript.Arguments.Count > 0 Then - For Each Argument in Wscript.Arguments - sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) - Next 'Argument - End If - Log "Relaunching with CScript as host. Full command: " & sCmdLine - Wscript.Quit oWShell.Run(sCmdLine, 1, True) -End Sub 'RelaunchAsCScript -'======================================================================================================= - -Sub RelaunchElevated - Dim Argument - Dim sCmdLine - Dim oShell - - Set oShell = CreateObject("Shell.Application") - - sCmdLine = Chr(34) & WScript.scriptFullName & Chr(34) - If Wscript.Arguments.Count > 0 Then - For Each Argument in Wscript.Arguments - Select Case UCase(Argument) - Case "/Q","/QUIET" - 'Don't try to relaunch in quiet mode - Exit Sub - Case "UAC" - 'Already tried elevated relaunch - Exit Sub - Case Else - sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) - End Select - Next 'Argument - Else - If Not sDefault = "" Then sCmdLine = sCmdLine & " " & chr(34) & sDefault & chr(34) - End If - oShell.ShellExecute "cscript.exe", sCmdLine & " /NoElevate UAC", "", "runas", 1 - Wscript.Quit 5 -End Sub 'RelaunchElevated -'======================================================================================================= - -'Show the expected syntax for the script usage -Sub ShowSyntax - TmpKeyCleanUp - Wscript.Echo sErr & vbCrLf & _ - SCRIPTFILE & " V " & SCRIPTVERSION & vbCrLf & _ - "Copyright (c) Microsoft Corporation. All Rights Reserved" & vbCrLf & vbCrLf & _ - SCRIPTFILE & " helps to remove " & ONAME & " Server & Client products" & vbCrLf & _ - "when a regular uninstall is no longer possible" & vbCrLf & vbCrLf & _ - "Usage:" & vbTab & SCRIPTFILE & " [List of config ProductIDs] [Options]" & vbCrLf & vbCrLf & _ - vbTab & "/? ' Displays this help"& vbCrLf &_ - vbTab & "/Log [LogfolderPath] ' Custom folder for log files" & vbCrLf & _ - vbTab & "/SkipSD ' Skips the ShortcutDetection in local profiles" & vbCrLf & _ - vbTab & "/NoCancel ' Setup.exe and Msiexec.exe have no Cancel button" & vbCrLf &_ - vbTab & "/Quiet ' Script, Setup.exe and Msiexec.exe run quiet with no UI" & vbCrLf &_ - vbTab & "/Preview ' Run this script to preview what would get removed"& vbCrLf & vbCrLf & _ - "Examples:"& vbCrLf & _ - vbTab & SCRIPTFILE & " CLIENTSUITES ' Remove all " & ONAME & " Client suites/products" & vbCrLf &_ - vbTab & SCRIPTFILE & " CLIENTALL ' Remove all " & ONAME & " Client products" & vbCrLf &_ - vbTab & SCRIPTFILE & " SERVER ' Remove all " & ONAME & " Server products" & vbCrLf &_ - vbTab & SCRIPTFILE & " ALL ' Remove all " & ONAME & " Server & Client products" & vbCrLf &_ - vbTab & SCRIPTFILE & " ProPlus,PrjPro ' Remove ProPlus and Project" & vbCrLf - Wscript.Quit -End Sub 'ShowSyntax -'======================================================================================================= -_end_ - -move __createfile "OffScrub_O15msi.vbs" - -waithidden cscript "OffScrub_O15msi.vbs"]]> - -
-
+ + + + + Warning - Microsoft Office 2013 and 2016 installed Side-by-Side - Windows + This Fixlet detects an Office 2013 install on the same machine as an Office 2016 install and uses the Office Cleanup tool to remove the Microsoft Office 2013 Installation.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "15.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "16.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + "fForce" will kill running applications which can result in data loss! <- CAUTION +Dim fForce : fForce = False +'CAUTION! -> "fForce" will kill running applications which can result in data loss! <- CAUTION +Dim fLogInitialized : fLogInitialized = False +Dim fBypass_Stage1 : fBypass_Stage1 = True 'Component Detection +Dim fBypass_Stage2 : fBypass_Stage2 = False 'Setup +Dim fBypass_Stage3 : fBypass_Stage3 = False 'Msiexec +Dim fBypass_Stage4 : fBypass_Stage4 = False 'CleanUp +Dim fRebootRequired : fRebootRequired = False + +'Create required objects +Set oWmiLocal = GetObject("winmgmts:{{(Debug)}\\.\root\cimv2") +Set oWShell = CreateObject("Wscript.Shell") +Set oShellApp = CreateObject("Shell.Application") +Set oFso = CreateObject("Scripting.FileSystemObject") +Set oMsi = CreateObject("WindowsInstaller.Installer") +Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv") + +'Get environment path info +sAppData = oWShell.ExpandEnvironmentStrings("%appdata%") +sLocalAppData = oWShell.ExpandEnvironmentStrings("%localappdata%") +sTemp = oWShell.ExpandEnvironmentStrings("%temp%") +sAllUsersProfile = oWShell.ExpandEnvironmentStrings("%allusersprofile%") +RegReadValue HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "ProfilesDirectory", sProfilesDirectory, "REG_EXPAND_SZ" +If NOT oFso.FolderExists(sProfilesDirectory) Then + sProfilesDirectory = oFso.GetParentFolderName(oWShell.ExpandEnvironmentStrings("%userprofile%")) +End If +sProgramFiles = oWShell.ExpandEnvironmentStrings("%programfiles%") +'Deferred until after architecture check +'sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") + +sCommonProgramFiles = oWShell.ExpandEnvironmentStrings("%commonprogramfiles%") +'Deferred until after architecture check +'sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") + +sProgramData = oWSHell.ExpandEnvironmentStrings("%programdata%") +sWinDir = oWShell.ExpandEnvironmentStrings("%windir%") +sWICacheDir = sWinDir & "\" & "Installer" +sScrubDir = sTemp & "\" & SCRIPTNAME +sScriptDir = wscript.ScriptFullName +sScriptDir = Left(sScriptDir, InStrRev(sScriptDir, "\")) + +' Get current script host +fCScript = UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" + +'Detect if we're running on a 64 bit OS +Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_ComputerSystem") +For Each Item In ComputerItem + f64 = Instr(Left(Item.SystemType,3),"64") > 0 + If f64 Then Exit For +Next +If f64 Then sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") +If f64 Then sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") + +'Get OS details and VersionNT +Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_OperatingSystem") +For Each Item in ComputerItem + sOSinfo = sOSinfo & Item.Caption + sOSinfo = sOSinfo & Item.OtherTypeDescription + sOSinfo = sOSinfo & ", " & "SP " & Item.ServicePackMajorVersion + sOSinfo = sOSinfo & ", " & "Version: " & Item.Version + sOsVersion = Item.Version + sOSinfo = sOSinfo & ", " & "Codepage: " & Item.CodeSet + sOSinfo = sOSinfo & ", " & "Country Code: " & Item.CountryCode + sOSinfo = sOSinfo & ", " & "Language: " & Item.OSLanguage +Next + +'Build the VersionNT number +arrVersion = Split(sOsVersion, Delimiter(sOsVersion)) +iVersionNt = CInt(arrVersion (0)) * 100 + CInt(arrVersion (1)) + +'Check if we're running as 32 bit process on a 64 bit OS +If InStr(LCase(wscript.path), "syswow64") > 0 Then RelaunchAs64Host + +fElevated = CheckRegPermissions +If NOT fElevated AND NOT fNoElevate Then + 'Try to relaunch elevated + RelaunchElevated + + 'Can't relaunch. Exit out + If UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" Then + If Not fLogInitialized Then CreateLog + Log "Insufficient registry access permissions - exiting" + End If + 'Undo temporary entries created in ARP + TmpKeyCleanUp + wscript.quit 3 +End If + +'Create Dictionaries +Set dictionaryKeepProd = CreateObject("Scripting.Dictionary") +Set dicInstalledSku = CreateObject("Scripting.Dictionary") +Set dicRemoveSku = CreateObject("Scripting.Dictionary") +Set dictionaryKeepSku = CreateObject("Scripting.Dictionary") +Set dictionaryKeepLis = CreateObject("Scripting.Dictionary") +Set dictionaryKeepFolder = CreateObject("Scripting.Dictionary") +Set dicApps = CreateObject("Scripting.Dictionary") +Set dicDelRegKey = CreateObject("Scripting.Dictionary") +Set dictionaryKeepReg = CreateObject("Scripting.Dictionary") +Set dicSrv = CreateObject("Scripting.Dictionary") +Set dicCSuite = CreateObject("Scripting.Dictionary") +Set dicCSingle = CreateObject("Scripting.Dictionary") + +'Create the temp folder +If Not oFso.FolderExists(sScrubDir) Then oFso.CreateFolder sScrubDir + +'Set the default logging directory +sLogDir = sScrubDir + +'Call the command line parser +ParseCmdLine + +'Ensure CScript as engine +If NOT fCScript AND NOT fQuiet Then RelaunchAsCScript + +'Get Office Install Folder +If NOT RegReadValue(HKLM,"SOFTWARE\Microsoft\Office\"&OVERSION&"\Common\InstallRoot","Path",sOInstallRoot,"REG_SZ") Then + sOInstallRoot = sProgramFiles & "\Microsoft Office\"&OREF +End If + +'Ensure integrity of WI metadata which could fail used APIs otherwise +EnsureValidWIMetadata HKCU,"Software\Classes\Installer\Products",COMPRESSED +EnsureValidWIMetadata HKCR,"Installer\Products",COMPRESSED +EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products",COMPRESSED +EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components",COMPRESSED +EnsureValidWIMetadata HKCR,"Installer\Components",COMPRESSED + +'Add initial known .exe files that might need to be closed +dicApps.Add "communicator.exe", "communicator.exe" +dicApps.Add "setup.exe", "setup.exe" +Select Case OVERSIONMAJOR +Case "12" +Case "14" + dicApps.Add "bcssync.exe","bcssync.exe" + dicApps.Add "officesas.exe","officesas.exe" + dicApps.Add "officesasscheduler.exe","officesasscheduler.exe" + dicApps.Add "msosync.exe","msosync.exe" + dicApps.Add "onenotem.exe","onenotem.exe" +Case "15" +Case Else +End Select + +'------------------- +'Stage # 0 - Basics | +'------------------- +'Build a list with installed/registered Office products +sTmp = "Stage # 0 " & chr(34) & "Basics" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf + +FindInstalledOProducts +If dicInstalledSku.Count > 0 Then Log "Found registered product(s): " & Join(RemoveDuplicates(dicInstalledSku.Items),",") &vbCrLf + +'Validate the list of products we got from the command line if applicable +ValidateRemoveSkuList + +'Log detection results +If dicRemoveSku.Count > 0 Then Log "Product(s) to be removed: " & Join(RemoveDuplicates(dicRemoveSku.Items),",") +sMode = "Selected " & ONAME & " products" +If NOT dicRemoveSku.Count > 0 Then sMode = "Orphaned " & ONAME & " products" +If fRemoveAll Then sMode = "All " & ONAME & " products" +Log "Final removal mode: " & sMode +Log "Remove OSE service: " & fRemoveOse &vbCrLf + +'Log preview mode if applicable +If fDetectOnly Then Log "*************************************************************************" +If fDetectOnly Then Log "* PREVIEW MODE *" +If fDetectOnly Then Log "* All uninstall and delete operations will only be logged not executed! *" +If fDetectOnly Then Log "*************************************************************************" & vbCrLf + +'Check if there are legacy products installed +CheckForLegacyProducts +If fLegacyProductFound Then Log "Found legacy Office products that will not be removed." Else Log "No legacy Office products found." + +'Cache .msi files +If dicRemoveSku.Count > 0 Then CacheMsiFiles + +'Log Sku/Prod detection results +LogSkuResults + +'UnPin Shortcuts +If NOT fSkipSD AND dicRemoveSku.Count > 0 Then + On Error Resume Next + Log " Searching for pinned shortcuts" + CleanShortcuts sAllUsersProfile, False, True + CleanShortcuts sProfilesDirectory, False, True + On Error Goto 0 +End If 'NOT SkipSD + + +'-------------------------------- +'Stage # 1 - Component Detection | +'-------------------------------- +sTmp = "Stage # 1 " & chr(34) & "Component Detection" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage1 OR fForce Then + 'Build a list with files which are installed/registered to a product that's going to be removed + Log "Prepare for CleanUp stages." + Log "Identifying removable elements. This can take several minutes." + ScanComponents +Else + Log "Not running Component Detection in default removal." +End If + +'End all running Office applications +If fForce OR fQuiet OR fPassive Then CloseOfficeApps + +'---------------------- +'Stage # 2 - Setup.exe | +'---------------------- +sTmp = "Stage # 2 " & chr(34) & "Setup.exe" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage2 Then + SetupExeRemoval +Else + Log "Skipping Setup.exe because bypass was requested." +End If + +'------------------------ +'Stage # 3 - Msiexec.exe | +'------------------------ +sTmp = "Stage # 3 " & chr(34) & "Msiexec.exe" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage3 Then + MsiexecRemoval +Else + Log "Skipping Msiexec.exe because bypass was requested." +End If + +'-------------------- +'Stage # 4 - CleanUp | +'-------------------- +'Removal of files and registry settings +sTmp = "Stage # 4 " & chr(34) & "CleanUp" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage4 Then + + 'Office Source Engine + If fRemoveOse Then RemoveOSE + + 'Local Installation Source (MSOCache) + WipeLIS + + 'Obsolete files + If fRemoveAll Then + FileWipeAll + Else + FileWipeIndividual + End If + + 'Empty Folders + DeleteEmptyFolders + + 'Restore Explorer if needed + If fForce OR fQuiet OR fPassive Then RestoreExplorer + + 'Registry data + RegWipe + + 'Wipe orphaned files from Windows Installer cache + MsiClearOrphanedFiles + + 'Temporary .msi files in scrubcache + DeleteMsiScrubCache + + 'Temporary files + DelScrubTmp + +Else + Log "Skipping CleanUp because bypass was requested." +End If + +If Not sMoveMessage = "" Then Log vbCrLf & "Please remove this folder after next reboot: " & sMoveMessage + +'THE END +Log vbCrLf & "End removal: " & Now & vbCrLf +Log vbCrLf & "For detailed logging please refer to the log in folder " &chr(34)&sScrubDir&chr(34)&vbCrLf + +If fRebootRequired Then + Log vbCrLf & "A restart is required to complete the operation!" + If NOT (fQuiet OR fPassive OR fNoReboot) Then + If MsgBox("Do you want to reboot now?",vbYesNo,"Reboot Required") = VB_YES Then + Dim colOS, oOS + Dim oWmiReboot + Set oWmiReboot = GetObject("winmgmts:{{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2") + Set colOS = oWmiReboot.ExecQuery ("Select * from Win32_OperatingSystem") + For Each oOS in colOS + oOS.Reboot() + Next + End If + End If +End If + +If NOT (fQuiet OR fPassive) Then + For Each Item in Wscript.Arguments + If Item = "UAC" Then + If fCscript Then wscript.stdout.write "Press to close this window" + sTemp = wscript.stdin.read(1) + End If + Next 'Argument +End If +'======================================================================================================= +'======================================================================================================= + +'Stage 0 - 4 Subroutines +'======================================================================================================= + +'Office configuration products are listed with their configuration product name in the "Uninstall" key +'To identify an Office configuration product all of these condiditions have to be met: +' - "SystemComponent" does not have a value of "1" (DWORD) +' - "OPACKAGE" (see constant declaration) entry exists and is not empty +' - "DisplayVersion" exists and the 2 leftmost digits are "OVERSIONMAJOR" +Sub FindInstalledOProducts + Dim ArpItem, File + Dim sCurKey, sValue, sConfigName, sProdC, sCVHValue + Dim sProductCodeList, sProductCode + Dim arrKeys, arrMultiSzValues + Dim fSystemComponent0, fPackages, fDisplayVersion, fReturn, fCategorized + + If dicInstalledSku.Count > 0 Then Exit Sub 'Already done from InputBox prompt + + 'Handle orphaned products to get them added to the detection scope + If fTryReconcile Then + For Each File in oFso.GetFolder(sWICacheDir).Files + If Len(File.Name)>3 Then + Select Case LCase(Right(File.Name, 4)) + Case ".msi" + sProductCode = "" + sProductCode = GetMsiProductCode(File.Path) + If InScope(sProductCode) Then + If NOT RegKeyExists(HKLM, REG_ARP & sProductCode) Then + 'Ensure the orphaned item is getting removed + If Len(sSkuRemoveList) > 0 Then + sSkuRemoveList = sSkuRemoveList & "," & GetProductID(Mid(sProductCode, 11, 4)) + Else + sSkuRemoveList = GetProductID(Mid(sProductCode, 11, 4)) + End If + 'Add to ScrubDir + oFso.CopyFile File.Path,sScrubDir & "\" & sProductCode & ".msi",True + 'Register the product with MSI + MsiRegisterProduct File.Path + End If 'NOT sProductCode + End If 'InScope + Case Else + End Select + End If '>3 + Next 'File + End If 'fTryReconcile + + 'Locate standalone Office products that have no configuration product entry and create a + 'temporary configuration entry + ReDim arrTmpSKUs(-1) + If RegEnumKey(HKLM, REG_ARP, arrKeys) Then + For Each ArpItem in arrKeys + If InScope(ArpItem) Then + sCurKey = REG_ARP & ArpItem & "\" + fSystemComponent0 = Not (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) + If fSystemComponent0 Then + RegReadValue HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ" + Redim arrMultiSzValues(0) + 'Logic changed to drop the LCID identifier + 'sConfigName = GetProductID(Mid(ArpItem,11,4)) & "_" & CInt("&h" & Mid(ArpItem,16,4)) + sConfigName = OREGREF & GetProductID(Mid(ArpItem, 11, 4)) + If NOT RegKeyExists(HKLM, REG_ARP&sConfigName) Then + 'Create a new ARP item + ReDim Preserve arrTmpSKUs(UBound(arrTmpSKUs) + 1) + arrTmpSKUs(UBound(arrTmpSKUs)) = sConfigName + oReg.CreateKey HKLM, REG_ARP & sConfigName + arrMultiSzValues(0) = sConfigName + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, OPACKAGE, arrMultiSzValues + arrMultiSzValues(0) = ArpItem + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "Comment", "Temporary OffScrub generated key. Please delete this key!" + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", arrMultiSzValues + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayVersion", sValue + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayName", SCRIPTNAME & "_" & sConfigName + oReg.SetDWordValue HKLM, REG_ARP & sConfigName, "SystemComponent", 0 + Else + 'Update the existing temporary ARP item + fReturn = RegReadValue(HKLM, REG_ARP&sConfigName, "ProductCodes", sProdC, "REG_MULTI_SZ") + If NOT InStr(sProdC, ArpItem) > 0 Then sProdC = sProdC & chr(34) & ArpItem + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", Split(sProdC, Chr(34)) + End If 'RegKeyExists + End If 'fSystemComponent0 + End If 'InScope + Next 'ArpItem + End If 'RegEnumKey + + 'Find the configuration products + If RegEnumKey(HKLM, REG_ARP, arrKeys) Then + For Each ArpItem in arrKeys + sCurKey = REG_ARP & ArpItem & "\" + sValue = "" + fSystemComponent0 = NOT (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) + fPackages = RegReadValue(HKLM, sCurKey, OPACKAGE, sValue, "REG_MULTI_SZ") + fDisplayVersion = RegReadValue(HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ") + If fDisplayVersion Then + If Len(sValue) > 1 Then + fDisplayVersion = (Left(sValue, 2) = OVERSIONMAJOR) + Else + fDisplayVersion = False + End If + End If + 'fSystemComponent0 filter causes issues if the ARP entries have been hidden + 'If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then + If (fPackages AND fDisplayVersion) Then + If InStr(ArpItem,".") > 0 Then sConfigName = UCase(Mid(ArpItem, InStr(ArpItem, ".") + 1)) Else sConfigName = UCase(ArpItem) + If NOT dicInstalledSku.Exists(sConfigName) Then dicInstalledSku.Add sConfigName, sConfigName + + 'Categorize the SKU + 'Four categories are available: ClientSuite, ClientSingleProduct, Server, C2R + If RegReadValue(HKLM, REG_ARP & OREGREF & sConfigName, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then + fCategorized = False + For Each sProductCode in Split(sProductCodeList, Chr(34)) + If Len(sProductCode) = 38 Then + If Mid(sProductCode, 11, 1) = "1" Then + 'Server product + If NOT dicSrv.Exists(UCase(sConfigName)) Then dicSrv.Add UCase(sConfigName), sConfigName + fCategorized = True + Exit For + Else + Select Case Mid(sProductCode, 11, 4) + 'Client Suites + Case "000F","0011","0012","0013","0014","0015","0016","0017","0018","0019","001A","001B","0029","002B","002E","002F","0030","0031","0033","0035","0037","003D","0044","0049","0061","0062","0066","006C","006D","006F","0074","00A1","00A3","00A9","00BA","00CA","00E0","0100","0103","011A" + If NOT dicCSuite.Exists(UCase(sConfigName)) Then dicCSuite.Add UCase(sConfigName), sConfigName + fCategorized = True + Exit For + + Case "007E", "008F", "008C", "24E1", "237A" + If NOT dictionaryKeepProd.Exists(sProductCode) Then dictionaryKeepProd.Add sProductCode, sConfigName + fC2rInstalled = True + Case Else + End Select + End If + End If 'Len 38 + Next 'sProductCode + If NOT fCategorized Then + If NOT dicCSingle.Exists(UCase(sConfigName)) Then dicCSingle.Add UCase(sConfigName), sConfigName + End If 'fCategorized + End If 'RegReadValue "ProductCodes" + End If + Next 'ArpItem + End If 'RegEnumKey +End Sub 'FindInstalledOProducts +'======================================================================================================= + +'Check if there are Office products from previous versions on the computer +Sub CheckForLegacyProducts + Const OLEGACY = "78E1-11D2-B60F-006097C998E7}.6000-11D3-8CFE-0050048383C9}.6000-11D3-8CFE-0150048383C9}.BDCA-11D1-B7AE-00C04FB92F3D}.6D54-11D4-BEE3-00C04F990354}" + Dim Product + + 'Set safe default + fLegacyProductFound = True + + For Each Product in oMsi.Products + If Len(Product) = 38 Then + 'Handle O09 - O11 Products + If InStr(OLEGACY, UCase(Right(Product, 28))) > 0 Then + 'Found legacy Office product. Keep flag in default and exit + Exit Sub + End If + If UCase(Right(Product,PRODLEN)) = OFFICEID Then + Select Case Mid(Product,4,2) + Case "12", "14" + 'Found legacy Office product. Keep flag in default and exit + Exit Sub + Case Else + End Select + End If + End If '38 + Next 'Product + fLegacyProductFound = False + +End Sub 'CheckForLegacyProducts +'======================================================================================================= + +'Create clean list of Products to remove. +'Strip off bad & empty contents +Sub ValidateRemoveSkuList + Dim Sku, Key, sProductCode, sProductCodeList + Dim arrRemoveSKUs + + If fRemoveAll Then + 'Remove all mode + For Each Key in dicInstalledSku.Keys + dicRemoveSku.Add Key,dicInstalledSku.Item(Key) + Next 'Key + Else + 'Remove individual products or preconfigured configurations mode + + 'Ensure to have a string with no unexpected contents + sSkuRemoveList = Replace(sSkuRemoveList,";",",") + sSkuRemoveList = Replace(sSkuRemoveList," ","") + sSkuRemoveList = Replace(sSkuRemoveList,Chr(34),"") + While InStr(sSkuRemoveList,",,")>0 + sSkuRemoveList = Replace(sSkuRemoveList,",,",",") + Wend + + 'Prepare 'remove' and 'keep' dictionaries to determine what has to be removed + + 'Initial pre-fill of 'keep' dic + For Each Key in dicInstalledSku.Keys + dictionaryKeepSku.Add Key,dicInstalledSku.Item(Key) + Next 'Key + + 'Determine contents of keep and remove dic + 'Individual products + arrRemoveSKUs = Split(UCase(sSkuRemoveList),",") + For Each Sku in arrRemoveSKUs + If Sku = "OSE" Then fRemoveOse = True + If dictionaryKeepSku.Exists(Sku) Then + 'A Sku to remove has been passed in + 'remove the item from the keep dic + dictionaryKeepSku.Remove(Sku) + 'Now add it to the remove dic + If NOT dicRemoveSku.Exists(Sku) Then dicRemoveSku.Add Sku,Sku + End If + Next 'Sku + + 'Client Suite Category + If fRemoveCSuites Then + For Each Key in dicInstalledSku.Keys + If dicCSuite.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveCSuites + + 'Client Single/Standalone Category + If fRemoveCSingle Then + For Each Key in dicInstalledSku.Keys + If dicCSingle.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveCSingle + + 'Server Category + If fRemoveSrv Then + For Each Key in dicInstalledSku.Keys + If dicSrv.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveSrv + + If NOT dictionaryKeepSku.Count > 0 Then fRemoveAll = True + + End If 'fRemoveAll + + 'Fill the KeepProd dic + For Each Sku in dictionaryKeepSku.Keys + If RegReadValue(HKLM, REG_ARP & OREGREF & Sku, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then + For Each sProductCode in Split(sProductCodeList, chr(34)) + If Len(sProductCode) = 38 Then + If NOT dictionaryKeepProd.Exists(sProductCode) Then + dictionaryKeepProd.Add sProductCode, Sku + ' also add the UpgradeCode + If Not dictionaryKeepProd.Exists(GetUpgradeCode(sProductCode)) Then dictionaryKeepProd.Add GetUpgradeCode(sProductCode), Sku & "_UpgradeCode" + End If + End If '38 + Next 'sProductCode + End If + Next 'Sku + + If fRemoveAll OR fRemoveOse Then CheckRemoveOSE + If fRemoveAll OR fRemoveOspp Then CheckRemoveOspp + +End Sub 'ValidateRemoveSkuList +'======================================================================================================= + +'Check if OSE service can be scrubbed +Sub CheckRemoveOSE + Const O11 = "6000-11D3-8CFE-0150048383C9}" + Dim Product + + If fRemoveOse Then Exit Sub + For Each Product in oMsi.Products + If Len(Product) = 38 Then + If UCase(Right(Product, 28)) = O11 Then + 'Found Office 2003 Product. Set flag to not remove the OSE service + Exit Sub + End If + If UCase(Right(Product, PRODLEN))= OFFICEID Then + Select Case Mid(Product, 4, 2) + Case "12","14","15","16","17" + If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then + 'Found another Office product. Set flag to keep the OSE service + fRemoveOse = False + Exit Sub + End If + Case Else + End Select + End If + End If '38 + Next 'Product + fRemoveOse = True +End Sub 'CheckRemoveOSE +'======================================================================================================= + +'Check if OSPP service can be scrubbed +Sub CheckRemoveOSPP + Dim Product + + If NOT CInt(OVERSIONMAJOR) > 12 Then + fRemoveOspp = False + Exit Sub + End If + + If fRemoveOspp Then Exit Sub + + If fC2rInstalled Then + fRemoveOspp = False + Exit Sub + End If + + For Each Product in oMsi.Products + If Len(Product) = 38 Then + If UCase(Right(Product, PRODLEN)) = OFFICEID Then + Select Case Mid(Product, 4, 2) + Case "14","15","16","17" + If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then + 'Found another Office product. Set flag to keep the OSPP service + fRemoveOspp = False + Exit Sub + End If + Case Else + End Select + End If + End If '38 + Next 'Product + fRemoveOspp = True +End Sub 'CheckRemoveOSPP +'======================================================================================================= + +'Cache .msi files for products that will be removed in case they are needed for later file detection +Sub CacheMsiFiles + Dim Product + Dim sMsiFile + + 'Non critical routine for failures. + 'Errors will be logged but must not fail the execution + On Error Resume Next + Log " Cache .msi files to temporary Scrub folder" + 'Cache the files + For Each Product in oMsi.Products + 'Ensure valid GUID length + If CheckDeleteEx(Product) Then + CheckError "CacheMsiFiles" + sMsiFile = oMsi.ProductInfo(Product,"LocalPackage") : CheckError "CacheMsiFiles" + LogOnly " - " & Product & ".msi" + If oFso.FileExists(sMsiFile) Then oFso.CopyFile sMsiFile,sScrubDir & "\" & Product & ".msi",True + CheckError "CacheMsiFiles" + End If 'InScope + Next 'Product + + Err.Clear +End Sub 'CacheMsiFiles +'======================================================================================================= + +'Build a list of all files that will be deleted +Sub ScanComponents + Const MSIINSTALLSTATE_LOCAL = 3 + + Dim FileList, RegList, ComponentID, CompClient, Record, qView, MsiDb, CompVerbose + Dim Processes, Process, Prop, prod + Dim sQuery, sSubKeyName, sPath, sFile, sMsiFile, sCompClient, sComponent, sCompReg + Dim fRemoveComponent, fAffectedComponent, fIsPermanent, fIsFile, fIsFolder + Dim i, iProgress, iCompCnt, iRemCnt + Dim dicFLError, oDic, oFolderDic, dicCompPath + Dim hDefKey + + 'Logfile + Set FileList = oFso.OpenTextFile(sScrubDir & "\FileList.txt",FOR_WRITING,True,True) + Set RegList = oFso.OpenTextFile(sScrubDir & "\RegList.txt",FOR_WRITING,True,True) + Set CompVerbose = oFso.OpenTextFile(sScrubDir & "\CompVerbose.txt",FOR_WRITING,True,True) + + 'FileListError dic + Set dicFLError = CreateObject("Scripting.Dictionary") + + Set oDic = CreateObject("Scripting.Dictionary") + Set oFolderDic = CreateObject("Scripting.Dictionary") + Set dicCompPath = CreateObject("Scripting.Dictionary") + + 'Prevent that API errors fail script execution + On Error Resume Next + + iCompCnt = oMsi.Components.Count + If NOT Err = 0 Then + 'API failure + Log "Error during components detection. Cannot complete this task." + Err.Clear + Exit Sub + End If + + 'Ensure to not divide by zero + If iCompCnt = 0 Then iCompCnt = 1 + LogOnly " Scanning " & iCompCnt & " components" + 'Enum all Components + For Each ComponentID In oMsi.Components + CompVerbose.WriteLine vbCrLf & "Checking Component: " & ComponentID + + 'Progress bar + i = i + 1 + If iProgress < (i / iCompCnt) * 100 Then + If fCScript Then wscript.stdout.write "." : LogStream.Write "." + iProgress = iProgress + 1 + If iProgress = 35 OR iProgress = 70 Then Log "" + End If + + 'Check if all ComponentClients will be removed + sCompClient = "" + iRemCnt = 0 + fIsPermanent = False + fRemoveComponent = False 'Flag to track if the component will be completely removed + fAffectedComponent = False 'Flag to track if some clients remain installed who have a none shared location + dicCompPath.RemoveAll + Err.Clear + For Each CompClient In oMsi.ComponentClients(ComponentID) + CompVerbose.Write " CompClient " & CompClient & "-> " + If Err = 0 Then + 'Ensure valid guid length + If Len(CompClient) = 38 Then + fRemoveComponent = InScope(CompClient) + If fRemoveComponent OR (CompClient = "{{00000000-0000-0000-0000-000000000000}") Then + sPath = "" + sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + 'Scan for msidbComponentAttributesPermanent flag + If CompClient = "{{00000000-0000-0000-0000-000000000000}" Then + fIsPermanent = True + iRemCnt = iRemCnt + 1 + End If + If fRemoveComponent Then fRemoveComponent = CheckDelete(CompClient) + CompVerbose.Write "CheckDelete: " & fRemoveComponent & "; " + If fRemoveComponent Then + iRemCnt = iRemCnt + 1 + fAffectedComponent = True + 'Since the scope remains within one Office family the keypath for the component + 'is assumed to be identical + If sCompClient = "" Then sCompClient = CompClient + ' flag the CompClient entry for removal + sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKCR + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKLM + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + Else + If NOT dicCompPath.Exists(sPath) Then dicCompPath.Add sPath,CompClient + End If + CompVerbose.WriteLine "AffectedComponent: " & fAffectedComponent + CompVerbose.WriteLine " CompClient now set to: " & sCompClient + Else + CompVerbose.Write "InScope: " & fRemoveComponent & "; " + End If + Else + CompVerbose.WriteLine "Error: Invalid metadata" + If NOT dicFLError.Exists("Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient) Then _ + dicFLError.Add "Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient, ComponentID + End If '38 + Else + CompVerbose.WriteLine "Error: " & Err.number & " " & Err.Description + Err.Clear + End If 'Err = 0 + Next 'CompClient + + 'Determine if the component resources go away + sPath = "" + fRemoveComponent = fAffectedComponent AND (iRemCnt = oMsi.ComponentClients(ComponentID).Count) + CompVerbose.WriteLine " Component goes away: " & fRemoveComponent +' This caused unintentional removals +' If NOT fRemoveComponent AND fAffectedComponent Then +' 'Flag as removable if component has a unique keypath +' sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) +' sPath = Replace(sPath,"?",":") +' fRemoveComponent = NOT dicCompPath.Exists(sPath) +' End If + If fRemoveComponent Then + 'Check msidbComponentAttributesPermanent flag + If fIsPermanent AND NOT fForce Then fRemoveComponent = False + CompVerbose.WriteLine " msidbComponentAttributesPermanent: " & NOT fRemoveComponent + End If + + If fRemoveComponent Then + CompVerbose.WriteLine " RESULT: Component IN SCOPE for removal" + fIsFile = False : fIsFolder = False + + 'Component resources go away for this product + Err.Clear + 'Add the component registration key to ensure removal + sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\" + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKCR + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\" + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKLM + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + 'Get the component path + If sPath = "" Then + sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + End If + CompVerbose.WriteLine " Path: " & sPath + If Len(sPath) > 4 Then + If Left(sPath,1) = "0" Then + 'Registry keypath + + Select Case Left(sPath,2) + Case "00" + sPath = Mid(sPath,5) + hDefKey = HKCR + Case "01" + sPath = Mid(sPath,5) + hDefKey = HKCU + Case "02","22" + sPath = Mid(sPath,5) + hDefKey = HKLM + Case Else + ' + End Select + + 'Go for the safe way and just reset the default entry + 'compared to deleting the whole key + If Right(sPath,1) = "\" Then sPath = sPath & "(Default)" + + If NOT dicDelRegKey.Exists(sPath) Then + dicDelRegKey.Add sPath,hDefKey + RegList.WriteLine HiveString(hDefKey)&"\"&sPath + End If + Else + + 'File or Folder + If oFso.FileExists(sPath) OR oFso.FolderExists(sPath) Then + If Right(sPath,1) = "\" Then + fIsFolder = True + CompVerbose.WriteLine " Folder check OK" + Else + fIsFile = True + CompVerbose.WriteLine " File check OK" + End If + If fIsFile Then sPath = oFso.GetFile(sPath).ParentFolder + If Not oFolderDic.Exists(sPath) Then + oFolderDic.Add sPath,sPath + FileList.WriteLine sPath & vbTab & "(FOLDER)" + End If + 'Get the .msi file + If oFso.FileExists(sScrubDir & "\" & sCompClient & ".msi") Then + sMsiFile = sScrubDir & "\" & sCompClient & ".msi" + Else + sMsiFile = oMsi.ProductInfo(sCompClient,"LocalPackage") + End If + CompVerbose.WriteLine " Set msi file to : " & sMsiFile + If Not Err = 0 Then + CompVerbose.WriteLine " Error: Failed to obtain .msi file for product " & sCompClient + If NOT dicFLError.Exists("Failed to obtain .msi file for product "&sCompClient) Then _ + dicFLError.Add "Failed to obtain .msi file for product "&sCompClient, ComponentID + Err.Clear + End If + CompVerbose.Write " Open .msi file for reading returned: " + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + + If Err = 0 Then + CompVerbose.WriteLine " SUCCESS" + 'Get the component name from the 'Component' table + sQuery = "SELECT `Component`,`ComponentId` FROM Component WHERE `ComponentId` = '" & ComponentID &"'" + Set qView = MsiDb.OpenView(sQuery) : qView.Execute + Set Record = qView.Fetch() + If Not Record Is Nothing Then sComponent = Record.Stringdata(1) + CompVerbose.WriteLine " Obtained ComponentId as: " & sComponent + + 'Get filenames from the 'File' table + sQuery = "SELECT `Component_`,`FileName` FROM File WHERE `Component_` = '" & sComponent &"'" + Set qView = MsiDb.OpenView(sQuery) : qView.Execute + Set Record = qView.Fetch() + Do Until Record Is Nothing + 'Read the filename + sFile = Record.StringData(2) + If InStr(sFile,"|") > 0 Then sFile = Mid(sFile,InStr(sFile,"|")+1,Len(sFile)) + 'sFile = sPath & "\" & sFile + CompVerbose.WriteLine " File: " & sPath& "\" & sFile + If Not oDic.Exists(sPath & "\" & sFile) Then + 'Exception handler + fAdd = True + Select Case UCase(sFile) + Case "FPERSON.DLL" + 'Catch exception caused by changed .msi keypath authoring logic for smart tags + For Each prod in oMsi.Products + If NOT Checkdelete(prod) Then + If oMsi.FeatureState(prod, "MSTagPluginNamesFiles") = MSIINSTALLSTATE_LOCAL Then + fAdd = False + Exit For + End If + End If + Next 'prod + Case Else + End Select + If fAdd Then + CompVerbose.WriteLine " Added as new file to dictionary" + oDic.Add sPath & "\" & sFile,sFile + FileList.WriteLine sFile & vbTab & sPath & "\" & sFile + If Len(sFile)>4 Then + sFile = LCase(sFile) + If Right(sFile,4) = ".exe" Then + If NOT dicApps.Exists(sFile) Then + Select Case sFile + Case "setup.exe","ose.exe","osppsvc.exe","explorer.exe" + Case Else + dicApps.Add sFile,LCase(sPath) & "\" & sFile + CompVerbose.WriteLine " Added to the list of processes that need to be closed." + End Select + End If 'dicApps.Exists + End If '.exe + End If 'Len > 4 + End If 'fAdd + End If 'oDic.Exists + Set Record = qView.Fetch() + Loop + Set Record = Nothing + qView.Close + Set qView = Nothing + Else + CompVerbose.WriteLine " Error: Could not read from .msi file" + If NOT dicFLError.Exists("Error: Could not read from .msi file: "&sMsiFile) Then _ + dicFLError.Add "Error: Could not read from .msi file: "&sMsiFile, ComponentID + Err.Clear + End If 'Err = 0 + Else + CompVerbose.WriteLine " Error: File check FAILED" + End If 'FileExists(sPath) + End If + End If 'Len(sPath) > 4 + Else + CompVerbose.WriteLine " RESULT: Component NOT in scope for removal" + If fAffectedComponent Then + 'Add the path to the 'Keep' dictionary + Err.Clear + For Each CompClient In oMsi.ComponentClients(ComponentID) + 'Get the component path + sPath = "" : sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + + If Len(sPath) > 4 Then + If Left(sPath,1) = "0" Then + 'Registry keypath + + Select Case Left(sPath,2) + Case "00" + sPath = Mid(sPath,5) + hDefKey = HKCR + Case "01" + sPath = Mid(sPath,5) + hDefKey = HKCU + Case "02","22" + sPath = Mid(sPath,5) + hDefKey = HKLM + Case Else + ' + End Select + If NOT dictionaryKeepReg.Exists(LCase(sPath)) Then + dictionaryKeepReg.Add LCase(sPath),hDefKey + End If + Else + 'File keypath + If oFso.FileExists(sPath) Then + If NOT dictionaryKeepFolder.Exists(LCase(sPath)) Then dictionaryKeepFolder.Add LCase(sPath) + sPath = LCase(oFso.GetFile(sPath).ParentFolder) & "\" + If NOT dictionaryKeepFolder.Exists(sPath) Then AddKeepFolder sPath + End If + 'Folder keypath + If oFso.FolderExists(sPath) Then AddKeepFolder sPath + End If 'Is Registry + End If 'sPath > 4 + Next 'CompClient + End If 'fAffectedComponent + End If 'fRemoveComponent + Err.Clear + Next 'ComponentID + On Error Goto 0 + + Log " Done" & vbCrLf + If dicFLError.Count > 0 Then LogOnly Join(dicFLError.Keys,vbCrLf) + If Not oFolderDic.Count = 0 Then arrDeleteFolders = oFolderDic.Keys Else Set arrDeleteFolders = Nothing + If Not oDic.Count = 0 Then arrDeleteFiles = oDic.Keys Else Set arrDeleteFiles = Nothing +End Sub 'ScanComponents +'======================================================================================================= + + +'Try to remove the products by calling setup.exe +Sub SetupExeRemoval + Dim OseService, Service, TextStream + Dim iSetupCnt, RetVal + Dim Sku, sConfigFile, sUninstallCmd, sCatalyst, sDll, sDisplayLevel, sNoCancel + iSetupCnt = 0 + If Not dicRemoveSku.Count > 0 Then + Log " Nothing to remove for Setup.exe" + Exit Sub + End If + + 'Ensure that the OSE service is *installed, *not disabled, *running under System context. + 'If validation fails exit out of this sub. + Set OseService = oWmiLocal.Execquery("Select * From Win32_Service Where Name like 'ose%'") + If OseService.Count = 0 Then Exit Sub + For Each Service in OseService + If (Service.StartMode = "Disabled") AND (Not Service.ChangeStartMode("Manual")=0) Then Exit Sub + If (Not Service.StartName = "LocalSystem") AND (Service.Change( , , , , , , "LocalSystem", "")) Then Exit Sub + Next 'Service + + For Each Sku in dicRemoveSku.Keys + + If Sku="CLICK2RUN" Then + 'Already done + Else + 'Create an "unattended" config.xml file for uninstall + If fQuiet Then sDisplayLevel = "None" Else sDisplayLevel="Basic" + If fNoCancel Then sNoCancel="Yes" Else sNoCancel="No" + Set TextStream = oFso.OpenTextFile(sScrubDir & "\config.xml",FOR_WRITING,True,True) + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Close + Set TextStream = Nothing + + 'Ensure path to setup.exe is valid to prevent errors + sDll = "" + If RegReadValue(HKLM,REG_ARP & OREGREF & Sku,"UninstallString",sCatalyst,"REG_SZ") Then + If InStr(LCase(sCatalyst),"/dll")>0 Then sDll = Right(sCatalyst,Len(sCatalyst)-InStr(LCase(sCatalyst),"/dll")+2) + If InStr(sCatalyst,"/")>0 Then sCatalyst = Left(sCatalyst,InStr(sCatalyst,"/")-1) + sCatalyst = Trim(Replace(sCatalyst,Chr(34),"")) + If NOT oFso.FileExists(sCatalyst) Then + sCatalyst = sCommonProgramFiles & "\" & OREF & "\Office Setup Controller\setup.exe" + If NOT oFso.FileExists(sCatalyst) AND f64 Then + sCatalyst = sCommonProgramFilesX86 & "" & OREF & "\Office Setup Controller\setup.exe" + End If + End If + If oFso.FileExists(sCatalyst) Then + sUninstallCmd = Chr(34) & sCatalyst & Chr(34) & " /uninstall " & Sku & " /config " & Chr(34) & sScrubDir & "\config.xml" & Chr(34) & sDll + iSetupCnt = iSetupCnt + 1 + Log " - Calling Setup.exe to remove " & Sku '& vbCrLf & sUninstallCmd + If Not fDetectOnly Then + On Error Resume Next + ' end other instances of setup + EndCurrentInstalls + ' call uninstall + RetVal = oWShell.Run(sUninstallCmd,0,True) : CheckError "SetupExeRemoval" + Log " - Setup.exe returned: " & SetupRetVal(Retval) & " (" & RetVal & ")" & vbCrLf + fRebootRequired = fRebootRequired OR (RetVal = "3010") + On Error Goto 0 + Else + Log " -> Removal suppressed in preview mode." + End If + Else + Log " Error: Office setup.exe appears to be missing" + End If 'RetVal = 0) AND oFso.FileExists + End If 'RegReadValue + End If + Next 'Sku + If iSetupCnt = 0 Then Log " Nothing to remove for setup." +End Sub 'SetupExeRemoval +'======================================================================================================= + +'Invoke msiexec to remove individual .MSI packages +Sub MsiexecRemoval + + Dim Product + Dim i + Dim sCmd, sReturn, sMsiProp + Dim fRegWipe + + fRegWipe = False + + Select Case OVERSIONMAJOR + Case "11" + sMsiProp = " REBOOT=ReallySuppress NOLOCALCACHEROLLBACK=1" + Case "12" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case "14" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case "15" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case Else + End Select + + 'Clear up ARP first to avoid possible custom action dependencies + If fRegWipe Then RegWipeARP + + 'Check MSI registered products + 'Office System does only support per machine installation so it's sufficient to use Installer.Products + i = 0 + sMsiProp = " MSIRESTARTMANAGERCONTROL=Disable" & sMsiProp + For Each Product in oMsi.Products + If CheckDeleteEx(Product) Then + i = i + 1 + Log " Calling msiexec.exe to remove " & Product + sCmd = "msiexec.exe /x" & Product & sMsiProp + If fQuiet AND NOT fBasic Then + sCmd = sCmd & " /q" + Else + sCmd = sCmd & " /qb-" + End If + sCmd = sCmd & " /l*v+ "&chr(34)&sLogDir&"\Uninstall_"&Product&".log"&chr(34) + If NOT fDetectOnly Then + ' end other instances of setup + EndCurrentInstalls + + 'Execute the uninstall + LogOnly " - Calling msiexec with '"&sCmd&"'" + sReturn = oWShell.Run(sCmd, 0, True) + Log " - msiexec returned: " & SetupRetVal(sReturn) & " (" & sReturn & ")" & vbCrLf + fRebootRequired = fRebootRequired OR (sReturn = "3010") OR (sReturn = "1618") + Else + Log " -> Removal suppressed in preview mode." + LogOnly " -> Command: "&sCmd + End If + End If 'InScope + Next 'Product + If i = 0 Then Log " Nothing to remove for msiexec" +End Sub 'MsiexecRemoval +'======================================================================================================= + +'Remove the OSE (Office Source Engine) service +Sub RemoveOSE + On Error Resume Next + Log vbCrLf & "OSE CleanUp" + DeleteService "ose" + 'Delete the folder + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\Source Engine" + 'Delete the registration + RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\ose\" +End Sub 'RemoveOSE +'======================================================================================================= + + +'File cleanup operations for the Local Installation Source (MSOCache) +Sub WipeLIS + Const LISROOT = "MSOCache\All Users\" + Dim LogicalDisks, Disk, Folder, SubFolder, MseFolder, File, Files + Dim arrSubFolders + Dim sFolder + Dim fRemoveFolder + + Log vbCrLf & "LIS CleanUp" + 'Search all hard disks + Set LogicalDisks = oWmiLocal.ExecQuery("Select * From Win32_LogicalDisk WHERE DriveType=3") + For Each Disk in LogicalDisks + If oFso.FolderExists(Disk.DeviceID & "\" & LISROOT) Then + Set Folder = oFso.GetFolder(Disk.DeviceID & "\" & LISROOT) + For Each Subfolder in Folder.Subfolders + If Len(Subfolder) > 37 Then + If fRemoveAll Then + If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) OR _ + LCase(Right(Subfolder.Name,7)) = OVERSIONMAJOR &".data" Then DeleteFolder Subfolder.Path + Else + If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) AND _ + CheckDelete(UCase(Left(Subfolder.Name,38))) AND _ + UCase(Right(Subfolder,1))= UCase(Left(Disk.DeviceID,1))Then DeleteFolder Subfolder.Path + End If + End If 'Len > 37 + Next 'Subfolder + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + sFolder = Folder.Path + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If 'oFso.FolderExists + Next 'Disk + + 'MSECache + If EnumFolders(sProgramFiles,arrSubFolders) Then + For Each SubFolder in arrSubFolders + If UCase(Right(SubFolder,9))="\MSECACHE" Then + ReDim arrMseFolders(-1) + Set Folder = oFso.GetFolder(SubFolder) + GetMseFolderStructure Folder + For Each MseFolder in arrMseFolders + If oFso.FolderExists(MseFolder) Then + fRemoveFolder = False + Set Folder = oFso.GetFolder(MseFolder) + Set Files = Folder.Files + For Each File in Files + If (LCase(Right(File.Name,4))=".msi") Then + If CheckDelete(ProductCode(File.Path)) Then + fRemoveFolder = True + Exit For + End If 'CheckDelete + End If + Next 'File + Set Files = Nothing + Set Folder = Nothing + If fRemoveFolder Then SmartDeleteFolder MseFolder + End If 'oFso.FolderExists(MseFolder) + Next 'MseFolder + End If + Next 'SubFolder + End If 'oFso.FolderExists +End Sub 'WipeLis +'======================================================================================================= + +'Wipe files and folders as documented in KB 928218 +Sub FileWipeAll + Dim sFolder + Dim Folder, Subfolder + + If fForce OR fQuiet OR fPassive Then CloseOfficeApps + + 'Handle other services. + Select Case OVERSIONMAJOR + Case "11" + Case "12" + Case "14" + DeleteService "odserv" + DeleteService "Microsoft Office Groove Audit Service" + DeleteService "Microsoft SharePoint Workspace Audit Service" + Case "15" + Case Else + End Select + + 'User specific files + If NOT fKeepUser Then + 'Delete files that should be backed up before deleting them + CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normal.dotm" + CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normalemail.dotm" + sFolder = sAppdata & "\microsoft\document building blocks" + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder In Folder.Subfolders + If oFso.FileExists(Subfolder & "\blocks.dotx") Then CopyAndDeleteFile Subfolder & "\blocks.dotx" + Next 'Subfolder + Set Folder = Nothing + End If 'oFso.FolderExists(sFolder) + End If + + 'Run the individual filewipe from component detection first + FileWipeIndividual + If fC2rInstalled AND NOT fForce Then Exit Sub + + 'Take care of the rest + DeleteFolder sOInstallRoot + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF + DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" + DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" + DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" + DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" + If (fRemoveOspp OR fForce) AND CInt(OVERSIONMAJOR) > 12 Then + If CInt(OVERSIONMAJOR) = 15 Then CleanOSPP + DeleteService "osppsvc" + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\OfficeSoftwareProtectionPlatform" + DeleteFolder sAllUsersProfile & "\Microsoft\OfficeSoftwareProtectionPlatform" + End If + Select Case OVERSIONMAJOR + Case "12" + Case "14" + DeleteFile oWShell.SpecialFolders("AllUsersStartup")&"\OfficeSAS.lnk" + DeleteFile oWShell.SpecialFolders("Startup")&"\OneNote 2010 Screen Clipper and Launcher.lnk" + Case "15" + Case Else + End Select + DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF + DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" + DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" & OREF + DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" + +End Sub 'FileWipeAll +'======================================================================================================= + +'Wipe individual files & folders related to SKU's that are no longer installed +Sub FileWipeIndividual + Dim LogicalDisks, Disk,sc + Dim File, Files, XmlFile, scFiles, oFile, Folder, SubFolder, Processes, Process, item + Dim sFile, sFolder, sPath, sConfigName, sContents, sProductCode, sLocalDrives,sScQuery + Dim sValue, sScRoots + Dim arrSubfolders, arrShortCutRoots + Dim fKeepFolder, fDeleteSC + Dim iRet,iCnt,iPos + + Log vbCrLf & "File CleanUp" + If IsArray(arrDeleteFiles) Then + If fForce OR fQuiet Then + Log " Doing Action: StopOSE" + iRet = StopService("ose") + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like 'ose%.exe'") + For Each Process in Processes + LogOnly " - Running process : " & Process.Name + Log " -> Ending process: " & Process.Name + iRet = Process.Terminate() + Next 'Process + LogOnly " End Action: StopOSE" + CloseOfficeApps + End If + 'Wipe individual files detected earlier + LogOnly " Removing left behind files" + For Each sFile in arrDeleteFiles + If oFso.FileExists(sFile) Then DeleteFile sFile + Next 'File + End If 'IsArray + + 'Wipe Catalyst in commonfiles + sFolder = sCommonProgramFiles & "\microsoft shared\"&OREF&"\Office Setup Controller\" + If EnumFolderNames(sFolder,arrSubFolders) Then + For Each SubFolder in arrSubFolders + sPath = sFolder & SubFolder + If InStr(SubFolder, ".") > 0 Then sConfigName = UCase(Left(SubFolder, InStr(SubFolder, ".") - 1)) Else sConfigName = UCase(Subfolder) + If GetFolderPath(sPath) Then + Set Folder = oFso.GetFolder(sPath) + Set Files = Folder.Files + fKeepFolder = False + For Each File In Files + If Len(File.Name)>3 Then + If (LCase(Right(File.Name,4))=".xml") Then + If Len(File.Name) >= Len(sConfigName) Then + If (UCase(Left(File.Name,Len(sConfigName)))=sConfigName) Then + Set XmlFile = oFso.OpenTextFile(File,1) + sContents = XmlFile.ReadAll + Set XmlFile = Nothing + sProductCode = "" + On Error Resume Next + sProductCode = Mid(sContents,InStr(sContents,"ProductCode=")+Len("ProductCode=")+1,38) + On Error Goto 0 + If Len(sProductCode) = 38 Then + If CheckDelete(sProductCode) Then DeleteFile File.Path Else fKeepFolder = True + End If + End If 'sConfigName + End If 'Len >= + End If '.xml + End If 'Len(File.Name)>3 + Next 'File + Set Files = Nothing + Set Folder = Nothing + If Not fKeepFolder Then DeleteFolder sPath + End If 'GetFolderPath + Next 'SubFolder + End If 'EnumFolderNames + + 'Wipe Shortcuts + If NOT fSkipSD Then + On Error Resume Next + Log " Searching for shortcuts" + CleanShortcuts sAllUsersProfile, True, False + CleanShortcuts sProfilesDirectory, True, False + On Error Goto 0 + End If 'NOT SkipSD + Err.Clear + +End Sub 'FileWipeIndividual +'======================================================================================================= + +'------------------------------------------------------------------------------- +' CleanShortcuts +' +' Recursively search all profile folders for Office shortcuts in scope +'------------------------------------------------------------------------------- +Sub CleanShortcuts (sFolder, fDelete, fUnPin) + Dim oFolder, fld, file, sc, item + Dim fDeleteSC + + Set oFolder = oFso.GetFolder(sFolder) + ' exclude system protected link folders + If CBool(oFolder.Attributes AND 1024) Then Exit Sub + + On Error Resume Next + For Each fld In oFolder.SubFolders + If Err <> 0 Then + CheckError "CleanShortcuts: " & vbTab & sFolder + Else + CleanShortcuts fld.Path, fDelete, fUnPin + End If + Next + For Each file In oFolder.Files + If LCase(Right(file.Path, 4)) = ".lnk" Then + fDeleteSC = False + LogOnly " check file: " & file.Path + set sc = oWShell.CreateShortcut(file.Path) + If Err <> 0 Then + CheckError "CleanShortcutsSC: " & vbTab & sFolder + Else + 'Compare if the shortcut target is in the list of executables that will be removed + 'LogOnly " - SC.TargetPath: " & sc.TargetPath + If Len(sc.TargetPath) > 0 Then + If InStr(sc.TargetPath,"{{") > 0 Then + 'Handle Windows Installer shortcuts + If Len(sc.TargetPath) >= InStr(sc.TargetPath,"{{") + 37 Then + If CheckDelete(Mid(sc.TargetPath, InStr(sc.TargetPath,"{{"), 38)) Then fDeleteSC = True + End If + Else + 'Handle regular shortcuts + If NOT fBypass_Stage1 Then + ' Compare against results from component scan + For Each item in dicApps.Items + If LCase(sc.TargetPath) = item Then + LogOnly " - removing shortcut per match from component detection: " & file.Path + fDeleteSC = True + Exit For + End If + Next 'item + Else + End If + If NOT oFso.FileExists(sc.TargetPath) Then + ' Shortcut target does not exist + If InStr (sc.TargetPath, OREF) > 0 Then + LogOnly " - removing Office shortcut with non-existent target: " & file.Path & " - " & sc.TargetPath + fDeleteSC = True + Else + 'LogOnly " - keep orphaned SC as target is not in scope: " & sc.TargetPath + End If + Else + 'LogOnly " - keep SC as shortcut target does still exist: " & sc.TargetPath + End If + End If + End If + End If + If fDeleteSC Then + If Not IsArray(arrDeleteFolders) Then ReDim arrDeleteFolders(0) + sFolder = file.Drive & file.Path + If Not arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder Then + ReDim Preserve arrDeleteFolders(UBound(arrDeleteFolders) + 1) + arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder + End If + If fUnPin Then UnPin file + If fDelete Then + If fBypass_Stage1 Then UnPin file + DeleteFile file.Path + End If + fDeleteSC = False + End If 'fDeleteSC + End If + Next + On Error Goto 0 +End Sub 'CleanShortcuts + +'------------------------------------------------------------------------------- +' UnPin +' +' Unpins a shortcut from the taskbar or start menu +'------------------------------------------------------------------------------- +Sub UnPin(file) + Dim fldItem, verb + + On Error Resume Next + Set fldItem = oShellApp.NameSpace(file.ParentFolder.Path).ParseName(file.Name) + For Each verb in fldItem.Verbs + Select Case Replace(verb, "&", "") + Case "Unpin from Taskbar", "Von Taskleiste lösen", "Détacher du barre des tâches", "Détacher de la barre des tâches", "Desanclar de la barra de tareas", "Ta bort från Aktivitetsfältet", "??? ????????(K)", "?? ????? ??(K)", "????????? ?? ?????? ?????" + verb.DoIt + Case "Unpin from Start Menu", "Vom Startmenü lösen", "Détacher du menu Démarrer", "Détacher de la menu Démarrer" + If iVersionNT = 601 Then verb.DoIt + End Select + Next + On Error Goto 0 +End Sub + + +'======================================================================================================= + +Sub DelScrubTmp + + On Error Resume Next + If oFso.FolderExists(sScrubDir & "\ScrubTmp") Then oFso.DeleteFolder sScrubDir & "\ScrubTmp",True + +End Sub 'DelScrubTmp +'======================================================================================================= + +'Ensure there are no unexpected .msi files in the scrub folder +Sub DeleteMsiScrubCache + Dim Folder, File, Files + + Log vbCrLf & "ScrubCache CleanUp" + Set Folder = oFso.GetFolder(sScrubDir) : CheckError "DeleteMsiScrubCache" + Set Files = Folder.Files + For Each File in Files + CheckError "DeleteMsiScrubCache" + If LCase(Right(File.Name,4))=".msi" Then + CheckError "DeleteMsiScrubCache" + DeleteFile File.Path : CheckError "DeleteMsiScrubCache" + End If + Next 'File +End Sub 'DeleteMsiScrubCache +'======================================================================================================= + +Sub MsiClearOrphanedFiles + Const USERSIDEVERYONE = "s-1-1-0" + Const MSIINSTALLCONTEXT_ALL = 7 + Const MSIPATCHSTATE_ALL = 15 + + 'Error handling inlined + On Error Resume Next + + Dim Patch, AllPatches, Product, AllProducts + Dim File, Files, Folder + Dim sFName, sLocalMsp, sLocalMsi, sPatchList, sMsiList + + Set Folder = oFso.GetFolder(sWinDir & "\Installer") + Set Files = Folder.Files + + Log vbCrLf & "Windows Installer cache CleanUp" + 'Get a complete list of patches + Err.Clear + Set AllPatches = oMsi.PatchesEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL,MSIPATCHSTATE_ALL) + If Err <> 0 Then + CheckError "MsiClearOrphanedFiles (msp)" + Else + 'Fill a comma separated stringlist with all .msp patchfiles + For Each Patch in AllPatches + sLocalMsp = "" : sLocalMsp = LCase(Patch.Patchproperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msp)" + sPatchList = sPatchList & sLocalMsp & "," + Next 'Patch + + 'Delete all non referenced .msp files from %windir%\installer + For Each File in Files + sFName = "" : sFName = LCase(File.Path) + If LCase(Right(sFName,4)) = ".msp" Then + If Not InStr(sPatchList,sFName) > 0 Then + 'While this is an orphaned file keep the scope of Office only + If InStr(UCase(MspTargets(File.Path)),OFFICEID)>0 Then DeleteFile File.Path + End If + End If 'LCase(Right(sFName,4)) + Next 'File + End If 'Err=0 + + 'Get a complete list products + Err.Clear + Set AllProducts = oMsi.ProductsEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL) + If Err <> 0 Then + CheckError "MsiClearOrphanedFiles (msi)" + Else + 'Fill a comma separated stringlist with all .msi files + For Each Product in AllProducts + sLocalMsi = "" : sLocalMsi = LCase(Product.InstallProperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msi)" + sMsiList = sMsiList & sLocalMsi & "," + Next 'Product + + 'Delete all non referenced .msi files from %windir%\installer + For Each File in Files + sFName = "" : sFName = LCase(File.Path) + If LCase(Right(sFName,4)) = ".msi" Then + If Not InStr(sMsiList,sFName) > 0 Then + 'While this is an orphaned file keep the scope of Office only + If UCase(Right(ProductCode(File.Path),PRODLEN))=OFFICEID Then DeleteFile File.Path + End If + End If 'LCase(Right(sFName,4)) = ".msi" + Next 'File + End If 'Err=0 + +End Sub 'MsiClearOrphanedFiles +'======================================================================================================= + +Sub RegWipe + Dim Item, Name, Sku, key + Dim hDefKey, sSubKeyName, sCurKey, value, sValue, sGuid + Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion + Dim arrKeys, arrNames, arrTypes, arrMultiSzValues, arrMultiSzNewValues + Dim arrTestNames, arrTestTypes + Dim i, iLoopCnt, iPos + Dim fDelReg + + Log vbCrLf & "Registry CleanUp" + 'Wipe registry data + + 'User Profile settings + Log " - User Policies" + RegDeleteKey HKCU,"Software\Policies\Microsoft\Office\" & OVERSION & "\" + If NOT fKeepUser Then + RegDeleteKey HKCU,"Software\Microsoft\Office\" & OVERSION & "\" + Log " - User Settings" + End If 'fKeepUser + + 'Computer specific settings + If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then + Log " - Machine Settings" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\" & OVERSION & "\" + If fRemoveOse OR fForce Then + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office Test\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","LastAccessInstall", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","MID", False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Excel\Addins\Microsoft.PerformancePoint.Planning.Client.Excel\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerExcelImport\Versions\",OVERSION, False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerWordImport\Versions\",OVERSION, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Outlook\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\MEWord12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word97\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\MEWord12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word97\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","GrooveMonitor", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","LobiServer", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","BCSSync", False + RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\Outlook\" + End If + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Office\" & OVERSION & "\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" + + Select Case OVERSIONMAJOR + Case "11" + 'Jet_Replication + sValue = "" + If RegReadValue(HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32","SystemDB",sValue,"REG_SZ") Then + If Len(sValue) > Len(sOInstallRoot) Then + If LCase(Left(sValue,Len(sOInstallRoot))) = LCase(sOInstallRoot) Then RegDeleteKey HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32\" + End If + End If + Case "12" + Case "14" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform_Test\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Common\ActiveX Compatibility\{{00024512-0000-0000-C000-000000000046}\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\OneNote\Adapters\","{{456B0D0E-49DD-4C95-8DB6-175F54DE69A3}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{42042206-2D85-11D3-8CFF-005004838597}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{993BE281-6695-4BA5-8A2A-7AACBFAAB69E}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{0006F045-0000-0000-C000-000000000046}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{C41662BB-1FA0-4CE0-8DC5-9B7F8279FF97}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{7CCA70DB-DE7A-4FB7-9B2B-52E2335A3B5A}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{506F4668-F13E-4AA1-BB04-B43203AB3CC0}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{D66DC78C-4F61-447F-942B-3FB6980118CF}", False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{B4F3A835-0E21-4959-BA22-42B3008E02FF}\" + 'Groove Extensions + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{99FD978C-D287-4F50-827F-B2C658EDA8E7}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{AB5C5600-7E6E-4B06-9197-9ECEF74D31CC}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{920E6DB1-9907-4370-B3A0-BAFC03D81399}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{16F3DD56-1AF5-4347-846D-7C10C4192619}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2916C86E-86A6-43FE-8112-43ABE6BF8DCC}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{6C467336-8281-4E60-8204-430CED96822D}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2A541AE1-5BF6-4665-A8A3-CFA9672E4291}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{A449600E-1DC6-4232-B948-9BD794D62056}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{3D60EDA7-9AB4-4DA8-864C-D9B5F2E7281D}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{387E725D-DC16-4D76-B310-2C93ED4752A0}", False + RegDeleteKey HKLM,"SOFTWARE\Classes\*\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Folder\ShellEx\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\Background\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 1 (GFS Unread Stub)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2 (GFS Stub)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2.5 (GFS Unread Folder)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 3 (GFS Folder)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 4 (GFS Unread Mark)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}\" + + Case 15 + + Case Else + End Select + + 'Win32Assemblies + Log " - Win32Assemblies" + If RegEnumKey(HKCR,"Installer\Win32Assemblies\",arrKeys) Then + For Each Item in arrKeys + If InStr(UCase(Item),OREF)>0 Then RegDeleteKey HKCR,"Installer\Win32Assemblies\"&Item & "\" + Next 'Item + End If 'RegEnumKey + 'Groove blocks reinstall if it locates groove.exe over this key + If RegKeyExists(HKCR,"GrooveFile\Shell\Open\Command\") Then + sValue = "" + RegReadValue HKCR,"GrooveFile\Shell\Open\Command\","",sValue,"REG_SZ" + If InStr(sValue,"\"&OREF&"\")>0 Then RegDeleteKey HKCR,"GrooveFile\" + End If 'RegKeyExists + End If 'fRemoveAll + + Select Case OVERSIONMAJOR + Case "11" + For iLoopCnt = 1 to 3 + Select Case iLoopCnt + Case 1 + 'CIW - HKCU + sSubKeyName = "Software\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" + hDefKey = HKCU + Case 2 + 'CIW - HKLM + sSubKeyName = "SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" + hDefKey = HKLM + Case 3 + 'Add/Remove Programs + sSubKeyName = REG_ARP + hDefKey = HKLM + End Select + + If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'OFFICEID id + If Len(Item)>37 Then + sGuid = UCase(Left(Item,38)) + If Right(sGuid,PRODLEN)=OFFICEID Then + If CheckDelete(sGuid) Then + RegDeleteKey hDefKey, sSubKeyName & Item & "\" + End If + End If 'Right(Item,PRODLEN)=OFFICEID + End If 'Len(Item)>37 + Next 'Item + If iLoopCnt < 3 Then + If RegEnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) Then + i = 0 + For Each Name in arrNames + If RegReadValue(hDefKey,sSubKeyName,Name,sValue,arrTypes(i)) Then + If sValue = sGuid Then RegDeleteValue hDefKey,sSubKeyName,Name, False + End If + i = i + 1 + Next + End If + End If + End If + If NOT RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\" + If NOT RegEnumKey(hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\",arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\" + Next 'iLoopCnt + Case "12" + 'Add/Remove Programs + RegWipeARP + Case "14" + 'Add/Remove Programs + RegWipeARP + Case Else + End Select + + 'UpgradeCodes, WI config, WI global config + For iLoopCnt = 1 to 5 + Select Case iLoopCnt + Case 1 + Log " - HKLM UpgradeCodes" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\" + hDefKey = HKLM + Case 2 + Log " - HKCR UpgradeCodes" + sSubKeyName = "Installer\UpgradeCodes\" + hDefKey = HKCR + Case 3 + Log " - HKLM Products" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" + hDefKey = HKLM + Case 4 + Log " - HKCR Features" + sSubKeyName = "Installer\Features\" + hDefKey = HKCR + Case 5 + Log " - HKCR Products" + sSubKeyName = "Installer\Products\" + hDefKey = HKCR + Case Else + sSubKeyName = "" + hDefKey = "" + End Select + If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + 'Expand the GUID + sGuid = GetExpandedGuid(Item) + 'Check if it's an Office key + If CheckDeleteEx (sGuid) Then + RegDeleteKey hDefKey,sSubKeyName & Item & "\" + Else + If iLoopCnt < 3 Then + 'Enum all entries + RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes + If IsArray(arrNames) Then + 'Delete entries within removal scope + For Each Name in arrNames + If Len(Name)=32 Then + sGuid = GetExpandedGuid(Name) + If CheckDelete(sGuid) Then RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True + Else + 'Invalid data -> delete the value + RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True + End If + Next 'Name + End If 'IsArray(arrNames) + 'If all entries were removed - delete the key + RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes + If Not IsArray(arrNames) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" + Else 'iLoopCnt >= 3 + If CheckDelete(sGuid) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" + End If 'iLoopCnt < 3 + End If 'fRemoveAll + End If 'Len(Item)=32 + Next 'Item + End If 'RegEnumKey + Next 'iLoopCnt + + 'Components + Log " - Global Components" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + If RegEnumValues(HKLM,sSubKeyName & Item,arrNames,arrTypes) Then + If IsArray(arrNames) Then + For Each Name in arrNames + If Len(Name)=32 Then + sGuid = GetExpandedGuid(Name) + If CheckDelete(sGuid) Then + RegDeleteValue HKLM, sSubKeyName & Item & "\", Name, False + 'Check if the key is now empty + If NOT RegEnumValues(HKLM,sSubKeyName & Item,arrTestNames,arrTestTypes) Then + If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR + End If + End If + End If '32 + Next 'Name + End If 'IsArray + End If 'RegEnumValues + End If '32 + Next 'Item + End If 'RegEnumKey + + 'Published Components + Log " - Published Components" + sSubKeyName = "Installer\Components\" + If RegEnumKey(HKCR,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + If RegEnumValues(HKCR,sSubKeyName & Item,arrNames,arrTypes) Then + If IsArray(arrNames) Then + For Each Name in arrNames + If RegReadValue (HKCR,sSubKeyName & Item, Name, sValue,"REG_MULTI_SZ") Then + arrMultiSzValues = Split(sValue,chr(34)) + If IsArray(arrMultiSzValues) Then + i = -1 + ReDim arrMultiSzNewValues(-1) + fDelReg = False + For Each value in arrMultiSzValues + If Len(value) > 19 Then + sGuid = "" + If GetDecodedGuid(Left(value,SQUISHED),sGuid) Then + If CheckDelete(sGuid) Then + fDelReg = True + Else + i = i + 1 + ReDim Preserve arrMultiSzNewValues(i) + arrMultiSzNewValues(i) = value + End If 'CheckDelete + End If 'decode + End If '19 + Next 'Value + If NOT (i = -1) Then + If NOT fDetectOnly Then + If NOT UBound(arrMultiSzValues) = i Then oReg.SetMultiStringValue HKCR,sSubKeyName & Item,Name,arrMultiSzNewValues + End If + Else + If fDelReg Then + RegDeleteValue HKCR,sSubKeyName & Item & "\", Name, False + 'Check if the key is now empty + If NOT RegEnumValues(HKCR,sSubKeyName & Item,arrTestNames,arrTestTypes) Then + If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR + End If + End If 'DelReg + End If + End If 'IsArray + End If + Next 'Name + End If 'IsArray + End If 'RegEnumValues + End If '32 + Next 'Item + End If 'RegEnumKey + + 'Delivery + Log " - Delivery" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\Delivery\SourceEngine\Downloads\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item) > 37 Then + If fRemoveAll Then + If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) OR _ + LCase(Right(Item,7))=OVERSIONMAJOR&".data" Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + Else + If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) AND _ + CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + End If '37 + Next 'Item + End If 'RegEnumKey + + 'Registration + Log " - HKLM Registration" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\Registration\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item)>37 Then + If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + Next 'Item + End If 'RegEnumKey + + 'User Preconfigurations + Log " - HKLM User Preconfigurations" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\User Settings\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item)>37 Then + If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + Next 'Item + End If 'RegEnumKey + + 'Known Keypath settings + Log " - Detcted KeyPath settings" + For Each key in dicDelRegKey.Keys + If Right(key,1) = "\" Then + RegDeleteKey dicDelRegKey.Item(key),key + Else + iPos = InStrRev(Key,"\") + If iPos > 0 Then RegDeleteValue dicDelRegKey.Item(key), Left(key,iPos - 1), Mid(key,iPos+1), False + End If + Next + + 'Temporary entries in ARP + TmpKeyCleanUp +End Sub 'RegWipe +'======================================================================================================= + +'Clean up Add/Remove Programs registry +Sub RegWipeARP + + Dim Item, Name, Sku, key + Dim sSubKeyName, sCurKey, sValue, sGuid + Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion + Dim arrKeys + + 'Add/Remove Programs + sSubKeyName = REG_ARP + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + '*0FF1CE* + If Len(Item)>37 Then + sGuid = UCase(Left(Item,38)) + If CheckDeleteEx(sGuid) Then RegDeleteKey HKLM, sSubKeyName & Item + End If 'Len(Item)>37 + + 'Config entries + sCurKey = sSubKeyName & Item & "\" + fSystemComponent0 = Not (RegReadValue(HKLM,sCurKey,"SystemComponent",sValue,"REG_DWORD") AND (sValue = "1")) + fPackages = RegReadValue(HKLM,sCurKey,OPACKAGE,sValue,"REG_MULTI_SZ") + fDisplayVersion = RegReadValue(HKLM,sCurKey,"DisplayVersion",sValue,"REG_SZ") + If fDisplayVersion AND Len(sValue) > 1 Then + fDisplayVersion = (Left(sValue,2) = OVERSIONMAJOR) + End If + If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then + fKeep = False + If Not fRemoveAll Then + For Each Sku in dictionaryKeepSku.Keys + If UCase(Item) = OREGREF & Sku Then + fkeep = True + Exit For + End If + Next 'Sku + End If + If Not fkeep Then RegDeleteKey HKLM, sSubKeyName & Item + End If + Next 'Item + End If 'RegEnumKey + +End Sub 'RegWipeARP +'======================================================================================================= + +'Clean up temporary registry keys +Sub TmpKeyCleanUp + Dim TmpKey + + If fLogInitialized Then Log " - temporary OffScrub registry entries" + If IsArray(arrTmpSKUs) Then + For Each TmpKey in arrTmpSKUs + oReg.DeleteKey HKLM, REG_ARP & TmpKey + Next 'Item + End If 'IsArray +End Sub 'TmpKeyCleanUp + +'======================================================================================================= +' Helper Functions +'======================================================================================================= + +'Create a log with the results of the SKU detection +Sub LogSkuResults + Dim SkuLog, SkuKey , p + + On Error Resume Next 'Don't fail on logging + + Set SkuLog = oFso.OpenTextFile(sScrubDir & "\SkuLog.txt",FOR_WRITING,True,True) + + SkuLog.WriteLine "Installed SKUs (All):" + SkuLog.WriteLine "=====================" + For Each SkuKey in dicInstalledSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Server SKUs:" + SkuLog.WriteLine "============" + For Each SkuKey in dicSrv.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Client Suite SKUs:" + SkuLog.WriteLine "==================" + For Each SkuKey in dicCSuite.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Client Standalone SKUs:" + SkuLog.WriteLine "=======================" + For Each SkuKey in dicCSingle.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Installed Products (All):" + SkuLog.WriteLine "=========================" + For Each p in oMsi.Products + If InScope(p) Then + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + End If + Next 'Product + + SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf + + SkuLog.WriteLine vbCrLf & "SKUs to keep:" + SkuLog.WriteLine "=============" + For Each SkuKey in dictionaryKeepSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Products to keep:" + SkuLog.WriteLine "=================" + For Each p in dictionaryKeepProd.Keys + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + Next 'Key + + SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf + + SkuLog.WriteLine vbCrLf & "SKUs to remove:" + SkuLog.WriteLine "===============" + For Each SkuKey in dicRemoveSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Products to remove:" + SkuLog.WriteLine "===================" + For Each p in oMsi.Products + If CheckDeleteEx(p) Then + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + End If 'InScope + Next 'Product + + SkuLog.Close + Set SkuLog = Nothing + +End Sub 'LogSkuResults +'======================================================================================================= + +'End all running instances of applications that will be removed +Sub CloseOfficeApps + Dim Processes, Process, prop + Dim fWait + Dim iRet + + On Error Resume Next + + fWait = False + Log " Doing Action: CloseOfficeApps" + + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process") + For Each Process in Processes + If dicApps.Exists(LCase(Process.Name)) Then + Log " - End process " & Process.Name + iRet = Process.Terminate() + CheckError "CloseOfficeApps: " & "Process.Name" + Else + For Each prop in Process.Properties_ + If prop.Name = "ExecutablePath" Then + If InStr(UCase(prop.Value), UCase(sOInstallRoot)) > 0 Then + Log " - End process '" & Process.Name + iRet = Process.Terminate() + CheckError "CloseOfficeApps: " & "Process.Name" + fWait = True + End If + End If 'ExcecutablePath + Next 'prop + End If + Next 'Process + If fWait Then + wscript.sleep 10000 + End If + LogOnly " End Action: CloseOfficeApps" +End Sub 'CloseOfficeApps +'======================================================================================================= + +'Ensure Windows Explorer is restarted if needed +Sub RestoreExplorer + Dim Processes, Result, oAT, DateTime, JobID + Dim sCmd + + 'Non critical routine. Don't fail on error + On Error Resume Next + wscript.sleep 1000 + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='explorer.exe'") + If Processes.Count < 1 Then + oWShell.Run "explorer.exe" + 'To handle this in case of System context, schedule and run as interactive task + If iVersionNT > 502 Then + 'Vista and later + oWShell.Run "SCHTASKS /Create /TN OffScrEx /TR explorer /SC ONCE /ST 12:00 /IT",0,True + oWShell.Run "SCHTASKS /Run /TN OffScrEx", 0, True + oWShell.Run "SCHTASKS /Delete /TN OffScrEx /F", 0, False + Else + Set oAT = oWmiLocal.Get("Win32_ScheduledJob") + Set DateTime = CreateObject("WbemScripting.SWbemDateTime") + DateTime.SetVarDate DateAdd("n",1,Now),True + Result = oAT.Create("explorer.exe", DateTime.Value, , , , True, JobID) + End If 'iVersionNT + End If +End Sub 'RestoreExploer +'======================================================================================================= + +'Returns the delimiter for a passed in string +Function Delimiter (sVersion) + + Dim iCnt, iAsc + + Delimiter = " " + For iCnt = 1 To Len(sVersion) + iAsc = Asc(Mid(sVersion, iCnt, 1)) + If Not (iASC >= 48 And iASC <= 57) Then + Delimiter = Mid(sVersion, iCnt, 1) + Exit Function + End If + Next 'iCnt +End Function +'======================================================================================================= + +'Check registry access permissions. Failure will terminate the script +Function CheckRegPermissions + Const KEY_QUERY_VALUE = &H0001 + Const KEY_SET_VALUE = &H0002 + Const KEY_CREATE_SUB_KEY = &H0004 + Const DELETE = &H00010000 + + Dim sSubKeyName + Dim fReturn + + CheckRegPermissions = True + sSubKeyName = "Software\Microsoft\Windows\" + oReg.CheckAccess HKLM, sSubKeyName, KEY_QUERY_VALUE, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, KEY_SET_VALUE, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, KEY_CREATE_SUB_KEY, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, DELETE, fReturn + If Not fReturn Then CheckRegPermissions = False + +End Function 'CheckRegPermissions +'======================================================================================================= + +'Check if a product will be removed +Function CheckDeleteEx (sProductCode) + + CheckDeleteEx = False + If CheckDelete (sProductCode) Then + CheckDeleteEx = True + Exit Function + End If + If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then + CheckDeleteEx = InScope(sProductCode) AND NOT dictionaryKeepProd.Exists(UCase(sProductCode)) + End If +End Function 'CheckDelete +'======================================================================================================= + +'Check if an Office product is still registered with a SKU that stays on the computer +Function CheckDelete (sProductCode) + + 'Ensure valid GUID length + If NOT Len(sProductCode) = 38 Then + CheckDelete = False + Exit Function + End If + + 'If it's a non Office ProductCode exit with false right away + CheckDelete = InScope(sProductCode) + If Not CheckDelete Then Exit Function + If dictionaryKeepProd.Exists(UCase(sProductCode)) Then CheckDelete = False + +End Function 'CheckDelete +'======================================================================================================= + +'Check if ProductCode is in scope +Function InScope(sProductCode) + + Dim fInScope + Dim sProd + + fInScope = False + If Len(sProductCode) = 38 Then + sProd = UCase(sProductCode) + Select Case OVERSIONMAJOR + Case "11" + If Right(sProd,PRODLEN)=OFFICEID Then fInScope = True + Case "12" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True + Case "14" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True + Case "15" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then + Select Case Mid(sProd, 11, 4) + Case "007E", "008F", "008C", "24E1", "237A" + ' C2R products - keep them + Case Else + fInScope = True + End Select + End If + Case Else + End Select + End If '38 + + InScope = fInScope +End Function 'InScope +'======================================================================================================= + +'Register an orphaned .msi product as installed for MSI +Sub MsiRegisterProduct (sMsiFile) + + Dim sDisplayVersion, sCurKey, sDisplayName, sLang, sProductCode, sTmpKey + Dim iCnt + + 'Create a temporary keys to simulate an installed product + sProductCode = "" + sProductCode = GetMsiProductCode(sMsiFile) + sDisplayVersion = GetMsiProductVersion(sMsiFile) + If sDisplayVersion = "" Then sDisplayVersion = OVERSION & ".0000.0000" + sDisplayName = GetMsiProductName(sMsiFile) + If sDisplayName = "" Then sDisplayName = sProductCode + Select Case OVERSIONMAJOR + Case "9","10","11" + sLang = CInt("&h" & Mid(sProductCode,6,4)) + Case "12","14" + sLang = CInt("&h" & Mid(sProductCode,16,4)) + Case Else + End Select + + For iCnt = 1 To 3 + Select Case iCnt + Case 1 + sCurKey = REG_ARP & sProductCode + oReg.CreateKey HKLM,sCurKey + Case 2 + sCurKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & GetCompressedGuid(sProductCode) + oReg.CreateKey HKLM,sCurKey + oReg.CreateKey HKLM,sCurKey & "\Features" + oReg.CreateKey HKLM,sCurKey & "\InstallProperties" + oReg.CreateKey HKLM,sCurKey & "\Patches" + oReg.CreateKey HKLM,sCurKey & "\Usage" + sCurKey = sCurKey & "\InstallProperties" + oReg.SetStringValue HKLM,sCurKey,"LocalPackage",sMsiFile + Case 3 + sCurKey = "Installer\Products\" & GetCompressedGuid(sProductCode) + sTmpKey = sCurKey + oReg.CreateKey HKCR,sCurKey + oReg.SetDWordValue HKCR,sCurKey,"AdvertiseFlags",388 + oReg.SetDWordValue HKCR,sCurKey,"Assignment",1 + oReg.SetDWordValue HKCR,sCurKey,"AuthorizedLUAApp",0 + oReg.SetStringValue HKCR,sCurKey,"Clients",":" + oReg.SetDWordValue HKCR,sCurKey,"DeploymentFlags",3 + oReg.SetDWordValue HKCR,sCurKey,"InstanceType",0 + oReg.SetDWordValue HKCR,sCurKey,"Language",sLang + oReg.SetStringValue HKCR,sCurKey,"PackageCode",GetMsiPackageCode(sMsiFile) + oReg.SetStringValue HKCR,sCurKey,"ProductName",sDisplayName + oReg.SetDWordValue HKCR,sCurKey,"VersionMinor",0 + sCurKey = sTmpKey & "\SourceList" + oReg.CreateKey HKCR,sCurKey + oReg.SetExpandedStringValue HKCR,sCurKey,"LastUsedSource",sScrubDir + oReg.SetStringValue HKCR,sCurKey,"PackageName",Mid(sMsiFile,InstrRev(sMsiFile,"\")+1) + sCurKey = sTmpKey & "\SourceList\Media" + oReg.CreateKey HKCR,sCurKey + oReg.SetStringValue HKCR,sCurKey,"1",OREF & ";1" + oReg.SetStringValue HKCR,sCurKey,"DiskPrompt",sDisplayName + sCurKey = sTmpKey & "\SourceList\Net" + oReg.CreateKey HKCR,sCurKey + oReg.SetExpandedStringValue HKCR,sCurKey,"1",sScrubDir + + Case Else + End Select + If iCnt <3 Then + oReg.SetStringValue HKLM,sCurKey,"Comments","" + oReg.SetStringValue HKLM,sCurKey,"Contact","" + oReg.SetStringValue HKLM,sCurKey,"DisplayName",sDisplayName + oReg.SetStringValue HKLM,sCurKey,"DisplayVersion",sDisplayVersion + oReg.SetDWordValue HKLM,sCurKey,"EstimatedSize",0 + oReg.SetStringValue HKLM,sCurKey,"HelpLink","" + oReg.SetStringValue HKLM,sCurKey,"HelpTelephone","" + oReg.SetStringValue HKLM,sCurKey,"InstallDate","20100101" + If f64 Then + oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFilesX86 + Else + oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFiles + End If + oReg.SetStringValue HKLM,sCurKey,"InstallSource",sScrubDir + oReg.SetDWordValue HKLM,sCurKey,"Language",sLang + oReg.SetExpandedStringValue HKLM,sCurKey,"ModifyPath","MsiExec.exe /X" & sProductCode + oReg.SetDWordValue HKLM,sCurKey,"NoModify",1 + oReg.SetStringValue HKLM,sCurKey,"Publisher","Microsoft Corporation" + oReg.SetStringValue HKLM,sCurKey,"Readme","" + oReg.SetStringValue HKLM,sCurKey,"Size","" + oReg.SetDWordValue HKLM,sCurKey,"SystemComponent",0 + oReg.SetExpandedStringValue HKLM,sCurKey,"UninstallString","MsiExec.exe /X" & sProductCode + oReg.SetStringValue HKLM,sCurKey,"URLInfoAbout","" + oReg.SetStringValue HKLM,sCurKey,"URLUpdateInfo","" + oReg.SetDWordValue HKLM,sCurKey,"Version",0 + oReg.SetDWordValue HKLM,sCurKey,"VersionMajor",OVERSIONMAJOR + oReg.SetDWordValue HKLM,sCurKey,"VersionMinor",0 + oReg.SetDWordValue HKLM,sCurKey,"WindowsInstaller",1 + End If '< 3 + Next 'iCnt + +End Sub 'MsiRegisterProduct +'======================================================================================================= + +'Obtain the ProductCode (GUID) from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductCode(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductCode = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductCode'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductCode = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductCode +'======================================================================================================= + +'Obtain the ProductVersion from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductVersion(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductVersion = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductVersion'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductVersion = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductVersion +'======================================================================================================= + +'Obtain the ProductVersion from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductName(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductName = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductName'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductName = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductVersion +'======================================================================================================= + +'Obtain the PackageCode (GUID) from a .msi package +'The function will the .msi'S SummaryInformation stream +Function GetMsiPackageCode(sMsiFile) + + On Error Resume Next + + Const PID_REVNUMBER = 9 + + GetMsiPackageCode = "" + GetMsiPackageCode = GetCompressedGuid(oMsi.SummaryInformation(sMsiFile,MSIOPENDATABASEREADONLY).Property(PID_REVNUMBER)) + +End Function 'GetMsiPackageCode +'======================================================================================================= + +'Returns a string with a list of ProductCodes from the summary information stream +Function MspTargets (sMspFile) + Const MSIOPENDATABASEMODE_PATCHFILE = 32 + Const PID_TEMPLATE = 7 + + Dim Msp + 'Non critical routine. Don't fail on error + On Error Resume Next + MspTargets = "" + If oFso.FileExists(sMspFile) Then + Set Msp = Msi.OpenDatabase(WScript.Arguments(0),MSIOPENDATABASEMODE_PATCHFILE) + If Err = 0 Then MspTargets = Msp.SummaryInformation.Property(PID_TEMPLATE) + End If 'oFso.FileExists(sMspFile) +End Function 'MspTargets +'======================================================================================================= + +'Return the ProductCode {{GUID} from a .MSI package +Function ProductCode(sMsi) + Const MSIUILEVELNONE = 2 'No UI + Dim MsiSession + + On Error Resume Next + 'Non critical routine. Don't fail on error + If oFso.FileExists(sMsi) Then + oMsi.UILevel = MSIUILEVELNONE + Set MsiSession = oMsi.OpenPackage(sMsi,1) + ProductCode = MsiSession.ProductProperty("ProductCode") + Set MsiSession = Nothing + Else + ProductCode = "" + End If 'oFso.FileExists(sMsi) +End Function 'ProductCode +'======================================================================================================= + +Function GetUpgradeCode(sGuid) + + 'Ensure Valid Length + If NOT Len(sGuid) = 38 Then Exit Function + + GetUpgradeCode = "{{00" & Mid(sGuid, 4, 2) & "0000-" & Mid(sGuid, 11, 4) & "-0000-" & Mid(sGuid, 21, 1) & "000-" & Mid(sGuid, 26, 1) & "000000FF1CE}" + +End Function 'GetUpgradeCode +'======================================================================================================= + +Function GetExpandedGuid (sGuid) + Dim i + + 'Ensure valid length + If NOT Len(sGuid) = 32 Then Exit Function + + GetExpandedGuid = "{{" & StrReverse(Mid(sGuid,1,8)) & "-" & _ + StrReverse(Mid(sGuid,9,4)) & "-" & _ + StrReverse(Mid(sGuid,13,4))& "-" + For i = 17 To 20 + If i Mod 2 Then + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) + Else + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) + End If + Next + GetExpandedGuid = GetExpandedGuid & "-" + For i = 21 To 32 + If i Mod 2 Then + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) + Else + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) + End If + Next + GetExpandedGuid = GetExpandedGuid & "}" +End Function +'======================================================================================================= + +'Converts a GUID into the compressed format +Function GetCompressedGuid (sGuid) + Dim sCompGUID + Dim i + + 'Ensure Valid Length + If NOT Len(sGuid) = 38 Then Exit Function + + sCompGUID = StrReverse(Mid(sGuid,2,8)) & _ + StrReverse(Mid(sGuid,11,4)) & _ + StrReverse(Mid(sGuid,16,4)) + For i = 21 To 24 + If i Mod 2 Then + sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) + Else + sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) + End If + Next + For i = 26 To 37 + If i Mod 2 Then + sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) + Else + sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) + End If + Next + GetCompressedGuid = sCompGUID +End Function +'======================================================================================================= + +'Unsquish GUID +Function GetDecodedGuid(sEncGuid, sGuid) + +Dim sDecode, sTable, sHex, iChr +Dim arrTable +Dim i, iAsc, pow85, decChar +Dim lTotal +Dim fFailed + + fFailed = False + + sTable = "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ + "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ + "0xff,0x00,0xff,0xff,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff," & _ + "0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0xff,0xff,0xff,0x16,0xff,0x17," & _ + "0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27," & _ + "0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0xff,0x34,0x35,0x36," & _ + "0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46," & _ + "0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xff,0x53,0x54,0xff" + arrTable = Split(sTable,",") + lTotal = 0 : pow85 = 1 + For i = 0 To 19 + fFailed = True + If i Mod 5 = 0 Then + lTotal = 0 : pow85 = 1 + End If ' i Mod 5 = 0 + iAsc = Asc(Mid(sEncGuid,i+1,1)) + sHex = arrTable(iAsc) + If iAsc >=128 Then Exit For + If sHex = "0xff" Then Exit For + iChr = CInt("&h"&Right(sHex,2)) + lTotal = lTotal + (iChr * pow85) + If i Mod 5 = 4 Then sDecode = sDecode & DecToHex(lTotal) + pow85 = pow85 * 85 + fFailed = False + Next 'i + If NOT fFailed Then sGuid = "{{"&Mid(sDecode,1,8)&"-"& _ + Mid(sDecode,13,4)&"-"& _ + Mid(sDecode,9,4)&"-"& _ + Mid(sDecode,23,2) & Mid(sDecode,21,2)&"-"& _ + Mid(sDecode,19,2) & Mid(sDecode,17,2) & Mid(sDecode,31,2) & Mid(sDecode,29,2) & Mid(sDecode,27,2) & Mid(sDecode,25,2) &"}" + + GetDecodedGuid = NOT fFailed + +End Function 'GetDecodedGuid +'======================================================================================================= + +'Convert a long decimal to hex +Function DecToHex(lDec) + + Dim sHex + Dim iLen + Dim lVal, lExp + Dim arrChr + + arrChr = Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F") + sHex = "" + lVal = lDec + lExp = 16^10 + While lExp >= 1 + If lVal >= lExp Then + sHex = sHex & arrChr(Int(lVal / lExp)) + lVal = lVal - lExp * Int(lVal / lExp) + Else + sHex = sHex & "0" + If sHex = "0" Then sHex = "" + End If + lExp = lExp / 16 + Wend + + iLen = 8 - Len(sHex) + If iLen > 0 Then sHex = String(iLen,"0") & sHex + DecToHex = sHex +End Function +'======================================================================================================= + +'Ensures that only valid metadata entries exist to avoid API failures +Sub EnsureValidWIMetadata (hDefKey,sKey,iValidLength) + +Dim arrKeys +Dim SubKey + +If Len(sKey) > 1 Then + If Right(sKey,1) = "\" Then sKey = Left(sKey,Len(sKey)-1) +End If + +If RegEnumKey(hDefKey,sKey,arrKeys) Then + For Each SubKey in arrKeys + If NOT Len(SubKey) = iValidLength Then + RegDeleteKey hDefKey,sKey & "\" & SubKey & "\" + End If + Next 'SubKey +End If + +End Sub 'EnsureValidWIMetadata +'======================================================================================================= + +'------------------------------------------------------------------------------- +' CleanOSPP +' +' Clean out licenses from the Office Software Protection Platform +'------------------------------------------------------------------------------- +Sub CleanOSPP + Dim oProductInstances, pi + Dim sCleanOSPP, sCmd, sRetVal + + CONST OfficeAppId = "0ff1ce15-a989-479d-af46-f275c6370663" 'Office 2013 + + sCleanOSPP = "x64\CleanOSPP.exe" + If Not f64 Then sCleanOSPP = "x86\CleanOSPP.exe" + If oFso.FileExists(sScriptDir & sCleanOSPP) Then + sCmd = sScriptDir & sCleanOSPP + Log " Running: " & sCmd + On Error Resume Next + sRetVal = oWShell.Run(sCmd, 0, True) + Log " Return value: " & sRetVal + On Error Goto 0 + Exit Sub + End If + + On Error Resume Next + ' Initialize the software protection platform object with a filter on Office 2013 products + If iVersionNT > 601 Then + Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM SoftwareLicensingProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") + Else + Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM OfficeSoftwareProtectionProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") + End If + + ' Remove all licenses + For Each pi in oProductInstances + If NOT IsNull(pi) Then + pi.UninstallProductKey( pi.ProductKeyID) + End If + Next 'pi + +End Sub 'CleanOSPP +'======================================================================================================= + + +'Create a backup copy of the file in the ScrubDir then delete the file +Sub CopyAndDeleteFile(sFile) + Dim File + + 'Error handling inlined + On Error Resume Next + If oFso.FileExists(sFile) Then + Set File = oFso.GetFile(sFile) + If Not oFso.FolderExists(sScrubDir & "\" & File.ParentFolder.Name) Then oFso.CreateFolder sScrubDir & "\" & File.ParentFolder.Name + If Not fDetectOnly Then + LogOnly " - Backing up file: " & sFile + oFso.CopyFile sFile,sScrubDir & "\" & File.ParentFolder.Name & "\" & File.Name,True : CheckError "CopyAndDeleteFile" + Set File = Nothing + DeleteFile(sFile) + Else + LogOnly " - Simulate CopyAndDelete file: " & sFile + End If + End If 'oFso.FileExists +End Sub 'CopyAndDeleteFile +'======================================================================================================= + +'Wrapper to delete a file +Sub DeleteFile(sFile) + Dim File + Dim sFileName, sNewPath + + On Error Resume Next + + If dictionaryKeepFolder.Exists(LCase(sFile)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFile + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFile + LogOnly " Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFile))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFile + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFile + LogOnly " Remaining applications will need a repair!" + End If + End If + End If + + If oFso.FileExists(sFile) Then + LogOnly " - Delete file: " & sFile + If Not fDetectOnly Then oFso.DeleteFile sFile,True + If Err <> 0 Then + CheckError "DeleteFile" + If fForce Then + 'Try to move the file and delete from there + Set File = oFso.GetFile(sFile) + sFileName = File.Name + sNewPath = sScrubDir & "\ScrubTmp" + Set File = Nothing + If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) + 'Move the file + LogOnly " - Move file to: " & sNewPath & "\" & sFileName + oFso.MoveFile sFile,sNewPath & "\" & sFileName + If Err <> 0 Then + CheckError "DeleteFile (move)" + End If 'Err <> 0 + Else + fRebootRequired = True + End If 'fForce + End If 'Err <> 0 + End If 'oFso.FileExists +End Sub 'DeleteFile +'======================================================================================================= + +'64 bit aware wrapper to return the requested folder +Function GetFolderPath(sPath) + GetFolderPath = True + If oFso.FolderExists(sPath) Then Exit Function + If f64 AND oFso.FolderExists(Wow64Folder(sPath)) Then + sPath = Wow64Folder(sPath) + Exit Function + End If + GetFolderPath = False +End Function 'GetFolderPath +'======================================================================================================= + +'Enumerates subfolder names of a folder and returns True if subfolders exist +Function EnumFolderNames (sFolder, arrSubFolders) + Dim Folder, Subfolder + Dim sSubFolders + + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Name & "," + Next 'Subfolder + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Name & "," + Next 'Subfolder + End If + If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) + EnumFolderNames = Len(sSubFolders)>0 +End Function 'EnumFolderNames +'======================================================================================================= + +'Enumerates subfolders of a folder and returns True if subfolders exist +Function EnumFolders (sFolder, arrSubFolders) + Dim Folder, Subfolder + Dim sSubFolders + + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Path & "," + Next 'Subfolder + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Path & "," + Next 'Subfolder + End If + If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) + EnumFolders = Len(sSubFolders)>0 +End Function 'EnumFolders +'======================================================================================================= + +Sub GetMseFolderStructure (Folder) + Dim SubFolder + + For Each SubFolder in Folder.SubFolders + ReDim Preserve arrMseFolders(UBound(arrMseFolders)+1) + arrMseFolders(UBound(arrMseFolders)) = SubFolder.Path + GetMseFolderStructure SubFolder + Next 'SubFolder +End Sub 'GetMseFolderStructure +'======================================================================================================= + +'Wrapper to delete a folder +Sub DeleteFolder(sFolder) + Dim Folder + Dim sDelFolder, sFolderName, sNewPath + + 'Ensure trailing "\" + sFolder = sFolder & "\" + While InStr(sFolder,"\\")>0 + sFolder = Replace(sFolder,"\\","\") + Wend + + If dictionaryKeepFolder.Exists(LCase(sFolder)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFolder + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFolder + LogOnly " Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFolder))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFolder + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFolder + LogOnly " Remaining applications will need a repair!" + End If + End If + End If + + 'Strip trailing "\" + If Len(sFolder) > 1 Then + sFolder = Left(sFolder,Len(sFolder)-1) + End If + + On Error Resume Next + If oFso.FolderExists(sFolder) Then + sDelFolder = sFolder + ElseIf f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + sDelFolder = Wow64Folder(sFolder) + Else + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete folder: " & sDelFolder + oFso.DeleteFolder sDelFolder,True + Else + LogOnly " - Simulate delete folder: " & sDelFolder + End If + If Err <> 0 Then + CheckError "DeleteFolder" + 'Try to move the folder and delete from there + Set Folder = oFso.GetFolder(sDelFolder) + sFolderName = Folder.Name + sNewPath = sScrubDir & "\ScrubTmp" + Set Folder = Nothing + 'Ensure we stay within the same drive + If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) + 'Move the folder + LogOnly " - Moving folder to: " & sNewPath & "\" & sFolderName + oFso.MoveFolder sFolder,sNewPath & "\" & sFolderName + If Err <> 0 Then + CheckError "DeleteFolder (move)" + End If 'Err <> 0 + End If 'Err <> 0 +End Sub 'DeleteFolder +'======================================================================================================= + +'Delete empty folder structures +Sub DeleteEmptyFolders + Dim Folder + Dim sFolder + + ' cosmetic' task don't fail on error + On Error Resume Next + If Not IsArray(arrDeleteFolders) Then Exit Sub + Log vbCrLf & "Empty Folder Cleanup" + For Each sFolder in arrDeleteFolders + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + If CBool(Folder.Attributes AND 1024) Then + 'exclude protected folder + Else + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If + End If + Next 'sFolder + CheckError "DeleteEmptyFolders" + On Error Goto 0 +End Sub 'DeleteEmptyFolders +'======================================================================================================= + +'Delete indivdual empty folder structures +Sub DeleteEmptyFolder (sFolder) + Dim Folder + + ' cosmetic' task don't fail on error + On Error Resume Next + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + If CBool(Folder.Attributes AND 1024) Then + 'exclude protected folder + Else + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If + End If + + CheckError "DeleteEmptyFolder" + On Error Goto 0 +End Sub 'DeleteEmptyFolder +'======================================================================================================= + +'Wrapper to delete a folder and remove the empty parent folder structure +Sub SmartDeleteFolder(sFolder) + If oFso.FolderExists(sFolder) Then + If Not fDetectOnly Then + LogOnly " Request SmartDelete for folder: " & sFolder + SmartDeleteFolderEx sFolder + Else + LogOnly " Simulate request SmartDelete for folder: " & sFolder + End If + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + If Not fDetectOnly Then + LogOnly "Request SmartDelete for folder: " & Wow64Folder(sFolder) + SmartDeleteFolderEx Wow64Folder(sFolder) + Else + LogOnly "Simulate request SmartDelete for folder: " & Wow64Folder(sFolder) + End If + End If +End Sub 'SmartDeleteFolder +'======================================================================================================= + +'Executes the folder delete operation +Sub SmartDeleteFolderEx(sFolder) + Dim Folder + + On Error Resume Next + DeleteFolder sFolder : CheckError "SmartDeleteFolderEx" + On Error Goto 0 + Set Folder = oFso.GetFolder(oFso.GetParentFolderName(sFolder)) + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then SmartDeleteFolderEx(Folder.Path) +End Sub 'SmartDeleteFolderEx +'======================================================================================================= + +'Adds the folder structure to the 'KeepFolder' dictionary +Sub AddKeepFolder(sPath) + + Dim Folder + + 'Ensure trailing "\" + sPath = LCase(sPath) & "\" + While InStr(sPath,"\\")>0 + sPath = Replace(sPath,"\\","\") + Wend + + If NOT dictionaryKeepFolder.Exists (sPath) Then + dictionaryKeepFolder.Add sPath,sPath + Else + Exit Sub + End If + sPath = LCase(oFso.GetParentFolderName(sPath)) & "\" + If oFso.FolderExists(sPath) Then AddKeepFolder(sPath) +End Sub +'======================================================================================================= + +'Handles additional folder-path operations on 64 bit environments +Function Wow64Folder(sFolder) + If LCase(Left(sFolder,Len(sWinDir & "\System32"))) = LCase(sWinDir & "\System32") Then + Wow64Folder = sWinDir & "\syswow64" & Right(sFolder,Len(sFolder)-Len(sSys32Dir)) + ElseIf LCase(Left(sFolder,Len(sProgramFiles))) = LCase(sProgramFiles) Then + Wow64Folder = sProgramFilesX86 & Right(sFolder,Len(sFolder)-Len(sProgramFiles)) + Else + Wow64Folder = "?" 'Return invalid string to ensure the folder cannot exist + End If +End Function 'Wow64Folder +'======================================================================================================= + +Function HiveString(hDefKey) + On Error Resume Next + Select Case hDefKey + Case HKCR : HiveString = "HKEY_CLASSES_ROOT" + Case HKCU : HiveString = "HKEY_CURRENT_USER" + Case HKLM : HiveString = "HKEY_LOCAL_MACHINE" + Case HKU : HiveString = "HKEY_USERS" + Case Else : HiveString = hDefKey + End Select +End Function +'======================================================================================================= + +Function RegKeyExists(hDefKey,sSubKeyName) + Dim arrKeys + RegKeyExists = False + If oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) = 0 Then RegKeyExists = True +End Function +'======================================================================================================= + +Function RegValExists(hDefKey,sSubKeyName,sName) + Dim arrValueTypes, arrValueNames + Dim i + + RegValExists = False + If Not RegKeyExists(hDefKey,sSubKeyName) Then Exit Function + If sName = "" Then + RegValExists = True + Exit Function + End If + If oReg.EnumValues(hDefKey,sSubKeyName,arrValueNames,arrValueTypes) = 0 AND IsArray(arrValueNames) Then + For i = 0 To UBound(arrValueNames) + If LCase(arrValueNames(i)) = Trim(LCase(sName)) Then RegValExists = True + Next + End If 'oReg.EnumValues +End Function +'======================================================================================================= + +'Read the value of a given registry entry +Function RegReadValue(hDefKey, sSubKeyName, sName, sValue, sType) + Dim RetVal + Dim Item + Dim arrValues + + Select Case UCase(sType) + Case "1","REG_SZ" + RetVal = oReg.GetStringValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "2","REG_EXPAND_SZ" + RetVal = oReg.GetExpandedStringValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetExpandedStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "7","REG_MULTI_SZ" + RetVal = oReg.GetMultiStringValue(hDefKey,sSubKeyName,sName,arrValues) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetMultiStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,arrValues) + If RetVal = 0 Then sValue = Join(arrValues,chr(34)) + + Case "4","REG_DWORD" + RetVal = oReg.GetDWORDValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then + RetVal = oReg.GetDWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + End If + + Case "3","REG_BINARY" + RetVal = oReg.GetBinaryValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetBinaryValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "11","REG_QWORD" + RetVal = oReg.GetQWORDValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetQWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case Else + RetVal = -1 + End Select 'sValue + + RegReadValue = (RetVal = 0) +End Function 'RegReadValue +'======================================================================================================= + +'Enumerate a registry key to return all values +Function RegEnumValues(hDefKey,sSubKeyName,arrNames, arrTypes) + Dim RetVal, RetVal64 + Dim arrNames32, arrNames64, arrTypes32, arrTypes64 + + If f64 Then + RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames32,arrTypes32) + RetVal64 = oReg.EnumValues(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrNames64,arrTypes64) + If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrTypes32) Then + arrNames = arrNames32 + arrTypes = arrTypes32 + End If + If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames64) AND IsArray(arrTypes64) Then + arrNames = arrNames64 + arrTypes = arrTypes64 + End If + If (RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrNames64) AND IsArray(arrTypes32) AND IsArray(arrTypes64) Then + arrNames = RemoveDuplicates(Split((Join(arrNames32,"\") & "\" & Join(arrNames64,"\")),"\")) + arrTypes = RemoveDuplicates(Split((Join(arrTypes32,"\") & "\" & Join(arrTypes64,"\")),"\")) + End If + Else + RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) + End If 'f64 + RegEnumValues = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrNames) AND IsArray(arrTypes) +End Function 'RegEnumValues +'======================================================================================================= + +'Enumerate a registry key to return all subkeys +Function RegEnumKey(hDefKey,sSubKeyName,arrKeys) + Dim RetVal, RetVal64 + Dim arrKeys32, arrKeys64 + + If f64 Then + RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys32) + RetVal64 = oReg.EnumKey(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrKeys64) + If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrKeys32) Then arrKeys = arrKeys32 + If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrKeys64) Then arrKeys = arrKeys64 + If (RetVal = 0) AND (RetVal64 = 0) Then + If IsArray(arrKeys32) AND IsArray (arrKeys64) Then + arrKeys = RemoveDuplicates(Split((Join(arrKeys32,"\") & "\" & Join(arrKeys64,"\")),"\")) + ElseIf IsArray(arrKeys64) Then + arrKeys = arrKeys64 + Else + arrKeys = arrKeys32 + End If + End If + Else + RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) + End If 'f64 + RegEnumKey = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrKeys) +End Function 'RegEnumKey +'======================================================================================================= + +'Wrapper around oReg.DeleteValue to handle 64 bit +Sub RegDeleteValue(hDefKey, sSubKeyName, sName, fRegMultiSZ) + Dim sWow64Key,sRealName + Dim iRetVal + + sRealName = sName + If UCase(sName) = "(DEFAULT)" Then sRealName = "" + + If dictionaryKeepReg.Exists(LCase(sSubKeyName & sName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName) & sName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + End If + + If RegValExists(hDefKey,sSubKeyName,sRealName) Then + On Error Resume Next + If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then + LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName + iRetVal = 0 + iRetVal = oReg.DeleteValue(hDefKey, sSubKeyName, sRealName) + CheckError "RegDeleteValue" + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + Else + LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName + End If + On Error Goto 0 + End If 'RegValExists + If f64 Then + sWow64Key = Wow64Key(hDefKey, sSubKeyName) + If RegValExists(hDefKey,sWow64Key,sRealName) Then + On Error Resume Next + If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then + LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName + iRetVal = 0 + iRetVal = oReg.DeleteValue(hDefKey, sWow64Key, sRealName) + CheckError "RegDeleteValue" + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + Else + LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName + End If + On Error Goto 0 + End If 'RegKeyExists + End If +End Sub 'RegDeleteValue +'======================================================================================================= + +'Wrappper around RegDeleteKeyEx to handle 64bit scenrios +Sub RegDeleteKey(hDefKey, sSubKeyName) + Dim sWow64Key + + 'Ensure trailing "\" + sSubKeyName = sSubKeyName & "\" + While InStr(sSubKeyName,"\\")>0 + sSubKeyName = Replace(sSubKeyName,"\\","\") + Wend + + If dictionaryKeepReg.Exists(LCase(sSubKeyName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + End If + + If Len(sSubKeyName) > 1 Then + 'Strip of trailing "\" + sSubKeyName = Left(sSubKeyName,Len(sSubKeyName)-1) + End If + + If RegKeyExists(hDefKey, sSubKeyName) Then + If Not fDetectOnly Then + LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName + On Error Resume Next + RegDeleteKeyEx hDefKey, sSubKeyName + On Error Goto 0 + Else + LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName + End If + End If 'RegKeyExists + If f64 Then + sWow64Key = Wow64Key(hDefKey, sSubKeyName) + If RegKeyExists(hDefKey,sWow64Key) Then + If Not fDetectOnly Then + LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key + On Error Resume Next + RegDeleteKeyEx hDefKey, sWow64Key + On Error Goto 0 + Else + LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key + End If + End If 'RegKeyExists + End If +End Sub 'RegDeleteKey +'======================================================================================================= + +'Recursively delete a registry structure +Sub RegDeleteKeyEx(hDefKey, sSubKeyName) + Dim arrSubkeys + Dim sSubkey + Dim iRetVal + + On Error Resume Next + oReg.EnumKey hDefKey, sSubKeyName, arrSubkeys + If IsArray(arrSubkeys) Then + For Each sSubkey In arrSubkeys + RegDeleteKeyEx hDefKey, sSubKeyName & "\" & sSubkey + Next + End If + If Not fDetectOnly Then + iRetVal = 0 + iRetVal = oReg.DeleteKey(hDefKey,sSubKeyName) + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + End If +End Sub 'RegDeleteKeyEx +'======================================================================================================= + +'Return the alternate regkey location on 64bit environment +Function Wow64Key(hDefKey, sSubKeyName) + Dim iPos + + Select Case hDefKey + Case HKCU + If Left(sSubKeyName,17) = "Software\Classes\" Then + Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) + Else + iPos = InStr(sSubKeyName,"\") + Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) + End If + + Case HKLM + If Left(sSubKeyName,17) = "Software\Classes\" Then + Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) + Else + iPos = InStr(sSubKeyName,"\") + Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) + End If + + Case Else + Wow64Key = "Wow6432Node\" & sSubKeyName + + End Select 'hDefKey +End Function 'Wow64Key +'======================================================================================================= + +'Remove duplicate entries from a one dimensional array +Function RemoveDuplicates(Array) + Dim Item + Dim oDic + + Set oDic = CreateObject("Scripting.Dictionary") + For Each Item in Array + If Not oDic.Exists(Item) Then oDic.Add Item,Item + Next 'Item + RemoveDuplicates = oDic.Keys +End Function 'RemoveDuplicates +'======================================================================================================= + +'End running instances of setup +Sub EndCurrentInstalls () + Dim Processes, Process + Dim iRet + + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like '%setup%' OR Name like '%install%'") + For Each Process in Processes + Log " - End process " & Process.Name + iRet = Process.Terminate() + CheckError "EndCurrentInstalls: " & "Process.Name" + Next 'Process + StopService "msiserver" +End Sub 'EndCurrentInstalls +'======================================================================================================= + +'Uses WMI to stop a service +Function StopService(sService) + Dim Services, Service + Dim sQuery + Dim iRet + + On Error Resume Next + + iRet = 0 + sQuery = "Select * From Win32_Service Where Name='" & sService & "'" + Set Services = oWmiLocal.Execquery(sQuery) + 'Stop the service + For Each Service in Services + If UCase(Service.State) = "STARTED" Then iRet = Service.StopService + If UCase(Service.State) = "RUNNING" Then iRet = Service.StopService + + Next 'Service + StopService = (iRet = 0) +End Function 'StopService +'======================================================================================================= + +'Delete a service +Sub DeleteService(sService) + Dim Services, Service, Processes, Process + Dim sQuery, sStates + Dim iRet + + On Error Resume Next + + sStates = "STARTED;RUNNING" + sQuery = "Select * From Win32_Service Where Name='" & sService & "'" + Set Services = oWmiLocal.Execquery(sQuery) + + 'Stop and delete the service + For Each Service in Services + Log " Found service " & sService & " in state " & Service.State + If InStr(sStates,UCase(Service.State))>0 Then iRet = Service.StopService() + 'Ensure no more instances of the service are running + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='" & sService & ".exe'") + For Each Process in Processes + iRet = Process.Terminate() + Next 'Process + If Not fDetectOnly Then + Log " - Deleting Service -> " & sService + iRet = Service.Delete() + Else + Log " - Simulate deleting Service -> " & sService + End If + Next 'Service + Set Services = Nothing + Err.Clear + +End Sub 'DeleteService +'======================================================================================================= + +'Translation for setup.exe error codes +Function SetupRetVal(RetVal) + Select Case RetVal + Case 0 : SetupRetVal = "Success" + Case 30001,1 : SetupRetVal = "AbstractMethod" + Case 30002,2 : SetupRetVal = "ApiProhibited" + Case 30003,3 : SetupRetVal = "AlreadyImpersonatingAUser" + Case 30004,4 : SetupRetVal = "AlreadyInitialized" + Case 30005,5 : SetupRetVal = "ArgumentNullException" + Case 30006,6 : SetupRetVal = "AssertionFailed" + Case 30007,7 : SetupRetVal = "CABFileAddFailed" + Case 30008,8 : SetupRetVal = "CommandFailed" + Case 30009,9 : SetupRetVal = "ConcatenationFailed" + Case 30010,10 : SetupRetVal = "CopyFailed" + Case 30011,11 : SetupRetVal = "CreateEventFailed" + Case 30012,12 : SetupRetVal = "CustomizationPatchNotFound" + Case 30013,13 : SetupRetVal = "CustomizationPatchNotApplicable" + Case 30014,14 : SetupRetVal = "DuplicateDefinition" + Case 30015,15 : SetupRetVal = "ErrorCodeOnly - Passthrough for Win32 error" + Case 30016,16 : SetupRetVal = "ExceptionNotThrown" + Case 30017,17 : SetupRetVal = "FailedToImpersonateUser" + Case 30018,18 : SetupRetVal = "FailedToInitializeFlexDataSource" + Case 30019,19 : SetupRetVal = "FailedToStartClassFactories" + Case 30020,20 : SetupRetVal = "FileNotFound" + Case 30021,21 : SetupRetVal = "FileNotOpen" + Case 30022,22 : SetupRetVal = "FlexDialogAlreadyInitialized" + Case 30023,23 : SetupRetVal = "HResultOnly - Passthrough for HRESULT errors" + Case 30024,24 : SetupRetVal = "HWNDNotFound" + Case 30025,25 : SetupRetVal = "IncompatibleCacheAction" + Case 30026,26 : SetupRetVal = "IncompleteProductAddOns" + Case 30027,27 : SetupRetVal = "InstalledProductStateCorrupt" + Case 30028,28 : SetupRetVal = "InsufficientBuffer" + Case 30029,29 : SetupRetVal = "InvalidArgument" + Case 30030,30 : SetupRetVal = "InvalidCDKey" + Case 30031,31 : SetupRetVal = "InvalidColumnType" + Case 30032,31 : SetupRetVal = "InvalidConfigAddLanguage" + Case 30033,33 : SetupRetVal = "InvalidData" + Case 30034,34 : SetupRetVal = "InvalidDirectory" + Case 30035,35 : SetupRetVal = "InvalidFormat" + Case 30036,36 : SetupRetVal = "InvalidInitialization" + Case 30037,37 : SetupRetVal = "InvalidMethod" + Case 30038,38 : SetupRetVal = "InvalidOperation" + Case 30039,39 : SetupRetVal = "InvalidParameter" + Case 30040,40 : SetupRetVal = "InvalidProductFromARP" + Case 30041,41 : SetupRetVal = "InvalidProductInConfigXml" + Case 30042,42 : SetupRetVal = "InvalidReference" + Case 30043,43 : SetupRetVal = "InvalidRegistryValueType" + Case 30044,44 : SetupRetVal = "InvalidXMLProperty" + Case 30045,45 : SetupRetVal = "InvalidMetadataFile" + Case 30046,46 : SetupRetVal = "LogNotInitialized" + Case 30047,47 : SetupRetVal = "LogAlreadyInitialized" + Case 30048,48 : SetupRetVal = "MissingXMLNode" + Case 30049,49 : SetupRetVal = "MsiTableNotFound" + Case 30050,50 : SetupRetVal = "MsiAPICallFailure" + Case 30051,51 : SetupRetVal = "NodeNotOfTypeElement" + Case 30052,52 : SetupRetVal = "NoMoreGraceBoots" + Case 30053,53 : SetupRetVal = "NoProductsFound" + Case 30054,54 : SetupRetVal = "NoSupportedCulture" + Case 30055,55 : SetupRetVal = "NotYetImplemented" + Case 30056,56 : SetupRetVal = "NotAvailableCulture" + Case 30057,57 : SetupRetVal = "NotCustomizationPatch" + Case 30058,58 : SetupRetVal = "NullReference" + Case 30059,59 : SetupRetVal = "OCTPatchForbidden" + Case 30060,60 : SetupRetVal = "OCTWrongMSIDll" + Case 30061,61 : SetupRetVal = "OutOfBoundsIndex" + Case 30062,62 : SetupRetVal = "OutOfDiskSpace" + Case 30063,63 : SetupRetVal = "OutOfMemory" + Case 30064,64 : SetupRetVal = "OutOfRange" + Case 30065,65 : SetupRetVal = "PatchApplicationFailure" + Case 30066,66 : SetupRetVal = "PreReqCheckFailure" + Case 30067,67 : SetupRetVal = "ProcessAlreadyStarted" + Case 30068,68 : SetupRetVal = "ProcessNotStarted" + Case 30069,69 : SetupRetVal = "ProcessNotFinished" + Case 30070,70 : SetupRetVal = "ProductAlreadyDefined" + Case 30071,71 : SetupRetVal = "ResourceAlreadyTracked" + Case 30072,72 : SetupRetVal = "ResourceNotFound" + Case 30073,73 : SetupRetVal = "ResourceNotTracked" + Case 30074,74 : SetupRetVal = "SQLAlreadyConnected" + Case 30075,75 : SetupRetVal = "SQLFailedToAllocateHandle" + Case 30076,76 : SetupRetVal = "SQLFailedToConnect" + Case 30077,77 : SetupRetVal = "SQLFailedToExecuteStatement" + Case 30078,78 : SetupRetVal = "SQLFailedToRetrieveData" + Case 30079,79 : SetupRetVal = "SQLFailedToSetAttribute" + Case 30080,80 : SetupRetVal = "StorageNotCreated" + Case 30081,81 : SetupRetVal = "StreamNameTooLong" + Case 30082,82 : SetupRetVal = "SystemError" + Case 30083,83 : SetupRetVal = "ThreadAlreadyStarted" + Case 30084,84 : SetupRetVal = "ThreadNotStarted" + Case 30085,85 : SetupRetVal = "ThreadNotFinished" + Case 30086,86 : SetupRetVal = "TooManyProducts" + Case 30087,87 : SetupRetVal = "UnexpectedXMLNodeType" + Case 30088,88 : SetupRetVal = "UnexpectedError" + Case 30089,89 : SetupRetVal = "Unitialized" + Case 30090,90 : SetupRetVal = "UserCancel" + Case 30091,91 : SetupRetVal = "ExternalCommandFailed" + Case 30092,92 : SetupRetVal = "SPDatabaseOverSize" + Case 30093,93 : SetupRetVal = "IntegerTruncation" + 'msiexec return values + Case 1259 : SetupRetVal = "APPHELP_BLOCK" + Case 1601 : SetupRetVal = "INSTALL_SERVICE_FAILURE" + Case 1602 : SetupRetVal = "INSTALL_USEREXIT" + Case 1603 : SetupRetVal = "INSTALL_FAILURE" + Case 1604 : SetupRetVal = "INSTALL_SUSPEND" + Case 1605 : SetupRetVal = "UNKNOWN_PRODUCT" + Case 1606 : SetupRetVal = "UNKNOWN_FEATURE" + Case 1607 : SetupRetVal = "UNKNOWN_COMPONENT" + Case 1608 : SetupRetVal = "UNKNOWN_PROPERTY" + Case 1609 : SetupRetVal = "INVALID_HANDLE_STATE" + Case 1610 : SetupRetVal = "BAD_CONFIGURATION" + Case 1611 : SetupRetVal = "INDEX_ABSENT" + Case 1612 : SetupRetVal = "INSTALL_SOURCE_ABSENT" + Case 1613 : SetupRetVal = "INSTALL_PACKAGE_VERSION" + Case 1614 : SetupRetVal = "PRODUCT_UNINSTALLED" + Case 1615 : SetupRetVal = "BAD_QUERY_SYNTAX" + Case 1616 : SetupRetVal = "INVALID_FIELD" + Case 1618 : SetupRetVal = "INSTALL_ALREADY_RUNNING" + Case 1619 : SetupRetVal = "INSTALL_PACKAGE_OPEN_FAILED" + Case 1620 : SetupRetVal = "INSTALL_PACKAGE_INVALID" + Case 1621 : SetupRetVal = "INSTALL_UI_FAILURE" + Case 1622 : SetupRetVal = "INSTALL_LOG_FAILURE" + Case 1623 : SetupRetVal = "INSTALL_LANGUAGE_UNSUPPORTED" + Case 1624 : SetupRetVal = "INSTALL_TRANSFORM_FAILURE" + Case 1625 : SetupRetVal = "INSTALL_PACKAGE_REJECTED" + Case 1626 : SetupRetVal = "FUNCTION_NOT_CALLED" + Case 1627 : SetupRetVal = "FUNCTION_FAILED" + Case 1628 : SetupRetVal = "INVALID_TABLE" + Case 1629 : SetupRetVal = "DATATYPE_MISMATCH" + Case 1630 : SetupRetVal = "UNSUPPORTED_TYPE" + Case 1631 : SetupRetVal = "CREATE_FAILED" + Case 1632 : SetupRetVal = "INSTALL_TEMP_UNWRITABLE" + Case 1633 : SetupRetVal = "INSTALL_PLATFORM_UNSUPPORTED" + Case 1634 : SetupRetVal = "INSTALL_NOTUSED" + Case 1635 : SetupRetVal = "PATCH_PACKAGE_OPEN_FAILED" + Case 1636 : SetupRetVal = "PATCH_PACKAGE_INVALID" + Case 1637 : SetupRetVal = "PATCH_PACKAGE_UNSUPPORTED" + Case 1638 : SetupRetVal = "PRODUCT_VERSION" + Case 1639 : SetupRetVal = "INVALID_COMMAND_LINE" + Case 1640 : SetupRetVal = "INSTALL_REMOTE_DISALLOWED" + Case 1641 : SetupRetVal = "SUCCESS_REBOOT_INITIATED" + Case 1642 : SetupRetVal = "PATCH_TARGET_NOT_FOUND" + Case 1643 : SetupRetVal = "PATCH_PACKAGE_REJECTED" + Case 1644 : SetupRetVal = "INSTALL_TRANSFORM_REJECTED" + Case 1645 : SetupRetVal = "INSTALL_REMOTE_PROHIBITED" + Case 1646 : SetupRetVal = "PATCH_REMOVAL_UNSUPPORTED" + Case 1647 : SetupRetVal = "UNKNOWN_PATCH" + Case 1648 : SetupRetVal = "PATCH_NO_SEQUENCE" + Case 1649 : SetupRetVal = "PATCH_REMOVAL_DISALLOWED" + Case 1650 : SetupRetVal = "INVALID_PATCH_XML" + Case 3010 : SetupRetVal = "SUCCESS_REBOOT_REQUIRED" + Case Else : SetupRetVal = "Unknown Return Value" + End Select +End Function 'SetupRetVal +'======================================================================================================= + +Function GetProductID(sProdID) + Dim sReturn + + Select Case sProdId + + Case "000F" : sReturn = "MONDO" + Case "0010" : sReturn = "WEBFLDRS" + Case "0011" : sReturn = "PROPLUS" + Case "0012" : sReturn = "STANDARD" + Case "0013" : sReturn = "BASIC" + Case "0014" : sReturn = "PRO" + Case "0015" : sReturn = "ACCESS" + Case "0016" : sReturn = "EXCEL" + Case "0017" : sReturn = "SharePointDesigner" + Case "0018" : sReturn = "PowerPoint" + Case "0019" : sReturn = "Publisher" + Case "001A" : sReturn = "Outlook" + Case "001B" : sReturn = "Word" + Case "001C" : sReturn = "AccessRuntime" + Case "001F" : sReturn = "Proof" + Case "0020" : sReturn = "O2007CNV" + Case "0021" : sReturn = "VisualWebDeveloper" + Case "0026" : sReturn = "ExpressionWeb" + Case "0029" : sReturn = "Excel" + Case "002A" : sReturn = "Office64" + Case "002B" : sReturn = "Word" + Case "002C" : sReturn = "Proofing" + Case "002E" : sReturn = "Ultimate" + Case "002F" : sReturn = "HomeAndStudent" + Case "0028" : sReturn = "IME" + Case "0030" : sReturn = "Enterprise" + Case "0031" : sReturn = "ProfessionalHybrid" + Case "0033" : sReturn = "Personal" + Case "0035" : sReturn = "ProfessionalHybrid" + Case "0037" : sReturn = "PowerPoint" + Case "0038" : sReturn = "OlTimeZoneTool" + Case "003A" : sReturn = "PrjStd" + Case "003B" : sReturn = "PrjPro" + Case "003D" : sReturn = "SINGLEIMAGE" + Case "0043" : sReturn = "OFFICE32" + Case "0044" : sReturn = "InfoPath" + Case "0045" : sReturn = "XWEB" + Case "0048" : sReturn = "OLC" + Case "0049" : sReturn = "ACADEMIC" + Case "004A" : sReturn = "OWC11" + Case "0051" : sReturn = "VISPRO" + Case "0052" : sReturn = "VisView" + Case "0053" : sReturn = "VisStd" + Case "0054" : sReturn = "VisMUI" + Case "0055" : sReturn = "VisMUI" + Case "0057" : sReturn = "VISIO" + Case "0061" : sReturn = "CLICK2RUN" + Case "0062" : sReturn = "CLICK2RUN" + Case "0066" : sReturn = "CLICK2RUN" + Case "006C" : sReturn = "CLICK2RUN" + Case "006D" : sReturn = "CLICK2RUN" + Case "006E" : sReturn = "Shared" + Case "006F" : sReturn = "OFFICE" + Case "0070" : sReturn = "OOBE" + Case "0074" : sReturn = "STARTER" + Case "007A" : sReturn = "OLC" 'Outlook Connector + Case "007C" : sReturn = "OSCFB" 'Outlook Social Connector for FaceBook + Case "007D" : sReturn = "OSCWL" 'Outlook Social Connector for Windows Live Messenger + Case "007F" : sReturn = "OLC" 'Outlook Social Connector + Case "008A" : sReturn = "RecentDocs" + Case "008B" : sReturn = "SmallBusinessBasics" + Case "00A1" : sReturn = "ONENOTE" + Case "00A3" : sReturn = "OneNoteHomeStudent" + Case "00A4" : sReturn = "OWC11" + Case "00A7" : sReturn = "CPAO" + Case "00A9" : sReturn = "InterConnect" + Case "00AF" : sReturn = "PPtView" + Case "00B0" : sReturn = "ExPdf" + Case "00B1" : sReturn = "ExXps" + Case "00B2" : sReturn = "ExPdfXps" + Case "00B4" : sReturn = "PrjMUI" + Case "00B5" : sReturn = "PrjtMUI" + Case "00B9" : sReturn = "AER" + Case "00BA" : sReturn = "Groove" + Case "00CA" : sReturn = "SmallBusiness" + Case "00E0" : sReturn = "Outlook" + Case "00D1" : sReturn = "ACE" + Case "0100" : sReturn = "OfficeMUI" + Case "0101" : sReturn = "OfficeXMUI" + Case "0103" : sReturn = "PTK" + Case "0114" : sReturn = "GrooveSetupMetadata" + Case "0115" : sReturn = "SharedSetupMetadata" + Case "0116" : sReturn = "SharedSetupMetadata" + Case "0117" : sReturn = "AccessSetupMetadata" + Case "011A" : sReturn = "SendASmile" + Case "011D" : sReturn = "ProPlusSubscription" + Case "011F" : sReturn = "OLConnect" + Case "0126" : sReturn = "WWLIBCXM" + + Case "1014" : sReturn = "STS" + Case "1015" : sReturn = "WSSMUI" + Case "1032" : sReturn = "PJSVRAPP" + Case "104B" : sReturn = "SPS" + Case "104E" : sReturn = "SPSMUI" + Case "107F" : sReturn = "OSrv" + Case "1080" : sReturn = "OSrv" + Case "1088" : sReturn = "lpsrvwfe" + Case "10D7" : sReturn = "IFS" + Case "10D8" : sReturn = "IFSMUI" + Case "10EB" : sReturn = "DLCAPP" + Case "10F5" : sReturn = "XLSRVAPP" + Case "10F6" : sReturn = "XlSrvWFE" + Case "10F7" : sReturn = "DLC" + Case "10F8" : sReturn = "SlSrvMui" + Case "10FB" : sReturn = "OSrchWFE" + Case "10FC" : sReturn = "OSRCHAPP" + Case "10FD" : sReturn = "OSrchMUI" + Case "1103" : sReturn = "DLC" + Case "1104" : sReturn = "LHPSRV" + Case "1105" : sReturn = "PIA" + Case "1106" : sReturn = "GRVMGMTSRV" + Case "1109" : sReturn = "GSERVERRELAY" + Case "110D" : sReturn = "OSERVER" + Case "110F" : sReturn = "PSERVER" + Case "1110" : sReturn = "WSS" + Case "1121" : sReturn = "SPSSDK" + Case "1122" : sReturn = "SPSDev" + Case "1163" : sReturn = "SCC" 'SharePoint Client Components + Case Else : sReturn = sProdID + + End Select 'sProdId + GetProductID = sReturn +End Function 'GetProductID +'======================================================================================================= + +Sub Log (sLog) + If NOT fQuiet AND fCScript Then wscript.echo sLog + LogStream.WriteLine sLog +End Sub 'Log +'======================================================================================================= + +Sub LogOnly (sLog) + LogStream.WriteLine sLog +End Sub 'Log +'======================================================================================================= + +Sub CheckError(sModule) + If Err <> 0 Then + LogOnly " " & Now & " - " & sModule & " - Source: " & Err.Source & "; Err# (Hex): " & Hex( Err ) & _ + "; Err# (Dec): " & Err & "; Description : " & Err.Description + End If 'Err = 0 + Err.Clear +End Sub +'======================================================================================================= + +'Command line parser +Sub ParseCmdLine + + Dim iCnt, iArgCnt + Dim arrArguments + Dim sArg0, sArguments + + iArgCnt = Wscript.Arguments.Count + If iArgCnt > 1 Then + If wscript.Arguments(1) = "UAC" Then + If wscript.arguments.count = 2 Then iArgCnt = 0 + End If + End If + + sArguments = "" + If iArgCnt = 0 Then + If sDefault = "" Then + 'Create the log + CreateLog + Log "No argument specified. Preparing user prompt" & vbCrLf + fPassive = False + FindInstalledOProducts + If dicInstalledSku.Count > 0 Then sDefault = Join(RemoveDuplicates(dicInstalledSku.Items),",") Else sDefault = "CLIENTALL" + sDefault = InputBox("Enter a list of " & ONAME & " products to remove" & vbCrLf & vbCrLf & _ + "Examples:" & vbCrLf & _ + "CLIENTALL" & vbTab & "-> all Client products" & vbCrLf & _ + "SERVER" & vbTab & "-> all Server products" & vbCrLf & _ + "ALL" & vbTab & vbTab & "-> all Server & Client products" & vbCrLf & _ + "ProPlus,PrjPro" & vbTab & "-> ProPlus and Project" & vbCrLf &_ + "?" & vbTab & vbTab & "-> display Help", _ + SCRIPTFILE & " - " & ONAME & " remover", _ + sDefault) + + If IsEmpty(sDefault) Then 'User cancelled + Log "User cancelled. CleanUp & Exit." + 'Undo temporary entries created in ARP + TmpKeyCleanUp + wscript.quit 1602 + End If 'IsEmpty(sDefault) + Log "Answer from prompt: " & sDefault & vbCrLf + End If + sDefault = Trim(UCase(Trim(Replace(sDefault, Chr(34), "")))) + arrArguments = Split(Trim(sDefault), " ") + If UBound(arrArguments) = -1 Then ReDim arrArguments(0) + Else + ReDim arrArguments(iArgCnt-1) + For iCnt = 0 To (iArgCnt-1) + sArguments = sArguments & arrArguments(iCnt) & " " + arrArguments(iCnt) = UCase(Wscript.Arguments(iCnt)) + Next 'iCnt + End If 'iArgCnt = 0 + + 'Handle the SKU list + sArg0 = Replace(arrArguments(0), "/", "") + If Left(sArg0, 1) = "-" Then sArg0 = Mid(sArg0, 2) + + Select Case UCase(sArg0) + + Case "?" + ShowSyntax + + Case "ALL" + fRemoveAll = True + fRemoveOse = False + + Case "CLIENTSUITES" + fRemoveCSuites = True + fRemoveOse = False + + Case "CLIENTSTANDALONE" + fRemoveCSingle = True + fRemoveOse = False + + Case "CLIENTALL" + fRemoveCSuites = True + fRemoveCSingle = True + fRemoveOse = False + + Case "SERVER" + fRemoveSrv = True + fRemoveOse = False + + Case "ALL,OSE" + fRemoveAll = True + fRemoveOse = True + + Case Else + fRemoveAll = False + fRemoveOse = False + sSkuRemoveList = sArg0 + + End Select + + For iCnt = 0 To UBound(arrArguments) + + Select Case arrArguments(iCnt) + + Case "?", "/?", "-?" + ShowSyntax + + Case "/B", "/BYPASS" + If UBound(arrArguments) > iCnt Then + If InStr(arrArguments(iCnt + 1), "1") > 0 Then fBypass_Stage1 = True + If InStr(arrArguments(iCnt + 1), "2") > 0 Then fBypass_Stage2 = True + If InStr(arrArguments(iCnt + 1), "3") > 0 Then fBypass_Stage3 = True + If InStr(arrArguments(iCnt + 1), "4") > 0 Then fBypass_Stage4 = True + End If + + Case "/D", "/DELETEUSERSETTINGS" + fKeepUser = False + + Case "/FR", "/FASTREMOVE" + fBypass_Stage1 = True + fSkipSD = True + + Case "/F", "/FORCE" + fForce = True + + Case "/K", "/KEEPUSERSETTINGS" + fKeepUser = True + + Case "/KEEPSG", "/KEEPSOFTGRID" + fKeepSG = True + + Case "/KEEPLYNC" + fRemoveLync = False + + Case "/REMOVELYNC" + fRemoveLync = True + + Case "/L", "/LOG" + fLogInitialized = False + If UBound(arrArguments) > iCnt Then + If oFso.FolderExists(arrArguments(iCnt + 1)) Then + sLogDir = arrArguments(iCnt + 1) + Else + On Error Resume Next + oFso.CreateFolder(arrArguments(iCnt + 1)) + If Err <> 0 Then sLogDir = sScrubDir Else sLogDir = arrArguments(iCnt + 1) + End If + End If + + Case "/NOCANCEL" + fNoCancel = True + + Case "/NOREBOOT" + fNoReboot = True + + Case "/NE", "/NOELEVATE" + fNoElevate = True + + Case "/O", "/OSE" + fRemoveOse = True + + Case "/P", "/PREVIEW", "/DETECTONLY" + fDetectOnly = True + + Case "/PASSIVE", "/QB-" + fPassive = True + + Case "/Q", "/QUIET" + fQuiet = True + + Case "/QB" + fQuiet = True + fBasic = True + + Case "/QND" + fBypass_Stage1 = True + fBypass_Stage2 = True + fBypass_Stage3 = True + fRemoveOse = True + fRemoveOspp = True + fRemoveAll = True + fSkipSD = True + fForce = True + + Case "/R", "/RECONCILE" + fTryReconcile = True + + Case "/REMOVEOSPP" , "/CLEANOSPP" + fRemoveOspp = True + + Case "/S", "/SKIPSD", "/SKIPSHORTCUTDETECTION" + fSkipSD = True + + Case "/SC", "/SCANCOMPONENTS" + fBypass_Stage1 = False + + Case Else + + End Select + Next 'iCnt + If Not fLogInitialized Then CreateLog + LogOnly "Arguments: " & sArguments & vbCrLf + +End Sub 'ParseCmdLine +'======================================================================================================= + +Sub CreateLog + Dim DateTime + Dim sLogName + + On Error Resume Next + 'Create the log file + Set DateTime = CreateObject("WbemScripting.SWbemDateTime") + DateTime.SetVarDate Now,True + sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") + sLogName = sLogName & "_" & Left(DateTime.Value,14) + sLogName = sLogName & "_ScrubLog.txt" + Err.Clear + Set LogStream = oFso.CreateTextFile(sLogName,True,True) + If Err <> 0 Then + Err.Clear + sLogDir = sScrubDir + sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") + sLogName = sLogName & "_" & Left(DateTime.Value,14) + sLogName = sLogName & "_ScrubLog.txt" + Set LogStream = oFso.CreateTextFile(sLogName,True,True) + End If + + Log "Microsoft Customer Support Services - " & ONAME & " Removal Utility" & vbCrLf & vbCrLf & _ + "OffScrub Version: " & SCRIPTVERSION & vbCrLf & _ + "64 bit OS: " & f64 + LogOnly "OS Details: " & sOSinfo & vbCrLf + Log "Start removal: " & Now & vbCrLf + fLogInitialized = True +End Sub 'CreateLog +'======================================================================================================= +'------------------------------------------------------------------------------- +' RelaunchAs64Host +' +' Relaunch self with 64 bit WScript host +'------------------------------------------------------------------------------- +Sub RelaunchAs64Host + Dim Argument, sCmd + + sCmd = Replace (LCase(wscript.Path), "syswow64", "sysnative") & "\cscript.exe " & Chr(34) & WScript.scriptFullName & Chr(34) + If fQuiet AND NOT fCScript Then sCmd = Replace (sCmd, "\cscript.exe", "\wscript.exe") + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + sCmd = sCmd & " " & chr(34) & Argument & chr(34) + Next 'Argument + Else + If Not sDefault = "" Then sCmd = sCmd & " " & chr(34) & sDefault & chr(34) + End If + sCmd = sCmd & " /ChangedHostBitness" + Wscript.Quit oWShell.Run(sCmd, 1, True) + +End Sub 'RelaunchAs64Host +'======================================================================================================= + +Sub RelaunchAsCScript + Dim Argument + Dim sCmdLine + + sCmdLine = "cmd.exe /c " & WScript.Path & "\cscript.exe //NOLOGO " & Chr(34) & WScript.scriptFullName & Chr(34) + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) + Next 'Argument + End If + Log "Relaunching with CScript as host. Full command: " & sCmdLine + Wscript.Quit oWShell.Run(sCmdLine, 1, True) +End Sub 'RelaunchAsCScript +'======================================================================================================= + +Sub RelaunchElevated + Dim Argument + Dim sCmdLine + Dim oShell + + Set oShell = CreateObject("Shell.Application") + + sCmdLine = Chr(34) & WScript.scriptFullName & Chr(34) + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + Select Case UCase(Argument) + Case "/Q","/QUIET" + 'Don't try to relaunch in quiet mode + Exit Sub + Case "UAC" + 'Already tried elevated relaunch + Exit Sub + Case Else + sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) + End Select + Next 'Argument + Else + If Not sDefault = "" Then sCmdLine = sCmdLine & " " & chr(34) & sDefault & chr(34) + End If + oShell.ShellExecute "cscript.exe", sCmdLine & " /NoElevate UAC", "", "runas", 1 + Wscript.Quit 5 +End Sub 'RelaunchElevated +'======================================================================================================= + +'Show the expected syntax for the script usage +Sub ShowSyntax + TmpKeyCleanUp + Wscript.Echo sErr & vbCrLf & _ + SCRIPTFILE & " V " & SCRIPTVERSION & vbCrLf & _ + "Copyright (c) Microsoft Corporation. All Rights Reserved" & vbCrLf & vbCrLf & _ + SCRIPTFILE & " helps to remove " & ONAME & " Server & Client products" & vbCrLf & _ + "when a regular uninstall is no longer possible" & vbCrLf & vbCrLf & _ + "Usage:" & vbTab & SCRIPTFILE & " [List of config ProductIDs] [Options]" & vbCrLf & vbCrLf & _ + vbTab & "/? ' Displays this help"& vbCrLf &_ + vbTab & "/Log [LogfolderPath] ' Custom folder for log files" & vbCrLf & _ + vbTab & "/SkipSD ' Skips the ShortcutDetection in local profiles" & vbCrLf & _ + vbTab & "/NoCancel ' Setup.exe and Msiexec.exe have no Cancel button" & vbCrLf &_ + vbTab & "/Quiet ' Script, Setup.exe and Msiexec.exe run quiet with no UI" & vbCrLf &_ + vbTab & "/Preview ' Run this script to preview what would get removed"& vbCrLf & vbCrLf & _ + "Examples:"& vbCrLf & _ + vbTab & SCRIPTFILE & " CLIENTSUITES ' Remove all " & ONAME & " Client suites/products" & vbCrLf &_ + vbTab & SCRIPTFILE & " CLIENTALL ' Remove all " & ONAME & " Client products" & vbCrLf &_ + vbTab & SCRIPTFILE & " SERVER ' Remove all " & ONAME & " Server products" & vbCrLf &_ + vbTab & SCRIPTFILE & " ALL ' Remove all " & ONAME & " Server & Client products" & vbCrLf &_ + vbTab & SCRIPTFILE & " ProPlus,PrjPro ' Remove ProPlus and Project" & vbCrLf + Wscript.Quit +End Sub 'ShowSyntax +'======================================================================================================= +_end_ + +move __createfile "OffScrub_O15msi.vbs" + +waithidden cscript "OffScrub_O15msi.vbs"]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - NXLog is installed but not running - Windows (22649).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - NXLog is installed but not running - Windows (22649).bes index a0fdcc737..7f81511c0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - NXLog is installed but not running - Windows (22649).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - NXLog is installed but not running - Windows (22649).bes @@ -1,39 +1,39 @@ - - - - - Warning - NXLog is installed but not running - Windows - This Fixlet identifies and starts a stopped NXLog Client.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists service "nxlog" - state of service "NXLog" != "Running" - NXLog CE - Internal - 2016-11-08 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -waithidden net start nxlog - -
-
+ + + + + Warning - NXLog is installed but not running - Windows + This Fixlet identifies and starts a stopped NXLog Client.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists service "nxlog" + state of service "NXLog" != "Running" + NXLog CE + Internal + 2016-11-08 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +waithidden net start nxlog + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Pagefile has non-default configuration - Windows (20537).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Pagefile has non-default configuration - Windows (20537).bes index 52b1df7f1..11ec01f74 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Pagefile has non-default configuration - Windows (20537).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Pagefile has non-default configuration - Windows (20537).bes @@ -1,27 +1,27 @@ - - - - - Warning - Pagefile has non-default configuration - Windows - The system pagefile has a non-default configuration.

-

This is normally done as a troubleshooting step but is often not undone after troubleshooting.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- (value "PagingFiles" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" of native registry as string) != "?:\pagefile.sys%00%00" - Internal - 2016-04-21 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC -
-
+ + + + + Warning - Pagefile has non-default configuration - Windows + The system pagefile has a non-default configuration.

+

This is normally done as a troubleshooting step but is often not undone after troubleshooting.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ (value "PagingFiles" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" of native registry as string) != "?:\pagefile.sys%00%00" + Internal + 2016-04-21 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Power Policy set to High Performance - Windows (21429).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Power Policy set to High Performance - Windows (21429).bes index bf382184a..16023ef6b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Power Policy set to High Performance - Windows (21429).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Power Policy set to High Performance - Windows (21429).bes @@ -1,27 +1,27 @@ - - - - - Warning - Power Policy set to High Performance - Windows - For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
- "5.1"]]> - (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\Default\PowerSchemes" of native registry as string) = "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC -
-
+ + + + + Warning - Power Policy set to High Performance - Windows + For general information or to report issues with C3 Power Management content please visit GitHub here: https://github.com/strawgate/C3-Power-Management

]]>
+ "5.1"]]> + (value "ActivePowerScheme" of key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\Default\PowerSchemes" of native registry as string) = "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Remote Assistance may not be installed (23559).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Remote Assistance may not be installed (23559).bes index a8397b53b..909908179 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Remote Assistance may not be installed (23559).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Remote Assistance may not be installed (23559).bes @@ -1,39 +1,39 @@ - - - - - Warning - Remote Assistance may not be installed - The Windows Remote Assistance feature is not installed by default on Windows Server Operating Systems.

-

This fixlet uses DISM to enable the Remote Assistance feature.

-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- windows of operating system - name of operating system as string starts with "Win2" - not exists selects "* from Win32_ServerFeature where (Name like 'Remote Assistance')" of wmi - Internal - 2016-04-14 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -wait dism.exe /online /enable-feature /featurename=RemoteAssistance - -
-
+ + + + + Warning - Remote Assistance may not be installed + The Windows Remote Assistance feature is not installed by default on Windows Server Operating Systems.

+

This fixlet uses DISM to enable the Remote Assistance feature.

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + name of operating system as string starts with "Win2" + not exists selects "* from Win32_ServerFeature where (Name like 'Remote Assistance')" of wmi + Internal + 2016-04-14 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +wait dism.exe /online /enable-feature /featurename=RemoteAssistance + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows (21744).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows (21744).bes index aba6f83d3..46ef9c432 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows (21744).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows (21744).bes @@ -1,28 +1,28 @@ - - - - - Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows - This Fixlet is relevant if the Symantec Client has not had a successful client communication in 30 days.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists regapp "smc.exe" - - Internal - 2016-09-27 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC -
-
+ + + + + Warning - Symantec Endpoint Protection has not communicated in 30 Days - Windows + This Fixlet is relevant if the Symantec Client has not had a successful client communication in 30 days.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists regapp "smc.exe" + + Internal + 2016-09-27 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec File System Auto-Protect is Disabled - Windows (21745).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec File System Auto-Protect is Disabled - Windows (21745).bes index e2a0532f0..a3ccd3720 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec File System Auto-Protect is Disabled - Windows (21745).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec File System Auto-Protect is Disabled - Windows (21745).bes @@ -1,28 +1,28 @@ - - - - - Warning - Symantec File System Auto-Protect is Disabled - Windows - This Fixlet is relevant if the Symantec Client has File System Auto-Protect Disabled.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists regapp "smc.exe" - exists values "OnOff" whose (it=0)of key "AV\Storages\InternetMail\RealTimeScan" of keys "HKEY_LOCAL_MACHINE\Software\Symantec\Symantec Endpoint Protection" of (x32 registries; x64 registries) - Internal - 2016-09-27 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC -
-
+ + + + + Warning - Symantec File System Auto-Protect is Disabled - Windows + This Fixlet is relevant if the Symantec Client has File System Auto-Protect Disabled.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists regapp "smc.exe" + exists values "OnOff" whose (it=0)of key "AV\Storages\InternetMail\RealTimeScan" of keys "HKEY_LOCAL_MACHINE\Software\Symantec\Symantec Endpoint Protection" of (x32 registries; x64 registries) + Internal + 2016-09-27 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec has recursive whole drive exceptions defined - Windows (21746).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec has recursive whole drive exceptions defined - Windows (21746).bes index b1b82e71b..a55d6955e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec has recursive whole drive exceptions defined - Windows (21746).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Symantec has recursive whole drive exceptions defined - Windows (21746).bes @@ -1,29 +1,29 @@ - - - - - Warning - Symantec has recursive whole drive exceptions defined - Windows - This Fixlet is relevant if the client has a Real Time Scanning or Heuristic recursive drive exception defined.

-

An example of this would be a C:\* exclusion. This Fixlet only looks at exclusions targeted towards drives that exist on the system.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - exists regapp "smc.exe" - - Internal - 2016-09-27 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC -
-
+ + + + + Warning - Symantec has recursive whole drive exceptions defined - Windows + This Fixlet is relevant if the client has a Real Time Scanning or Heuristic recursive drive exception defined.

+

An example of this would be a C:\* exclusion. This Fixlet only looks at exclusions targeted towards drives that exist on the system.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + exists regapp "smc.exe" + + Internal + 2016-09-27 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - System ignores driver's digital signature state - Windows (20538).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - System ignores driver's digital signature state - Windows (20538).bes index ea22ff40a..0bb486823 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - System ignores driver's digital signature state - Windows (20538).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - System ignores driver's digital signature state - Windows (20538).bes @@ -1,29 +1,29 @@ - - - - - Warning - System ignores driver's digital signature state - Windows - If this fixlet is relevant then the system is configured to ignore (not prompt on installation) when an attempt is made to install a driver that does not have a digital signature.

-

This is a potentially dangerous non-default configuration. 

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- NOT in proxy agent context - = "5.1"]]> - (value "Policy" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Non-Driver Signing" of native registry as string) = "00" - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC -
-
+ + + + + Warning - System ignores driver's digital signature state - Windows + If this fixlet is relevant then the system is configured to ignore (not prompt on installation) when an attempt is made to install a driver that does not have a digital signature.

+

This is a potentially dangerous non-default configuration. 

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ NOT in proxy agent context + = "5.1"]]> + (value "Policy" of key "HKEY_LOCAL_MACHINE\Software\Microsoft\Non-Driver Signing" of native registry as string) = "00" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - System is set to store a large number of cached credentials - Windows (20631).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - System is set to store a large number of cached credentials - Windows (20631).bes index 7b1997261..3d2b33288 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - System is set to store a large number of cached credentials - Windows (20631).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - System is set to store a large number of cached credentials - Windows (20631).bes @@ -1,28 +1,28 @@ - - - - - Warning - System is set to store a large number of cached credentials - Windows - For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- windows of operating system - 3]]> - Credential Caching - Internal - 2016-05-01 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC -
-
+ + + + + Warning - System is set to store a large number of cached credentials - Windows + For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ windows of operating system + 3]]> + Credential Caching + Internal + 2016-05-01 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unsolicited Remote Assistance may not be allowed (23560).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unsolicited Remote Assistance may not be allowed (23560).bes index 867e7f17e..6537225f0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unsolicited Remote Assistance may not be allowed (23560).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unsolicited Remote Assistance may not be allowed (23560).bes @@ -1,39 +1,39 @@ - - - - - Warning - Unsolicited Remote Assistance may not be allowed - Unsolicited Windows Remote Assistance requires setting a Group Policy setting:

-

GP Path: Computer Configuration/Policies/Administrative Templates/System/Remote Assistance

-
-

Setting Name: Configure Remote Assistance
Required State: Enabled
Required Value: Allow Helpers to remotely control this computer

-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- windows of operating system - (value "fAllowUnsolicitedFullControl" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer | 0) = 0 - Internal - 2016-04-14 - Critical - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -
-
+ + + + + Warning - Unsolicited Remote Assistance may not be allowed + Unsolicited Windows Remote Assistance requires setting a Group Policy setting:

+

GP Path: Computer Configuration/Policies/Administrative Templates/System/Remote Assistance

+
+

Setting Name: Configure Remote Assistance
Required State: Enabled
Required Value: Allow Helpers to remotely control this computer

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ windows of operating system + (value "fAllowUnsolicitedFullControl" of key "HKLM\Software\policies\Microsoft\Windows NT\Terminal Services" of registry as integer | 0) = 0 + Internal + 2016-04-14 + Critical + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2003 Components can be removed - Windows (23819).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2003 Components can be removed - Windows (23819).bes index 4acfbc963..f4f1eb683 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2003 Components can be removed - Windows (23819).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2003 Components can be removed - Windows (23819).bes @@ -1,43 +1,43 @@ - - - - - Warning - Unused Microsoft Office 2003 Components can be removed - Windows - This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2003 Installation.

-

This Fixlet will be relevant if none of the standard office apps (Access, Excel, Outlook, Powerpoint, or Word) exist on the system but the Office suite still appears in programs and features.

-

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
- windows of operating system - not exists keys ("Access";"Excel";"Outlook";"PowerPoint";"Word") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0" of (x32 registries;x64 registries) - exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Edition 2003") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) - Internal - 2017-02-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -prefetch o11-remove.diagcab sha1:0AD69E36F707FE4A2BB254F9DCDF7BD6A4EDAB97 size:145218 http://download.microsoft.com/download/F/0/F/F0F9BC5C-45A4-41F4-B9AC-30D678FBC428/MicrosoftEasyFix20054.mini.diagcab sha256:E9BAC8DD32094F77A31DCB94C32950CB209EE4B6BFB8781949B926E420BFA992 - -waithidden expand -i "__Download\O11-Remove.diagcab" -f:OffScrub*.vbs "__Download" - -waithidden cscript "__Download\OffScrub03.vbs" ALL /Quiet - -
-
+ + + + + Warning - Unused Microsoft Office 2003 Components can be removed - Windows + This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2003 Installation.

+

This Fixlet will be relevant if none of the standard office apps (Access, Excel, Outlook, Powerpoint, or Word) exist on the system but the Office suite still appears in programs and features.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + not exists keys ("Access";"Excel";"Outlook";"PowerPoint";"Word") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0" of (x32 registries;x64 registries) + exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Edition 2003") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +prefetch o11-remove.diagcab sha1:0AD69E36F707FE4A2BB254F9DCDF7BD6A4EDAB97 size:145218 http://download.microsoft.com/download/F/0/F/F0F9BC5C-45A4-41F4-B9AC-30D678FBC428/MicrosoftEasyFix20054.mini.diagcab sha256:E9BAC8DD32094F77A31DCB94C32950CB209EE4B6BFB8781949B926E420BFA992 + +waithidden expand -i "__Download\O11-Remove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub03.vbs" ALL /Quiet + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2007 Components can be removed - Windows (23820).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2007 Components can be removed - Windows (23820).bes index 2a5cbafc4..1c256491a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2007 Components can be removed - Windows (23820).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2007 Components can be removed - Windows (23820).bes @@ -1,41 +1,41 @@ - - - - - Warning - Unused Microsoft Office 2007 Components can be removed - Windows - This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2007 Installation.

-

This Fixlet will be relevant if none of the standard office apps (Access, Excel, OneNote, Outlook, Powerpoint, Publisher, or Word) exist on the system but the Office suite still appears in programs and features.

-

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
- windows of operating system - not exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "12.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) - exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Plus 2007") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) - Internal - 2017-02-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - prefetch o12-remove.diagcab sha1:985027E630CBBC9497F3F257A3E62B8956926DEF size:388756 http://download.microsoft.com/download/4/7/A/47A0D191-D6F9-4C95-92E6-28D1DFF80F64/MicrosoftFixit20052.mini.diagcab sha256:5168D686CDC5A51F27CB96CA97B51DCC65931F504C63D2672DAF9A1F83F33669 - -waithidden expand -i "__Download\O12-Remove.diagcab" -f:OffScrub*.vbs "__Download" - -waithidden cscript "__Download\OffScrub07.vbs" ALL /Quiet /NoCancel /Force - -
-
+ + + + + Warning - Unused Microsoft Office 2007 Components can be removed - Windows + This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2007 Installation.

+

This Fixlet will be relevant if none of the standard office apps (Access, Excel, OneNote, Outlook, Powerpoint, Publisher, or Word) exist on the system but the Office suite still appears in programs and features.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + not exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "12.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Plus 2007") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + prefetch o12-remove.diagcab sha1:985027E630CBBC9497F3F257A3E62B8956926DEF size:388756 http://download.microsoft.com/download/4/7/A/47A0D191-D6F9-4C95-92E6-28D1DFF80F64/MicrosoftFixit20052.mini.diagcab sha256:5168D686CDC5A51F27CB96CA97B51DCC65931F504C63D2672DAF9A1F83F33669 + +waithidden expand -i "__Download\O12-Remove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub07.vbs" ALL /Quiet /NoCancel /Force + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2010 Components can be removed - Windows (23821).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2010 Components can be removed - Windows (23821).bes index c31668720..4a5381458 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2010 Components can be removed - Windows (23821).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2010 Components can be removed - Windows (23821).bes @@ -1,43 +1,43 @@ - - - - - Warning - Unused Microsoft Office 2010 Components can be removed - Windows - This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2010 Installation.

-

This Fixlet will be relevant if none of the standard office apps (Access, Excel, OneNote, Outlook, Powerpoint, Publisher, or Word) exist on the system but the Office suite still appears in programs and features.

-

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
- windows of operating system - not exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "14.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) - exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Plus 2010") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) - Internal - 2017-02-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection {not x64 of operating system} - -prefetch o14-ctrremove.diagcab sha1:84860CDAF2DD94FDF37F7519079195EFD1DE7777 size:401870 http://download.microsoft.com/download/2/8/5/28568719-AD79-41EB-B0F2-76E16817DD0E/MicrosoftFixit20055.mini.diagcab sha256:1F4BF79BA164A975279FBA37C82B6927BA2908C44624F8A80AEAFBC1B422313A - -waithidden expand -i "__Download\O14-CTRRemove.diagcab" -f:OffScrub*.vbs "__Download" - -waithidden cscript "__Download\OffScrub10.vbs" ALL /Quiet /NoCancel /Force - -
-
+ + + + + Warning - Unused Microsoft Office 2010 Components can be removed - Windows + This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2010 Installation.

+

This Fixlet will be relevant if none of the standard office apps (Access, Excel, OneNote, Outlook, Powerpoint, Publisher, or Word) exist on the system but the Office suite still appears in programs and features.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + not exists keys whose (default value of it as string contains (regex "Microsoft Office (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word) MUI.*")) of keys "14.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Plus 2010") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection {not x64 of operating system} + +prefetch o14-ctrremove.diagcab sha1:84860CDAF2DD94FDF37F7519079195EFD1DE7777 size:401870 http://download.microsoft.com/download/2/8/5/28568719-AD79-41EB-B0F2-76E16817DD0E/MicrosoftFixit20055.mini.diagcab sha256:1F4BF79BA164A975279FBA37C82B6927BA2908C44624F8A80AEAFBC1B422313A + +waithidden expand -i "__Download\O14-CTRRemove.diagcab" -f:OffScrub*.vbs "__Download" + +waithidden cscript "__Download\OffScrub10.vbs" ALL /Quiet /NoCancel /Force + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2013 Components can be removed - Windows (23822).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2013 Components can be removed - Windows (23822).bes index 4ffdf0d93..bd22cc4f9 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2013 Components can be removed - Windows (23822).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Unused Microsoft Office 2013 Components can be removed - Windows (23822).bes @@ -1,4135 +1,4135 @@ - - - - - Warning - Unused Microsoft Office 2013 Components can be removed - Windows - This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2013 Installation.

-

This Fixlet will be relevant if none of the standard office apps (Access, Excel, InfoPath, OneNote, Outlook, Powerpoint, Publisher, or Word) exist on the system but the Office suite still appears in programs and features.

-

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
- windows of operating system - not exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word|InfoPath) MUI.*")) of keys "15.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) - exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Plus 2013") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) - Internal - 2017-02-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - "fForce" will kill running applications which can result in data loss! <- CAUTION -Dim fForce : fForce = False -'CAUTION! -> "fForce" will kill running applications which can result in data loss! <- CAUTION -Dim fLogInitialized : fLogInitialized = False -Dim fBypass_Stage1 : fBypass_Stage1 = True 'Component Detection -Dim fBypass_Stage2 : fBypass_Stage2 = False 'Setup -Dim fBypass_Stage3 : fBypass_Stage3 = False 'Msiexec -Dim fBypass_Stage4 : fBypass_Stage4 = False 'CleanUp -Dim fRebootRequired : fRebootRequired = False - -'Create required objects -Set oWmiLocal = GetObject("winmgmts:{{(Debug)}\\.\root\cimv2") -Set oWShell = CreateObject("Wscript.Shell") -Set oShellApp = CreateObject("Shell.Application") -Set oFso = CreateObject("Scripting.FileSystemObject") -Set oMsi = CreateObject("WindowsInstaller.Installer") -Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv") - -'Get environment path info -sAppData = oWShell.ExpandEnvironmentStrings("%appdata%") -sLocalAppData = oWShell.ExpandEnvironmentStrings("%localappdata%") -sTemp = oWShell.ExpandEnvironmentStrings("%temp%") -sAllUsersProfile = oWShell.ExpandEnvironmentStrings("%allusersprofile%") -RegReadValue HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "ProfilesDirectory", sProfilesDirectory, "REG_EXPAND_SZ" -If NOT oFso.FolderExists(sProfilesDirectory) Then - sProfilesDirectory = oFso.GetParentFolderName(oWShell.ExpandEnvironmentStrings("%userprofile%")) -End If -sProgramFiles = oWShell.ExpandEnvironmentStrings("%programfiles%") -'Deferred until after architecture check -'sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") - -sCommonProgramFiles = oWShell.ExpandEnvironmentStrings("%commonprogramfiles%") -'Deferred until after architecture check -'sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") - -sProgramData = oWSHell.ExpandEnvironmentStrings("%programdata%") -sWinDir = oWShell.ExpandEnvironmentStrings("%windir%") -sWICacheDir = sWinDir & "\" & "Installer" -sScrubDir = sTemp & "\" & SCRIPTNAME -sScriptDir = wscript.ScriptFullName -sScriptDir = Left(sScriptDir, InStrRev(sScriptDir, "\")) - -' Get current script host -fCScript = UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" - -'Detect if we're running on a 64 bit OS -Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_ComputerSystem") -For Each Item In ComputerItem - f64 = Instr(Left(Item.SystemType,3),"64") > 0 - If f64 Then Exit For -Next -If f64 Then sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") -If f64 Then sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") - -'Get OS details and VersionNT -Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_OperatingSystem") -For Each Item in ComputerItem - sOSinfo = sOSinfo & Item.Caption - sOSinfo = sOSinfo & Item.OtherTypeDescription - sOSinfo = sOSinfo & ", " & "SP " & Item.ServicePackMajorVersion - sOSinfo = sOSinfo & ", " & "Version: " & Item.Version - sOsVersion = Item.Version - sOSinfo = sOSinfo & ", " & "Codepage: " & Item.CodeSet - sOSinfo = sOSinfo & ", " & "Country Code: " & Item.CountryCode - sOSinfo = sOSinfo & ", " & "Language: " & Item.OSLanguage -Next - -'Build the VersionNT number -arrVersion = Split(sOsVersion, Delimiter(sOsVersion)) -iVersionNt = CInt(arrVersion (0)) * 100 + CInt(arrVersion (1)) - -'Check if we're running as 32 bit process on a 64 bit OS -If InStr(LCase(wscript.path), "syswow64") > 0 Then RelaunchAs64Host - -fElevated = CheckRegPermissions -If NOT fElevated AND NOT fNoElevate Then - 'Try to relaunch elevated - RelaunchElevated - - 'Can't relaunch. Exit out - If UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" Then - If Not fLogInitialized Then CreateLog - Log "Insufficient registry access permissions - exiting" - End If - 'Undo temporary entries created in ARP - TmpKeyCleanUp - wscript.quit 3 -End If - -'Create Dictionaries -Set dictionaryKeepProd = CreateObject("Scripting.Dictionary") -Set dicInstalledSku = CreateObject("Scripting.Dictionary") -Set dicRemoveSku = CreateObject("Scripting.Dictionary") -Set dictionaryKeepSku = CreateObject("Scripting.Dictionary") -Set dictionaryKeepLis = CreateObject("Scripting.Dictionary") -Set dictionaryKeepFolder = CreateObject("Scripting.Dictionary") -Set dicApps = CreateObject("Scripting.Dictionary") -Set dicDelRegKey = CreateObject("Scripting.Dictionary") -Set dictionaryKeepReg = CreateObject("Scripting.Dictionary") -Set dicSrv = CreateObject("Scripting.Dictionary") -Set dicCSuite = CreateObject("Scripting.Dictionary") -Set dicCSingle = CreateObject("Scripting.Dictionary") - -'Create the temp folder -If Not oFso.FolderExists(sScrubDir) Then oFso.CreateFolder sScrubDir - -'Set the default logging directory -sLogDir = sScrubDir - -'Call the command line parser -ParseCmdLine - -'Ensure CScript as engine -If NOT fCScript AND NOT fQuiet Then RelaunchAsCScript - -'Get Office Install Folder -If NOT RegReadValue(HKLM,"SOFTWARE\Microsoft\Office\"&OVERSION&"\Common\InstallRoot","Path",sOInstallRoot,"REG_SZ") Then - sOInstallRoot = sProgramFiles & "\Microsoft Office\"&OREF -End If - -'Ensure integrity of WI metadata which could fail used APIs otherwise -EnsureValidWIMetadata HKCU,"Software\Classes\Installer\Products",COMPRESSED -EnsureValidWIMetadata HKCR,"Installer\Products",COMPRESSED -EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products",COMPRESSED -EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components",COMPRESSED -EnsureValidWIMetadata HKCR,"Installer\Components",COMPRESSED - -'Add initial known .exe files that might need to be closed -dicApps.Add "communicator.exe", "communicator.exe" -dicApps.Add "setup.exe", "setup.exe" -Select Case OVERSIONMAJOR -Case "12" -Case "14" - dicApps.Add "bcssync.exe","bcssync.exe" - dicApps.Add "officesas.exe","officesas.exe" - dicApps.Add "officesasscheduler.exe","officesasscheduler.exe" - dicApps.Add "msosync.exe","msosync.exe" - dicApps.Add "onenotem.exe","onenotem.exe" -Case "15" -Case Else -End Select - -'------------------- -'Stage # 0 - Basics | -'------------------- -'Build a list with installed/registered Office products -sTmp = "Stage # 0 " & chr(34) & "Basics" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf - -FindInstalledOProducts -If dicInstalledSku.Count > 0 Then Log "Found registered product(s): " & Join(RemoveDuplicates(dicInstalledSku.Items),",") &vbCrLf - -'Validate the list of products we got from the command line if applicable -ValidateRemoveSkuList - -'Log detection results -If dicRemoveSku.Count > 0 Then Log "Product(s) to be removed: " & Join(RemoveDuplicates(dicRemoveSku.Items),",") -sMode = "Selected " & ONAME & " products" -If NOT dicRemoveSku.Count > 0 Then sMode = "Orphaned " & ONAME & " products" -If fRemoveAll Then sMode = "All " & ONAME & " products" -Log "Final removal mode: " & sMode -Log "Remove OSE service: " & fRemoveOse &vbCrLf - -'Log preview mode if applicable -If fDetectOnly Then Log "*************************************************************************" -If fDetectOnly Then Log "* PREVIEW MODE *" -If fDetectOnly Then Log "* All uninstall and delete operations will only be logged not executed! *" -If fDetectOnly Then Log "*************************************************************************" & vbCrLf - -'Check if there are legacy products installed -CheckForLegacyProducts -If fLegacyProductFound Then Log "Found legacy Office products that will not be removed." Else Log "No legacy Office products found." - -'Cache .msi files -If dicRemoveSku.Count > 0 Then CacheMsiFiles - -'Log Sku/Prod detection results -LogSkuResults - -'UnPin Shortcuts -If NOT fSkipSD AND dicRemoveSku.Count > 0 Then - On Error Resume Next - Log " Searching for pinned shortcuts" - CleanShortcuts sAllUsersProfile, False, True - CleanShortcuts sProfilesDirectory, False, True - On Error Goto 0 -End If 'NOT SkipSD - - -'-------------------------------- -'Stage # 1 - Component Detection | -'-------------------------------- -sTmp = "Stage # 1 " & chr(34) & "Component Detection" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf -If Not fBypass_Stage1 OR fForce Then - 'Build a list with files which are installed/registered to a product that's going to be removed - Log "Prepare for CleanUp stages." - Log "Identifying removable elements. This can take several minutes." - ScanComponents -Else - Log "Not running Component Detection in default removal." -End If - -'End all running Office applications -If fForce OR fQuiet OR fPassive Then CloseOfficeApps - -'---------------------- -'Stage # 2 - Setup.exe | -'---------------------- -sTmp = "Stage # 2 " & chr(34) & "Setup.exe" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf -If Not fBypass_Stage2 Then - SetupExeRemoval -Else - Log "Skipping Setup.exe because bypass was requested." -End If - -'------------------------ -'Stage # 3 - Msiexec.exe | -'------------------------ -sTmp = "Stage # 3 " & chr(34) & "Msiexec.exe" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf -If Not fBypass_Stage3 Then - MsiexecRemoval -Else - Log "Skipping Msiexec.exe because bypass was requested." -End If - -'-------------------- -'Stage # 4 - CleanUp | -'-------------------- -'Removal of files and registry settings -sTmp = "Stage # 4 " & chr(34) & "CleanUp" & chr(34) & " (" & Time & ")" -Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf -If Not fBypass_Stage4 Then - - 'Office Source Engine - If fRemoveOse Then RemoveOSE - - 'Local Installation Source (MSOCache) - WipeLIS - - 'Obsolete files - If fRemoveAll Then - FileWipeAll - Else - FileWipeIndividual - End If - - 'Empty Folders - DeleteEmptyFolders - - 'Restore Explorer if needed - If fForce OR fQuiet OR fPassive Then RestoreExplorer - - 'Registry data - RegWipe - - 'Wipe orphaned files from Windows Installer cache - MsiClearOrphanedFiles - - 'Temporary .msi files in scrubcache - DeleteMsiScrubCache - - 'Temporary files - DelScrubTmp - -Else - Log "Skipping CleanUp because bypass was requested." -End If - -If Not sMoveMessage = "" Then Log vbCrLf & "Please remove this folder after next reboot: " & sMoveMessage - -'THE END -Log vbCrLf & "End removal: " & Now & vbCrLf -Log vbCrLf & "For detailed logging please refer to the log in folder " &chr(34)&sScrubDir&chr(34)&vbCrLf - -If fRebootRequired Then - Log vbCrLf & "A restart is required to complete the operation!" - If NOT (fQuiet OR fPassive OR fNoReboot) Then - If MsgBox("Do you want to reboot now?",vbYesNo,"Reboot Required") = VB_YES Then - Dim colOS, oOS - Dim oWmiReboot - Set oWmiReboot = GetObject("winmgmts:{{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2") - Set colOS = oWmiReboot.ExecQuery ("Select * from Win32_OperatingSystem") - For Each oOS in colOS - oOS.Reboot() - Next - End If - End If -End If - -If NOT (fQuiet OR fPassive) Then - For Each Item in Wscript.Arguments - If Item = "UAC" Then - If fCscript Then wscript.stdout.write "Press to close this window" - sTemp = wscript.stdin.read(1) - End If - Next 'Argument -End If -'======================================================================================================= -'======================================================================================================= - -'Stage 0 - 4 Subroutines -'======================================================================================================= - -'Office configuration products are listed with their configuration product name in the "Uninstall" key -'To identify an Office configuration product all of these condiditions have to be met: -' - "SystemComponent" does not have a value of "1" (DWORD) -' - "OPACKAGE" (see constant declaration) entry exists and is not empty -' - "DisplayVersion" exists and the 2 leftmost digits are "OVERSIONMAJOR" -Sub FindInstalledOProducts - Dim ArpItem, File - Dim sCurKey, sValue, sConfigName, sProdC, sCVHValue - Dim sProductCodeList, sProductCode - Dim arrKeys, arrMultiSzValues - Dim fSystemComponent0, fPackages, fDisplayVersion, fReturn, fCategorized - - If dicInstalledSku.Count > 0 Then Exit Sub 'Already done from InputBox prompt - - 'Handle orphaned products to get them added to the detection scope - If fTryReconcile Then - For Each File in oFso.GetFolder(sWICacheDir).Files - If Len(File.Name)>3 Then - Select Case LCase(Right(File.Name, 4)) - Case ".msi" - sProductCode = "" - sProductCode = GetMsiProductCode(File.Path) - If InScope(sProductCode) Then - If NOT RegKeyExists(HKLM, REG_ARP & sProductCode) Then - 'Ensure the orphaned item is getting removed - If Len(sSkuRemoveList) > 0 Then - sSkuRemoveList = sSkuRemoveList & "," & GetProductID(Mid(sProductCode, 11, 4)) - Else - sSkuRemoveList = GetProductID(Mid(sProductCode, 11, 4)) - End If - 'Add to ScrubDir - oFso.CopyFile File.Path,sScrubDir & "\" & sProductCode & ".msi",True - 'Register the product with MSI - MsiRegisterProduct File.Path - End If 'NOT sProductCode - End If 'InScope - Case Else - End Select - End If '>3 - Next 'File - End If 'fTryReconcile - - 'Locate standalone Office products that have no configuration product entry and create a - 'temporary configuration entry - ReDim arrTmpSKUs(-1) - If RegEnumKey(HKLM, REG_ARP, arrKeys) Then - For Each ArpItem in arrKeys - If InScope(ArpItem) Then - sCurKey = REG_ARP & ArpItem & "\" - fSystemComponent0 = Not (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) - If fSystemComponent0 Then - RegReadValue HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ" - Redim arrMultiSzValues(0) - 'Logic changed to drop the LCID identifier - 'sConfigName = GetProductID(Mid(ArpItem,11,4)) & "_" & CInt("&h" & Mid(ArpItem,16,4)) - sConfigName = OREGREF & GetProductID(Mid(ArpItem, 11, 4)) - If NOT RegKeyExists(HKLM, REG_ARP&sConfigName) Then - 'Create a new ARP item - ReDim Preserve arrTmpSKUs(UBound(arrTmpSKUs) + 1) - arrTmpSKUs(UBound(arrTmpSKUs)) = sConfigName - oReg.CreateKey HKLM, REG_ARP & sConfigName - arrMultiSzValues(0) = sConfigName - oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, OPACKAGE, arrMultiSzValues - arrMultiSzValues(0) = ArpItem - oReg.SetStringValue HKLM, REG_ARP & sConfigName, "Comment", "Temporary OffScrub generated key. Please delete this key!" - oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", arrMultiSzValues - oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayVersion", sValue - oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayName", SCRIPTNAME & "_" & sConfigName - oReg.SetDWordValue HKLM, REG_ARP & sConfigName, "SystemComponent", 0 - Else - 'Update the existing temporary ARP item - fReturn = RegReadValue(HKLM, REG_ARP&sConfigName, "ProductCodes", sProdC, "REG_MULTI_SZ") - If NOT InStr(sProdC, ArpItem) > 0 Then sProdC = sProdC & chr(34) & ArpItem - oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", Split(sProdC, Chr(34)) - End If 'RegKeyExists - End If 'fSystemComponent0 - End If 'InScope - Next 'ArpItem - End If 'RegEnumKey - - 'Find the configuration products - If RegEnumKey(HKLM, REG_ARP, arrKeys) Then - For Each ArpItem in arrKeys - sCurKey = REG_ARP & ArpItem & "\" - sValue = "" - fSystemComponent0 = NOT (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) - fPackages = RegReadValue(HKLM, sCurKey, OPACKAGE, sValue, "REG_MULTI_SZ") - fDisplayVersion = RegReadValue(HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ") - If fDisplayVersion Then - If Len(sValue) > 1 Then - fDisplayVersion = (Left(sValue, 2) = OVERSIONMAJOR) - Else - fDisplayVersion = False - End If - End If - 'fSystemComponent0 filter causes issues if the ARP entries have been hidden - 'If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then - If (fPackages AND fDisplayVersion) Then - If InStr(ArpItem,".") > 0 Then sConfigName = UCase(Mid(ArpItem, InStr(ArpItem, ".") + 1)) Else sConfigName = UCase(ArpItem) - If NOT dicInstalledSku.Exists(sConfigName) Then dicInstalledSku.Add sConfigName, sConfigName - - 'Categorize the SKU - 'Four categories are available: ClientSuite, ClientSingleProduct, Server, C2R - If RegReadValue(HKLM, REG_ARP & OREGREF & sConfigName, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then - fCategorized = False - For Each sProductCode in Split(sProductCodeList, Chr(34)) - If Len(sProductCode) = 38 Then - If Mid(sProductCode, 11, 1) = "1" Then - 'Server product - If NOT dicSrv.Exists(UCase(sConfigName)) Then dicSrv.Add UCase(sConfigName), sConfigName - fCategorized = True - Exit For - Else - Select Case Mid(sProductCode, 11, 4) - 'Client Suites - Case "000F","0011","0012","0013","0014","0015","0016","0017","0018","0019","001A","001B","0029","002B","002E","002F","0030","0031","0033","0035","0037","003D","0044","0049","0061","0062","0066","006C","006D","006F","0074","00A1","00A3","00A9","00BA","00CA","00E0","0100","0103","011A" - If NOT dicCSuite.Exists(UCase(sConfigName)) Then dicCSuite.Add UCase(sConfigName), sConfigName - fCategorized = True - Exit For - - Case "007E", "008F", "008C", "24E1", "237A" - If NOT dictionaryKeepProd.Exists(sProductCode) Then dictionaryKeepProd.Add sProductCode, sConfigName - fC2rInstalled = True - Case Else - End Select - End If - End If 'Len 38 - Next 'sProductCode - If NOT fCategorized Then - If NOT dicCSingle.Exists(UCase(sConfigName)) Then dicCSingle.Add UCase(sConfigName), sConfigName - End If 'fCategorized - End If 'RegReadValue "ProductCodes" - End If - Next 'ArpItem - End If 'RegEnumKey -End Sub 'FindInstalledOProducts -'======================================================================================================= - -'Check if there are Office products from previous versions on the computer -Sub CheckForLegacyProducts - Const OLEGACY = "78E1-11D2-B60F-006097C998E7}.6000-11D3-8CFE-0050048383C9}.6000-11D3-8CFE-0150048383C9}.BDCA-11D1-B7AE-00C04FB92F3D}.6D54-11D4-BEE3-00C04F990354}" - Dim Product - - 'Set safe default - fLegacyProductFound = True - - For Each Product in oMsi.Products - If Len(Product) = 38 Then - 'Handle O09 - O11 Products - If InStr(OLEGACY, UCase(Right(Product, 28))) > 0 Then - 'Found legacy Office product. Keep flag in default and exit - Exit Sub - End If - If UCase(Right(Product,PRODLEN)) = OFFICEID Then - Select Case Mid(Product,4,2) - Case "12", "14" - 'Found legacy Office product. Keep flag in default and exit - Exit Sub - Case Else - End Select - End If - End If '38 - Next 'Product - fLegacyProductFound = False - -End Sub 'CheckForLegacyProducts -'======================================================================================================= - -'Create clean list of Products to remove. -'Strip off bad & empty contents -Sub ValidateRemoveSkuList - Dim Sku, Key, sProductCode, sProductCodeList - Dim arrRemoveSKUs - - If fRemoveAll Then - 'Remove all mode - For Each Key in dicInstalledSku.Keys - dicRemoveSku.Add Key,dicInstalledSku.Item(Key) - Next 'Key - Else - 'Remove individual products or preconfigured configurations mode - - 'Ensure to have a string with no unexpected contents - sSkuRemoveList = Replace(sSkuRemoveList,";",",") - sSkuRemoveList = Replace(sSkuRemoveList," ","") - sSkuRemoveList = Replace(sSkuRemoveList,Chr(34),"") - While InStr(sSkuRemoveList,",,")>0 - sSkuRemoveList = Replace(sSkuRemoveList,",,",",") - Wend - - 'Prepare 'remove' and 'keep' dictionaries to determine what has to be removed - - 'Initial pre-fill of 'keep' dic - For Each Key in dicInstalledSku.Keys - dictionaryKeepSku.Add Key,dicInstalledSku.Item(Key) - Next 'Key - - 'Determine contents of keep and remove dic - 'Individual products - arrRemoveSKUs = Split(UCase(sSkuRemoveList),",") - For Each Sku in arrRemoveSKUs - If Sku = "OSE" Then fRemoveOse = True - If dictionaryKeepSku.Exists(Sku) Then - 'A Sku to remove has been passed in - 'remove the item from the keep dic - dictionaryKeepSku.Remove(Sku) - 'Now add it to the remove dic - If NOT dicRemoveSku.Exists(Sku) Then dicRemoveSku.Add Sku,Sku - End If - Next 'Sku - - 'Client Suite Category - If fRemoveCSuites Then - For Each Key in dicInstalledSku.Keys - If dicCSuite.Exists(Key) Then - If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) - If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key - End If - Next 'Key - End If 'fRemoveCSuites - - 'Client Single/Standalone Category - If fRemoveCSingle Then - For Each Key in dicInstalledSku.Keys - If dicCSingle.Exists(Key) Then - If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) - If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key - End If - Next 'Key - End If 'fRemoveCSingle - - 'Server Category - If fRemoveSrv Then - For Each Key in dicInstalledSku.Keys - If dicSrv.Exists(Key) Then - If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) - If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key - End If - Next 'Key - End If 'fRemoveSrv - - If NOT dictionaryKeepSku.Count > 0 Then fRemoveAll = True - - End If 'fRemoveAll - - 'Fill the KeepProd dic - For Each Sku in dictionaryKeepSku.Keys - If RegReadValue(HKLM, REG_ARP & OREGREF & Sku, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then - For Each sProductCode in Split(sProductCodeList, chr(34)) - If Len(sProductCode) = 38 Then - If NOT dictionaryKeepProd.Exists(sProductCode) Then - dictionaryKeepProd.Add sProductCode, Sku - ' also add the UpgradeCode - If Not dictionaryKeepProd.Exists(GetUpgradeCode(sProductCode)) Then dictionaryKeepProd.Add GetUpgradeCode(sProductCode), Sku & "_UpgradeCode" - End If - End If '38 - Next 'sProductCode - End If - Next 'Sku - - If fRemoveAll OR fRemoveOse Then CheckRemoveOSE - If fRemoveAll OR fRemoveOspp Then CheckRemoveOspp - -End Sub 'ValidateRemoveSkuList -'======================================================================================================= - -'Check if OSE service can be scrubbed -Sub CheckRemoveOSE - Const O11 = "6000-11D3-8CFE-0150048383C9}" - Dim Product - - If fRemoveOse Then Exit Sub - For Each Product in oMsi.Products - If Len(Product) = 38 Then - If UCase(Right(Product, 28)) = O11 Then - 'Found Office 2003 Product. Set flag to not remove the OSE service - Exit Sub - End If - If UCase(Right(Product, PRODLEN))= OFFICEID Then - Select Case Mid(Product, 4, 2) - Case "12","14","15","16","17" - If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then - 'Found another Office product. Set flag to keep the OSE service - fRemoveOse = False - Exit Sub - End If - Case Else - End Select - End If - End If '38 - Next 'Product - fRemoveOse = True -End Sub 'CheckRemoveOSE -'======================================================================================================= - -'Check if OSPP service can be scrubbed -Sub CheckRemoveOSPP - Dim Product - - If NOT CInt(OVERSIONMAJOR) > 12 Then - fRemoveOspp = False - Exit Sub - End If - - If fRemoveOspp Then Exit Sub - - If fC2rInstalled Then - fRemoveOspp = False - Exit Sub - End If - - For Each Product in oMsi.Products - If Len(Product) = 38 Then - If UCase(Right(Product, PRODLEN)) = OFFICEID Then - Select Case Mid(Product, 4, 2) - Case "14","15","16","17" - If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then - 'Found another Office product. Set flag to keep the OSPP service - fRemoveOspp = False - Exit Sub - End If - Case Else - End Select - End If - End If '38 - Next 'Product - fRemoveOspp = True -End Sub 'CheckRemoveOSPP -'======================================================================================================= - -'Cache .msi files for products that will be removed in case they are needed for later file detection -Sub CacheMsiFiles - Dim Product - Dim sMsiFile - - 'Non critical routine for failures. - 'Errors will be logged but must not fail the execution - On Error Resume Next - Log " Cache .msi files to temporary Scrub folder" - 'Cache the files - For Each Product in oMsi.Products - 'Ensure valid GUID length - If CheckDeleteEx(Product) Then - CheckError "CacheMsiFiles" - sMsiFile = oMsi.ProductInfo(Product,"LocalPackage") : CheckError "CacheMsiFiles" - LogOnly " - " & Product & ".msi" - If oFso.FileExists(sMsiFile) Then oFso.CopyFile sMsiFile,sScrubDir & "\" & Product & ".msi",True - CheckError "CacheMsiFiles" - End If 'InScope - Next 'Product - - Err.Clear -End Sub 'CacheMsiFiles -'======================================================================================================= - -'Build a list of all files that will be deleted -Sub ScanComponents - Const MSIINSTALLSTATE_LOCAL = 3 - - Dim FileList, RegList, ComponentID, CompClient, Record, qView, MsiDb, CompVerbose - Dim Processes, Process, Prop, prod - Dim sQuery, sSubKeyName, sPath, sFile, sMsiFile, sCompClient, sComponent, sCompReg - Dim fRemoveComponent, fAffectedComponent, fIsPermanent, fIsFile, fIsFolder - Dim i, iProgress, iCompCnt, iRemCnt - Dim dicFLError, oDic, oFolderDic, dicCompPath - Dim hDefKey - - 'Logfile - Set FileList = oFso.OpenTextFile(sScrubDir & "\FileList.txt",FOR_WRITING,True,True) - Set RegList = oFso.OpenTextFile(sScrubDir & "\RegList.txt",FOR_WRITING,True,True) - Set CompVerbose = oFso.OpenTextFile(sScrubDir & "\CompVerbose.txt",FOR_WRITING,True,True) - - 'FileListError dic - Set dicFLError = CreateObject("Scripting.Dictionary") - - Set oDic = CreateObject("Scripting.Dictionary") - Set oFolderDic = CreateObject("Scripting.Dictionary") - Set dicCompPath = CreateObject("Scripting.Dictionary") - - 'Prevent that API errors fail script execution - On Error Resume Next - - iCompCnt = oMsi.Components.Count - If NOT Err = 0 Then - 'API failure - Log "Error during components detection. Cannot complete this task." - Err.Clear - Exit Sub - End If - - 'Ensure to not divide by zero - If iCompCnt = 0 Then iCompCnt = 1 - LogOnly " Scanning " & iCompCnt & " components" - 'Enum all Components - For Each ComponentID In oMsi.Components - CompVerbose.WriteLine vbCrLf & "Checking Component: " & ComponentID - - 'Progress bar - i = i + 1 - If iProgress < (i / iCompCnt) * 100 Then - If fCScript Then wscript.stdout.write "." : LogStream.Write "." - iProgress = iProgress + 1 - If iProgress = 35 OR iProgress = 70 Then Log "" - End If - - 'Check if all ComponentClients will be removed - sCompClient = "" - iRemCnt = 0 - fIsPermanent = False - fRemoveComponent = False 'Flag to track if the component will be completely removed - fAffectedComponent = False 'Flag to track if some clients remain installed who have a none shared location - dicCompPath.RemoveAll - Err.Clear - For Each CompClient In oMsi.ComponentClients(ComponentID) - CompVerbose.Write " CompClient " & CompClient & "-> " - If Err = 0 Then - 'Ensure valid guid length - If Len(CompClient) = 38 Then - fRemoveComponent = InScope(CompClient) - If fRemoveComponent OR (CompClient = "{{00000000-0000-0000-0000-000000000000}") Then - sPath = "" - sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) - sPath = Replace(sPath,"?",":") - 'Scan for msidbComponentAttributesPermanent flag - If CompClient = "{{00000000-0000-0000-0000-000000000000}" Then - fIsPermanent = True - iRemCnt = iRemCnt + 1 - End If - If fRemoveComponent Then fRemoveComponent = CheckDelete(CompClient) - CompVerbose.Write "CheckDelete: " & fRemoveComponent & "; " - If fRemoveComponent Then - iRemCnt = iRemCnt + 1 - fAffectedComponent = True - 'Since the scope remains within one Office family the keypath for the component - 'is assumed to be identical - If sCompClient = "" Then sCompClient = CompClient - ' flag the CompClient entry for removal - sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) - If NOT dicDelRegKey.Exists(sCompReg) Then - dicDelRegKey.Add sCompReg,HKCR - RegList.WriteLine HiveString(HKCR)&"\"&sCompReg - End If - sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) - If NOT dicDelRegKey.Exists(sCompReg) Then - dicDelRegKey.Add sCompReg,HKLM - RegList.WriteLine HiveString(HKCR)&"\"&sCompReg - End If - Else - If NOT dicCompPath.Exists(sPath) Then dicCompPath.Add sPath,CompClient - End If - CompVerbose.WriteLine "AffectedComponent: " & fAffectedComponent - CompVerbose.WriteLine " CompClient now set to: " & sCompClient - Else - CompVerbose.Write "InScope: " & fRemoveComponent & "; " - End If - Else - CompVerbose.WriteLine "Error: Invalid metadata" - If NOT dicFLError.Exists("Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient) Then _ - dicFLError.Add "Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient, ComponentID - End If '38 - Else - CompVerbose.WriteLine "Error: " & Err.number & " " & Err.Description - Err.Clear - End If 'Err = 0 - Next 'CompClient - - 'Determine if the component resources go away - sPath = "" - fRemoveComponent = fAffectedComponent AND (iRemCnt = oMsi.ComponentClients(ComponentID).Count) - CompVerbose.WriteLine " Component goes away: " & fRemoveComponent -' This caused unintentional removals -' If NOT fRemoveComponent AND fAffectedComponent Then -' 'Flag as removable if component has a unique keypath -' sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) -' sPath = Replace(sPath,"?",":") -' fRemoveComponent = NOT dicCompPath.Exists(sPath) -' End If - If fRemoveComponent Then - 'Check msidbComponentAttributesPermanent flag - If fIsPermanent AND NOT fForce Then fRemoveComponent = False - CompVerbose.WriteLine " msidbComponentAttributesPermanent: " & NOT fRemoveComponent - End If - - If fRemoveComponent Then - CompVerbose.WriteLine " RESULT: Component IN SCOPE for removal" - fIsFile = False : fIsFolder = False - - 'Component resources go away for this product - Err.Clear - 'Add the component registration key to ensure removal - sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\" - If NOT dicDelRegKey.Exists(sCompReg) Then - dicDelRegKey.Add sCompReg,HKCR - RegList.WriteLine HiveString(HKCR)&"\"&sCompReg - End If - sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\" - If NOT dicDelRegKey.Exists(sCompReg) Then - dicDelRegKey.Add sCompReg,HKLM - RegList.WriteLine HiveString(HKCR)&"\"&sCompReg - End If - 'Get the component path - If sPath = "" Then - sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) - sPath = Replace(sPath,"?",":") - End If - CompVerbose.WriteLine " Path: " & sPath - If Len(sPath) > 4 Then - If Left(sPath,1) = "0" Then - 'Registry keypath - - Select Case Left(sPath,2) - Case "00" - sPath = Mid(sPath,5) - hDefKey = HKCR - Case "01" - sPath = Mid(sPath,5) - hDefKey = HKCU - Case "02","22" - sPath = Mid(sPath,5) - hDefKey = HKLM - Case Else - ' - End Select - - 'Go for the safe way and just reset the default entry - 'compared to deleting the whole key - If Right(sPath,1) = "\" Then sPath = sPath & "(Default)" - - If NOT dicDelRegKey.Exists(sPath) Then - dicDelRegKey.Add sPath,hDefKey - RegList.WriteLine HiveString(hDefKey)&"\"&sPath - End If - Else - - 'File or Folder - If oFso.FileExists(sPath) OR oFso.FolderExists(sPath) Then - If Right(sPath,1) = "\" Then - fIsFolder = True - CompVerbose.WriteLine " Folder check OK" - Else - fIsFile = True - CompVerbose.WriteLine " File check OK" - End If - If fIsFile Then sPath = oFso.GetFile(sPath).ParentFolder - If Not oFolderDic.Exists(sPath) Then - oFolderDic.Add sPath,sPath - FileList.WriteLine sPath & vbTab & "(FOLDER)" - End If - 'Get the .msi file - If oFso.FileExists(sScrubDir & "\" & sCompClient & ".msi") Then - sMsiFile = sScrubDir & "\" & sCompClient & ".msi" - Else - sMsiFile = oMsi.ProductInfo(sCompClient,"LocalPackage") - End If - CompVerbose.WriteLine " Set msi file to : " & sMsiFile - If Not Err = 0 Then - CompVerbose.WriteLine " Error: Failed to obtain .msi file for product " & sCompClient - If NOT dicFLError.Exists("Failed to obtain .msi file for product "&sCompClient) Then _ - dicFLError.Add "Failed to obtain .msi file for product "&sCompClient, ComponentID - Err.Clear - End If - CompVerbose.Write " Open .msi file for reading returned: " - Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) - - If Err = 0 Then - CompVerbose.WriteLine " SUCCESS" - 'Get the component name from the 'Component' table - sQuery = "SELECT `Component`,`ComponentId` FROM Component WHERE `ComponentId` = '" & ComponentID &"'" - Set qView = MsiDb.OpenView(sQuery) : qView.Execute - Set Record = qView.Fetch() - If Not Record Is Nothing Then sComponent = Record.Stringdata(1) - CompVerbose.WriteLine " Obtained ComponentId as: " & sComponent - - 'Get filenames from the 'File' table - sQuery = "SELECT `Component_`,`FileName` FROM File WHERE `Component_` = '" & sComponent &"'" - Set qView = MsiDb.OpenView(sQuery) : qView.Execute - Set Record = qView.Fetch() - Do Until Record Is Nothing - 'Read the filename - sFile = Record.StringData(2) - If InStr(sFile,"|") > 0 Then sFile = Mid(sFile,InStr(sFile,"|")+1,Len(sFile)) - 'sFile = sPath & "\" & sFile - CompVerbose.WriteLine " File: " & sPath& "\" & sFile - If Not oDic.Exists(sPath & "\" & sFile) Then - 'Exception handler - fAdd = True - Select Case UCase(sFile) - Case "FPERSON.DLL" - 'Catch exception caused by changed .msi keypath authoring logic for smart tags - For Each prod in oMsi.Products - If NOT Checkdelete(prod) Then - If oMsi.FeatureState(prod, "MSTagPluginNamesFiles") = MSIINSTALLSTATE_LOCAL Then - fAdd = False - Exit For - End If - End If - Next 'prod - Case Else - End Select - If fAdd Then - CompVerbose.WriteLine " Added as new file to dictionary" - oDic.Add sPath & "\" & sFile,sFile - FileList.WriteLine sFile & vbTab & sPath & "\" & sFile - If Len(sFile)>4 Then - sFile = LCase(sFile) - If Right(sFile,4) = ".exe" Then - If NOT dicApps.Exists(sFile) Then - Select Case sFile - Case "setup.exe","ose.exe","osppsvc.exe","explorer.exe" - Case Else - dicApps.Add sFile,LCase(sPath) & "\" & sFile - CompVerbose.WriteLine " Added to the list of processes that need to be closed." - End Select - End If 'dicApps.Exists - End If '.exe - End If 'Len > 4 - End If 'fAdd - End If 'oDic.Exists - Set Record = qView.Fetch() - Loop - Set Record = Nothing - qView.Close - Set qView = Nothing - Else - CompVerbose.WriteLine " Error: Could not read from .msi file" - If NOT dicFLError.Exists("Error: Could not read from .msi file: "&sMsiFile) Then _ - dicFLError.Add "Error: Could not read from .msi file: "&sMsiFile, ComponentID - Err.Clear - End If 'Err = 0 - Else - CompVerbose.WriteLine " Error: File check FAILED" - End If 'FileExists(sPath) - End If - End If 'Len(sPath) > 4 - Else - CompVerbose.WriteLine " RESULT: Component NOT in scope for removal" - If fAffectedComponent Then - 'Add the path to the 'Keep' dictionary - Err.Clear - For Each CompClient In oMsi.ComponentClients(ComponentID) - 'Get the component path - sPath = "" : sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) - sPath = Replace(sPath,"?",":") - - If Len(sPath) > 4 Then - If Left(sPath,1) = "0" Then - 'Registry keypath - - Select Case Left(sPath,2) - Case "00" - sPath = Mid(sPath,5) - hDefKey = HKCR - Case "01" - sPath = Mid(sPath,5) - hDefKey = HKCU - Case "02","22" - sPath = Mid(sPath,5) - hDefKey = HKLM - Case Else - ' - End Select - If NOT dictionaryKeepReg.Exists(LCase(sPath)) Then - dictionaryKeepReg.Add LCase(sPath),hDefKey - End If - Else - 'File keypath - If oFso.FileExists(sPath) Then - If NOT dictionaryKeepFolder.Exists(LCase(sPath)) Then dictionaryKeepFolder.Add LCase(sPath) - sPath = LCase(oFso.GetFile(sPath).ParentFolder) & "\" - If NOT dictionaryKeepFolder.Exists(sPath) Then AddKeepFolder sPath - End If - 'Folder keypath - If oFso.FolderExists(sPath) Then AddKeepFolder sPath - End If 'Is Registry - End If 'sPath > 4 - Next 'CompClient - End If 'fAffectedComponent - End If 'fRemoveComponent - Err.Clear - Next 'ComponentID - On Error Goto 0 - - Log " Done" & vbCrLf - If dicFLError.Count > 0 Then LogOnly Join(dicFLError.Keys,vbCrLf) - If Not oFolderDic.Count = 0 Then arrDeleteFolders = oFolderDic.Keys Else Set arrDeleteFolders = Nothing - If Not oDic.Count = 0 Then arrDeleteFiles = oDic.Keys Else Set arrDeleteFiles = Nothing -End Sub 'ScanComponents -'======================================================================================================= - - -'Try to remove the products by calling setup.exe -Sub SetupExeRemoval - Dim OseService, Service, TextStream - Dim iSetupCnt, RetVal - Dim Sku, sConfigFile, sUninstallCmd, sCatalyst, sDll, sDisplayLevel, sNoCancel - iSetupCnt = 0 - If Not dicRemoveSku.Count > 0 Then - Log " Nothing to remove for Setup.exe" - Exit Sub - End If - - 'Ensure that the OSE service is *installed, *not disabled, *running under System context. - 'If validation fails exit out of this sub. - Set OseService = oWmiLocal.Execquery("Select * From Win32_Service Where Name like 'ose%'") - If OseService.Count = 0 Then Exit Sub - For Each Service in OseService - If (Service.StartMode = "Disabled") AND (Not Service.ChangeStartMode("Manual")=0) Then Exit Sub - If (Not Service.StartName = "LocalSystem") AND (Service.Change( , , , , , , "LocalSystem", "")) Then Exit Sub - Next 'Service - - For Each Sku in dicRemoveSku.Keys - - If Sku="CLICK2RUN" Then - 'Already done - Else - 'Create an "unattended" config.xml file for uninstall - If fQuiet Then sDisplayLevel = "None" Else sDisplayLevel="Basic" - If fNoCancel Then sNoCancel="Yes" Else sNoCancel="No" - Set TextStream = oFso.OpenTextFile(sScrubDir & "\config.xml",FOR_WRITING,True,True) - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Writeline "" - TextStream.Close - Set TextStream = Nothing - - 'Ensure path to setup.exe is valid to prevent errors - sDll = "" - If RegReadValue(HKLM,REG_ARP & OREGREF & Sku,"UninstallString",sCatalyst,"REG_SZ") Then - If InStr(LCase(sCatalyst),"/dll")>0 Then sDll = Right(sCatalyst,Len(sCatalyst)-InStr(LCase(sCatalyst),"/dll")+2) - If InStr(sCatalyst,"/")>0 Then sCatalyst = Left(sCatalyst,InStr(sCatalyst,"/")-1) - sCatalyst = Trim(Replace(sCatalyst,Chr(34),"")) - If NOT oFso.FileExists(sCatalyst) Then - sCatalyst = sCommonProgramFiles & "\" & OREF & "\Office Setup Controller\setup.exe" - If NOT oFso.FileExists(sCatalyst) AND f64 Then - sCatalyst = sCommonProgramFilesX86 & "" & OREF & "\Office Setup Controller\setup.exe" - End If - End If - If oFso.FileExists(sCatalyst) Then - sUninstallCmd = Chr(34) & sCatalyst & Chr(34) & " /uninstall " & Sku & " /config " & Chr(34) & sScrubDir & "\config.xml" & Chr(34) & sDll - iSetupCnt = iSetupCnt + 1 - Log " - Calling Setup.exe to remove " & Sku '& vbCrLf & sUninstallCmd - If Not fDetectOnly Then - On Error Resume Next - ' end other instances of setup - EndCurrentInstalls - ' call uninstall - RetVal = oWShell.Run(sUninstallCmd,0,True) : CheckError "SetupExeRemoval" - Log " - Setup.exe returned: " & SetupRetVal(Retval) & " (" & RetVal & ")" & vbCrLf - fRebootRequired = fRebootRequired OR (RetVal = "3010") - On Error Goto 0 - Else - Log " -> Removal suppressed in preview mode." - End If - Else - Log " Error: Office setup.exe appears to be missing" - End If 'RetVal = 0) AND oFso.FileExists - End If 'RegReadValue - End If - Next 'Sku - If iSetupCnt = 0 Then Log " Nothing to remove for setup." -End Sub 'SetupExeRemoval -'======================================================================================================= - -'Invoke msiexec to remove individual .MSI packages -Sub MsiexecRemoval - - Dim Product - Dim i - Dim sCmd, sReturn, sMsiProp - Dim fRegWipe - - fRegWipe = False - - Select Case OVERSIONMAJOR - Case "11" - sMsiProp = " REBOOT=ReallySuppress NOLOCALCACHEROLLBACK=1" - Case "12" - fRegWipe = True - sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" - Case "14" - fRegWipe = True - sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" - Case "15" - fRegWipe = True - sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" - Case Else - End Select - - 'Clear up ARP first to avoid possible custom action dependencies - If fRegWipe Then RegWipeARP - - 'Check MSI registered products - 'Office System does only support per machine installation so it's sufficient to use Installer.Products - i = 0 - sMsiProp = " MSIRESTARTMANAGERCONTROL=Disable" & sMsiProp - For Each Product in oMsi.Products - If CheckDeleteEx(Product) Then - i = i + 1 - Log " Calling msiexec.exe to remove " & Product - sCmd = "msiexec.exe /x" & Product & sMsiProp - If fQuiet AND NOT fBasic Then - sCmd = sCmd & " /q" - Else - sCmd = sCmd & " /qb-" - End If - sCmd = sCmd & " /l*v+ "&chr(34)&sLogDir&"\Uninstall_"&Product&".log"&chr(34) - If NOT fDetectOnly Then - ' end other instances of setup - EndCurrentInstalls - - 'Execute the uninstall - LogOnly " - Calling msiexec with '"&sCmd&"'" - sReturn = oWShell.Run(sCmd, 0, True) - Log " - msiexec returned: " & SetupRetVal(sReturn) & " (" & sReturn & ")" & vbCrLf - fRebootRequired = fRebootRequired OR (sReturn = "3010") OR (sReturn = "1618") - Else - Log " -> Removal suppressed in preview mode." - LogOnly " -> Command: "&sCmd - End If - End If 'InScope - Next 'Product - If i = 0 Then Log " Nothing to remove for msiexec" -End Sub 'MsiexecRemoval -'======================================================================================================= - -'Remove the OSE (Office Source Engine) service -Sub RemoveOSE - On Error Resume Next - Log vbCrLf & "OSE CleanUp" - DeleteService "ose" - 'Delete the folder - DeleteFolder sCommonProgramFiles & "\Microsoft Shared\Source Engine" - 'Delete the registration - RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\ose\" -End Sub 'RemoveOSE -'======================================================================================================= - - -'File cleanup operations for the Local Installation Source (MSOCache) -Sub WipeLIS - Const LISROOT = "MSOCache\All Users\" - Dim LogicalDisks, Disk, Folder, SubFolder, MseFolder, File, Files - Dim arrSubFolders - Dim sFolder - Dim fRemoveFolder - - Log vbCrLf & "LIS CleanUp" - 'Search all hard disks - Set LogicalDisks = oWmiLocal.ExecQuery("Select * From Win32_LogicalDisk WHERE DriveType=3") - For Each Disk in LogicalDisks - If oFso.FolderExists(Disk.DeviceID & "\" & LISROOT) Then - Set Folder = oFso.GetFolder(Disk.DeviceID & "\" & LISROOT) - For Each Subfolder in Folder.Subfolders - If Len(Subfolder) > 37 Then - If fRemoveAll Then - If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) OR _ - LCase(Right(Subfolder.Name,7)) = OVERSIONMAJOR &".data" Then DeleteFolder Subfolder.Path - Else - If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) AND _ - CheckDelete(UCase(Left(Subfolder.Name,38))) AND _ - UCase(Right(Subfolder,1))= UCase(Left(Disk.DeviceID,1))Then DeleteFolder Subfolder.Path - End If - End If 'Len > 37 - Next 'Subfolder - If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then - sFolder = Folder.Path - Set Folder = Nothing - SmartDeleteFolder sFolder - End If - End If 'oFso.FolderExists - Next 'Disk - - 'MSECache - If EnumFolders(sProgramFiles,arrSubFolders) Then - For Each SubFolder in arrSubFolders - If UCase(Right(SubFolder,9))="\MSECACHE" Then - ReDim arrMseFolders(-1) - Set Folder = oFso.GetFolder(SubFolder) - GetMseFolderStructure Folder - For Each MseFolder in arrMseFolders - If oFso.FolderExists(MseFolder) Then - fRemoveFolder = False - Set Folder = oFso.GetFolder(MseFolder) - Set Files = Folder.Files - For Each File in Files - If (LCase(Right(File.Name,4))=".msi") Then - If CheckDelete(ProductCode(File.Path)) Then - fRemoveFolder = True - Exit For - End If 'CheckDelete - End If - Next 'File - Set Files = Nothing - Set Folder = Nothing - If fRemoveFolder Then SmartDeleteFolder MseFolder - End If 'oFso.FolderExists(MseFolder) - Next 'MseFolder - End If - Next 'SubFolder - End If 'oFso.FolderExists -End Sub 'WipeLis -'======================================================================================================= - -'Wipe files and folders as documented in KB 928218 -Sub FileWipeAll - Dim sFolder - Dim Folder, Subfolder - - If fForce OR fQuiet OR fPassive Then CloseOfficeApps - - 'Handle other services. - Select Case OVERSIONMAJOR - Case "11" - Case "12" - Case "14" - DeleteService "odserv" - DeleteService "Microsoft Office Groove Audit Service" - DeleteService "Microsoft SharePoint Workspace Audit Service" - Case "15" - Case Else - End Select - - 'User specific files - If NOT fKeepUser Then - 'Delete files that should be backed up before deleting them - CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normal.dotm" - CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normalemail.dotm" - sFolder = sAppdata & "\microsoft\document building blocks" - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - For Each Subfolder In Folder.Subfolders - If oFso.FileExists(Subfolder & "\blocks.dotx") Then CopyAndDeleteFile Subfolder & "\blocks.dotx" - Next 'Subfolder - Set Folder = Nothing - End If 'oFso.FolderExists(sFolder) - End If - - 'Run the individual filewipe from component detection first - FileWipeIndividual - If fC2rInstalled AND NOT fForce Then Exit Sub - - 'Take care of the rest - DeleteFolder sOInstallRoot - DeleteFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF - DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" - DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" - DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" - DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" - If (fRemoveOspp OR fForce) AND CInt(OVERSIONMAJOR) > 12 Then - If CInt(OVERSIONMAJOR) = 15 Then CleanOSPP - DeleteService "osppsvc" - DeleteFolder sCommonProgramFiles & "\Microsoft Shared\OfficeSoftwareProtectionPlatform" - DeleteFolder sAllUsersProfile & "\Microsoft\OfficeSoftwareProtectionPlatform" - End If - Select Case OVERSIONMAJOR - Case "12" - Case "14" - DeleteFile oWShell.SpecialFolders("AllUsersStartup")&"\OfficeSAS.lnk" - DeleteFile oWShell.SpecialFolders("Startup")&"\OneNote 2010 Screen Clipper and Launcher.lnk" - Case "15" - Case Else - End Select - DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF - DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" - DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" & OREF - DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" - -End Sub 'FileWipeAll -'======================================================================================================= - -'Wipe individual files & folders related to SKU's that are no longer installed -Sub FileWipeIndividual - Dim LogicalDisks, Disk,sc - Dim File, Files, XmlFile, scFiles, oFile, Folder, SubFolder, Processes, Process, item - Dim sFile, sFolder, sPath, sConfigName, sContents, sProductCode, sLocalDrives,sScQuery - Dim sValue, sScRoots - Dim arrSubfolders, arrShortCutRoots - Dim fKeepFolder, fDeleteSC - Dim iRet,iCnt,iPos - - Log vbCrLf & "File CleanUp" - If IsArray(arrDeleteFiles) Then - If fForce OR fQuiet Then - Log " Doing Action: StopOSE" - iRet = StopService("ose") - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like 'ose%.exe'") - For Each Process in Processes - LogOnly " - Running process : " & Process.Name - Log " -> Ending process: " & Process.Name - iRet = Process.Terminate() - Next 'Process - LogOnly " End Action: StopOSE" - CloseOfficeApps - End If - 'Wipe individual files detected earlier - LogOnly " Removing left behind files" - For Each sFile in arrDeleteFiles - If oFso.FileExists(sFile) Then DeleteFile sFile - Next 'File - End If 'IsArray - - 'Wipe Catalyst in commonfiles - sFolder = sCommonProgramFiles & "\microsoft shared\"&OREF&"\Office Setup Controller\" - If EnumFolderNames(sFolder,arrSubFolders) Then - For Each SubFolder in arrSubFolders - sPath = sFolder & SubFolder - If InStr(SubFolder, ".") > 0 Then sConfigName = UCase(Left(SubFolder, InStr(SubFolder, ".") - 1)) Else sConfigName = UCase(Subfolder) - If GetFolderPath(sPath) Then - Set Folder = oFso.GetFolder(sPath) - Set Files = Folder.Files - fKeepFolder = False - For Each File In Files - If Len(File.Name)>3 Then - If (LCase(Right(File.Name,4))=".xml") Then - If Len(File.Name) >= Len(sConfigName) Then - If (UCase(Left(File.Name,Len(sConfigName)))=sConfigName) Then - Set XmlFile = oFso.OpenTextFile(File,1) - sContents = XmlFile.ReadAll - Set XmlFile = Nothing - sProductCode = "" - On Error Resume Next - sProductCode = Mid(sContents,InStr(sContents,"ProductCode=")+Len("ProductCode=")+1,38) - On Error Goto 0 - If Len(sProductCode) = 38 Then - If CheckDelete(sProductCode) Then DeleteFile File.Path Else fKeepFolder = True - End If - End If 'sConfigName - End If 'Len >= - End If '.xml - End If 'Len(File.Name)>3 - Next 'File - Set Files = Nothing - Set Folder = Nothing - If Not fKeepFolder Then DeleteFolder sPath - End If 'GetFolderPath - Next 'SubFolder - End If 'EnumFolderNames - - 'Wipe Shortcuts - If NOT fSkipSD Then - On Error Resume Next - Log " Searching for shortcuts" - CleanShortcuts sAllUsersProfile, True, False - CleanShortcuts sProfilesDirectory, True, False - On Error Goto 0 - End If 'NOT SkipSD - Err.Clear - -End Sub 'FileWipeIndividual -'======================================================================================================= - -'------------------------------------------------------------------------------- -' CleanShortcuts -' -' Recursively search all profile folders for Office shortcuts in scope -'------------------------------------------------------------------------------- -Sub CleanShortcuts (sFolder, fDelete, fUnPin) - Dim oFolder, fld, file, sc, item - Dim fDeleteSC - - Set oFolder = oFso.GetFolder(sFolder) - ' exclude system protected link folders - If CBool(oFolder.Attributes AND 1024) Then Exit Sub - - On Error Resume Next - For Each fld In oFolder.SubFolders - If Err <> 0 Then - CheckError "CleanShortcuts: " & vbTab & sFolder - Else - CleanShortcuts fld.Path, fDelete, fUnPin - End If - Next - For Each file In oFolder.Files - If LCase(Right(file.Path, 4)) = ".lnk" Then - fDeleteSC = False - LogOnly " check file: " & file.Path - set sc = oWShell.CreateShortcut(file.Path) - If Err <> 0 Then - CheckError "CleanShortcutsSC: " & vbTab & sFolder - Else - 'Compare if the shortcut target is in the list of executables that will be removed - 'LogOnly " - SC.TargetPath: " & sc.TargetPath - If Len(sc.TargetPath) > 0 Then - If InStr(sc.TargetPath,"{{") > 0 Then - 'Handle Windows Installer shortcuts - If Len(sc.TargetPath) >= InStr(sc.TargetPath,"{{") + 37 Then - If CheckDelete(Mid(sc.TargetPath, InStr(sc.TargetPath,"{{"), 38)) Then fDeleteSC = True - End If - Else - 'Handle regular shortcuts - If NOT fBypass_Stage1 Then - ' Compare against results from component scan - For Each item in dicApps.Items - If LCase(sc.TargetPath) = item Then - LogOnly " - removing shortcut per match from component detection: " & file.Path - fDeleteSC = True - Exit For - End If - Next 'item - Else - End If - If NOT oFso.FileExists(sc.TargetPath) Then - ' Shortcut target does not exist - If InStr (sc.TargetPath, OREF) > 0 Then - LogOnly " - removing Office shortcut with non-existent target: " & file.Path & " - " & sc.TargetPath - fDeleteSC = True - Else - 'LogOnly " - keep orphaned SC as target is not in scope: " & sc.TargetPath - End If - Else - 'LogOnly " - keep SC as shortcut target does still exist: " & sc.TargetPath - End If - End If - End If - End If - If fDeleteSC Then - If Not IsArray(arrDeleteFolders) Then ReDim arrDeleteFolders(0) - sFolder = file.Drive & file.Path - If Not arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder Then - ReDim Preserve arrDeleteFolders(UBound(arrDeleteFolders) + 1) - arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder - End If - If fUnPin Then UnPin file - If fDelete Then - If fBypass_Stage1 Then UnPin file - DeleteFile file.Path - End If - fDeleteSC = False - End If 'fDeleteSC - End If - Next - On Error Goto 0 -End Sub 'CleanShortcuts - -'------------------------------------------------------------------------------- -' UnPin -' -' Unpins a shortcut from the taskbar or start menu -'------------------------------------------------------------------------------- -Sub UnPin(file) - Dim fldItem, verb - - On Error Resume Next - Set fldItem = oShellApp.NameSpace(file.ParentFolder.Path).ParseName(file.Name) - For Each verb in fldItem.Verbs - Select Case Replace(verb, "&", "") - Case "Unpin from Taskbar", "Von Taskleiste lösen", "Détacher du barre des tâches", "Détacher de la barre des tâches", "Desanclar de la barra de tareas", "Ta bort från Aktivitetsfältet", "??? ????????(K)", "?? ????? ??(K)", "????????? ?? ?????? ?????" - verb.DoIt - Case "Unpin from Start Menu", "Vom Startmenü lösen", "Détacher du menu Démarrer", "Détacher de la menu Démarrer" - If iVersionNT = 601 Then verb.DoIt - End Select - Next - On Error Goto 0 -End Sub - - -'======================================================================================================= - -Sub DelScrubTmp - - On Error Resume Next - If oFso.FolderExists(sScrubDir & "\ScrubTmp") Then oFso.DeleteFolder sScrubDir & "\ScrubTmp",True - -End Sub 'DelScrubTmp -'======================================================================================================= - -'Ensure there are no unexpected .msi files in the scrub folder -Sub DeleteMsiScrubCache - Dim Folder, File, Files - - Log vbCrLf & "ScrubCache CleanUp" - Set Folder = oFso.GetFolder(sScrubDir) : CheckError "DeleteMsiScrubCache" - Set Files = Folder.Files - For Each File in Files - CheckError "DeleteMsiScrubCache" - If LCase(Right(File.Name,4))=".msi" Then - CheckError "DeleteMsiScrubCache" - DeleteFile File.Path : CheckError "DeleteMsiScrubCache" - End If - Next 'File -End Sub 'DeleteMsiScrubCache -'======================================================================================================= - -Sub MsiClearOrphanedFiles - Const USERSIDEVERYONE = "s-1-1-0" - Const MSIINSTALLCONTEXT_ALL = 7 - Const MSIPATCHSTATE_ALL = 15 - - 'Error handling inlined - On Error Resume Next - - Dim Patch, AllPatches, Product, AllProducts - Dim File, Files, Folder - Dim sFName, sLocalMsp, sLocalMsi, sPatchList, sMsiList - - Set Folder = oFso.GetFolder(sWinDir & "\Installer") - Set Files = Folder.Files - - Log vbCrLf & "Windows Installer cache CleanUp" - 'Get a complete list of patches - Err.Clear - Set AllPatches = oMsi.PatchesEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL,MSIPATCHSTATE_ALL) - If Err <> 0 Then - CheckError "MsiClearOrphanedFiles (msp)" - Else - 'Fill a comma separated stringlist with all .msp patchfiles - For Each Patch in AllPatches - sLocalMsp = "" : sLocalMsp = LCase(Patch.Patchproperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msp)" - sPatchList = sPatchList & sLocalMsp & "," - Next 'Patch - - 'Delete all non referenced .msp files from %windir%\installer - For Each File in Files - sFName = "" : sFName = LCase(File.Path) - If LCase(Right(sFName,4)) = ".msp" Then - If Not InStr(sPatchList,sFName) > 0 Then - 'While this is an orphaned file keep the scope of Office only - If InStr(UCase(MspTargets(File.Path)),OFFICEID)>0 Then DeleteFile File.Path - End If - End If 'LCase(Right(sFName,4)) - Next 'File - End If 'Err=0 - - 'Get a complete list products - Err.Clear - Set AllProducts = oMsi.ProductsEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL) - If Err <> 0 Then - CheckError "MsiClearOrphanedFiles (msi)" - Else - 'Fill a comma separated stringlist with all .msi files - For Each Product in AllProducts - sLocalMsi = "" : sLocalMsi = LCase(Product.InstallProperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msi)" - sMsiList = sMsiList & sLocalMsi & "," - Next 'Product - - 'Delete all non referenced .msi files from %windir%\installer - For Each File in Files - sFName = "" : sFName = LCase(File.Path) - If LCase(Right(sFName,4)) = ".msi" Then - If Not InStr(sMsiList,sFName) > 0 Then - 'While this is an orphaned file keep the scope of Office only - If UCase(Right(ProductCode(File.Path),PRODLEN))=OFFICEID Then DeleteFile File.Path - End If - End If 'LCase(Right(sFName,4)) = ".msi" - Next 'File - End If 'Err=0 - -End Sub 'MsiClearOrphanedFiles -'======================================================================================================= - -Sub RegWipe - Dim Item, Name, Sku, key - Dim hDefKey, sSubKeyName, sCurKey, value, sValue, sGuid - Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion - Dim arrKeys, arrNames, arrTypes, arrMultiSzValues, arrMultiSzNewValues - Dim arrTestNames, arrTestTypes - Dim i, iLoopCnt, iPos - Dim fDelReg - - Log vbCrLf & "Registry CleanUp" - 'Wipe registry data - - 'User Profile settings - Log " - User Policies" - RegDeleteKey HKCU,"Software\Policies\Microsoft\Office\" & OVERSION & "\" - If NOT fKeepUser Then - RegDeleteKey HKCU,"Software\Microsoft\Office\" & OVERSION & "\" - Log " - User Settings" - End If 'fKeepUser - - 'Computer specific settings - If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then - Log " - Machine Settings" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\" & OVERSION & "\" - If fRemoveOse OR fForce Then - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office Test\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","LastAccessInstall", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","MID", False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Excel\Addins\Microsoft.PerformancePoint.Planning.Client.Excel\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerExcelImport\Versions\",OVERSION, False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerWordImport\Versions\",OVERSION, False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Outlook\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\MEWord12\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word12\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word97\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\MEWord12\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word12\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word97\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","GrooveMonitor", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","LobiServer", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","BCSSync", False - RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\Outlook\" - End If - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Office\" & OVERSION & "\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" - - Select Case OVERSIONMAJOR - Case "11" - 'Jet_Replication - sValue = "" - If RegReadValue(HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32","SystemDB",sValue,"REG_SZ") Then - If Len(sValue) > Len(sOInstallRoot) Then - If LCase(Left(sValue,Len(sOInstallRoot))) = LCase(sOInstallRoot) Then RegDeleteKey HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32\" - End If - End If - Case "12" - Case "14" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform_Test\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Common\ActiveX Compatibility\{{00024512-0000-0000-C000-000000000046}\" - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\OneNote\Adapters\","{{456B0D0E-49DD-4C95-8DB6-175F54DE69A3}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{42042206-2D85-11D3-8CFF-005004838597}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{993BE281-6695-4BA5-8A2A-7AACBFAAB69E}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{0006F045-0000-0000-C000-000000000046}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{C41662BB-1FA0-4CE0-8DC5-9B7F8279FF97}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{7CCA70DB-DE7A-4FB7-9B2B-52E2335A3B5A}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{506F4668-F13E-4AA1-BB04-B43203AB3CC0}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{D66DC78C-4F61-447F-942B-3FB6980118CF}", False - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{B4F3A835-0E21-4959-BA22-42B3008E02FF}\" - 'Groove Extensions - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{99FD978C-D287-4F50-827F-B2C658EDA8E7}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{AB5C5600-7E6E-4B06-9197-9ECEF74D31CC}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{920E6DB1-9907-4370-B3A0-BAFC03D81399}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{16F3DD56-1AF5-4347-846D-7C10C4192619}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2916C86E-86A6-43FE-8112-43ABE6BF8DCC}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{6C467336-8281-4E60-8204-430CED96822D}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2A541AE1-5BF6-4665-A8A3-CFA9672E4291}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{A449600E-1DC6-4232-B948-9BD794D62056}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{3D60EDA7-9AB4-4DA8-864C-D9B5F2E7281D}", False - RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{387E725D-DC16-4D76-B310-2C93ED4752A0}", False - RegDeleteKey HKLM,"SOFTWARE\Classes\*\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Classes\Folder\ShellEx\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\Background\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 1 (GFS Unread Stub)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2 (GFS Stub)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2.5 (GFS Unread Folder)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 3 (GFS Folder)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 4 (GFS Unread Mark)\" - RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}\" - - Case 15 - - Case Else - End Select - - 'Win32Assemblies - Log " - Win32Assemblies" - If RegEnumKey(HKCR,"Installer\Win32Assemblies\",arrKeys) Then - For Each Item in arrKeys - If InStr(UCase(Item),OREF)>0 Then RegDeleteKey HKCR,"Installer\Win32Assemblies\"&Item & "\" - Next 'Item - End If 'RegEnumKey - 'Groove blocks reinstall if it locates groove.exe over this key - If RegKeyExists(HKCR,"GrooveFile\Shell\Open\Command\") Then - sValue = "" - RegReadValue HKCR,"GrooveFile\Shell\Open\Command\","",sValue,"REG_SZ" - If InStr(sValue,"\"&OREF&"\")>0 Then RegDeleteKey HKCR,"GrooveFile\" - End If 'RegKeyExists - End If 'fRemoveAll - - Select Case OVERSIONMAJOR - Case "11" - For iLoopCnt = 1 to 3 - Select Case iLoopCnt - Case 1 - 'CIW - HKCU - sSubKeyName = "Software\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" - hDefKey = HKCU - Case 2 - 'CIW - HKLM - sSubKeyName = "SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" - hDefKey = HKLM - Case 3 - 'Add/Remove Programs - sSubKeyName = REG_ARP - hDefKey = HKLM - End Select - - If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - 'OFFICEID id - If Len(Item)>37 Then - sGuid = UCase(Left(Item,38)) - If Right(sGuid,PRODLEN)=OFFICEID Then - If CheckDelete(sGuid) Then - RegDeleteKey hDefKey, sSubKeyName & Item & "\" - End If - End If 'Right(Item,PRODLEN)=OFFICEID - End If 'Len(Item)>37 - Next 'Item - If iLoopCnt < 3 Then - If RegEnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) Then - i = 0 - For Each Name in arrNames - If RegReadValue(hDefKey,sSubKeyName,Name,sValue,arrTypes(i)) Then - If sValue = sGuid Then RegDeleteValue hDefKey,sSubKeyName,Name, False - End If - i = i + 1 - Next - End If - End If - End If - If NOT RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\" - If NOT RegEnumKey(hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\",arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\" - Next 'iLoopCnt - Case "12" - 'Add/Remove Programs - RegWipeARP - Case "14" - 'Add/Remove Programs - RegWipeARP - Case Else - End Select - - 'UpgradeCodes, WI config, WI global config - For iLoopCnt = 1 to 5 - Select Case iLoopCnt - Case 1 - Log " - HKLM UpgradeCodes" - sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\" - hDefKey = HKLM - Case 2 - Log " - HKCR UpgradeCodes" - sSubKeyName = "Installer\UpgradeCodes\" - hDefKey = HKCR - Case 3 - Log " - HKLM Products" - sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" - hDefKey = HKLM - Case 4 - Log " - HKCR Features" - sSubKeyName = "Installer\Features\" - hDefKey = HKCR - Case 5 - Log " - HKCR Products" - sSubKeyName = "Installer\Products\" - hDefKey = HKCR - Case Else - sSubKeyName = "" - hDefKey = "" - End Select - If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - 'Ensure we have the expected length for a compressed GUID - If Len(Item)=32 Then - 'Expand the GUID - sGuid = GetExpandedGuid(Item) - 'Check if it's an Office key - If CheckDeleteEx (sGuid) Then - RegDeleteKey hDefKey,sSubKeyName & Item & "\" - Else - If iLoopCnt < 3 Then - 'Enum all entries - RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes - If IsArray(arrNames) Then - 'Delete entries within removal scope - For Each Name in arrNames - If Len(Name)=32 Then - sGuid = GetExpandedGuid(Name) - If CheckDelete(sGuid) Then RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True - Else - 'Invalid data -> delete the value - RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True - End If - Next 'Name - End If 'IsArray(arrNames) - 'If all entries were removed - delete the key - RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes - If Not IsArray(arrNames) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" - Else 'iLoopCnt >= 3 - If CheckDelete(sGuid) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" - End If 'iLoopCnt < 3 - End If 'fRemoveAll - End If 'Len(Item)=32 - Next 'Item - End If 'RegEnumKey - Next 'iLoopCnt - - 'Components - Log " - Global Components" - sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\" - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - 'Ensure we have the expected length for a compressed GUID - If Len(Item)=32 Then - If RegEnumValues(HKLM,sSubKeyName & Item,arrNames,arrTypes) Then - If IsArray(arrNames) Then - For Each Name in arrNames - If Len(Name)=32 Then - sGuid = GetExpandedGuid(Name) - If CheckDelete(sGuid) Then - RegDeleteValue HKLM, sSubKeyName & Item & "\", Name, False - 'Check if the key is now empty - If NOT RegEnumValues(HKLM,sSubKeyName & Item,arrTestNames,arrTestTypes) Then - If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR - End If - End If - End If '32 - Next 'Name - End If 'IsArray - End If 'RegEnumValues - End If '32 - Next 'Item - End If 'RegEnumKey - - 'Published Components - Log " - Published Components" - sSubKeyName = "Installer\Components\" - If RegEnumKey(HKCR,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - 'Ensure we have the expected length for a compressed GUID - If Len(Item)=32 Then - If RegEnumValues(HKCR,sSubKeyName & Item,arrNames,arrTypes) Then - If IsArray(arrNames) Then - For Each Name in arrNames - If RegReadValue (HKCR,sSubKeyName & Item, Name, sValue,"REG_MULTI_SZ") Then - arrMultiSzValues = Split(sValue,chr(34)) - If IsArray(arrMultiSzValues) Then - i = -1 - ReDim arrMultiSzNewValues(-1) - fDelReg = False - For Each value in arrMultiSzValues - If Len(value) > 19 Then - sGuid = "" - If GetDecodedGuid(Left(value,SQUISHED),sGuid) Then - If CheckDelete(sGuid) Then - fDelReg = True - Else - i = i + 1 - ReDim Preserve arrMultiSzNewValues(i) - arrMultiSzNewValues(i) = value - End If 'CheckDelete - End If 'decode - End If '19 - Next 'Value - If NOT (i = -1) Then - If NOT fDetectOnly Then - If NOT UBound(arrMultiSzValues) = i Then oReg.SetMultiStringValue HKCR,sSubKeyName & Item,Name,arrMultiSzNewValues - End If - Else - If fDelReg Then - RegDeleteValue HKCR,sSubKeyName & Item & "\", Name, False - 'Check if the key is now empty - If NOT RegEnumValues(HKCR,sSubKeyName & Item,arrTestNames,arrTestTypes) Then - If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR - End If - End If 'DelReg - End If - End If 'IsArray - End If - Next 'Name - End If 'IsArray - End If 'RegEnumValues - End If '32 - Next 'Item - End If 'RegEnumKey - - 'Delivery - Log " - Delivery" - hDefKey = HKLM - sSubKeyName = "SOFTWARE\Microsoft\Office\Delivery\SourceEngine\Downloads\" - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - If Len(Item) > 37 Then - If fRemoveAll Then - If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) OR _ - LCase(Right(Item,7))=OVERSIONMAJOR&".data" Then RegDeleteKey HKLM,sSubKeyName & Item & "\" - Else - If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) AND _ - CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" - End If - End If '37 - Next 'Item - End If 'RegEnumKey - - 'Registration - Log " - HKLM Registration" - hDefKey = HKLM - sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\Registration\" - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - If Len(Item)>37 Then - If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" - End If - Next 'Item - End If 'RegEnumKey - - 'User Preconfigurations - Log " - HKLM User Preconfigurations" - hDefKey = HKLM - sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\User Settings\" - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - If Len(Item)>37 Then - If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" - End If - Next 'Item - End If 'RegEnumKey - - 'Known Keypath settings - Log " - Detcted KeyPath settings" - For Each key in dicDelRegKey.Keys - If Right(key,1) = "\" Then - RegDeleteKey dicDelRegKey.Item(key),key - Else - iPos = InStrRev(Key,"\") - If iPos > 0 Then RegDeleteValue dicDelRegKey.Item(key), Left(key,iPos - 1), Mid(key,iPos+1), False - End If - Next - - 'Temporary entries in ARP - TmpKeyCleanUp -End Sub 'RegWipe -'======================================================================================================= - -'Clean up Add/Remove Programs registry -Sub RegWipeARP - - Dim Item, Name, Sku, key - Dim sSubKeyName, sCurKey, sValue, sGuid - Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion - Dim arrKeys - - 'Add/Remove Programs - sSubKeyName = REG_ARP - If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then - For Each Item in arrKeys - '*0FF1CE* - If Len(Item)>37 Then - sGuid = UCase(Left(Item,38)) - If CheckDeleteEx(sGuid) Then RegDeleteKey HKLM, sSubKeyName & Item - End If 'Len(Item)>37 - - 'Config entries - sCurKey = sSubKeyName & Item & "\" - fSystemComponent0 = Not (RegReadValue(HKLM,sCurKey,"SystemComponent",sValue,"REG_DWORD") AND (sValue = "1")) - fPackages = RegReadValue(HKLM,sCurKey,OPACKAGE,sValue,"REG_MULTI_SZ") - fDisplayVersion = RegReadValue(HKLM,sCurKey,"DisplayVersion",sValue,"REG_SZ") - If fDisplayVersion AND Len(sValue) > 1 Then - fDisplayVersion = (Left(sValue,2) = OVERSIONMAJOR) - End If - If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then - fKeep = False - If Not fRemoveAll Then - For Each Sku in dictionaryKeepSku.Keys - If UCase(Item) = OREGREF & Sku Then - fkeep = True - Exit For - End If - Next 'Sku - End If - If Not fkeep Then RegDeleteKey HKLM, sSubKeyName & Item - End If - Next 'Item - End If 'RegEnumKey - -End Sub 'RegWipeARP -'======================================================================================================= - -'Clean up temporary registry keys -Sub TmpKeyCleanUp - Dim TmpKey - - If fLogInitialized Then Log " - temporary OffScrub registry entries" - If IsArray(arrTmpSKUs) Then - For Each TmpKey in arrTmpSKUs - oReg.DeleteKey HKLM, REG_ARP & TmpKey - Next 'Item - End If 'IsArray -End Sub 'TmpKeyCleanUp - -'======================================================================================================= -' Helper Functions -'======================================================================================================= - -'Create a log with the results of the SKU detection -Sub LogSkuResults - Dim SkuLog, SkuKey , p - - On Error Resume Next 'Don't fail on logging - - Set SkuLog = oFso.OpenTextFile(sScrubDir & "\SkuLog.txt",FOR_WRITING,True,True) - - SkuLog.WriteLine "Installed SKUs (All):" - SkuLog.WriteLine "=====================" - For Each SkuKey in dicInstalledSku.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Server SKUs:" - SkuLog.WriteLine "============" - For Each SkuKey in dicSrv.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Client Suite SKUs:" - SkuLog.WriteLine "==================" - For Each SkuKey in dicCSuite.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Client Standalone SKUs:" - SkuLog.WriteLine "=======================" - For Each SkuKey in dicCSingle.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Installed Products (All):" - SkuLog.WriteLine "=========================" - For Each p in oMsi.Products - If InScope(p) Then - SkuLog.Write " - " & p & " - " - SkuLog.Write oMsi.ProductInfo(p, "ProductName") - SkuLog.WriteLine " " - End If - Next 'Product - - SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf - - SkuLog.WriteLine vbCrLf & "SKUs to keep:" - SkuLog.WriteLine "=============" - For Each SkuKey in dictionaryKeepSku.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Products to keep:" - SkuLog.WriteLine "=================" - For Each p in dictionaryKeepProd.Keys - SkuLog.Write " - " & p & " - " - SkuLog.Write oMsi.ProductInfo(p, "ProductName") - SkuLog.WriteLine " " - Next 'Key - - SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf - - SkuLog.WriteLine vbCrLf & "SKUs to remove:" - SkuLog.WriteLine "===============" - For Each SkuKey in dicRemoveSku.Keys - SkuLog.WriteLine " - " & SkuKey - Next 'Key - - SkuLog.WriteLine vbCrLf & "Products to remove:" - SkuLog.WriteLine "===================" - For Each p in oMsi.Products - If CheckDeleteEx(p) Then - SkuLog.Write " - " & p & " - " - SkuLog.Write oMsi.ProductInfo(p, "ProductName") - SkuLog.WriteLine " " - End If 'InScope - Next 'Product - - SkuLog.Close - Set SkuLog = Nothing - -End Sub 'LogSkuResults -'======================================================================================================= - -'End all running instances of applications that will be removed -Sub CloseOfficeApps - Dim Processes, Process, prop - Dim fWait - Dim iRet - - On Error Resume Next - - fWait = False - Log " Doing Action: CloseOfficeApps" - - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process") - For Each Process in Processes - If dicApps.Exists(LCase(Process.Name)) Then - Log " - End process " & Process.Name - iRet = Process.Terminate() - CheckError "CloseOfficeApps: " & "Process.Name" - Else - For Each prop in Process.Properties_ - If prop.Name = "ExecutablePath" Then - If InStr(UCase(prop.Value), UCase(sOInstallRoot)) > 0 Then - Log " - End process '" & Process.Name - iRet = Process.Terminate() - CheckError "CloseOfficeApps: " & "Process.Name" - fWait = True - End If - End If 'ExcecutablePath - Next 'prop - End If - Next 'Process - If fWait Then - wscript.sleep 10000 - End If - LogOnly " End Action: CloseOfficeApps" -End Sub 'CloseOfficeApps -'======================================================================================================= - -'Ensure Windows Explorer is restarted if needed -Sub RestoreExplorer - Dim Processes, Result, oAT, DateTime, JobID - Dim sCmd - - 'Non critical routine. Don't fail on error - On Error Resume Next - wscript.sleep 1000 - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='explorer.exe'") - If Processes.Count < 1 Then - oWShell.Run "explorer.exe" - 'To handle this in case of System context, schedule and run as interactive task - If iVersionNT > 502 Then - 'Vista and later - oWShell.Run "SCHTASKS /Create /TN OffScrEx /TR explorer /SC ONCE /ST 12:00 /IT",0,True - oWShell.Run "SCHTASKS /Run /TN OffScrEx", 0, True - oWShell.Run "SCHTASKS /Delete /TN OffScrEx /F", 0, False - Else - Set oAT = oWmiLocal.Get("Win32_ScheduledJob") - Set DateTime = CreateObject("WbemScripting.SWbemDateTime") - DateTime.SetVarDate DateAdd("n",1,Now),True - Result = oAT.Create("explorer.exe", DateTime.Value, , , , True, JobID) - End If 'iVersionNT - End If -End Sub 'RestoreExploer -'======================================================================================================= - -'Returns the delimiter for a passed in string -Function Delimiter (sVersion) - - Dim iCnt, iAsc - - Delimiter = " " - For iCnt = 1 To Len(sVersion) - iAsc = Asc(Mid(sVersion, iCnt, 1)) - If Not (iASC >= 48 And iASC <= 57) Then - Delimiter = Mid(sVersion, iCnt, 1) - Exit Function - End If - Next 'iCnt -End Function -'======================================================================================================= - -'Check registry access permissions. Failure will terminate the script -Function CheckRegPermissions - Const KEY_QUERY_VALUE = &H0001 - Const KEY_SET_VALUE = &H0002 - Const KEY_CREATE_SUB_KEY = &H0004 - Const DELETE = &H00010000 - - Dim sSubKeyName - Dim fReturn - - CheckRegPermissions = True - sSubKeyName = "Software\Microsoft\Windows\" - oReg.CheckAccess HKLM, sSubKeyName, KEY_QUERY_VALUE, fReturn - If Not fReturn Then CheckRegPermissions = False - oReg.CheckAccess HKLM, sSubKeyName, KEY_SET_VALUE, fReturn - If Not fReturn Then CheckRegPermissions = False - oReg.CheckAccess HKLM, sSubKeyName, KEY_CREATE_SUB_KEY, fReturn - If Not fReturn Then CheckRegPermissions = False - oReg.CheckAccess HKLM, sSubKeyName, DELETE, fReturn - If Not fReturn Then CheckRegPermissions = False - -End Function 'CheckRegPermissions -'======================================================================================================= - -'Check if a product will be removed -Function CheckDeleteEx (sProductCode) - - CheckDeleteEx = False - If CheckDelete (sProductCode) Then - CheckDeleteEx = True - Exit Function - End If - If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then - CheckDeleteEx = InScope(sProductCode) AND NOT dictionaryKeepProd.Exists(UCase(sProductCode)) - End If -End Function 'CheckDelete -'======================================================================================================= - -'Check if an Office product is still registered with a SKU that stays on the computer -Function CheckDelete (sProductCode) - - 'Ensure valid GUID length - If NOT Len(sProductCode) = 38 Then - CheckDelete = False - Exit Function - End If - - 'If it's a non Office ProductCode exit with false right away - CheckDelete = InScope(sProductCode) - If Not CheckDelete Then Exit Function - If dictionaryKeepProd.Exists(UCase(sProductCode)) Then CheckDelete = False - -End Function 'CheckDelete -'======================================================================================================= - -'Check if ProductCode is in scope -Function InScope(sProductCode) - - Dim fInScope - Dim sProd - - fInScope = False - If Len(sProductCode) = 38 Then - sProd = UCase(sProductCode) - Select Case OVERSIONMAJOR - Case "11" - If Right(sProd,PRODLEN)=OFFICEID Then fInScope = True - Case "12" - If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True - Case "14" - If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True - Case "15" - If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then - Select Case Mid(sProd, 11, 4) - Case "007E", "008F", "008C", "24E1", "237A" - ' C2R products - keep them - Case Else - fInScope = True - End Select - End If - Case Else - End Select - End If '38 - - InScope = fInScope -End Function 'InScope -'======================================================================================================= - -'Register an orphaned .msi product as installed for MSI -Sub MsiRegisterProduct (sMsiFile) - - Dim sDisplayVersion, sCurKey, sDisplayName, sLang, sProductCode, sTmpKey - Dim iCnt - - 'Create a temporary keys to simulate an installed product - sProductCode = "" - sProductCode = GetMsiProductCode(sMsiFile) - sDisplayVersion = GetMsiProductVersion(sMsiFile) - If sDisplayVersion = "" Then sDisplayVersion = OVERSION & ".0000.0000" - sDisplayName = GetMsiProductName(sMsiFile) - If sDisplayName = "" Then sDisplayName = sProductCode - Select Case OVERSIONMAJOR - Case "9","10","11" - sLang = CInt("&h" & Mid(sProductCode,6,4)) - Case "12","14" - sLang = CInt("&h" & Mid(sProductCode,16,4)) - Case Else - End Select - - For iCnt = 1 To 3 - Select Case iCnt - Case 1 - sCurKey = REG_ARP & sProductCode - oReg.CreateKey HKLM,sCurKey - Case 2 - sCurKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & GetCompressedGuid(sProductCode) - oReg.CreateKey HKLM,sCurKey - oReg.CreateKey HKLM,sCurKey & "\Features" - oReg.CreateKey HKLM,sCurKey & "\InstallProperties" - oReg.CreateKey HKLM,sCurKey & "\Patches" - oReg.CreateKey HKLM,sCurKey & "\Usage" - sCurKey = sCurKey & "\InstallProperties" - oReg.SetStringValue HKLM,sCurKey,"LocalPackage",sMsiFile - Case 3 - sCurKey = "Installer\Products\" & GetCompressedGuid(sProductCode) - sTmpKey = sCurKey - oReg.CreateKey HKCR,sCurKey - oReg.SetDWordValue HKCR,sCurKey,"AdvertiseFlags",388 - oReg.SetDWordValue HKCR,sCurKey,"Assignment",1 - oReg.SetDWordValue HKCR,sCurKey,"AuthorizedLUAApp",0 - oReg.SetStringValue HKCR,sCurKey,"Clients",":" - oReg.SetDWordValue HKCR,sCurKey,"DeploymentFlags",3 - oReg.SetDWordValue HKCR,sCurKey,"InstanceType",0 - oReg.SetDWordValue HKCR,sCurKey,"Language",sLang - oReg.SetStringValue HKCR,sCurKey,"PackageCode",GetMsiPackageCode(sMsiFile) - oReg.SetStringValue HKCR,sCurKey,"ProductName",sDisplayName - oReg.SetDWordValue HKCR,sCurKey,"VersionMinor",0 - sCurKey = sTmpKey & "\SourceList" - oReg.CreateKey HKCR,sCurKey - oReg.SetExpandedStringValue HKCR,sCurKey,"LastUsedSource",sScrubDir - oReg.SetStringValue HKCR,sCurKey,"PackageName",Mid(sMsiFile,InstrRev(sMsiFile,"\")+1) - sCurKey = sTmpKey & "\SourceList\Media" - oReg.CreateKey HKCR,sCurKey - oReg.SetStringValue HKCR,sCurKey,"1",OREF & ";1" - oReg.SetStringValue HKCR,sCurKey,"DiskPrompt",sDisplayName - sCurKey = sTmpKey & "\SourceList\Net" - oReg.CreateKey HKCR,sCurKey - oReg.SetExpandedStringValue HKCR,sCurKey,"1",sScrubDir - - Case Else - End Select - If iCnt <3 Then - oReg.SetStringValue HKLM,sCurKey,"Comments","" - oReg.SetStringValue HKLM,sCurKey,"Contact","" - oReg.SetStringValue HKLM,sCurKey,"DisplayName",sDisplayName - oReg.SetStringValue HKLM,sCurKey,"DisplayVersion",sDisplayVersion - oReg.SetDWordValue HKLM,sCurKey,"EstimatedSize",0 - oReg.SetStringValue HKLM,sCurKey,"HelpLink","" - oReg.SetStringValue HKLM,sCurKey,"HelpTelephone","" - oReg.SetStringValue HKLM,sCurKey,"InstallDate","20100101" - If f64 Then - oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFilesX86 - Else - oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFiles - End If - oReg.SetStringValue HKLM,sCurKey,"InstallSource",sScrubDir - oReg.SetDWordValue HKLM,sCurKey,"Language",sLang - oReg.SetExpandedStringValue HKLM,sCurKey,"ModifyPath","MsiExec.exe /X" & sProductCode - oReg.SetDWordValue HKLM,sCurKey,"NoModify",1 - oReg.SetStringValue HKLM,sCurKey,"Publisher","Microsoft Corporation" - oReg.SetStringValue HKLM,sCurKey,"Readme","" - oReg.SetStringValue HKLM,sCurKey,"Size","" - oReg.SetDWordValue HKLM,sCurKey,"SystemComponent",0 - oReg.SetExpandedStringValue HKLM,sCurKey,"UninstallString","MsiExec.exe /X" & sProductCode - oReg.SetStringValue HKLM,sCurKey,"URLInfoAbout","" - oReg.SetStringValue HKLM,sCurKey,"URLUpdateInfo","" - oReg.SetDWordValue HKLM,sCurKey,"Version",0 - oReg.SetDWordValue HKLM,sCurKey,"VersionMajor",OVERSIONMAJOR - oReg.SetDWordValue HKLM,sCurKey,"VersionMinor",0 - oReg.SetDWordValue HKLM,sCurKey,"WindowsInstaller",1 - End If '< 3 - Next 'iCnt - -End Sub 'MsiRegisterProduct -'======================================================================================================= - -'Obtain the ProductCode (GUID) from a .msi package -'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode -Function GetMsiProductCode(sMsiFile) - - Dim MsiDb,Record - Dim qView - - On Error Resume Next - - GetMsiProductCode = "" - Set Record = Nothing - - Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) - Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductCode'") - qView.Execute - Set Record = qView.Fetch - GetMsiProductCode = Record.StringData(1) - qView.Close - -End Function 'GetMsiProductCode -'======================================================================================================= - -'Obtain the ProductVersion from a .msi package -'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode -Function GetMsiProductVersion(sMsiFile) - - Dim MsiDb,Record - Dim qView - - On Error Resume Next - - GetMsiProductVersion = "" - Set Record = Nothing - - Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) - Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductVersion'") - qView.Execute - Set Record = qView.Fetch - GetMsiProductVersion = Record.StringData(1) - qView.Close - -End Function 'GetMsiProductVersion -'======================================================================================================= - -'Obtain the ProductVersion from a .msi package -'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode -Function GetMsiProductName(sMsiFile) - - Dim MsiDb,Record - Dim qView - - On Error Resume Next - - GetMsiProductName = "" - Set Record = Nothing - - Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) - Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductName'") - qView.Execute - Set Record = qView.Fetch - GetMsiProductName = Record.StringData(1) - qView.Close - -End Function 'GetMsiProductVersion -'======================================================================================================= - -'Obtain the PackageCode (GUID) from a .msi package -'The function will the .msi'S SummaryInformation stream -Function GetMsiPackageCode(sMsiFile) - - On Error Resume Next - - Const PID_REVNUMBER = 9 - - GetMsiPackageCode = "" - GetMsiPackageCode = GetCompressedGuid(oMsi.SummaryInformation(sMsiFile,MSIOPENDATABASEREADONLY).Property(PID_REVNUMBER)) - -End Function 'GetMsiPackageCode -'======================================================================================================= - -'Returns a string with a list of ProductCodes from the summary information stream -Function MspTargets (sMspFile) - Const MSIOPENDATABASEMODE_PATCHFILE = 32 - Const PID_TEMPLATE = 7 - - Dim Msp - 'Non critical routine. Don't fail on error - On Error Resume Next - MspTargets = "" - If oFso.FileExists(sMspFile) Then - Set Msp = Msi.OpenDatabase(WScript.Arguments(0),MSIOPENDATABASEMODE_PATCHFILE) - If Err = 0 Then MspTargets = Msp.SummaryInformation.Property(PID_TEMPLATE) - End If 'oFso.FileExists(sMspFile) -End Function 'MspTargets -'======================================================================================================= - -'Return the ProductCode {{GUID} from a .MSI package -Function ProductCode(sMsi) - Const MSIUILEVELNONE = 2 'No UI - Dim MsiSession - - On Error Resume Next - 'Non critical routine. Don't fail on error - If oFso.FileExists(sMsi) Then - oMsi.UILevel = MSIUILEVELNONE - Set MsiSession = oMsi.OpenPackage(sMsi,1) - ProductCode = MsiSession.ProductProperty("ProductCode") - Set MsiSession = Nothing - Else - ProductCode = "" - End If 'oFso.FileExists(sMsi) -End Function 'ProductCode -'======================================================================================================= - -Function GetUpgradeCode(sGuid) - - 'Ensure Valid Length - If NOT Len(sGuid) = 38 Then Exit Function - - GetUpgradeCode = "{{00" & Mid(sGuid, 4, 2) & "0000-" & Mid(sGuid, 11, 4) & "-0000-" & Mid(sGuid, 21, 1) & "000-" & Mid(sGuid, 26, 1) & "000000FF1CE}" - -End Function 'GetUpgradeCode -'======================================================================================================= - -Function GetExpandedGuid (sGuid) - Dim i - - 'Ensure valid length - If NOT Len(sGuid) = 32 Then Exit Function - - GetExpandedGuid = "{{" & StrReverse(Mid(sGuid,1,8)) & "-" & _ - StrReverse(Mid(sGuid,9,4)) & "-" & _ - StrReverse(Mid(sGuid,13,4))& "-" - For i = 17 To 20 - If i Mod 2 Then - GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) - Else - GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) - End If - Next - GetExpandedGuid = GetExpandedGuid & "-" - For i = 21 To 32 - If i Mod 2 Then - GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) - Else - GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) - End If - Next - GetExpandedGuid = GetExpandedGuid & "}" -End Function -'======================================================================================================= - -'Converts a GUID into the compressed format -Function GetCompressedGuid (sGuid) - Dim sCompGUID - Dim i - - 'Ensure Valid Length - If NOT Len(sGuid) = 38 Then Exit Function - - sCompGUID = StrReverse(Mid(sGuid,2,8)) & _ - StrReverse(Mid(sGuid,11,4)) & _ - StrReverse(Mid(sGuid,16,4)) - For i = 21 To 24 - If i Mod 2 Then - sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) - Else - sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) - End If - Next - For i = 26 To 37 - If i Mod 2 Then - sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) - Else - sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) - End If - Next - GetCompressedGuid = sCompGUID -End Function -'======================================================================================================= - -'Unsquish GUID -Function GetDecodedGuid(sEncGuid, sGuid) - -Dim sDecode, sTable, sHex, iChr -Dim arrTable -Dim i, iAsc, pow85, decChar -Dim lTotal -Dim fFailed - - fFailed = False - - sTable = "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ - "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ - "0xff,0x00,0xff,0xff,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff," & _ - "0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0xff,0xff,0xff,0x16,0xff,0x17," & _ - "0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27," & _ - "0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0xff,0x34,0x35,0x36," & _ - "0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46," & _ - "0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xff,0x53,0x54,0xff" - arrTable = Split(sTable,",") - lTotal = 0 : pow85 = 1 - For i = 0 To 19 - fFailed = True - If i Mod 5 = 0 Then - lTotal = 0 : pow85 = 1 - End If ' i Mod 5 = 0 - iAsc = Asc(Mid(sEncGuid,i+1,1)) - sHex = arrTable(iAsc) - If iAsc >=128 Then Exit For - If sHex = "0xff" Then Exit For - iChr = CInt("&h"&Right(sHex,2)) - lTotal = lTotal + (iChr * pow85) - If i Mod 5 = 4 Then sDecode = sDecode & DecToHex(lTotal) - pow85 = pow85 * 85 - fFailed = False - Next 'i - If NOT fFailed Then sGuid = "{{"&Mid(sDecode,1,8)&"-"& _ - Mid(sDecode,13,4)&"-"& _ - Mid(sDecode,9,4)&"-"& _ - Mid(sDecode,23,2) & Mid(sDecode,21,2)&"-"& _ - Mid(sDecode,19,2) & Mid(sDecode,17,2) & Mid(sDecode,31,2) & Mid(sDecode,29,2) & Mid(sDecode,27,2) & Mid(sDecode,25,2) &"}" - - GetDecodedGuid = NOT fFailed - -End Function 'GetDecodedGuid -'======================================================================================================= - -'Convert a long decimal to hex -Function DecToHex(lDec) - - Dim sHex - Dim iLen - Dim lVal, lExp - Dim arrChr - - arrChr = Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F") - sHex = "" - lVal = lDec - lExp = 16^10 - While lExp >= 1 - If lVal >= lExp Then - sHex = sHex & arrChr(Int(lVal / lExp)) - lVal = lVal - lExp * Int(lVal / lExp) - Else - sHex = sHex & "0" - If sHex = "0" Then sHex = "" - End If - lExp = lExp / 16 - Wend - - iLen = 8 - Len(sHex) - If iLen > 0 Then sHex = String(iLen,"0") & sHex - DecToHex = sHex -End Function -'======================================================================================================= - -'Ensures that only valid metadata entries exist to avoid API failures -Sub EnsureValidWIMetadata (hDefKey,sKey,iValidLength) - -Dim arrKeys -Dim SubKey - -If Len(sKey) > 1 Then - If Right(sKey,1) = "\" Then sKey = Left(sKey,Len(sKey)-1) -End If - -If RegEnumKey(hDefKey,sKey,arrKeys) Then - For Each SubKey in arrKeys - If NOT Len(SubKey) = iValidLength Then - RegDeleteKey hDefKey,sKey & "\" & SubKey & "\" - End If - Next 'SubKey -End If - -End Sub 'EnsureValidWIMetadata -'======================================================================================================= - -'------------------------------------------------------------------------------- -' CleanOSPP -' -' Clean out licenses from the Office Software Protection Platform -'------------------------------------------------------------------------------- -Sub CleanOSPP - Dim oProductInstances, pi - Dim sCleanOSPP, sCmd, sRetVal - - CONST OfficeAppId = "0ff1ce15-a989-479d-af46-f275c6370663" 'Office 2013 - - sCleanOSPP = "x64\CleanOSPP.exe" - If Not f64 Then sCleanOSPP = "x86\CleanOSPP.exe" - If oFso.FileExists(sScriptDir & sCleanOSPP) Then - sCmd = sScriptDir & sCleanOSPP - Log " Running: " & sCmd - On Error Resume Next - sRetVal = oWShell.Run(sCmd, 0, True) - Log " Return value: " & sRetVal - On Error Goto 0 - Exit Sub - End If - - On Error Resume Next - ' Initialize the software protection platform object with a filter on Office 2013 products - If iVersionNT > 601 Then - Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM SoftwareLicensingProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") - Else - Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM OfficeSoftwareProtectionProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") - End If - - ' Remove all licenses - For Each pi in oProductInstances - If NOT IsNull(pi) Then - pi.UninstallProductKey( pi.ProductKeyID) - End If - Next 'pi - -End Sub 'CleanOSPP -'======================================================================================================= - - -'Create a backup copy of the file in the ScrubDir then delete the file -Sub CopyAndDeleteFile(sFile) - Dim File - - 'Error handling inlined - On Error Resume Next - If oFso.FileExists(sFile) Then - Set File = oFso.GetFile(sFile) - If Not oFso.FolderExists(sScrubDir & "\" & File.ParentFolder.Name) Then oFso.CreateFolder sScrubDir & "\" & File.ParentFolder.Name - If Not fDetectOnly Then - LogOnly " - Backing up file: " & sFile - oFso.CopyFile sFile,sScrubDir & "\" & File.ParentFolder.Name & "\" & File.Name,True : CheckError "CopyAndDeleteFile" - Set File = Nothing - DeleteFile(sFile) - Else - LogOnly " - Simulate CopyAndDelete file: " & sFile - End If - End If 'oFso.FileExists -End Sub 'CopyAndDeleteFile -'======================================================================================================= - -'Wrapper to delete a file -Sub DeleteFile(sFile) - Dim File - Dim sFileName, sNewPath - - On Error Resume Next - - If dictionaryKeepFolder.Exists(LCase(sFile)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & sFile - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element: " & sFile - LogOnly " Remaining applications will need a repair!" - End If - End If - If f64 Then - If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFile))) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & sFile - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element: " & sFile - LogOnly " Remaining applications will need a repair!" - End If - End If - End If - - If oFso.FileExists(sFile) Then - LogOnly " - Delete file: " & sFile - If Not fDetectOnly Then oFso.DeleteFile sFile,True - If Err <> 0 Then - CheckError "DeleteFile" - If fForce Then - 'Try to move the file and delete from there - Set File = oFso.GetFile(sFile) - sFileName = File.Name - sNewPath = sScrubDir & "\ScrubTmp" - Set File = Nothing - If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) - 'Move the file - LogOnly " - Move file to: " & sNewPath & "\" & sFileName - oFso.MoveFile sFile,sNewPath & "\" & sFileName - If Err <> 0 Then - CheckError "DeleteFile (move)" - End If 'Err <> 0 - Else - fRebootRequired = True - End If 'fForce - End If 'Err <> 0 - End If 'oFso.FileExists -End Sub 'DeleteFile -'======================================================================================================= - -'64 bit aware wrapper to return the requested folder -Function GetFolderPath(sPath) - GetFolderPath = True - If oFso.FolderExists(sPath) Then Exit Function - If f64 AND oFso.FolderExists(Wow64Folder(sPath)) Then - sPath = Wow64Folder(sPath) - Exit Function - End If - GetFolderPath = False -End Function 'GetFolderPath -'======================================================================================================= - -'Enumerates subfolder names of a folder and returns True if subfolders exist -Function EnumFolderNames (sFolder, arrSubFolders) - Dim Folder, Subfolder - Dim sSubFolders - - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - For Each Subfolder in Folder.Subfolders - sSubFolders = sSubFolders & Subfolder.Name & "," - Next 'Subfolder - End If - If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then - Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) - For Each Subfolder in Folder.Subfolders - sSubFolders = sSubFolders & Subfolder.Name & "," - Next 'Subfolder - End If - If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) - EnumFolderNames = Len(sSubFolders)>0 -End Function 'EnumFolderNames -'======================================================================================================= - -'Enumerates subfolders of a folder and returns True if subfolders exist -Function EnumFolders (sFolder, arrSubFolders) - Dim Folder, Subfolder - Dim sSubFolders - - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - For Each Subfolder in Folder.Subfolders - sSubFolders = sSubFolders & Subfolder.Path & "," - Next 'Subfolder - End If - If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then - Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) - For Each Subfolder in Folder.Subfolders - sSubFolders = sSubFolders & Subfolder.Path & "," - Next 'Subfolder - End If - If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) - EnumFolders = Len(sSubFolders)>0 -End Function 'EnumFolders -'======================================================================================================= - -Sub GetMseFolderStructure (Folder) - Dim SubFolder - - For Each SubFolder in Folder.SubFolders - ReDim Preserve arrMseFolders(UBound(arrMseFolders)+1) - arrMseFolders(UBound(arrMseFolders)) = SubFolder.Path - GetMseFolderStructure SubFolder - Next 'SubFolder -End Sub 'GetMseFolderStructure -'======================================================================================================= - -'Wrapper to delete a folder -Sub DeleteFolder(sFolder) - Dim Folder - Dim sDelFolder, sFolderName, sNewPath - - 'Ensure trailing "\" - sFolder = sFolder & "\" - While InStr(sFolder,"\\")>0 - sFolder = Replace(sFolder,"\\","\") - Wend - - If dictionaryKeepFolder.Exists(LCase(sFolder)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & sFolder - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element: " & sFolder - LogOnly " Remaining applications will need a repair!" - End If - End If - If f64 Then - If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFolder))) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & sFolder - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element: " & sFolder - LogOnly " Remaining applications will need a repair!" - End If - End If - End If - - 'Strip trailing "\" - If Len(sFolder) > 1 Then - sFolder = Left(sFolder,Len(sFolder)-1) - End If - - On Error Resume Next - If oFso.FolderExists(sFolder) Then - sDelFolder = sFolder - ElseIf f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then - sDelFolder = Wow64Folder(sFolder) - Else - Exit Sub - End If - If Not fDetectOnly Then - LogOnly " - Delete folder: " & sDelFolder - oFso.DeleteFolder sDelFolder,True - Else - LogOnly " - Simulate delete folder: " & sDelFolder - End If - If Err <> 0 Then - CheckError "DeleteFolder" - 'Try to move the folder and delete from there - Set Folder = oFso.GetFolder(sDelFolder) - sFolderName = Folder.Name - sNewPath = sScrubDir & "\ScrubTmp" - Set Folder = Nothing - 'Ensure we stay within the same drive - If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) - 'Move the folder - LogOnly " - Moving folder to: " & sNewPath & "\" & sFolderName - oFso.MoveFolder sFolder,sNewPath & "\" & sFolderName - If Err <> 0 Then - CheckError "DeleteFolder (move)" - End If 'Err <> 0 - End If 'Err <> 0 -End Sub 'DeleteFolder -'======================================================================================================= - -'Delete empty folder structures -Sub DeleteEmptyFolders - Dim Folder - Dim sFolder - - ' cosmetic' task don't fail on error - On Error Resume Next - If Not IsArray(arrDeleteFolders) Then Exit Sub - Log vbCrLf & "Empty Folder Cleanup" - For Each sFolder in arrDeleteFolders - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - If CBool(Folder.Attributes AND 1024) Then - 'exclude protected folder - Else - If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then - Set Folder = Nothing - SmartDeleteFolder sFolder - End If - End If - End If - Next 'sFolder - CheckError "DeleteEmptyFolders" - On Error Goto 0 -End Sub 'DeleteEmptyFolders -'======================================================================================================= - -'Delete indivdual empty folder structures -Sub DeleteEmptyFolder (sFolder) - Dim Folder - - ' cosmetic' task don't fail on error - On Error Resume Next - If oFso.FolderExists(sFolder) Then - Set Folder = oFso.GetFolder(sFolder) - If CBool(Folder.Attributes AND 1024) Then - 'exclude protected folder - Else - If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then - Set Folder = Nothing - SmartDeleteFolder sFolder - End If - End If - End If - - CheckError "DeleteEmptyFolder" - On Error Goto 0 -End Sub 'DeleteEmptyFolder -'======================================================================================================= - -'Wrapper to delete a folder and remove the empty parent folder structure -Sub SmartDeleteFolder(sFolder) - If oFso.FolderExists(sFolder) Then - If Not fDetectOnly Then - LogOnly " Request SmartDelete for folder: " & sFolder - SmartDeleteFolderEx sFolder - Else - LogOnly " Simulate request SmartDelete for folder: " & sFolder - End If - End If - If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then - If Not fDetectOnly Then - LogOnly "Request SmartDelete for folder: " & Wow64Folder(sFolder) - SmartDeleteFolderEx Wow64Folder(sFolder) - Else - LogOnly "Simulate request SmartDelete for folder: " & Wow64Folder(sFolder) - End If - End If -End Sub 'SmartDeleteFolder -'======================================================================================================= - -'Executes the folder delete operation -Sub SmartDeleteFolderEx(sFolder) - Dim Folder - - On Error Resume Next - DeleteFolder sFolder : CheckError "SmartDeleteFolderEx" - On Error Goto 0 - Set Folder = oFso.GetFolder(oFso.GetParentFolderName(sFolder)) - If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then SmartDeleteFolderEx(Folder.Path) -End Sub 'SmartDeleteFolderEx -'======================================================================================================= - -'Adds the folder structure to the 'KeepFolder' dictionary -Sub AddKeepFolder(sPath) - - Dim Folder - - 'Ensure trailing "\" - sPath = LCase(sPath) & "\" - While InStr(sPath,"\\")>0 - sPath = Replace(sPath,"\\","\") - Wend - - If NOT dictionaryKeepFolder.Exists (sPath) Then - dictionaryKeepFolder.Add sPath,sPath - Else - Exit Sub - End If - sPath = LCase(oFso.GetParentFolderName(sPath)) & "\" - If oFso.FolderExists(sPath) Then AddKeepFolder(sPath) -End Sub -'======================================================================================================= - -'Handles additional folder-path operations on 64 bit environments -Function Wow64Folder(sFolder) - If LCase(Left(sFolder,Len(sWinDir & "\System32"))) = LCase(sWinDir & "\System32") Then - Wow64Folder = sWinDir & "\syswow64" & Right(sFolder,Len(sFolder)-Len(sSys32Dir)) - ElseIf LCase(Left(sFolder,Len(sProgramFiles))) = LCase(sProgramFiles) Then - Wow64Folder = sProgramFilesX86 & Right(sFolder,Len(sFolder)-Len(sProgramFiles)) - Else - Wow64Folder = "?" 'Return invalid string to ensure the folder cannot exist - End If -End Function 'Wow64Folder -'======================================================================================================= - -Function HiveString(hDefKey) - On Error Resume Next - Select Case hDefKey - Case HKCR : HiveString = "HKEY_CLASSES_ROOT" - Case HKCU : HiveString = "HKEY_CURRENT_USER" - Case HKLM : HiveString = "HKEY_LOCAL_MACHINE" - Case HKU : HiveString = "HKEY_USERS" - Case Else : HiveString = hDefKey - End Select -End Function -'======================================================================================================= - -Function RegKeyExists(hDefKey,sSubKeyName) - Dim arrKeys - RegKeyExists = False - If oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) = 0 Then RegKeyExists = True -End Function -'======================================================================================================= - -Function RegValExists(hDefKey,sSubKeyName,sName) - Dim arrValueTypes, arrValueNames - Dim i - - RegValExists = False - If Not RegKeyExists(hDefKey,sSubKeyName) Then Exit Function - If sName = "" Then - RegValExists = True - Exit Function - End If - If oReg.EnumValues(hDefKey,sSubKeyName,arrValueNames,arrValueTypes) = 0 AND IsArray(arrValueNames) Then - For i = 0 To UBound(arrValueNames) - If LCase(arrValueNames(i)) = Trim(LCase(sName)) Then RegValExists = True - Next - End If 'oReg.EnumValues -End Function -'======================================================================================================= - -'Read the value of a given registry entry -Function RegReadValue(hDefKey, sSubKeyName, sName, sValue, sType) - Dim RetVal - Dim Item - Dim arrValues - - Select Case UCase(sType) - Case "1","REG_SZ" - RetVal = oReg.GetStringValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - - Case "2","REG_EXPAND_SZ" - RetVal = oReg.GetExpandedStringValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetExpandedStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - - Case "7","REG_MULTI_SZ" - RetVal = oReg.GetMultiStringValue(hDefKey,sSubKeyName,sName,arrValues) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetMultiStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,arrValues) - If RetVal = 0 Then sValue = Join(arrValues,chr(34)) - - Case "4","REG_DWORD" - RetVal = oReg.GetDWORDValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then - RetVal = oReg.GetDWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - End If - - Case "3","REG_BINARY" - RetVal = oReg.GetBinaryValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetBinaryValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - - Case "11","REG_QWORD" - RetVal = oReg.GetQWORDValue(hDefKey,sSubKeyName,sName,sValue) - If Not RetVal = 0 AND f64 Then RetVal = oReg.GetQWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) - - Case Else - RetVal = -1 - End Select 'sValue - - RegReadValue = (RetVal = 0) -End Function 'RegReadValue -'======================================================================================================= - -'Enumerate a registry key to return all values -Function RegEnumValues(hDefKey,sSubKeyName,arrNames, arrTypes) - Dim RetVal, RetVal64 - Dim arrNames32, arrNames64, arrTypes32, arrTypes64 - - If f64 Then - RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames32,arrTypes32) - RetVal64 = oReg.EnumValues(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrNames64,arrTypes64) - If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrTypes32) Then - arrNames = arrNames32 - arrTypes = arrTypes32 - End If - If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames64) AND IsArray(arrTypes64) Then - arrNames = arrNames64 - arrTypes = arrTypes64 - End If - If (RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrNames64) AND IsArray(arrTypes32) AND IsArray(arrTypes64) Then - arrNames = RemoveDuplicates(Split((Join(arrNames32,"\") & "\" & Join(arrNames64,"\")),"\")) - arrTypes = RemoveDuplicates(Split((Join(arrTypes32,"\") & "\" & Join(arrTypes64,"\")),"\")) - End If - Else - RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) - End If 'f64 - RegEnumValues = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrNames) AND IsArray(arrTypes) -End Function 'RegEnumValues -'======================================================================================================= - -'Enumerate a registry key to return all subkeys -Function RegEnumKey(hDefKey,sSubKeyName,arrKeys) - Dim RetVal, RetVal64 - Dim arrKeys32, arrKeys64 - - If f64 Then - RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys32) - RetVal64 = oReg.EnumKey(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrKeys64) - If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrKeys32) Then arrKeys = arrKeys32 - If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrKeys64) Then arrKeys = arrKeys64 - If (RetVal = 0) AND (RetVal64 = 0) Then - If IsArray(arrKeys32) AND IsArray (arrKeys64) Then - arrKeys = RemoveDuplicates(Split((Join(arrKeys32,"\") & "\" & Join(arrKeys64,"\")),"\")) - ElseIf IsArray(arrKeys64) Then - arrKeys = arrKeys64 - Else - arrKeys = arrKeys32 - End If - End If - Else - RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) - End If 'f64 - RegEnumKey = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrKeys) -End Function 'RegEnumKey -'======================================================================================================= - -'Wrapper around oReg.DeleteValue to handle 64 bit -Sub RegDeleteValue(hDefKey, sSubKeyName, sName, fRegMultiSZ) - Dim sWow64Key,sRealName - Dim iRetVal - - sRealName = sName - If UCase(sName) = "(DEFAULT)" Then sRealName = "" - - If dictionaryKeepReg.Exists(LCase(sSubKeyName & sName)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" - End If - End If - If f64 Then - If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName) & sName)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" - End If - End If - End If - - If RegValExists(hDefKey,sSubKeyName,sRealName) Then - On Error Resume Next - If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then - LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName - Exit Sub - End If - If Not fDetectOnly Then - LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName - iRetVal = 0 - iRetVal = oReg.DeleteValue(hDefKey, sSubKeyName, sRealName) - CheckError "RegDeleteValue" - If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal - Else - LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName - End If - On Error Goto 0 - End If 'RegValExists - If f64 Then - sWow64Key = Wow64Key(hDefKey, sSubKeyName) - If RegValExists(hDefKey,sWow64Key,sRealName) Then - On Error Resume Next - If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then - LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName - Exit Sub - End If - If Not fDetectOnly Then - LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName - iRetVal = 0 - iRetVal = oReg.DeleteValue(hDefKey, sWow64Key, sRealName) - CheckError "RegDeleteValue" - If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal - Else - LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName - End If - On Error Goto 0 - End If 'RegKeyExists - End If -End Sub 'RegDeleteValue -'======================================================================================================= - -'Wrappper around RegDeleteKeyEx to handle 64bit scenrios -Sub RegDeleteKey(hDefKey, sSubKeyName) - Dim sWow64Key - - 'Ensure trailing "\" - sSubKeyName = sSubKeyName & "\" - While InStr(sSubKeyName,"\\")>0 - sSubKeyName = Replace(sSubKeyName,"\\","\") - Wend - - If dictionaryKeepReg.Exists(LCase(sSubKeyName)) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" - End If - End If - If f64 Then - If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName))) Then - If NOT fForce Then - LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName - Exit Sub - Else - LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" - End If - End If - End If - - If Len(sSubKeyName) > 1 Then - 'Strip of trailing "\" - sSubKeyName = Left(sSubKeyName,Len(sSubKeyName)-1) - End If - - If RegKeyExists(hDefKey, sSubKeyName) Then - If Not fDetectOnly Then - LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName - On Error Resume Next - RegDeleteKeyEx hDefKey, sSubKeyName - On Error Goto 0 - Else - LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName - End If - End If 'RegKeyExists - If f64 Then - sWow64Key = Wow64Key(hDefKey, sSubKeyName) - If RegKeyExists(hDefKey,sWow64Key) Then - If Not fDetectOnly Then - LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key - On Error Resume Next - RegDeleteKeyEx hDefKey, sWow64Key - On Error Goto 0 - Else - LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key - End If - End If 'RegKeyExists - End If -End Sub 'RegDeleteKey -'======================================================================================================= - -'Recursively delete a registry structure -Sub RegDeleteKeyEx(hDefKey, sSubKeyName) - Dim arrSubkeys - Dim sSubkey - Dim iRetVal - - On Error Resume Next - oReg.EnumKey hDefKey, sSubKeyName, arrSubkeys - If IsArray(arrSubkeys) Then - For Each sSubkey In arrSubkeys - RegDeleteKeyEx hDefKey, sSubKeyName & "\" & sSubkey - Next - End If - If Not fDetectOnly Then - iRetVal = 0 - iRetVal = oReg.DeleteKey(hDefKey,sSubKeyName) - If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal - End If -End Sub 'RegDeleteKeyEx -'======================================================================================================= - -'Return the alternate regkey location on 64bit environment -Function Wow64Key(hDefKey, sSubKeyName) - Dim iPos - - Select Case hDefKey - Case HKCU - If Left(sSubKeyName,17) = "Software\Classes\" Then - Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) - Else - iPos = InStr(sSubKeyName,"\") - Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) - End If - - Case HKLM - If Left(sSubKeyName,17) = "Software\Classes\" Then - Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) - Else - iPos = InStr(sSubKeyName,"\") - Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) - End If - - Case Else - Wow64Key = "Wow6432Node\" & sSubKeyName - - End Select 'hDefKey -End Function 'Wow64Key -'======================================================================================================= - -'Remove duplicate entries from a one dimensional array -Function RemoveDuplicates(Array) - Dim Item - Dim oDic - - Set oDic = CreateObject("Scripting.Dictionary") - For Each Item in Array - If Not oDic.Exists(Item) Then oDic.Add Item,Item - Next 'Item - RemoveDuplicates = oDic.Keys -End Function 'RemoveDuplicates -'======================================================================================================= - -'End running instances of setup -Sub EndCurrentInstalls () - Dim Processes, Process - Dim iRet - - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like '%setup%' OR Name like '%install%'") - For Each Process in Processes - Log " - End process " & Process.Name - iRet = Process.Terminate() - CheckError "EndCurrentInstalls: " & "Process.Name" - Next 'Process - StopService "msiserver" -End Sub 'EndCurrentInstalls -'======================================================================================================= - -'Uses WMI to stop a service -Function StopService(sService) - Dim Services, Service - Dim sQuery - Dim iRet - - On Error Resume Next - - iRet = 0 - sQuery = "Select * From Win32_Service Where Name='" & sService & "'" - Set Services = oWmiLocal.Execquery(sQuery) - 'Stop the service - For Each Service in Services - If UCase(Service.State) = "STARTED" Then iRet = Service.StopService - If UCase(Service.State) = "RUNNING" Then iRet = Service.StopService - - Next 'Service - StopService = (iRet = 0) -End Function 'StopService -'======================================================================================================= - -'Delete a service -Sub DeleteService(sService) - Dim Services, Service, Processes, Process - Dim sQuery, sStates - Dim iRet - - On Error Resume Next - - sStates = "STARTED;RUNNING" - sQuery = "Select * From Win32_Service Where Name='" & sService & "'" - Set Services = oWmiLocal.Execquery(sQuery) - - 'Stop and delete the service - For Each Service in Services - Log " Found service " & sService & " in state " & Service.State - If InStr(sStates,UCase(Service.State))>0 Then iRet = Service.StopService() - 'Ensure no more instances of the service are running - Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='" & sService & ".exe'") - For Each Process in Processes - iRet = Process.Terminate() - Next 'Process - If Not fDetectOnly Then - Log " - Deleting Service -> " & sService - iRet = Service.Delete() - Else - Log " - Simulate deleting Service -> " & sService - End If - Next 'Service - Set Services = Nothing - Err.Clear - -End Sub 'DeleteService -'======================================================================================================= - -'Translation for setup.exe error codes -Function SetupRetVal(RetVal) - Select Case RetVal - Case 0 : SetupRetVal = "Success" - Case 30001,1 : SetupRetVal = "AbstractMethod" - Case 30002,2 : SetupRetVal = "ApiProhibited" - Case 30003,3 : SetupRetVal = "AlreadyImpersonatingAUser" - Case 30004,4 : SetupRetVal = "AlreadyInitialized" - Case 30005,5 : SetupRetVal = "ArgumentNullException" - Case 30006,6 : SetupRetVal = "AssertionFailed" - Case 30007,7 : SetupRetVal = "CABFileAddFailed" - Case 30008,8 : SetupRetVal = "CommandFailed" - Case 30009,9 : SetupRetVal = "ConcatenationFailed" - Case 30010,10 : SetupRetVal = "CopyFailed" - Case 30011,11 : SetupRetVal = "CreateEventFailed" - Case 30012,12 : SetupRetVal = "CustomizationPatchNotFound" - Case 30013,13 : SetupRetVal = "CustomizationPatchNotApplicable" - Case 30014,14 : SetupRetVal = "DuplicateDefinition" - Case 30015,15 : SetupRetVal = "ErrorCodeOnly - Passthrough for Win32 error" - Case 30016,16 : SetupRetVal = "ExceptionNotThrown" - Case 30017,17 : SetupRetVal = "FailedToImpersonateUser" - Case 30018,18 : SetupRetVal = "FailedToInitializeFlexDataSource" - Case 30019,19 : SetupRetVal = "FailedToStartClassFactories" - Case 30020,20 : SetupRetVal = "FileNotFound" - Case 30021,21 : SetupRetVal = "FileNotOpen" - Case 30022,22 : SetupRetVal = "FlexDialogAlreadyInitialized" - Case 30023,23 : SetupRetVal = "HResultOnly - Passthrough for HRESULT errors" - Case 30024,24 : SetupRetVal = "HWNDNotFound" - Case 30025,25 : SetupRetVal = "IncompatibleCacheAction" - Case 30026,26 : SetupRetVal = "IncompleteProductAddOns" - Case 30027,27 : SetupRetVal = "InstalledProductStateCorrupt" - Case 30028,28 : SetupRetVal = "InsufficientBuffer" - Case 30029,29 : SetupRetVal = "InvalidArgument" - Case 30030,30 : SetupRetVal = "InvalidCDKey" - Case 30031,31 : SetupRetVal = "InvalidColumnType" - Case 30032,31 : SetupRetVal = "InvalidConfigAddLanguage" - Case 30033,33 : SetupRetVal = "InvalidData" - Case 30034,34 : SetupRetVal = "InvalidDirectory" - Case 30035,35 : SetupRetVal = "InvalidFormat" - Case 30036,36 : SetupRetVal = "InvalidInitialization" - Case 30037,37 : SetupRetVal = "InvalidMethod" - Case 30038,38 : SetupRetVal = "InvalidOperation" - Case 30039,39 : SetupRetVal = "InvalidParameter" - Case 30040,40 : SetupRetVal = "InvalidProductFromARP" - Case 30041,41 : SetupRetVal = "InvalidProductInConfigXml" - Case 30042,42 : SetupRetVal = "InvalidReference" - Case 30043,43 : SetupRetVal = "InvalidRegistryValueType" - Case 30044,44 : SetupRetVal = "InvalidXMLProperty" - Case 30045,45 : SetupRetVal = "InvalidMetadataFile" - Case 30046,46 : SetupRetVal = "LogNotInitialized" - Case 30047,47 : SetupRetVal = "LogAlreadyInitialized" - Case 30048,48 : SetupRetVal = "MissingXMLNode" - Case 30049,49 : SetupRetVal = "MsiTableNotFound" - Case 30050,50 : SetupRetVal = "MsiAPICallFailure" - Case 30051,51 : SetupRetVal = "NodeNotOfTypeElement" - Case 30052,52 : SetupRetVal = "NoMoreGraceBoots" - Case 30053,53 : SetupRetVal = "NoProductsFound" - Case 30054,54 : SetupRetVal = "NoSupportedCulture" - Case 30055,55 : SetupRetVal = "NotYetImplemented" - Case 30056,56 : SetupRetVal = "NotAvailableCulture" - Case 30057,57 : SetupRetVal = "NotCustomizationPatch" - Case 30058,58 : SetupRetVal = "NullReference" - Case 30059,59 : SetupRetVal = "OCTPatchForbidden" - Case 30060,60 : SetupRetVal = "OCTWrongMSIDll" - Case 30061,61 : SetupRetVal = "OutOfBoundsIndex" - Case 30062,62 : SetupRetVal = "OutOfDiskSpace" - Case 30063,63 : SetupRetVal = "OutOfMemory" - Case 30064,64 : SetupRetVal = "OutOfRange" - Case 30065,65 : SetupRetVal = "PatchApplicationFailure" - Case 30066,66 : SetupRetVal = "PreReqCheckFailure" - Case 30067,67 : SetupRetVal = "ProcessAlreadyStarted" - Case 30068,68 : SetupRetVal = "ProcessNotStarted" - Case 30069,69 : SetupRetVal = "ProcessNotFinished" - Case 30070,70 : SetupRetVal = "ProductAlreadyDefined" - Case 30071,71 : SetupRetVal = "ResourceAlreadyTracked" - Case 30072,72 : SetupRetVal = "ResourceNotFound" - Case 30073,73 : SetupRetVal = "ResourceNotTracked" - Case 30074,74 : SetupRetVal = "SQLAlreadyConnected" - Case 30075,75 : SetupRetVal = "SQLFailedToAllocateHandle" - Case 30076,76 : SetupRetVal = "SQLFailedToConnect" - Case 30077,77 : SetupRetVal = "SQLFailedToExecuteStatement" - Case 30078,78 : SetupRetVal = "SQLFailedToRetrieveData" - Case 30079,79 : SetupRetVal = "SQLFailedToSetAttribute" - Case 30080,80 : SetupRetVal = "StorageNotCreated" - Case 30081,81 : SetupRetVal = "StreamNameTooLong" - Case 30082,82 : SetupRetVal = "SystemError" - Case 30083,83 : SetupRetVal = "ThreadAlreadyStarted" - Case 30084,84 : SetupRetVal = "ThreadNotStarted" - Case 30085,85 : SetupRetVal = "ThreadNotFinished" - Case 30086,86 : SetupRetVal = "TooManyProducts" - Case 30087,87 : SetupRetVal = "UnexpectedXMLNodeType" - Case 30088,88 : SetupRetVal = "UnexpectedError" - Case 30089,89 : SetupRetVal = "Unitialized" - Case 30090,90 : SetupRetVal = "UserCancel" - Case 30091,91 : SetupRetVal = "ExternalCommandFailed" - Case 30092,92 : SetupRetVal = "SPDatabaseOverSize" - Case 30093,93 : SetupRetVal = "IntegerTruncation" - 'msiexec return values - Case 1259 : SetupRetVal = "APPHELP_BLOCK" - Case 1601 : SetupRetVal = "INSTALL_SERVICE_FAILURE" - Case 1602 : SetupRetVal = "INSTALL_USEREXIT" - Case 1603 : SetupRetVal = "INSTALL_FAILURE" - Case 1604 : SetupRetVal = "INSTALL_SUSPEND" - Case 1605 : SetupRetVal = "UNKNOWN_PRODUCT" - Case 1606 : SetupRetVal = "UNKNOWN_FEATURE" - Case 1607 : SetupRetVal = "UNKNOWN_COMPONENT" - Case 1608 : SetupRetVal = "UNKNOWN_PROPERTY" - Case 1609 : SetupRetVal = "INVALID_HANDLE_STATE" - Case 1610 : SetupRetVal = "BAD_CONFIGURATION" - Case 1611 : SetupRetVal = "INDEX_ABSENT" - Case 1612 : SetupRetVal = "INSTALL_SOURCE_ABSENT" - Case 1613 : SetupRetVal = "INSTALL_PACKAGE_VERSION" - Case 1614 : SetupRetVal = "PRODUCT_UNINSTALLED" - Case 1615 : SetupRetVal = "BAD_QUERY_SYNTAX" - Case 1616 : SetupRetVal = "INVALID_FIELD" - Case 1618 : SetupRetVal = "INSTALL_ALREADY_RUNNING" - Case 1619 : SetupRetVal = "INSTALL_PACKAGE_OPEN_FAILED" - Case 1620 : SetupRetVal = "INSTALL_PACKAGE_INVALID" - Case 1621 : SetupRetVal = "INSTALL_UI_FAILURE" - Case 1622 : SetupRetVal = "INSTALL_LOG_FAILURE" - Case 1623 : SetupRetVal = "INSTALL_LANGUAGE_UNSUPPORTED" - Case 1624 : SetupRetVal = "INSTALL_TRANSFORM_FAILURE" - Case 1625 : SetupRetVal = "INSTALL_PACKAGE_REJECTED" - Case 1626 : SetupRetVal = "FUNCTION_NOT_CALLED" - Case 1627 : SetupRetVal = "FUNCTION_FAILED" - Case 1628 : SetupRetVal = "INVALID_TABLE" - Case 1629 : SetupRetVal = "DATATYPE_MISMATCH" - Case 1630 : SetupRetVal = "UNSUPPORTED_TYPE" - Case 1631 : SetupRetVal = "CREATE_FAILED" - Case 1632 : SetupRetVal = "INSTALL_TEMP_UNWRITABLE" - Case 1633 : SetupRetVal = "INSTALL_PLATFORM_UNSUPPORTED" - Case 1634 : SetupRetVal = "INSTALL_NOTUSED" - Case 1635 : SetupRetVal = "PATCH_PACKAGE_OPEN_FAILED" - Case 1636 : SetupRetVal = "PATCH_PACKAGE_INVALID" - Case 1637 : SetupRetVal = "PATCH_PACKAGE_UNSUPPORTED" - Case 1638 : SetupRetVal = "PRODUCT_VERSION" - Case 1639 : SetupRetVal = "INVALID_COMMAND_LINE" - Case 1640 : SetupRetVal = "INSTALL_REMOTE_DISALLOWED" - Case 1641 : SetupRetVal = "SUCCESS_REBOOT_INITIATED" - Case 1642 : SetupRetVal = "PATCH_TARGET_NOT_FOUND" - Case 1643 : SetupRetVal = "PATCH_PACKAGE_REJECTED" - Case 1644 : SetupRetVal = "INSTALL_TRANSFORM_REJECTED" - Case 1645 : SetupRetVal = "INSTALL_REMOTE_PROHIBITED" - Case 1646 : SetupRetVal = "PATCH_REMOVAL_UNSUPPORTED" - Case 1647 : SetupRetVal = "UNKNOWN_PATCH" - Case 1648 : SetupRetVal = "PATCH_NO_SEQUENCE" - Case 1649 : SetupRetVal = "PATCH_REMOVAL_DISALLOWED" - Case 1650 : SetupRetVal = "INVALID_PATCH_XML" - Case 3010 : SetupRetVal = "SUCCESS_REBOOT_REQUIRED" - Case Else : SetupRetVal = "Unknown Return Value" - End Select -End Function 'SetupRetVal -'======================================================================================================= - -Function GetProductID(sProdID) - Dim sReturn - - Select Case sProdId - - Case "000F" : sReturn = "MONDO" - Case "0010" : sReturn = "WEBFLDRS" - Case "0011" : sReturn = "PROPLUS" - Case "0012" : sReturn = "STANDARD" - Case "0013" : sReturn = "BASIC" - Case "0014" : sReturn = "PRO" - Case "0015" : sReturn = "ACCESS" - Case "0016" : sReturn = "EXCEL" - Case "0017" : sReturn = "SharePointDesigner" - Case "0018" : sReturn = "PowerPoint" - Case "0019" : sReturn = "Publisher" - Case "001A" : sReturn = "Outlook" - Case "001B" : sReturn = "Word" - Case "001C" : sReturn = "AccessRuntime" - Case "001F" : sReturn = "Proof" - Case "0020" : sReturn = "O2007CNV" - Case "0021" : sReturn = "VisualWebDeveloper" - Case "0026" : sReturn = "ExpressionWeb" - Case "0029" : sReturn = "Excel" - Case "002A" : sReturn = "Office64" - Case "002B" : sReturn = "Word" - Case "002C" : sReturn = "Proofing" - Case "002E" : sReturn = "Ultimate" - Case "002F" : sReturn = "HomeAndStudent" - Case "0028" : sReturn = "IME" - Case "0030" : sReturn = "Enterprise" - Case "0031" : sReturn = "ProfessionalHybrid" - Case "0033" : sReturn = "Personal" - Case "0035" : sReturn = "ProfessionalHybrid" - Case "0037" : sReturn = "PowerPoint" - Case "0038" : sReturn = "OlTimeZoneTool" - Case "003A" : sReturn = "PrjStd" - Case "003B" : sReturn = "PrjPro" - Case "003D" : sReturn = "SINGLEIMAGE" - Case "0043" : sReturn = "OFFICE32" - Case "0044" : sReturn = "InfoPath" - Case "0045" : sReturn = "XWEB" - Case "0048" : sReturn = "OLC" - Case "0049" : sReturn = "ACADEMIC" - Case "004A" : sReturn = "OWC11" - Case "0051" : sReturn = "VISPRO" - Case "0052" : sReturn = "VisView" - Case "0053" : sReturn = "VisStd" - Case "0054" : sReturn = "VisMUI" - Case "0055" : sReturn = "VisMUI" - Case "0057" : sReturn = "VISIO" - Case "0061" : sReturn = "CLICK2RUN" - Case "0062" : sReturn = "CLICK2RUN" - Case "0066" : sReturn = "CLICK2RUN" - Case "006C" : sReturn = "CLICK2RUN" - Case "006D" : sReturn = "CLICK2RUN" - Case "006E" : sReturn = "Shared" - Case "006F" : sReturn = "OFFICE" - Case "0070" : sReturn = "OOBE" - Case "0074" : sReturn = "STARTER" - Case "007A" : sReturn = "OLC" 'Outlook Connector - Case "007C" : sReturn = "OSCFB" 'Outlook Social Connector for FaceBook - Case "007D" : sReturn = "OSCWL" 'Outlook Social Connector for Windows Live Messenger - Case "007F" : sReturn = "OLC" 'Outlook Social Connector - Case "008A" : sReturn = "RecentDocs" - Case "008B" : sReturn = "SmallBusinessBasics" - Case "00A1" : sReturn = "ONENOTE" - Case "00A3" : sReturn = "OneNoteHomeStudent" - Case "00A4" : sReturn = "OWC11" - Case "00A7" : sReturn = "CPAO" - Case "00A9" : sReturn = "InterConnect" - Case "00AF" : sReturn = "PPtView" - Case "00B0" : sReturn = "ExPdf" - Case "00B1" : sReturn = "ExXps" - Case "00B2" : sReturn = "ExPdfXps" - Case "00B4" : sReturn = "PrjMUI" - Case "00B5" : sReturn = "PrjtMUI" - Case "00B9" : sReturn = "AER" - Case "00BA" : sReturn = "Groove" - Case "00CA" : sReturn = "SmallBusiness" - Case "00E0" : sReturn = "Outlook" - Case "00D1" : sReturn = "ACE" - Case "0100" : sReturn = "OfficeMUI" - Case "0101" : sReturn = "OfficeXMUI" - Case "0103" : sReturn = "PTK" - Case "0114" : sReturn = "GrooveSetupMetadata" - Case "0115" : sReturn = "SharedSetupMetadata" - Case "0116" : sReturn = "SharedSetupMetadata" - Case "0117" : sReturn = "AccessSetupMetadata" - Case "011A" : sReturn = "SendASmile" - Case "011D" : sReturn = "ProPlusSubscription" - Case "011F" : sReturn = "OLConnect" - Case "0126" : sReturn = "WWLIBCXM" - - Case "1014" : sReturn = "STS" - Case "1015" : sReturn = "WSSMUI" - Case "1032" : sReturn = "PJSVRAPP" - Case "104B" : sReturn = "SPS" - Case "104E" : sReturn = "SPSMUI" - Case "107F" : sReturn = "OSrv" - Case "1080" : sReturn = "OSrv" - Case "1088" : sReturn = "lpsrvwfe" - Case "10D7" : sReturn = "IFS" - Case "10D8" : sReturn = "IFSMUI" - Case "10EB" : sReturn = "DLCAPP" - Case "10F5" : sReturn = "XLSRVAPP" - Case "10F6" : sReturn = "XlSrvWFE" - Case "10F7" : sReturn = "DLC" - Case "10F8" : sReturn = "SlSrvMui" - Case "10FB" : sReturn = "OSrchWFE" - Case "10FC" : sReturn = "OSRCHAPP" - Case "10FD" : sReturn = "OSrchMUI" - Case "1103" : sReturn = "DLC" - Case "1104" : sReturn = "LHPSRV" - Case "1105" : sReturn = "PIA" - Case "1106" : sReturn = "GRVMGMTSRV" - Case "1109" : sReturn = "GSERVERRELAY" - Case "110D" : sReturn = "OSERVER" - Case "110F" : sReturn = "PSERVER" - Case "1110" : sReturn = "WSS" - Case "1121" : sReturn = "SPSSDK" - Case "1122" : sReturn = "SPSDev" - Case "1163" : sReturn = "SCC" 'SharePoint Client Components - Case Else : sReturn = sProdID - - End Select 'sProdId - GetProductID = sReturn -End Function 'GetProductID -'======================================================================================================= - -Sub Log (sLog) - If NOT fQuiet AND fCScript Then wscript.echo sLog - LogStream.WriteLine sLog -End Sub 'Log -'======================================================================================================= - -Sub LogOnly (sLog) - LogStream.WriteLine sLog -End Sub 'Log -'======================================================================================================= - -Sub CheckError(sModule) - If Err <> 0 Then - LogOnly " " & Now & " - " & sModule & " - Source: " & Err.Source & "; Err# (Hex): " & Hex( Err ) & _ - "; Err# (Dec): " & Err & "; Description : " & Err.Description - End If 'Err = 0 - Err.Clear -End Sub -'======================================================================================================= - -'Command line parser -Sub ParseCmdLine - - Dim iCnt, iArgCnt - Dim arrArguments - Dim sArg0, sArguments - - iArgCnt = Wscript.Arguments.Count - If iArgCnt > 1 Then - If wscript.Arguments(1) = "UAC" Then - If wscript.arguments.count = 2 Then iArgCnt = 0 - End If - End If - - sArguments = "" - If iArgCnt = 0 Then - If sDefault = "" Then - 'Create the log - CreateLog - Log "No argument specified. Preparing user prompt" & vbCrLf - fPassive = False - FindInstalledOProducts - If dicInstalledSku.Count > 0 Then sDefault = Join(RemoveDuplicates(dicInstalledSku.Items),",") Else sDefault = "CLIENTALL" - sDefault = InputBox("Enter a list of " & ONAME & " products to remove" & vbCrLf & vbCrLf & _ - "Examples:" & vbCrLf & _ - "CLIENTALL" & vbTab & "-> all Client products" & vbCrLf & _ - "SERVER" & vbTab & "-> all Server products" & vbCrLf & _ - "ALL" & vbTab & vbTab & "-> all Server & Client products" & vbCrLf & _ - "ProPlus,PrjPro" & vbTab & "-> ProPlus and Project" & vbCrLf &_ - "?" & vbTab & vbTab & "-> display Help", _ - SCRIPTFILE & " - " & ONAME & " remover", _ - sDefault) - - If IsEmpty(sDefault) Then 'User cancelled - Log "User cancelled. CleanUp & Exit." - 'Undo temporary entries created in ARP - TmpKeyCleanUp - wscript.quit 1602 - End If 'IsEmpty(sDefault) - Log "Answer from prompt: " & sDefault & vbCrLf - End If - sDefault = Trim(UCase(Trim(Replace(sDefault, Chr(34), "")))) - arrArguments = Split(Trim(sDefault), " ") - If UBound(arrArguments) = -1 Then ReDim arrArguments(0) - Else - ReDim arrArguments(iArgCnt-1) - For iCnt = 0 To (iArgCnt-1) - sArguments = sArguments & arrArguments(iCnt) & " " - arrArguments(iCnt) = UCase(Wscript.Arguments(iCnt)) - Next 'iCnt - End If 'iArgCnt = 0 - - 'Handle the SKU list - sArg0 = Replace(arrArguments(0), "/", "") - If Left(sArg0, 1) = "-" Then sArg0 = Mid(sArg0, 2) - - Select Case UCase(sArg0) - - Case "?" - ShowSyntax - - Case "ALL" - fRemoveAll = True - fRemoveOse = False - - Case "CLIENTSUITES" - fRemoveCSuites = True - fRemoveOse = False - - Case "CLIENTSTANDALONE" - fRemoveCSingle = True - fRemoveOse = False - - Case "CLIENTALL" - fRemoveCSuites = True - fRemoveCSingle = True - fRemoveOse = False - - Case "SERVER" - fRemoveSrv = True - fRemoveOse = False - - Case "ALL,OSE" - fRemoveAll = True - fRemoveOse = True - - Case Else - fRemoveAll = False - fRemoveOse = False - sSkuRemoveList = sArg0 - - End Select - - For iCnt = 0 To UBound(arrArguments) - - Select Case arrArguments(iCnt) - - Case "?", "/?", "-?" - ShowSyntax - - Case "/B", "/BYPASS" - If UBound(arrArguments) > iCnt Then - If InStr(arrArguments(iCnt + 1), "1") > 0 Then fBypass_Stage1 = True - If InStr(arrArguments(iCnt + 1), "2") > 0 Then fBypass_Stage2 = True - If InStr(arrArguments(iCnt + 1), "3") > 0 Then fBypass_Stage3 = True - If InStr(arrArguments(iCnt + 1), "4") > 0 Then fBypass_Stage4 = True - End If - - Case "/D", "/DELETEUSERSETTINGS" - fKeepUser = False - - Case "/FR", "/FASTREMOVE" - fBypass_Stage1 = True - fSkipSD = True - - Case "/F", "/FORCE" - fForce = True - - Case "/K", "/KEEPUSERSETTINGS" - fKeepUser = True - - Case "/KEEPSG", "/KEEPSOFTGRID" - fKeepSG = True - - Case "/KEEPLYNC" - fRemoveLync = False - - Case "/REMOVELYNC" - fRemoveLync = True - - Case "/L", "/LOG" - fLogInitialized = False - If UBound(arrArguments) > iCnt Then - If oFso.FolderExists(arrArguments(iCnt + 1)) Then - sLogDir = arrArguments(iCnt + 1) - Else - On Error Resume Next - oFso.CreateFolder(arrArguments(iCnt + 1)) - If Err <> 0 Then sLogDir = sScrubDir Else sLogDir = arrArguments(iCnt + 1) - End If - End If - - Case "/NOCANCEL" - fNoCancel = True - - Case "/NOREBOOT" - fNoReboot = True - - Case "/NE", "/NOELEVATE" - fNoElevate = True - - Case "/O", "/OSE" - fRemoveOse = True - - Case "/P", "/PREVIEW", "/DETECTONLY" - fDetectOnly = True - - Case "/PASSIVE", "/QB-" - fPassive = True - - Case "/Q", "/QUIET" - fQuiet = True - - Case "/QB" - fQuiet = True - fBasic = True - - Case "/QND" - fBypass_Stage1 = True - fBypass_Stage2 = True - fBypass_Stage3 = True - fRemoveOse = True - fRemoveOspp = True - fRemoveAll = True - fSkipSD = True - fForce = True - - Case "/R", "/RECONCILE" - fTryReconcile = True - - Case "/REMOVEOSPP" , "/CLEANOSPP" - fRemoveOspp = True - - Case "/S", "/SKIPSD", "/SKIPSHORTCUTDETECTION" - fSkipSD = True - - Case "/SC", "/SCANCOMPONENTS" - fBypass_Stage1 = False - - Case Else - - End Select - Next 'iCnt - If Not fLogInitialized Then CreateLog - LogOnly "Arguments: " & sArguments & vbCrLf - -End Sub 'ParseCmdLine -'======================================================================================================= - -Sub CreateLog - Dim DateTime - Dim sLogName - - On Error Resume Next - 'Create the log file - Set DateTime = CreateObject("WbemScripting.SWbemDateTime") - DateTime.SetVarDate Now,True - sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") - sLogName = sLogName & "_" & Left(DateTime.Value,14) - sLogName = sLogName & "_ScrubLog.txt" - Err.Clear - Set LogStream = oFso.CreateTextFile(sLogName,True,True) - If Err <> 0 Then - Err.Clear - sLogDir = sScrubDir - sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") - sLogName = sLogName & "_" & Left(DateTime.Value,14) - sLogName = sLogName & "_ScrubLog.txt" - Set LogStream = oFso.CreateTextFile(sLogName,True,True) - End If - - Log "Microsoft Customer Support Services - " & ONAME & " Removal Utility" & vbCrLf & vbCrLf & _ - "OffScrub Version: " & SCRIPTVERSION & vbCrLf & _ - "64 bit OS: " & f64 - LogOnly "OS Details: " & sOSinfo & vbCrLf - Log "Start removal: " & Now & vbCrLf - fLogInitialized = True -End Sub 'CreateLog -'======================================================================================================= -'------------------------------------------------------------------------------- -' RelaunchAs64Host -' -' Relaunch self with 64 bit WScript host -'------------------------------------------------------------------------------- -Sub RelaunchAs64Host - Dim Argument, sCmd - - sCmd = Replace (LCase(wscript.Path), "syswow64", "sysnative") & "\cscript.exe " & Chr(34) & WScript.scriptFullName & Chr(34) - If fQuiet AND NOT fCScript Then sCmd = Replace (sCmd, "\cscript.exe", "\wscript.exe") - If Wscript.Arguments.Count > 0 Then - For Each Argument in Wscript.Arguments - sCmd = sCmd & " " & chr(34) & Argument & chr(34) - Next 'Argument - Else - If Not sDefault = "" Then sCmd = sCmd & " " & chr(34) & sDefault & chr(34) - End If - sCmd = sCmd & " /ChangedHostBitness" - Wscript.Quit oWShell.Run(sCmd, 1, True) - -End Sub 'RelaunchAs64Host -'======================================================================================================= - -Sub RelaunchAsCScript - Dim Argument - Dim sCmdLine - - sCmdLine = "cmd.exe /c " & WScript.Path & "\cscript.exe //NOLOGO " & Chr(34) & WScript.scriptFullName & Chr(34) - If Wscript.Arguments.Count > 0 Then - For Each Argument in Wscript.Arguments - sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) - Next 'Argument - End If - Log "Relaunching with CScript as host. Full command: " & sCmdLine - Wscript.Quit oWShell.Run(sCmdLine, 1, True) -End Sub 'RelaunchAsCScript -'======================================================================================================= - -Sub RelaunchElevated - Dim Argument - Dim sCmdLine - Dim oShell - - Set oShell = CreateObject("Shell.Application") - - sCmdLine = Chr(34) & WScript.scriptFullName & Chr(34) - If Wscript.Arguments.Count > 0 Then - For Each Argument in Wscript.Arguments - Select Case UCase(Argument) - Case "/Q","/QUIET" - 'Don't try to relaunch in quiet mode - Exit Sub - Case "UAC" - 'Already tried elevated relaunch - Exit Sub - Case Else - sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) - End Select - Next 'Argument - Else - If Not sDefault = "" Then sCmdLine = sCmdLine & " " & chr(34) & sDefault & chr(34) - End If - oShell.ShellExecute "cscript.exe", sCmdLine & " /NoElevate UAC", "", "runas", 1 - Wscript.Quit 5 -End Sub 'RelaunchElevated -'======================================================================================================= - -'Show the expected syntax for the script usage -Sub ShowSyntax - TmpKeyCleanUp - Wscript.Echo sErr & vbCrLf & _ - SCRIPTFILE & " V " & SCRIPTVERSION & vbCrLf & _ - "Copyright (c) Microsoft Corporation. All Rights Reserved" & vbCrLf & vbCrLf & _ - SCRIPTFILE & " helps to remove " & ONAME & " Server & Client products" & vbCrLf & _ - "when a regular uninstall is no longer possible" & vbCrLf & vbCrLf & _ - "Usage:" & vbTab & SCRIPTFILE & " [List of config ProductIDs] [Options]" & vbCrLf & vbCrLf & _ - vbTab & "/? ' Displays this help"& vbCrLf &_ - vbTab & "/Log [LogfolderPath] ' Custom folder for log files" & vbCrLf & _ - vbTab & "/SkipSD ' Skips the ShortcutDetection in local profiles" & vbCrLf & _ - vbTab & "/NoCancel ' Setup.exe and Msiexec.exe have no Cancel button" & vbCrLf &_ - vbTab & "/Quiet ' Script, Setup.exe and Msiexec.exe run quiet with no UI" & vbCrLf &_ - vbTab & "/Preview ' Run this script to preview what would get removed"& vbCrLf & vbCrLf & _ - "Examples:"& vbCrLf & _ - vbTab & SCRIPTFILE & " CLIENTSUITES ' Remove all " & ONAME & " Client suites/products" & vbCrLf &_ - vbTab & SCRIPTFILE & " CLIENTALL ' Remove all " & ONAME & " Client products" & vbCrLf &_ - vbTab & SCRIPTFILE & " SERVER ' Remove all " & ONAME & " Server products" & vbCrLf &_ - vbTab & SCRIPTFILE & " ALL ' Remove all " & ONAME & " Server & Client products" & vbCrLf &_ - vbTab & SCRIPTFILE & " ProPlus,PrjPro ' Remove ProPlus and Project" & vbCrLf - Wscript.Quit -End Sub 'ShowSyntax -'======================================================================================================= -_end_ - -move __createfile "OffScrub_O15msi.vbs" - -waithidden cscript "OffScrub_O15msi.vbs"]]> - -
-
+ + + + + Warning - Unused Microsoft Office 2013 Components can be removed - Windows + This Fixlet uses the Office Cleanup tool to remove a Microsoft Office 2013 Installation.

+

This Fixlet will be relevant if none of the standard office apps (Access, Excel, InfoPath, OneNote, Outlook, Powerpoint, Publisher, or Word) exist on the system but the Office suite still appears in programs and features.

+

For general information or to report issues with C3 Patch content please visit GitHub here: https://github.com/strawgate/C3-Patch

]]>
+ windows of operating system + not exists keys whose (default value of it as string contains (regex "Microsoft (Access|Excel|OneNote|Outlook|Powerpoint|Publisher|Word|InfoPath) MUI.*")) of keys "15.0\Common\InstalledPackages" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Office" of (x32 registries;x64 registries) + exists keys whose (value "DisplayName" of it as string contains "Microsoft Office Professional Plus 2013") of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" of (x32 registries; x64 registries) + Internal + 2017-02-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + "fForce" will kill running applications which can result in data loss! <- CAUTION +Dim fForce : fForce = False +'CAUTION! -> "fForce" will kill running applications which can result in data loss! <- CAUTION +Dim fLogInitialized : fLogInitialized = False +Dim fBypass_Stage1 : fBypass_Stage1 = True 'Component Detection +Dim fBypass_Stage2 : fBypass_Stage2 = False 'Setup +Dim fBypass_Stage3 : fBypass_Stage3 = False 'Msiexec +Dim fBypass_Stage4 : fBypass_Stage4 = False 'CleanUp +Dim fRebootRequired : fRebootRequired = False + +'Create required objects +Set oWmiLocal = GetObject("winmgmts:{{(Debug)}\\.\root\cimv2") +Set oWShell = CreateObject("Wscript.Shell") +Set oShellApp = CreateObject("Shell.Application") +Set oFso = CreateObject("Scripting.FileSystemObject") +Set oMsi = CreateObject("WindowsInstaller.Installer") +Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv") + +'Get environment path info +sAppData = oWShell.ExpandEnvironmentStrings("%appdata%") +sLocalAppData = oWShell.ExpandEnvironmentStrings("%localappdata%") +sTemp = oWShell.ExpandEnvironmentStrings("%temp%") +sAllUsersProfile = oWShell.ExpandEnvironmentStrings("%allusersprofile%") +RegReadValue HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", "ProfilesDirectory", sProfilesDirectory, "REG_EXPAND_SZ" +If NOT oFso.FolderExists(sProfilesDirectory) Then + sProfilesDirectory = oFso.GetParentFolderName(oWShell.ExpandEnvironmentStrings("%userprofile%")) +End If +sProgramFiles = oWShell.ExpandEnvironmentStrings("%programfiles%") +'Deferred until after architecture check +'sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") + +sCommonProgramFiles = oWShell.ExpandEnvironmentStrings("%commonprogramfiles%") +'Deferred until after architecture check +'sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") + +sProgramData = oWSHell.ExpandEnvironmentStrings("%programdata%") +sWinDir = oWShell.ExpandEnvironmentStrings("%windir%") +sWICacheDir = sWinDir & "\" & "Installer" +sScrubDir = sTemp & "\" & SCRIPTNAME +sScriptDir = wscript.ScriptFullName +sScriptDir = Left(sScriptDir, InStrRev(sScriptDir, "\")) + +' Get current script host +fCScript = UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" + +'Detect if we're running on a 64 bit OS +Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_ComputerSystem") +For Each Item In ComputerItem + f64 = Instr(Left(Item.SystemType,3),"64") > 0 + If f64 Then Exit For +Next +If f64 Then sProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%programfiles(x86)%") +If f64 Then sCommonProgramFilesX86 = oWShell.ExpandEnvironmentStrings("%CommonProgramFiles(x86)%") + +'Get OS details and VersionNT +Set ComputerItem = oWmiLocal.ExecQuery("Select * from Win32_OperatingSystem") +For Each Item in ComputerItem + sOSinfo = sOSinfo & Item.Caption + sOSinfo = sOSinfo & Item.OtherTypeDescription + sOSinfo = sOSinfo & ", " & "SP " & Item.ServicePackMajorVersion + sOSinfo = sOSinfo & ", " & "Version: " & Item.Version + sOsVersion = Item.Version + sOSinfo = sOSinfo & ", " & "Codepage: " & Item.CodeSet + sOSinfo = sOSinfo & ", " & "Country Code: " & Item.CountryCode + sOSinfo = sOSinfo & ", " & "Language: " & Item.OSLanguage +Next + +'Build the VersionNT number +arrVersion = Split(sOsVersion, Delimiter(sOsVersion)) +iVersionNt = CInt(arrVersion (0)) * 100 + CInt(arrVersion (1)) + +'Check if we're running as 32 bit process on a 64 bit OS +If InStr(LCase(wscript.path), "syswow64") > 0 Then RelaunchAs64Host + +fElevated = CheckRegPermissions +If NOT fElevated AND NOT fNoElevate Then + 'Try to relaunch elevated + RelaunchElevated + + 'Can't relaunch. Exit out + If UCase(Mid(Wscript.FullName, Len(Wscript.Path) + 2, 1)) = "C" Then + If Not fLogInitialized Then CreateLog + Log "Insufficient registry access permissions - exiting" + End If + 'Undo temporary entries created in ARP + TmpKeyCleanUp + wscript.quit 3 +End If + +'Create Dictionaries +Set dictionaryKeepProd = CreateObject("Scripting.Dictionary") +Set dicInstalledSku = CreateObject("Scripting.Dictionary") +Set dicRemoveSku = CreateObject("Scripting.Dictionary") +Set dictionaryKeepSku = CreateObject("Scripting.Dictionary") +Set dictionaryKeepLis = CreateObject("Scripting.Dictionary") +Set dictionaryKeepFolder = CreateObject("Scripting.Dictionary") +Set dicApps = CreateObject("Scripting.Dictionary") +Set dicDelRegKey = CreateObject("Scripting.Dictionary") +Set dictionaryKeepReg = CreateObject("Scripting.Dictionary") +Set dicSrv = CreateObject("Scripting.Dictionary") +Set dicCSuite = CreateObject("Scripting.Dictionary") +Set dicCSingle = CreateObject("Scripting.Dictionary") + +'Create the temp folder +If Not oFso.FolderExists(sScrubDir) Then oFso.CreateFolder sScrubDir + +'Set the default logging directory +sLogDir = sScrubDir + +'Call the command line parser +ParseCmdLine + +'Ensure CScript as engine +If NOT fCScript AND NOT fQuiet Then RelaunchAsCScript + +'Get Office Install Folder +If NOT RegReadValue(HKLM,"SOFTWARE\Microsoft\Office\"&OVERSION&"\Common\InstallRoot","Path",sOInstallRoot,"REG_SZ") Then + sOInstallRoot = sProgramFiles & "\Microsoft Office\"&OREF +End If + +'Ensure integrity of WI metadata which could fail used APIs otherwise +EnsureValidWIMetadata HKCU,"Software\Classes\Installer\Products",COMPRESSED +EnsureValidWIMetadata HKCR,"Installer\Products",COMPRESSED +EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products",COMPRESSED +EnsureValidWIMetadata HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components",COMPRESSED +EnsureValidWIMetadata HKCR,"Installer\Components",COMPRESSED + +'Add initial known .exe files that might need to be closed +dicApps.Add "communicator.exe", "communicator.exe" +dicApps.Add "setup.exe", "setup.exe" +Select Case OVERSIONMAJOR +Case "12" +Case "14" + dicApps.Add "bcssync.exe","bcssync.exe" + dicApps.Add "officesas.exe","officesas.exe" + dicApps.Add "officesasscheduler.exe","officesasscheduler.exe" + dicApps.Add "msosync.exe","msosync.exe" + dicApps.Add "onenotem.exe","onenotem.exe" +Case "15" +Case Else +End Select + +'------------------- +'Stage # 0 - Basics | +'------------------- +'Build a list with installed/registered Office products +sTmp = "Stage # 0 " & chr(34) & "Basics" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf + +FindInstalledOProducts +If dicInstalledSku.Count > 0 Then Log "Found registered product(s): " & Join(RemoveDuplicates(dicInstalledSku.Items),",") &vbCrLf + +'Validate the list of products we got from the command line if applicable +ValidateRemoveSkuList + +'Log detection results +If dicRemoveSku.Count > 0 Then Log "Product(s) to be removed: " & Join(RemoveDuplicates(dicRemoveSku.Items),",") +sMode = "Selected " & ONAME & " products" +If NOT dicRemoveSku.Count > 0 Then sMode = "Orphaned " & ONAME & " products" +If fRemoveAll Then sMode = "All " & ONAME & " products" +Log "Final removal mode: " & sMode +Log "Remove OSE service: " & fRemoveOse &vbCrLf + +'Log preview mode if applicable +If fDetectOnly Then Log "*************************************************************************" +If fDetectOnly Then Log "* PREVIEW MODE *" +If fDetectOnly Then Log "* All uninstall and delete operations will only be logged not executed! *" +If fDetectOnly Then Log "*************************************************************************" & vbCrLf + +'Check if there are legacy products installed +CheckForLegacyProducts +If fLegacyProductFound Then Log "Found legacy Office products that will not be removed." Else Log "No legacy Office products found." + +'Cache .msi files +If dicRemoveSku.Count > 0 Then CacheMsiFiles + +'Log Sku/Prod detection results +LogSkuResults + +'UnPin Shortcuts +If NOT fSkipSD AND dicRemoveSku.Count > 0 Then + On Error Resume Next + Log " Searching for pinned shortcuts" + CleanShortcuts sAllUsersProfile, False, True + CleanShortcuts sProfilesDirectory, False, True + On Error Goto 0 +End If 'NOT SkipSD + + +'-------------------------------- +'Stage # 1 - Component Detection | +'-------------------------------- +sTmp = "Stage # 1 " & chr(34) & "Component Detection" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage1 OR fForce Then + 'Build a list with files which are installed/registered to a product that's going to be removed + Log "Prepare for CleanUp stages." + Log "Identifying removable elements. This can take several minutes." + ScanComponents +Else + Log "Not running Component Detection in default removal." +End If + +'End all running Office applications +If fForce OR fQuiet OR fPassive Then CloseOfficeApps + +'---------------------- +'Stage # 2 - Setup.exe | +'---------------------- +sTmp = "Stage # 2 " & chr(34) & "Setup.exe" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage2 Then + SetupExeRemoval +Else + Log "Skipping Setup.exe because bypass was requested." +End If + +'------------------------ +'Stage # 3 - Msiexec.exe | +'------------------------ +sTmp = "Stage # 3 " & chr(34) & "Msiexec.exe" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage3 Then + MsiexecRemoval +Else + Log "Skipping Msiexec.exe because bypass was requested." +End If + +'-------------------- +'Stage # 4 - CleanUp | +'-------------------- +'Removal of files and registry settings +sTmp = "Stage # 4 " & chr(34) & "CleanUp" & chr(34) & " (" & Time & ")" +Log vbCrLf & sTmp & vbCrLf & String(Len(sTmp),"=") & vbCrLf +If Not fBypass_Stage4 Then + + 'Office Source Engine + If fRemoveOse Then RemoveOSE + + 'Local Installation Source (MSOCache) + WipeLIS + + 'Obsolete files + If fRemoveAll Then + FileWipeAll + Else + FileWipeIndividual + End If + + 'Empty Folders + DeleteEmptyFolders + + 'Restore Explorer if needed + If fForce OR fQuiet OR fPassive Then RestoreExplorer + + 'Registry data + RegWipe + + 'Wipe orphaned files from Windows Installer cache + MsiClearOrphanedFiles + + 'Temporary .msi files in scrubcache + DeleteMsiScrubCache + + 'Temporary files + DelScrubTmp + +Else + Log "Skipping CleanUp because bypass was requested." +End If + +If Not sMoveMessage = "" Then Log vbCrLf & "Please remove this folder after next reboot: " & sMoveMessage + +'THE END +Log vbCrLf & "End removal: " & Now & vbCrLf +Log vbCrLf & "For detailed logging please refer to the log in folder " &chr(34)&sScrubDir&chr(34)&vbCrLf + +If fRebootRequired Then + Log vbCrLf & "A restart is required to complete the operation!" + If NOT (fQuiet OR fPassive OR fNoReboot) Then + If MsgBox("Do you want to reboot now?",vbYesNo,"Reboot Required") = VB_YES Then + Dim colOS, oOS + Dim oWmiReboot + Set oWmiReboot = GetObject("winmgmts:{{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2") + Set colOS = oWmiReboot.ExecQuery ("Select * from Win32_OperatingSystem") + For Each oOS in colOS + oOS.Reboot() + Next + End If + End If +End If + +If NOT (fQuiet OR fPassive) Then + For Each Item in Wscript.Arguments + If Item = "UAC" Then + If fCscript Then wscript.stdout.write "Press to close this window" + sTemp = wscript.stdin.read(1) + End If + Next 'Argument +End If +'======================================================================================================= +'======================================================================================================= + +'Stage 0 - 4 Subroutines +'======================================================================================================= + +'Office configuration products are listed with their configuration product name in the "Uninstall" key +'To identify an Office configuration product all of these condiditions have to be met: +' - "SystemComponent" does not have a value of "1" (DWORD) +' - "OPACKAGE" (see constant declaration) entry exists and is not empty +' - "DisplayVersion" exists and the 2 leftmost digits are "OVERSIONMAJOR" +Sub FindInstalledOProducts + Dim ArpItem, File + Dim sCurKey, sValue, sConfigName, sProdC, sCVHValue + Dim sProductCodeList, sProductCode + Dim arrKeys, arrMultiSzValues + Dim fSystemComponent0, fPackages, fDisplayVersion, fReturn, fCategorized + + If dicInstalledSku.Count > 0 Then Exit Sub 'Already done from InputBox prompt + + 'Handle orphaned products to get them added to the detection scope + If fTryReconcile Then + For Each File in oFso.GetFolder(sWICacheDir).Files + If Len(File.Name)>3 Then + Select Case LCase(Right(File.Name, 4)) + Case ".msi" + sProductCode = "" + sProductCode = GetMsiProductCode(File.Path) + If InScope(sProductCode) Then + If NOT RegKeyExists(HKLM, REG_ARP & sProductCode) Then + 'Ensure the orphaned item is getting removed + If Len(sSkuRemoveList) > 0 Then + sSkuRemoveList = sSkuRemoveList & "," & GetProductID(Mid(sProductCode, 11, 4)) + Else + sSkuRemoveList = GetProductID(Mid(sProductCode, 11, 4)) + End If + 'Add to ScrubDir + oFso.CopyFile File.Path,sScrubDir & "\" & sProductCode & ".msi",True + 'Register the product with MSI + MsiRegisterProduct File.Path + End If 'NOT sProductCode + End If 'InScope + Case Else + End Select + End If '>3 + Next 'File + End If 'fTryReconcile + + 'Locate standalone Office products that have no configuration product entry and create a + 'temporary configuration entry + ReDim arrTmpSKUs(-1) + If RegEnumKey(HKLM, REG_ARP, arrKeys) Then + For Each ArpItem in arrKeys + If InScope(ArpItem) Then + sCurKey = REG_ARP & ArpItem & "\" + fSystemComponent0 = Not (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) + If fSystemComponent0 Then + RegReadValue HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ" + Redim arrMultiSzValues(0) + 'Logic changed to drop the LCID identifier + 'sConfigName = GetProductID(Mid(ArpItem,11,4)) & "_" & CInt("&h" & Mid(ArpItem,16,4)) + sConfigName = OREGREF & GetProductID(Mid(ArpItem, 11, 4)) + If NOT RegKeyExists(HKLM, REG_ARP&sConfigName) Then + 'Create a new ARP item + ReDim Preserve arrTmpSKUs(UBound(arrTmpSKUs) + 1) + arrTmpSKUs(UBound(arrTmpSKUs)) = sConfigName + oReg.CreateKey HKLM, REG_ARP & sConfigName + arrMultiSzValues(0) = sConfigName + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, OPACKAGE, arrMultiSzValues + arrMultiSzValues(0) = ArpItem + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "Comment", "Temporary OffScrub generated key. Please delete this key!" + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", arrMultiSzValues + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayVersion", sValue + oReg.SetStringValue HKLM, REG_ARP & sConfigName, "DisplayName", SCRIPTNAME & "_" & sConfigName + oReg.SetDWordValue HKLM, REG_ARP & sConfigName, "SystemComponent", 0 + Else + 'Update the existing temporary ARP item + fReturn = RegReadValue(HKLM, REG_ARP&sConfigName, "ProductCodes", sProdC, "REG_MULTI_SZ") + If NOT InStr(sProdC, ArpItem) > 0 Then sProdC = sProdC & chr(34) & ArpItem + oReg.SetMultiStringValue HKLM, REG_ARP & sConfigName, "ProductCodes", Split(sProdC, Chr(34)) + End If 'RegKeyExists + End If 'fSystemComponent0 + End If 'InScope + Next 'ArpItem + End If 'RegEnumKey + + 'Find the configuration products + If RegEnumKey(HKLM, REG_ARP, arrKeys) Then + For Each ArpItem in arrKeys + sCurKey = REG_ARP & ArpItem & "\" + sValue = "" + fSystemComponent0 = NOT (RegReadValue(HKLM, sCurKey, "SystemComponent", sValue, "REG_DWORD") AND (sValue = "1")) + fPackages = RegReadValue(HKLM, sCurKey, OPACKAGE, sValue, "REG_MULTI_SZ") + fDisplayVersion = RegReadValue(HKLM, sCurKey, "DisplayVersion", sValue, "REG_SZ") + If fDisplayVersion Then + If Len(sValue) > 1 Then + fDisplayVersion = (Left(sValue, 2) = OVERSIONMAJOR) + Else + fDisplayVersion = False + End If + End If + 'fSystemComponent0 filter causes issues if the ARP entries have been hidden + 'If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then + If (fPackages AND fDisplayVersion) Then + If InStr(ArpItem,".") > 0 Then sConfigName = UCase(Mid(ArpItem, InStr(ArpItem, ".") + 1)) Else sConfigName = UCase(ArpItem) + If NOT dicInstalledSku.Exists(sConfigName) Then dicInstalledSku.Add sConfigName, sConfigName + + 'Categorize the SKU + 'Four categories are available: ClientSuite, ClientSingleProduct, Server, C2R + If RegReadValue(HKLM, REG_ARP & OREGREF & sConfigName, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then + fCategorized = False + For Each sProductCode in Split(sProductCodeList, Chr(34)) + If Len(sProductCode) = 38 Then + If Mid(sProductCode, 11, 1) = "1" Then + 'Server product + If NOT dicSrv.Exists(UCase(sConfigName)) Then dicSrv.Add UCase(sConfigName), sConfigName + fCategorized = True + Exit For + Else + Select Case Mid(sProductCode, 11, 4) + 'Client Suites + Case "000F","0011","0012","0013","0014","0015","0016","0017","0018","0019","001A","001B","0029","002B","002E","002F","0030","0031","0033","0035","0037","003D","0044","0049","0061","0062","0066","006C","006D","006F","0074","00A1","00A3","00A9","00BA","00CA","00E0","0100","0103","011A" + If NOT dicCSuite.Exists(UCase(sConfigName)) Then dicCSuite.Add UCase(sConfigName), sConfigName + fCategorized = True + Exit For + + Case "007E", "008F", "008C", "24E1", "237A" + If NOT dictionaryKeepProd.Exists(sProductCode) Then dictionaryKeepProd.Add sProductCode, sConfigName + fC2rInstalled = True + Case Else + End Select + End If + End If 'Len 38 + Next 'sProductCode + If NOT fCategorized Then + If NOT dicCSingle.Exists(UCase(sConfigName)) Then dicCSingle.Add UCase(sConfigName), sConfigName + End If 'fCategorized + End If 'RegReadValue "ProductCodes" + End If + Next 'ArpItem + End If 'RegEnumKey +End Sub 'FindInstalledOProducts +'======================================================================================================= + +'Check if there are Office products from previous versions on the computer +Sub CheckForLegacyProducts + Const OLEGACY = "78E1-11D2-B60F-006097C998E7}.6000-11D3-8CFE-0050048383C9}.6000-11D3-8CFE-0150048383C9}.BDCA-11D1-B7AE-00C04FB92F3D}.6D54-11D4-BEE3-00C04F990354}" + Dim Product + + 'Set safe default + fLegacyProductFound = True + + For Each Product in oMsi.Products + If Len(Product) = 38 Then + 'Handle O09 - O11 Products + If InStr(OLEGACY, UCase(Right(Product, 28))) > 0 Then + 'Found legacy Office product. Keep flag in default and exit + Exit Sub + End If + If UCase(Right(Product,PRODLEN)) = OFFICEID Then + Select Case Mid(Product,4,2) + Case "12", "14" + 'Found legacy Office product. Keep flag in default and exit + Exit Sub + Case Else + End Select + End If + End If '38 + Next 'Product + fLegacyProductFound = False + +End Sub 'CheckForLegacyProducts +'======================================================================================================= + +'Create clean list of Products to remove. +'Strip off bad & empty contents +Sub ValidateRemoveSkuList + Dim Sku, Key, sProductCode, sProductCodeList + Dim arrRemoveSKUs + + If fRemoveAll Then + 'Remove all mode + For Each Key in dicInstalledSku.Keys + dicRemoveSku.Add Key,dicInstalledSku.Item(Key) + Next 'Key + Else + 'Remove individual products or preconfigured configurations mode + + 'Ensure to have a string with no unexpected contents + sSkuRemoveList = Replace(sSkuRemoveList,";",",") + sSkuRemoveList = Replace(sSkuRemoveList," ","") + sSkuRemoveList = Replace(sSkuRemoveList,Chr(34),"") + While InStr(sSkuRemoveList,",,")>0 + sSkuRemoveList = Replace(sSkuRemoveList,",,",",") + Wend + + 'Prepare 'remove' and 'keep' dictionaries to determine what has to be removed + + 'Initial pre-fill of 'keep' dic + For Each Key in dicInstalledSku.Keys + dictionaryKeepSku.Add Key,dicInstalledSku.Item(Key) + Next 'Key + + 'Determine contents of keep and remove dic + 'Individual products + arrRemoveSKUs = Split(UCase(sSkuRemoveList),",") + For Each Sku in arrRemoveSKUs + If Sku = "OSE" Then fRemoveOse = True + If dictionaryKeepSku.Exists(Sku) Then + 'A Sku to remove has been passed in + 'remove the item from the keep dic + dictionaryKeepSku.Remove(Sku) + 'Now add it to the remove dic + If NOT dicRemoveSku.Exists(Sku) Then dicRemoveSku.Add Sku,Sku + End If + Next 'Sku + + 'Client Suite Category + If fRemoveCSuites Then + For Each Key in dicInstalledSku.Keys + If dicCSuite.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveCSuites + + 'Client Single/Standalone Category + If fRemoveCSingle Then + For Each Key in dicInstalledSku.Keys + If dicCSingle.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveCSingle + + 'Server Category + If fRemoveSrv Then + For Each Key in dicInstalledSku.Keys + If dicSrv.Exists(Key) Then + If dictionaryKeepSku.Exists(Key) Then dictionaryKeepSku.Remove(Key) + If NOT dicRemoveSku.Exists(Key) Then dicRemoveSku.Add Key,Key + End If + Next 'Key + End If 'fRemoveSrv + + If NOT dictionaryKeepSku.Count > 0 Then fRemoveAll = True + + End If 'fRemoveAll + + 'Fill the KeepProd dic + For Each Sku in dictionaryKeepSku.Keys + If RegReadValue(HKLM, REG_ARP & OREGREF & Sku, "ProductCodes", sProductCodeList, "REG_MULTI_SZ") Then + For Each sProductCode in Split(sProductCodeList, chr(34)) + If Len(sProductCode) = 38 Then + If NOT dictionaryKeepProd.Exists(sProductCode) Then + dictionaryKeepProd.Add sProductCode, Sku + ' also add the UpgradeCode + If Not dictionaryKeepProd.Exists(GetUpgradeCode(sProductCode)) Then dictionaryKeepProd.Add GetUpgradeCode(sProductCode), Sku & "_UpgradeCode" + End If + End If '38 + Next 'sProductCode + End If + Next 'Sku + + If fRemoveAll OR fRemoveOse Then CheckRemoveOSE + If fRemoveAll OR fRemoveOspp Then CheckRemoveOspp + +End Sub 'ValidateRemoveSkuList +'======================================================================================================= + +'Check if OSE service can be scrubbed +Sub CheckRemoveOSE + Const O11 = "6000-11D3-8CFE-0150048383C9}" + Dim Product + + If fRemoveOse Then Exit Sub + For Each Product in oMsi.Products + If Len(Product) = 38 Then + If UCase(Right(Product, 28)) = O11 Then + 'Found Office 2003 Product. Set flag to not remove the OSE service + Exit Sub + End If + If UCase(Right(Product, PRODLEN))= OFFICEID Then + Select Case Mid(Product, 4, 2) + Case "12","14","15","16","17" + If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then + 'Found another Office product. Set flag to keep the OSE service + fRemoveOse = False + Exit Sub + End If + Case Else + End Select + End If + End If '38 + Next 'Product + fRemoveOse = True +End Sub 'CheckRemoveOSE +'======================================================================================================= + +'Check if OSPP service can be scrubbed +Sub CheckRemoveOSPP + Dim Product + + If NOT CInt(OVERSIONMAJOR) > 12 Then + fRemoveOspp = False + Exit Sub + End If + + If fRemoveOspp Then Exit Sub + + If fC2rInstalled Then + fRemoveOspp = False + Exit Sub + End If + + For Each Product in oMsi.Products + If Len(Product) = 38 Then + If UCase(Right(Product, PRODLEN)) = OFFICEID Then + Select Case Mid(Product, 4, 2) + Case "14","15","16","17" + If NOT Mid(Product, 4, 2) = OVERSIONMAJOR Then + 'Found another Office product. Set flag to keep the OSPP service + fRemoveOspp = False + Exit Sub + End If + Case Else + End Select + End If + End If '38 + Next 'Product + fRemoveOspp = True +End Sub 'CheckRemoveOSPP +'======================================================================================================= + +'Cache .msi files for products that will be removed in case they are needed for later file detection +Sub CacheMsiFiles + Dim Product + Dim sMsiFile + + 'Non critical routine for failures. + 'Errors will be logged but must not fail the execution + On Error Resume Next + Log " Cache .msi files to temporary Scrub folder" + 'Cache the files + For Each Product in oMsi.Products + 'Ensure valid GUID length + If CheckDeleteEx(Product) Then + CheckError "CacheMsiFiles" + sMsiFile = oMsi.ProductInfo(Product,"LocalPackage") : CheckError "CacheMsiFiles" + LogOnly " - " & Product & ".msi" + If oFso.FileExists(sMsiFile) Then oFso.CopyFile sMsiFile,sScrubDir & "\" & Product & ".msi",True + CheckError "CacheMsiFiles" + End If 'InScope + Next 'Product + + Err.Clear +End Sub 'CacheMsiFiles +'======================================================================================================= + +'Build a list of all files that will be deleted +Sub ScanComponents + Const MSIINSTALLSTATE_LOCAL = 3 + + Dim FileList, RegList, ComponentID, CompClient, Record, qView, MsiDb, CompVerbose + Dim Processes, Process, Prop, prod + Dim sQuery, sSubKeyName, sPath, sFile, sMsiFile, sCompClient, sComponent, sCompReg + Dim fRemoveComponent, fAffectedComponent, fIsPermanent, fIsFile, fIsFolder + Dim i, iProgress, iCompCnt, iRemCnt + Dim dicFLError, oDic, oFolderDic, dicCompPath + Dim hDefKey + + 'Logfile + Set FileList = oFso.OpenTextFile(sScrubDir & "\FileList.txt",FOR_WRITING,True,True) + Set RegList = oFso.OpenTextFile(sScrubDir & "\RegList.txt",FOR_WRITING,True,True) + Set CompVerbose = oFso.OpenTextFile(sScrubDir & "\CompVerbose.txt",FOR_WRITING,True,True) + + 'FileListError dic + Set dicFLError = CreateObject("Scripting.Dictionary") + + Set oDic = CreateObject("Scripting.Dictionary") + Set oFolderDic = CreateObject("Scripting.Dictionary") + Set dicCompPath = CreateObject("Scripting.Dictionary") + + 'Prevent that API errors fail script execution + On Error Resume Next + + iCompCnt = oMsi.Components.Count + If NOT Err = 0 Then + 'API failure + Log "Error during components detection. Cannot complete this task." + Err.Clear + Exit Sub + End If + + 'Ensure to not divide by zero + If iCompCnt = 0 Then iCompCnt = 1 + LogOnly " Scanning " & iCompCnt & " components" + 'Enum all Components + For Each ComponentID In oMsi.Components + CompVerbose.WriteLine vbCrLf & "Checking Component: " & ComponentID + + 'Progress bar + i = i + 1 + If iProgress < (i / iCompCnt) * 100 Then + If fCScript Then wscript.stdout.write "." : LogStream.Write "." + iProgress = iProgress + 1 + If iProgress = 35 OR iProgress = 70 Then Log "" + End If + + 'Check if all ComponentClients will be removed + sCompClient = "" + iRemCnt = 0 + fIsPermanent = False + fRemoveComponent = False 'Flag to track if the component will be completely removed + fAffectedComponent = False 'Flag to track if some clients remain installed who have a none shared location + dicCompPath.RemoveAll + Err.Clear + For Each CompClient In oMsi.ComponentClients(ComponentID) + CompVerbose.Write " CompClient " & CompClient & "-> " + If Err = 0 Then + 'Ensure valid guid length + If Len(CompClient) = 38 Then + fRemoveComponent = InScope(CompClient) + If fRemoveComponent OR (CompClient = "{{00000000-0000-0000-0000-000000000000}") Then + sPath = "" + sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + 'Scan for msidbComponentAttributesPermanent flag + If CompClient = "{{00000000-0000-0000-0000-000000000000}" Then + fIsPermanent = True + iRemCnt = iRemCnt + 1 + End If + If fRemoveComponent Then fRemoveComponent = CheckDelete(CompClient) + CompVerbose.Write "CheckDelete: " & fRemoveComponent & "; " + If fRemoveComponent Then + iRemCnt = iRemCnt + 1 + fAffectedComponent = True + 'Since the scope remains within one Office family the keypath for the component + 'is assumed to be identical + If sCompClient = "" Then sCompClient = CompClient + ' flag the CompClient entry for removal + sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKCR + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\"&GetCompressedGuid(CompClient) + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKLM + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + Else + If NOT dicCompPath.Exists(sPath) Then dicCompPath.Add sPath,CompClient + End If + CompVerbose.WriteLine "AffectedComponent: " & fAffectedComponent + CompVerbose.WriteLine " CompClient now set to: " & sCompClient + Else + CompVerbose.Write "InScope: " & fRemoveComponent & "; " + End If + Else + CompVerbose.WriteLine "Error: Invalid metadata" + If NOT dicFLError.Exists("Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient) Then _ + dicFLError.Add "Error: Invalid metadata found. ComponentID: "&ComponentID &", ComponentClient: "&CompClient, ComponentID + End If '38 + Else + CompVerbose.WriteLine "Error: " & Err.number & " " & Err.Description + Err.Clear + End If 'Err = 0 + Next 'CompClient + + 'Determine if the component resources go away + sPath = "" + fRemoveComponent = fAffectedComponent AND (iRemCnt = oMsi.ComponentClients(ComponentID).Count) + CompVerbose.WriteLine " Component goes away: " & fRemoveComponent +' This caused unintentional removals +' If NOT fRemoveComponent AND fAffectedComponent Then +' 'Flag as removable if component has a unique keypath +' sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) +' sPath = Replace(sPath,"?",":") +' fRemoveComponent = NOT dicCompPath.Exists(sPath) +' End If + If fRemoveComponent Then + 'Check msidbComponentAttributesPermanent flag + If fIsPermanent AND NOT fForce Then fRemoveComponent = False + CompVerbose.WriteLine " msidbComponentAttributesPermanent: " & NOT fRemoveComponent + End If + + If fRemoveComponent Then + CompVerbose.WriteLine " RESULT: Component IN SCOPE for removal" + fIsFile = False : fIsFolder = False + + 'Component resources go away for this product + Err.Clear + 'Add the component registration key to ensure removal + sCompReg = "Installer\Components\"&GetCompressedGuid(ComponentID)&"\" + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKCR + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + sCompReg = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\"&GetCompressedGuid(ComponentID)&"\" + If NOT dicDelRegKey.Exists(sCompReg) Then + dicDelRegKey.Add sCompReg,HKLM + RegList.WriteLine HiveString(HKCR)&"\"&sCompReg + End If + 'Get the component path + If sPath = "" Then + sPath = LCase(oMsi.ComponentPath(sCompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + End If + CompVerbose.WriteLine " Path: " & sPath + If Len(sPath) > 4 Then + If Left(sPath,1) = "0" Then + 'Registry keypath + + Select Case Left(sPath,2) + Case "00" + sPath = Mid(sPath,5) + hDefKey = HKCR + Case "01" + sPath = Mid(sPath,5) + hDefKey = HKCU + Case "02","22" + sPath = Mid(sPath,5) + hDefKey = HKLM + Case Else + ' + End Select + + 'Go for the safe way and just reset the default entry + 'compared to deleting the whole key + If Right(sPath,1) = "\" Then sPath = sPath & "(Default)" + + If NOT dicDelRegKey.Exists(sPath) Then + dicDelRegKey.Add sPath,hDefKey + RegList.WriteLine HiveString(hDefKey)&"\"&sPath + End If + Else + + 'File or Folder + If oFso.FileExists(sPath) OR oFso.FolderExists(sPath) Then + If Right(sPath,1) = "\" Then + fIsFolder = True + CompVerbose.WriteLine " Folder check OK" + Else + fIsFile = True + CompVerbose.WriteLine " File check OK" + End If + If fIsFile Then sPath = oFso.GetFile(sPath).ParentFolder + If Not oFolderDic.Exists(sPath) Then + oFolderDic.Add sPath,sPath + FileList.WriteLine sPath & vbTab & "(FOLDER)" + End If + 'Get the .msi file + If oFso.FileExists(sScrubDir & "\" & sCompClient & ".msi") Then + sMsiFile = sScrubDir & "\" & sCompClient & ".msi" + Else + sMsiFile = oMsi.ProductInfo(sCompClient,"LocalPackage") + End If + CompVerbose.WriteLine " Set msi file to : " & sMsiFile + If Not Err = 0 Then + CompVerbose.WriteLine " Error: Failed to obtain .msi file for product " & sCompClient + If NOT dicFLError.Exists("Failed to obtain .msi file for product "&sCompClient) Then _ + dicFLError.Add "Failed to obtain .msi file for product "&sCompClient, ComponentID + Err.Clear + End If + CompVerbose.Write " Open .msi file for reading returned: " + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + + If Err = 0 Then + CompVerbose.WriteLine " SUCCESS" + 'Get the component name from the 'Component' table + sQuery = "SELECT `Component`,`ComponentId` FROM Component WHERE `ComponentId` = '" & ComponentID &"'" + Set qView = MsiDb.OpenView(sQuery) : qView.Execute + Set Record = qView.Fetch() + If Not Record Is Nothing Then sComponent = Record.Stringdata(1) + CompVerbose.WriteLine " Obtained ComponentId as: " & sComponent + + 'Get filenames from the 'File' table + sQuery = "SELECT `Component_`,`FileName` FROM File WHERE `Component_` = '" & sComponent &"'" + Set qView = MsiDb.OpenView(sQuery) : qView.Execute + Set Record = qView.Fetch() + Do Until Record Is Nothing + 'Read the filename + sFile = Record.StringData(2) + If InStr(sFile,"|") > 0 Then sFile = Mid(sFile,InStr(sFile,"|")+1,Len(sFile)) + 'sFile = sPath & "\" & sFile + CompVerbose.WriteLine " File: " & sPath& "\" & sFile + If Not oDic.Exists(sPath & "\" & sFile) Then + 'Exception handler + fAdd = True + Select Case UCase(sFile) + Case "FPERSON.DLL" + 'Catch exception caused by changed .msi keypath authoring logic for smart tags + For Each prod in oMsi.Products + If NOT Checkdelete(prod) Then + If oMsi.FeatureState(prod, "MSTagPluginNamesFiles") = MSIINSTALLSTATE_LOCAL Then + fAdd = False + Exit For + End If + End If + Next 'prod + Case Else + End Select + If fAdd Then + CompVerbose.WriteLine " Added as new file to dictionary" + oDic.Add sPath & "\" & sFile,sFile + FileList.WriteLine sFile & vbTab & sPath & "\" & sFile + If Len(sFile)>4 Then + sFile = LCase(sFile) + If Right(sFile,4) = ".exe" Then + If NOT dicApps.Exists(sFile) Then + Select Case sFile + Case "setup.exe","ose.exe","osppsvc.exe","explorer.exe" + Case Else + dicApps.Add sFile,LCase(sPath) & "\" & sFile + CompVerbose.WriteLine " Added to the list of processes that need to be closed." + End Select + End If 'dicApps.Exists + End If '.exe + End If 'Len > 4 + End If 'fAdd + End If 'oDic.Exists + Set Record = qView.Fetch() + Loop + Set Record = Nothing + qView.Close + Set qView = Nothing + Else + CompVerbose.WriteLine " Error: Could not read from .msi file" + If NOT dicFLError.Exists("Error: Could not read from .msi file: "&sMsiFile) Then _ + dicFLError.Add "Error: Could not read from .msi file: "&sMsiFile, ComponentID + Err.Clear + End If 'Err = 0 + Else + CompVerbose.WriteLine " Error: File check FAILED" + End If 'FileExists(sPath) + End If + End If 'Len(sPath) > 4 + Else + CompVerbose.WriteLine " RESULT: Component NOT in scope for removal" + If fAffectedComponent Then + 'Add the path to the 'Keep' dictionary + Err.Clear + For Each CompClient In oMsi.ComponentClients(ComponentID) + 'Get the component path + sPath = "" : sPath = LCase(oMsi.ComponentPath(CompClient,ComponentID)) + sPath = Replace(sPath,"?",":") + + If Len(sPath) > 4 Then + If Left(sPath,1) = "0" Then + 'Registry keypath + + Select Case Left(sPath,2) + Case "00" + sPath = Mid(sPath,5) + hDefKey = HKCR + Case "01" + sPath = Mid(sPath,5) + hDefKey = HKCU + Case "02","22" + sPath = Mid(sPath,5) + hDefKey = HKLM + Case Else + ' + End Select + If NOT dictionaryKeepReg.Exists(LCase(sPath)) Then + dictionaryKeepReg.Add LCase(sPath),hDefKey + End If + Else + 'File keypath + If oFso.FileExists(sPath) Then + If NOT dictionaryKeepFolder.Exists(LCase(sPath)) Then dictionaryKeepFolder.Add LCase(sPath) + sPath = LCase(oFso.GetFile(sPath).ParentFolder) & "\" + If NOT dictionaryKeepFolder.Exists(sPath) Then AddKeepFolder sPath + End If + 'Folder keypath + If oFso.FolderExists(sPath) Then AddKeepFolder sPath + End If 'Is Registry + End If 'sPath > 4 + Next 'CompClient + End If 'fAffectedComponent + End If 'fRemoveComponent + Err.Clear + Next 'ComponentID + On Error Goto 0 + + Log " Done" & vbCrLf + If dicFLError.Count > 0 Then LogOnly Join(dicFLError.Keys,vbCrLf) + If Not oFolderDic.Count = 0 Then arrDeleteFolders = oFolderDic.Keys Else Set arrDeleteFolders = Nothing + If Not oDic.Count = 0 Then arrDeleteFiles = oDic.Keys Else Set arrDeleteFiles = Nothing +End Sub 'ScanComponents +'======================================================================================================= + + +'Try to remove the products by calling setup.exe +Sub SetupExeRemoval + Dim OseService, Service, TextStream + Dim iSetupCnt, RetVal + Dim Sku, sConfigFile, sUninstallCmd, sCatalyst, sDll, sDisplayLevel, sNoCancel + iSetupCnt = 0 + If Not dicRemoveSku.Count > 0 Then + Log " Nothing to remove for Setup.exe" + Exit Sub + End If + + 'Ensure that the OSE service is *installed, *not disabled, *running under System context. + 'If validation fails exit out of this sub. + Set OseService = oWmiLocal.Execquery("Select * From Win32_Service Where Name like 'ose%'") + If OseService.Count = 0 Then Exit Sub + For Each Service in OseService + If (Service.StartMode = "Disabled") AND (Not Service.ChangeStartMode("Manual")=0) Then Exit Sub + If (Not Service.StartName = "LocalSystem") AND (Service.Change( , , , , , , "LocalSystem", "")) Then Exit Sub + Next 'Service + + For Each Sku in dicRemoveSku.Keys + + If Sku="CLICK2RUN" Then + 'Already done + Else + 'Create an "unattended" config.xml file for uninstall + If fQuiet Then sDisplayLevel = "None" Else sDisplayLevel="Basic" + If fNoCancel Then sNoCancel="Yes" Else sNoCancel="No" + Set TextStream = oFso.OpenTextFile(sScrubDir & "\config.xml",FOR_WRITING,True,True) + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Writeline "" + TextStream.Close + Set TextStream = Nothing + + 'Ensure path to setup.exe is valid to prevent errors + sDll = "" + If RegReadValue(HKLM,REG_ARP & OREGREF & Sku,"UninstallString",sCatalyst,"REG_SZ") Then + If InStr(LCase(sCatalyst),"/dll")>0 Then sDll = Right(sCatalyst,Len(sCatalyst)-InStr(LCase(sCatalyst),"/dll")+2) + If InStr(sCatalyst,"/")>0 Then sCatalyst = Left(sCatalyst,InStr(sCatalyst,"/")-1) + sCatalyst = Trim(Replace(sCatalyst,Chr(34),"")) + If NOT oFso.FileExists(sCatalyst) Then + sCatalyst = sCommonProgramFiles & "\" & OREF & "\Office Setup Controller\setup.exe" + If NOT oFso.FileExists(sCatalyst) AND f64 Then + sCatalyst = sCommonProgramFilesX86 & "" & OREF & "\Office Setup Controller\setup.exe" + End If + End If + If oFso.FileExists(sCatalyst) Then + sUninstallCmd = Chr(34) & sCatalyst & Chr(34) & " /uninstall " & Sku & " /config " & Chr(34) & sScrubDir & "\config.xml" & Chr(34) & sDll + iSetupCnt = iSetupCnt + 1 + Log " - Calling Setup.exe to remove " & Sku '& vbCrLf & sUninstallCmd + If Not fDetectOnly Then + On Error Resume Next + ' end other instances of setup + EndCurrentInstalls + ' call uninstall + RetVal = oWShell.Run(sUninstallCmd,0,True) : CheckError "SetupExeRemoval" + Log " - Setup.exe returned: " & SetupRetVal(Retval) & " (" & RetVal & ")" & vbCrLf + fRebootRequired = fRebootRequired OR (RetVal = "3010") + On Error Goto 0 + Else + Log " -> Removal suppressed in preview mode." + End If + Else + Log " Error: Office setup.exe appears to be missing" + End If 'RetVal = 0) AND oFso.FileExists + End If 'RegReadValue + End If + Next 'Sku + If iSetupCnt = 0 Then Log " Nothing to remove for setup." +End Sub 'SetupExeRemoval +'======================================================================================================= + +'Invoke msiexec to remove individual .MSI packages +Sub MsiexecRemoval + + Dim Product + Dim i + Dim sCmd, sReturn, sMsiProp + Dim fRegWipe + + fRegWipe = False + + Select Case OVERSIONMAJOR + Case "11" + sMsiProp = " REBOOT=ReallySuppress NOLOCALCACHEROLLBACK=1" + Case "12" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case "14" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case "15" + fRegWipe = True + sMsiProp = " REBOOT=ReallySuppress NOREMOVESPAWN=True" + Case Else + End Select + + 'Clear up ARP first to avoid possible custom action dependencies + If fRegWipe Then RegWipeARP + + 'Check MSI registered products + 'Office System does only support per machine installation so it's sufficient to use Installer.Products + i = 0 + sMsiProp = " MSIRESTARTMANAGERCONTROL=Disable" & sMsiProp + For Each Product in oMsi.Products + If CheckDeleteEx(Product) Then + i = i + 1 + Log " Calling msiexec.exe to remove " & Product + sCmd = "msiexec.exe /x" & Product & sMsiProp + If fQuiet AND NOT fBasic Then + sCmd = sCmd & " /q" + Else + sCmd = sCmd & " /qb-" + End If + sCmd = sCmd & " /l*v+ "&chr(34)&sLogDir&"\Uninstall_"&Product&".log"&chr(34) + If NOT fDetectOnly Then + ' end other instances of setup + EndCurrentInstalls + + 'Execute the uninstall + LogOnly " - Calling msiexec with '"&sCmd&"'" + sReturn = oWShell.Run(sCmd, 0, True) + Log " - msiexec returned: " & SetupRetVal(sReturn) & " (" & sReturn & ")" & vbCrLf + fRebootRequired = fRebootRequired OR (sReturn = "3010") OR (sReturn = "1618") + Else + Log " -> Removal suppressed in preview mode." + LogOnly " -> Command: "&sCmd + End If + End If 'InScope + Next 'Product + If i = 0 Then Log " Nothing to remove for msiexec" +End Sub 'MsiexecRemoval +'======================================================================================================= + +'Remove the OSE (Office Source Engine) service +Sub RemoveOSE + On Error Resume Next + Log vbCrLf & "OSE CleanUp" + DeleteService "ose" + 'Delete the folder + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\Source Engine" + 'Delete the registration + RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\ose\" +End Sub 'RemoveOSE +'======================================================================================================= + + +'File cleanup operations for the Local Installation Source (MSOCache) +Sub WipeLIS + Const LISROOT = "MSOCache\All Users\" + Dim LogicalDisks, Disk, Folder, SubFolder, MseFolder, File, Files + Dim arrSubFolders + Dim sFolder + Dim fRemoveFolder + + Log vbCrLf & "LIS CleanUp" + 'Search all hard disks + Set LogicalDisks = oWmiLocal.ExecQuery("Select * From Win32_LogicalDisk WHERE DriveType=3") + For Each Disk in LogicalDisks + If oFso.FolderExists(Disk.DeviceID & "\" & LISROOT) Then + Set Folder = oFso.GetFolder(Disk.DeviceID & "\" & LISROOT) + For Each Subfolder in Folder.Subfolders + If Len(Subfolder) > 37 Then + If fRemoveAll Then + If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) OR _ + LCase(Right(Subfolder.Name,7)) = OVERSIONMAJOR &".data" Then DeleteFolder Subfolder.Path + Else + If (Mid(Subfolder.Name,27,PRODLEN) = OFFICEID AND Mid(SubFolder.Name,4,2)=OVERSIONMAJOR) AND _ + CheckDelete(UCase(Left(Subfolder.Name,38))) AND _ + UCase(Right(Subfolder,1))= UCase(Left(Disk.DeviceID,1))Then DeleteFolder Subfolder.Path + End If + End If 'Len > 37 + Next 'Subfolder + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + sFolder = Folder.Path + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If 'oFso.FolderExists + Next 'Disk + + 'MSECache + If EnumFolders(sProgramFiles,arrSubFolders) Then + For Each SubFolder in arrSubFolders + If UCase(Right(SubFolder,9))="\MSECACHE" Then + ReDim arrMseFolders(-1) + Set Folder = oFso.GetFolder(SubFolder) + GetMseFolderStructure Folder + For Each MseFolder in arrMseFolders + If oFso.FolderExists(MseFolder) Then + fRemoveFolder = False + Set Folder = oFso.GetFolder(MseFolder) + Set Files = Folder.Files + For Each File in Files + If (LCase(Right(File.Name,4))=".msi") Then + If CheckDelete(ProductCode(File.Path)) Then + fRemoveFolder = True + Exit For + End If 'CheckDelete + End If + Next 'File + Set Files = Nothing + Set Folder = Nothing + If fRemoveFolder Then SmartDeleteFolder MseFolder + End If 'oFso.FolderExists(MseFolder) + Next 'MseFolder + End If + Next 'SubFolder + End If 'oFso.FolderExists +End Sub 'WipeLis +'======================================================================================================= + +'Wipe files and folders as documented in KB 928218 +Sub FileWipeAll + Dim sFolder + Dim Folder, Subfolder + + If fForce OR fQuiet OR fPassive Then CloseOfficeApps + + 'Handle other services. + Select Case OVERSIONMAJOR + Case "11" + Case "12" + Case "14" + DeleteService "odserv" + DeleteService "Microsoft Office Groove Audit Service" + DeleteService "Microsoft SharePoint Workspace Audit Service" + Case "15" + Case Else + End Select + + 'User specific files + If NOT fKeepUser Then + 'Delete files that should be backed up before deleting them + CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normal.dotm" + CopyAndDeleteFile sAppdata & "\Microsoft\Templates\Normalemail.dotm" + sFolder = sAppdata & "\microsoft\document building blocks" + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder In Folder.Subfolders + If oFso.FileExists(Subfolder & "\blocks.dotx") Then CopyAndDeleteFile Subfolder & "\blocks.dotx" + Next 'Subfolder + Set Folder = Nothing + End If 'oFso.FolderExists(sFolder) + End If + + 'Run the individual filewipe from component detection first + FileWipeIndividual + If fC2rInstalled AND NOT fForce Then Exit Sub + + 'Take care of the rest + DeleteFolder sOInstallRoot + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF + DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" + DeleteFile sAllUsersProfile & "\Application Data\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" + DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".dat" + DeleteFile sAllUsersProfile & "\Microsoft\Office\Data\opa"&OVERSIONMAJOR&".bak" + If (fRemoveOspp OR fForce) AND CInt(OVERSIONMAJOR) > 12 Then + If CInt(OVERSIONMAJOR) = 15 Then CleanOSPP + DeleteService "osppsvc" + DeleteFolder sCommonProgramFiles & "\Microsoft Shared\OfficeSoftwareProtectionPlatform" + DeleteFolder sAllUsersProfile & "\Microsoft\OfficeSoftwareProtectionPlatform" + End If + Select Case OVERSIONMAJOR + Case "12" + Case "14" + DeleteFile oWShell.SpecialFolders("AllUsersStartup")&"\OfficeSAS.lnk" + DeleteFile oWShell.SpecialFolders("Startup")&"\OneNote 2010 Screen Clipper and Launcher.lnk" + Case "15" + Case Else + End Select + DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" & OREF + DeleteEmptyFolder sCommonProgramFiles & "\Microsoft Shared\" + DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" & OREF + DeleteEmptyFolder sProgramFiles & "\Microsoft Office\" + +End Sub 'FileWipeAll +'======================================================================================================= + +'Wipe individual files & folders related to SKU's that are no longer installed +Sub FileWipeIndividual + Dim LogicalDisks, Disk,sc + Dim File, Files, XmlFile, scFiles, oFile, Folder, SubFolder, Processes, Process, item + Dim sFile, sFolder, sPath, sConfigName, sContents, sProductCode, sLocalDrives,sScQuery + Dim sValue, sScRoots + Dim arrSubfolders, arrShortCutRoots + Dim fKeepFolder, fDeleteSC + Dim iRet,iCnt,iPos + + Log vbCrLf & "File CleanUp" + If IsArray(arrDeleteFiles) Then + If fForce OR fQuiet Then + Log " Doing Action: StopOSE" + iRet = StopService("ose") + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like 'ose%.exe'") + For Each Process in Processes + LogOnly " - Running process : " & Process.Name + Log " -> Ending process: " & Process.Name + iRet = Process.Terminate() + Next 'Process + LogOnly " End Action: StopOSE" + CloseOfficeApps + End If + 'Wipe individual files detected earlier + LogOnly " Removing left behind files" + For Each sFile in arrDeleteFiles + If oFso.FileExists(sFile) Then DeleteFile sFile + Next 'File + End If 'IsArray + + 'Wipe Catalyst in commonfiles + sFolder = sCommonProgramFiles & "\microsoft shared\"&OREF&"\Office Setup Controller\" + If EnumFolderNames(sFolder,arrSubFolders) Then + For Each SubFolder in arrSubFolders + sPath = sFolder & SubFolder + If InStr(SubFolder, ".") > 0 Then sConfigName = UCase(Left(SubFolder, InStr(SubFolder, ".") - 1)) Else sConfigName = UCase(Subfolder) + If GetFolderPath(sPath) Then + Set Folder = oFso.GetFolder(sPath) + Set Files = Folder.Files + fKeepFolder = False + For Each File In Files + If Len(File.Name)>3 Then + If (LCase(Right(File.Name,4))=".xml") Then + If Len(File.Name) >= Len(sConfigName) Then + If (UCase(Left(File.Name,Len(sConfigName)))=sConfigName) Then + Set XmlFile = oFso.OpenTextFile(File,1) + sContents = XmlFile.ReadAll + Set XmlFile = Nothing + sProductCode = "" + On Error Resume Next + sProductCode = Mid(sContents,InStr(sContents,"ProductCode=")+Len("ProductCode=")+1,38) + On Error Goto 0 + If Len(sProductCode) = 38 Then + If CheckDelete(sProductCode) Then DeleteFile File.Path Else fKeepFolder = True + End If + End If 'sConfigName + End If 'Len >= + End If '.xml + End If 'Len(File.Name)>3 + Next 'File + Set Files = Nothing + Set Folder = Nothing + If Not fKeepFolder Then DeleteFolder sPath + End If 'GetFolderPath + Next 'SubFolder + End If 'EnumFolderNames + + 'Wipe Shortcuts + If NOT fSkipSD Then + On Error Resume Next + Log " Searching for shortcuts" + CleanShortcuts sAllUsersProfile, True, False + CleanShortcuts sProfilesDirectory, True, False + On Error Goto 0 + End If 'NOT SkipSD + Err.Clear + +End Sub 'FileWipeIndividual +'======================================================================================================= + +'------------------------------------------------------------------------------- +' CleanShortcuts +' +' Recursively search all profile folders for Office shortcuts in scope +'------------------------------------------------------------------------------- +Sub CleanShortcuts (sFolder, fDelete, fUnPin) + Dim oFolder, fld, file, sc, item + Dim fDeleteSC + + Set oFolder = oFso.GetFolder(sFolder) + ' exclude system protected link folders + If CBool(oFolder.Attributes AND 1024) Then Exit Sub + + On Error Resume Next + For Each fld In oFolder.SubFolders + If Err <> 0 Then + CheckError "CleanShortcuts: " & vbTab & sFolder + Else + CleanShortcuts fld.Path, fDelete, fUnPin + End If + Next + For Each file In oFolder.Files + If LCase(Right(file.Path, 4)) = ".lnk" Then + fDeleteSC = False + LogOnly " check file: " & file.Path + set sc = oWShell.CreateShortcut(file.Path) + If Err <> 0 Then + CheckError "CleanShortcutsSC: " & vbTab & sFolder + Else + 'Compare if the shortcut target is in the list of executables that will be removed + 'LogOnly " - SC.TargetPath: " & sc.TargetPath + If Len(sc.TargetPath) > 0 Then + If InStr(sc.TargetPath,"{{") > 0 Then + 'Handle Windows Installer shortcuts + If Len(sc.TargetPath) >= InStr(sc.TargetPath,"{{") + 37 Then + If CheckDelete(Mid(sc.TargetPath, InStr(sc.TargetPath,"{{"), 38)) Then fDeleteSC = True + End If + Else + 'Handle regular shortcuts + If NOT fBypass_Stage1 Then + ' Compare against results from component scan + For Each item in dicApps.Items + If LCase(sc.TargetPath) = item Then + LogOnly " - removing shortcut per match from component detection: " & file.Path + fDeleteSC = True + Exit For + End If + Next 'item + Else + End If + If NOT oFso.FileExists(sc.TargetPath) Then + ' Shortcut target does not exist + If InStr (sc.TargetPath, OREF) > 0 Then + LogOnly " - removing Office shortcut with non-existent target: " & file.Path & " - " & sc.TargetPath + fDeleteSC = True + Else + 'LogOnly " - keep orphaned SC as target is not in scope: " & sc.TargetPath + End If + Else + 'LogOnly " - keep SC as shortcut target does still exist: " & sc.TargetPath + End If + End If + End If + End If + If fDeleteSC Then + If Not IsArray(arrDeleteFolders) Then ReDim arrDeleteFolders(0) + sFolder = file.Drive & file.Path + If Not arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder Then + ReDim Preserve arrDeleteFolders(UBound(arrDeleteFolders) + 1) + arrDeleteFolders(UBound(arrDeleteFolders)) = sFolder + End If + If fUnPin Then UnPin file + If fDelete Then + If fBypass_Stage1 Then UnPin file + DeleteFile file.Path + End If + fDeleteSC = False + End If 'fDeleteSC + End If + Next + On Error Goto 0 +End Sub 'CleanShortcuts + +'------------------------------------------------------------------------------- +' UnPin +' +' Unpins a shortcut from the taskbar or start menu +'------------------------------------------------------------------------------- +Sub UnPin(file) + Dim fldItem, verb + + On Error Resume Next + Set fldItem = oShellApp.NameSpace(file.ParentFolder.Path).ParseName(file.Name) + For Each verb in fldItem.Verbs + Select Case Replace(verb, "&", "") + Case "Unpin from Taskbar", "Von Taskleiste lösen", "Détacher du barre des tâches", "Détacher de la barre des tâches", "Desanclar de la barra de tareas", "Ta bort från Aktivitetsfältet", "??? ????????(K)", "?? ????? ??(K)", "????????? ?? ?????? ?????" + verb.DoIt + Case "Unpin from Start Menu", "Vom Startmenü lösen", "Détacher du menu Démarrer", "Détacher de la menu Démarrer" + If iVersionNT = 601 Then verb.DoIt + End Select + Next + On Error Goto 0 +End Sub + + +'======================================================================================================= + +Sub DelScrubTmp + + On Error Resume Next + If oFso.FolderExists(sScrubDir & "\ScrubTmp") Then oFso.DeleteFolder sScrubDir & "\ScrubTmp",True + +End Sub 'DelScrubTmp +'======================================================================================================= + +'Ensure there are no unexpected .msi files in the scrub folder +Sub DeleteMsiScrubCache + Dim Folder, File, Files + + Log vbCrLf & "ScrubCache CleanUp" + Set Folder = oFso.GetFolder(sScrubDir) : CheckError "DeleteMsiScrubCache" + Set Files = Folder.Files + For Each File in Files + CheckError "DeleteMsiScrubCache" + If LCase(Right(File.Name,4))=".msi" Then + CheckError "DeleteMsiScrubCache" + DeleteFile File.Path : CheckError "DeleteMsiScrubCache" + End If + Next 'File +End Sub 'DeleteMsiScrubCache +'======================================================================================================= + +Sub MsiClearOrphanedFiles + Const USERSIDEVERYONE = "s-1-1-0" + Const MSIINSTALLCONTEXT_ALL = 7 + Const MSIPATCHSTATE_ALL = 15 + + 'Error handling inlined + On Error Resume Next + + Dim Patch, AllPatches, Product, AllProducts + Dim File, Files, Folder + Dim sFName, sLocalMsp, sLocalMsi, sPatchList, sMsiList + + Set Folder = oFso.GetFolder(sWinDir & "\Installer") + Set Files = Folder.Files + + Log vbCrLf & "Windows Installer cache CleanUp" + 'Get a complete list of patches + Err.Clear + Set AllPatches = oMsi.PatchesEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL,MSIPATCHSTATE_ALL) + If Err <> 0 Then + CheckError "MsiClearOrphanedFiles (msp)" + Else + 'Fill a comma separated stringlist with all .msp patchfiles + For Each Patch in AllPatches + sLocalMsp = "" : sLocalMsp = LCase(Patch.Patchproperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msp)" + sPatchList = sPatchList & sLocalMsp & "," + Next 'Patch + + 'Delete all non referenced .msp files from %windir%\installer + For Each File in Files + sFName = "" : sFName = LCase(File.Path) + If LCase(Right(sFName,4)) = ".msp" Then + If Not InStr(sPatchList,sFName) > 0 Then + 'While this is an orphaned file keep the scope of Office only + If InStr(UCase(MspTargets(File.Path)),OFFICEID)>0 Then DeleteFile File.Path + End If + End If 'LCase(Right(sFName,4)) + Next 'File + End If 'Err=0 + + 'Get a complete list products + Err.Clear + Set AllProducts = oMsi.ProductsEx("",USERSIDEVERYONE,MSIINSTALLCONTEXT_ALL) + If Err <> 0 Then + CheckError "MsiClearOrphanedFiles (msi)" + Else + 'Fill a comma separated stringlist with all .msi files + For Each Product in AllProducts + sLocalMsi = "" : sLocalMsi = LCase(Product.InstallProperty("LocalPackage")) : CheckError "MsiClearOrphanedFiles (msi)" + sMsiList = sMsiList & sLocalMsi & "," + Next 'Product + + 'Delete all non referenced .msi files from %windir%\installer + For Each File in Files + sFName = "" : sFName = LCase(File.Path) + If LCase(Right(sFName,4)) = ".msi" Then + If Not InStr(sMsiList,sFName) > 0 Then + 'While this is an orphaned file keep the scope of Office only + If UCase(Right(ProductCode(File.Path),PRODLEN))=OFFICEID Then DeleteFile File.Path + End If + End If 'LCase(Right(sFName,4)) = ".msi" + Next 'File + End If 'Err=0 + +End Sub 'MsiClearOrphanedFiles +'======================================================================================================= + +Sub RegWipe + Dim Item, Name, Sku, key + Dim hDefKey, sSubKeyName, sCurKey, value, sValue, sGuid + Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion + Dim arrKeys, arrNames, arrTypes, arrMultiSzValues, arrMultiSzNewValues + Dim arrTestNames, arrTestTypes + Dim i, iLoopCnt, iPos + Dim fDelReg + + Log vbCrLf & "Registry CleanUp" + 'Wipe registry data + + 'User Profile settings + Log " - User Policies" + RegDeleteKey HKCU,"Software\Policies\Microsoft\Office\" & OVERSION & "\" + If NOT fKeepUser Then + RegDeleteKey HKCU,"Software\Microsoft\Office\" & OVERSION & "\" + Log " - User Settings" + End If 'fKeepUser + + 'Computer specific settings + If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then + Log " - Machine Settings" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\" & OVERSION & "\" + If fRemoveOse OR fForce Then + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office Test\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","LastAccessInstall", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\","MID", False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Excel\Addins\Microsoft.PerformancePoint.Planning.Client.Excel\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerExcelImport\Versions\",OVERSION, False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\InfoPath\Converters\Import\InfoPath.DesignerWordImport\Versions\",OVERSION, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Outlook\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\MEWord12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Export\Word97\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\MEWord12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word12\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Shared Tools\Text Converters\Import\Word97\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","GrooveMonitor", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","LobiServer", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\","BCSSync", False + RegDeleteKey HKLM,"SYSTEM\CurrentControlSet\Services\Outlook\" + End If + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Office\" & OVERSION & "\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\Common\OffDiag\Location\",OVERSIONMAJOR, False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\" + + Select Case OVERSIONMAJOR + Case "11" + 'Jet_Replication + sValue = "" + If RegReadValue(HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32","SystemDB",sValue,"REG_SZ") Then + If Len(sValue) > Len(sOInstallRoot) Then + If LCase(Left(sValue,Len(sOInstallRoot))) = LCase(sOInstallRoot) Then RegDeleteKey HKCR,"CLSID\{{CC2C83A6-9BE4-11D0-98E7-00C04FC2CAF5}\InprocServer32\" + End If + End If + Case "12" + Case "14" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform_Test\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Office\Common\ActiveX Compatibility\{{00024512-0000-0000-C000-000000000046}\" + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Office\OneNote\Adapters\","{{456B0D0E-49DD-4C95-8DB6-175F54DE69A3}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{42042206-2D85-11D3-8CFF-005004838597}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{993BE281-6695-4BA5-8A2A-7AACBFAAB69E}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{0006F045-0000-0000-C000-000000000046}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{C41662BB-1FA0-4CE0-8DC5-9B7F8279FF97}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{7CCA70DB-DE7A-4FB7-9B2B-52E2335A3B5A}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{506F4668-F13E-4AA1-BB04-B43203AB3CC0}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{D66DC78C-4F61-447F-942B-3FB6980118CF}", False + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{B4F3A835-0E21-4959-BA22-42B3008E02FF}\" + 'Groove Extensions + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{99FD978C-D287-4F50-827F-B2C658EDA8E7}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{AB5C5600-7E6E-4B06-9197-9ECEF74D31CC}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{920E6DB1-9907-4370-B3A0-BAFC03D81399}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{16F3DD56-1AF5-4347-846D-7C10C4192619}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2916C86E-86A6-43FE-8112-43ABE6BF8DCC}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{6C467336-8281-4E60-8204-430CED96822D}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{2A541AE1-5BF6-4665-A8A3-CFA9672E4291}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{B5A7F190-DDA6-4420-B3BA-52453494E6CD}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{A449600E-1DC6-4232-B948-9BD794D62056}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{3D60EDA7-9AB4-4DA8-864C-D9B5F2E7281D}", False + RegDeleteValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\","{{387E725D-DC16-4D76-B310-2C93ED4752A0}", False + RegDeleteKey HKLM,"SOFTWARE\Classes\*\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Folder\ShellEx\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Classes\Directory\Background\shellex\ContextMenuHandlers\XXX Groove GFS Context Menu Handler XXX\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 1 (GFS Unread Stub)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2 (GFS Stub)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 2.5 (GFS Unread Folder)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 3 (GFS Folder)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\Groove Explorer Icon Overlay 4 (GFS Unread Mark)\" + RegDeleteKey HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{{72853161-30C5-4D22-B7F9-0BBC1D38A37E}\" + + Case 15 + + Case Else + End Select + + 'Win32Assemblies + Log " - Win32Assemblies" + If RegEnumKey(HKCR,"Installer\Win32Assemblies\",arrKeys) Then + For Each Item in arrKeys + If InStr(UCase(Item),OREF)>0 Then RegDeleteKey HKCR,"Installer\Win32Assemblies\"&Item & "\" + Next 'Item + End If 'RegEnumKey + 'Groove blocks reinstall if it locates groove.exe over this key + If RegKeyExists(HKCR,"GrooveFile\Shell\Open\Command\") Then + sValue = "" + RegReadValue HKCR,"GrooveFile\Shell\Open\Command\","",sValue,"REG_SZ" + If InStr(sValue,"\"&OREF&"\")>0 Then RegDeleteKey HKCR,"GrooveFile\" + End If 'RegKeyExists + End If 'fRemoveAll + + Select Case OVERSIONMAJOR + Case "11" + For iLoopCnt = 1 to 3 + Select Case iLoopCnt + Case 1 + 'CIW - HKCU + sSubKeyName = "Software\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" + hDefKey = HKCU + Case 2 + 'CIW - HKLM + sSubKeyName = "SOFTWARE\Microsoft\OfficeCustomizeWizard\" & OVERSION & "\RegKeyPaths\" + hDefKey = HKLM + Case 3 + 'Add/Remove Programs + sSubKeyName = REG_ARP + hDefKey = HKLM + End Select + + If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'OFFICEID id + If Len(Item)>37 Then + sGuid = UCase(Left(Item,38)) + If Right(sGuid,PRODLEN)=OFFICEID Then + If CheckDelete(sGuid) Then + RegDeleteKey hDefKey, sSubKeyName & Item & "\" + End If + End If 'Right(Item,PRODLEN)=OFFICEID + End If 'Len(Item)>37 + Next 'Item + If iLoopCnt < 3 Then + If RegEnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) Then + i = 0 + For Each Name in arrNames + If RegReadValue(hDefKey,sSubKeyName,Name,sValue,arrTypes(i)) Then + If sValue = sGuid Then RegDeleteValue hDefKey,sSubKeyName,Name, False + End If + i = i + 1 + Next + End If + End If + End If + If NOT RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\" + If NOT RegEnumKey(hDefKey,"Software\Microsoft\OfficeCustomizeWizard\11.0\",arrKeys) Then RegDeleteKey hDefKey,"Software\Microsoft\OfficeCustomizeWizard\" + Next 'iLoopCnt + Case "12" + 'Add/Remove Programs + RegWipeARP + Case "14" + 'Add/Remove Programs + RegWipeARP + Case Else + End Select + + 'UpgradeCodes, WI config, WI global config + For iLoopCnt = 1 to 5 + Select Case iLoopCnt + Case 1 + Log " - HKLM UpgradeCodes" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\" + hDefKey = HKLM + Case 2 + Log " - HKCR UpgradeCodes" + sSubKeyName = "Installer\UpgradeCodes\" + hDefKey = HKCR + Case 3 + Log " - HKLM Products" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" + hDefKey = HKLM + Case 4 + Log " - HKCR Features" + sSubKeyName = "Installer\Features\" + hDefKey = HKCR + Case 5 + Log " - HKCR Products" + sSubKeyName = "Installer\Products\" + hDefKey = HKCR + Case Else + sSubKeyName = "" + hDefKey = "" + End Select + If RegEnumKey(hDefKey,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + 'Expand the GUID + sGuid = GetExpandedGuid(Item) + 'Check if it's an Office key + If CheckDeleteEx (sGuid) Then + RegDeleteKey hDefKey,sSubKeyName & Item & "\" + Else + If iLoopCnt < 3 Then + 'Enum all entries + RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes + If IsArray(arrNames) Then + 'Delete entries within removal scope + For Each Name in arrNames + If Len(Name)=32 Then + sGuid = GetExpandedGuid(Name) + If CheckDelete(sGuid) Then RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True + Else + 'Invalid data -> delete the value + RegDeleteValue hDefKey, sSubKeyName & Item & "\", Name, True + End If + Next 'Name + End If 'IsArray(arrNames) + 'If all entries were removed - delete the key + RegEnumValues hDefKey,sSubKeyName & Item,arrNames,arrTypes + If Not IsArray(arrNames) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" + Else 'iLoopCnt >= 3 + If CheckDelete(sGuid) Then RegDeleteKey hDefKey, sSubKeyName & Item & "\" + End If 'iLoopCnt < 3 + End If 'fRemoveAll + End If 'Len(Item)=32 + Next 'Item + End If 'RegEnumKey + Next 'iLoopCnt + + 'Components + Log " - Global Components" + sSubKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + If RegEnumValues(HKLM,sSubKeyName & Item,arrNames,arrTypes) Then + If IsArray(arrNames) Then + For Each Name in arrNames + If Len(Name)=32 Then + sGuid = GetExpandedGuid(Name) + If CheckDelete(sGuid) Then + RegDeleteValue HKLM, sSubKeyName & Item & "\", Name, False + 'Check if the key is now empty + If NOT RegEnumValues(HKLM,sSubKeyName & Item,arrTestNames,arrTestTypes) Then + If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR + End If + End If + End If '32 + Next 'Name + End If 'IsArray + End If 'RegEnumValues + End If '32 + Next 'Item + End If 'RegEnumKey + + 'Published Components + Log " - Published Components" + sSubKeyName = "Installer\Components\" + If RegEnumKey(HKCR,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + 'Ensure we have the expected length for a compressed GUID + If Len(Item)=32 Then + If RegEnumValues(HKCR,sSubKeyName & Item,arrNames,arrTypes) Then + If IsArray(arrNames) Then + For Each Name in arrNames + If RegReadValue (HKCR,sSubKeyName & Item, Name, sValue,"REG_MULTI_SZ") Then + arrMultiSzValues = Split(sValue,chr(34)) + If IsArray(arrMultiSzValues) Then + i = -1 + ReDim arrMultiSzNewValues(-1) + fDelReg = False + For Each value in arrMultiSzValues + If Len(value) > 19 Then + sGuid = "" + If GetDecodedGuid(Left(value,SQUISHED),sGuid) Then + If CheckDelete(sGuid) Then + fDelReg = True + Else + i = i + 1 + ReDim Preserve arrMultiSzNewValues(i) + arrMultiSzNewValues(i) = value + End If 'CheckDelete + End If 'decode + End If '19 + Next 'Value + If NOT (i = -1) Then + If NOT fDetectOnly Then + If NOT UBound(arrMultiSzValues) = i Then oReg.SetMultiStringValue HKCR,sSubKeyName & Item,Name,arrMultiSzNewValues + End If + Else + If fDelReg Then + RegDeleteValue HKCR,sSubKeyName & Item & "\", Name, False + 'Check if the key is now empty + If NOT RegEnumValues(HKCR,sSubKeyName & Item,arrTestNames,arrTestTypes) Then + If NOT dicDelRegKey.Exists(sSubKeyName&Item&"\") Then dicDelRegKey.Add sSubKeyName&Item&"\",HKCR + End If + End If 'DelReg + End If + End If 'IsArray + End If + Next 'Name + End If 'IsArray + End If 'RegEnumValues + End If '32 + Next 'Item + End If 'RegEnumKey + + 'Delivery + Log " - Delivery" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\Delivery\SourceEngine\Downloads\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item) > 37 Then + If fRemoveAll Then + If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) OR _ + LCase(Right(Item,7))=OVERSIONMAJOR&".data" Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + Else + If (Mid(Item,27,PRODLEN)=OFFICEID AND Mid(Item,4,2)=OVERSIONMAJOR) AND _ + CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + End If '37 + Next 'Item + End If 'RegEnumKey + + 'Registration + Log " - HKLM Registration" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\Registration\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item)>37 Then + If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + Next 'Item + End If 'RegEnumKey + + 'User Preconfigurations + Log " - HKLM User Preconfigurations" + hDefKey = HKLM + sSubKeyName = "SOFTWARE\Microsoft\Office\"&OVERSION&"\User Settings\" + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + If Len(Item)>37 Then + If CheckDelete(UCase(Left(Item,38))) Then RegDeleteKey HKLM,sSubKeyName & Item & "\" + End If + Next 'Item + End If 'RegEnumKey + + 'Known Keypath settings + Log " - Detcted KeyPath settings" + For Each key in dicDelRegKey.Keys + If Right(key,1) = "\" Then + RegDeleteKey dicDelRegKey.Item(key),key + Else + iPos = InStrRev(Key,"\") + If iPos > 0 Then RegDeleteValue dicDelRegKey.Item(key), Left(key,iPos - 1), Mid(key,iPos+1), False + End If + Next + + 'Temporary entries in ARP + TmpKeyCleanUp +End Sub 'RegWipe +'======================================================================================================= + +'Clean up Add/Remove Programs registry +Sub RegWipeARP + + Dim Item, Name, Sku, key + Dim sSubKeyName, sCurKey, sValue, sGuid + Dim fkeep, fSystemComponent0, fPackages, fDisplayVersion + Dim arrKeys + + 'Add/Remove Programs + sSubKeyName = REG_ARP + If RegEnumKey(HKLM,sSubKeyName,arrKeys) Then + For Each Item in arrKeys + '*0FF1CE* + If Len(Item)>37 Then + sGuid = UCase(Left(Item,38)) + If CheckDeleteEx(sGuid) Then RegDeleteKey HKLM, sSubKeyName & Item + End If 'Len(Item)>37 + + 'Config entries + sCurKey = sSubKeyName & Item & "\" + fSystemComponent0 = Not (RegReadValue(HKLM,sCurKey,"SystemComponent",sValue,"REG_DWORD") AND (sValue = "1")) + fPackages = RegReadValue(HKLM,sCurKey,OPACKAGE,sValue,"REG_MULTI_SZ") + fDisplayVersion = RegReadValue(HKLM,sCurKey,"DisplayVersion",sValue,"REG_SZ") + If fDisplayVersion AND Len(sValue) > 1 Then + fDisplayVersion = (Left(sValue,2) = OVERSIONMAJOR) + End If + If (fSystemComponent0 AND fPackages AND fDisplayVersion) Then + fKeep = False + If Not fRemoveAll Then + For Each Sku in dictionaryKeepSku.Keys + If UCase(Item) = OREGREF & Sku Then + fkeep = True + Exit For + End If + Next 'Sku + End If + If Not fkeep Then RegDeleteKey HKLM, sSubKeyName & Item + End If + Next 'Item + End If 'RegEnumKey + +End Sub 'RegWipeARP +'======================================================================================================= + +'Clean up temporary registry keys +Sub TmpKeyCleanUp + Dim TmpKey + + If fLogInitialized Then Log " - temporary OffScrub registry entries" + If IsArray(arrTmpSKUs) Then + For Each TmpKey in arrTmpSKUs + oReg.DeleteKey HKLM, REG_ARP & TmpKey + Next 'Item + End If 'IsArray +End Sub 'TmpKeyCleanUp + +'======================================================================================================= +' Helper Functions +'======================================================================================================= + +'Create a log with the results of the SKU detection +Sub LogSkuResults + Dim SkuLog, SkuKey , p + + On Error Resume Next 'Don't fail on logging + + Set SkuLog = oFso.OpenTextFile(sScrubDir & "\SkuLog.txt",FOR_WRITING,True,True) + + SkuLog.WriteLine "Installed SKUs (All):" + SkuLog.WriteLine "=====================" + For Each SkuKey in dicInstalledSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Server SKUs:" + SkuLog.WriteLine "============" + For Each SkuKey in dicSrv.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Client Suite SKUs:" + SkuLog.WriteLine "==================" + For Each SkuKey in dicCSuite.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Client Standalone SKUs:" + SkuLog.WriteLine "=======================" + For Each SkuKey in dicCSingle.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Installed Products (All):" + SkuLog.WriteLine "=========================" + For Each p in oMsi.Products + If InScope(p) Then + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + End If + Next 'Product + + SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf + + SkuLog.WriteLine vbCrLf & "SKUs to keep:" + SkuLog.WriteLine "=============" + For Each SkuKey in dictionaryKeepSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Products to keep:" + SkuLog.WriteLine "=================" + For Each p in dictionaryKeepProd.Keys + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + Next 'Key + + SkuLog.WriteLine vbCrLf & "***************************************************************************************************" & vbCrLf + + SkuLog.WriteLine vbCrLf & "SKUs to remove:" + SkuLog.WriteLine "===============" + For Each SkuKey in dicRemoveSku.Keys + SkuLog.WriteLine " - " & SkuKey + Next 'Key + + SkuLog.WriteLine vbCrLf & "Products to remove:" + SkuLog.WriteLine "===================" + For Each p in oMsi.Products + If CheckDeleteEx(p) Then + SkuLog.Write " - " & p & " - " + SkuLog.Write oMsi.ProductInfo(p, "ProductName") + SkuLog.WriteLine " " + End If 'InScope + Next 'Product + + SkuLog.Close + Set SkuLog = Nothing + +End Sub 'LogSkuResults +'======================================================================================================= + +'End all running instances of applications that will be removed +Sub CloseOfficeApps + Dim Processes, Process, prop + Dim fWait + Dim iRet + + On Error Resume Next + + fWait = False + Log " Doing Action: CloseOfficeApps" + + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process") + For Each Process in Processes + If dicApps.Exists(LCase(Process.Name)) Then + Log " - End process " & Process.Name + iRet = Process.Terminate() + CheckError "CloseOfficeApps: " & "Process.Name" + Else + For Each prop in Process.Properties_ + If prop.Name = "ExecutablePath" Then + If InStr(UCase(prop.Value), UCase(sOInstallRoot)) > 0 Then + Log " - End process '" & Process.Name + iRet = Process.Terminate() + CheckError "CloseOfficeApps: " & "Process.Name" + fWait = True + End If + End If 'ExcecutablePath + Next 'prop + End If + Next 'Process + If fWait Then + wscript.sleep 10000 + End If + LogOnly " End Action: CloseOfficeApps" +End Sub 'CloseOfficeApps +'======================================================================================================= + +'Ensure Windows Explorer is restarted if needed +Sub RestoreExplorer + Dim Processes, Result, oAT, DateTime, JobID + Dim sCmd + + 'Non critical routine. Don't fail on error + On Error Resume Next + wscript.sleep 1000 + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='explorer.exe'") + If Processes.Count < 1 Then + oWShell.Run "explorer.exe" + 'To handle this in case of System context, schedule and run as interactive task + If iVersionNT > 502 Then + 'Vista and later + oWShell.Run "SCHTASKS /Create /TN OffScrEx /TR explorer /SC ONCE /ST 12:00 /IT",0,True + oWShell.Run "SCHTASKS /Run /TN OffScrEx", 0, True + oWShell.Run "SCHTASKS /Delete /TN OffScrEx /F", 0, False + Else + Set oAT = oWmiLocal.Get("Win32_ScheduledJob") + Set DateTime = CreateObject("WbemScripting.SWbemDateTime") + DateTime.SetVarDate DateAdd("n",1,Now),True + Result = oAT.Create("explorer.exe", DateTime.Value, , , , True, JobID) + End If 'iVersionNT + End If +End Sub 'RestoreExploer +'======================================================================================================= + +'Returns the delimiter for a passed in string +Function Delimiter (sVersion) + + Dim iCnt, iAsc + + Delimiter = " " + For iCnt = 1 To Len(sVersion) + iAsc = Asc(Mid(sVersion, iCnt, 1)) + If Not (iASC >= 48 And iASC <= 57) Then + Delimiter = Mid(sVersion, iCnt, 1) + Exit Function + End If + Next 'iCnt +End Function +'======================================================================================================= + +'Check registry access permissions. Failure will terminate the script +Function CheckRegPermissions + Const KEY_QUERY_VALUE = &H0001 + Const KEY_SET_VALUE = &H0002 + Const KEY_CREATE_SUB_KEY = &H0004 + Const DELETE = &H00010000 + + Dim sSubKeyName + Dim fReturn + + CheckRegPermissions = True + sSubKeyName = "Software\Microsoft\Windows\" + oReg.CheckAccess HKLM, sSubKeyName, KEY_QUERY_VALUE, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, KEY_SET_VALUE, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, KEY_CREATE_SUB_KEY, fReturn + If Not fReturn Then CheckRegPermissions = False + oReg.CheckAccess HKLM, sSubKeyName, DELETE, fReturn + If Not fReturn Then CheckRegPermissions = False + +End Function 'CheckRegPermissions +'======================================================================================================= + +'Check if a product will be removed +Function CheckDeleteEx (sProductCode) + + CheckDeleteEx = False + If CheckDelete (sProductCode) Then + CheckDeleteEx = True + Exit Function + End If + If (fRemoveAll AND NOT fC2rInstalled) OR (fRemoveAll AND fForce) Then + CheckDeleteEx = InScope(sProductCode) AND NOT dictionaryKeepProd.Exists(UCase(sProductCode)) + End If +End Function 'CheckDelete +'======================================================================================================= + +'Check if an Office product is still registered with a SKU that stays on the computer +Function CheckDelete (sProductCode) + + 'Ensure valid GUID length + If NOT Len(sProductCode) = 38 Then + CheckDelete = False + Exit Function + End If + + 'If it's a non Office ProductCode exit with false right away + CheckDelete = InScope(sProductCode) + If Not CheckDelete Then Exit Function + If dictionaryKeepProd.Exists(UCase(sProductCode)) Then CheckDelete = False + +End Function 'CheckDelete +'======================================================================================================= + +'Check if ProductCode is in scope +Function InScope(sProductCode) + + Dim fInScope + Dim sProd + + fInScope = False + If Len(sProductCode) = 38 Then + sProd = UCase(sProductCode) + Select Case OVERSIONMAJOR + Case "11" + If Right(sProd,PRODLEN)=OFFICEID Then fInScope = True + Case "12" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True + Case "14" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then fInScope = True + Case "15" + If Right(sProd,PRODLEN)=OFFICEID AND Mid(sProd,4,2) = OVERSIONMAJOR Then + Select Case Mid(sProd, 11, 4) + Case "007E", "008F", "008C", "24E1", "237A" + ' C2R products - keep them + Case Else + fInScope = True + End Select + End If + Case Else + End Select + End If '38 + + InScope = fInScope +End Function 'InScope +'======================================================================================================= + +'Register an orphaned .msi product as installed for MSI +Sub MsiRegisterProduct (sMsiFile) + + Dim sDisplayVersion, sCurKey, sDisplayName, sLang, sProductCode, sTmpKey + Dim iCnt + + 'Create a temporary keys to simulate an installed product + sProductCode = "" + sProductCode = GetMsiProductCode(sMsiFile) + sDisplayVersion = GetMsiProductVersion(sMsiFile) + If sDisplayVersion = "" Then sDisplayVersion = OVERSION & ".0000.0000" + sDisplayName = GetMsiProductName(sMsiFile) + If sDisplayName = "" Then sDisplayName = sProductCode + Select Case OVERSIONMAJOR + Case "9","10","11" + sLang = CInt("&h" & Mid(sProductCode,6,4)) + Case "12","14" + sLang = CInt("&h" & Mid(sProductCode,16,4)) + Case Else + End Select + + For iCnt = 1 To 3 + Select Case iCnt + Case 1 + sCurKey = REG_ARP & sProductCode + oReg.CreateKey HKLM,sCurKey + Case 2 + sCurKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & GetCompressedGuid(sProductCode) + oReg.CreateKey HKLM,sCurKey + oReg.CreateKey HKLM,sCurKey & "\Features" + oReg.CreateKey HKLM,sCurKey & "\InstallProperties" + oReg.CreateKey HKLM,sCurKey & "\Patches" + oReg.CreateKey HKLM,sCurKey & "\Usage" + sCurKey = sCurKey & "\InstallProperties" + oReg.SetStringValue HKLM,sCurKey,"LocalPackage",sMsiFile + Case 3 + sCurKey = "Installer\Products\" & GetCompressedGuid(sProductCode) + sTmpKey = sCurKey + oReg.CreateKey HKCR,sCurKey + oReg.SetDWordValue HKCR,sCurKey,"AdvertiseFlags",388 + oReg.SetDWordValue HKCR,sCurKey,"Assignment",1 + oReg.SetDWordValue HKCR,sCurKey,"AuthorizedLUAApp",0 + oReg.SetStringValue HKCR,sCurKey,"Clients",":" + oReg.SetDWordValue HKCR,sCurKey,"DeploymentFlags",3 + oReg.SetDWordValue HKCR,sCurKey,"InstanceType",0 + oReg.SetDWordValue HKCR,sCurKey,"Language",sLang + oReg.SetStringValue HKCR,sCurKey,"PackageCode",GetMsiPackageCode(sMsiFile) + oReg.SetStringValue HKCR,sCurKey,"ProductName",sDisplayName + oReg.SetDWordValue HKCR,sCurKey,"VersionMinor",0 + sCurKey = sTmpKey & "\SourceList" + oReg.CreateKey HKCR,sCurKey + oReg.SetExpandedStringValue HKCR,sCurKey,"LastUsedSource",sScrubDir + oReg.SetStringValue HKCR,sCurKey,"PackageName",Mid(sMsiFile,InstrRev(sMsiFile,"\")+1) + sCurKey = sTmpKey & "\SourceList\Media" + oReg.CreateKey HKCR,sCurKey + oReg.SetStringValue HKCR,sCurKey,"1",OREF & ";1" + oReg.SetStringValue HKCR,sCurKey,"DiskPrompt",sDisplayName + sCurKey = sTmpKey & "\SourceList\Net" + oReg.CreateKey HKCR,sCurKey + oReg.SetExpandedStringValue HKCR,sCurKey,"1",sScrubDir + + Case Else + End Select + If iCnt <3 Then + oReg.SetStringValue HKLM,sCurKey,"Comments","" + oReg.SetStringValue HKLM,sCurKey,"Contact","" + oReg.SetStringValue HKLM,sCurKey,"DisplayName",sDisplayName + oReg.SetStringValue HKLM,sCurKey,"DisplayVersion",sDisplayVersion + oReg.SetDWordValue HKLM,sCurKey,"EstimatedSize",0 + oReg.SetStringValue HKLM,sCurKey,"HelpLink","" + oReg.SetStringValue HKLM,sCurKey,"HelpTelephone","" + oReg.SetStringValue HKLM,sCurKey,"InstallDate","20100101" + If f64 Then + oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFilesX86 + Else + oReg.SetStringValue HKLM,sCurKey,"InstallLocation",sProgramFiles + End If + oReg.SetStringValue HKLM,sCurKey,"InstallSource",sScrubDir + oReg.SetDWordValue HKLM,sCurKey,"Language",sLang + oReg.SetExpandedStringValue HKLM,sCurKey,"ModifyPath","MsiExec.exe /X" & sProductCode + oReg.SetDWordValue HKLM,sCurKey,"NoModify",1 + oReg.SetStringValue HKLM,sCurKey,"Publisher","Microsoft Corporation" + oReg.SetStringValue HKLM,sCurKey,"Readme","" + oReg.SetStringValue HKLM,sCurKey,"Size","" + oReg.SetDWordValue HKLM,sCurKey,"SystemComponent",0 + oReg.SetExpandedStringValue HKLM,sCurKey,"UninstallString","MsiExec.exe /X" & sProductCode + oReg.SetStringValue HKLM,sCurKey,"URLInfoAbout","" + oReg.SetStringValue HKLM,sCurKey,"URLUpdateInfo","" + oReg.SetDWordValue HKLM,sCurKey,"Version",0 + oReg.SetDWordValue HKLM,sCurKey,"VersionMajor",OVERSIONMAJOR + oReg.SetDWordValue HKLM,sCurKey,"VersionMinor",0 + oReg.SetDWordValue HKLM,sCurKey,"WindowsInstaller",1 + End If '< 3 + Next 'iCnt + +End Sub 'MsiRegisterProduct +'======================================================================================================= + +'Obtain the ProductCode (GUID) from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductCode(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductCode = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductCode'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductCode = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductCode +'======================================================================================================= + +'Obtain the ProductVersion from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductVersion(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductVersion = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductVersion'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductVersion = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductVersion +'======================================================================================================= + +'Obtain the ProductVersion from a .msi package +'The function will open the .msi database and query the 'Property' table to retrieve the ProductCode +Function GetMsiProductName(sMsiFile) + + Dim MsiDb,Record + Dim qView + + On Error Resume Next + + GetMsiProductName = "" + Set Record = Nothing + + Set MsiDb = oMsi.OpenDatabase(sMsiFile,MSIOPENDATABASEREADONLY) + Set qView = MsiDb.OpenView("SELECT `Value` FROM Property WHERE `Property` = 'ProductName'") + qView.Execute + Set Record = qView.Fetch + GetMsiProductName = Record.StringData(1) + qView.Close + +End Function 'GetMsiProductVersion +'======================================================================================================= + +'Obtain the PackageCode (GUID) from a .msi package +'The function will the .msi'S SummaryInformation stream +Function GetMsiPackageCode(sMsiFile) + + On Error Resume Next + + Const PID_REVNUMBER = 9 + + GetMsiPackageCode = "" + GetMsiPackageCode = GetCompressedGuid(oMsi.SummaryInformation(sMsiFile,MSIOPENDATABASEREADONLY).Property(PID_REVNUMBER)) + +End Function 'GetMsiPackageCode +'======================================================================================================= + +'Returns a string with a list of ProductCodes from the summary information stream +Function MspTargets (sMspFile) + Const MSIOPENDATABASEMODE_PATCHFILE = 32 + Const PID_TEMPLATE = 7 + + Dim Msp + 'Non critical routine. Don't fail on error + On Error Resume Next + MspTargets = "" + If oFso.FileExists(sMspFile) Then + Set Msp = Msi.OpenDatabase(WScript.Arguments(0),MSIOPENDATABASEMODE_PATCHFILE) + If Err = 0 Then MspTargets = Msp.SummaryInformation.Property(PID_TEMPLATE) + End If 'oFso.FileExists(sMspFile) +End Function 'MspTargets +'======================================================================================================= + +'Return the ProductCode {{GUID} from a .MSI package +Function ProductCode(sMsi) + Const MSIUILEVELNONE = 2 'No UI + Dim MsiSession + + On Error Resume Next + 'Non critical routine. Don't fail on error + If oFso.FileExists(sMsi) Then + oMsi.UILevel = MSIUILEVELNONE + Set MsiSession = oMsi.OpenPackage(sMsi,1) + ProductCode = MsiSession.ProductProperty("ProductCode") + Set MsiSession = Nothing + Else + ProductCode = "" + End If 'oFso.FileExists(sMsi) +End Function 'ProductCode +'======================================================================================================= + +Function GetUpgradeCode(sGuid) + + 'Ensure Valid Length + If NOT Len(sGuid) = 38 Then Exit Function + + GetUpgradeCode = "{{00" & Mid(sGuid, 4, 2) & "0000-" & Mid(sGuid, 11, 4) & "-0000-" & Mid(sGuid, 21, 1) & "000-" & Mid(sGuid, 26, 1) & "000000FF1CE}" + +End Function 'GetUpgradeCode +'======================================================================================================= + +Function GetExpandedGuid (sGuid) + Dim i + + 'Ensure valid length + If NOT Len(sGuid) = 32 Then Exit Function + + GetExpandedGuid = "{{" & StrReverse(Mid(sGuid,1,8)) & "-" & _ + StrReverse(Mid(sGuid,9,4)) & "-" & _ + StrReverse(Mid(sGuid,13,4))& "-" + For i = 17 To 20 + If i Mod 2 Then + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) + Else + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) + End If + Next + GetExpandedGuid = GetExpandedGuid & "-" + For i = 21 To 32 + If i Mod 2 Then + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i + 1),1) + Else + GetExpandedGuid = GetExpandedGuid & mid(sGuid,(i - 1),1) + End If + Next + GetExpandedGuid = GetExpandedGuid & "}" +End Function +'======================================================================================================= + +'Converts a GUID into the compressed format +Function GetCompressedGuid (sGuid) + Dim sCompGUID + Dim i + + 'Ensure Valid Length + If NOT Len(sGuid) = 38 Then Exit Function + + sCompGUID = StrReverse(Mid(sGuid,2,8)) & _ + StrReverse(Mid(sGuid,11,4)) & _ + StrReverse(Mid(sGuid,16,4)) + For i = 21 To 24 + If i Mod 2 Then + sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) + Else + sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) + End If + Next + For i = 26 To 37 + If i Mod 2 Then + sCompGUID = sCompGUID & Mid(sGuid, (i - 1), 1) + Else + sCompGUID = sCompGUID & Mid(sGuid, (i + 1), 1) + End If + Next + GetCompressedGuid = sCompGUID +End Function +'======================================================================================================= + +'Unsquish GUID +Function GetDecodedGuid(sEncGuid, sGuid) + +Dim sDecode, sTable, sHex, iChr +Dim arrTable +Dim i, iAsc, pow85, decChar +Dim lTotal +Dim fFailed + + fFailed = False + + sTable = "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ + "0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff," & _ + "0xff,0x00,0xff,0xff,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff," & _ + "0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0xff,0xff,0xff,0x16,0xff,0x17," & _ + "0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27," & _ + "0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0xff,0x34,0x35,0x36," & _ + "0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46," & _ + "0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xff,0x53,0x54,0xff" + arrTable = Split(sTable,",") + lTotal = 0 : pow85 = 1 + For i = 0 To 19 + fFailed = True + If i Mod 5 = 0 Then + lTotal = 0 : pow85 = 1 + End If ' i Mod 5 = 0 + iAsc = Asc(Mid(sEncGuid,i+1,1)) + sHex = arrTable(iAsc) + If iAsc >=128 Then Exit For + If sHex = "0xff" Then Exit For + iChr = CInt("&h"&Right(sHex,2)) + lTotal = lTotal + (iChr * pow85) + If i Mod 5 = 4 Then sDecode = sDecode & DecToHex(lTotal) + pow85 = pow85 * 85 + fFailed = False + Next 'i + If NOT fFailed Then sGuid = "{{"&Mid(sDecode,1,8)&"-"& _ + Mid(sDecode,13,4)&"-"& _ + Mid(sDecode,9,4)&"-"& _ + Mid(sDecode,23,2) & Mid(sDecode,21,2)&"-"& _ + Mid(sDecode,19,2) & Mid(sDecode,17,2) & Mid(sDecode,31,2) & Mid(sDecode,29,2) & Mid(sDecode,27,2) & Mid(sDecode,25,2) &"}" + + GetDecodedGuid = NOT fFailed + +End Function 'GetDecodedGuid +'======================================================================================================= + +'Convert a long decimal to hex +Function DecToHex(lDec) + + Dim sHex + Dim iLen + Dim lVal, lExp + Dim arrChr + + arrChr = Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F") + sHex = "" + lVal = lDec + lExp = 16^10 + While lExp >= 1 + If lVal >= lExp Then + sHex = sHex & arrChr(Int(lVal / lExp)) + lVal = lVal - lExp * Int(lVal / lExp) + Else + sHex = sHex & "0" + If sHex = "0" Then sHex = "" + End If + lExp = lExp / 16 + Wend + + iLen = 8 - Len(sHex) + If iLen > 0 Then sHex = String(iLen,"0") & sHex + DecToHex = sHex +End Function +'======================================================================================================= + +'Ensures that only valid metadata entries exist to avoid API failures +Sub EnsureValidWIMetadata (hDefKey,sKey,iValidLength) + +Dim arrKeys +Dim SubKey + +If Len(sKey) > 1 Then + If Right(sKey,1) = "\" Then sKey = Left(sKey,Len(sKey)-1) +End If + +If RegEnumKey(hDefKey,sKey,arrKeys) Then + For Each SubKey in arrKeys + If NOT Len(SubKey) = iValidLength Then + RegDeleteKey hDefKey,sKey & "\" & SubKey & "\" + End If + Next 'SubKey +End If + +End Sub 'EnsureValidWIMetadata +'======================================================================================================= + +'------------------------------------------------------------------------------- +' CleanOSPP +' +' Clean out licenses from the Office Software Protection Platform +'------------------------------------------------------------------------------- +Sub CleanOSPP + Dim oProductInstances, pi + Dim sCleanOSPP, sCmd, sRetVal + + CONST OfficeAppId = "0ff1ce15-a989-479d-af46-f275c6370663" 'Office 2013 + + sCleanOSPP = "x64\CleanOSPP.exe" + If Not f64 Then sCleanOSPP = "x86\CleanOSPP.exe" + If oFso.FileExists(sScriptDir & sCleanOSPP) Then + sCmd = sScriptDir & sCleanOSPP + Log " Running: " & sCmd + On Error Resume Next + sRetVal = oWShell.Run(sCmd, 0, True) + Log " Return value: " & sRetVal + On Error Goto 0 + Exit Sub + End If + + On Error Resume Next + ' Initialize the software protection platform object with a filter on Office 2013 products + If iVersionNT > 601 Then + Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM SoftwareLicensingProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") + Else + Set oProductInstances = oWmiLocal.ExecQuery("SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM OfficeSoftwareProtectionProduct WHERE ApplicationId = '" & OfficeAppId & "' " & "AND PartialProductKey <> NULL") + End If + + ' Remove all licenses + For Each pi in oProductInstances + If NOT IsNull(pi) Then + pi.UninstallProductKey( pi.ProductKeyID) + End If + Next 'pi + +End Sub 'CleanOSPP +'======================================================================================================= + + +'Create a backup copy of the file in the ScrubDir then delete the file +Sub CopyAndDeleteFile(sFile) + Dim File + + 'Error handling inlined + On Error Resume Next + If oFso.FileExists(sFile) Then + Set File = oFso.GetFile(sFile) + If Not oFso.FolderExists(sScrubDir & "\" & File.ParentFolder.Name) Then oFso.CreateFolder sScrubDir & "\" & File.ParentFolder.Name + If Not fDetectOnly Then + LogOnly " - Backing up file: " & sFile + oFso.CopyFile sFile,sScrubDir & "\" & File.ParentFolder.Name & "\" & File.Name,True : CheckError "CopyAndDeleteFile" + Set File = Nothing + DeleteFile(sFile) + Else + LogOnly " - Simulate CopyAndDelete file: " & sFile + End If + End If 'oFso.FileExists +End Sub 'CopyAndDeleteFile +'======================================================================================================= + +'Wrapper to delete a file +Sub DeleteFile(sFile) + Dim File + Dim sFileName, sNewPath + + On Error Resume Next + + If dictionaryKeepFolder.Exists(LCase(sFile)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFile + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFile + LogOnly " Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFile))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFile + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFile + LogOnly " Remaining applications will need a repair!" + End If + End If + End If + + If oFso.FileExists(sFile) Then + LogOnly " - Delete file: " & sFile + If Not fDetectOnly Then oFso.DeleteFile sFile,True + If Err <> 0 Then + CheckError "DeleteFile" + If fForce Then + 'Try to move the file and delete from there + Set File = oFso.GetFile(sFile) + sFileName = File.Name + sNewPath = sScrubDir & "\ScrubTmp" + Set File = Nothing + If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) + 'Move the file + LogOnly " - Move file to: " & sNewPath & "\" & sFileName + oFso.MoveFile sFile,sNewPath & "\" & sFileName + If Err <> 0 Then + CheckError "DeleteFile (move)" + End If 'Err <> 0 + Else + fRebootRequired = True + End If 'fForce + End If 'Err <> 0 + End If 'oFso.FileExists +End Sub 'DeleteFile +'======================================================================================================= + +'64 bit aware wrapper to return the requested folder +Function GetFolderPath(sPath) + GetFolderPath = True + If oFso.FolderExists(sPath) Then Exit Function + If f64 AND oFso.FolderExists(Wow64Folder(sPath)) Then + sPath = Wow64Folder(sPath) + Exit Function + End If + GetFolderPath = False +End Function 'GetFolderPath +'======================================================================================================= + +'Enumerates subfolder names of a folder and returns True if subfolders exist +Function EnumFolderNames (sFolder, arrSubFolders) + Dim Folder, Subfolder + Dim sSubFolders + + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Name & "," + Next 'Subfolder + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Name & "," + Next 'Subfolder + End If + If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) + EnumFolderNames = Len(sSubFolders)>0 +End Function 'EnumFolderNames +'======================================================================================================= + +'Enumerates subfolders of a folder and returns True if subfolders exist +Function EnumFolders (sFolder, arrSubFolders) + Dim Folder, Subfolder + Dim sSubFolders + + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Path & "," + Next 'Subfolder + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + Set Folder = oFso.GetFolder(Wow64Folder(sFolder)) + For Each Subfolder in Folder.Subfolders + sSubFolders = sSubFolders & Subfolder.Path & "," + Next 'Subfolder + End If + If Len(sSubFolders)>0 Then arrSubFolders = RemoveDuplicates(Split(Left(sSubFolders,Len(sSubFolders)-1),",")) + EnumFolders = Len(sSubFolders)>0 +End Function 'EnumFolders +'======================================================================================================= + +Sub GetMseFolderStructure (Folder) + Dim SubFolder + + For Each SubFolder in Folder.SubFolders + ReDim Preserve arrMseFolders(UBound(arrMseFolders)+1) + arrMseFolders(UBound(arrMseFolders)) = SubFolder.Path + GetMseFolderStructure SubFolder + Next 'SubFolder +End Sub 'GetMseFolderStructure +'======================================================================================================= + +'Wrapper to delete a folder +Sub DeleteFolder(sFolder) + Dim Folder + Dim sDelFolder, sFolderName, sNewPath + + 'Ensure trailing "\" + sFolder = sFolder & "\" + While InStr(sFolder,"\\")>0 + sFolder = Replace(sFolder,"\\","\") + Wend + + If dictionaryKeepFolder.Exists(LCase(sFolder)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFolder + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFolder + LogOnly " Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepFolder.Exists(LCase(Wow64Folder(sFolder))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & sFolder + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element: " & sFolder + LogOnly " Remaining applications will need a repair!" + End If + End If + End If + + 'Strip trailing "\" + If Len(sFolder) > 1 Then + sFolder = Left(sFolder,Len(sFolder)-1) + End If + + On Error Resume Next + If oFso.FolderExists(sFolder) Then + sDelFolder = sFolder + ElseIf f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + sDelFolder = Wow64Folder(sFolder) + Else + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete folder: " & sDelFolder + oFso.DeleteFolder sDelFolder,True + Else + LogOnly " - Simulate delete folder: " & sDelFolder + End If + If Err <> 0 Then + CheckError "DeleteFolder" + 'Try to move the folder and delete from there + Set Folder = oFso.GetFolder(sDelFolder) + sFolderName = Folder.Name + sNewPath = sScrubDir & "\ScrubTmp" + Set Folder = Nothing + 'Ensure we stay within the same drive + If Not oFso.FolderExists(sNewPath) Then oFso.CreateFolder(sNewPath) + 'Move the folder + LogOnly " - Moving folder to: " & sNewPath & "\" & sFolderName + oFso.MoveFolder sFolder,sNewPath & "\" & sFolderName + If Err <> 0 Then + CheckError "DeleteFolder (move)" + End If 'Err <> 0 + End If 'Err <> 0 +End Sub 'DeleteFolder +'======================================================================================================= + +'Delete empty folder structures +Sub DeleteEmptyFolders + Dim Folder + Dim sFolder + + ' cosmetic' task don't fail on error + On Error Resume Next + If Not IsArray(arrDeleteFolders) Then Exit Sub + Log vbCrLf & "Empty Folder Cleanup" + For Each sFolder in arrDeleteFolders + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + If CBool(Folder.Attributes AND 1024) Then + 'exclude protected folder + Else + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If + End If + Next 'sFolder + CheckError "DeleteEmptyFolders" + On Error Goto 0 +End Sub 'DeleteEmptyFolders +'======================================================================================================= + +'Delete indivdual empty folder structures +Sub DeleteEmptyFolder (sFolder) + Dim Folder + + ' cosmetic' task don't fail on error + On Error Resume Next + If oFso.FolderExists(sFolder) Then + Set Folder = oFso.GetFolder(sFolder) + If CBool(Folder.Attributes AND 1024) Then + 'exclude protected folder + Else + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then + Set Folder = Nothing + SmartDeleteFolder sFolder + End If + End If + End If + + CheckError "DeleteEmptyFolder" + On Error Goto 0 +End Sub 'DeleteEmptyFolder +'======================================================================================================= + +'Wrapper to delete a folder and remove the empty parent folder structure +Sub SmartDeleteFolder(sFolder) + If oFso.FolderExists(sFolder) Then + If Not fDetectOnly Then + LogOnly " Request SmartDelete for folder: " & sFolder + SmartDeleteFolderEx sFolder + Else + LogOnly " Simulate request SmartDelete for folder: " & sFolder + End If + End If + If f64 AND oFso.FolderExists(Wow64Folder(sFolder)) Then + If Not fDetectOnly Then + LogOnly "Request SmartDelete for folder: " & Wow64Folder(sFolder) + SmartDeleteFolderEx Wow64Folder(sFolder) + Else + LogOnly "Simulate request SmartDelete for folder: " & Wow64Folder(sFolder) + End If + End If +End Sub 'SmartDeleteFolder +'======================================================================================================= + +'Executes the folder delete operation +Sub SmartDeleteFolderEx(sFolder) + Dim Folder + + On Error Resume Next + DeleteFolder sFolder : CheckError "SmartDeleteFolderEx" + On Error Goto 0 + Set Folder = oFso.GetFolder(oFso.GetParentFolderName(sFolder)) + If (Folder.Subfolders.Count = 0) AND (Folder.Files.Count = 0) Then SmartDeleteFolderEx(Folder.Path) +End Sub 'SmartDeleteFolderEx +'======================================================================================================= + +'Adds the folder structure to the 'KeepFolder' dictionary +Sub AddKeepFolder(sPath) + + Dim Folder + + 'Ensure trailing "\" + sPath = LCase(sPath) & "\" + While InStr(sPath,"\\")>0 + sPath = Replace(sPath,"\\","\") + Wend + + If NOT dictionaryKeepFolder.Exists (sPath) Then + dictionaryKeepFolder.Add sPath,sPath + Else + Exit Sub + End If + sPath = LCase(oFso.GetParentFolderName(sPath)) & "\" + If oFso.FolderExists(sPath) Then AddKeepFolder(sPath) +End Sub +'======================================================================================================= + +'Handles additional folder-path operations on 64 bit environments +Function Wow64Folder(sFolder) + If LCase(Left(sFolder,Len(sWinDir & "\System32"))) = LCase(sWinDir & "\System32") Then + Wow64Folder = sWinDir & "\syswow64" & Right(sFolder,Len(sFolder)-Len(sSys32Dir)) + ElseIf LCase(Left(sFolder,Len(sProgramFiles))) = LCase(sProgramFiles) Then + Wow64Folder = sProgramFilesX86 & Right(sFolder,Len(sFolder)-Len(sProgramFiles)) + Else + Wow64Folder = "?" 'Return invalid string to ensure the folder cannot exist + End If +End Function 'Wow64Folder +'======================================================================================================= + +Function HiveString(hDefKey) + On Error Resume Next + Select Case hDefKey + Case HKCR : HiveString = "HKEY_CLASSES_ROOT" + Case HKCU : HiveString = "HKEY_CURRENT_USER" + Case HKLM : HiveString = "HKEY_LOCAL_MACHINE" + Case HKU : HiveString = "HKEY_USERS" + Case Else : HiveString = hDefKey + End Select +End Function +'======================================================================================================= + +Function RegKeyExists(hDefKey,sSubKeyName) + Dim arrKeys + RegKeyExists = False + If oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) = 0 Then RegKeyExists = True +End Function +'======================================================================================================= + +Function RegValExists(hDefKey,sSubKeyName,sName) + Dim arrValueTypes, arrValueNames + Dim i + + RegValExists = False + If Not RegKeyExists(hDefKey,sSubKeyName) Then Exit Function + If sName = "" Then + RegValExists = True + Exit Function + End If + If oReg.EnumValues(hDefKey,sSubKeyName,arrValueNames,arrValueTypes) = 0 AND IsArray(arrValueNames) Then + For i = 0 To UBound(arrValueNames) + If LCase(arrValueNames(i)) = Trim(LCase(sName)) Then RegValExists = True + Next + End If 'oReg.EnumValues +End Function +'======================================================================================================= + +'Read the value of a given registry entry +Function RegReadValue(hDefKey, sSubKeyName, sName, sValue, sType) + Dim RetVal + Dim Item + Dim arrValues + + Select Case UCase(sType) + Case "1","REG_SZ" + RetVal = oReg.GetStringValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "2","REG_EXPAND_SZ" + RetVal = oReg.GetExpandedStringValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetExpandedStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "7","REG_MULTI_SZ" + RetVal = oReg.GetMultiStringValue(hDefKey,sSubKeyName,sName,arrValues) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetMultiStringValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,arrValues) + If RetVal = 0 Then sValue = Join(arrValues,chr(34)) + + Case "4","REG_DWORD" + RetVal = oReg.GetDWORDValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then + RetVal = oReg.GetDWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + End If + + Case "3","REG_BINARY" + RetVal = oReg.GetBinaryValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetBinaryValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case "11","REG_QWORD" + RetVal = oReg.GetQWORDValue(hDefKey,sSubKeyName,sName,sValue) + If Not RetVal = 0 AND f64 Then RetVal = oReg.GetQWORDValue(hDefKey,Wow64Key(hDefKey, sSubKeyName),sName,sValue) + + Case Else + RetVal = -1 + End Select 'sValue + + RegReadValue = (RetVal = 0) +End Function 'RegReadValue +'======================================================================================================= + +'Enumerate a registry key to return all values +Function RegEnumValues(hDefKey,sSubKeyName,arrNames, arrTypes) + Dim RetVal, RetVal64 + Dim arrNames32, arrNames64, arrTypes32, arrTypes64 + + If f64 Then + RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames32,arrTypes32) + RetVal64 = oReg.EnumValues(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrNames64,arrTypes64) + If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrTypes32) Then + arrNames = arrNames32 + arrTypes = arrTypes32 + End If + If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames64) AND IsArray(arrTypes64) Then + arrNames = arrNames64 + arrTypes = arrTypes64 + End If + If (RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrNames32) AND IsArray(arrNames64) AND IsArray(arrTypes32) AND IsArray(arrTypes64) Then + arrNames = RemoveDuplicates(Split((Join(arrNames32,"\") & "\" & Join(arrNames64,"\")),"\")) + arrTypes = RemoveDuplicates(Split((Join(arrTypes32,"\") & "\" & Join(arrTypes64,"\")),"\")) + End If + Else + RetVal = oReg.EnumValues(hDefKey,sSubKeyName,arrNames,arrTypes) + End If 'f64 + RegEnumValues = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrNames) AND IsArray(arrTypes) +End Function 'RegEnumValues +'======================================================================================================= + +'Enumerate a registry key to return all subkeys +Function RegEnumKey(hDefKey,sSubKeyName,arrKeys) + Dim RetVal, RetVal64 + Dim arrKeys32, arrKeys64 + + If f64 Then + RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys32) + RetVal64 = oReg.EnumKey(hDefKey,Wow64Key(hDefKey, sSubKeyName),arrKeys64) + If (RetVal = 0) AND (Not RetVal64 = 0) AND IsArray(arrKeys32) Then arrKeys = arrKeys32 + If (Not RetVal = 0) AND (RetVal64 = 0) AND IsArray(arrKeys64) Then arrKeys = arrKeys64 + If (RetVal = 0) AND (RetVal64 = 0) Then + If IsArray(arrKeys32) AND IsArray (arrKeys64) Then + arrKeys = RemoveDuplicates(Split((Join(arrKeys32,"\") & "\" & Join(arrKeys64,"\")),"\")) + ElseIf IsArray(arrKeys64) Then + arrKeys = arrKeys64 + Else + arrKeys = arrKeys32 + End If + End If + Else + RetVal = oReg.EnumKey(hDefKey,sSubKeyName,arrKeys) + End If 'f64 + RegEnumKey = ((RetVal = 0) OR (RetVal64 = 0)) AND IsArray(arrKeys) +End Function 'RegEnumKey +'======================================================================================================= + +'Wrapper around oReg.DeleteValue to handle 64 bit +Sub RegDeleteValue(hDefKey, sSubKeyName, sName, fRegMultiSZ) + Dim sWow64Key,sRealName + Dim iRetVal + + sRealName = sName + If UCase(sName) = "(DEFAULT)" Then sRealName = "" + + If dictionaryKeepReg.Exists(LCase(sSubKeyName & sName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName) & sName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + End If + + If RegValExists(hDefKey,sSubKeyName,sRealName) Then + On Error Resume Next + If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then + LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName + iRetVal = 0 + iRetVal = oReg.DeleteValue(hDefKey, sSubKeyName, sRealName) + CheckError "RegDeleteValue" + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + Else + LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sSubKeyName & " -> " & sName + End If + On Error Goto 0 + End If 'RegValExists + If f64 Then + sWow64Key = Wow64Key(hDefKey, sSubKeyName) + If RegValExists(hDefKey,sWow64Key,sRealName) Then + On Error Resume Next + If RegReadValue(hDefKey,sSubKeyName,sName,sValue,"REG_MULTI_SZ") Then + LogOnly " - Disallowing unsafe delete of REG_MULTI_SZ: " & HiveString(hDefKey) & "\" & sSubKeyName & sName + Exit Sub + End If + If Not fDetectOnly Then + LogOnly " - Delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName + iRetVal = 0 + iRetVal = oReg.DeleteValue(hDefKey, sWow64Key, sRealName) + CheckError "RegDeleteValue" + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + Else + LogOnly " - Simulate delete registry value: " & HiveString(hDefKey) & "\" & sWow64Key & " -> " & sName + End If + On Error Goto 0 + End If 'RegKeyExists + End If +End Sub 'RegDeleteValue +'======================================================================================================= + +'Wrappper around RegDeleteKeyEx to handle 64bit scenrios +Sub RegDeleteKey(hDefKey, sSubKeyName) + Dim sWow64Key + + 'Ensure trailing "\" + sSubKeyName = sSubKeyName & "\" + While InStr(sSubKeyName,"\\")>0 + sSubKeyName = Replace(sSubKeyName,"\\","\") + Wend + + If dictionaryKeepReg.Exists(LCase(sSubKeyName)) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + If f64 Then + If dictionaryKeepReg.Exists(LCase(Wow64Key(hDefKey, sSubKeyName))) Then + If NOT fForce Then + LogOnly " - Disallowing the delete of still required keypath element: " & HiveString(hDefKey) & "\" & sSubKeyName + Exit Sub + Else + LogOnly " - Enforced delete of still required keypath element. Remaining applications will need a repair!" + End If + End If + End If + + If Len(sSubKeyName) > 1 Then + 'Strip of trailing "\" + sSubKeyName = Left(sSubKeyName,Len(sSubKeyName)-1) + End If + + If RegKeyExists(hDefKey, sSubKeyName) Then + If Not fDetectOnly Then + LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName + On Error Resume Next + RegDeleteKeyEx hDefKey, sSubKeyName + On Error Goto 0 + Else + LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sSubKeyName + End If + End If 'RegKeyExists + If f64 Then + sWow64Key = Wow64Key(hDefKey, sSubKeyName) + If RegKeyExists(hDefKey,sWow64Key) Then + If Not fDetectOnly Then + LogOnly " - Delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key + On Error Resume Next + RegDeleteKeyEx hDefKey, sWow64Key + On Error Goto 0 + Else + LogOnly " - Simulate delete registry key: " & HiveString(hDefKey) & "\" & sWow64Key + End If + End If 'RegKeyExists + End If +End Sub 'RegDeleteKey +'======================================================================================================= + +'Recursively delete a registry structure +Sub RegDeleteKeyEx(hDefKey, sSubKeyName) + Dim arrSubkeys + Dim sSubkey + Dim iRetVal + + On Error Resume Next + oReg.EnumKey hDefKey, sSubKeyName, arrSubkeys + If IsArray(arrSubkeys) Then + For Each sSubkey In arrSubkeys + RegDeleteKeyEx hDefKey, sSubKeyName & "\" & sSubkey + Next + End If + If Not fDetectOnly Then + iRetVal = 0 + iRetVal = oReg.DeleteKey(hDefKey,sSubKeyName) + If NOT (iRetVal=0) Then LogOnly " Delete failed. Return value: "&iRetVal + End If +End Sub 'RegDeleteKeyEx +'======================================================================================================= + +'Return the alternate regkey location on 64bit environment +Function Wow64Key(hDefKey, sSubKeyName) + Dim iPos + + Select Case hDefKey + Case HKCU + If Left(sSubKeyName,17) = "Software\Classes\" Then + Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) + Else + iPos = InStr(sSubKeyName,"\") + Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) + End If + + Case HKLM + If Left(sSubKeyName,17) = "Software\Classes\" Then + Wow64Key = Left(sSubKeyName,17) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-17) + Else + iPos = InStr(sSubKeyName,"\") + Wow64Key = Left(sSubKeyName,iPos) & "Wow6432Node\" & Right(sSubKeyName,Len(sSubKeyName)-iPos) + End If + + Case Else + Wow64Key = "Wow6432Node\" & sSubKeyName + + End Select 'hDefKey +End Function 'Wow64Key +'======================================================================================================= + +'Remove duplicate entries from a one dimensional array +Function RemoveDuplicates(Array) + Dim Item + Dim oDic + + Set oDic = CreateObject("Scripting.Dictionary") + For Each Item in Array + If Not oDic.Exists(Item) Then oDic.Add Item,Item + Next 'Item + RemoveDuplicates = oDic.Keys +End Function 'RemoveDuplicates +'======================================================================================================= + +'End running instances of setup +Sub EndCurrentInstalls () + Dim Processes, Process + Dim iRet + + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name like '%setup%' OR Name like '%install%'") + For Each Process in Processes + Log " - End process " & Process.Name + iRet = Process.Terminate() + CheckError "EndCurrentInstalls: " & "Process.Name" + Next 'Process + StopService "msiserver" +End Sub 'EndCurrentInstalls +'======================================================================================================= + +'Uses WMI to stop a service +Function StopService(sService) + Dim Services, Service + Dim sQuery + Dim iRet + + On Error Resume Next + + iRet = 0 + sQuery = "Select * From Win32_Service Where Name='" & sService & "'" + Set Services = oWmiLocal.Execquery(sQuery) + 'Stop the service + For Each Service in Services + If UCase(Service.State) = "STARTED" Then iRet = Service.StopService + If UCase(Service.State) = "RUNNING" Then iRet = Service.StopService + + Next 'Service + StopService = (iRet = 0) +End Function 'StopService +'======================================================================================================= + +'Delete a service +Sub DeleteService(sService) + Dim Services, Service, Processes, Process + Dim sQuery, sStates + Dim iRet + + On Error Resume Next + + sStates = "STARTED;RUNNING" + sQuery = "Select * From Win32_Service Where Name='" & sService & "'" + Set Services = oWmiLocal.Execquery(sQuery) + + 'Stop and delete the service + For Each Service in Services + Log " Found service " & sService & " in state " & Service.State + If InStr(sStates,UCase(Service.State))>0 Then iRet = Service.StopService() + 'Ensure no more instances of the service are running + Set Processes = oWmiLocal.ExecQuery("Select * From Win32_Process Where Name='" & sService & ".exe'") + For Each Process in Processes + iRet = Process.Terminate() + Next 'Process + If Not fDetectOnly Then + Log " - Deleting Service -> " & sService + iRet = Service.Delete() + Else + Log " - Simulate deleting Service -> " & sService + End If + Next 'Service + Set Services = Nothing + Err.Clear + +End Sub 'DeleteService +'======================================================================================================= + +'Translation for setup.exe error codes +Function SetupRetVal(RetVal) + Select Case RetVal + Case 0 : SetupRetVal = "Success" + Case 30001,1 : SetupRetVal = "AbstractMethod" + Case 30002,2 : SetupRetVal = "ApiProhibited" + Case 30003,3 : SetupRetVal = "AlreadyImpersonatingAUser" + Case 30004,4 : SetupRetVal = "AlreadyInitialized" + Case 30005,5 : SetupRetVal = "ArgumentNullException" + Case 30006,6 : SetupRetVal = "AssertionFailed" + Case 30007,7 : SetupRetVal = "CABFileAddFailed" + Case 30008,8 : SetupRetVal = "CommandFailed" + Case 30009,9 : SetupRetVal = "ConcatenationFailed" + Case 30010,10 : SetupRetVal = "CopyFailed" + Case 30011,11 : SetupRetVal = "CreateEventFailed" + Case 30012,12 : SetupRetVal = "CustomizationPatchNotFound" + Case 30013,13 : SetupRetVal = "CustomizationPatchNotApplicable" + Case 30014,14 : SetupRetVal = "DuplicateDefinition" + Case 30015,15 : SetupRetVal = "ErrorCodeOnly - Passthrough for Win32 error" + Case 30016,16 : SetupRetVal = "ExceptionNotThrown" + Case 30017,17 : SetupRetVal = "FailedToImpersonateUser" + Case 30018,18 : SetupRetVal = "FailedToInitializeFlexDataSource" + Case 30019,19 : SetupRetVal = "FailedToStartClassFactories" + Case 30020,20 : SetupRetVal = "FileNotFound" + Case 30021,21 : SetupRetVal = "FileNotOpen" + Case 30022,22 : SetupRetVal = "FlexDialogAlreadyInitialized" + Case 30023,23 : SetupRetVal = "HResultOnly - Passthrough for HRESULT errors" + Case 30024,24 : SetupRetVal = "HWNDNotFound" + Case 30025,25 : SetupRetVal = "IncompatibleCacheAction" + Case 30026,26 : SetupRetVal = "IncompleteProductAddOns" + Case 30027,27 : SetupRetVal = "InstalledProductStateCorrupt" + Case 30028,28 : SetupRetVal = "InsufficientBuffer" + Case 30029,29 : SetupRetVal = "InvalidArgument" + Case 30030,30 : SetupRetVal = "InvalidCDKey" + Case 30031,31 : SetupRetVal = "InvalidColumnType" + Case 30032,31 : SetupRetVal = "InvalidConfigAddLanguage" + Case 30033,33 : SetupRetVal = "InvalidData" + Case 30034,34 : SetupRetVal = "InvalidDirectory" + Case 30035,35 : SetupRetVal = "InvalidFormat" + Case 30036,36 : SetupRetVal = "InvalidInitialization" + Case 30037,37 : SetupRetVal = "InvalidMethod" + Case 30038,38 : SetupRetVal = "InvalidOperation" + Case 30039,39 : SetupRetVal = "InvalidParameter" + Case 30040,40 : SetupRetVal = "InvalidProductFromARP" + Case 30041,41 : SetupRetVal = "InvalidProductInConfigXml" + Case 30042,42 : SetupRetVal = "InvalidReference" + Case 30043,43 : SetupRetVal = "InvalidRegistryValueType" + Case 30044,44 : SetupRetVal = "InvalidXMLProperty" + Case 30045,45 : SetupRetVal = "InvalidMetadataFile" + Case 30046,46 : SetupRetVal = "LogNotInitialized" + Case 30047,47 : SetupRetVal = "LogAlreadyInitialized" + Case 30048,48 : SetupRetVal = "MissingXMLNode" + Case 30049,49 : SetupRetVal = "MsiTableNotFound" + Case 30050,50 : SetupRetVal = "MsiAPICallFailure" + Case 30051,51 : SetupRetVal = "NodeNotOfTypeElement" + Case 30052,52 : SetupRetVal = "NoMoreGraceBoots" + Case 30053,53 : SetupRetVal = "NoProductsFound" + Case 30054,54 : SetupRetVal = "NoSupportedCulture" + Case 30055,55 : SetupRetVal = "NotYetImplemented" + Case 30056,56 : SetupRetVal = "NotAvailableCulture" + Case 30057,57 : SetupRetVal = "NotCustomizationPatch" + Case 30058,58 : SetupRetVal = "NullReference" + Case 30059,59 : SetupRetVal = "OCTPatchForbidden" + Case 30060,60 : SetupRetVal = "OCTWrongMSIDll" + Case 30061,61 : SetupRetVal = "OutOfBoundsIndex" + Case 30062,62 : SetupRetVal = "OutOfDiskSpace" + Case 30063,63 : SetupRetVal = "OutOfMemory" + Case 30064,64 : SetupRetVal = "OutOfRange" + Case 30065,65 : SetupRetVal = "PatchApplicationFailure" + Case 30066,66 : SetupRetVal = "PreReqCheckFailure" + Case 30067,67 : SetupRetVal = "ProcessAlreadyStarted" + Case 30068,68 : SetupRetVal = "ProcessNotStarted" + Case 30069,69 : SetupRetVal = "ProcessNotFinished" + Case 30070,70 : SetupRetVal = "ProductAlreadyDefined" + Case 30071,71 : SetupRetVal = "ResourceAlreadyTracked" + Case 30072,72 : SetupRetVal = "ResourceNotFound" + Case 30073,73 : SetupRetVal = "ResourceNotTracked" + Case 30074,74 : SetupRetVal = "SQLAlreadyConnected" + Case 30075,75 : SetupRetVal = "SQLFailedToAllocateHandle" + Case 30076,76 : SetupRetVal = "SQLFailedToConnect" + Case 30077,77 : SetupRetVal = "SQLFailedToExecuteStatement" + Case 30078,78 : SetupRetVal = "SQLFailedToRetrieveData" + Case 30079,79 : SetupRetVal = "SQLFailedToSetAttribute" + Case 30080,80 : SetupRetVal = "StorageNotCreated" + Case 30081,81 : SetupRetVal = "StreamNameTooLong" + Case 30082,82 : SetupRetVal = "SystemError" + Case 30083,83 : SetupRetVal = "ThreadAlreadyStarted" + Case 30084,84 : SetupRetVal = "ThreadNotStarted" + Case 30085,85 : SetupRetVal = "ThreadNotFinished" + Case 30086,86 : SetupRetVal = "TooManyProducts" + Case 30087,87 : SetupRetVal = "UnexpectedXMLNodeType" + Case 30088,88 : SetupRetVal = "UnexpectedError" + Case 30089,89 : SetupRetVal = "Unitialized" + Case 30090,90 : SetupRetVal = "UserCancel" + Case 30091,91 : SetupRetVal = "ExternalCommandFailed" + Case 30092,92 : SetupRetVal = "SPDatabaseOverSize" + Case 30093,93 : SetupRetVal = "IntegerTruncation" + 'msiexec return values + Case 1259 : SetupRetVal = "APPHELP_BLOCK" + Case 1601 : SetupRetVal = "INSTALL_SERVICE_FAILURE" + Case 1602 : SetupRetVal = "INSTALL_USEREXIT" + Case 1603 : SetupRetVal = "INSTALL_FAILURE" + Case 1604 : SetupRetVal = "INSTALL_SUSPEND" + Case 1605 : SetupRetVal = "UNKNOWN_PRODUCT" + Case 1606 : SetupRetVal = "UNKNOWN_FEATURE" + Case 1607 : SetupRetVal = "UNKNOWN_COMPONENT" + Case 1608 : SetupRetVal = "UNKNOWN_PROPERTY" + Case 1609 : SetupRetVal = "INVALID_HANDLE_STATE" + Case 1610 : SetupRetVal = "BAD_CONFIGURATION" + Case 1611 : SetupRetVal = "INDEX_ABSENT" + Case 1612 : SetupRetVal = "INSTALL_SOURCE_ABSENT" + Case 1613 : SetupRetVal = "INSTALL_PACKAGE_VERSION" + Case 1614 : SetupRetVal = "PRODUCT_UNINSTALLED" + Case 1615 : SetupRetVal = "BAD_QUERY_SYNTAX" + Case 1616 : SetupRetVal = "INVALID_FIELD" + Case 1618 : SetupRetVal = "INSTALL_ALREADY_RUNNING" + Case 1619 : SetupRetVal = "INSTALL_PACKAGE_OPEN_FAILED" + Case 1620 : SetupRetVal = "INSTALL_PACKAGE_INVALID" + Case 1621 : SetupRetVal = "INSTALL_UI_FAILURE" + Case 1622 : SetupRetVal = "INSTALL_LOG_FAILURE" + Case 1623 : SetupRetVal = "INSTALL_LANGUAGE_UNSUPPORTED" + Case 1624 : SetupRetVal = "INSTALL_TRANSFORM_FAILURE" + Case 1625 : SetupRetVal = "INSTALL_PACKAGE_REJECTED" + Case 1626 : SetupRetVal = "FUNCTION_NOT_CALLED" + Case 1627 : SetupRetVal = "FUNCTION_FAILED" + Case 1628 : SetupRetVal = "INVALID_TABLE" + Case 1629 : SetupRetVal = "DATATYPE_MISMATCH" + Case 1630 : SetupRetVal = "UNSUPPORTED_TYPE" + Case 1631 : SetupRetVal = "CREATE_FAILED" + Case 1632 : SetupRetVal = "INSTALL_TEMP_UNWRITABLE" + Case 1633 : SetupRetVal = "INSTALL_PLATFORM_UNSUPPORTED" + Case 1634 : SetupRetVal = "INSTALL_NOTUSED" + Case 1635 : SetupRetVal = "PATCH_PACKAGE_OPEN_FAILED" + Case 1636 : SetupRetVal = "PATCH_PACKAGE_INVALID" + Case 1637 : SetupRetVal = "PATCH_PACKAGE_UNSUPPORTED" + Case 1638 : SetupRetVal = "PRODUCT_VERSION" + Case 1639 : SetupRetVal = "INVALID_COMMAND_LINE" + Case 1640 : SetupRetVal = "INSTALL_REMOTE_DISALLOWED" + Case 1641 : SetupRetVal = "SUCCESS_REBOOT_INITIATED" + Case 1642 : SetupRetVal = "PATCH_TARGET_NOT_FOUND" + Case 1643 : SetupRetVal = "PATCH_PACKAGE_REJECTED" + Case 1644 : SetupRetVal = "INSTALL_TRANSFORM_REJECTED" + Case 1645 : SetupRetVal = "INSTALL_REMOTE_PROHIBITED" + Case 1646 : SetupRetVal = "PATCH_REMOVAL_UNSUPPORTED" + Case 1647 : SetupRetVal = "UNKNOWN_PATCH" + Case 1648 : SetupRetVal = "PATCH_NO_SEQUENCE" + Case 1649 : SetupRetVal = "PATCH_REMOVAL_DISALLOWED" + Case 1650 : SetupRetVal = "INVALID_PATCH_XML" + Case 3010 : SetupRetVal = "SUCCESS_REBOOT_REQUIRED" + Case Else : SetupRetVal = "Unknown Return Value" + End Select +End Function 'SetupRetVal +'======================================================================================================= + +Function GetProductID(sProdID) + Dim sReturn + + Select Case sProdId + + Case "000F" : sReturn = "MONDO" + Case "0010" : sReturn = "WEBFLDRS" + Case "0011" : sReturn = "PROPLUS" + Case "0012" : sReturn = "STANDARD" + Case "0013" : sReturn = "BASIC" + Case "0014" : sReturn = "PRO" + Case "0015" : sReturn = "ACCESS" + Case "0016" : sReturn = "EXCEL" + Case "0017" : sReturn = "SharePointDesigner" + Case "0018" : sReturn = "PowerPoint" + Case "0019" : sReturn = "Publisher" + Case "001A" : sReturn = "Outlook" + Case "001B" : sReturn = "Word" + Case "001C" : sReturn = "AccessRuntime" + Case "001F" : sReturn = "Proof" + Case "0020" : sReturn = "O2007CNV" + Case "0021" : sReturn = "VisualWebDeveloper" + Case "0026" : sReturn = "ExpressionWeb" + Case "0029" : sReturn = "Excel" + Case "002A" : sReturn = "Office64" + Case "002B" : sReturn = "Word" + Case "002C" : sReturn = "Proofing" + Case "002E" : sReturn = "Ultimate" + Case "002F" : sReturn = "HomeAndStudent" + Case "0028" : sReturn = "IME" + Case "0030" : sReturn = "Enterprise" + Case "0031" : sReturn = "ProfessionalHybrid" + Case "0033" : sReturn = "Personal" + Case "0035" : sReturn = "ProfessionalHybrid" + Case "0037" : sReturn = "PowerPoint" + Case "0038" : sReturn = "OlTimeZoneTool" + Case "003A" : sReturn = "PrjStd" + Case "003B" : sReturn = "PrjPro" + Case "003D" : sReturn = "SINGLEIMAGE" + Case "0043" : sReturn = "OFFICE32" + Case "0044" : sReturn = "InfoPath" + Case "0045" : sReturn = "XWEB" + Case "0048" : sReturn = "OLC" + Case "0049" : sReturn = "ACADEMIC" + Case "004A" : sReturn = "OWC11" + Case "0051" : sReturn = "VISPRO" + Case "0052" : sReturn = "VisView" + Case "0053" : sReturn = "VisStd" + Case "0054" : sReturn = "VisMUI" + Case "0055" : sReturn = "VisMUI" + Case "0057" : sReturn = "VISIO" + Case "0061" : sReturn = "CLICK2RUN" + Case "0062" : sReturn = "CLICK2RUN" + Case "0066" : sReturn = "CLICK2RUN" + Case "006C" : sReturn = "CLICK2RUN" + Case "006D" : sReturn = "CLICK2RUN" + Case "006E" : sReturn = "Shared" + Case "006F" : sReturn = "OFFICE" + Case "0070" : sReturn = "OOBE" + Case "0074" : sReturn = "STARTER" + Case "007A" : sReturn = "OLC" 'Outlook Connector + Case "007C" : sReturn = "OSCFB" 'Outlook Social Connector for FaceBook + Case "007D" : sReturn = "OSCWL" 'Outlook Social Connector for Windows Live Messenger + Case "007F" : sReturn = "OLC" 'Outlook Social Connector + Case "008A" : sReturn = "RecentDocs" + Case "008B" : sReturn = "SmallBusinessBasics" + Case "00A1" : sReturn = "ONENOTE" + Case "00A3" : sReturn = "OneNoteHomeStudent" + Case "00A4" : sReturn = "OWC11" + Case "00A7" : sReturn = "CPAO" + Case "00A9" : sReturn = "InterConnect" + Case "00AF" : sReturn = "PPtView" + Case "00B0" : sReturn = "ExPdf" + Case "00B1" : sReturn = "ExXps" + Case "00B2" : sReturn = "ExPdfXps" + Case "00B4" : sReturn = "PrjMUI" + Case "00B5" : sReturn = "PrjtMUI" + Case "00B9" : sReturn = "AER" + Case "00BA" : sReturn = "Groove" + Case "00CA" : sReturn = "SmallBusiness" + Case "00E0" : sReturn = "Outlook" + Case "00D1" : sReturn = "ACE" + Case "0100" : sReturn = "OfficeMUI" + Case "0101" : sReturn = "OfficeXMUI" + Case "0103" : sReturn = "PTK" + Case "0114" : sReturn = "GrooveSetupMetadata" + Case "0115" : sReturn = "SharedSetupMetadata" + Case "0116" : sReturn = "SharedSetupMetadata" + Case "0117" : sReturn = "AccessSetupMetadata" + Case "011A" : sReturn = "SendASmile" + Case "011D" : sReturn = "ProPlusSubscription" + Case "011F" : sReturn = "OLConnect" + Case "0126" : sReturn = "WWLIBCXM" + + Case "1014" : sReturn = "STS" + Case "1015" : sReturn = "WSSMUI" + Case "1032" : sReturn = "PJSVRAPP" + Case "104B" : sReturn = "SPS" + Case "104E" : sReturn = "SPSMUI" + Case "107F" : sReturn = "OSrv" + Case "1080" : sReturn = "OSrv" + Case "1088" : sReturn = "lpsrvwfe" + Case "10D7" : sReturn = "IFS" + Case "10D8" : sReturn = "IFSMUI" + Case "10EB" : sReturn = "DLCAPP" + Case "10F5" : sReturn = "XLSRVAPP" + Case "10F6" : sReturn = "XlSrvWFE" + Case "10F7" : sReturn = "DLC" + Case "10F8" : sReturn = "SlSrvMui" + Case "10FB" : sReturn = "OSrchWFE" + Case "10FC" : sReturn = "OSRCHAPP" + Case "10FD" : sReturn = "OSrchMUI" + Case "1103" : sReturn = "DLC" + Case "1104" : sReturn = "LHPSRV" + Case "1105" : sReturn = "PIA" + Case "1106" : sReturn = "GRVMGMTSRV" + Case "1109" : sReturn = "GSERVERRELAY" + Case "110D" : sReturn = "OSERVER" + Case "110F" : sReturn = "PSERVER" + Case "1110" : sReturn = "WSS" + Case "1121" : sReturn = "SPSSDK" + Case "1122" : sReturn = "SPSDev" + Case "1163" : sReturn = "SCC" 'SharePoint Client Components + Case Else : sReturn = sProdID + + End Select 'sProdId + GetProductID = sReturn +End Function 'GetProductID +'======================================================================================================= + +Sub Log (sLog) + If NOT fQuiet AND fCScript Then wscript.echo sLog + LogStream.WriteLine sLog +End Sub 'Log +'======================================================================================================= + +Sub LogOnly (sLog) + LogStream.WriteLine sLog +End Sub 'Log +'======================================================================================================= + +Sub CheckError(sModule) + If Err <> 0 Then + LogOnly " " & Now & " - " & sModule & " - Source: " & Err.Source & "; Err# (Hex): " & Hex( Err ) & _ + "; Err# (Dec): " & Err & "; Description : " & Err.Description + End If 'Err = 0 + Err.Clear +End Sub +'======================================================================================================= + +'Command line parser +Sub ParseCmdLine + + Dim iCnt, iArgCnt + Dim arrArguments + Dim sArg0, sArguments + + iArgCnt = Wscript.Arguments.Count + If iArgCnt > 1 Then + If wscript.Arguments(1) = "UAC" Then + If wscript.arguments.count = 2 Then iArgCnt = 0 + End If + End If + + sArguments = "" + If iArgCnt = 0 Then + If sDefault = "" Then + 'Create the log + CreateLog + Log "No argument specified. Preparing user prompt" & vbCrLf + fPassive = False + FindInstalledOProducts + If dicInstalledSku.Count > 0 Then sDefault = Join(RemoveDuplicates(dicInstalledSku.Items),",") Else sDefault = "CLIENTALL" + sDefault = InputBox("Enter a list of " & ONAME & " products to remove" & vbCrLf & vbCrLf & _ + "Examples:" & vbCrLf & _ + "CLIENTALL" & vbTab & "-> all Client products" & vbCrLf & _ + "SERVER" & vbTab & "-> all Server products" & vbCrLf & _ + "ALL" & vbTab & vbTab & "-> all Server & Client products" & vbCrLf & _ + "ProPlus,PrjPro" & vbTab & "-> ProPlus and Project" & vbCrLf &_ + "?" & vbTab & vbTab & "-> display Help", _ + SCRIPTFILE & " - " & ONAME & " remover", _ + sDefault) + + If IsEmpty(sDefault) Then 'User cancelled + Log "User cancelled. CleanUp & Exit." + 'Undo temporary entries created in ARP + TmpKeyCleanUp + wscript.quit 1602 + End If 'IsEmpty(sDefault) + Log "Answer from prompt: " & sDefault & vbCrLf + End If + sDefault = Trim(UCase(Trim(Replace(sDefault, Chr(34), "")))) + arrArguments = Split(Trim(sDefault), " ") + If UBound(arrArguments) = -1 Then ReDim arrArguments(0) + Else + ReDim arrArguments(iArgCnt-1) + For iCnt = 0 To (iArgCnt-1) + sArguments = sArguments & arrArguments(iCnt) & " " + arrArguments(iCnt) = UCase(Wscript.Arguments(iCnt)) + Next 'iCnt + End If 'iArgCnt = 0 + + 'Handle the SKU list + sArg0 = Replace(arrArguments(0), "/", "") + If Left(sArg0, 1) = "-" Then sArg0 = Mid(sArg0, 2) + + Select Case UCase(sArg0) + + Case "?" + ShowSyntax + + Case "ALL" + fRemoveAll = True + fRemoveOse = False + + Case "CLIENTSUITES" + fRemoveCSuites = True + fRemoveOse = False + + Case "CLIENTSTANDALONE" + fRemoveCSingle = True + fRemoveOse = False + + Case "CLIENTALL" + fRemoveCSuites = True + fRemoveCSingle = True + fRemoveOse = False + + Case "SERVER" + fRemoveSrv = True + fRemoveOse = False + + Case "ALL,OSE" + fRemoveAll = True + fRemoveOse = True + + Case Else + fRemoveAll = False + fRemoveOse = False + sSkuRemoveList = sArg0 + + End Select + + For iCnt = 0 To UBound(arrArguments) + + Select Case arrArguments(iCnt) + + Case "?", "/?", "-?" + ShowSyntax + + Case "/B", "/BYPASS" + If UBound(arrArguments) > iCnt Then + If InStr(arrArguments(iCnt + 1), "1") > 0 Then fBypass_Stage1 = True + If InStr(arrArguments(iCnt + 1), "2") > 0 Then fBypass_Stage2 = True + If InStr(arrArguments(iCnt + 1), "3") > 0 Then fBypass_Stage3 = True + If InStr(arrArguments(iCnt + 1), "4") > 0 Then fBypass_Stage4 = True + End If + + Case "/D", "/DELETEUSERSETTINGS" + fKeepUser = False + + Case "/FR", "/FASTREMOVE" + fBypass_Stage1 = True + fSkipSD = True + + Case "/F", "/FORCE" + fForce = True + + Case "/K", "/KEEPUSERSETTINGS" + fKeepUser = True + + Case "/KEEPSG", "/KEEPSOFTGRID" + fKeepSG = True + + Case "/KEEPLYNC" + fRemoveLync = False + + Case "/REMOVELYNC" + fRemoveLync = True + + Case "/L", "/LOG" + fLogInitialized = False + If UBound(arrArguments) > iCnt Then + If oFso.FolderExists(arrArguments(iCnt + 1)) Then + sLogDir = arrArguments(iCnt + 1) + Else + On Error Resume Next + oFso.CreateFolder(arrArguments(iCnt + 1)) + If Err <> 0 Then sLogDir = sScrubDir Else sLogDir = arrArguments(iCnt + 1) + End If + End If + + Case "/NOCANCEL" + fNoCancel = True + + Case "/NOREBOOT" + fNoReboot = True + + Case "/NE", "/NOELEVATE" + fNoElevate = True + + Case "/O", "/OSE" + fRemoveOse = True + + Case "/P", "/PREVIEW", "/DETECTONLY" + fDetectOnly = True + + Case "/PASSIVE", "/QB-" + fPassive = True + + Case "/Q", "/QUIET" + fQuiet = True + + Case "/QB" + fQuiet = True + fBasic = True + + Case "/QND" + fBypass_Stage1 = True + fBypass_Stage2 = True + fBypass_Stage3 = True + fRemoveOse = True + fRemoveOspp = True + fRemoveAll = True + fSkipSD = True + fForce = True + + Case "/R", "/RECONCILE" + fTryReconcile = True + + Case "/REMOVEOSPP" , "/CLEANOSPP" + fRemoveOspp = True + + Case "/S", "/SKIPSD", "/SKIPSHORTCUTDETECTION" + fSkipSD = True + + Case "/SC", "/SCANCOMPONENTS" + fBypass_Stage1 = False + + Case Else + + End Select + Next 'iCnt + If Not fLogInitialized Then CreateLog + LogOnly "Arguments: " & sArguments & vbCrLf + +End Sub 'ParseCmdLine +'======================================================================================================= + +Sub CreateLog + Dim DateTime + Dim sLogName + + On Error Resume Next + 'Create the log file + Set DateTime = CreateObject("WbemScripting.SWbemDateTime") + DateTime.SetVarDate Now,True + sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") + sLogName = sLogName & "_" & Left(DateTime.Value,14) + sLogName = sLogName & "_ScrubLog.txt" + Err.Clear + Set LogStream = oFso.CreateTextFile(sLogName,True,True) + If Err <> 0 Then + Err.Clear + sLogDir = sScrubDir + sLogName = sLogDir & "\" & oWShell.ExpandEnvironmentStrings("%COMPUTERNAME%") + sLogName = sLogName & "_" & Left(DateTime.Value,14) + sLogName = sLogName & "_ScrubLog.txt" + Set LogStream = oFso.CreateTextFile(sLogName,True,True) + End If + + Log "Microsoft Customer Support Services - " & ONAME & " Removal Utility" & vbCrLf & vbCrLf & _ + "OffScrub Version: " & SCRIPTVERSION & vbCrLf & _ + "64 bit OS: " & f64 + LogOnly "OS Details: " & sOSinfo & vbCrLf + Log "Start removal: " & Now & vbCrLf + fLogInitialized = True +End Sub 'CreateLog +'======================================================================================================= +'------------------------------------------------------------------------------- +' RelaunchAs64Host +' +' Relaunch self with 64 bit WScript host +'------------------------------------------------------------------------------- +Sub RelaunchAs64Host + Dim Argument, sCmd + + sCmd = Replace (LCase(wscript.Path), "syswow64", "sysnative") & "\cscript.exe " & Chr(34) & WScript.scriptFullName & Chr(34) + If fQuiet AND NOT fCScript Then sCmd = Replace (sCmd, "\cscript.exe", "\wscript.exe") + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + sCmd = sCmd & " " & chr(34) & Argument & chr(34) + Next 'Argument + Else + If Not sDefault = "" Then sCmd = sCmd & " " & chr(34) & sDefault & chr(34) + End If + sCmd = sCmd & " /ChangedHostBitness" + Wscript.Quit oWShell.Run(sCmd, 1, True) + +End Sub 'RelaunchAs64Host +'======================================================================================================= + +Sub RelaunchAsCScript + Dim Argument + Dim sCmdLine + + sCmdLine = "cmd.exe /c " & WScript.Path & "\cscript.exe //NOLOGO " & Chr(34) & WScript.scriptFullName & Chr(34) + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) + Next 'Argument + End If + Log "Relaunching with CScript as host. Full command: " & sCmdLine + Wscript.Quit oWShell.Run(sCmdLine, 1, True) +End Sub 'RelaunchAsCScript +'======================================================================================================= + +Sub RelaunchElevated + Dim Argument + Dim sCmdLine + Dim oShell + + Set oShell = CreateObject("Shell.Application") + + sCmdLine = Chr(34) & WScript.scriptFullName & Chr(34) + If Wscript.Arguments.Count > 0 Then + For Each Argument in Wscript.Arguments + Select Case UCase(Argument) + Case "/Q","/QUIET" + 'Don't try to relaunch in quiet mode + Exit Sub + Case "UAC" + 'Already tried elevated relaunch + Exit Sub + Case Else + sCmdLine = sCmdLine & " " & chr(34) & Argument & chr(34) + End Select + Next 'Argument + Else + If Not sDefault = "" Then sCmdLine = sCmdLine & " " & chr(34) & sDefault & chr(34) + End If + oShell.ShellExecute "cscript.exe", sCmdLine & " /NoElevate UAC", "", "runas", 1 + Wscript.Quit 5 +End Sub 'RelaunchElevated +'======================================================================================================= + +'Show the expected syntax for the script usage +Sub ShowSyntax + TmpKeyCleanUp + Wscript.Echo sErr & vbCrLf & _ + SCRIPTFILE & " V " & SCRIPTVERSION & vbCrLf & _ + "Copyright (c) Microsoft Corporation. All Rights Reserved" & vbCrLf & vbCrLf & _ + SCRIPTFILE & " helps to remove " & ONAME & " Server & Client products" & vbCrLf & _ + "when a regular uninstall is no longer possible" & vbCrLf & vbCrLf & _ + "Usage:" & vbTab & SCRIPTFILE & " [List of config ProductIDs] [Options]" & vbCrLf & vbCrLf & _ + vbTab & "/? ' Displays this help"& vbCrLf &_ + vbTab & "/Log [LogfolderPath] ' Custom folder for log files" & vbCrLf & _ + vbTab & "/SkipSD ' Skips the ShortcutDetection in local profiles" & vbCrLf & _ + vbTab & "/NoCancel ' Setup.exe and Msiexec.exe have no Cancel button" & vbCrLf &_ + vbTab & "/Quiet ' Script, Setup.exe and Msiexec.exe run quiet with no UI" & vbCrLf &_ + vbTab & "/Preview ' Run this script to preview what would get removed"& vbCrLf & vbCrLf & _ + "Examples:"& vbCrLf & _ + vbTab & SCRIPTFILE & " CLIENTSUITES ' Remove all " & ONAME & " Client suites/products" & vbCrLf &_ + vbTab & SCRIPTFILE & " CLIENTALL ' Remove all " & ONAME & " Client products" & vbCrLf &_ + vbTab & SCRIPTFILE & " SERVER ' Remove all " & ONAME & " Server products" & vbCrLf &_ + vbTab & SCRIPTFILE & " ALL ' Remove all " & ONAME & " Server & Client products" & vbCrLf &_ + vbTab & SCRIPTFILE & " ProPlus,PrjPro ' Remove ProPlus and Project" & vbCrLf + Wscript.Quit +End Sub 'ShowSyntax +'======================================================================================================= +_end_ + +move __createfile "OffScrub_O15msi.vbs" + +waithidden cscript "OffScrub_O15msi.vbs"]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Update installation may cause WU reboot prompt (20539).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Update installation may cause WU reboot prompt (20539).bes index 381dda3ef..16bea27a0 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Update installation may cause WU reboot prompt (20539).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Update installation may cause WU reboot prompt (20539).bes @@ -1,28 +1,28 @@ - - - - - Warning - Update installation may cause WU reboot prompt - This fixlet is relevant on computers where Windows Updates is configured to prompt after update installation if the update itself requires a reboot.

-

This should likely be disabled if using BigFix to perform update installation.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - (value "NoAutoRebootWithLoggedOnUsers" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" of native registry as string | "-1") != "1" - Internal - 2016-04-23 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BES -
-
+ + + + + Warning - Update installation may cause WU reboot prompt + This fixlet is relevant on computers where Windows Updates is configured to prompt after update installation if the update itself requires a reboot.

+

This should likely be disabled if using BigFix to perform update installation.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + (value "NoAutoRebootWithLoggedOnUsers" of key "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" of native registry as string | "-1") != "1" + Internal + 2016-04-23 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BES +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository backups exist in System Directory - Windows (21639).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository backups exist in System Directory - Windows (21639).bes index 2a98cacd0..42073388c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository backups exist in System Directory - Windows (21639).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository backups exist in System Directory - Windows (21639).bes @@ -1,38 +1,38 @@ - - - - - Warning - WMI Repository backups exist in System Directory - Windows - When WMI corruption occurs Windows makes a back-up of the WMI repository and stores it on Disk. This Fixlet deletes the oldest available WMI Repository if multiple exist.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - exists folder whose (name of it starts with "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder))) - Disk Cleanup - Internal - 2016-04-18 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - action uses wow64 redirection false -dos rmdir /s /q "{folder whose (name of it contains "repository." AND creation time of it = minimum of creation times of folders whose(name of it contains "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder)))) of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder)))}" - - -
-
+ + + + + Warning - WMI Repository backups exist in System Directory - Windows + When WMI corruption occurs Windows makes a back-up of the WMI repository and stores it on Disk. This Fixlet deletes the oldest available WMI Repository if multiple exist.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + exists folder whose (name of it starts with "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder))) + Disk Cleanup + Internal + 2016-04-18 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + action uses wow64 redirection false +dos rmdir /s /q "{folder whose (name of it contains "repository." AND creation time of it = minimum of creation times of folders whose(name of it contains "repository.") of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder)))) of (folder "wbem" of (if (x64 of operating system) then (system x64 folder) else (system x32 folder)))}" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository is very large - Windows (22650).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository is very large - Windows (22650).bes index d10b82b21..513033fd8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository is very large - Windows (22650).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI Repository is very large - Windows (22650).bes @@ -1,37 +1,37 @@ - - - - - Warning - WMI Repository is very large - Windows - This fixlet is relevant on machines with large WMI repositories (> 1 GB).

-

A large WMI repository can cause lots of seemingly random issues on an endpoint from slow boot time to slow login.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - 1 /*byte*/ * 1024 /*KB*/ * 1024 /*MB*/ * 1024 /*GB*/]]> - Windows Management Interface - Internal - 2016-04-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -
-
+ + + + + Warning - WMI Repository is very large - Windows + This fixlet is relevant on machines with large WMI repositories (> 1 GB).

+

A large WMI repository can cause lots of seemingly random issues on an endpoint from slow boot time to slow login.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + 1 /*byte*/ * 1024 /*KB*/ * 1024 /*MB*/ * 1024 /*GB*/]]> + Windows Management Interface + Internal + 2016-04-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI is not responding to queries - Windows (22651).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI is not responding to queries - Windows (22651).bes index 217b25405..fad0541e1 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI is not responding to queries - Windows (22651).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - WMI is not responding to queries - Windows (22651).bes @@ -1,37 +1,37 @@ - - - - - Warning - WMI is not responding to queries - Windows - This fixlet is relevant on machines where WMI is failing.

-

Failing WMI causes a number of issues from slow login, failing group policy, etc.

-

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
- windows of operating system - not exists string values of selects "Domain from Win32_ComputerSystem" of wmi | true - Windows Management Interface - Internal - 2016-04-24 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Enter your action script here - -
-
+ + + + + Warning - WMI is not responding to queries - Windows + This fixlet is relevant on machines where WMI is failing.

+

Failing WMI causes a number of issues from slow login, failing group policy, etc.

+

For general information or to report issues with C3 Inventory content please visit GitHub here: https://github.com/strawgate/C3-Inventory

]]>
+ windows of operating system + not exists string values of selects "Domain from Win32_ComputerSystem" of wmi | true + Windows Management Interface + Internal + 2016-04-24 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Enter your action script here + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows 10 Security Center may present notification during AV installation (20586).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows 10 Security Center may present notification during AV installation (20586).bes index a0b0cf3e9..6f448b9e1 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows 10 Security Center may present notification during AV installation (20586).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows 10 Security Center may present notification during AV installation (20586).bes @@ -1,28 +1,28 @@ - - - - - Warning - Windows 10 Security Center may present notification during AV installation - The Windows Security Center is enabled.

-

On initial installation of an Anti-virus product the security center may prompt the user indicating a lack of up-to-date definitions.

-

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
- "10.0.0" and name of operating system does not contain "Win2"]]> - Anti-Virus - Internal - 2016-04-16 - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC -
-
+ + + + + Warning - Windows 10 Security Center may present notification during AV installation + The Windows Security Center is enabled.

+

On initial installation of an Anti-virus product the security center may prompt the user indicating a lack of up-to-date definitions.

+

For general information or to report issues with C3 Protect content please visit GitHub here: https://github.com/strawgate/C3-Protect

]]>
+ "10.0.0" and name of operating system does not contain "Win2"]]> + Anti-Virus + Internal + 2016-04-16 + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows Firewall may be blocking Remote Assistance (23561).bes b/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows Firewall may be blocking Remote Assistance (23561).bes index 122190280..3a2b21c4e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows Firewall may be blocking Remote Assistance (23561).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Warning - Windows Firewall may be blocking Remote Assistance (23561).bes @@ -1,37 +1,37 @@ - - - - - Warning - Windows Firewall may be blocking Remote Assistance - If this fixlet is relevant than not all of the firewall rules required for Remote Assistance to be working may not be enabled.

-

NOTE: This fixlet may appear relevant even if you have the right rules in place. This can commonly happen if you have created custom rules (not using the ones Group Policy generates) or if you are using a third-party Firewall. In this case you can ignore this fixlet once you've confirmed Remote Assistance is working in your environment.

-

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
- = "6.1"]]> - not (exists (names of (rules of firewall) whose (enabled of it = true and application name of it is "C:\Windows\system32\msra.exe")) and exists (names of (rules of firewall) whose (enabled of it = true and application name of it is "C:\Windows\system32\raserver.exe")) and exists (names of (rules of firewall) whose (enabled of it = true and application name of it is "C:\Windows\system32\svchost.exe"))) - Internal - 2016-04-14 - Critical - - x-fixlet-modification-time - Thu, 17 Sep 2026 21:19:04 +0000 - - BESC - - - Click - here - to add the rules to the Windows Firewall. - - wait netsh advfirewall firewall set rule group="remote assistance" new enable=Yes - -
-
+ + + + + Warning - Windows Firewall may be blocking Remote Assistance + If this fixlet is relevant than not all of the firewall rules required for Remote Assistance to be working may not be enabled.

+

NOTE: This fixlet may appear relevant even if you have the right rules in place. This can commonly happen if you have created custom rules (not using the ones Group Policy generates) or if you are using a third-party Firewall. In this case you can ignore this fixlet once you've confirmed Remote Assistance is working in your environment.

+

For general information or to report issues with C3 Remote Control content please visit GitHub here: https://github.com/strawgate/C3-Remote-Control

]]>
+ = "6.1"]]> + not (exists (names of (rules of firewall) whose (enabled of it = true and application name of it is "C:\Windows\system32\msra.exe")) and exists (names of (rules of firewall) whose (enabled of it = true and application name of it is "C:\Windows\system32\raserver.exe")) and exists (names of (rules of firewall) whose (enabled of it = true and application name of it is "C:\Windows\system32\svchost.exe"))) + Internal + 2016-04-14 + Critical + + x-fixlet-modification-time + Thu, 17 Sep 2026 21:19:04 +0000 + + BESC + + + Click + here + to add the rules to the Windows Firewall. + + wait netsh advfirewall firewall set rule group="remote assistance" new enable=Yes + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and Disable (24607).bes b/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and Disable (24607).bes index 979933a33..c98ab07d3 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and Disable (24607).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and Disable (24607).bes @@ -1,36 +1,36 @@ - - - - - Wifi + LAN Detect and Disable - Detects if there is both an active LAN network connection and an active WIFI network connection. If there are both, the action will disable the WIFI adapter. - (Exists (select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'TRUE' and ServiceName = 'NETwNb64'" whose (string value of it != "") of WMI)) AND (exists adapter whose (friendly name of it != "" AND enabled of wifi of it and exists gateway of it and address of it as string != "0.0.0.0") of network) AND (exists adapter whose (not exists wifi of it and gateway of it as string!= "0.0.0.0" and address of it as string!= "0.0.0.0") of network) - Internal - 2017-08-08 - - x-fixlet-modification-time - Tue, 08 Aug 2017 20:09:04 +0000 - - BESC - - - Click - here - to deploy this action. - - //Alpha code - does not accomodate multiple wifi adapters -wait netsh interface set interface "{string value of select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'TRUE' and ServiceName = 'NETwNb64'" of WMI}" admin=disable -wait ipconfig /release -wait ipconfig /renew - - - + + + + + Wifi + LAN Detect and Disable + Detects if there is both an active LAN network connection and an active WIFI network connection. If there are both, the action will disable the WIFI adapter. + (Exists (select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'TRUE' and ServiceName = 'NETwNb64'" whose (string value of it != "") of WMI)) AND (exists adapter whose (friendly name of it != "" AND enabled of wifi of it and exists gateway of it and address of it as string != "0.0.0.0") of network) AND (exists adapter whose (not exists wifi of it and gateway of it as string!= "0.0.0.0" and address of it as string!= "0.0.0.0") of network) + Internal + 2017-08-08 + + x-fixlet-modification-time + Tue, 08 Aug 2017 20:09:04 +0000 + + BESC + + + Click + here + to deploy this action. + + //Alpha code - does not accomodate multiple wifi adapters +wait netsh interface set interface "{string value of select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'TRUE' and ServiceName = 'NETwNb64'" of WMI}" admin=disable +wait ipconfig /release +wait ipconfig /renew + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and enable (24608).bes b/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and enable (24608).bes index 64565a4d2..72b7a6bc8 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and enable (24608).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Wifi + LAN Detect and enable (24608).bes @@ -1,36 +1,36 @@ - - - - - Wifi + LAN Detect and enable - - (exists select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'FALSE' and PhysicalAdapter='TRUE' and ServiceName = 'NETwNb64'" whose (string value of it != "") of WMI) AND (NOT exists adapter whose (not exists wifi of it and gateway of it as string!= "0.0.0.0" and address of it as string!= "0.0.0.0") of network) - Internal - 2017-08-08 - - x-fixlet-modification-time - Tue, 08 Aug 2017 20:10:19 +0000 - - BESC - - - Click - here - to deploy this action. - - //Alpha code - does not accomodate multiple wifi adapters -wait netsh interface set interface "{string value of select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'FALSE' and PhysicalAdapter='TRUE' and ServiceName = 'NETwNb64'" of WMI}" admin=enable -wait ipconfig /release -wait ipconfig /renew - - - + + + + + Wifi + LAN Detect and enable + + (exists select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'FALSE' and PhysicalAdapter='TRUE' and ServiceName = 'NETwNb64'" whose (string value of it != "") of WMI) AND (NOT exists adapter whose (not exists wifi of it and gateway of it as string!= "0.0.0.0" and address of it as string!= "0.0.0.0") of network) + Internal + 2017-08-08 + + x-fixlet-modification-time + Tue, 08 Aug 2017 20:10:19 +0000 + + BESC + + + Click + here + to deploy this action. + + //Alpha code - does not accomodate multiple wifi adapters +wait netsh interface set interface "{string value of select "netconnectionid from win32_NetworkAdapter where NetEnabled = 'FALSE' and PhysicalAdapter='TRUE' and ServiceName = 'NETwNb64'" of WMI}" admin=enable +wait ipconfig /release +wait ipconfig /renew + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE1__Stage Installation Files (25518).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE1__Stage Installation Files (25518).bes index 1b2c77205..b1081ca74 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE1__Stage Installation Files (25518).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE1__Stage Installation Files (25518).bes @@ -1,92 +1,92 @@ - - - - - ~Win10-1803::STAGE1::Stage Installation Files - -

Win10-1803::STAGE1::Stage Installation Files

-
-
    -
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
-

Win10-1803::STAGE2::INSTALL

-
    -
  • Perform inplace upgrade to Window 10 1803
-

Win10-1803::STAGE3::Cleanup

-
    -
  • Removes the Stage Installation Files
]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - x64 of operating system AND not ia64 of operating system - (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry - exists regapp "powershell.exe" - operating system as string does not contain "1803" - system ui language as string as lowercase = "English (United States)" as lowercase - exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry - if exists key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry and exists value "ClearCaseMajorVersion" of key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry then False else True - if exist file "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" then false else true - Upgrade - Microsoft - Unspecified - 2017-10-17 - Unspecified - Unspecified - - x-fixlet-first-propagation - Thu, 02 Nov 2017 11:52:26 +0000 - - - x-fixlet-product-family - Windows - - - no-relevance-health-check - false - - - x-fixlet-product - Win10 - - - x-fixlet-component - Unspecified - - - x-fixlet-modification-time - Wed, 06 Jun 2018 17:41:14 +0000 - - BESC - - - Click - here - to execute this action. - - - -
-
+ + + + + ~Win10-1803::STAGE1::Stage Installation Files + +

Win10-1803::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1803::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1803
+

Win10-1803::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + x64 of operating system AND not ia64 of operating system + (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + exists regapp "powershell.exe" + operating system as string does not contain "1803" + system ui language as string as lowercase = "English (United States)" as lowercase + exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + if exists key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry and exists value "ClearCaseMajorVersion" of key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry then False else True + if exist file "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" then false else true + Upgrade + Microsoft + Unspecified + 2017-10-17 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 02 Nov 2017 11:52:26 +0000 + + + x-fixlet-product-family + Windows + + + no-relevance-health-check + false + + + x-fixlet-product + Win10 + + + x-fixlet-component + Unspecified + + + x-fixlet-modification-time + Wed, 06 Jun 2018 17:41:14 +0000 + + BESC + + + Click + here + to execute this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE2__Install (25519).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE2__Install (25519).bes index 9ed7b5654..307cafe09 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE2__Install (25519).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE2__Install (25519).bes @@ -1,134 +1,134 @@ - - - - - ~Win10-1803::STAGE2::Install - Win10-1803::STAGE1::Stage Installation Files

-
-
    -
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
-

Win10-1803::STAGE2::INSTALL

-
    -
  • Perform inplace upgrade to Window 10 1803
-

Win10-1803::STAGE3::Cleanup

-
    -
  • Removes the Stage Installation Files
]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - x64 of operating system AND not ia64 of operating system - (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry - exists regapp "powershell.exe" - operating system as string does not contain "1803" - system ui language as string as lowercase = "English (United States)" as lowercase - exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry - if exists key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry and exists value "ClearCaseMajorVersion" of key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry then False else True - if exist file "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" then true else false - Upgrade - Microsoft - Unspecified - 2017-10-17 - Unspecified - Unspecified - - x-fixlet-first-propagation - Thu, 02 Nov 2017 11:52:26 +0000 - - - no-relevance-health-check - false - - - x-fixlet-product-family - Windows - - - x-fixlet-component - Unspecified - - - x-fixlet-product - Win10 - - - x-fixlet-modification-time - Wed, 06 Jun 2018 17:41:40 +0000 - - BESC - - - Click - here - to execute this action. - - 5000000000} - -parameter "workISO" = "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" -continue if {exists file (parameter "workISO")} -continue if {sha1 of file (parameter "workISO") = "28681742fe850aa4bfc7075811c5244b61d462cf"} - -// prepare a workpath to temporary files. -parameter "workPath" = "{(value of variable "SystemDrive" of environment) & "\win10_upgrade_temp"}" -waithidden cmd /C rmdir /S /Q "{parameter "workPath"}" -waithidden cmd /C mkdir "{parameter "workPath"}" - -// Create the cleanup file. -delete __appendfile -delete setupcomplete.cmd - -appendfile @echo off -appendfile SET WindowsISO="{parameter "workISO"}" -// appendfile powershell.exe "Dismount-DiskImage ""%WindowsISO%""" -// appendfile rmdir /S /Q "{parameter "workPath"}" - -move __appendfile setupcomplete.cmd - - -// Create a debug invocation batch to help in case of failures. -// This batch does not perform an update but with the scanonly option allows you to determine what the problem is. -delete __appendfile - -appendfile @echo off -appendfile SET WindowsISO="{parameter "workISO"}" -appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO %%I:\setup.exe /auto upgrade /Compat ScanOnly /DynamicUpdate disable" -appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" - -move __appendfile "{(parameter "workPath") & "/upgradeCheck.bat"}" - -// Create the actual invocation script -// Sleep and Dir were added or command would fail with %errorlevel% 183. Possibly a delay on mount. -delete __appendfile -delete mount.and.install.bat - -appendfile @echo on -appendfile SET WindowsISO="{parameter "workISO"}" -appendfile powershell.exe "Mount-DiskImage ""%WindowsISO%""" -appendfile TIMEOUT 10 -appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO dir %%I: > "{parameter "workPath"}\dir.log" && %%I:\setup.exe /auto upgrade /Quiet /DynamicUpdate disable /postoobe "{pathname of client folder of current site & "\setupcomplete.cmd"}" -appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" -move __appendfile mount.and.install.bat - -wait mount.and.install.bat > "{parameter "workPath"}\cmd.log" - -wait setupcomplete.cmd >"{parameter "workPath"}\setupcomplete.log" - -// setup must finish with RC=0 at this stage if things are ok. If that is not the case content of C:\"\win10_upgrade_temp dir holds useful info. -// Apart from log files, you can run upgradeCheck manually to check with the UI what the problem is. - -action requires restart "28681742fe850aa4bfc7075811c5244b61d462cf" -endif - -]]> - - -
-
+ + + + + ~Win10-1803::STAGE2::Install + Win10-1803::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1803::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1803
+

Win10-1803::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + x64 of operating system AND not ia64 of operating system + (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + exists regapp "powershell.exe" + operating system as string does not contain "1803" + system ui language as string as lowercase = "English (United States)" as lowercase + exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + if exists key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry and exists value "ClearCaseMajorVersion" of key "HKLM\SOFTWARE\Atria\ClearCase\CurrentVersion" of registry then False else True + if exist file "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" then true else false + Upgrade + Microsoft + Unspecified + 2017-10-17 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 02 Nov 2017 11:52:26 +0000 + + + no-relevance-health-check + false + + + x-fixlet-product-family + Windows + + + x-fixlet-component + Unspecified + + + x-fixlet-product + Win10 + + + x-fixlet-modification-time + Wed, 06 Jun 2018 17:41:40 +0000 + + BESC + + + Click + here + to execute this action. + + 5000000000} + +parameter "workISO" = "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" +continue if {exists file (parameter "workISO")} +continue if {sha1 of file (parameter "workISO") = "28681742fe850aa4bfc7075811c5244b61d462cf"} + +// prepare a workpath to temporary files. +parameter "workPath" = "{(value of variable "SystemDrive" of environment) & "\win10_upgrade_temp"}" +waithidden cmd /C rmdir /S /Q "{parameter "workPath"}" +waithidden cmd /C mkdir "{parameter "workPath"}" + +// Create the cleanup file. +delete __appendfile +delete setupcomplete.cmd + +appendfile @echo off +appendfile SET WindowsISO="{parameter "workISO"}" +// appendfile powershell.exe "Dismount-DiskImage ""%WindowsISO%""" +// appendfile rmdir /S /Q "{parameter "workPath"}" + +move __appendfile setupcomplete.cmd + + +// Create a debug invocation batch to help in case of failures. +// This batch does not perform an update but with the scanonly option allows you to determine what the problem is. +delete __appendfile + +appendfile @echo off +appendfile SET WindowsISO="{parameter "workISO"}" +appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO %%I:\setup.exe /auto upgrade /Compat ScanOnly /DynamicUpdate disable" +appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" + +move __appendfile "{(parameter "workPath") & "/upgradeCheck.bat"}" + +// Create the actual invocation script +// Sleep and Dir were added or command would fail with %errorlevel% 183. Possibly a delay on mount. +delete __appendfile +delete mount.and.install.bat + +appendfile @echo on +appendfile SET WindowsISO="{parameter "workISO"}" +appendfile powershell.exe "Mount-DiskImage ""%WindowsISO%""" +appendfile TIMEOUT 10 +appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO dir %%I: > "{parameter "workPath"}\dir.log" && %%I:\setup.exe /auto upgrade /Quiet /DynamicUpdate disable /postoobe "{pathname of client folder of current site & "\setupcomplete.cmd"}" +appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" +move __appendfile mount.and.install.bat + +wait mount.and.install.bat > "{parameter "workPath"}\cmd.log" + +wait setupcomplete.cmd >"{parameter "workPath"}\setupcomplete.log" + +// setup must finish with RC=0 at this stage if things are ok. If that is not the case content of C:\"\win10_upgrade_temp dir holds useful info. +// Apart from log files, you can run upgradeCheck manually to check with the UI what the problem is. + +action requires restart "28681742fe850aa4bfc7075811c5244b61d462cf" +endif + +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE3__Cleanup (25520).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE3__Cleanup (25520).bes index 723c321fb..d8ede1d5e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE3__Cleanup (25520).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1803__STAGE3__Cleanup (25520).bes @@ -1,44 +1,44 @@ - - - - - ~Win10-1803::STAGE3::Cleanup - Win10-1803::STAGE1::Stage Installation Files

-
-
    -
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
-

Win10-1803::STAGE2::INSTALL

-
    -
  • Perform inplace upgrade to Window 10 1803
-

Win10-1803::STAGE3::Cleanup

-
    -
  • Removes the Stage Installation Files
]]>
- if exist file "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" then true else false - version of operating system as string contains "17134" - ARRIS Management - Internal - 2017-07-31 - - x-fixlet-modification-time - Mon, 04 Jun 2018 09:44:58 +0000 - - BESC - - - Click - here - to deploy this action. - - folder delete "C:\temp\Win10" - -
-
+ + + + + ~Win10-1803::STAGE3::Cleanup + Win10-1803::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1803::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1803
+

Win10-1803::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ if exist file "C:\temp\Win10\SW_DVD5_Win_Pro_Ent_Edu_N_10_1803_64BIT_English_-2_MLF_X21-79647.ISO" then true else false + version of operating system as string contains "17134" + ARRIS Management + Internal + 2017-07-31 + + x-fixlet-modification-time + Mon, 04 Jun 2018 09:44:58 +0000 + + BESC + + + Click + here + to deploy this action. + + folder delete "C:\temp\Win10" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE1__Stage Installation Files (25593).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE1__Stage Installation Files (25593).bes index 17fcf77bc..65ac63ef9 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE1__Stage Installation Files (25593).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE1__Stage Installation Files (25593).bes @@ -1,92 +1,92 @@ - - - - - ~Win10-1809::STAGE1::Stage Installation Files - -

Win10-1809::STAGE1::Stage Installation Files

-
-
    -
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
-

Win10-1809::STAGE2::INSTALL

-
    -
  • Perform inplace upgrade to Window 10 1809
-

Win10-1809::STAGE3::Cleanup

-
    -
  • Removes the Stage Installation Files
]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - x64 of operating system AND not ia64 of operating system - (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry - exists regapp "powershell.exe" - system ui language as string as lowercase = "English (United States)" as lowercase - exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry - operating system as string does not contain "1809" - - if exist file "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" then false else true - Upgrade - Microsoft - Unspecified - 2017-10-17 - Unspecified - Unspecified - - x-fixlet-first-propagation - Thu, 02 Nov 2017 11:52:26 +0000 - - - no-relevance-health-check - false - - - x-fixlet-product-family - Windows - - - x-fixlet-component - Unspecified - - - x-fixlet-product - Win10 - - - x-fixlet-modification-time - Mon, 07 Jan 2019 15:55:58 +0000 - - BESC - - - Click - here - to execute this action. - - - -
-
+ + + + + ~Win10-1809::STAGE1::Stage Installation Files + +

Win10-1809::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1809::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1809
+

Win10-1809::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + x64 of operating system AND not ia64 of operating system + (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + exists regapp "powershell.exe" + system ui language as string as lowercase = "English (United States)" as lowercase + exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + operating system as string does not contain "1809" + + if exist file "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" then false else true + Upgrade + Microsoft + Unspecified + 2017-10-17 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 02 Nov 2017 11:52:26 +0000 + + + no-relevance-health-check + false + + + x-fixlet-product-family + Windows + + + x-fixlet-component + Unspecified + + + x-fixlet-product + Win10 + + + x-fixlet-modification-time + Mon, 07 Jan 2019 15:55:58 +0000 + + BESC + + + Click + here + to execute this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE2__Install (25594).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE2__Install (25594).bes index 5f82eaea0..7c64c0d4e 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE2__Install (25594).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE2__Install (25594).bes @@ -1,134 +1,134 @@ - - - - - ~Win10-1809::STAGE2::Install - Win10-1809::STAGE1::Stage Installation Files

-
-
    -
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
-

Win10-1809::STAGE2::INSTALL

-
    -
  • Perform inplace upgrade to Window 10 1809
-

Win10-1809::STAGE3::Cleanup

-
    -
  • Removes the Stage Installation Files
]]>
- (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) - x64 of operating system AND not ia64 of operating system - (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry - exists regapp "powershell.exe" - system ui language as string as lowercase = "English (United States)" as lowercase - exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry - operating system as string does not contain "1809" - - if exist file "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" then true else false - Upgrade - Microsoft - Unspecified - 2019-01-07 - Unspecified - Unspecified - - x-fixlet-first-propagation - Thu, 02 Nov 2017 11:52:26 +0000 - - - x-fixlet-product-family - Windows - - - no-relevance-health-check - false - - - x-fixlet-product - Win10 - - - x-fixlet-component - Unspecified - - - x-fixlet-modification-time - Tue, 08 Jan 2019 11:36:20 +0000 - - BESC - - - Click - here - to execute this action. - - 5000000000} - -parameter "workISO" = "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" -continue if {exists file (parameter "workISO")} -continue if {sha1 of file (parameter "workISO") = "6208b319de3aaf0d8ec5b8d0f710e2744f89d0b4"} - -// prepare a workpath to temporary files. -parameter "workPath" = "{(value of variable "SystemDrive" of environment) & "\win10_upgrade_temp"}" -waithidden cmd /C rmdir /S /Q "{parameter "workPath"}" -waithidden cmd /C mkdir "{parameter "workPath"}" - -// Create the cleanup file. -delete __appendfile -delete setupcomplete.cmd - -appendfile @echo off -appendfile SET WindowsISO="{parameter "workISO"}" -// appendfile powershell.exe "Dismount-DiskImage ""%WindowsISO%""" -// appendfile rmdir /S /Q "{parameter "workPath"}" - -move __appendfile setupcomplete.cmd - - -// Create a debug invocation batch to help in case of failures. -// This batch does not perform an update but with the scanonly option allows you to determine what the problem is. -delete __appendfile - -appendfile @echo off -appendfile SET WindowsISO="{parameter "workISO"}" -appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO %%I:\setup.exe /auto upgrade /Compat ScanOnly /DynamicUpdate disable" -appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" - -move __appendfile "{(parameter "workPath") & "/upgradeCheck.bat"}" - -// Create the actual invocation script -// Sleep and Dir were added or command would fail with %errorlevel% 183. Possibly a delay on mount. -delete __appendfile -delete mount.and.install.bat - -appendfile @echo on -appendfile SET WindowsISO="{parameter "workISO"}" -appendfile powershell.exe "Mount-DiskImage ""%WindowsISO%""" -appendfile TIMEOUT 10 -appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO dir %%I: > "{parameter "workPath"}\dir.log" && %%I:\setup.exe /auto upgrade /Quiet /DynamicUpdate disable /postoobe "{pathname of client folder of current site & "\setupcomplete.cmd"}" -appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" -move __appendfile mount.and.install.bat - -wait mount.and.install.bat > "{parameter "workPath"}\cmd.log" - -wait setupcomplete.cmd >"{parameter "workPath"}\setupcomplete.log" - -// setup must finish with RC=0 at this stage if things are ok. If that is not the case content of C:\"\win10_upgrade_temp dir holds useful info. -// Apart from log files, you can run upgradeCheck manually to check with the UI what the problem is. - -action requires restart "6208b319de3aaf0d8ec5b8d0f710e2744f89d0b4" -endif - -]]> - - -
-
+ + + + + ~Win10-1809::STAGE2::Install + Win10-1809::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1809::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1809
+

Win10-1809::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ (if( name of operating system starts with "Win" ) then platform id of operating system != 3 else false) AND (if exists property "in proxy agent context" then ( not in proxy agent context ) else true ) + x64 of operating system AND not ia64 of operating system + (it starts with "Win" AND it does not start with "Win20") of name of operating system AND (exists value "CurrentMajorVersionNumber" of it AND value "CurrentMajorVersionNumber" of it as integer = 10) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + exists regapp "powershell.exe" + system ui language as string as lowercase = "English (United States)" as lowercase + exists value "EditionID" whose (it as string as lowercase = "EducationN" as lowercase OR it as string as lowercase = "Education" as lowercase OR it as string as lowercase = "ProfessionalN" as lowercase OR it as string as lowercase = "Professional" as lowercase OR it as string as lowercase = "EnterpriseN" as lowercase OR it as string as lowercase = "Enterprise" as lowercase) of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" of native registry + operating system as string does not contain "1809" + + if exist file "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" then true else false + Upgrade + Microsoft + Unspecified + 2019-01-07 + Unspecified + Unspecified + + x-fixlet-first-propagation + Thu, 02 Nov 2017 11:52:26 +0000 + + + x-fixlet-product-family + Windows + + + no-relevance-health-check + false + + + x-fixlet-product + Win10 + + + x-fixlet-component + Unspecified + + + x-fixlet-modification-time + Tue, 08 Jan 2019 11:36:20 +0000 + + BESC + + + Click + here + to execute this action. + + 5000000000} + +parameter "workISO" = "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" +continue if {exists file (parameter "workISO")} +continue if {sha1 of file (parameter "workISO") = "6208b319de3aaf0d8ec5b8d0f710e2744f89d0b4"} + +// prepare a workpath to temporary files. +parameter "workPath" = "{(value of variable "SystemDrive" of environment) & "\win10_upgrade_temp"}" +waithidden cmd /C rmdir /S /Q "{parameter "workPath"}" +waithidden cmd /C mkdir "{parameter "workPath"}" + +// Create the cleanup file. +delete __appendfile +delete setupcomplete.cmd + +appendfile @echo off +appendfile SET WindowsISO="{parameter "workISO"}" +// appendfile powershell.exe "Dismount-DiskImage ""%WindowsISO%""" +// appendfile rmdir /S /Q "{parameter "workPath"}" + +move __appendfile setupcomplete.cmd + + +// Create a debug invocation batch to help in case of failures. +// This batch does not perform an update but with the scanonly option allows you to determine what the problem is. +delete __appendfile + +appendfile @echo off +appendfile SET WindowsISO="{parameter "workISO"}" +appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO %%I:\setup.exe /auto upgrade /Compat ScanOnly /DynamicUpdate disable" +appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" + +move __appendfile "{(parameter "workPath") & "/upgradeCheck.bat"}" + +// Create the actual invocation script +// Sleep and Dir were added or command would fail with %errorlevel% 183. Possibly a delay on mount. +delete __appendfile +delete mount.and.install.bat + +appendfile @echo on +appendfile SET WindowsISO="{parameter "workISO"}" +appendfile powershell.exe "Mount-DiskImage ""%WindowsISO%""" +appendfile TIMEOUT 10 +appendfile FOR /F "skip=3" %%I IN ('powershell.exe "Get-DiskImage """%WindowsISO%""" | Get-Volume | Select-Object {{$_.DriveLetter}"') DO dir %%I: > "{parameter "workPath"}\dir.log" && %%I:\setup.exe /auto upgrade /Quiet /DynamicUpdate disable /postoobe "{pathname of client folder of current site & "\setupcomplete.cmd"}" +appendfile echo %errorlevel% > "{parameter "workPath"}\out.log" +move __appendfile mount.and.install.bat + +wait mount.and.install.bat > "{parameter "workPath"}\cmd.log" + +wait setupcomplete.cmd >"{parameter "workPath"}\setupcomplete.log" + +// setup must finish with RC=0 at this stage if things are ok. If that is not the case content of C:\"\win10_upgrade_temp dir holds useful info. +// Apart from log files, you can run upgradeCheck manually to check with the UI what the problem is. + +action requires restart "6208b319de3aaf0d8ec5b8d0f710e2744f89d0b4" +endif + +]]> + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE3__Cleanup (25595).bes b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE3__Cleanup (25595).bes index 5f5d5e386..09fd7ac54 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE3__Cleanup (25595).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Win10-1809__STAGE3__Cleanup (25595).bes @@ -1,45 +1,45 @@ - - - - - ~Win10-1809::STAGE3::Cleanup - Win10-1809::STAGE1::Stage Installation Files

-
-
    -
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
-

Win10-1809::STAGE2::INSTALL

-
    -
  • Perform inplace upgrade to Window 10 1809
-

Win10-1809::STAGE3::Cleanup

-
    -
  • Removes the Stage Installation Files
]]>
- if exist file "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" then true else false - name of operating system contains "Win10" - version of operating system as string contains "17763" - ARRIS Management - Internal - 2017-07-31 - - x-fixlet-modification-time - Mon, 07 Jan 2019 15:57:58 +0000 - - BESC - - - Click - here - to deploy this action. - - folder delete "C:\temp\Win10" - -
-
+ + + + + ~Win10-1809::STAGE3::Cleanup + Win10-1809::STAGE1::Stage Installation Files

+
+
    +
  • Stage all required installation files to "c:\temp\Win10"  (Precache for future deployment)
+

Win10-1809::STAGE2::INSTALL

+
    +
  • Perform inplace upgrade to Window 10 1809
+

Win10-1809::STAGE3::Cleanup

+
    +
  • Removes the Stage Installation Files
]]>
+ if exist file "C:\temp\Win10\SW_DVD9_Win_Pro_Ent_Edu_N_10_1809_64-bit_English_MLF_X21-96501.ISO" then true else false + name of operating system contains "Win10" + version of operating system as string contains "17763" + ARRIS Management + Internal + 2017-07-31 + + x-fixlet-modification-time + Mon, 07 Jan 2019 15:57:58 +0000 + + BESC + + + Click + here + to deploy this action. + + folder delete "C:\temp\Win10" + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/WinGet (WinGet method) (27387).bes b/Sites/Windows Management/Fixlets/Fixlets/WinGet (WinGet method) (27387).bes index 628c6f504..e2c4281a2 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/WinGet (WinGet method) (27387).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/WinGet (WinGet method) (27387).bes @@ -1,48 +1,48 @@ - - - - - WinGet (WinGet method) - Installs latest version of WinGet using WinGet. - = "10.0.16299.0") of operating system and true]]> - exists key whose (value "DisplayName" of it as string starts with "Microsoft Visual C++ 2015-2022 Redistributable (x64)") of key "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" of native registry and true - exists files "winget.exe" of folders whose (name of it starts with "Microsoft.DesktopAppInstaller" and name of it ends with "x64__8wekyb3d8bbwe") of folder "C:\Program Files\WindowsApps" and true - = "1.24.25180.0") of folders whose (name of it starts with "Microsoft.DesktopAppInstaller" and name of it ends with "x64__8wekyb3d8bbwe") of folder "C:\Program Files\WindowsApps"]]> - Internal - 2025-07-21 - - x-fixlet-modification-time - Mon, 21 Jul 2025 19:19:18 +0000 - - BESC - - - Click - here - to deploy this action. - - # Get winget location that SYSTEM user can access -$wingetPath = (Resolve-Path 'C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe\winget.exe')[-1].Path - -# Attempt to install winget using winget -$process = Start-Process $wingetPath -ArgumentList 'install --id Microsoft.AppInstaller --accept-source-agreements --accept-package-agreements' -Wait -PassThru - -# If install failed, attempt install with Repair-WinGetPackageManager -if ($process.ExitCode -ne 0) { - $progressPreference = 'SilentlyContinue' - Install-PackageProvider -Name NuGet -Force - Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery - Repair-WinGetPackageManager -} - - - + + + + + WinGet (WinGet method) + Installs latest version of WinGet using WinGet. + = "10.0.16299.0") of operating system and true]]> + exists key whose (value "DisplayName" of it as string starts with "Microsoft Visual C++ 2015-2022 Redistributable (x64)") of key "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" of native registry and true + exists files "winget.exe" of folders whose (name of it starts with "Microsoft.DesktopAppInstaller" and name of it ends with "x64__8wekyb3d8bbwe") of folder "C:\Program Files\WindowsApps" and true + = "1.24.25180.0") of folders whose (name of it starts with "Microsoft.DesktopAppInstaller" and name of it ends with "x64__8wekyb3d8bbwe") of folder "C:\Program Files\WindowsApps"]]> + Internal + 2025-07-21 + + x-fixlet-modification-time + Mon, 21 Jul 2025 19:19:18 +0000 + + BESC + + + Click + here + to deploy this action. + + # Get winget location that SYSTEM user can access +$wingetPath = (Resolve-Path 'C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe\winget.exe')[-1].Path + +# Attempt to install winget using winget +$process = Start-Process $wingetPath -ArgumentList 'install --id Microsoft.AppInstaller --accept-source-agreements --accept-package-agreements' -Wait -PassThru + +# If install failed, attempt install with Repair-WinGetPackageManager +if ($process.ExitCode -ne 0) { + $progressPreference = 'SilentlyContinue' + Install-PackageProvider -Name NuGet -Force + Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery + Repair-WinGetPackageManager +} + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows - New local user definition (27388).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows - New local user definition (27388).bes index 2e60570bb..89ecadf58 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows - New local user definition (27388).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows - New local user definition (27388).bes @@ -1,134 +1,134 @@ - - - - - Windows - New local user definition - -

There are times when your Windows systems are not joined to a domain and you need to define and use a common user on many systems (e.g.: an specific application user) that cannot be inherited by the Active Directory definition.

-

Defining and managing a common local user at scale can be cumbersome or overwhelming.

-

This task prompts for user/password combination to define a new windows local user and assigning it to a LocalGroup. Password travels encrypted and is not visible nor reusable.

-

User is defined with an attribute to not Expire the given password.

-

Error Conditions:

-
-
    -
  • If the user already exists the action will fail -
  • If a Password policy enforces the minimum password lenght on the target system, task execution will stop when the provided password is not compliant.
-

If the specfied local group doesn't exists or the group is not specified, the command will NOT try to create a new group but will proceed successfully without assigning the user to the group.
 

-]]>
- windows of operating system - if exists true whose (if true then in proxy agent context else false) then false else true - Utility - andrea.capasso@hcl-software.com - 2025-10-24 - - parametermetadatatag - -{ - "NewUser": { - "Name": "NewUser", - "Title": "New User Name: ", - "Description": "Enter the new account name: ", - "UIType": "Textbox", - "Default": "NewUser", - "Required": "1" - }, - "RDPW": { - "Name": "RDPW", - "Title": "User Password: ", - "Description": "Define user's access Password: ", - "Encrypt": "true", - "UIType": "Textbox", - "SubUIType": "Password", - "Required": "1" - }, - "Groupname": { - "Name": "Groupname", - "Title": "Group Name: ", - "Description": "Enter the group to assign the new account: ", - "UIType": "Textbox", - "Default": "Guests", - "Required": "0" - }, - "NewUserDescription": { - "Name": "NewUserDescription", - "Title": "New User Description: ", - "Description": "Enter the group to assign the new account: ", - "UIType": "Textbox", - "Default": "Local User created by BigFix Fixlet", - "Required": "0" - } -} - - - - x-fixlet-modification-time - Fri, 24 Oct 2025 14:32:35 +0000 - - BESC - - - Click - here - &nbsp;to deploy this action with NET USER. - - - -
-
+ + + + + Windows - New local user definition + +

There are times when your Windows systems are not joined to a domain and you need to define and use a common user on many systems (e.g.: an specific application user) that cannot be inherited by the Active Directory definition.

+

Defining and managing a common local user at scale can be cumbersome or overwhelming.

+

This task prompts for user/password combination to define a new windows local user and assigning it to a LocalGroup. Password travels encrypted and is not visible nor reusable.

+

User is defined with an attribute to not Expire the given password.

+

Error Conditions:

+
+
    +
  • If the user already exists the action will fail +
  • If a Password policy enforces the minimum password lenght on the target system, task execution will stop when the provided password is not compliant.
+

If the specfied local group doesn't exists or the group is not specified, the command will NOT try to create a new group but will proceed successfully without assigning the user to the group.
 

+]]>
+ windows of operating system + if exists true whose (if true then in proxy agent context else false) then false else true + Utility + andrea.capasso@hcl-software.com + 2025-10-24 + + parametermetadatatag + +{ + "NewUser": { + "Name": "NewUser", + "Title": "New User Name: ", + "Description": "Enter the new account name: ", + "UIType": "Textbox", + "Default": "NewUser", + "Required": "1" + }, + "RDPW": { + "Name": "RDPW", + "Title": "User Password: ", + "Description": "Define user's access Password: ", + "Encrypt": "true", + "UIType": "Textbox", + "SubUIType": "Password", + "Required": "1" + }, + "Groupname": { + "Name": "Groupname", + "Title": "Group Name: ", + "Description": "Enter the group to assign the new account: ", + "UIType": "Textbox", + "Default": "Guests", + "Required": "0" + }, + "NewUserDescription": { + "Name": "NewUserDescription", + "Title": "New User Description: ", + "Description": "Enter the group to assign the new account: ", + "UIType": "Textbox", + "Default": "Local User created by BigFix Fixlet", + "Required": "0" + } +} + + + + x-fixlet-modification-time + Fri, 24 Oct 2025 14:32:35 +0000 + + BESC + + + Click + here + &nbsp;to deploy this action with NET USER. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows 10 Configuration__ Set Telemetry Level to _Basic_ (11671).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows 10 Configuration__ Set Telemetry Level to _Basic_ (11671).bes index fffc657a1..534a23ecc 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows 10 Configuration__ Set Telemetry Level to _Basic_ (11671).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows 10 Configuration__ Set Telemetry Level to _Basic_ (11671).bes @@ -1,47 +1,47 @@ - - - - - <Windows 10 Configuration>: Set Telemetry Level to "Basic" - Sets the registry value to control the telemetery setting for Windows 10

-

Configure telemetry and other settings in your organization (Windows)
https://technet.microsoft.com/en-us/library/mt577208(v=vs.85).aspx

-

 

]]>
- /* Windows Only */ windows of operating system - /* True if not set to Basic */ exists values "AllowTelemetry" whose (it != "1") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\DataCollection" of (x32 registries; x64 registries) - /* Windows 10 Only */ (version of it as string starts with "10.") of operating system - Internal - 2016-04-05 - - x-fixlet-modification-time - Tue, 05 Apr 2016 20:07:03 +0000 - - BESC - - - Click - here - to deploy this action. - - // Set Registry value to Basic for Windows 10 Telemetry - -if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\DataCollection]" "AllowTelemetry"=dword:00000001 - - else - - regset "[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\DataCollection]" "AllowTelemetry"=dword:00000001 - -endif - - -
-
+ + + + + <Windows 10 Configuration>: Set Telemetry Level to "Basic" + Sets the registry value to control the telemetery setting for Windows 10

+

Configure telemetry and other settings in your organization (Windows)
https://technet.microsoft.com/en-us/library/mt577208(v=vs.85).aspx

+

 

]]>
+ /* Windows Only */ windows of operating system + /* True if not set to Basic */ exists values "AllowTelemetry" whose (it != "1") of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\DataCollection" of (x32 registries; x64 registries) + /* Windows 10 Only */ (version of it as string starts with "10.") of operating system + Internal + 2016-04-05 + + x-fixlet-modification-time + Tue, 05 Apr 2016 20:07:03 +0000 + + BESC + + + Click + here + to deploy this action. + + // Set Registry value to Basic for Windows 10 Telemetry + +if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\DataCollection]" "AllowTelemetry"=dword:00000001 + + else + + regset "[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\DataCollection]" "AllowTelemetry"=dword:00000001 + +endif + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 (26867).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 (26867).bes index 8972127fe..86d483f04 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 (26867).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 (26867).bes @@ -1,88 +1,88 @@ - - - - - Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 - Windows 10 Elevation of Privilege Vulnerability

-

CVE 2021-36934

-

SAM hives readable by everyone account as of Windows 10 (1809)
Current Fixlet relevance includes Windows 10 without limiting to (1809)

Deletes all VSS Shadow copies, as recommended by Microsoft.

Added Windows Server 2019 to relevance after udpates to the Microsoft guidance

-

 

-

Please test well before using as this is BigFix.me community content

]]>
- windows of operating system - exists files "config/SAM" whose (exists entries whose (account name of trustee of it = "Users" and generic read permission of it and not deny type of it) of dacls of security descriptors of it) of native system folder - name of operating system = "Win10" OR name of operating system = "Win2019" - Alpha BigFix.me community content - 2021-07-21 - CVE 2021-36934 - - x-fixlet-modification-time - Wed, 21 Jul 2021 17:11:46 +0000 - - - bigfixme-added-time - Wed, 21 Jul 2021 10:13:29 GMT - - - bigfixme-modification-time - Wed, 21 Jul 2021 10:13:29 GMT - - - bigfixme-keywords - alpha test vulnerability SAM - - - bigfixme-ID - 26866 - - BESC - - - Click - here - to deploy this action. - - //redirect to 64 bit versions -action uses wow64 redirection false - -//icacls command to add inheritance to current permissions -waithidden cmd.exe /C icacls.exe "{pathname of windows folder}\system32\config\*.*" /inheritance:e - -//delete prior VSS shadow copies -waithidden cmd.exe /C vssadmin delete shadows /all /quiet - - - - - Click - here - &nbsp;for vunlerability information from Microsoft - - https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-36934 - - - - Click - here - to information about VSSAdmin to delete shadow copies - - https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/vssadmin-delete-shadows - - - - Click - here - to review this task in the bigfix.me Content Database. - - https://bigfix.me/cdb/fixlet/26866 - -
-
+ + + + + Windows 10 vulnerability CVE 2021-36934 (TESTING) v2 + Windows 10 Elevation of Privilege Vulnerability

+

CVE 2021-36934

+

SAM hives readable by everyone account as of Windows 10 (1809)
Current Fixlet relevance includes Windows 10 without limiting to (1809)

Deletes all VSS Shadow copies, as recommended by Microsoft.

Added Windows Server 2019 to relevance after udpates to the Microsoft guidance

+

 

+

Please test well before using as this is BigFix.me community content

]]>
+ windows of operating system + exists files "config/SAM" whose (exists entries whose (account name of trustee of it = "Users" and generic read permission of it and not deny type of it) of dacls of security descriptors of it) of native system folder + name of operating system = "Win10" OR name of operating system = "Win2019" + Alpha BigFix.me community content + 2021-07-21 + CVE 2021-36934 + + x-fixlet-modification-time + Wed, 21 Jul 2021 17:11:46 +0000 + + + bigfixme-added-time + Wed, 21 Jul 2021 10:13:29 GMT + + + bigfixme-modification-time + Wed, 21 Jul 2021 10:13:29 GMT + + + bigfixme-keywords + alpha test vulnerability SAM + + + bigfixme-ID + 26866 + + BESC + + + Click + here + to deploy this action. + + //redirect to 64 bit versions +action uses wow64 redirection false + +//icacls command to add inheritance to current permissions +waithidden cmd.exe /C icacls.exe "{pathname of windows folder}\system32\config\*.*" /inheritance:e + +//delete prior VSS shadow copies +waithidden cmd.exe /C vssadmin delete shadows /all /quiet + + + + + Click + here + &nbsp;for vunlerability information from Microsoft + + https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-36934 + + + + Click + here + to information about VSSAdmin to delete shadow copies + + https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/vssadmin-delete-shadows + + + + Click + here + to review this task in the bigfix.me Content Database. + + https://bigfix.me/cdb/fixlet/26866 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows 11 Upgrade Eligibility probe (26878).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows 11 Upgrade Eligibility probe (26878).bes index 8706f1981..582ff7ba3 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows 11 Upgrade Eligibility probe (26878).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows 11 Upgrade Eligibility probe (26878).bes @@ -1,44 +1,44 @@ - - - - - Windows 11 Upgrade Eligibility probe -


This task runs a dxdiag executable to generate results for Video Card Check property in analysis. Please run this task on all of your Windows 10 devices.

]]>
- if exists property "in proxy agent context" then ( not in proxy agent context ) else true - name of operating system as lowercase starts with "win10" - Internal - 2021-09-28 - - x-fixlet-modification-time - Wed, 29 Sep 2021 03:43:54 +0000 - - - x-fixlet-win11-eligibility - probeTask - - BESC - - - Click - here - to deploy this action. - - parameter "folderpath" = "{pathname of parent folder of client}\win11-eligibility" - -folder create "{parameter "folderpath"}" -delete "{parameter "folderpath"}\dxdiag" - -wait dxdiag.exe /whql:off /dontskip /t "{parameter "folderpath"}\dxdiag" - - -
-
+ + + + + Windows 11 Upgrade Eligibility probe +


This task runs a dxdiag executable to generate results for Video Card Check property in analysis. Please run this task on all of your Windows 10 devices.

]]>
+ if exists property "in proxy agent context" then ( not in proxy agent context ) else true + name of operating system as lowercase starts with "win10" + Internal + 2021-09-28 + + x-fixlet-modification-time + Wed, 29 Sep 2021 03:43:54 +0000 + + + x-fixlet-win11-eligibility + probeTask + + BESC + + + Click + here + to deploy this action. + + parameter "folderpath" = "{pathname of parent folder of client}\win11-eligibility" + +folder create "{parameter "folderpath"}" +delete "{parameter "folderpath"}\dxdiag" + +wait dxdiag.exe /whql:off /dontskip /t "{parameter "folderpath"}\dxdiag" + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows Installer 3.1 Redistributable (v2) (103).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows Installer 3.1 Redistributable (v2) (103).bes index 03f0a926b..02ee906df 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows Installer 3.1 Redistributable (v2) (103).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows Installer 3.1 Redistributable (v2) (103).bes @@ -1,62 +1,62 @@ - - - - - Windows Installer 3.1 Redistributable (v2) -
This task is applicable on: Windows 2000, Windows XP, Windows XP x64, Windows 2003 and Windows 2003 x64. ]]>
- (name of it = "Win2000" OR name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it)) of operating system AND TRUE - exists value "InstallerLocation" of key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer" of native registry - exists file "MSI.DLL" of folder (value "InstallerLocation" of key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer" of native registry) - - Install - danielheth@bigfix.me - <Unspecified> - 2012-10-03 - <Unspecified> - - x-fixlet-source - Software Distribution Wizard - - - x-fixlet-modification-time - Wed, 03 Oct 2012 16:07:35 +0000 - - BESC - - - Click - here - to initiate the deployment process. - - prefetch WindowsInstaller-KB893803-v2-x86.exe sha1:8318455b36ba0a748307459279d46f2f4cdb5a0e size:2585872 http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe -wait __Download\WindowsInstaller-KB893803-v2-x86.exe /quiet /norestart - - - - - - Click - here - to learn more about this software. - - http://www.microsoft.com/en-us/download/details.aspx?id=25 - - - - Click - here - &nbsp;to learn more about this software. - - http://msdn.microsoft.com/en-us/library/windows/desktop/aa372856(v=vs.85).aspx - -
-
+ + + + + Windows Installer 3.1 Redistributable (v2) +
This task is applicable on: Windows 2000, Windows XP, Windows XP x64, Windows 2003 and Windows 2003 x64. ]]>
+ (name of it = "Win2000" OR name of it = "WinXP" OR name of it = "WinXP-2003" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it)) of operating system AND TRUE + exists value "InstallerLocation" of key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer" of native registry + exists file "MSI.DLL" of folder (value "InstallerLocation" of key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer" of native registry) + + Install + danielheth@bigfix.me + <Unspecified> + 2012-10-03 + <Unspecified> + + x-fixlet-source + Software Distribution Wizard + + + x-fixlet-modification-time + Wed, 03 Oct 2012 16:07:35 +0000 + + BESC + + + Click + here + to initiate the deployment process. + + prefetch WindowsInstaller-KB893803-v2-x86.exe sha1:8318455b36ba0a748307459279d46f2f4cdb5a0e size:2585872 http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe +wait __Download\WindowsInstaller-KB893803-v2-x86.exe /quiet /norestart + + + + + + Click + here + to learn more about this software. + + http://www.microsoft.com/en-us/download/details.aspx?id=25 + + + + Click + here + &nbsp;to learn more about this software. + + http://msdn.microsoft.com/en-us/library/windows/desktop/aa372856(v=vs.85).aspx + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) (22466).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) (22466).bes index 177754781..314163c74 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) (22466).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) (22466).bes @@ -1,79 +1,79 @@ - - - - - Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) - Windows Management Framework 5.0 includes updates to Windows PowerShell, Windows PowerShell Desired State Configuration (DSC), Windows Remote Management (WinRM), Windows Management Instrumentation (WMI). Release notes:

-

Windows Management Framework (WMF) 5.0 brings functionality that has been updated from WMF 4.0. WMF 5.0 is available for installation only on Windows Server 2012 R2, Windows Server 2012, Windows 2008 R2, Windows 8.1, and Windows 7 SP1. Some of the new and updated features in this release include:

-
    -
  • Just Enough Administration (JEA) -
  • Creating Custom Types using PowerShell Classes -
  • Improvements in PowerShell Script Debugging -
  • Improvements in Desired State Configuration (DSC) -
  • Audit PowerShell Usage using Transcription and Logging -
  • Software Discovery, Install and Inventory with PackageManagement -
  • PowerShell Module Discovery, Install and Inventory with PowerShellGet -
  • PowerShell Script Discovery, Install and Management with PowerShellGet -
  • New and updated cmdlets based on community feedback -
  • Information Stream -
  • Generate PowerShell Cmdlets based on OData Endpoint -
  • Network Switch Management with PowerShell -
  • Software Inventory Logging (SIL)
-
Supported Operating System (s)
-

Windows 7 Service Pack 1, Windows 8.1, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2

-
    -
      -
    • Windows Server 2012 R2 -
    • Windows Server 2012 -
    • Windows Server 2008 R2 SP1 -
    • Windows 8.1 -
    • Windows 7 SP1

    **IMPORTANT**
    -
      -
    • Please see release notes for the list of products that are compatible and incompatible with Windows Management Framework 5.0. -
    • WMF 5.0 requires Microsoft .NET Framework 4.5 or above. You can install Microsoft .NET Framework 4.5 or above by following the instructions at Installing the .NET Framework.
    -
  • Note: Some computers may report back as 'Pending Restart' once the update has run successfully, but will not report back their final status until the computer has been restarted.
-

Size of File:20.7 MB

]]>
- x64 of operating system - not ia64 of operating system - Windows Updates - www.dkforeman.com - KB3134760 - 2016-10-28 - Update - - x-fixlet-modification-time - Sat, 29 Oct 2016 10:43:17 +0000 - - BESC - - - Click - here - to deploy this action. - - - - - - Click - here - &nbsp;to&nbsp;read up on&nbsp;the Knowledge Base Article for this update. - - http://go.microsoft.com/fwlink/?LinkID=717903 - -
-
+ + + + + Windows Management Framework 5.0 - Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 (x64) + Windows Management Framework 5.0 includes updates to Windows PowerShell, Windows PowerShell Desired State Configuration (DSC), Windows Remote Management (WinRM), Windows Management Instrumentation (WMI). Release notes:

+

Windows Management Framework (WMF) 5.0 brings functionality that has been updated from WMF 4.0. WMF 5.0 is available for installation only on Windows Server 2012 R2, Windows Server 2012, Windows 2008 R2, Windows 8.1, and Windows 7 SP1. Some of the new and updated features in this release include:

+
    +
  • Just Enough Administration (JEA) +
  • Creating Custom Types using PowerShell Classes +
  • Improvements in PowerShell Script Debugging +
  • Improvements in Desired State Configuration (DSC) +
  • Audit PowerShell Usage using Transcription and Logging +
  • Software Discovery, Install and Inventory with PackageManagement +
  • PowerShell Module Discovery, Install and Inventory with PowerShellGet +
  • PowerShell Script Discovery, Install and Management with PowerShellGet +
  • New and updated cmdlets based on community feedback +
  • Information Stream +
  • Generate PowerShell Cmdlets based on OData Endpoint +
  • Network Switch Management with PowerShell +
  • Software Inventory Logging (SIL)
+
Supported Operating System (s)
+

Windows 7 Service Pack 1, Windows 8.1, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2

+
    +
      +
    • Windows Server 2012 R2 +
    • Windows Server 2012 +
    • Windows Server 2008 R2 SP1 +
    • Windows 8.1 +
    • Windows 7 SP1

    **IMPORTANT**
    +
      +
    • Please see release notes for the list of products that are compatible and incompatible with Windows Management Framework 5.0. +
    • WMF 5.0 requires Microsoft .NET Framework 4.5 or above. You can install Microsoft .NET Framework 4.5 or above by following the instructions at Installing the .NET Framework.
    +
  • Note: Some computers may report back as 'Pending Restart' once the update has run successfully, but will not report back their final status until the computer has been restarted.
+

Size of File:20.7 MB

]]>
+ x64 of operating system + not ia64 of operating system + Windows Updates + www.dkforeman.com + KB3134760 + 2016-10-28 + Update + + x-fixlet-modification-time + Sat, 29 Oct 2016 10:43:17 +0000 + + BESC + + + Click + here + to deploy this action. + + + + + + Click + here + &nbsp;to&nbsp;read up on&nbsp;the Knowledge Base Article for this update. + + http://go.microsoft.com/fwlink/?LinkID=717903 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3964).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3964).bes index bdd068c6e..869b49ed2 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3964).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3964).bes @@ -1,98 +1,98 @@ - - - - - Windows PowerShell 2.0 Available - Install Windows PowerShell version 2.0

-

After the installation of PowerShell in Windows 2008 servers it will be required reboot the server.

]]>
- (name of it = "WinXP" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR name of it = "WinXPe") of operating system AND TRUE - - Update - rafansm@br.ibm.com - <Unspecified> - 2015-01-23 - - IEM GTS Support Team - PowerShell - - - bigfixme-modification-time - Fri, 23 Jan 2015 13:46:56 GMT - - - x-fixlet-modification-time - Fri, 23 Jan 2015 17:41:03 +0000 - - BESC - - - Click - here - to deploy this software. - - - - - - - Click - here - to learn more about PowerShell v2.0. - - http://support.microsoft.com/kb/968929 - -
-
+ + + + + Windows PowerShell 2.0 Available + Install Windows PowerShell version 2.0

+

After the installation of PowerShell in Windows 2008 servers it will be required reboot the server.

]]>
+ (name of it = "WinXP" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR name of it = "WinXPe") of operating system AND TRUE + + Update + rafansm@br.ibm.com + <Unspecified> + 2015-01-23 + + IEM GTS Support Team + PowerShell + + + bigfixme-modification-time + Fri, 23 Jan 2015 13:46:56 GMT + + + x-fixlet-modification-time + Fri, 23 Jan 2015 17:41:03 +0000 + + BESC + + + Click + here + to deploy this software. + + + + + + + Click + here + to learn more about PowerShell v2.0. + + http://support.microsoft.com/kb/968929 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3966).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3966).bes index ab7c12cc9..f8395511f 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3966).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (3966).bes @@ -1,98 +1,98 @@ - - - - - Windows PowerShell 2.0 Available - Install Windows PowerShell version 2.0

-

After the installation of PowerShell in Windows 2008 servers it will be required reboot the server.

]]>
- (name of it = "WinXP" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR name of it = "WinXPe") of operating system AND TRUE - - Update - rafansm@br.ibm.com - <Unspecified> - 2015-01-23 - - IEM GTS Support Team - PowerShell - - - bigfixme-modification-time - Fri, 23 Jan 2015 13:46:56 GMT - - - x-fixlet-modification-time - Fri, 23 Jan 2015 17:41:03 +0000 - - BESC - - - Click - here - to deploy this software. - - - - - - - Click - here - to learn more about PowerShell v2.0. - - http://support.microsoft.com/kb/968929 - -
-
+ + + + + Windows PowerShell 2.0 Available + Install Windows PowerShell version 2.0

+

After the installation of PowerShell in Windows 2008 servers it will be required reboot the server.

]]>
+ (name of it = "WinXP" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR name of it = "WinXPe") of operating system AND TRUE + + Update + rafansm@br.ibm.com + <Unspecified> + 2015-01-23 + + IEM GTS Support Team + PowerShell + + + bigfixme-modification-time + Fri, 23 Jan 2015 13:46:56 GMT + + + x-fixlet-modification-time + Fri, 23 Jan 2015 17:41:03 +0000 + + BESC + + + Click + here + to deploy this software. + + + + + + + Click + here + to learn more about PowerShell v2.0. + + http://support.microsoft.com/kb/968929 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (634).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (634).bes index 8c7f655d2..277668207 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (634).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows PowerShell 2.0 Available (634).bes @@ -1,91 +1,91 @@ - - - - - Windows PowerShell 2.0 Available - Install Windows PowerShell version 2.0 - (name of it = "WinXP" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR name of it = "WinXPe") of operating system AND TRUE - - Update - danielheth@bigfix.me - <Unspecified> - 2011-04-21 - <Unspecified> - - x-fixlet-modification-time - Mon, 01 Oct 2012 21:29:34 +0000 - - BESC - - - Click - here - to deploy this software. - - -//Windows XP and XPe -if {((name of it = "WinXP") OR (name of it = "WinXPe")) of operating system AND TRUE} - download http://download.microsoft.com/download/E/C/E/ECE99583-2003-455D-B681-68DB610B44A4/WindowsXP-KB968930-x86-ENG.exe - continue if {(size of it = 6156064 AND sha1 of it = "540d661066953d76a6907b6ee0d1cd4531c1e1c6") of file "WindowsXP-KB968930-x86-ENG.exe" of folder "__Download"} - wait __Download\WindowsXP-KB968930-x86-ENG.exe /quiet /norestart -//Windows Vista x64 -elseif {(name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) of operating system AND TRUE} - download http://download.microsoft.com/download/3/C/8/3C8CF51E-1D9D-4DAA-AAEA-5C48D1CD055C/Windows6.0-KB968930-x64.msu - continue if {(size of it = 35922892 AND sha1 of it = "4de013d593181a2a04217ce3b0e7536ab56995aa") of file "Windows6.0-KB968930-x64.msu" of folder "__Download"} - wait __Download\Windows6.0-KB968930-x64.msu /quiet /norestart -//Windows Vista x86 -elseif {((name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it)) of operating system AND TRUE} - download http://download.microsoft.com/download/A/7/5/A75BC017-63CE-47D6-8FA4-AFB5C21BAC54/Windows6.0-KB968930-x86.msu - continue if {(size of it = 34059625 AND sha1 of it = "16fd2e93be2e7265821191119ddfc0cdaa6f4243") of file "Windows6.0-KB968930-x86.msu" of folder "__Download"} - wait __Download\Windows6.0-KB968930-x86.msu /quiet /norestart -//Windows Server 2003 x64 -elseif {((name of it = "Win2003" AND x64 of it)) of operating system AND TRUE} - download http://download.microsoft.com/download/B/D/9/BD9BB1FF-6609-4B10-9334-6D0C58066AA7/WindowsServer2003-KB968930-x64-ENG.exe - continue if {(size of it = 10334496 AND sha1 of it = "8ba702aa016e4c5aed581814647f4d55635eff5c") of file "WindowsServer2003-KB968930-x64-ENG.exe" of folder "__Download"} - wait __Download\WindowsServer2003-KB968930-x64-ENG.exe /quiet /norestart -//Windows Server 2003 x86 -elseif {((name of it = "Win2003" AND NOT x64 of it)) of operating system AND TRUE} - download http://download.microsoft.com/download/1/1/7/117FB25C-BB2D-41E1-B01E-0FEB0BC72C30/WindowsServer2003-KB968930-x86-ENG.exe - continue if {(size of it = 6300960 AND sha1 of it = "843dca5f32b47a3bc36cb4d7f3a92dfd2fcdddb3") of file "WindowsServer2003-KB968930-x86-ENG.exe" of folder "__Download"} - wait __Download\WindowsServer2003-KB968930-x86-ENG.exe /quiet /norestart -//Windows 2008 x64 -elseif {(((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it)) of operating system AND TRUE} - download http://download.microsoft.com/download/2/8/6/28686477-3242-4E96-9009-30B16BED89AF/Windows6.0-KB968930-x64.msu - continue if {(size of it = 35922892 AND sha1 of it = "4de013d593181a2a04217ce3b0e7536ab56995aa") of file "Windows6.0-KB968930-x64.msu" of folder "__Download"} - wait __Download\Windows6.0-KB968930-x64.msu /quiet /norestart -//Windows 2008 x86 -elseif {(((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it)) of operating system AND TRUE} - download http://download.microsoft.com/download/F/9/E/F9EF6ACB-2BA8-4845-9C10-85FC4A69B207/Windows6.0-KB968930-x86.msu - continue if {(size of it = 34059625 AND sha1 of it = "16fd2e93be2e7265821191119ddfc0cdaa6f4243") of file "Windows6.0-KB968930-x86.msu" of folder "__Download"} - wait __Download\Windows6.0-KB968930-x86.msu /quiet /norestart -endif -//we want to be able to import modules... thus set to remotesigned if it is not set -parameter "curExecutionPolicy"="{if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) then if exists value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) then (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) as string) else "" else ""}" -if {(parameter "curExecutionPolicy" = "") OR (parameter "curExecutionPolicy" = "Restricted")} - if {x64 of operating system} - regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="RemoteSigned" - else - regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="RemoteSigned" - endif -endif - - - - - Click - here - to learn more about PowerShell v2.0. - - http://support.microsoft.com/kb/968929 - - - + + + + + Windows PowerShell 2.0 Available + Install Windows PowerShell version 2.0 + (name of it = "WinXP" OR (name of it = "Win2003" AND NOT x64 of it) OR (name of it = "Win2003" AND x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it) OR (name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it) OR ((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it) OR name of it = "WinXPe") of operating system AND TRUE + + Update + danielheth@bigfix.me + <Unspecified> + 2011-04-21 + <Unspecified> + + x-fixlet-modification-time + Mon, 01 Oct 2012 21:29:34 +0000 + + BESC + + + Click + here + to deploy this software. + + +//Windows XP and XPe +if {((name of it = "WinXP") OR (name of it = "WinXPe")) of operating system AND TRUE} + download http://download.microsoft.com/download/E/C/E/ECE99583-2003-455D-B681-68DB610B44A4/WindowsXP-KB968930-x86-ENG.exe + continue if {(size of it = 6156064 AND sha1 of it = "540d661066953d76a6907b6ee0d1cd4531c1e1c6") of file "WindowsXP-KB968930-x86-ENG.exe" of folder "__Download"} + wait __Download\WindowsXP-KB968930-x86-ENG.exe /quiet /norestart +//Windows Vista x64 +elseif {(name of it = "WinVista" AND product type of it = nt workstation product type AND x64 of it) of operating system AND TRUE} + download http://download.microsoft.com/download/3/C/8/3C8CF51E-1D9D-4DAA-AAEA-5C48D1CD055C/Windows6.0-KB968930-x64.msu + continue if {(size of it = 35922892 AND sha1 of it = "4de013d593181a2a04217ce3b0e7536ab56995aa") of file "Windows6.0-KB968930-x64.msu" of folder "__Download"} + wait __Download\Windows6.0-KB968930-x64.msu /quiet /norestart +//Windows Vista x86 +elseif {((name of it = "WinVista" AND product type of it = nt workstation product type AND NOT x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/A/7/5/A75BC017-63CE-47D6-8FA4-AFB5C21BAC54/Windows6.0-KB968930-x86.msu + continue if {(size of it = 34059625 AND sha1 of it = "16fd2e93be2e7265821191119ddfc0cdaa6f4243") of file "Windows6.0-KB968930-x86.msu" of folder "__Download"} + wait __Download\Windows6.0-KB968930-x86.msu /quiet /norestart +//Windows Server 2003 x64 +elseif {((name of it = "Win2003" AND x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/B/D/9/BD9BB1FF-6609-4B10-9334-6D0C58066AA7/WindowsServer2003-KB968930-x64-ENG.exe + continue if {(size of it = 10334496 AND sha1 of it = "8ba702aa016e4c5aed581814647f4d55635eff5c") of file "WindowsServer2003-KB968930-x64-ENG.exe" of folder "__Download"} + wait __Download\WindowsServer2003-KB968930-x64-ENG.exe /quiet /norestart +//Windows Server 2003 x86 +elseif {((name of it = "Win2003" AND NOT x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/1/1/7/117FB25C-BB2D-41E1-B01E-0FEB0BC72C30/WindowsServer2003-KB968930-x86-ENG.exe + continue if {(size of it = 6300960 AND sha1 of it = "843dca5f32b47a3bc36cb4d7f3a92dfd2fcdddb3") of file "WindowsServer2003-KB968930-x86-ENG.exe" of folder "__Download"} + wait __Download\WindowsServer2003-KB968930-x86-ENG.exe /quiet /norestart +//Windows 2008 x64 +elseif {(((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/2/8/6/28686477-3242-4E96-9009-30B16BED89AF/Windows6.0-KB968930-x64.msu + continue if {(size of it = 35922892 AND sha1 of it = "4de013d593181a2a04217ce3b0e7536ab56995aa") of file "Windows6.0-KB968930-x64.msu" of folder "__Download"} + wait __Download\Windows6.0-KB968930-x64.msu /quiet /norestart +//Windows 2008 x86 +elseif {(((name of it = "Win2008" or (name of it = "WinVista" and product type of it != nt workstation product type)) AND NOT x64 of it)) of operating system AND TRUE} + download http://download.microsoft.com/download/F/9/E/F9EF6ACB-2BA8-4845-9C10-85FC4A69B207/Windows6.0-KB968930-x86.msu + continue if {(size of it = 34059625 AND sha1 of it = "16fd2e93be2e7265821191119ddfc0cdaa6f4243") of file "Windows6.0-KB968930-x86.msu" of folder "__Download"} + wait __Download\Windows6.0-KB968930-x86.msu /quiet /norestart +endif +//we want to be able to import modules... thus set to remotesigned if it is not set +parameter "curExecutionPolicy"="{if exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) then if exists value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) then (value "ExecutionPolicy" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of (if exists x64 registry then x64 registry else registry) as string) else "" else ""}" +if {(parameter "curExecutionPolicy" = "") OR (parameter "curExecutionPolicy" = "Restricted")} + if {x64 of operating system} + regset64 "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="RemoteSigned" + else + regset "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]" "ExecutionPolicy"="RemoteSigned" + endif +endif + + + + + Click + here + to learn more about PowerShell v2.0. + + http://support.microsoft.com/kb/968929 + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) (26617).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) (26617).bes index 58e3bb28f..d0373785b 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) (26617).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) (26617).bes @@ -1,242 +1,242 @@ - - - - - Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) - This installs the latest Windows updates.

-

Last tested on Windows 10 v1803 with PowerShell 5.1.  This version requires PS 5.0+ due to module usage.

-
    -
  1. Checks for existing scripting policy LGPO registry item (cannot override GPO) -
  2. If exists, back up and disable existing policy -
  3. Install prerequisite: NuGet 2.8.5.201+ -
  4. Install Windows Update PowerShell Module v2.0.0.4 (tested, feel free to drop that requirement) -
  5. Run Windows Update via newly added module -
  6. Action 6 is a separate action to uninstall Windows Update PowerShell Module "PSWindowsUpdate" if you would like to scrub the environment.
-

It will not ask questions, and not provide options - it will simply install everything it is able to install in one round.

-

This version will NOT install Windows Feature Updates, such as Windows 10 version 1803 to version 1809.

-

By running this task you accept the Microsoft TechNet terms of use.

-

Module Credit Michal Gajda, source: https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc/

]]>
- exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry - x64 of operating system - windows of operating system - exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3" whose (value "Install" of it as integer = 1) of registry - = "5.0") of registry]]> - Internal - 2018-06-13 - - bigfixme-added-time - Mon, 18 Jun 2018 12:07:16 GMT - - - bigfixme-modification-time - Tue, 26 Jun 2018 19:07:42 GMT - - - bigfixme-keywords - Windows Update Powershell Module MichalGajda - - - bigfixme-ID - 25528 - - - bigfixme-versions-ids - 25522,25523,25524,25527 - - - x-fixlet-modification-time - Thu, 11 Apr 2019 19:38:58 +0000 - - BESC - - - Click - here - &nbsp;to install Windows + Microsoft Updates without rebooting or notifying the user. - - // Set Powershell -parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" -// Disable script protection -if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f -endif - -// Disable execution policy in scope of current user (system) -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" - -// Install PowerShell Modules from PSGallery -waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" -waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" -waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" - -// Check for and install Windows Updates -waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -MicrosoftUpdate -AcceptAll -IgnoreReboot -Confirm:$false" - -// Restrict execution policy -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" - -// Re-enable script protection -if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f -endif - - - - Click - here - &nbsp;to install Windows + Microsoft Updates and automatically reboot without asking to reboot. - - // Set Powershell -parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" -// Disable script protection -if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f -endif - -// Disable execution policy in scope of current user (system) -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" - -// Install PowerShell Modules from PSGallery -waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" -waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" -waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" - -// Check for and install Windows Updates -waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -MicrosoftUpdate -AcceptAll -AutoReboot -Confirm:$false" - -// Restrict execution policy -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" - -// Re-enable script protection -if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f -endif - - - - Click - here - &nbsp;to install Windows Updates and automatically reboot without asking to reboot. - - // Set Powershell -parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" -// Disable script protection -if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f -endif - -// Disable execution policy in scope of current user (system) -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" - -// Install PowerShell Modules from PSGallery -waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" -waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" -waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" - -// Check for and install Windows Updates -waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -AcceptAll -AutoReboot -Confirm:$false" - -// Restrict execution policy -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" - -// Re-enable script protection -if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f -endif - - - - Click - here - &nbsp;to install Windows Updates without rebooting or notifying the user. - - // Set Powershell -parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" -// Disable script protection -if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f -endif - -// Disable execution policy in scope of current user (system) -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" - -// Install PowerShell Modules from PSGallery -waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" -waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" -waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" - -// Check for and install Windows Updates -waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -AcceptAll -IgnoreReboot -Confirm:$false" - -// Restrict execution policy -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" - -// Re-enable script protection -if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f -endif - - - - Click - here - to go to the TechNet page on this PowerShell module. - - https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc/ - - - - Click - here - to uninstall the PowerShell module. - - // Set Powershell -parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" -// Disable script protection -if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f -endif - -// Disable execution policy in scope of current user (system) -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" - -// Install PowerShell Modules from PSGallery -waithidden "{parameter "PowerShellexe"}" -Command "Uninstall-Module -Name PSWindowsUpdate -Force" - -// Restrict execution policy -waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" - -// Re-enable script protection -if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} -wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f -wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f -endif - - - - Click - here - to review this task in the bigfix.me Content Database. - - https://bigfix.me/cdb/fixlet/25528 - -
-
+ + + + + Windows Update - Execute Windows Update via PowerShell Install-Module (PS 5.0+ version) + This installs the latest Windows updates.

+

Last tested on Windows 10 v1803 with PowerShell 5.1.  This version requires PS 5.0+ due to module usage.

+
    +
  1. Checks for existing scripting policy LGPO registry item (cannot override GPO) +
  2. If exists, back up and disable existing policy +
  3. Install prerequisite: NuGet 2.8.5.201+ +
  4. Install Windows Update PowerShell Module v2.0.0.4 (tested, feel free to drop that requirement) +
  5. Run Windows Update via newly added module +
  6. Action 6 is a separate action to uninstall Windows Update PowerShell Module "PSWindowsUpdate" if you would like to scrub the environment.
+

It will not ask questions, and not provide options - it will simply install everything it is able to install in one round.

+

This version will NOT install Windows Feature Updates, such as Windows 10 version 1803 to version 1809.

+

By running this task you accept the Microsoft TechNet terms of use.

+

Module Credit Michal Gajda, source: https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc/

]]>
+ exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1" whose (value "Install" of it as integer = 1) of registry + x64 of operating system + windows of operating system + exists key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3" whose (value "Install" of it as integer = 1) of registry + = "5.0") of registry]]> + Internal + 2018-06-13 + + bigfixme-added-time + Mon, 18 Jun 2018 12:07:16 GMT + + + bigfixme-modification-time + Tue, 26 Jun 2018 19:07:42 GMT + + + bigfixme-keywords + Windows Update Powershell Module MichalGajda + + + bigfixme-ID + 25528 + + + bigfixme-versions-ids + 25522,25523,25524,25527 + + + x-fixlet-modification-time + Thu, 11 Apr 2019 19:38:58 +0000 + + BESC + + + Click + here + &nbsp;to install Windows + Microsoft Updates without rebooting or notifying the user. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" + +// Check for and install Windows Updates +waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -MicrosoftUpdate -AcceptAll -IgnoreReboot -Confirm:$false" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + &nbsp;to install Windows + Microsoft Updates and automatically reboot without asking to reboot. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" + +// Check for and install Windows Updates +waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -MicrosoftUpdate -AcceptAll -AutoReboot -Confirm:$false" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + &nbsp;to install Windows Updates and automatically reboot without asking to reboot. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" + +// Check for and install Windows Updates +waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -AcceptAll -AutoReboot -Confirm:$false" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + &nbsp;to install Windows Updates without rebooting or notifying the user. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Install-Module -Name PSWindowsUpdate -RequiredVersion 2.0.0.4 -Force" +waithidden "{parameter "PowerShellexe"}" -Command "Import-Module -Name PSWindowsUpdate -Force" + +// Check for and install Windows Updates +waithidden "{parameter "PowerShellexe"}" -Command "Get-WindowsUpdate -Install -AcceptAll -IgnoreReboot -Confirm:$false" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + to go to the TechNet page on this PowerShell module. + + https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc/ + + + + Click + here + to uninstall the PowerShell module. + + // Set Powershell +parameter "PowerShellexe"="{value "Path" of key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" of x64 registry}" +// Disable script protection +if {exist (value "EnableScripts" of it = "0") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /t REG_DWORD /d 00000001 /f +endif + +// Disable execution policy in scope of current user (system) +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force" + +// Install PowerShell Modules from PSGallery +waithidden "{parameter "PowerShellexe"}" -Command "Uninstall-Module -Name PSWindowsUpdate -Force" + +// Restrict execution policy +waithidden "{parameter "PowerShellexe"}" -Command "Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force" + +// Re-enable script protection +if {exist (value "EnableScriptsbackup" of it = "1") of keys "HKLM\Software\Policies\Microsoft\Windows\PowerShell" of native registry} +wait cmd /c reg delete "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScriptsBackup" /f +wait cmd /c reg add "HKLM\Software\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 00000000 /f +endif + + + + Click + here + to review this task in the bigfix.me Content Database. + + https://bigfix.me/cdb/fixlet/25528 + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Windows7810DeviceControl (24647).bes b/Sites/Windows Management/Fixlets/Fixlets/Windows7810DeviceControl (24647).bes index 3a52e2914..0886d478c 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Windows7810DeviceControl (24647).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Windows7810DeviceControl (24647).bes @@ -1,58 +1,58 @@ - - - - - Windows7810DeviceControl -

This task is applicable on: Windows 7, Windows 8, Windows 8.1, Windows 10. ]]>
- (name of operating system = "Win7" OR name of operating system = "Win8" OR name of operating system = "Win8.1" OR name of operating system = "Win10") AND (NOT exists value "DenyUnspecified" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" of native registry) - Registry Edit - Windows Registry Wizard - 2017-09-26 - - x-fixlet-source - Windows Registry Wizard - - - x-fixlet-modification-time - Tue, 26 Sep 2017 23:34:12 +0000 - - BESC - - - Click&nbsp; - here&nbsp; - to initiate the deployment process. - - - - -
-
+ + + + + Windows7810DeviceControl +

This task is applicable on: Windows 7, Windows 8, Windows 8.1, Windows 10. ]]>
+ (name of operating system = "Win7" OR name of operating system = "Win8" OR name of operating system = "Win8.1" OR name of operating system = "Win10") AND (NOT exists value "DenyUnspecified" of keys "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" of native registry) + Registry Edit + Windows Registry Wizard + 2017-09-26 + + x-fixlet-source + Windows Registry Wizard + + + x-fixlet-modification-time + Tue, 26 Sep 2017 23:34:12 +0000 + + BESC + + + Click&nbsp; + here&nbsp; + to initiate the deployment process. + + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/Workaround - Disable the MSDT URL Protocol (26935).bes b/Sites/Windows Management/Fixlets/Fixlets/Workaround - Disable the MSDT URL Protocol (26935).bes index 7f1162c21..71f394ffc 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Workaround - Disable the MSDT URL Protocol (26935).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Workaround - Disable the MSDT URL Protocol (26935).bes @@ -1,37 +1,37 @@ - - - - - Workaround - Disable the MSDT URL Protocol - Workaroud provided by Microsoft for CVE-2022-30190. - = "6.0.0.0") AND (exists true whose (if true then (exists (operating system) whose (it as string as lowercase contains "win" as lowercase)) else false))]]> - exists key "HKEY_CLASSES_ROOT\ms-msdt" of registry - Workaround - Internal - 2022-06-01 - CVE-2022-30190 - - x-fixlet-modification-time - Wed, 01 Jun 2022 02:39:09 +0000 - - BESC - - - Click - here - to deploy this action. - - dos reg export HKEY_CLASSES_ROOT\ms-msdt C:\ms-msdt_bak -dos reg delete HKEY_CLASSES_ROOT\ms-msdt /f - - - + + + + + Workaround - Disable the MSDT URL Protocol + Workaroud provided by Microsoft for CVE-2022-30190. + = "6.0.0.0") AND (exists true whose (if true then (exists (operating system) whose (it as string as lowercase contains "win" as lowercase)) else false))]]> + exists key "HKEY_CLASSES_ROOT\ms-msdt" of registry + Workaround + Internal + 2022-06-01 + CVE-2022-30190 + + x-fixlet-modification-time + Wed, 01 Jun 2022 02:39:09 +0000 + + BESC + + + Click + here + to deploy this action. + + dos reg export HKEY_CLASSES_ROOT\ms-msdt C:\ms-msdt_bak +dos reg delete HKEY_CLASSES_ROOT\ms-msdt /f + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/Workaround Undo - Disable the MSDT URL Protocol (26936).bes b/Sites/Windows Management/Fixlets/Fixlets/Workaround Undo - Disable the MSDT URL Protocol (26936).bes index bfd4515e3..8978efbdd 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/Workaround Undo - Disable the MSDT URL Protocol (26936).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/Workaround Undo - Disable the MSDT URL Protocol (26936).bes @@ -1,37 +1,37 @@ - - - - - Workaround Undo - Disable the MSDT URL Protocol - Undo workaroud provided by Microsoft for CVE-2022-30190. - = "6.0.0.0") AND (exists true whose (if true then (exists (operating system) whose (it as string as lowercase contains "win" as lowercase)) else false))]]> - exists file "C:\ms-msdt_bak" - Workaround - Internal - 2022-06-01 - CVE-2022-30190 - - x-fixlet-modification-time - Wed, 01 Jun 2022 03:14:38 +0000 - - BESC - - - Click - here - to deploy this action. - - dos reg import C:\ms-msdt_bak -dos del C:\ms-msdt_bak - - - + + + + + Workaround Undo - Disable the MSDT URL Protocol + Undo workaroud provided by Microsoft for CVE-2022-30190. + = "6.0.0.0") AND (exists true whose (if true then (exists (operating system) whose (it as string as lowercase contains "win" as lowercase)) else false))]]> + exists file "C:\ms-msdt_bak" + Workaround + Internal + 2022-06-01 + CVE-2022-30190 + + x-fixlet-modification-time + Wed, 01 Jun 2022 03:14:38 +0000 + + BESC + + + Click + here + to deploy this action. + + dos reg import C:\ms-msdt_bak +dos del C:\ms-msdt_bak + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (21333).bes b/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (21333).bes index 84667cdda..4c7fc37ee 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (21333).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (21333).bes @@ -1,50 +1,50 @@ - - - - - dump DNS Cache - Windows - - windows of operating system - - Internal - jgstew - 2016-03-12 - - x-fixlet-modification-time - Sat, 12 Mar 2016 21:28:49 +0000 - - BESC - - - Click - here - to deploy this action. - - "{parameter "LogFolder"}\results_dns_cache.txt" - -delete __createfile - -createfile until END_OF_FILE -{ concatenations "%0d%0a" of unique values of ( (following text of last ": " of it & " ;; " & following text of last ": " of unique value of previous lines of previous lines of previous lines of previous lines of previous lines of it) | it) of lines whose(it contains "A (Host) Record" OR it contains " ;; ") of (files "results_dns_cache.txt" of it; files "results_dns_cache_history.txt" of it) of folders "__Global\Logs" of data folders of client } -END_OF_FILE - -delete "{parameter "LogFolder"}\results_dns_cache_history.txt" - -copy __createfile "{parameter "LogFolder"}\results_dns_cache_history.txt" -]]> - - - - + + + + + dump DNS Cache - Windows + + windows of operating system + + Internal + jgstew + 2016-03-12 + + x-fixlet-modification-time + Sat, 12 Mar 2016 21:28:49 +0000 + + BESC + + + Click + here + to deploy this action. + + "{parameter "LogFolder"}\results_dns_cache.txt" + +delete __createfile + +createfile until END_OF_FILE +{ concatenations "%0d%0a" of unique values of ( (following text of last ": " of it & " ;; " & following text of last ": " of unique value of previous lines of previous lines of previous lines of previous lines of previous lines of it) | it) of lines whose(it contains "A (Host) Record" OR it contains " ;; ") of (files "results_dns_cache.txt" of it; files "results_dns_cache_history.txt" of it) of folders "__Global\Logs" of data folders of client } +END_OF_FILE + +delete "{parameter "LogFolder"}\results_dns_cache_history.txt" + +copy __createfile "{parameter "LogFolder"}\results_dns_cache_history.txt" +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (9281).bes b/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (9281).bes index f623f6b3a..5c99a1afb 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (9281).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/dump DNS Cache - Windows (9281).bes @@ -1,50 +1,50 @@ - - - - - dump DNS Cache - Windows - - windows of operating system - - Internal - jgstew - 2016-03-12 - - x-fixlet-modification-time - Sat, 12 Mar 2016 21:28:49 +0000 - - BESC - - - Click - here - to deploy this action. - - "{parameter "LogFolder"}\results_dns_cache.txt" - -delete __createfile - -createfile until END_OF_FILE -{ concatenations "%0d%0a" of unique values of ( (following text of last ": " of it & " ;; " & following text of last ": " of unique value of previous lines of previous lines of previous lines of previous lines of previous lines of it) | it) of lines whose(it contains "A (Host) Record" OR it contains " ;; ") of (files "results_dns_cache.txt" of it; files "results_dns_cache_history.txt" of it) of folders "__Global\Logs" of data folders of client } -END_OF_FILE - -delete "{parameter "LogFolder"}\results_dns_cache_history.txt" - -copy __createfile "{parameter "LogFolder"}\results_dns_cache_history.txt" -]]> - - - - + + + + + dump DNS Cache - Windows + + windows of operating system + + Internal + jgstew + 2016-03-12 + + x-fixlet-modification-time + Sat, 12 Mar 2016 21:28:49 +0000 + + BESC + + + Click + here + to deploy this action. + + "{parameter "LogFolder"}\results_dns_cache.txt" + +delete __createfile + +createfile until END_OF_FILE +{ concatenations "%0d%0a" of unique values of ( (following text of last ": " of it & " ;; " & following text of last ": " of unique value of previous lines of previous lines of previous lines of previous lines of previous lines of it) | it) of lines whose(it contains "A (Host) Record" OR it contains " ;; ") of (files "results_dns_cache.txt" of it; files "results_dns_cache_history.txt" of it) of folders "__Global\Logs" of data folders of client } +END_OF_FILE + +delete "{parameter "LogFolder"}\results_dns_cache_history.txt" + +copy __createfile "{parameter "LogFolder"}\results_dns_cache_history.txt" +]]> + + + + diff --git a/Sites/Windows Management/Fixlets/Fixlets/set Windows KMS key - Windows BETA (21368).bes b/Sites/Windows Management/Fixlets/Fixlets/set Windows KMS key - Windows BETA (21368).bes index 6dc250d4d..05134a58a 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/set Windows KMS key - Windows BETA (21368).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/set Windows KMS key - Windows BETA (21368).bes @@ -1,67 +1,67 @@ - - - - - set Windows KMS key - Windows BETA - This will only work properly with known KMSkey/OSversion combinations that are contained within the embedded relevance statements.

-

There are definitely missing combinations which this will NOT work for.

-

The relevance used could be expanded and adapted to work with more KMSkeys.

-

This is meant to be taken as a policy action, applied to all computers all of the time.

-

Known Issue: the relevance that checks to see if windows is activated doesn't account for MS Office being installed, which may make this not relevant on a machine where it SHOULD be relevant

-

 

]]>
- /* Windows Only */ windows of operating system - = "5.1"]]> - not exists unique values whose(1 = it) of integer values of selects "LicenseStatus from SoftwareLicensingProduct WHERE PartialProductKey is not null" of wmis - 1*day ) of subscribe times of sites]]> - exists values "KeyManagementServiceName" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x32 registries; x64 registries) - - - Internal - 2016-08-31 - - x-fixlet-modification-time - Thu, 01 Sep 2016 01:11:06 +0000 - - BESC - - - Click - here - to deploy this action. - - - -
-
+ + + + + set Windows KMS key - Windows BETA + This will only work properly with known KMSkey/OSversion combinations that are contained within the embedded relevance statements.

+

There are definitely missing combinations which this will NOT work for.

+

The relevance used could be expanded and adapted to work with more KMSkeys.

+

This is meant to be taken as a policy action, applied to all computers all of the time.

+

Known Issue: the relevance that checks to see if windows is activated doesn't account for MS Office being installed, which may make this not relevant on a machine where it SHOULD be relevant

+

 

]]>
+ /* Windows Only */ windows of operating system + = "5.1"]]> + not exists unique values whose(1 = it) of integer values of selects "LicenseStatus from SoftwareLicensingProduct WHERE PartialProductKey is not null" of wmis + 1*day ) of subscribe times of sites]]> + exists values "KeyManagementServiceName" of keys "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" of (x32 registries; x64 registries) + + + Internal + 2016-08-31 + + x-fixlet-modification-time + Thu, 01 Sep 2016 01:11:06 +0000 + + BESC + + + Click + here + to deploy this action. + + + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell (25582).bes b/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell (25582).bes index 905c21474..296f02197 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell (25582).bes +++ b/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell (25582).bes @@ -1,110 +1,110 @@ - - - - - _template XML Editing Template Powershell - Sample template fixlet to modify an XML file. 

-

This Fixlet demonstrates opening an XML file with PowerShell, and replacing a value in the XML content.

-

Originally written to allow removing an NVidia driver without rebooting.  NVidia, in their admin-unfriendliness, decided that uninstalling a driver should immediately trigger a reboot without providing any options to delay the reboot or to warn the user that a reboot is going to occur.  There are no command-line parameters available to modify this behavior, but we can skip the reboot by modifying a value in their nv.xml configuration file. 

-

This fixlet, being an example of the PowerShell usage, generates on-the-fly an XML file similar to NVidia's format, and then uses PowerShell to replace one of the attribute values in that file.

]]>
- windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) - Internal - 2018-08-23 - - x-fixlet-modification-time - Mon, 12 Nov 2018 18:48:14 +0000 - - BESC - - - Click - here - to deploy this action. - - -xpath -name -value [-out ] [-showdetail] - -.EXAMPLE -powershell -ExecutionPolicy Bypass -File $MyInvocation.ScriptName -file "C:\temp\nv.xml" -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out "c:\temp\nv-output.xml" -showdetail - -.NOTES -Originally written to change brain-dead NVidia driver uninstallers to not force a reboot without warning on uninstall. The NVidia XML config files needed to be updated to remove the forced reboot. - - - -#> - - - -param ( - [Parameter(Mandatory=$true)][string]$file, - [string]$out=$file, - [Parameter(Mandatory=$true)][string]$xpath, - [Parameter(Mandatory=$true)][string]$name, - [Parameter(Mandatory=$true)][string]$value, - [switch]$showdetail=$false - -) -if ($showdetail) {{ - write-host "Parameters:" - write-host "file: $file" - write-host "Selection Search: $select" - write-host "Node to change: $name" - write-host "New value to set: $value" - write-host "Output File: $out" -} - #$path=$file - [xml]$xml=(Get-Content $file) - [System.Xml.XmlElement] $root = $xml.get_DocumentElement() - $nodes=$root.SelectNodes($xpath) - foreach ($node in $nodes) {{ - if ($showdetail) {{ write-host "Found node " $node.OuterXml } - $node.$name=$value - } - if ($showdetail) {{ write-host "Saving output to " $out } - $xml.save($out) - EOF_EOF_EOF_EOF - - delete updatexml.ps1 - move __createfile updatexml.ps1 - - -// Create a sample XML file to update, will change "uninstallReboot" to "false" -delete __createfile -createfile until EOF_EOF_EOF_EOF - - - - - - - - - -EOF_EOF_EOF_EOF -delete sample.xml -move __createfile sample.xml - -// Now, use powershell to modify an attribute within the sample file and output it to a new XML -waithidden powershell.exe -ExecutionPolicy Bypass -File updatexml.ps1 -file sample.xml -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out sample-output.xml]]> - -
-
+ + + + + _template XML Editing Template Powershell + Sample template fixlet to modify an XML file. 

+

This Fixlet demonstrates opening an XML file with PowerShell, and replacing a value in the XML content.

+

Originally written to allow removing an NVidia driver without rebooting.  NVidia, in their admin-unfriendliness, decided that uninstalling a driver should immediately trigger a reboot without providing any options to delay the reboot or to warn the user that a reboot is going to occur.  There are no command-line parameters available to modify this behavior, but we can skip the reboot by modifying a value in their nv.xml configuration file. 

+

This fixlet, being an example of the PowerShell usage, generates on-the-fly an XML file similar to NVidia's format, and then uses PowerShell to replace one of the attribute values in that file.

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + Internal + 2018-08-23 + + x-fixlet-modification-time + Mon, 12 Nov 2018 18:48:14 +0000 + + BESC + + + Click + here + to deploy this action. + + -xpath -name -value [-out ] [-showdetail] + +.EXAMPLE +powershell -ExecutionPolicy Bypass -File $MyInvocation.ScriptName -file "C:\temp\nv.xml" -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out "c:\temp\nv-output.xml" -showdetail + +.NOTES +Originally written to change brain-dead NVidia driver uninstallers to not force a reboot without warning on uninstall. The NVidia XML config files needed to be updated to remove the forced reboot. + + + +#> + + + +param ( + [Parameter(Mandatory=$true)][string]$file, + [string]$out=$file, + [Parameter(Mandatory=$true)][string]$xpath, + [Parameter(Mandatory=$true)][string]$name, + [Parameter(Mandatory=$true)][string]$value, + [switch]$showdetail=$false + +) +if ($showdetail) {{ + write-host "Parameters:" + write-host "file: $file" + write-host "Selection Search: $select" + write-host "Node to change: $name" + write-host "New value to set: $value" + write-host "Output File: $out" +} + #$path=$file + [xml]$xml=(Get-Content $file) + [System.Xml.XmlElement] $root = $xml.get_DocumentElement() + $nodes=$root.SelectNodes($xpath) + foreach ($node in $nodes) {{ + if ($showdetail) {{ write-host "Found node " $node.OuterXml } + $node.$name=$value + } + if ($showdetail) {{ write-host "Saving output to " $out } + $xml.save($out) + EOF_EOF_EOF_EOF + + delete updatexml.ps1 + move __createfile updatexml.ps1 + + +// Create a sample XML file to update, will change "uninstallReboot" to "false" +delete __createfile +createfile until EOF_EOF_EOF_EOF + + + + + + + + + +EOF_EOF_EOF_EOF +delete sample.xml +move __createfile sample.xml + +// Now, use powershell to modify an attribute within the sample file and output it to a new XML +waithidden powershell.exe -ExecutionPolicy Bypass -File updatexml.ps1 -file sample.xml -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out sample-output.xml]]> + +
+
diff --git a/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell.bes b/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell.bes index 905c21474..296f02197 100644 --- a/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell.bes +++ b/Sites/Windows Management/Fixlets/Fixlets/template XML Editing Template Powershell.bes @@ -1,110 +1,110 @@ - - - - - _template XML Editing Template Powershell - Sample template fixlet to modify an XML file. 

-

This Fixlet demonstrates opening an XML file with PowerShell, and replacing a value in the XML content.

-

Originally written to allow removing an NVidia driver without rebooting.  NVidia, in their admin-unfriendliness, decided that uninstalling a driver should immediately trigger a reboot without providing any options to delay the reboot or to warn the user that a reboot is going to occur.  There are no command-line parameters available to modify this behavior, but we can skip the reboot by modifying a value in their nv.xml configuration file. 

-

This fixlet, being an example of the PowerShell usage, generates on-the-fly an XML file similar to NVidia's format, and then uses PowerShell to replace one of the attribute values in that file.

]]>
- windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) - Internal - 2018-08-23 - - x-fixlet-modification-time - Mon, 12 Nov 2018 18:48:14 +0000 - - BESC - - - Click - here - to deploy this action. - - -xpath -name -value [-out ] [-showdetail] - -.EXAMPLE -powershell -ExecutionPolicy Bypass -File $MyInvocation.ScriptName -file "C:\temp\nv.xml" -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out "c:\temp\nv-output.xml" -showdetail - -.NOTES -Originally written to change brain-dead NVidia driver uninstallers to not force a reboot without warning on uninstall. The NVidia XML config files needed to be updated to remove the forced reboot. - - - -#> - - - -param ( - [Parameter(Mandatory=$true)][string]$file, - [string]$out=$file, - [Parameter(Mandatory=$true)][string]$xpath, - [Parameter(Mandatory=$true)][string]$name, - [Parameter(Mandatory=$true)][string]$value, - [switch]$showdetail=$false - -) -if ($showdetail) {{ - write-host "Parameters:" - write-host "file: $file" - write-host "Selection Search: $select" - write-host "Node to change: $name" - write-host "New value to set: $value" - write-host "Output File: $out" -} - #$path=$file - [xml]$xml=(Get-Content $file) - [System.Xml.XmlElement] $root = $xml.get_DocumentElement() - $nodes=$root.SelectNodes($xpath) - foreach ($node in $nodes) {{ - if ($showdetail) {{ write-host "Found node " $node.OuterXml } - $node.$name=$value - } - if ($showdetail) {{ write-host "Saving output to " $out } - $xml.save($out) - EOF_EOF_EOF_EOF - - delete updatexml.ps1 - move __createfile updatexml.ps1 - - -// Create a sample XML file to update, will change "uninstallReboot" to "false" -delete __createfile -createfile until EOF_EOF_EOF_EOF - - - - - - - - - -EOF_EOF_EOF_EOF -delete sample.xml -move __createfile sample.xml - -// Now, use powershell to modify an attribute within the sample file and output it to a new XML -waithidden powershell.exe -ExecutionPolicy Bypass -File updatexml.ps1 -file sample.xml -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out sample-output.xml]]> - -
-
+ + + + + _template XML Editing Template Powershell + Sample template fixlet to modify an XML file. 

+

This Fixlet demonstrates opening an XML file with PowerShell, and replacing a value in the XML content.

+

Originally written to allow removing an NVidia driver without rebooting.  NVidia, in their admin-unfriendliness, decided that uninstalling a driver should immediately trigger a reboot without providing any options to delay the reboot or to warn the user that a reboot is going to occur.  There are no command-line parameters available to modify this behavior, but we can skip the reboot by modifying a value in their nv.xml configuration file. 

+

This fixlet, being an example of the PowerShell usage, generates on-the-fly an XML file similar to NVidia's format, and then uses PowerShell to replace one of the attribute values in that file.

]]>
+ windows of operating system AND (if exists property "in proxy agent context" then not in proxy agent context else true) + Internal + 2018-08-23 + + x-fixlet-modification-time + Mon, 12 Nov 2018 18:48:14 +0000 + + BESC + + + Click + here + to deploy this action. + + -xpath -name -value [-out ] [-showdetail] + +.EXAMPLE +powershell -ExecutionPolicy Bypass -File $MyInvocation.ScriptName -file "C:\temp\nv.xml" -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out "c:\temp\nv-output.xml" -showdetail + +.NOTES +Originally written to change brain-dead NVidia driver uninstallers to not force a reboot without warning on uninstall. The NVidia XML config files needed to be updated to remove the forced reboot. + + + +#> + + + +param ( + [Parameter(Mandatory=$true)][string]$file, + [string]$out=$file, + [Parameter(Mandatory=$true)][string]$xpath, + [Parameter(Mandatory=$true)][string]$name, + [Parameter(Mandatory=$true)][string]$value, + [switch]$showdetail=$false + +) +if ($showdetail) {{ + write-host "Parameters:" + write-host "file: $file" + write-host "Selection Search: $select" + write-host "Node to change: $name" + write-host "New value to set: $value" + write-host "Output File: $out" +} + #$path=$file + [xml]$xml=(Get-Content $file) + [System.Xml.XmlElement] $root = $xml.get_DocumentElement() + $nodes=$root.SelectNodes($xpath) + foreach ($node in $nodes) {{ + if ($showdetail) {{ write-host "Found node " $node.OuterXml } + $node.$name=$value + } + if ($showdetail) {{ write-host "Saving output to " $out } + $xml.save($out) + EOF_EOF_EOF_EOF + + delete updatexml.ps1 + move __createfile updatexml.ps1 + + +// Create a sample XML file to update, will change "uninstallReboot" to "false" +delete __createfile +createfile until EOF_EOF_EOF_EOF + + + + + + + + + +EOF_EOF_EOF_EOF +delete sample.xml +move __createfile sample.xml + +// Now, use powershell to modify an attribute within the sample file and output it to a new XML +waithidden powershell.exe -ExecutionPolicy Bypass -File updatexml.ps1 -file sample.xml -xpath "//*[@uninstallReboot='true']" -name uninstallReboot -value false -out sample-output.xml]]> + +
+