@echo off title Diagnostico - HonestFPS chcp 65001 >nul echo. echo ================================================ echo HONESTFPS - recolha de informacao do sistema echo ================================================ echo. echo Este processo apenas LE informacao do teu PC. echo So escreve um ficheiro de texto (diagnostico.txt). echo Nao altera nenhuma definicao. echo. echo Demora menos de um minuto. Nao feches esta janela. echo. rem O Ambiente de Trabalho pode estar redirecionado (OneDrive Known Folder rem Move). Perguntamos ao Windows onde ele e, em vez de o presumir. set "AREA=" for /f "usebackq delims=" %%D in (`powershell -NoProfile -Command "[Environment]::GetFolderPath('Desktop')"`) do set "AREA=%%D" if not defined AREA set "AREA=%USERPROFILE%\Desktop" if not exist "%AREA%\" set "AREA=%USERPROFILE%\Desktop" if not exist "%AREA%\" set "AREA=%USERPROFILE%" if not exist "%AREA%\" set "AREA=%TEMP%" set "HFPS_SAIDA=%AREA%\diagnostico.txt" rem Apagar ANTES e verificar: se o ficheiro estiver bloqueado por outro rem programa, o Remove-Item do PowerShell falharia em silencio e o ficheiro rem ANTIGO sobreviveria - o cliente enviava um diagnostico de antes das rem otimizacoes a pensar que era o de depois. del "%HFPS_SAIDA%" >nul 2>&1 if exist "%HFPS_SAIDA%" goto :ficheiro_bloqueado powershell -NoProfile -Command ^ "$o=$env:HFPS_SAIDA; Remove-Item $o -ErrorAction SilentlyContinue; '=== COLETOR ===' | Out-File $o -Append; 'Versao : 2' | Out-File $o -Append; '=== WINDOWS ===' | Out-File $o -Append; Get-ComputerInfo -Property OsName,OsBuildNumber | Format-List | Out-File $o -Append; '=== WINDOWS DETALHE ===' | Out-File $o -Append; 'IdiomaInterface : ' + (Get-UICulture).Name | Out-File $o -Append; '=== CHASSIS ===' | Out-File $o -Append; 'ChassisType : ' + ((Get-CimInstance Win32_SystemEnclosure).ChassisTypes -join ',') | Out-File $o -Append; '=== CPU ===' | Out-File $o -Append; $cp=@(Get-CimInstance Win32_Processor)[0]; [pscustomobject]@{Name=$cp.Name;NumberOfCores=$cp.NumberOfCores;NumberOfLogicalProcessors=$cp.NumberOfLogicalProcessors;VirtualizationFirmwareEnabled=$cp.VirtualizationFirmwareEnabled} | Format-List | Out-File $o -Append; 'ProcessorCount : ' + [Environment]::ProcessorCount | Out-File $o -Append; '=== GPU ===' | Out-File $o -Append; Get-CimInstance Win32_VideoController | Select-Object Name,DriverVersion,DriverDate,CurrentRefreshRate,MaxRefreshRate,CurrentHorizontalResolution,CurrentVerticalResolution | Format-List | Out-File $o -Append; '=== RAM ===' | Out-File $o -Append; Get-CimInstance Win32_PhysicalMemory | Select-Object Capacity,PartNumber,Speed,ConfiguredClockSpeed,DeviceLocator,BankLabel,SMBIOSMemoryType | Format-List | Out-File $o -Append; Get-CimInstance Win32_PhysicalMemoryArray | Select-Object MemoryDevices | Format-List | Out-File $o -Append; '=== MOTHERBOARD / BIOS ===' | Out-File $o -Append; $mb=@(Get-CimInstance Win32_BaseBoard)[0]; [pscustomobject]@{Manufacturer=$mb.Manufacturer;Product=$mb.Product} | Format-List | Out-File $o -Append; $bi=@(Get-CimInstance Win32_BIOS)[0]; [pscustomobject]@{SMBIOSBIOSVersion=$bi.SMBIOSBIOSVersion;ReleaseDate=$bi.ReleaseDate} | Format-List | Out-File $o -Append; '=== DISCOS ===' | Out-File $o -Append; Get-PhysicalDisk | Select-Object FriendlyName,MediaType,BusType,HealthStatus,SpindleSpeed | Format-List | Out-File $o -Append; '=== ESPACO DISCO ===' | Out-File $o -Append; $vl=@(Get-Volume -DriveLetter ($env:SystemDrive.TrimEnd(':')) -ErrorAction SilentlyContinue)[0]; [pscustomobject]@{SizeRemaining=$vl.SizeRemaining;Size=$vl.Size} | Format-List | Out-File $o -Append; $dk=@(Get-Disk -ErrorAction SilentlyContinue | Where-Object IsBoot)[0]; [pscustomobject]@{PartitionStyle=$dk.PartitionStyle;FriendlyName=$dk.FriendlyName} | Format-List | Out-File $o -Append; '=== ENERGIA ===' | Out-File $o -Append; powercfg /getactivescheme | Out-File $o -Append; powercfg /list | Select-String Ultimate | Out-File $o -Append; powercfg /query SCHEME_CURRENT SUB_PROCESSOR 893dee8e-2bef-41e0-89c6-b55d0929964c | Out-File $o -Append; '=== SECURE BOOT ===' | Out-File $o -Append; $sb=Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State' -Name UEFISecureBootEnabled -ErrorAction SilentlyContinue; [pscustomobject]@{UEFISecureBootEnabled=$sb.UEFISecureBootEnabled} | Format-List | Out-File $o -Append; [pscustomobject]@{FirmwareType=$env:firmware_type} | Format-List | Out-File $o -Append; '=== ARRANQUE RAPIDO ===' | Out-File $o -Append; $ar=Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power' -Name HiberbootEnabled -ErrorAction SilentlyContinue; [pscustomobject]@{HiberbootEnabled=$ar.HiberbootEnabled} | Format-List | Out-File $o -Append; '=== PAGEFILE ===' | Out-File $o -Append; $c=@(Get-CimInstance Win32_ComputerSystem)[0]; [pscustomobject]@{AutomaticManaged=$c.AutomaticManagedPagefile;PCSystemType=$c.PCSystemType;HypervisorPresent=$c.HypervisorPresent} | Format-List | Out-File $o -Append; Get-CimInstance Win32_PageFileUsage | Select-Object Name,PeakUsage | Format-List | Out-File $o -Append; '=== MEMORY INTEGRITY / VBS ===' | Out-File $o -Append; $dg=@(Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard -ErrorAction SilentlyContinue)[0]; [pscustomobject]@{SecurityServicesRunning=$dg.SecurityServicesRunning} | Format-List | Out-File $o -Append; '=== GAME MODE / GPU SCHEDULING ===' | Out-File $o -Append; $hs=Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\GraphicsDrivers' -Name HwSchMode -ErrorAction SilentlyContinue; [pscustomobject]@{HwSchMode=$hs.HwSchMode} | Format-List | Out-File $o -Append; $gb=Get-ItemProperty 'HKCU:\SOFTWARE\Microsoft\GameBar' -ErrorAction SilentlyContinue; [pscustomobject]@{AutoGameModeEnabled=$gb.AutoGameModeEnabled;AllowAutoGameMode=$gb.AllowAutoGameMode} | Format-List | Out-File $o -Append; '=== SERVICOS JOGOS ===' | Out-File $o -Append; @('XblAuthManager','XblGameSave','XboxGipSvc','XboxNetApiSvc','GamingServices') | ForEach-Object { $s=Get-Service $_ -ErrorAction SilentlyContinue; 'Servico : ' + $_ + ' | ' + $(if($s){$s.StartType}else{'NAO-EXISTE'}) } | Out-File $o -Append; '=== GAME DVR ===' | Out-File $o -Append; $gd=Get-ItemProperty 'HKCU:\System\GameConfigStore' -Name GameDVR_Enabled -ErrorAction SilentlyContinue; [pscustomobject]@{GameDVR_Enabled=$gd.GameDVR_Enabled} | Format-List | Out-File $o -Append; $ac=Get-ItemProperty 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\GameDVR' -Name AppCaptureEnabled -ErrorAction SilentlyContinue; [pscustomobject]@{AppCaptureEnabled=$ac.AppCaptureEnabled} | Format-List | Out-File $o -Append; '=== STARTUP APPS ===' | Out-File $o -Append; Get-CimInstance Win32_StartupCommand | Select-Object Name,Command,Location | Format-List | Out-File $o -Append; '=== ARRANQUE ESTADO ===' | Out-File $o -Append; @('HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run','HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run32','HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder','HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run','HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run32','HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder') | ForEach-Object { if (Test-Path $_) { $k=Get-Item $_; $k.GetValueNames() | ForEach-Object { $b=$k.GetValue($_); 'Programa : '+$_+' | '+$(if(($b -is [byte[]]) -and ($b[0] -band 1)){'desativado'}else{'ativado'}) } } } | Out-File $o -Append; '=== PROCESSOS ===' | Out-File $o -Append; Get-Process | Group-Object -NoElement Name | ForEach-Object { 'Processo : ' + $_.Name + ' | ' + $_.Count } | Out-File $o -Append" if not exist "%HFPS_SAIDA%" goto :recolha_falhou if exist "%AREA%\" start "" "%AREA%" echo. echo ================================================ echo CONCLUIDO echo ================================================ echo. echo Ficheiro criado: diagnostico.txt echo Acabamos de abrir a pasta onde ele ficou echo (normalmente o teu Ambiente de Trabalho). echo. echo Podes abri-lo e ver tudo o que la esta. echo. echo Passo seguinte: entra em https://honestfps.com/diagnostico e echo descarrega o teu script pessoal, que envia sozinho. echo. pause exit /b 0 :ficheiro_bloqueado echo ================================================ echo O FICHEIRO ANTIGO ESTA A SER USADO echo ================================================ echo. echo Ja existe um diagnostico.txt e nao o conseguimos echo substituir - ha outro programa a segura-lo. echo. echo Fecha o diagnostico.txt (Bloco de Notas, Word) e echo volta a correr este ficheiro. echo. pause exit /b 1 :recolha_falhou echo ================================================ echo A RECOLHA NAO CHEGOU AO FIM echo ================================================ echo. echo O ficheiro diagnostico.txt nao chegou a ser criado. echo As mensagens a vermelho aqui em cima dizem porque. echo. echo Copia-as e fala connosco em: https://honestfps.com/contacto echo Respondemos e resolvemos. echo. pause exit /b 1