42 lines
2.3 KiB
PowerShell
42 lines
2.3 KiB
PowerShell
$ErrorActionPreference='SilentlyContinue'
|
|
|
|
"===== .QWC application files (define the connected app) ====="
|
|
$roots = @('C:\Share\Quickbooks','C:\ProgramData\Intuit','C:\Program Files\Common Files\Intuit','C:\Program Files (x86)\Common Files\Intuit','C:\Program Files (x86)\Intuit','C:\Program Files\Intuit')
|
|
$qwc = @()
|
|
# top-level of the QB data folder (where apps usually drop the .qwc)
|
|
$qwc += Get-ChildItem 'C:\Share\Quickbooks' -Filter *.qwc -ErrorAction SilentlyContinue
|
|
# recursive in the (small) profile + program locations
|
|
foreach($r in @('C:\Users','C:\ProgramData\Intuit','C:\Program Files\Common Files\Intuit','C:\Program Files (x86)\Common Files\Intuit')){
|
|
if(Test-Path $r){ $qwc += Get-ChildItem $r -Recurse -Filter *.qwc -ErrorAction SilentlyContinue }
|
|
}
|
|
$qwc = $qwc | Sort-Object FullName -Unique
|
|
if(-not $qwc){ "(no .qwc files in searched locations)" }
|
|
foreach($f in $qwc){
|
|
"### $($f.FullName) (modified $($f.LastWriteTime))"
|
|
try { [xml]$x = Get-Content $f.FullName -Raw
|
|
" AppName : $($x.QBWCXML.AppName)"
|
|
" AppURL : $($x.QBWCXML.AppURL)"
|
|
" AppSupport : $($x.QBWCXML.AppSupport)"
|
|
" AppDescription: $($x.QBWCXML.AppDescription)"
|
|
" UserName : $($x.QBWCXML.UserName)"
|
|
} catch { " raw:"; (Get-Content $f.FullName -Raw) }
|
|
}
|
|
|
|
"`n===== Web Connector data dirs (per-user) ====="
|
|
Get-ChildItem 'C:\Users\*\AppData\Local\Intuit\QBWebConnector' -Directory -ErrorAction SilentlyContinue | ForEach-Object {
|
|
"-- $($_.FullName) --"
|
|
Get-ChildItem $_.FullName -Recurse -ErrorAction SilentlyContinue | Select-Object @{n='KB';e={[math]::Round($_.Length/1KB,1)}},FullName,LastWriteTime | Format-Table -Auto -Wrap | Out-String
|
|
}
|
|
|
|
"`n===== Web Connector LOG - app names / URLs it talks to ====="
|
|
$logs = Get-ChildItem 'C:\Users\*\AppData\Local\Intuit\QBWebConnector','C:\ProgramData\Intuit\QBWebConnector' -Recurse -Include *.txt,*.log -ErrorAction SilentlyContinue
|
|
foreach($l in $logs){
|
|
"### $($l.FullName)"
|
|
Select-String -Path $l.FullName -Pattern 'AppName|App Name|AppURL|Connecting|http' -ErrorAction SilentlyContinue | ForEach-Object { $_.Line.Trim() } | Sort-Object -Unique | Select-Object -Last 25 | Out-String
|
|
}
|
|
|
|
"`n===== registry-registered Web Connector apps ====="
|
|
reg query "HKLM\SOFTWARE\Intuit\QBWebConnector" /s 2>$null
|
|
reg query "HKLM\SOFTWARE\WOW6432Node\Intuit\QBWebConnector" /s 2>$null
|
|
"===== DONE ====="
|