[SOLVED] got a blue screen :( and I can't run SFC. Err. 0x74:Bad_system_config_info; DEFAULT hive corrupt. FIX: I replaced it with the one in W10-20H2-eng ISO.

Find your ESP (<---- P is partition!!!) number:
Read More:
Then launch this command (you must modify it before you launch it, continue to read after the code):
Code:
bcdedit /set {bootmgr} device partition=\Device\HarddiskVolume--x--
Where X is the partition number of ESP.
(Don't ask me why they use the partition number when the setting says VOLUME!)
As an example, my system, for ESP, says volume 4 and partition 2.
Bcdedit says the device setting for {bootmgr} is partition=\Device\HarddiskVolume2.
Hence in my case, I should use 2 as final number:
Code:
bcdedit /set {bootmgr} device partition=\Device\HarddiskVolume2


Read More:
 
Partition 1 on my disk 0 is the EFI partition, but for some reason when I type that command "HarddiskVolume1" it goes with the Partition 1 of my NVME which doesn't have anything on it (no efi directory and is a exfat filesystem) and is letter F: and the device attribute on bcdedit /enum active switchs to F: instead of volume1 so it goes with that drive automaticaly.

when I select HarddiskVolume2 it just says device \Device\HarddiskVolume2

What can I do? it doesn't boot with either when specifying vo1 or 2 yet.
 
I'm also thinking I'll just use S: and then remove the letter once I get to Windows 10.
I been trying to do that but I can't find how to automount a volume. automount enable on diskpart doesn't do it.
 
I just checked and indeed I should select HarddiskVolume2 that points to the S: drive automatically or to HarddiskVolume2 when no drive letter is assigned to the EFI partition.
If I switch to drive Z: then bcdedit /enum active switches to z: automaticaly.

What can I do? I tried everything already. Just tell me how to unselect "use original boot configuration" on msconfig, that may be why is not booting, I selected normal startup on msconfig and that broke it.
It was set as selective startup and with "use original boot configuration" unselected.
 
I fixed it! the error was listed in SRTRAIL, a mbam malwarebytes file was corrupt.
I'm back to where I can't log in normally to the standard account. ¿Could you help me solve this? most of my shortcuts are missing because is not loading my user folder is loading a temp account.
ADMIN account is good.
 
I created a local standard account and is working.
the only problem is my Miguel standard account inability to sign in. I want to fix it, I'll look up on information.
 
Is it a Microsoft account or a local account?
Does it ask you the password?
What does it happen after you put the password?
Is a local account and I have a password not a pin.
after I enter password and hit enter rather than saying like is going in it says "preparing windows" takes longer than usual and then I got that blue box I posted in previous message. a new folder is added to the \users folder similar to temp.hostname kinda name.
 
I'm also having the issue of windows update, specific to a cumulative update for 20h2.
Installed 2 other updates fine. Don't know if I can't update this package because of storage space. I have 35GB left on disk c:
 

Attachments

  • Untitled.png
    Untitled.png
    343.6 KB · Views: 3
See if you're able to run this script in administrative powershell (PS): (click OK > typically completes < 30 min) > post a share link using one drive, drop box, or google drive

Code:
function wh 
    {
        Param ( [parameter (Mandatory = $true)][string]$txt )
        Write-Host $txt -ForegroundColor Green -BackgroundColor Black -NoNewline
        ##Example usage wh "Alias for `n Write-Host"

    } ## End function wh


function StartScript 
    {
        ##Locating Temp Dir and writing Transcript
        $global:tempDir = [System.IO.Path]::GetTempPath() 
        MD $tempDir\LOGS -EA SilentlyContinue 
        CD $tempDir\LOGS
        $txtCount = Get-Item $tempDir/LOGS/*.TXT -EA SilentlyContinue
        if((Get-Host).Version.Major -cge 5) ##WIN7 Not Supported
            {
                if($txtCount.Count -cge 1) 
                {Start-Transcript -Append -Path $tempDir/LOGS/Event-Search.TXT} 
                Else{Start-Transcript -Path $tempDir\LOGS\Event-Search.TXT} 
            }

        $global:explore = $tempDir + "LOGS\"
        $global:Ver = "1.6.3"
        wh "`nLog Collection... (V$Ver)`n"

        #clearing previous actions
        Stop-Job *

        #Initialize CheckBox Vars to $True/$False
            $Global:EventsCollect = $true; $Global:SetupDiagCollect = $true
                $Global:UpdatesCollect = $true; $Global:WLANCollect = $true
                    $Global:PowerCollect = $true; $Global:GPCollect = $true
                        $Global:miscCollect = $true; $Global:bingCollect = $true
                            $Global:eventOut = $false     
        #Clear Jobs
        Stop-Job *
        Remove-Job *
                                        
    } ## End function Start-Script


function SetupDiagFunc
    {
        wh "`n Grabbing SetupDiag.exe ..."     
        Invoke-WebRequest https://go.microsoft.com/fwlink/?linkid=870142 -OutFile $tempDir\SetupDiag.exe -TimeoutSec 3 -UseBasicParsing
            #check for successful download
            if((Get-Item $tempDir\SetupDiag.exe).length -gt 100000)
                {
                  wh "`nSuccessful DL!"
                  wh "`n Invoking SetupDiag.exe ..."
                  $SetupDiag = {CMD.EXE /C "%temp%\setupdiag.exe /Verbose /Output:%temp%\SetupDiag-Log.txt"}

                  ## Kick-Off SetupDiagJob
                  Start-Job -Name SetupDiagJob -ScriptBlock $SetupDiag                   
                
                }Else{Write-Host "`nDownload of SetupDiag.exe Failed!" -BackgroundColor RED }

    } ## End Function SetupDiagFunc


function EventSearch
    {
    wh "`n Starting EventSearch Job-Function ...`n"
    ## Gathering Events from System using Get-WinEvent via Job
    $EventSearchJob = 
        {
        $evtPaths = Get-Item C:\Windows\System32\Winevt\Logs\*.evtx -Exclude "*PowerShell*", 
            "*known folders*" | Select-Object FullName
        $i = $evtPaths.Count

        $x = 0 ##For 1st Loop do Until x = i
        $events = @()
        $gatherEvents = @()
        $eventsArray = @()
        $searchResult = @()
        $MaxEvents = 99

        #Loading/Gathering Events Loop...
        do {
    
            ##Getting Events w/ Get-WinEvent       
            $gatherEvents = Get-WinEvent -Path $evtPaths[$x].FullName -MaxEvents $MaxEvents -EA SilentlyContinue
            $events = $events + $gatherEvents           

            $x++
            
            }
             Until ($x -eq $i)   

        $x = $x +1 ##Total Events Found!
        
        $eventsLength = $events.Length ##Total events catalogged!
        
        $xx = 0
            
        # Write Event Properties to a row and roll it out - Collapsing Array ... 
        do {
               $date = $events[$xx].TimeCreated | Get-Date -Format "yyyyMMdd".ToString() -EA SilentlyContinue ##EA SC for Blank Entries
                
                $eventRow = new-object PSObject -Property @{
                Date = $date;
                Id = $events[$xx].Id;
                Level = $events[$xx].LevelDisplayName;
                Provider = $events[$xx].ProviderName;
               Message = $events[$xx].Message;
                }

                $cRow = $date + " " + "ID:" +  $events[$xx].Id + " " + "Level:" + $events[$xx].LevelDisplayName + " " + "Provider:" + $events[$xx].ProviderName + " " + "Message:" + $events[$xx].Message 
                $eventsArray += $cRow
            
                $xx++
                $d++
        }
        Until ($xx -eq $events.Length)

        ##Looking for patterns error or fail in $eventsArray
        $search = $eventsArray | Select-String -pattern ("error|fail")

        Return $search ## | Write-Output ##Output for job

        } ## End $EventSearchJob

    Start-Job -Name EventSearchJob -ScriptBlock $EventSearchJob

    } ## End function Event-Search


function writeSearch  ## 
    {
        ##Event Logs Cont.
        MD $tempDir\LOGS\EVTX\ -EA SilentlyContinue

        ##output to file
        $search | Group-Object | Sort-Object Count -Descending | Format-Table Count, Name -Wrap > TOP-ERRORS.TXT
        $search > $tempDir\LOGS\SEARCH.TXT

    if($Global:eventOut -eq $True)
        {
        $search | Group-Object | Sort-Object Count -Descending | 
            Select-Object -Property Count, Name | Out-GridView -Title "Top `"Errors`" via EVTX - V-$Ver"
        }

        wh "`n Collecting Matching EVTX Entries ...`n"   
        #Collecting all prev matching EVTX
        #$evtx = Get-ChildItem C:\Windows\System32\Winevt\Logs\*.evtx
        $evv = 0
                
           $providerName = 
               (($search | Select-String "Provider:.*Message:").Matches.Value -Replace 
                      " Message:", "" -Replace "Provider:", "" | Group-Object ).Name
            
            #Converting Provider Name to Log Name               
            $providerName = (($providerName | ForEach-Object {Get-WinEvent -ProviderName $_ -MaxEvents 1 -EA SilentlyContinue}).LogName | Group-Object).Name   
               $providerName = $providerName -replace "Microsoft.", ""
                  $providerName = $providerName -replace "Windows.", ""
                     $providerName = $providerName -replace "`/.*$", ""
                        
                        
                         $evtx = $providerName | foreach{Get-ChildItem "C:\Windows\System32\winevt\logs\*$_*"}

                Do{
                    COPY $evtx[$evv].PSPath $tempDir\LOGS\EVTX\
                       $evv++
                  }
                  Until($evv -eq $evtx.Count)

    } #End function writeSearch


function GetUpdates
    {
        wh "`n Starting Get-WindowsUpdateLog Job-Function ...`n"
        $updateJob = {get-WindowsUpdateLog}
      
        if((Get-Host).Version.Major -cge 5) ##Modern Gatherer
        {
            Start-Job -Name GetUpdates -ScriptBlock $updateJob
        }
        
        ##Legacy Gatherer
        CP C:\Windows\WindowsUpdate.log $tempDir\LOGS\WindowsUpdate.log

        ##Installed-Updates/Packages
        Get-WmiObject win32_quickfixengineering > $tempDir\LOGS\Installed_Updates.TXT
        Get-WmiObject Win32_OperatingSystemQFE >> $tempDir\LOGS\Installed_Updates.TXT
    DISM /Online /Get-Packages /Format:Table >> $tempDir\LOGS\Installed_Updates.TXT

    } ## End function Get-Updates

    
function PrinterCheck
    {
        wh "`n Getting Printer Information ..."
        get-printer | ft Name, ComputerName, Type, DriverName, PortName, Datatype, Location, DriverName > $tempDir\LOGS\Printers.TXT
        get-printerDriver | fl >> $tempDir\LOGS\Printers.TXT
        Get-ChildItem -Recurse Registry::"HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers" | Out-File $tempDir\LOGS\Printers.TXT -Append
        Get-ChildItem -Recurse Registry::"HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers" | Out-File $tempDir\LOGS\Printers.TXT -Append
        Get-ChildItem -Recurse Registry::"HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors" | Out-File $tempDir\LOGS\Printers.TXT -Append
        write-output "## CBS ntprint CHECK ##" >> $tempDir\LOGS\Printers.TXT
        $cbsCheck = (Get-ChildItem C:\Windows\Logs\CBS\*cbs* -Recurse | select-string -Pattern "E_INVALIDARG in eventsXml.*Microsoft-Windows-PrintService")
        if($cbsCheck.Count -eq 0){Write-Output "## NO MATCHES IN CBS ##" >> $tempDir\LOGS\Printers.TXT} Else{$cbsCheck | Group-Object  >> $tempDir\LOGS\Printers.TXT}
        write-output "## ntprint.dll CHECK ##" >> $tempDir\LOGS\Printers.TXT
        (Get-ChildItem C:\Windows\System32\ntprint.dll).VersionInfo | ft -AutoSize >> $tempDir\LOGS\Printers.TXT
        (Get-ChildItem C:\Windows\SysWOW64\ntprint.dll).VersionInfo | ft -AutoSize >> $tempDir\LOGS\Printers.TXT

    } ## End function PrinterCheck


function UpdateHelper
    {
    if((Get-Host).Version.Major -cge 5)
        {
            $winupdatelog = get-item $tempDir\LOGS\windows-update.log    ##WIN-10 File
            MD $tempDir\LOGS\Windows\Logs\WindowsUpdate\ -EA SilentlyContinue | Out-Null
            CP C:\Windows\Logs\WindowsUpdate\*.etl $tempDir\LOGS\Windows\Logs\WindowsUpdate\ -EA SilentlyContinue
        }
            Else{$winupdatelog = get-item $tempDir\LOGS\windowsupdate.log} ##LEGACY File

    $updateError = ($winupdatelog | select-string -pattern "error.*0x........");
    $updateErrorSplit = $updateError -Split " "
    $updateErrorCount = (($updateErrorSplit | select-string -pattern "0x........") -Replace "[(),'`.:]", "" -Replace "hr=", "");

    $updateErrorCount | Group-Object | Sort-Object Count -Descending | Format-Table Count, Name | Out-File $tempDir\LOGS\UPDATE-ERRORS.TXT -Width 999
    $updateError >> UPDATE-ERRORS.TXT
    if($updateError.length -eq 0){"No `"error.*0x........`" patterns Found in Windows-Update.log" | Out-File $tempDir\LOGS\UPDATE-ERRORS.TXT}

    ($winupdatelog | Select-String "KB\d\d\d\d\d\d\d" | Select-string "fail") | Out-file $tempDir\LOGS\UPDATE-ERRORS.TXT -Append -width 999

    } ## End function UpdateHelper


function getProcesses
    {
    wh "`nGetting Active Process ...`n" 
    Get-Process > $tempDir\LOGS\Running-Processes.TXT
    CMD.EXE /C "tasklist /svc" | Out-File -Append  $tempDir\LOGS\Running-Processes.TXT
    
    } ## End function getProcesses


function GetApps
    {
    wh "`n Getting List of Installed Apps...`n"
    Get-WmiObject -Class Win32_Product | Format-Table -Property Name, Version, Vendor > $tempDir\LOGS\Installed-Apps.TXT
    Get-AppxPackage | ft Name, Version, InstallLocation, IspArtiallyStaged, SignatureKind, Status >> $tempDir\LOGS\Installed-Apps.TXT
    
    } ## End function GetApps


function SetupLogs
    {
    wh "`nGetting Windows Setup Logs Independent of SetupDiage.exe...`n"
        MD $tempDir\LOGS\SETUP\ -EA SilentlyContinue
    dir C:\ > $tempDir\LOGS\Dir_Structure.txt
    
    ## Main Setup Collection
    if($env:SystemDrive -eq 'C:') ##Verify SystemDrive
    {
        $SetupPaths = @()

        $locations = @(
            'C:\GetCurrent',
            'C:\$Reset',
            'C:\$SysReset',
            'C:\$Windows.~BT',
            'C:\$Windows.~WS',
            'C:\Windows\Logs\',
            'C:\Windows\Panther\',
            'C:\Windows\inf\',
            'C:\Windows\System32\LogFiles\',
            'C:\Windows\System32\SysPrep\',
            'C:\Windows10Upgrade',
            'C:\Windows.old\Windows\Panther')

        for($i = 0; $locations.count -gt $i; $i++)
        { 
            if((get-item $locations[$i] -Force -EA SilentlyContinue).length -gt 0) ##Null Path Check -Force for Hidden
            {
                CD $locations[$i]
                ##Search includes setuperr/setupact only
                $SetupPaths += Get-ChildItem * -Force -Recurse -Include setuperr.log, setupact.log, miglog.xml, *APPRAISER_Humanreadable.xml -EA SilentlyContinue   
            }
        }

        $cleanPaths = @()

        for($i = 0; $SetupPaths.count -gt $i; $i++)
        {
            $cleanPaths += $SetupPaths[$i].PSParentPath.ToString() -replace "Microsoft\.PowerShell\.Core\\FileSystem\:\:C\:\\", ""
        }

        CD $tempDir\LOGS\SETUP\
        MD $cleanPaths -Force
        CD $tempDir\LOGS\

        for($i = 0; $SetupPaths.count -gt $i; $i++)
        {
            $destPath = "$tempDir\LOGS\SETUP\" + $cleanPaths[$i]
            $copyPathLog = ($SetupPaths[$i].ToString())
            
            Copy  $copyPathLog -Destination $destPath
        }
    
    }Else{Write-Host "`nSystem Drive is not C:... Setup Collection Aborted!`n"}
    ## End Main Setup Collection
    
        
        ## Setup Reg Output   
        Get-ChildItem HKLM:\SYSTEM\SETUP\ | Out-File $tempDir\LOGS\SETUP\HKLM_SYSTEM_SETUP-OOBE.TXT
        Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\Me* -recurse -EA SilentlyContinue | Out-File $tempDir\LOGS\SETUP\HKLM_SYSTEM_SETUP-OOBE.TXT -Append
        Get-Childitem HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate | Out-File $tempDir\LOGS\SETUP\HKLM_SYSTEM_SETUP-OOBE.TXT -Append

        ## SetupAct String Search


        
         $setupRegx = @("MOUPG SetupHost..Initialize:",
                        "============================",
                        (Get-ChildItem $tempDir\LOGS\*setupact.log -Recurse | Select-String "MOUPG  SetupHost..Initialize. CmdLine"),
                        "",
                        "MOUPG Setup build & Host OS Build:",
                        "==================================",
                        "",
                        (Get-ChildItem $tempDir\LOGS\*setupact.log -Recurse | Select-String "MOUPG  SetupHost..Setup build"),
                        "...",
                        (Get-ChildItem $tempDir\LOGS\*setupact.log -Recurse | Select-String "MOUPG      Host OS"),
                        "",
                        "Watson Parameters (4&5):",
                        "=======================",
                        "",
                        (Get-ChildItem $tempDir\LOGS\*setupact.log -Recurse | Select-String "Watson Bucketing Parameters\[[4-5]\]" ),
                        "",
                        "\[0x........\]Error:",
                        "==================",
                        "",
                        (Get-ChildItem $tempDir\LOGS\*setupact.log -Recurse | Select-String "\[0x........\]\[0x.....\]"),
                        "",
                        "`"FATAL`":",
                        "======",
                        "",
                        (Get-ChildItem $tempDir\LOGS\*setupact.log -Recurse | Select-String "FATAL" | Select-String -NotMatch "FatalExecutionEngineError" | Select-String -NotMatch "non-fatal"),
                        "",
                        "`"Error   `":",
                        "===========",
                        "",
                        (Get-ChildItem $tempDir\LOGS\*setupact.log -Recurse | Select-String "Error   "),
                        "",
                        "MIGRATE.*DATA:",
                        "==============",
                        "",
                        (Get-ChildItem $tempDir\LOGS\*setupact.log -Recurse | Select-String "MIGRATE.*DATA"),
                        ""           
                        )
            $q=0
            Do {$setupRegx[$q] | Out-File $tempDir\LOGS\SETUP\SetupAct-Regex.TXT -Append -Width 999 ##spool out results
                                  $q++                 
                                            }Until($q -eq $setupRegx.Count)

    } ## End function SetupLogs


function powerCFGInfo
    {
    MD $tempDir\LOGS\POWER\ -EA SilentlyContinue  | Out-Null
    wh "`n Grabbing PowerCFG, Sleep & Battery Info ...`n"
    
    ("`n" + "Available Sleep States (/A): `r" + "`n" +"============================`r" + "`r").ToString() | Out-File -Encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt
    powercfg /a | Out-File -Append -encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt

    ("`n" + "-DeviceQuery Wake_Armed: `r" + "`n" +"========================`r" + "`r").ToString() | Out-File -Append -Encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt
    powercfg -devicequery wake_armed  | Out-file -Append -encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt

    ("`n" + "Last Wake (-lastwake):  `r" + "`n" +"=====================`r" + "`r").ToString() | Out-File -Append -Encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt
    powercfg -lastwake  | Out-file -Append -encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt
    ("`n`r").ToString() | Out-File -Append -Encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt

    ("`n" + "-Requests: `r" + "`n" +"==========`r" + "`r").ToString() | Out-File -Append -Encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt
    powercfg -requests  | Out-file -Append -encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt

    $powerList = powercfg -list
    $powerList | Out-File -Append -encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt
    $powerActive = $powerList | select-string "\*" | powercfg /QH "$_" 
    ("`n`r").ToString() | Out-File -Append -Encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt

    ("`n" + "Active Power Scheme Details: `r" + "`n" +"============================`r" + "`r").ToString() | Out-File -Append -Encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt
    $powerActive | Out-File -Append -encoding ascii $tempDir\LOGS\POWER\POWERCFG_INFO.txt


    if((Get-Host).Version.Major -cge 5) ##WIN7 Does not Support powercfg /battery /sleepstudy
         { 
           $ifbattery = Get-WmiObject win32_battery
           if ( $ifbattery.__SERVER.count -cge 1 ) { CMD.EXE /C "powercfg /batteryreport /output %temp%\LOGS\POWER\battery-report.html" }
           CMD.EXE /C "powercfg /sleepstudy /output %temp%\LOGS\POWER\sleepstudy-report.html"
         }
           CMD.EXE /C "powercfg /ENERGY /duration 10 /output %temp%\LOGS\POWER\energy-report.html"       
    
    } ## End function powerCFGInfo


function sysProductCheck
    {
    wh "`n Getting SystemProductName ...`n"
    ##SystemInformation Reg 
    reg query HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SystemInformation\ /v SystemProductName  > $tempDir\LOGS\REG_SystemProductName.TXT 
    Get-WmiObject Win32_ComputerSystem > $tempDir\LOGS\WMI_Object_System.TXT
    Get-WmiObject Win32_ComputerSystemProduct >> $tempDir\LOGS\WMI_Object_System.TXT
    
    } ## End functions sysProductCheck


function showWLAN
    {
    wh "Generating NETSH WLAN Report...`n"

    $showWLANjob = {
                    CMD.EXE /c "netsh wlan show networks mode=ssid > %temp%\LOGS\Network\wlan.txt"
                    CMD.EXE /c "netsh wlan show networks mode=bssid >> %temp%\LOGS\Network\wlan.txt"
                    CMD.EXE /c "netsh winhttp show proxy > %temp%\LOGS\Network\proxy.txt"
                    CMD.EXE /c "netsh wlan show wlanreport & COPY C:\ProgramData\Microsoft\Windows\wlanReport\wlan-report-latest.html %temp%\LOGS\Network\wlan-report-latest.html" 
                    ##WIN7 Does not Support netsh wlanreport                                                 
                    } 

    Start-Job -Name showWLAN -ScriptBlock $showWLANjob

    } ## End function sysProductCheck


function getGPRESULT
    {
    wh "`nGetting GPRESULT...`n"
    CMD.EXE /C "GPRESULT /V > %temp%\LOGS\GPRESULT.TXT"
    
    } ## End function getGPRESULT


function reservedCheck
    {     
      
    $reservedJob = 
        {
        $vol = (mountvol /L | select-string -Pattern "\\\\")
        $volstring = "mountvol y:" + $vol[0]
        CMD.EXE /C $volstring
    
        SLEEP 2

        CMD.EXE /C "CHKDSK y: > %temp%\LOGS\SystemReserved.TXT"
    
        SLEEP 2 # Pause after drive dismount
    
        CMD.EXE /C "mountvol y: /D"
        }

    Start-Job -Name reservedJob -ScriptBlock $reservedJob
    
    } ## End function reservedCheck


function fltmcCheck
    {
    wh "`n Getting fltmc Filters ...`n"
    CMD.EXE /c "fltmc filters > %temp%\LOGS\fltmc_filters.TXT"
    
    } ## End function fltmcCheck


function getDXDiag
    {
    wh "`n Grabbing DXDiag Info...`n"
    C:\Windows\System32\dxdiag /x $explore\DxDiag
    
    } ## End function getDXDiag


function getMSINFO
    {
    wh "`n Gathering MSINFO32 ...`n"
    ## check if msinfo is already gathering - if so stop
    If((get-process | select-string -Pattern "msinfo").Pattern -eq "msinfo")
    {Stop-Process -ProcessName msinfo32}

        C:\Windows\System32\msinfo32.exe /nfo $tempDir/LOGS/MSINFO32.NFO
              
    } ## End function getMSINFO


function getAV
    {
     if((Get-Host).Version.Major -cge 5) ##Modern OS Only
        {
        wh "`n Grab root\SecurityCenter2 AntivirusProduct ...`n"
        $avPath = (Get-WmiObject -Namespace root\SecurityCenter2 -Class AntivirusProduct) | % {$_.pathtoSignedProductEXE}
        "AV Info" + "`n========" | Out-File $tempDir/LOGS/SecurityProductInformation.TXT
    $avPath | Out-File $tempDir/LOGS/SecurityProductInformation.TXT -Append
        if($avPath[0] -match "exe")
            { 
                $path = (Get-Item $avPath[0]).PSParentPath
                Get-Item $path/*.ini | Out-File $tempDir/LOGS/SecurityProductInformation.TXT -Append
                Get-Content $path/*.ini | Out-File $tempDir/LOGS/SecurityProductInformation.TXT -Append           
            }
            Get-ChildItem "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\" -recurse -EA SilentlyContinue | Out-File $tempDir/LOGS/SecurityProductInformation.TXT -Append   
        }
    } ## End function getAV


function getDrivers
    {
    wh "`n Grabbing Driver listing via DISM.EXE ...`n"
        $drivers = cmd.exe /C "dism /online /get-drivers /format:table"
        $drivers += cmd.exe /C "dism /online /get-drivers /all /format:table"
        $drivers | Out-File $tempDir/LOGS/DISM-Get-Drivers.TXT
    wh "`n Done!`n"
    } ## End Function getDrivers


function getMISCLogs
    {
        wh "`nCopying misc. logs ...`n" 
        MD $tempDir\LOGS\WER\ -EA SilentlyContinue 
        MD $tempDir\LOGS\Windows\Logs\WindowsUpdate\ -EA SilentlyContinue
        CP "C:\Users\All Users\Microsoft\Windows\WER\ReportArchive\*" $tempDir\LOGS\WER\ -Recurse -EA SilentlyContinue
        CP "C:\Windows\Logs\CBS\*cbs*" $tempDir\LOGS\Windows\Logs\
        CP "C:\Windows\Logs\DISM\*dism*" $TempDir\LOGS\Windows\Logs\
        CP "C:\Windows\Logs\WindowsUpdate\*" $TempDir\LOGS\Windows\Logs\WindowsUpdate\

          
        #DMP Collect
        $dmp = @()
        $dmp += Get-ChildItem C:\Windows\*.dmp 
        $dmp += (Get-ChildItem C:\Windows\LiveKernelReports\*.dmp -Recurse -EA SilentlyContinue)
        $dmp += (Get-ChildItem C:\Windows\Minidump\*.dmp -Recurse -EA SilentlyContinue)
        #Validate empty array
        if($dmp.length -ne 0)
            {
            $dd=0
                  Do{     
                        If($dmp[$dd].length -lt 2000000)
                            { $destPath = $dmp[$dd].PSParentPath.Replace('C:\', '').Replace('Microsoft.PowerShell.Core\FileSystem::', '')
                                MD $destPath -EA SilentlyContinue
                                    COPY -Path $dmp[$dd].PSPath -Destination $destPath }
                        $dd++
                    }
                    Until($dd -eq $dmp.Count)
            }

         #disk info
         "`nGet-Disk:`n=========" > $tempDir\LOGS\Disk-Info.TXT
         Get-Disk |fl >> $tempDir\LOGS\Disk-Info.TXT
         "`nGet-Partition:`n==============" >> $tempDir\LOGS\Disk-Info.TXT
         Get-Partition >> $tempDir\LOGS\Disk-Info.TXT
         Manage-bde -protectors -get C: >> $tempDir\LOGS\Disk-Info.TXT
         "`nIO Fail Search:`n===============`n" >> $tempDir\LOGS\Disk-Info.TXT
         $search | Select-String ".*io.fail.*" | Select-String -NotMatch '0, 0, 0, 0' >> $tempDir\LOGS\Disk-Info.TXT     

    } ## End function getMISCLogs


function bingCollect
    {
        ##O365 Firewall Check & Bing.com diagnostics.asp
        ##URIs based on Article: 
        ##https://support.office.com/en-us/article/Network-requests-in-Office-365-ProPlus-and-Mobile-eb73fcd1-ca88-4d02-a74b-2dd3a9f3364d
              
        MD $TempDir\LOGS\Network\ -EA SilentlyContinue

        wh "Performing Bing & O365 URI Check ... `n"


              $bingCheck = (Invoke-WebRequest -Uri https://www.bing.com/fdv2/diagnostics.aspx -UseBasicParsing) 
              $bingCheck | Out-File $tempDir\LOGS\Network\O365-URL-Query.TXT
              
              $URIs = @('api.login.microsoftonline.com',    #0  Standard Reply = 403
              'api.passwordreset.microsoftonline.com',      #1  Standard Reply = 200
              'becws.microsoftonline.com',                  #2  Standard Reply = 403
              'clientconfig.microsoftonline-p.net',         #3  Standard Reply = 404
              'companymanager.microsoftonline.com',         #4  Standard Reply = 403
              'device.login.microsoftonline.com',           #5  Standard Reply = 200
              'graph.microsoft.com',                        #6  Standard Reply = 404
              'hip.microsoftonline-p.net',                  #7  Standard Reply = 404 
              'hipservice.microsoftonline.com',             #8  Standard Reply = 404
              'login.microsoft.com',                        #9  Standard Reply = 200
              'login.microsoftonline.com',                  #10 Standard Reply = 200
              'logincert.microsoftonline.com',              #11 Standard Reply = 200 
              'loginex.microsoftonline.com',                #12 Standard Reply = 200
              'login-us.microsoftonline.com',               #13 Standard Reply = 200
              'login.microsoftonline-p.com',                #14 Standard Reply = 200
              'login.windows.net',                          #15 Standard Reply = 200
              'nexus.microsoftonline-p.com',                #16 Standard Reply = 403
              'passwordreset.microsoftonline.com',          #17 Standard Reply = 200
              'provisioningapi.microsoftonline.com',        #18 Standard Reply = 403
              'stamp2.login.microsoftonline.com',           #19 Standard Reply = 200
              'ccs.login.microsoftonline.com',              #20 Standard Reply = 401
              'ccs-sdf.login.microsoftonline.com',          #21 Standard Reply = 401
              'accounts.accesscontrol.windows.net',         #22 Standard Reply = 200
              'secure.aadcdn.microsoftonline-p.com',        #23 Standard Reply = 400
              'windows.net',                                #24 Standard Reply = 200
              'phonefactor.net',                            #25 Standard Reply = 200
              'account.activedirectory.windowsazure.com',   #26 Standard Reply = 404
              'secure.aadcdn.microsoftonline-p.com',        #27 Standard Reply = 400
              'login.windows.net',                          #28 Standard Reply = 200
              'provisioningapi.microsoftonline.com',        #29 Standard Reply = 403
              'mscrl.microsoft.com',                        #30 Standard Reply = 400
              'secure.aadcdn.microsoftonline-p.com',        #31 Standard Reply = 400
              'windowsupdate.microsoft.com',                #32 Standard Reply = 200
              'update.microsoft.com',                       #33 Standard Reply = 200
              'au.download.windowsupdate.com',              #34 Standard Reply = 200
              'download.windowsupdate.com',                 #35 Standard Reply = 200
              'download.microsoft.com',                     #36 Standard Reply = 200
              'tlu.dl.delivery.mp.microsoft.com');          #37 Standard Reply = 403
        
              
              $count = 0;
              $queryResult =@{};
              
              Write-Host "Checking URIs .." -NoNewline
              
              Do {         
                      Try{
                      $queryResult[$count] = (Invoke-WebRequest -Uri ("http:`/`/" + $URIs[$count]) -Method Head -UseBasicParsing -TimeoutSec 2).RawContent
                         }Catch{ $catch = $_ }
              
                          if($queryResult[$count].Count -eq 0)
                                  {$queryResult[$count] = ($catch[$catch.count -1].ToString()).Replace("`n", " ")}                                   
                      Write-Host "." -NoNewline         
                      $count++       
                  }Until ($count -eq ($URIs.Count));                         
              Write-Host "."
                
                  Get-Date | Out-File $tempDir\LOGS\Network\O365-URL-Query.TXT -Append
                  $queryResult | Out-File $tempDir\LOGS\Network\O365-URL-Query.TXT -Append
                  
        Write-Host " Bing Check", `n, "==========" | Out-File $tempDir\LOGS\Network\O365-URL-Query.TXT -Append
      
              wh "`n`n`n`URL Check Finished...`n" 
    }


function smbConfig
{

    $CMDs =
    {   cmd.exe /c "net config server" 
        cmd.exe /c "net config workstation"
        Get-SmbClientNetworkInterface
        Get-SmbServerConfiguration
        Get-SmbClientConfiguration
        Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer" 
        Get-NetAdapterAdvancedProperty | ft }

    ForEach-Object{Invoke-Command $CMDs | Out-File $TempDir\LOGS\NETWORK\$env:COMPUTERNAME-SMB-Config.TXT -Append}

    $share = Get-SmbShare

    ForEach-Object{Get-SmbShareAccess $share.Name | ft  | Out-File $tempDir\LOGS\NETWORK\$env:COMPUTERNAME-SMB-Config.TXT -Append}

} ## End Function smbConfig


function regLang
    {     
        DISM.EXE /Online /Get-Intl  | Out-File $tempDir\LOGS\Reg-Lang.TXT
        "`n","Get-WinUserLanguageList","=======================" | Out-File $tempDir\LOGS\Reg-Lang.TXT -Append
        Get-WinUserLanguageList     | Out-File $tempDir\LOGS\Reg-Lang.TXT -Append
        "`n","Get-WinLanguageBarOption","========================" | Out-File $tempDir\LOGS\Reg-Lang.TXT -Append
        Get-WinLanguageBarOption    | Out-File $tempDir\LOGS\Reg-Lang.TXT -Append
    }


function autoRotate
    {
        Get-ChildItem HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Auto* | Out-File $tempDir\LOGS\AutoRotate.TXT
    }


function checkBoxes
   {
        Add-Type -AssemblyName System.Windows.Forms
        Add-Type -AssemblyName System.Drawing

        $Global:form = New-Object System.Windows.Forms.Form
        $Global:form.Text = "LOGS-V$ver"
        $Global:form.Size = New-Object System.Drawing.Size(300,400)
        $Global:form.StartPosition = 'CenterScreen'

        $OKButton = New-Object System.Windows.Forms.Button
        $OKButton.Location = New-Object System.Drawing.Point(100,300)
        $OKButton.Size = New-Object System.Drawing.Size(75,23)
        $OKButton.Text = 'OK'
        $OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
        $Global:form.AcceptButton = $OKButton
        $Global:form.Controls.Add($OKButton)
      
        $Global:form.ControlBox = $false
        
            $Global:boxNum = 1
            $Global:checkBox = @{} #hash for $checkBox
            $tag = @{} #hash for $label
            $Global:Box = @{}

            function createCheckBox 
                {
                    Param ( [parameter (Mandatory = $true)][string]$name,
                            [parameter (Mandatory = $true)][string]$label )
                    
                    $drawingPoint = (50 + ($boxNum *25))

                    $Global:checkBox[$boxNum] = New-Object System.Windows.Forms.CheckBox
                    $Global:checkBox[$boxNum].Location = New-Object System.Drawing.Point(10,$drawingPoint)
                    $Global:checkBox[$boxNum].Size = New-Object System.Drawing.Size(15,15)
                    $Global:checkBox[$boxNum].Text = ''
                    $Global:checkBox[$boxNum].Checked = $true
                    $Global:form.Controls.Add($checkBox[$boxNum])
                    #SetupDiag Label
                    $tag[$boxNum] = New-Object System.Windows.Forms.Label
                    $tag[$boxNum].Location = New-Object System.Drawing.Point(40,$drawingPoint)
                    $tag[$boxNum].Size = New-Object System.Drawing.Size(280,20)
                    $tag[$boxNum].Text = "$label"
                    $Global:form.Controls.Add($tag[$boxNum])

                    $Global:boxNum ++
                
                } #End nested function createCheckBox 
          
            createCheckBox -name "EV" -label "EventSearch EventLog Helper"       #1
            createCheckBox -name "SD" -label "SetupDiag.EXE Setup Diagnostics"   #2
            createCheckBox -name "WU" -label "Get-WindowsUpdateLog Collection"   #3
            createCheckBox -name "IP" -label "Network Information"               #4
            createCheckBox -name "PW" -label "POWERCFG. Sleep & Battery Info"    #5
            createCheckBox -name "GP" -label "GPResult Info"                     #6
            createCheckBox -name "MS" -label "General Machine Info"              #7
            createCheckBox -name "EO" -label "EventSearch Out-GridView"          #8         
              
            #Checkbox State Changes             
            $Global:checkBox[1].Add_CheckStateChanged(
                    { 
                        if($Global:checkBox[1].checked -eq $True){ $Global:EventsCollect = $true ; Write-Host "." -nonewline} Else{ $Global:EventsCollect = $false }
                            
                    })           
            $Global:checkBox[2].Add_CheckStateChanged(
                    { 
                        if($Global:checkBox[2].checked -eq $True){ $Global:SetupDiagCollect = $true ; Write-Host "." -nonewline} Else{ $Global:SetupDiagCollect = $false }
                            
                    })
            $Global:checkBox[3].Add_CheckStateChanged(
                    { 
                        if($Global:checkBox[3].checked -eq $True){ $Global:UpdatesCollect = $true ; Write-Host "." -nonewline} Else{ $Global:UpdatesCollect = $false }
                            
                    })
            $Global:checkBox[4].Add_CheckStateChanged(
                    { 
                        if($Global:checkBox[4].checked -eq $True){ $Global:WLANCollect = $true ; Write-Host "." -nonewline} Else{ $Global:WLANCollect = $false }
                            
                    })

            $Global:checkBox[5].Add_CheckStateChanged(
                    { 
                        if($Global:checkBox[5].checked -eq $True){ $Global:PowerCollect = $true ; Write-Host "." -nonewline} Else{ $Global:PowerCollect = $false }
                            
                    })
            $Global:checkBox[6].Add_CheckStateChanged(
                    { 
                        if($Global:checkBox[6].checked -eq $True){ $Global:GPCollect = $true ; Write-Host "." -nonewline} Else{ $Global:GPCollect = $false }
                            
                    })
            $Global:checkBox[7].Add_CheckStateChanged(
                    { 
                        if($Global:checkBox[7].checked -eq $True){ $Global:miscCollect = $true ; Write-Host "." -nonewline} Else{ $Global:miscCollect = $false }
                            
                    })

             $Global:checkBox[8].Add_CheckStateChanged(
                    { 
                        if($Global:checkBox[8].checked -eq $True){ $Global:eventOut = $true ; $Global:checkBox[1].checked = $true; Write-Host "x" -nonewline} Else{ $Global:eventOut = $false }
                            
                    })
                                        
        $Global:checkBox[8].Checked = $false
        $mainText = New-Object System.Windows.Forms.Label
        $mainText.Location = New-Object System.Drawing.Point(62,30)
        $mainText.Size = New-Object System.Drawing.Size(260,20)
        $mainText.Text = 'Choose which logs to collect:'
        $Global:form.Controls.Add($mainText)
        $result = $Global:form.ShowDialog()
        SLEEP 1  #testing Topmost lag
        $Global:form.Topmost = $true

        #OK Button ... 
        if ($result -eq [System.Windows.Forms.DialogResult]::OK)
        {
            $x = $textBox.Text
            $x
        }     

    } #End function checkBoxes


Function werHint
{
    $WERs = Get-ChildItem $tempDir\LOGS\WER\*.wer -Recurse

    $WERArray = @()

    $Date = $WERs | Select-String -pattern "eventtime=" | % {$_ -Replace("C:.*EventTime=", "")}
    $eventType = $WERs | Select-String -pattern "EventType=" | % {$_ -Replace("C:.*EventType=", "")}
    $Sig0Nam = $WERs | Select-String -pattern "Sig\[0\].Name" | % {$_ -Replace("C:.*Sig\[0\].Name=", "")}
    $Sig0Val = $WERs | Select-String -pattern "Sig\[0\].Value" | % {$_ -Replace("C:.*Sig\[0\].Value=", "")}
    $Sig3 = $WERs | Select-String -pattern "Sig\[3\].Value" | % {$_ -Replace("C:.*Sig\[3\].Value=", "")}
    $Sig3 = $WERs | Select-String -pattern "Sig\[3\].Value" | % {$_ -Replace("C:.*Sig\[3\].Value=", "")}
    $Sig4 = $WERs | Select-String -pattern "Sig\[4\].Value" | % {$_ -Replace("C:.*Sig\[4\].Value=", "")}

    #ConvertDateTime
    $epoch = [datetime]"01/01/1601 00:00"
    $date = $date | foreach{$epoch.AddSeconds($_/10000000)} 
    $convertedDate = foreach($Date in $Date) {Get-Date $Date -Format G}

    $WERarray = 0..($convertedDate.Length -1) | Select-Object @{n="Id";e={$_}}, 
        @{n="Date";e={$convertedDate[$_]}}, @{n="EventType";e={$eventType[$_]}},
            @{n="S0-Name";e={$Sig0Nam[$_]}}, @{n="S0-Value";e={$Sig0Val[$_]}}, @{n="S3";e={$Sig3[$_]}}, 
                @{n="S4";e={$Sig4[$_]}}

    $WERArray |Sort-Object -Descending Date | ft -autosize Date, EventType, S0-Name, S0-Value, S3, S4  | 
        Out-File $tempDir\LOGS\WER-SUMMARY.TXT -Width 500

} ## End Function werHint



### FUNCTIONS_INIT ### 

        $Script:Cancel = @{}

        StartScript #function
        checkBoxes
        
        ## SetupDiagCollect   #2
        if($Global:SetupDiagCollect -eq $True)
            {
            SetupDiagFunc #function & job 
            wh "...`n"
            }
        ## EventSearch         #1
        if($Global:EventsCollect -eq $True)
            {
            EventSearch #function & job
            wh "...`n"
            }

        ## Get-WindowsUpdate   #3
        if($Global:UpdatesCollect -eq $True)
            {
            GetUpdates #function & job
            wh "...`n`n"
            }

        ## WLAN/Wifi Collect    #4
        if($Global:WLANCollect -eq $True)   
            {
            bingCollect #function
            wh "...`n"
            showWLAN #function & job 
            wh "...`n"
            smbConfig #function
            }

        ## Power/Battery Collect:#5
        if($Global:PowerCollect -eq $True)
            {
            powerCFGInfo #function - make job takes a min
            wh "...`n"
            }

        ## GPRESULT Collection:  #6
        if($Global:GPCollect -eq $True)
            {
            getGPRESULT #function
            wh "...`n"
            }

        ## Misc Logs Collection: #7     
        if($Global:miscCollect -eq $True)
            {
            getMSINFO #function & job
                wh "...`n"
            PrinterCheck #function
                wh "...`n"
            getProcesses #function
                wh "...`n"
            getApps #function - make job - takes a min
                wh "...`n"
            SetupLogs #function
                wh "...`n"     
            sysProductCheck #function
                wh "...`n"               
            reservedCheck #function
                wh "...`n"
            fltmcCheck #function
                wh "...`n"
            getDXDiag #function
                wh "...`n"
            regLang #function
                wh "...`n"
            autoRotate #function
            getMISCLogs #function
                wh "...`n"
            getDrivers #function
                wh "...`n" 
            getAV #function
                wh "...`n"         
             }
      

#### RECEIVING JOBS SECTION ###... 

        #EventSearchJob
        if($Global:EventsCollect -eq $True)
        {       
            wh "`nWaiting for EventSearchJob to complete...`n"

            Receive-Job -Name EventSearchJob -OutVariable eventSearch -Wait 
            $search = $eventSearch.Line
        }


        if($Global:SetupDiagCollect -eq $True)
        {
            #SetupDiagJob - Receive-Job
            $stamp = (Get-Date -format "hh:mm tt")
            wh "`nWaiting for SetupDiagJob to complete..."
            wh "`nTime Stamp: $stamp"
            wh "`nThis can take up to 10 minutes ..."

            Do{
              SLEEP 15
                wh "."
                if((Get-Job -name SetupDiagJob).State -eq "Completed")
                    { Receive-Job -Name SetupDiagJob
                           wh "`nSetupDiag Completed!"                       
                        Break                      }
                                }Until($Cancel.SetupDiag -eq $True)
            wh `n
                                            
            #Receive file and copy
            Receive-Job -Name SetupDiagJob -Wait 
            Copy-Item $tempDir\Logs*.zip $tempDir\LOGS\SetupDiag-Log.zip
            Copy-Item $tempDir\setupdiag*.log $tempDir\LOGS\
            Remove-Item $tempDir\Logs*.zip
        }

    
        if($Global:UpdatesCollect -eq $True)
        {
            #GetUpdates Job via:
            #UpdateHelper <--- GetUpdates Job has to finish first!
            #Checking Status of GetUpdates Job...
            wh "Checking Status of GetUpdates Job...`n"
            If ((Get-Job -Name GetUpdates).State -eq "Failed")
                { wh "`nGetUpdates Job Failed!`n" }
                    Else{
                            Receive-Job -Name GetUpdates -wait
                            Move $env:USERPROFILE\Desktop\WindowsUpdate.log $TempDir\LOGS\Windows-Update.log -Force
                            wh "`n Writing Update Helper Info to UPDATE-ERRORS.TXT ... `n"
                            UpdateHelper #run the update helper function
                        }             
        } #End getting GetUpdates-job     

        #Finishing EventSearch
        if($Global:EventsCollect -eq $True)
            {
                writeSearch #function
            }

#Wait on MSINFO...
if($Global:miscCollect -eq $True)
{
    wh "`n Waiting for MSINFO32 to Complete ...`n"
    do{ start-sleep 1 }
    Until((get-process | select-string -Pattern "msinfo").Pattern -cne "msinfo")
        werHint #function
}


if((Get-Host).Version.Major -cge 5) ##WIN7 Does not Support Transcript
    {

Stop-Transcript 

        do{
    start-sleep 1
    }
    Until((get-item $tempDir\LOGS\Event-Search.TXT).Length -cne 0)
    
    }

wh "`nLog Collection Completed! `nLogs are available in %temp%\LOGS\`n" 
wh "`nHit Any Key or Close ...`n"

Start-Sleep 1

Start Explorer.exe $explore

PAUSE

## LOGS.PS1 1.6.3  ##   
## JOHNEM 8-2019 ## 
## EOF ##



And see if you're able to run the Sysnative log collector, SFCFix, etc.:

Blue Screen of Death (BSOD) Posting Instructions - Windows 10, 8.1, 8, 7 + Vista | Sysnative Forums
Windows Update Forum Posting Instructions | Sysnative Forums
 
Last edited:
check pm
I changed PS execute policy to bypass to execute script, after it was done I changed it back to restricted.
Is it fixed now? or you still going to check some stuff.
 
Last edited:
Error 1/16/2021 8:42:36 AM Service Control Manager 7005 None
The LoadUserProfile call failed with the following error:
The configuration registry database is corrupt.
 
I ran it and it found integrity violations but repaired them sucesfuly. I forgot to write a log for it.
second sfc did not find any violations.

Still can't acess my local standard account.
Can I just delete this account and recreate it with the same or diff name? then copy everything from the account folder c:\users\miguelaccount
 
Last edited:
See if these links are useful:

Fix a corrupted user profile in Windows
(1) Enable or Disable Log On Users with Temporary Profiles in Windows | Tutorials (tenforums.com)
User Profile Service failed the logon. User profile cannot be loaded. - Windows 7 Help Forums (sevenforums.com)
(1) Fix User Profile Service Failed the Sign-in Error in Windows 10 | Tutorials (tenforums.com)




Run:

Tuneup.bat - Click here to go to the BSOD batch repository to download and run this batch file.
SFCfromFile.bat - Click here to go to the BSOD batch repository to download and run this batch file.
DiskParInfo.bat - Click here to go to the BSOD batch repository to download and run this batch file.
 
Hi!

Please run the following:

GSmartControl
Follow the instructions below to check your SMART status with GSmartControl:


  • Download the portable version of GSmartControl and save it on your Desktop;
  • Extract the zip file to your Desktop. Open the folder gsmartcontrol-1.1.3-win64 which should be located on your Desktop and double-click gsmartcontrol.exe to launch the program.
  • Identify your drive in the list (if recognized by the tool), and hover your mouse over it.
  • You should see something called: SMART status. It will either read: Enabled, in which case you should do the following:
  • Double-click on it to bring up its window (usually you'll find your drive by its size or its brand name);
  • Go to the Self-Tests tab, then select Extended Self-test in the Test type drop-down list and click on Execute (this test can take a few hours to complete);
  • Once the test is over, the results will be displayed at the bottom of the window. Please copy and paste these results in your next reply or take a screenshot;
  • Also, go in the Attributes tab and if you have any entries highlighted in red or pink, take a screenshot of the GSmartControl window and attach it in your next reply;
  • Please note: If the SMART Status reads: Unsupported, stop and let me know.
    info_failing.png

Post a screenshot of your Attributes tab for now.
 

Has Sysnative Forums helped you? Please consider donating to help us support the site!

Back
Top