2016-07: Retroactive Updates

* DISM
  * Much safer WinVer check

* Enter / Exit SafeMode
  * Now enables MSI (un)installers in SafeMode w/ Networking

* Final Checklist
  * NEW: can now be run directly from UFD

* Hide Windows 10 Upgrade.reg
  * Added more registry blocks

* Removed Chocolately
  * Too much volatility
  * Ninite will regain default installer status

* Replaced ConEmu with Cmder
  * Cmder has a heavily modified ConEmu
  * Changed background
  * Added Cmder launchers in Misc

* SW Diagnostics
  * NEW: can now be run directly from UFD
  * BleachBit / Winapp2.ini updated
    * Expanded selections
    * Now only checks temp data size; DOES NOT delete temp data
  * Internet connection test will now loop until the manually exited
  * Now warns you that it can't check Windows activation in SafeMode

* Bugfixes
  * reset_browsers.ps1
    * Should skip "resetting" the backup folders (i.e. Default.wkbak)
This commit is contained in:
Alan Mason 2017-11-17 00:50:54 -07:00
parent c6e58088af
commit 3031df5a4c
38 changed files with 80 additions and 914 deletions

View file

@ -1,9 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:Launch
call "%~dp0\.bin\Scripts\Launch.cmd" PSScript "%~dp0\.bin\Scripts" "checklist.ps1" /admin

View file

@ -18,8 +18,8 @@ for %%f in (%*) do (
:SetVariables
if /i "!PROCESSOR_ARCHITECTURE!" == "AMD64" set "arch=64"
set "con=%~dp0\..\..\ConEmu\ConEmu.exe"
if !arch! equ 64 set "con=%~dp0\..\..\ConEmu\ConEmu64.exe"
set "con=%~dp0\..\cmder_mini\vendor\conemu-maximus5\ConEmu.exe"
if !arch! equ 64 set "con=%~dp0\..\cmder_mini\vendor\conemu-maximus5\ConEmu.exe"
:Launch
pushd %2

View file

@ -1,9 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:Launch
call "%~dp0\.bin\Scripts\Launch.cmd" PSScript "%~dp0\.bin\Scripts" "diagnostics.ps1" /admin

View file

@ -48,11 +48,11 @@ if (test-path "$systemdrive\AdwCleaner") {
}
# Uninstall Autoruns
if (test-path "hkcu:\Software\Sysinternals\AutoRuns") {
if (test-path "HKCU:\Software\Sysinternals\AutoRuns") {
wk-write "* Uninstalling Autoruns" "$log"
rm -path hkcu:\Software\Sysinternals\AutoRuns -recurse 2>&1 | out-null
if ((gci -path hkcu:\Software\Sysinternals 2> out-null | Measure-Object).count -eq 0) {
rm -path hkcu:\Software\Sysinternals 2>&1 | out-null
Remove-Item -Path HKCU:\Software\Sysinternals\AutoRuns -Recurse 2>&1 | out-null
if ((Get-ChildItem -Path HKCU:\Software\Sysinternals 2> out-null | Measure-Object).count -eq 0) {
Remove-Item -Path HKCU:\Software\Sysinternals 2>&1 | out-null
}
}

View file

@ -15,9 +15,13 @@ $bin = (Get-Item $wd).Parent.FullName
$diag_dest = "/srv/Diagnostics"
$diag_server = "10.0.0.10"
$diag_user = "wkdiag"
$conemu = "$bin\cmder_mini\vendor\conemu-maximus5\ConEmu.exe"
# OS Check
. .\os_check.ps1
if ($arch -eq 64) {
$conemu = "$bin\cmder_mini\vendor\conemu-maximus5\ConEmu64.exe"
}
# Set Service Order
while ($service_order -notmatch '^\d+') {
@ -32,17 +36,17 @@ wk-write "Starting SW diagnostics for Ticket #$service_order" "$log"
wk-write "" "$log"
## Sanitize Environment ##
# ProcessKiller
#!! DISABLED UNTIL FURTHER TESTING IS DONE !!#
# adapted from TronScript (reddit.com/r/TronScript) and credit to /u/cuddlychops06
#wk-write "* Stopping all processes" "$log"
#taskkill.exe /F /FI "USERNAME eq Demo" /FI "IMAGENAME ne ClassicShellService.exe" /FI "IMAGENAME ne explorer.exe" /FI "IMAGENAME ne dwm.exe" /FI "IMAGENAME ne cmd.exe" /FI "IMAGENAME ne Taskmgr.exe" /FI "IMAGENAME ne MsMpEng.exe" /FI "IMAGENAME ne powershell.exe" /FI "IMAGENAME ne rkill.exe" /FI "IMAGENAME ne rkill64.exe" /FI "IMAGENAME ne rkill.com" /FI "IMAGENAME ne rkill64.com" /FI "IMAGENAME ne conhost.exe" /FI "IMAGENAME ne dashost.exe" /FI "IMAGENAME ne vmtoolsd.exe" /FI "IMAGENAME ne conhost.exe" 2>&1 | out-null
#~# BROKEN #~#
#~# # ProcessKiller
#~# # adapted from TronScript (reddit.com/r/TronScript) and credit to /u/cuddlychops06
#~# #wk-write "* Stopping all processes" "$log"
#~# taskkill.exe /F /FI "USERNAME eq Demo" /FI "IMAGENAME ne ClassicShellService.exe" /FI "IMAGENAME ne explorer.exe" /FI "IMAGENAME ne dwm.exe" /FI "IMAGENAME ne cmd.exe" /FI "IMAGENAME ne Taskmgr.exe" /FI "IMAGENAME ne MsMpEng.exe" /FI "IMAGENAME ne powershell.exe" /FI "IMAGENAME ne rkill.exe" /FI "IMAGENAME ne rkill64.exe" /FI "IMAGENAME ne rkill.com" /FI "IMAGENAME ne rkill64.com" /FI "IMAGENAME ne conhost.exe" /FI "IMAGENAME ne dashost.exe" /FI "IMAGENAME ne vmtoolsd.exe" /FI "IMAGENAME ne conhost.exe" 2>&1 | out-null
# RKill
wk-write "* Running RKill" "$log"
start -wait "$bin\RKill\RKill.exe" -argumentlist @("-l", "$logpath\rkill.log")
start -wait "$conemu" -argumentlist @("/cmd", "$bin\RKill\RKill.exe", "-l", "$logpath\rkill.log")
if (!(ask "Did RKill run correctly?" "$log")) {
start -wait "$bin\RKill\explorer.exe" -argumentlist @("-l", "$logpath\rkill.log")
start -wait "$conemu" -argumentlist @("/cmd", "$bin\RKill\explorer.exe", "-l", "$logpath\rkill.log")
if (!(ask "Did RKill run correctly?" "$log")) {
wk-warn "Since RKill has failed to run, please try an alternative version." "$log"
wk-warn "Opening RKill folder..." "$log"
@ -64,10 +68,9 @@ if (test-path "$WKPath\Tools\.bin\TDSSKiller.exe") {
## Network Check ##
wk-write "* Testing Internet Connection" "$log"
if (!(test-connection "google.com" -count 2 -quiet)) {
while (!(test-connection "google.com" -count 2 -quiet)) {
wk-warn "System appears offline. Please connect to the internet." "$log"
pause
if (!(test-connection "google.com" -count 2 -quiet)) {
if (!(ask "Try again?" "$log")) {
wk-error "System still appears offline; aborting script." "$log"
exit 1
}
@ -103,6 +106,17 @@ if ($arch -eq 64) {
}
start $prog -argumentlist @("/quiet", "/noinstall", "/noupload", "/log=$logpath\hitman.xml") -workingdirectory "$bin\HitmanPro"
#~# BROKEN #~#
#~# # OS Health Checks
#~# ## DISM
#~# if ($win_version -match '^8|10$') {
#~# start "$conemu" -argumentlist @("/cmd", "$windir\System32\dism.exe", "/online", "/cleanup-image", "/checkhealth", "/logpath:$logpath\DISM.log", "-new_console:c")
#~# }
#~# ## SFC
#~# start "$conemu" -argumentlist @("/cmd", "$windir\System32\sfc.exe", "/scannow", "-new_console:c")
#~# ## CHKDSK
#~# start "$conemu" -argumentlist @("/cmd", "$windir\System32\chkdsk.exe", "$systemdrive", "-new_console:c")
# Backup Registry
if (!(test-path "$logpath\Registry")) {
wk-write "* Backing up registry" "$log"
@ -142,30 +156,30 @@ if (test-path "$userprofile\Favorites") {
popd
}
# Remove temporary files
# Get total size of temporary files
if (!(test-path "$logpath\bleachbit.log")) {
wk-write "* Removing temporary files" "$log"
start -wait "$bin\BleachBit\bleachbit_console.exe" -argumentlist @("-c", "--preset") -nonewwindow -workingdirectory "$bin\BleachBit" -redirectstandarderror "$logpath\bleachbit.err" -redirectstandardoutput "$logpath\bleachbit.log"
wk-write "* Checking for temporary files" "$log"
start -wait "$bin\BleachBit\bleachbit_console.exe" -argumentlist @("--preview", "--preset") -nonewwindow -workingdirectory "$bin\BleachBit" -redirectstandarderror "$logpath\bleachbit.err" -redirectstandardoutput "$logpath\bleachbit.log"
}
# Autoruns
if (!(test-path "$logpath\autoruns.arn")) {
wk-write "* Starting background autoruns scan" "$log"
md "HKCU:\Software\Sysinternals" 2>&1 | out-null
md "HKCU:\Software\Sysinternals\AutoRuns" 2>&1 | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns" -name "checkvirustotal" -value 1 -type "DWord" | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns" -name "EulaAccepted" -value 1 -type "DWord" | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns" -name "shownomicrosoft" -value 1 -type "DWord" | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns" -name "shownowindows" -value 1 -type "DWord" | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns" -name "showonlyvirustotal" -value 1 -type "DWord" | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns" -name "submitvirustotal" -value 0 -type "DWord" | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns" -name "verifysignatures" -value 1 -type "DWord" | out-null
md "HKCU:\Software\Sysinternals\AutoRuns\SigCheck" 2>&1 | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns\SigCheck" -name "EulaAccepted" -value 1 -type "DWord" | out-null
md "HKCU:\Software\Sysinternals\AutoRuns\Streams" 2>&1 | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns\Streams" -name "EulaAccepted" -value 1 -type "DWord" | out-null
md "HKCU:\Software\Sysinternals\AutoRuns\VirusTotal" 2>&1 | out-null
sp -path "HKCU:\Software\Sysinternals\AutoRuns\VirusTotal" -name "VirusTotalTermsAccepted" -value 1 -type "DWord" | out-null
New-Item "HKCU:\Software\Sysinternals" 2>&1 | out-null
New-Item "HKCU:\Software\Sysinternals\AutoRuns" 2>&1 | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns" -Name "checkvirustotal" -Value 1 -Type "DWord" | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns" -Name "EulaAccepted" -Value 1 -Type "DWord" | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns" -Name "shownomicrosoft" -Value 1 -Type "DWord" | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns" -Name "shownowindows" -Value 1 -Type "DWord" | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns" -Name "showonlyvirustotal" -Value 1 -Type "DWord" | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns" -Name "submitvirustotal" -Value 0 -Type "DWord" | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns" -Name "verifysignatures" -Value 1 -Type "DWord" | out-null
New-Item "HKCU:\Software\Sysinternals\AutoRuns\SigCheck" 2>&1 | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns\SigCheck" -Name "EulaAccepted" -Value 1 -Type "DWord" | out-null
New-Item "HKCU:\Software\Sysinternals\AutoRuns\Streams" 2>&1 | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns\Streams" -Name "EulaAccepted" -Value 1 -Type "DWord" | out-null
New-Item "HKCU:\Software\Sysinternals\AutoRuns\VirusTotal" 2>&1 | out-null
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\AutoRuns\VirusTotal" -Name "VirusTotalTermsAccepted" -Value 1 -Type "DWord" | out-null
start "$bin\SysinternalsSuite\autoruns.exe" -workingdirectory "$bin\SysinternalsSuite" -windowstyle "minimized"
}
@ -269,7 +283,9 @@ if ($arch -eq 32) {
} else {
wk-write " $os_name x$arch" "$log"
}
if ($win_act -notmatch "permanent") {
if ($win_act -imatch 'unavailable') {
wk-warn "$win_act" "$log"
} elseif ($win_act -notmatch "permanent") {
wk-error "$win_act" "$log"
} else {
wk-write "$win_act" "$log"

View file

@ -13,7 +13,7 @@ $bin = (Get-Item $wd).Parent.FullName
# OS Check
. .\os_check.ps1
if ($win_version -le 7 -Or $win_version -imatch 'Vista') {
if ($win_version -notmatch '^8|10$') {
wk-error "This tool is not intended for $os_name."
} else {
# Get mode

View file

@ -9,8 +9,6 @@ $host.UI.RawUI.WindowTitle = "WK SafeMode Tool"
# Ask user
if (!(ask "Enable booting to SafeMode (with Networking)?")) {
# Abort
# TODO: test this
popd
exit 1
}
@ -20,7 +18,8 @@ if (!(ask "Enable booting to SafeMode (with Networking)?")) {
start -wait "bcdedit" -argumentlist @("/set", "{default}", "safeboot", "network") -nonewwindow
# Enable MSI access under safemode
# TODO
New-Item "HKLM:\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\MSIServer" 2>&1 | out-null
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\MSIServer" -Name "(Default)" -Value "Service" -Type "String" -Force | out-null
## Done ##
popd

View file

@ -9,8 +9,6 @@ $host.UI.RawUI.WindowTitle = "WK SafeMode Tool"
# Ask user
if (!(ask "Disable booting to SafeMode?")) {
# Abort
# TODO: test this
popd
exit 1
}
@ -21,7 +19,7 @@ start -wait "bcdedit" -argumentlist @("/deletevalue", "{current}", "safeboot") -
start -wait "bcdedit" -argumentlist @("/deletevalue", "{default}", "safeboot") -nonewwindow
# Disable MSI access under safemode
# TODO
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\MSIServer" -Recurse 2>&1 | out-null
## Done ##
popd

View file

@ -4,6 +4,10 @@
$host.UI.RawUI.BackgroundColor = "black"
$host.UI.RawUI.ForegroundColor = "green"
$safemode = $false
if ((gwmi win32_computersystem -Property BootupState).BootupState -imatch 'Fail-safe') {
$safemode = $true
}
$appdata = (gci env:appdata).value
$localappdata = (gci env:localappdata).value
$username = (gci env:username).value

View file

@ -1,274 +0,0 @@
# =====================================================================
# Copyright 2011 - Present RealDimensions Software, LLC, and the
# original authors/contributors from ChocolateyGallery
# at https://github.com/chocolatey/chocolatey.org
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# =====================================================================
# Environment Variables, specified as $env:NAME in PowerShell.exe and %NAME% in cmd.exe.
# For explicit proxy, please set $env:chocolateyProxyLocation and optionally $env:chocolateyProxyUser and $env:chocolateyProxyPassword
# For an explicit version of Chocolatey, please set $env:chocolateyVersion = 'versionnumber'
# To target a different url for chocolatey.nupkg, please set $env:chocolateyDownloadUrl = 'full url to nupkg file'
# NOTE: $env:chocolateyDownloadUrl does not work with $env:chocolateyVersion.
# To use built-in compression (no 7zip download), please set $env:chocolateyUseWindowsCompression = 'true'
$url = "https://chocolatey.org/api/v2/package/chocolatey/"
# introduced when there were performance issues - kept around in case we
# run into them again.
$url = "https://packages.chocolatey.org/chocolatey.0.9.9.12.nupkg"
$chocolateyVersion = $env:chocolateyVersion
if (![string]::IsNullOrEmpty($chocolateyVersion)){
Write-Output "Downloading specific version of Chocolatey: $chocolateyVersion"
$url = "https://chocolatey.org/api/v2/package/chocolatey/$chocolateyVersion"
# introduced when there were performance issues - kept around in case we
# run into them again.
#$url = "https://packages.chocolatey.org/chocolatey.$chocolateyVersion.nupkg"
}
$chocolateyDownloadUrl = $env:chocolateyDownloadUrl
if (![string]::IsNullOrEmpty($chocolateyDownloadUrl)){
Write-Output "Downloading Chocolatey from : $chocolateyDownloadUrl"
$url = "$chocolateyDownloadUrl"
}
if ($env:TEMP -eq $null) {
$env:TEMP = Join-Path $env:SystemDrive 'temp'
}
$chocTempDir = Join-Path $env:TEMP "chocolatey"
$tempDir = Join-Path $chocTempDir "chocInstall"
if (![System.IO.Directory]::Exists($tempDir)) {[System.IO.Directory]::CreateDirectory($tempDir)}
$file = Join-Path $tempDir "chocolatey.zip"
# PowerShell v2/3 caches the output stream. Then it throws errors due
# to the FileStream not being what is expected. Fixes "The OS handle's
# position is not what FileStream expected. Do not use a handle
# simultaneously in one FileStream and in Win32 code or another
# FileStream."
function Fix-PowerShellOutputRedirectionBug {
try{
# http://www.leeholmes.com/blog/2008/07/30/workaround-the-os-handles-position-is-not-what-filestream-expected/ plus comments
$bindingFlags = [Reflection.BindingFlags] "Instance,NonPublic,GetField"
$objectRef = $host.GetType().GetField("externalHostRef", $bindingFlags).GetValue($host)
$bindingFlags = [Reflection.BindingFlags] "Instance,NonPublic,GetProperty"
$consoleHost = $objectRef.GetType().GetProperty("Value", $bindingFlags).GetValue($objectRef, @())
[void] $consoleHost.GetType().GetProperty("IsStandardOutputRedirected", $bindingFlags).GetValue($consoleHost, @())
$bindingFlags = [Reflection.BindingFlags] "Instance,NonPublic,GetField"
$field = $consoleHost.GetType().GetField("standardOutputWriter", $bindingFlags)
$field.SetValue($consoleHost, [Console]::Out)
[void] $consoleHost.GetType().GetProperty("IsStandardErrorRedirected", $bindingFlags).GetValue($consoleHost, @())
$field2 = $consoleHost.GetType().GetField("standardErrorWriter", $bindingFlags)
$field2.SetValue($consoleHost, [Console]::Error)
} catch {
Write-Output "Unable to apply redirection fix."
}
}
Fix-PowerShellOutputRedirectionBug
function Download-File {
param (
[string]$url,
[string]$file
)
Write-Output "Downloading $url to $file"
$downloader = new-object System.Net.WebClient
$defaultCreds = [System.Net.CredentialCache]::DefaultCredentials
if ($defaultCreds -ne $null) {
$downloader.Credentials = $defaultCreds
}
# check if a proxy is required
$explicitProxy = $env:chocolateyProxyLocation
$explicitProxyUser = $env:chocolateyProxyUser
$explicitProxyPassword = $env:chocolateyProxyPassword
if ($explicitProxy -ne $null) {
# explicit proxy
$proxy = New-Object System.Net.WebProxy($explicitProxy, $true)
if ($explicitProxyPassword -ne $null) {
$passwd = ConvertTo-SecureString $explicitProxyPassword -AsPlainText -Force
$proxy.Credentials = New-Object System.Management.Automation.PSCredential ($explicitProxyUser, $passwd)
}
Write-Output "Using explicit proxy server '$explicitProxy'."
$downloader.Proxy = $proxy
} elseif (!$downloader.Proxy.IsBypassed($url))
{
# system proxy (pass through)
$creds = $defaultCreds
if ($creds -eq $null) {
Write-Debug "Default credentials were null. Attempting backup method"
$cred = get-credential
$creds = $cred.GetNetworkCredential();
}
$proxyaddress = $downloader.Proxy.GetProxy($url).Authority
Write-Output "Using system proxy server '$proxyaddress'."
$proxy = New-Object System.Net.WebProxy($proxyaddress)
$proxy.Credentials = $creds
$downloader.Proxy = $proxy
}
$downloader.DownloadFile($url, $file)
}
# Download the Chocolatey package
Download-File $url $file
# Determine unzipping method
$unzipMethod = '7zip'
if (![string]::IsNullOrEmpty($env:chocolateyUseWindowsCompression)){
Write-Output 'Using built in compression to unzip.'
$unzipMethod = 'builtin'
}
if ($unzipMethod -eq '7zip') {
# download 7zip
Write-Output "Download 7Zip commandline tool"
$7zaExe = Join-Path $tempDir '7za.exe'
Download-File 'https://chocolatey.org/7za.exe' "$7zaExe"
# unzip the package
Write-Output "Extracting $file to $tempDir..."
Start-Process "$7zaExe" -ArgumentList "x -o`"$tempDir`" -y `"$file`"" -Wait -NoNewWindow
} else {
# unzip the package
Write-Output "Extracting $file to $tempDir..."
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($file)
$destinationFolder = $shellApplication.NameSpace($tempDir)
$destinationFolder.CopyHere($zipPackage.Items(),0x10)
}
# Call chocolatey install
Write-Output "Installing chocolatey on this machine"
$toolsFolder = Join-Path $tempDir "tools"
$chocInstallPS1 = Join-Path $toolsFolder "chocolateyInstall.ps1"
& $chocInstallPS1
Write-Output 'Ensuring chocolatey commands are on the path'
$chocInstallVariableName = "ChocolateyInstall"
$chocoPath = [Environment]::GetEnvironmentVariable($chocInstallVariableName)
if ($chocoPath -eq $null -or $chocoPath -eq '') {
$chocoPath = 'C:\ProgramData\Chocolatey'
}
$chocoExePath = Join-Path $chocoPath 'bin'
if ($($env:Path).ToLower().Contains($($chocoExePath).ToLower()) -eq $false) {
$env:Path = [Environment]::GetEnvironmentVariable('Path',[System.EnvironmentVariableTarget]::Machine);
}
Write-Output 'Ensuring chocolatey.nupkg is in the lib folder'
$chocoPkgDir = Join-Path $chocoPath 'lib\chocolatey'
$nupkg = Join-Path $chocoPkgDir 'chocolatey.nupkg'
if (![System.IO.Directory]::Exists($chocoPkgDir)) { [System.IO.Directory]::CreateDirectory($chocoPkgDir); }
Copy-Item "$file" "$nupkg" -Force -ErrorAction SilentlyContinue
# SIG # Begin signature block
# MIIRFgYJKoZIhvcNAQcCoIIRBzCCEQMCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB1u9CoeJumiBN6
# T5KLVU3S2QMowJinRBbLYjCIOpMpW6CCDjMwggO3MIICn6ADAgECAhAM5+DlF9hG
# /o/lYPwb8DA5MA0GCSqGSIb3DQEBBQUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBa
# Fw0zMTExMTAwMDAwMDBaMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMTG0RpZ2lD
# ZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
# AQoCggEBAK0OFc7kQ4BcsYfzt2D5cRKlrtwmlIiq9M71IDkoWGAM+IDaqRWVMmE8
# tbEohIqK3J8KDIMXeo+QrIrneVNcMYQq9g+YMjZ2zN7dPKii72r7IfJSYd+fINcf
# 4rHZ/hhk0hJbX/lYGDW8R82hNvlrf9SwOD7BG8OMM9nYLxj+KA+zp4PWw25EwGE1
# lhb+WZyLdm3X8aJLDSv/C3LanmDQjpA1xnhVhyChz+VtCshJfDGYM2wi6YfQMlqi
# uhOCEe05F52ZOnKh5vqk2dUXMXWuhX0irj8BRob2KHnIsdrkVxfEfhwOsLSSplaz
# vbKX7aqn8LfFqD+VFtD/oZbrCF8Yd08CAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGG
# MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEXroq/0ksuCMS1Ri6enIZ3zbcgP
# MB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA0GCSqGSIb3DQEBBQUA
# A4IBAQCiDrzf4u3w43JzemSUv/dyZtgy5EJ1Yq6H6/LV2d5Ws5/MzhQouQ2XYFwS
# TFjk0z2DSUVYlzVpGqhH6lbGeasS2GeBhN9/CTyU5rgmLCC9PbMoifdf/yLil4Qf
# 6WXvh+DfwWdJs13rsgkq6ybteL59PyvztyY1bV+JAbZJW58BBZurPSXBzLZ/wvFv
# hsb6ZGjrgS2U60K3+owe3WLxvlBnt2y98/Efaww2BxZ/N3ypW2168RJGYIPXJwS+
# S86XvsNnKmgR34DnDDNmvxMNFG7zfx9jEB76jRslbWyPpbdhAbHSoyahEHGdreLD
# +cOZUbcrBwjOLuZQsqf6CkUvovDyMIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1
# b5VQCDANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGln
# aUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtE
# aWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgx
# MDIyMTIwMDAwWjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j
# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBT
# SEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEF
# AAOCAQ8AMIIBCgKCAQEA+NOzHH8OEa9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLX
# cep2nQUut4/6kkPApfmJ1DcZ17aq8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSR
# I5aQd4L5oYQjZhJUM1B0sSgmuyRpwsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXi
# TWAYvqrEsq5wMWYzcT6scKKrzn/pfMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5
# Ng2Q7+S1TqSp6moKq4TzrGdOtcT3jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8
# vYWxYoNzQYIH5DiLanMg0A9kczyen6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYD
# VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYB
# BQUHAwMweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5k
# aWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0
# LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4
# oDaGNGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJv
# b3RDQS5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2Vy
# dEFzc3VyZWRJRFJvb3RDQS5jcmwwTwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCow
# KAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZI
# AYb9bAMwHQYDVR0OBBYEFFrEuXsqCqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaA
# FEXroq/0ksuCMS1Ri6enIZ3zbcgPMA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPz
# ItEVyCx8JSl2qB1dHC06GsTvMGHXfgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRu
# pY5a4l4kgU4QpO4/cY5jDhNLrddfRHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKN
# JK4kxscnKqEpKBo6cSgCPC6Ro8AlEeKcFEehemhor5unXCBc2XGxDI+7qPjFEmif
# z0DLQESlE/DmZAwlCEIysjaKJAL+L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN
# 3fYBIM6ZMWM9CBoYs4GbT8aTEAb8B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKy
# ZqHnGKSaZFHvMIIFQDCCBCigAwIBAgIQB3Rm7aJnbzrskhfSMFNxEDANBgkqhkiG
# 9w0BAQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkw
# FwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEy
# IEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMB4XDTE2MDMyNDAwMDAwMFoXDTE3
# MDMyODEyMDAwMFowfTELMAkGA1UEBhMCVVMxDzANBgNVBAgTBkthbnNhczEPMA0G
# A1UEBxMGVG9wZWthMSUwIwYDVQQKExxSZWFsRGltZW5zaW9ucyBTb2Z0d2FyZSwg
# TExDMSUwIwYDVQQDExxSZWFsRGltZW5zaW9ucyBTb2Z0d2FyZSwgTExDMIIBIjAN
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAudmEtlilKQbXZA8idxtEJuNr/lvs
# qq+w3nYlcyHgox6SjZJpsTvPpUvp54hQ46BRjtSRvxt2csFURZTNSyh3jzNXjjes
# E9B9YL4caTM8rgv0kVvcLzLU5bx543Uy1tOjnvbbxpEJEzPK288EQyGfaHXU/AcR
# 0jphnpawDfQsCn+tM4sPIyi2Z7gLmcEoJF+Su8LzrPL4qsnZZ7e891sopi/sI7nv
# OTKWu48oyH51KrLDdas+J3HvnvPQsUw9gG1oxsJ303E4Jo9xFEiUUIA0ZCfjv7Fc
# 0v1e+sWoy6D7yOGZQLDKXit6bS2Kr4lN2WjVMy0FhY7lqnN34Y21gxRedQIDAQAB
# o4IBxTCCAcEwHwYDVR0jBBgwFoAUWsS5eyoKo6XqcQPAYPkt9mV1DlgwHQYDVR0O
# BBYEFE9BoL8b8KzqjI10PMsO0A2oCFSeMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUE
# DDAKBggrBgEFBQcDAzB3BgNVHR8EcDBuMDWgM6Axhi9odHRwOi8vY3JsMy5kaWdp
# Y2VydC5jb20vc2hhMi1hc3N1cmVkLWNzLWcxLmNybDA1oDOgMYYvaHR0cDovL2Ny
# bDQuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwTAYDVR0gBEUw
# QzA3BglghkgBhv1sAwEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNl
# cnQuY29tL0NQUzAIBgZngQwBBAEwgYQGCCsGAQUFBwEBBHgwdjAkBggrBgEFBQcw
# AYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tME4GCCsGAQUFBzAChkJodHRwOi8v
# Y2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEyQXNzdXJlZElEQ29kZVNp
# Z25pbmdDQS5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAQEAA+it
# pXXw8e4TmcVurJmJIleJcV2OG3sMRr/4IdoY1oC4kP7KK589nxw54v5Dn6oZ/P9y
# r2HeFd90KjKo5v6rEacI4/TQv0NgRrk4NGsd3v2fWSL3GAeMcfAkWxirHkfZYsYD
# ACWTAlshswAvxN11/gV9wesvDecwSCkWNTO8bm/izO81vSxjIV93ueiexlBe8yM0
# O2ZGic38RW1bxM9vyjaDRogpgO2NG4jF6V/e99A24OGfgeElHuJOFjy0v94KAKvJ
# VTBbaKkob8r65mLY9oBY0Jh9wc0gkkWawBW1mAwoGuexauwOMaxdouu5BqJY83j/
# v9+cLqDpa4IJ9hLidTGCAjkwggI1AgEBMIGGMHIxCzAJBgNVBAYTAlVTMRUwEwYD
# VQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAv
# BgNVBAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EC
# EAd0Zu2iZ2867JIX0jBTcRAwDQYJYIZIAWUDBAIBBQCggYQwGAYKKwYBBAGCNwIB
# DDEKMAigAoAAoQKAADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEE
# AYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgxgsHvhO1r3cK
# aMYB5kpkjm9VV51g61KEGCwHFa8BYiYwDQYJKoZIhvcNAQEBBQAEggEATERxOw4a
# vuweIsLxyPcDSLLbfEain4zC6fiTeNw7yxKtY00g73PX3dCLitNaKv9TClb3w4N1
# /oIYJ0QoXSiRdsKVXBkqQvTRFLwXe6tYE7Vq55pnHzJuUPlRSdEAS+d1GCHCxJZ0
# KMZwzvaTZIo7NmhskhQtvGjdDUAfD6OVtr/cJe/vCP+i7TxofsmAvxhFxvHqSj+A
# nFRAcnozvtdO2p9KOAjMD6cocUaFI4vvC2yzbcucu7PgQ8n+xN/OglCuZgJoTc34
# KpMU124X9yW5ohjgWqwEeI2pKWmz11AGQ/UkwdCdY+ahFJ2hV8sB2yLMvaZRc408
# 6DFlNpDti+ZRWA==
# SIG # End signature block

View file

@ -1,45 +0,0 @@
# WK Install and run MBAM
## Init ##
$wd = $(Split-Path $MyInvocation.MyCommand.Path)
pushd "$wd"
. .\init.ps1
clear
$host.UI.RawUI.WindowTitle = "WK / Chocolatey Installer"
$logpath = "$WKPath\Info\$date"
md "$logpath" 2>&1 | out-null
$log = "$logpath\Chocolatey.log"
## Install/Upgrade Chocolatey ##
$choco = "$programdata\chocolatey\choco.exe"
if (test-path "$choco") {
start "choco" -argumentlist @("upgrade", "chocolatey", "-y") -nonewwindow -wait
} else {
.\install_chocolatey.ps1
}
## Network Check ##
wk-write "* Testing Internet Connection" "$log"
if (!(test-connection "google.com" -count 2 -quiet)) {
wk-warn "System appears offline. Please connect to the internet." "$log"
pause
if (!(test-connection "google.com" -count 2 -quiet)) {
wk-error "System still appears offline; aborting script." "$log"
exit 1
}
}
## Install ##
start -wait "$programdata\chocolatey\choco.exe" -argumentlist @("upgrade", "-y", "malwarebytes") -nonewwindow
## Launch MBAM ##
if (test-path "$programfiles\Malwarebytes Anti-Malware\mbam.exe") {
start "$programfiles\Malwarebytes Anti-Malware\mbam.exe"
} elseif (test-path "$programfiles86\Malwarebytes Anti-Malware\mbam.exe") {
start "$programfiles86\Malwarebytes Anti-Malware\mbam.exe"
}
## Done ##
popd
pause "Press Enter to exit..."
exit

View file

@ -1,245 +0,0 @@
# WK-Check Disk
## Init ##
$wd = $(Split-Path $MyInvocation.MyCommand.Path)
pushd "$wd"
. .\init.ps1
clear
$host.UI.RawUI.WindowTitle = "WK / Chocolatey Installer"
$logpath = "$WKPath\Info\$date"
md "$logpath" 2>&1 | out-null
$log = "$logpath\Chocolatey.log"
# OS Check
. .\os_check.ps1
## Install/Upgrade Chocolatey ##
$choco = "$programdata\chocolatey\choco.exe"
if (test-path "$choco") {
start "choco" -argumentlist @("upgrade", "chocolatey", "-y") -nonewwindow -wait
} else {
.\install_chocolatey.ps1
}
## Sets ##
$sets = @(
@("browsers", "Browsers"),
@("compression", "Compression"),
@("cloud", "Cloud"),
@("office", "Office"),
@("audio_video", "Audio / Video"),
@("imaging", "Imaging / Photography"),
@("gaming", "Gaming"),
@("runtime", "Runtimes"),
@("security", "Security"),
@("misc", "Misc")
)
$set_audio_video = @(
@{ChocoName="itunes"; ChocoArgs=""; Default=$false; DisplayName="iTunes"}
@{ChocoName="mpv.install"; ChocoArgs="youtube-dl";
Default=$true; DisplayName="mpv"}
@{ChocoName="spotify"; ChocoArgs=""; Default=$false; DisplayName="Spotify"}
@{ChocoName="vlc"; ChocoArgs=""; Default=$true; DisplayName="VLC"}
)
$set_browsers = @(
@{ChocoName="googlechrome"; ChocoArgs=""; Default=$true; DisplayName="Google Chrome"}
@{ChocoName="firefox"; ChocoArgs=""; Default=$true; DisplayName="Mozilla Firefox"}
@{ChocoName="opera"; ChocoArgs=""; Default=$false; DisplayName="Opera"}
)
$set_cloud = @(
@{ChocoName="dropbox"; ChocoArgs=""; Default=$false; DisplayName="Dropbox"}
@{ChocoName="evernote"; ChocoArgs=""; Default=$false; DisplayName="Evernote"}
@{ChocoName="googledrive"; ChocoArgs=""; Default=$false; DisplayName="Google Drive"}
)
$set_compression = @(
@{ChocoName="7zip.install"; ChocoArgs=""; Default=$true; DisplayName="7-Zip"}
@{ChocoName="peazip.install"; ChocoArgs=""; Default=$false; DisplayName="PeaZip"}
@{ChocoName="winrar"; ChocoArgs=""; Default=$false; DisplayName="WinRAR"}
)
$set_gaming = @(
@{ChocoName="battle.net"; ChocoArgs=""; Default=$false; DisplayName="Battle.net"}
@{ChocoName="minecraft"; ChocoArgs=""; Default=$false; DisplayName="Minecraft"}
@{ChocoName="origin"; ChocoArgs=""; Default=$false; DisplayName="Origin"}
@{ChocoName="steam"; ChocoArgs=""; Default=$false; DisplayName="Steam"}
)
$set_imaging = @(
@{ChocoName="gimp"; ChocoArgs=""; Default=$false; DisplayName="GIMP"}
@{ChocoName="greenshot"; ChocoArgs=""; Default=$false; DisplayName="Greenshot"}
@{ChocoName="inkscape"; ChocoArgs=""; Default=$false; DisplayName="Inkscape"}
@{ChocoName="picasa"; ChocoArgs=""; Default=$false; DisplayName="Picasa"}
@{ChocoName="xnview"; ChocoArgs=""; Default=$false; DisplayName="XnView"}
@{ChocoName="xnviewmp.install"; ChocoArgs=""; Default=$false; DisplayName="XnViewMP"}
)
$set_misc = @(
@{ChocoName="classic-shell"; ChocoArgs=@("-installArgs", "ADDLOCAL=ClassicStartMenu");
Default=$true; DisplayName="Classic Start"}
@{CRLF=$true; ChocoName="googleearth"; ChocoArgs=""; Default=$false; DisplayName="Google Earth"}
@{CRLF=$true; ChocoName="keepass.install"; ChocoArgs=""; Default=$false; DisplayName="KeePass 2"}
@{ChocoName="lastpass"; ChocoArgs=""; Default=$false; DisplayName="LastPass"}
@{CRLF=$true; ChocoName="skype"; ChocoArgs=""; Default=$false; DisplayName="Skype"}
)
$set_office = @(
@{ChocoName="adobereader"; ChocoArgs="adobereader-update";
Default=$true; DisplayName="Adobe Reader DC"}
@{CRLF=$true; ChocoName="libreoffice"; ChocoArgs="libreoffice-help";
Default=$false; DisplayName="LibreOffice"}
@{ChocoName="openoffice"; ChocoArgs=""; Default=$false; DisplayName="OpenOffice"}
@{ChocoName="windowsessentials"; ChocoArgs=""; Default=$false; DisplayName="Windows Essentials 2012"}
@{CRLF=$true; ChocoName="thunderbird"; ChocoArgs=""; Default=$false; DisplayName="Thunderbird"}
)
$set_runtime = @(
@{ChocoName="adobeair"; ChocoArgs=""; Default=$true; DisplayName="Adobe Air"}
@{ChocoName="jre8"; ChocoArgs=""; Default=$true; DisplayName="Java Runtime Environment"}
@{ChocoName="silverlight"; ChocoArgs=""; Default=$true; DisplayName="Silverlight"}
@{ChocoName="dotnet3.5"; ChocoArgs=""; Default=$true; DisplayName=".NET 3.5"}
@{ChocoName="dotnet4.5.1"; ChocoArgs=""; Default=$true; DisplayName=".NET 4.5.1"}
)
$set_security = @(
@{ChocoName="avastfreeantivirus"; ChocoArgs=""; Default=$false; DisplayName="Avast! Anti-Virus (Free)"}
@{ChocoName="avgantivirusfree"; ChocoArgs=""; Default=$false; DisplayName="AVG Anti-Virus (Free)"}
@{ChocoName="avirafreeantivirus"; ChocoArgs=""; Default=$false; DisplayName="Avira Anti-Virus (Free)"}
@{ChocoName="kav"; ChocoArgs=""; Default=$false; DisplayName="Kaspersky Anti-Virus"}
@{ChocoName="malwarebytes"; ChocoArgs=""; Default=$false; DisplayName="Malwarebytes Anti-Malware"}
@{ChocoName="microsoftsecurityessentials"; ChocoArgs=""; Default=$true; DisplayName="Microsoft Security Essentials"}
)
# Disable entries
if ($win_version -imatch '^(Vista|7)$') {
$set_misc = $set_misc | where {$_.DisplayName -inotmatch '(Classic Start)'}
}
if ($win_version -imatch '^(8|10)$') {
$set_imaging = $set_imaging | where {$_.DisplayName -inotmatch '(XnView)'}
$set_security = $set_security | where {$_.DisplayName -inotmatch '(Microsoft Security Essentials)'}
}
## Actions ##
$actions = @(
@{Name="Select All"; Letter="A"}
@{Name="Select Defaults"; Letter="D"}
@{Name="Select None"; Letter="N"}
@{Name="Accept Selection & Proceed"; Letter="P"; CRLF=$true}
@{Name="Quit"; Letter="Q"}
)
function selection-loop {
param([string]$name, $set)
$selection = $null
$proceed = $true
do {
# Update set
foreach ($item in $set) {
# Set default selection
if (! $item.ContainsKey('Selected')) {
$item.Selected = $item.Default
}
# Update name with selection indicator
if ($item.Selected) {
$item.Name = "* {0}" -f $item.DisplayName
} else {
$item.Name = " {0}" -f $item.DisplayName
}
}
# Get user input
$selection = (menu-select $name "Please select which programs to install" $set $actions)
# Perform action
if ($selection -imatch '^[A]$') {
# Select all
foreach ($item in $set) {
$item.Selected = $true
}
} elseif ($selection -imatch '^[D]$') {
# Select defaults
foreach ($item in $set) {
$item.Selected = $item.Default
}
} elseif ($selection -imatch '^[N]$') {
# Select none
foreach ($item in $set) {
$item.Selected = $false
}
} elseif ($selection -imatch '^[Q]$') {
$proceed = $false
} elseif ($selection -imatch '^\d+$') {
# Toggle selection
$selection -= 1
$set[$selection].Selected = !($set[$selection].Selected)
}
} until ($selection -imatch '^[PQ]$')
# Done
if ($proceed) {
return $set
} else {
throw
}
}
## Network Check ##
wk-write "* Testing Internet Connection" "$log"
if (!(test-connection "google.com" -count 2 -quiet)) {
wk-warn "System appears offline. Please connect to the internet." "$log"
pause
if (!(test-connection "google.com" -count 2 -quiet)) {
wk-error "System still appears offline; aborting script." "$log"
exit 1
}
}
## Get selections ##
clear
if (ask ("Install default selections for Windows {0}?" -f $win_version)) {
wk-write "Default Install" "$log"
wk-write "" "$log"
# Select defaults
foreach ($s in $sets) {
$set = get-variable -name ("set_{0}" -f $s[0]) -valueonly
foreach ($prog in $set) {
$prog.Selected = $prog.Default
}
}
} else {
clear
wk-write "Prepping Custom Install..." "$log"
sleep -s 2
try {
foreach ($s in $sets) {
$set = get-variable -name ("set_{0}" -f $s[0]) -valueonly
$set = (selection-loop $s[1] $set.Clone())
}
} catch {
wk-error "Installation Aborted" "$log"
popd
pause "Press Enter to exit..."
exit
}
}
## Install ##
foreach ($s in $sets | sort) {
# wk-write ("Set: {0}" -f $s) "$log"
$set = get-variable -name ("set_{0}" -f $s[0]) -valueonly
foreach ($prog in $set | where {$_.Selected}) {
wk-write ("Installing: {0}" -f $prog.DisplayName) "$log"
if ($prog.ChocoArgs) {
$prog.ChocoArgs = @("upgrade", "-y", $prog.ChocoName) + $prog.ChocoArgs
start -wait "$programdata\chocolatey\choco.exe" -argumentlist $prog.ChocoArgs -nonewwindow
} else {
start -wait "$programdata\chocolatey\choco.exe" -argumentlist @("upgrade", "-y", $prog.ChocoName) -nonewwindow
}
}
}
## Done ##
popd
pause "Press Enter to exit..."

View file

@ -54,5 +54,9 @@ if ($win_info.CurrentBuild -match "9600") {
}
# Get activation status
$slmgr = (gci env:windir).value + "\System32\slmgr.vbs"
$win_act = (cscript /nologo $slmgr /xpr) -imatch '^\s'
if ($safemode) {
$win_act = " Activation status unavailable in safe mode"
} else {
$slmgr = (gci env:windir).value + "\System32\slmgr.vbs"
$win_act = (cscript /nologo $slmgr /xpr) -imatch '^\s'
}

View file

@ -21,12 +21,12 @@ if (test-path "$programfiles\Mozilla Firefox\firefox.exe") {
$ff_exe = "$programfiles\Mozilla Firefox\firefox.exe"
}
$ff_profile_list = @(gci "$ff_appdata\Profiles" 2> $null | ?{ $_.PSIsContainer })
$ff_profile_list = $ff_profile_list -inotmatch '\.wkbak$'
$ff_profile_list = $ff_profile_list -inotmatch '\.wkbak'
$chrome_appdata = "$localappdata\Google\Chrome"
$chrome_clean = $false
$chrome_exe = "$programfiles86\Google\Chrome\Application\chrome.exe"
$chrome_profile_list = @(gci "$chrome_appdata\User Data" 2> $null | ?{ $_.PSIsContainer })
$chrome_profile_list = $chrome_profile_list -inotmatch '\.wkbak$' -imatch '^(Default|Profile)'
$chrome_profile_list = $chrome_profile_list -inotmatch '\.wkbak' -imatch '^(Default|Profile)'
# OS Check
. .\os_check.ps1

View file

@ -1,118 +0,0 @@
#!/usr/bin/env python3
#
## WK Tool Updater
import os
import re
import requests
import shutil
import zipfile
from bs4 import BeautifulSoup
def download_file(path, name, url):
print("Downloading {}...".format(name))
if url is not None:
r = requests.get(url, stream=True)
# If request succeeds then download
if r.status_code == 200:
os.makedirs(path, exist_ok=True)
filename = '{}/{}'.format(path, name)
with open(filename, 'wb') as f:
shutil.copyfileobj(r.raw, f)
else:
print(" Error downloading: {}".format(name))
def find_dynamic_url(dl_page, regex):
r = requests.get(dl_page)
soup = BeautifulSoup(r.content)
url = None
for link in soup.find_all('a'):
if re.search(regex, link.get('href'), re.IGNORECASE):
url = link.get('href')
break
return url
## Chdir to parent folder of script (i.e. Kit root)
os.chdir(os.path.dirname(os.path.realpath(__file__)))
os.chdir(os.path.pardir)
os.chdir(os.path.pardir)
print('Updating tools...')
## AdwCleaner
path = '.bin'
name = 'AdwCleaner.exe'
dl_page = 'http://www.bleepingcomputer.com/download/adwcleaner/dl/125/'
regex = r'^http://download\.bleepingcomputer\.com/dl/[a-zA-Z0-9]+/[a-zA-Z0-9]+/windows/security/security-utilities/a/adwcleaner/AdwCleaner\.exe'
download_file(path, name, find_dynamic_url(dl_page, regex))
## ComboFix
path = '.bin'
name = 'ComboFix.exe'
dl_page = 'http://www.bleepingcomputer.com/download/combofix/dl/12/'
regex = r'^http://download\.bleepingcomputer\.com/dl/[a-zA-Z0-9]+/[a-zA-Z0-9]+/windows/security/anti-virus/c/combofix/ComboFix\.exe'
download_file(path, name, find_dynamic_url(dl_page, regex))
## ESET Online Scanner
path = '.bin'
name = 'ESET.exe'
url = 'http://download.eset.com/special/eos/esetsmartinstaller_enu.exe'
download_file(path, name, url)
## HitmanPro
path = '.bin/HitmanPro'
name = 'HitmanPro.exe'
url = 'http://dl.surfright.nl/HitmanPro.exe'
download_file(path, name, url)
name = 'HitmanPro64.exe'
url = 'http://dl.surfright.nl/HitmanPro_x64.exe'
download_file(path, name, url)
## Junkware Removal Tool
path = '.bin'
name = 'JRT.exe'
url = 'http://thisisudax.org/downloads/JRT.exe'
download_file(path, name, url)
## Kaspersky Virus Removal Tool
path = '.bin'
name = 'KVRT.exe'
url = 'http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe'
download_file(path, name, url)
## RKill
path = '.bin/RKill'
name = 'RKill.exe'
dl_page = 'http://www.bleepingcomputer.com/download/rkill/dl/10/'
regex = r'^http://download\.bleepingcomputer\.com/dl/[a-zA-Z0-9]+/[a-zA-Z0-9]+/windows/security/security-utilities/r/rkill/rkill\.exe'
download_file(path, name, find_dynamic_url(dl_page, regex))
## TDSSKiller
path = '.bin'
name = 'TDSSKiller.exe'
url = 'http://media.kaspersky.com/utilities/VirusUtilities/EN/tdsskiller.exe'
download_file(path, name, url)
## WinAIO Repairs
path = '.bin/Windows AIO Repair'
url = 'http://www.tweaking.com/files/setups/tweaking.com_windows_repair_aio.zip'
# Delete old version (saving settings)
print('Removing old version of WinAIO Repair...')
try:
shutil.move('.bin/Windows AIO Repair/settings-boh.ini', 'settings-boh.ini')
shutil.move('.bin/Windows AIO Repair/settings-foh.ini', 'settings-foh.ini')
shutil.rmtree('.bin/Windows AIO Repair')
except FileNotFoundError:
pass
# Download and extract new version
download_file('.', 'Windows AIO Repair.zip', url)
print('Extracting Windows AIO Repair...')
with zipfile.ZipFile('Windows AIO Repair.zip') as z:
z.extractall('.bin') # Potentially dangerous (https://docs.python.org/3.4/library/zipfile.html#zipfile.ZipFile.extractall)
shutil.move('.bin/Tweaking.com - Windows Repair', '.bin/Windows AIO Repair')
# Preserve previous settings and remove zip file
shutil.move('settings-boh.ini', '.bin/Windows AIO Repair/settings-boh.ini')
shutil.move('settings-foh.ini', '.bin/Windows AIO Repair/settings-foh.ini')
os.remove('Windows AIO Repair.zip')

View file

@ -1,71 +0,0 @@
# Wizard-Kit-Updater
## Init ##
$wd = $(Split-Path $MyInvocation.MyCommand.Path)
pushd "$wd"
. .\init.ps1
clear
$host.UI.RawUI.WindowTitle = "Wizard Kit Update Tool"
$bin = (Get-Item $wd).Parent.FullName
$wget = "$bin\wget\wget.exe"
# Functions
function download-file {
param ([String]$name, [String]$url)
write-host ("Downloading {0}" -f $name)
$args = @(
"--quiet", "showprogress",
"timestamping",
"$url"
)
start "$wget" -argumentlist $args -nonewwindow -wait
}
function find-dynamic-url {
param ([String]$source_page, [String]$regex)
$d_url = ""
# Get source page
$wget_args = @(
"--quiet",
"-O", "tmp_page",
"$url")
start "$wget" -argumentlist $wget_args -nonewwindow -wait
# Search for real url
$d_url = Get-Content "tmp_page" | Where-Object {$_ -imatch $regex}
$d_url = $d_url -ireplace '.*a href="(.*)".*', '$1'
return $d_url
}
#function gen-backup-name {
# param ([String]$name)
#
# # Add .wkbak to name
# $newname = "$name.wkbak"
#
# # Check if the new name exists
# if (test-path "$newname") {
# # Change name to avoid overwriting any backups
# $x = 2
# $newname = "$name.wkbak$x"
# while (test-path "$newname") {
# $x += 1
# $newname = "$name.wkbak$x"
# }
# }
#
# return $newname
#}
## ComboFix
$path = '.bin'
$name = 'ComboFix.exe'
$dl_page = 'http://www.bleepingcomputer.com/download/combofix/dl/12/'
$regex = '^http://download\.bleepingcomputer\.com/dl/[a-zA-Z0-9]+/[a-zA-Z0-9]+/windows/security/anti-virus/c/combofix/ComboFix\.exe'
#download_file(path, name, find_dynamic_url(dl_page, regex))
write-host (find-dynamic-url $dl_page $regex)
## Done ##
popd
pause "Press Enter to exit..."

View file

@ -1,9 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:Launch
call "%~dp0\.bin\Scripts\Launch.cmd" PSScript "%~dp0\.bin\Scripts" "activate.ps1" /admin

View file

@ -7,5 +7,5 @@ for %%f in (%*) do (
:Launch
echo Waiting for software installation to finish...
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "SerialNumberDetectionTool.exe" "" /admin /wait
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Acer Serial Number Detect Tool.exe" "" /admin /wait
start "" "http://us.acer.com/ac/en/US/content/drivers"

View file

@ -7,5 +7,5 @@ for %%f in (%*) do (
:Launch
echo Waiting for software installation to finish...
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "DellSystemDetectLauncher.exe" "" /admin /wait
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Dell System Detect.exe" "" /admin /wait
start "" "http://www.dell.com/support/home/us/en/19/Eula/scan?sourcePage=J&scanType=TMC&loadSection=N&AppName=drivers&app=drivers"

View file

@ -7,5 +7,5 @@ for %%f in (%*) do (
:Launch
echo Waiting for software installation to finish...
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "HPSupportSolutionsFramework-12.3.11.29.exe" "" /admin /wait
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "HP Support Solutions Framework.exe" "" /admin /wait
start "" "http://h22213.www2.hp.com/ediags/gmd/ProdDetect.aspx?lc=en&cc=us"

View file

@ -6,4 +6,4 @@ for %%f in (%*) do (
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Intel Driver Update Utility Installer.exe" ""
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Intel Driver Update Utility.exe" ""

View file

@ -7,5 +7,5 @@ for %%f in (%*) do (
:Launch
echo Waiting for software installation to finish...
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "LSBsetup.exe" "" /admin /wait
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Lenovo Service Bridge.exe" "" /admin /wait
start "" "http://support.lenovo.com/us/en/products?tabName=Downloads"

View file

@ -7,5 +7,5 @@ for %%f in (%*) do (
:Launch
echo Waiting for software installation to finish...
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "GetProductInfo.exe" "" /admin /wait
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Toshiba System Detect.exe" "" /admin /wait
start "" "http://support.toshiba.com/drivers"

View file

@ -6,4 +6,4 @@ for %%f in (%*) do (
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "autodetectutility.exe" ""
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "AMD Autodetect.exe" ""

View file

@ -6,4 +6,4 @@ for %%f in (%*) do (
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "raptr_installer.exe" ""
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "AMD Gaming Evolved.exe" ""

View file

@ -6,4 +6,4 @@ for %%f in (%*) do (
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "GeForce_Experience_v2.11.2.66.exe" ""
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "GeForce Experience.exe" ""

View file

@ -6,4 +6,4 @@ for %%f in (%*) do (
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "ExpressCacheSetup.exe" ""
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "SanDisk Express Cache.exe" ""

View file

@ -6,4 +6,4 @@ for %%f in (%*) do (
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Intel SSD Toolbox - v3.3.4.exe" ""
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Intel SSD Toolbox.exe" ""

View file

@ -6,4 +6,4 @@ for %%f in (%*) do (
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Samsung_Magician_Setup_v495.exe" ""
call "%~dp0\..\.bin\Scripts\Launch.cmd" Program "%~dp0\..\.bin\_Drivers" "Samsung Magician.exe" ""

Binary file not shown.

View file

@ -1,9 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" PSScript "%~dp0\..\.bin\Scripts" "install_chocolatey.ps1" /admin

View file

@ -1,9 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" chocolatey "%userprofile%" "microsoftsecurityessentials"

View file

@ -1,15 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" chocolatey "%userprofile%" "classic-shell -installArgs ADDLOCAL=ClassicStartMenu"
echo "Please wait until Classic Shell is installed before continuing."
echo.
ping 127.0.0.1 -n 3 >nul 2>&1
echo "Press any key to continue..."
pause>nul
call "%~dp0\..\.bin\Scripts\Launch.cmd" chocolatey "%userprofile%" "7zip.install googlechrome firefox mpv.install vlc adobeair adobereader adobereader-update jre8 silverlight dotnet3.5 dotnet4.5.1" /wait

View file

@ -1,9 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" chocolatey "%userprofile%" "7zip.install googlechrome firefox mpv.install vlc microsoftsecurityessentials adobeair adobereader adobereader-update jre8 silverlight dotnet3.5 dotnet4.5.1"

View file

@ -1,15 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" chocolatey "%userprofile%" "classic-shell -installArgs ADDLOCAL=ClassicStartMenu"
echo "Please wait until Classic Shell is installed before continuing."
echo.
ping 127.0.0.1 -n 3 >nul 2>&1
echo "Press any key to continue..."
pause>nul
call "%~dp0\..\.bin\Scripts\Launch.cmd" chocolatey "%userprofile%" "7zip.install googlechrome firefox mpv.install vlc adobeair adobereader adobereader-update jre8 silverlight dotnet3.5 dotnet4.5.1" /wait

View file

@ -1,9 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:LaunchProgramSelection
call "%~dp0\..\.bin\Scripts\Launch.cmd" PSScript "%~dp0\..\.bin\Scripts" "install_programs.ps1" /admin

View file

@ -1,9 +0,0 @@
@echo off
:Flags
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on)
)
:InstallMBAM
call "%~dp0\..\.bin\Scripts\Launch.cmd" PSScript "%~dp0\..\.bin\Scripts" "install_mbam.ps1" /admin

View file

@ -6,4 +6,4 @@ for %%f in (%*) do (
)
:Launch
call "%~dp0\..\.bin\Scripts\Launch.cmd" Console "%windir%\System32" "sfc.exe" "/scannow" /admin
call "%~dp0\..\.bin\Scripts\Launch.cmd" Console "%windir%\System32" "sfc.exe" "/scannow" "-new_console:c" /admin