Windows NT KAMIDAKI 10.0 build 19045 (Windows 10) AMD64
Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.3.9
Server IP : 192.168.3.16 & Your IP : 216.73.216.140
Domains :
Cant Read [ /etc/named.conf ]
User : SISTEMA
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
C: /
Windows /
diagnostics /
system /
Video /
Delete
Unzip
Name
Size
Permission
Date
Action
en-US
[ DIR ]
drwxrwxrwx
2023-03-23 12:54
pt-BR
[ DIR ]
drwxrwxrwx
2019-12-07 15:53
CL_MutexVerifiers.ps1
21.51
KB
-rw-rw-rw-
2019-12-07 10:09
DiagPackage.diagpkg
26.01
KB
-rw-rw-rw-
2019-12-07 10:09
DiagPackage.dll
12.5
KB
-rw-rw-rw-
2025-07-09 07:54
GraphicsDriverRegTool-Definitions.psm1
2.56
KB
-rw-rw-rw-
2019-12-07 10:09
RC_aud_reg_settings.ps1
1.44
KB
-rw-rw-rw-
2019-12-07 10:09
RC_viddrv_displaytopology.ps1
4.3
KB
-rw-rw-rw-
2019-12-07 10:09
RC_viddrv_driverblocklist.ps1
1.58
KB
-rw-rw-rw-
2019-12-07 10:09
RC_viddrv_hevccodeccheck.ps1
1.6
KB
-rw-rw-rw-
2019-12-07 10:09
RC_viddrv_hwdrmcheck.ps1
1.38
KB
-rw-rw-rw-
2019-12-07 10:09
RC_viddrv_msvideo.ps1
1.49
KB
-rw-rw-rw-
2019-12-07 10:09
RC_viddrv_unsigned.ps1
2.55
KB
-rw-rw-rw-
2019-12-07 10:09
RS_aud_reg_settings.ps1
1.14
KB
-rw-rw-rw-
2019-12-07 10:09
RS_viddrv_displaytopology.ps1
956
B
-rw-rw-rw-
2019-12-07 10:09
RS_viddrv_driverblocklist.ps1
8.45
KB
-rw-rw-rw-
2019-12-07 10:09
RS_viddrv_genericfailure.ps1
942
B
-rw-rw-rw-
2019-12-07 10:09
RS_viddrv_hevccodeccheck.ps1
901
B
-rw-rw-rw-
2019-12-07 10:09
RS_viddrv_hwdrmcheck.ps1
897
B
-rw-rw-rw-
2019-12-07 10:09
RS_viddrv_msvideo.ps1
914
B
-rw-rw-rw-
2019-12-07 10:09
RS_viddrv_unsigned.ps1
981
B
-rw-rw-rw-
2019-12-07 10:09
TS_Main.ps1
841
B
-rw-rw-rw-
2019-12-07 10:09
VF_aud_reg_settings.ps1
1.08
KB
-rw-rw-rw-
2019-12-07 10:09
VF_viddrv_driverblocklist.ps1
1.49
KB
-rw-rw-rw-
2019-12-07 10:09
VF_viddrv_msvideo.ps1
1.08
KB
-rw-rw-rw-
2019-12-07 10:09
VF_viddrv_unsigned.ps1
1.08
KB
-rw-rw-rw-
2019-12-07 10:09
VideoDiagnosticUtil.dll
59.5
KB
-rw-rw-rw-
2025-07-09 07:54
utils_SetupEnv.ps1
14.02
KB
-rw-rw-rw-
2019-12-07 10:09
Save
Rename
### Copyright © 2013, Microsoft Corporation. All rights reserved. . .\utils_setupenv.ps1 # this function should be included in TS_Main.ps1 function CreateUniqueGlobalFile(){ Set-PSVersionTable if ($PSVersionTable.PSVersion -lt '2.0') { # if powershell version is less than 2.0 $guid = [system.guid]::newguid() # for each resolver logging, does not contain the data of prior resolver $global:filename = $env:temp + "\" + $guid.tostring() # for keeping the list of all the resolver that ran $global:resolverRan = $env:temp + "\" + [system.guid]::newguid().tostring() $global:resolverFail = $env:temp + "\" + [system.guid]::newguid().tostring() }else{ $global:filename = $env:temp + "\" + [guid]::NewGuid().GUID $global:resolverRan = $env:temp + "\" + [guid]::NewGuid().GUID $global:resolverFail = $env:temp + "\" + [guid]::NewGuid().GUID } # "" > $global:resolverRan } # fail the resolver, $reason could be string also and other .net Exception objects too # usage : resolverFail nameofPack instanceid reasonofFailure # if there is no instance id then, resolverFail $null reasonofFailure function resolverFail($id,$iid=$null,$reason=$null){ ($id+","+$iid) >> $global:resolverFail if($reason -ne $null){ throw $reason } } function deleteOldSDIAG($mins=60){ trap { continue } $now = [system.datetime]::now $winTemp = $env:windir+"\temp" $localTemp = $env:temp $list = dir ( $winTemp ) -recurse -filter "sdiag*" foreach($l1 in $list){ if( $l1.CreationTime -lt ( $now.AddMinutes( (-1 * $mins) ) ) ) { del $l1.fullname -force -ea SilentlyContinue $l1.fullname } } $list = dir ( $localTemp ) -recurse foreach($l1 in $list){ if( $l1.CreationTime -lt ( $now.AddMinutes( (-1 * $mins) ) ) ) { del $l1.fullname -force -ea SilentlyContinue $l1.fullname } } } # this function should be included in TS_Main.ps1, sometimes creating GUID gives problem in Powershell 1.0 function CreateUniqueGlobalFileName([string]$filename){ # Set-PSVersionTable $global:rc_verifiedHtable = @{} $global:rc_parametersHtable = @{} $global:rc_verifiedHtableXML = $env:temp + "\"+$filename+"RC_VF.xml" $global:rc_parametersHtableXML = $env:temp + "\"+$filename+"RC_Param.xml" $global:filename = $env:temp + "\$filename" $global:resolverRan = $env:temp + "\$filename"+"_resolverRan" $global:resolverFail = $env:temp + "\$filename" + "_resolverFail" if(test-path ($global:resolverRan)){ del $global:resolverRan "rootcause0123," > $global:resolverRan } if(test-path ($global:filename)){ del $global:filename } if(test-path ($global:resolverFail)){ del $global:resolverFail } } # must be used with conjuction of function CreateUniqueGlobalFileName # this function is to save the state of the rootcause function set-stateOFRootCause{ param([string]$res , [string]$instanceid = $null, [bool]$detected = $false, [hashtable]$params = $null) # Write-Host ("rootcause and instance id :"+$res+$instanceid)+ if($instanceid){ }else{ $instanceid = $null } if($params){ if($params.count -eq 0){ $params = $null } }else{ $params = $null } if( ( ($null -eq $instanceid ) -or ("" -eq $instanceid.trim() ) ) -and ( ($null -eq $params) ) ){ # if both parameters and instance id is null # store the result $res = "RC_"+$res # Write-Host ("rootcause and instance id :"+$res) # Write-Host ("rootcause gettype :"+$res.gettype()) if($global:rc_verifiedHtable["$res"] -eq $null){ $global:rc_verifiedHtable.add("$res",$detected) }else{ $global:rc_verifiedHtable["$res"] = $detected } }elseif( ($null -eq $instanceid) -or ("" -eq $instanceid.trim() ) ){ # if only instance id is null # store the result $res = "RC_"+$res # Write-Host ("rootcause and instance id :"+$res) # Write-Host ("rootcause gettype :"+$res.gettype()) if($global:rc_verifiedHtable["$res"] -eq $null){ $global:rc_verifiedHtable.add("$res",$detected) }else{ $global:rc_verifiedHtable["$res"] = $detected } # store the parameters if($global:rc_parametersHtable["$res"] -eq $null){ $global:rc_parametersHtable.add("$res",$params) }else{ $global:rc_parametersHtable["$res"] = $params } }elseif( ($null -eq $params) ){ #if only parameters is null # store the result $res = "RC_"+$res+","+$instanceid # Write-Host ("rootcause and instance id :"+$res) # Write-Host ("rootcause gettype :"+$res.gettype()) # Write-Host ("instance gettype :"+$instanceid.gettype()) if($global:rc_verifiedHtable["$res"] -eq $null){ $global:rc_verifiedHtable.add("$res",$detected) }else{ $global:rc_verifiedHtable["$res"] = $detected } }else{ # if both parameter and instance id is not null # store the result $res = "RC_"+$res+","+$instanceid # Write-Host ("rootcause and instance id :"+$res) # Write-Host ("rootcause gettype :"+$res.gettype()) # Write-Host ("instance gettype :"+$instanceid.gettype()) if($global:rc_verifiedHtable["$res"] -eq $null){ $global:rc_verifiedHtable.add("$res",$detected) }else{ $global:rc_verifiedHtable["$res"] = $detected } # store the parameters if($global:rc_parametersHtable["$res"] -eq $null){ $global:rc_parametersHtable.add("$res",$params) }else{ $global:rc_parametersHtable["$res"] = $params } } # ($global:rc_verifiedHtable | ConvertTo-Xml) > "$global:rc_verifiedHtableXML" # | Export-Clixml ($global:rc_verifiedHtableXML) # @($global:rc_parametersHtable) | Export-Clixml ($global:rc_parametersHtableXML) $f = $global:rc_verifiedHtableXML # ( new-object PSObject -property ($global:rc_verifiedHtable) ) | Export-Clixml ($f) write-HashTable2File ($global:rc_verifiedHtable) ($f+".txt") # ( New-PSCustomObject ($global:rc_parametersHtable) ) | Export-Clixml ($f) $f = $global:rc_parametersHtableXML write-HashTable2File ($global:rc_parametersHtable) ($f+".txt") } function write-HashTable2File([hashtable]$h,$f,$overWrite = $true){ if( (Test-Path $f) -and $overWrite){ del $f -Force } if( (Test-Path $f) -eq $false){ "" > $f foreach($k in $h.keys){ ($k+":"+$h[$k]) >> $f } } } function update-DiagRootCausesecondTime($filename){ $global:rc_verifiedHtableXML = $env:temp + "\"+$filename+"RC_VF.xml" $global:rc_parametersHtableXML = $env:temp + "\"+$filename+"RC_Param.xml" $rcs = cat ($global:rc_verifiedHtableXML+".txt") foreach($rc in $rcs){ $rc1 = [string]$rc $rc1 = $rc1.split(':') $rc2 = $rc1[0] if($rc2.indexof(",") -gt -1){ $rc2 = $rc2.split(",") update-diagrootcause -id ($rc2[0].trim()) -iid ($rc2[1].trim()) -detected ($($rc[1])) # pop-msg (($rc2[0].trim()) + ($rc2[1].trim()) + ($($rc[1]))) } } } # function to be placed in every verfier # usage example : for "RC_WUGenError" , if (checkResolver "WUGenError") { return } # for "RC_WUGenError" and instance id "Ax123" , if(checkResolver "WUGenError" "Ax123") { return } # for "RC_WUGenError" and parameter "Px123" , if(checkResolver "WUGenError" $null "Px123") { return } # for "RC_WUGenError" and instance id "Ax123" and parameter "Px123" , if(checkResolver "WUGenError" "Ax123" "Px123") { return } # as you know here Px123 must be hashtable # put this line at the top of the verifier after the include statements function checkResolver { param([string]$res , [string]$instanceid = $null, [hashtable]$params = $null) # pop-msg ($res+","+$instanceid) "78" $resRunning = "" if(test-path $global:filename){ $resRunning = cat $global:filename } $alreadyRan = "" if(test-path $global:resolverRan){ $alreadyRan = cat $global:resolverRan } $resFailed = $null if(test-path $global:resolverFail){ $resFailed = cat $global:resolverFail } $detected = $true $returnFromFailed = $true; #check for failed resolvers if($resfailed -ne $null){ foreach($f in $resFailed){ $str = $f.split(',') $res = $str[0] if($str[1] -eq ""){ $instanceid = $null } if( ($null -eq $instanceid) -and ($null -eq $params) ){ # if both parameters and instance id is null update-diagrootcause -id "RC_$res" -detected $true }elseif( ($null -eq $instanceid) ){ # if only instance id is null update-diagrootcause -id "RC_$res" -detected $true -parameter $params }elseif( ($null -eq $params) ){ #if only parameters is null if("$res,$instanceid" -eq $f){ update-diagrootcause -id "RC_$res" -detected $true -iid $instanceid }else{ $returnFromFailed = $false } }else{ # if both parameter and instance id is not null if("$res,$instanceid" -eq $f){ update-diagrootcause -id "RC_$res" -detected $true -iid $instanceid -parameter $params }else{ $returnFromFailed = $false } } if($returnFromFailed) { return $true } } } # since all the verifiers runs after each resolver is ran, we are keeping the list of which resolvers ran already foreach($ran in $alreadyRan){ $ran=[string] $ran $tallyString = $res + "," + $instanceid #pop-msg ($tallyString+"==="+$ran) if( ($ran.length -eq $tallyString.length) -and ($tallystring.indexof($ran) -eq 0) ){ return $false } #return $true } # check whether the current resolver is of current verifier if( ($resRunning[0] -eq $res) -and ($resRunning[1] -eq $instanceid) ){ # pop-msg "$res:$instanceid:false" ":174" return $false }elseif( ( ($null -eq $instanceid) -or ("" -eq $instanceid.trim() ) ) -and ( ($null -eq $params) ) ){ # if both parameters and instance id is null #-or ("" -eq $params.trim() ) #> # pop-msg "$res:$instanceid:178" ":178" # for some strange reason even if $instanceid is set to null it somehow gets initialized to empty string, # so in this section checking for empty string update-diagrootcause -id "RC_$res" -detected $true }elseif( ($null -eq $instanceid) ){ # if only instance id is null # pop-msg "$res:$instanceid:182" ":184" update-diagrootcause -id "RC_$res" -detected $true -parameter $params }elseif( ($null -eq $params) ){ #if only parameters is null [string]$instanceid = [string]$instanceid # pop-msg ($instanceid.gettype()) "type" # pop-msg "$res:186" # pop-msg "$res:$instanceid:186" ":186" update-diagrootcause -id "RC_$res" -detected $true -iid $instanceid }else{ # if both parameter and instance id is not null [string]$res = [string]$res [string]$instanceid = [string]$instanceid # pop-msg ($instanceid.gettype()) "instance type" # pop-msg "$res:190" # pop-msg ("$instanceid"+":190") # pop-msg ($params.gettype()) "params type" # pop-msg "$res:$instanceid:190" "190:" update-diagrootcause -id "RC_$res" -detected $true -iid $instanceid -parameter $params } # pop-msg ("$res,"+$instanceid+",$detected") return $detected } # function to be placed in every resolver # usage example : for "RC_WUGenError" , runningResolver "WUGenError" # : for "RC_WUGenError" and instance id "Ax1234" , runningResolver "WUGenError" "Ax1234" function runningResolver { param($resolverName , $instanceid = $null) ($resolvername) > $global:filename if($null -ne $instanceid){ $instanceid >> $global:filename }else{ "" >> $global:filename } ResolverRan ($resolverName) ($instanceid) } # private funtion to keep the list of which resolver ran already # already called in another function, no need to call this from anywhere in the pack function ResolverRan { param($resolverName , $instanceid = $null) ($resolvername+","+$instanceid) >> $global:resolverRan } # function to create helper variable if the computer needs restart # must be placed in TS_Main.ps1 function CreateRebootFlag(){ $global:RebootFlag = $false } # sets the reboot flag # usage : must be placed on verifiers # must be tied with some logic function Set-RebootFlag ($boolValue=$false){ $global:RebootFlag = $boolValue } # function to be placed in Resolvers, so if restart needed then resolver fails function check-RebootFlag($showRestart=$false,$restartname="",$restartdesc=""){ if($global:RebootFlag){ # Throw [system.IndexOutOfRangeException] if($showRestart){ $params = @{} $params.add("FixVerNAME","$restartname") $params.add("FixVerDESC","$restartdesc") # get-diaginput "INT_Restart" -parameter $params } # Throw [system.NullReferenceException] } } # sets the state of this verifier ran or not, detected or not # state should be true/false/null function set-verifierRan{ param([string]$id, $state, [Parameter(Mandatory=$false)][string]$instanceID) if(!($instanceID)){ instanceID = "" } $fname = "VF_"+$id+"_"+$instanceID [string]$state=[string]$state ($state+"") > $fname } # gets the state of this verifier ran or not, detected or not # state returned should be true/false/null function get-verifierRan{ param([string]$id, [Parameter(Mandatory=$false)][string]$instanceID) $state = cat ("VF_"+$id+"_"+$instanceID) [string]$state = [string]$state $state = $state.Trim() if($state -eq ""){ return $null } if($state -ieq "True"){ return $true }else{ return $false } } # this function will prevent from running the verifier if previous state is found function retain-PreviousStateOFVerifier($id,$instanceID=""){ $detected = get-verifierRan $name $instanceID if($detected -eq $null){ return $true } if($instanceID -eq ""){ update-diagrootcause -id $id -detected $detected } if($instanceID -ne ""){ update-diagrootcause -id $id -detected $detected -iid $instanceid } return $false } function fileExists($path1){ return ([system.IO.file]::Exists($path1)) } # to check whether TS is running or Detecting Additional Problems, only works if the pack is run as elevated function isRunningDetectingAdditionalProblems($packName = "already.txt"){ # drop a file in the current folder so that it can be checked later "once" > ".\$packName" # pop-msg "stop here" $p1 = dir ($env:windir+"\Temp") | Sort-Object LastWriteTime -descending # sorting the items of directory in descending order $p1 = $p1 | where { $_.Mode -match "d" } # search for directories only, cause we aren’t interested in files if($null -eq $p1){ return $false } # pop-msg ($p1.gettype()) # pop-msg $p1[0] if("System.IO.DirectoryInfo" -ieq $p1.gettype()){ return $false } # only works if the pack is run as elevated $dir1 = (($env:windir+"\Temp")+"\"+$p1[0].Name) $dir2 = (($env:windir+"\Temp")+"\"+$p1[1].Name) if( (test-path "$dir1\$packName") -and (test-path "$dir2\$packName") ){ # check if 2 files are present or not, if the both files are present then its a load back return $true } if( (-not(test-path "$dir1\$packName")) -and (test-path "$dir2\$packName") ){ # check if 2 files are present or not, if the both files are present then its a load back return $false } if( (test-path "$dir1\$packName") -and (-not(test-path "$dir2\$packName")) ){ # check if 2 files are present or not, if the both files are present then its a load back return $false } return $false } # second load of the troubleshooter, needs a filename to be given as parameter # example :- # if(ispostback "wuPack1"){ # do what you need for detecting additional changes # } else { # do what needs for 1st run of rootcauses # } function isPostBack($packName){ return (isRunningDetectingAdditionalProblems ($packName) ) } # second load of the troubleshooter, needs a filename to be given as parameter, for all of windows 8,7,6 etc # example :- # if(is-WTPPostBack "wuPack1"){ # do what you need for detecting additional changes # } else { # do what needs for 1st run of rootcauses # } function is-WTPPostBack($packName = "already.txt"){ $osVer = [Microsoft.Win32.Registry]::GetValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion", "CurrentVersion", "") if( 6.2 -le $osVer ){ ### windows 8 and above version return ( ispostbackOnWin8 ( $packName ) ) } else { ### windows 7 and below return ( ispostback ( $packName ) ) } } # second load of the troubleshooter, needs a filename to be given as parameter # example :- # if(ispostbackOnWin8 "wuPack1"){ # do what you need for detecting additional changes # } else { # do what needs for 1st run of rootcauses # } function ispostbackOnWin8($packName,$debug=$false){ [string] $path1 = (Get-Location -PSProvider FileSystem).ProviderPath [string] $path1 = $path1 + "\$packName" if(test-path $path1){ # del $path1 -force # the file is already so this must be detecting additional problem return $true } "once" > $path1 if($debug){ pop-msg ($path1+"::"+(test-path $path1)) "ispostback" } return $false } # call off the script that checks whether the pack running or not function calloff(){ $true > "$env:temp\calloff" } #copy necessary files to the temporary folder function copyFilesToTemp($fileArray){ foreach($f in $fileArray){ copy "$f" ("$env:temp\$f") } } #block the script, until the pack is either finished or cancelled function block(){ $p1 = dir ($env:windir+"\Temp") | Sort-Object LastWriteTime -descending # sorting the items of directory in descending order $p1 = $p1 | where { $_.Mode -match "d" } # search for directories only, cause we aren’t interested in files # take the latest directory $dir1 = "not null" while( $dir1 -ne $null ){ $dir1 = dir (($env:windir+"\Temp")+"\"+$p1[0].Name) "directory there" } if(test-path ("$env:temp\calloff")){ del "$env:temp\calloff" exit } } # function to run powershell window without black splash, not used anywhere till now, its not working properly function runInvisibleWindowPowershell($args){ $runthis = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" $args = [string] $args # pop-msg "$args" "runInvisibleWindowPowershell" $procStartInfo = New-Object System.Diagnostics.ProcessStartInfo($runthis,$args) $procStartInfo.RedirectStandardOutput = $true; $procStartInfo.UseShellExecute = $true; $procStartInfo.CreateNoWindow = $false; $proc = new-object System.Diagnostics.Process $proc.StartInfo = $procStartInfo; $proc.Start(); } # this function "callthis1st" must be called as shown below in TS_Main file # if(isRunningDetectingAdditionalProblems){ # calloff (this function is used to cancel the running of "runaftercancel" file) # returnBackExecPolicy (this function sets back the exec policy to the state before the pack was run) # }else{ # callthis1st (this sets the exec policy to "remotesigned" # runAfterCancelProcess ("RunThisAfterCancel.ps1") ($filesToCopy) {this function runsThisAfterCancel.ps1 after the cancel button is hit} # } # this function sets powershell exec policy to remote signed function callthis1st(){ # $execPolicy = get-executionpolicy $runthis = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" [System.Diagnostics.Process]::Start($runthis," get-executionpolicy > $env:temp\execPolicy.txt") # runInvisibleWindowPowershell " get-executionpolicy > $env:temp\execPolicy.txt" $execPolicy = cat "$env:temp\execPolicy.txt" $execPolicy = [string] $execPolicy $execPolicy = $execPolicy.Trim() # pop-msg "$execPolicy" if( ($execPolicy -ieq "remotesigned") -or ($execPolicy -ieq "unrestricted") ){ }else{ # POP-MSG "$EXECPOLICY" [System.Diagnostics.Process]::Start($runthis," set-executionpolicy unrestricted -force") # runInvisibleWindowPowershell " set-executionpolicy remotesigned -force" } } function timeStamp($name,$fileName=( $env:temp+"\perfPrinterTest.txt")){ ($name + "::" + ( Get-Date -Format o ) ) >> $fileName }