Novo nome de arquivo pilot_install.ps1
This commit is contained in:
220
pilot_install.ps1
Normal file
220
pilot_install.ps1
Normal file
@@ -0,0 +1,220 @@
|
||||
Add-Type -AssemblyName System.Windows.Forms
|
||||
[System.Windows.Forms.Application]::EnableVisualStyles()
|
||||
|
||||
# Verify Admin Rights
|
||||
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(`
|
||||
[Security.Principal.WindowsBuiltInRole]::Administrator)) {
|
||||
[System.Windows.Forms.MessageBox]::Show("Restarting as Administrator...")
|
||||
Start-Process powershell "-ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
|
||||
exit
|
||||
}
|
||||
|
||||
function Write-Log {
|
||||
param ($text)
|
||||
$outputBox.AppendText("$text`r`n")
|
||||
$outputBox.ScrollToCaret()
|
||||
}
|
||||
|
||||
function Stop-Unity {
|
||||
Write-Log "Stopping unity.exe and cabinet.exe if running..."
|
||||
try {
|
||||
Stop-Process -Name "unity" -Force -ErrorAction Stop
|
||||
Write-Log "unity.exe process stopped."
|
||||
} catch {
|
||||
Write-Log "unity.exe was not running or could not be stopped."
|
||||
}
|
||||
|
||||
try {
|
||||
Stop-Process -Name "cabinet" -Force -ErrorAction Stop
|
||||
Write-Log "cabinet.exe process stopped."
|
||||
} catch {
|
||||
Write-Log "cabinet.exe was not running or could not be stopped."
|
||||
}
|
||||
}
|
||||
|
||||
function Update-StartBat {
|
||||
param ([string]$Mode)
|
||||
|
||||
$batPath = "C:\\pilotgames\\start.bat"
|
||||
|
||||
if ($Mode -eq "Portrait") {
|
||||
$content = @"
|
||||
cd /D C:\pilotgames\NDGDRelease
|
||||
powershell -command "Start-Process cabinet.exe -Verb runas -ArgumentList '-screen-height', '1920', '-screen-width','1080', '-screen-fullscreen', '0', '-popupwindow'"
|
||||
"@
|
||||
} else {
|
||||
$content = @"
|
||||
cd /D C:\pilotgames\BRGDRelease
|
||||
powershell -command "Start-Process cabinet.exe -Verb runas -ArgumentList '-screen-height', '1080', '-screen-width','1920', '-screen-fullscreen', '0', '-popupwindow'"
|
||||
"@
|
||||
}
|
||||
|
||||
Write-Log "Updating start.bat for $Mode..."
|
||||
Set-Content -Path $batPath -Value $content -Force -Encoding ASCII
|
||||
Write-Log "start.bat updated."
|
||||
}
|
||||
|
||||
function Install-Pilot {
|
||||
param ([string]$Mode)
|
||||
|
||||
$outputBox.Clear()
|
||||
Write-Log "Starting $Mode installation..."
|
||||
|
||||
if ($Mode -eq "Portrait") {
|
||||
$zipFile = "NDGDRelease-2025.08.07.1.zip"
|
||||
$orient = "Portrait"
|
||||
} else {
|
||||
$zipFile = "NDGDRelease-2025.08.11.1.zip"
|
||||
$orient = "Dual"
|
||||
}
|
||||
|
||||
Write-Log "`nRenaming PC using MAC address..."
|
||||
$mac = (Get-NetAdapter -InterfaceAlias "*Ethernet*" | Select-Object -First 1 -ExpandProperty MacAddress) -replace '-', ''
|
||||
if ($mac) {
|
||||
Rename-Computer -NewName "$mac" -Force
|
||||
Write-Log "Computer renamed to: $mac"
|
||||
Write-Log "Please restart the computer to apply the change.`n"
|
||||
} else {
|
||||
Write-Log "Could not retrieve MAC address.`n"
|
||||
}
|
||||
|
||||
Write-Log "Stopping PilotGameAgent service..."
|
||||
Stop-Service -Name "PilotGameAgent" -Force -ErrorAction SilentlyContinue
|
||||
|
||||
Stop-Unity
|
||||
|
||||
pushd "C:\\pilotgames"
|
||||
|
||||
Write-Log "Clearing downloads folder..."
|
||||
Remove-Item -Path "C:\\pilotgames\\downloads\\*" -Force -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
Write-Log "Removing backup folders..."
|
||||
Remove-Item -Path "C:\\pilotgames\\BRGDRelease.bak" -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Remove-Item -Path "C:\\pilotgames\\NDGDRelease.bak" -Recurse -Force -ErrorAction SilentlyContinue
|
||||
|
||||
Write-Log "Waiting 10 seconds..."
|
||||
Start-Sleep -Seconds 10
|
||||
|
||||
if (Test-Path "C:\\pilotgames\\BRGDRelease") {
|
||||
Write-Log "Backing up BRGDRelease folder..."
|
||||
Move-Item "C:\\pilotgames\\BRGDRelease" "C:\\pilotgames\\BRGDRelease.bak" -Force
|
||||
}
|
||||
if (Test-Path "C:\\pilotgames\\NDGDRelease") {
|
||||
Write-Log "Backing up NDGDRelease folder..."
|
||||
Move-Item "C:\\pilotgames\\NDGDRelease" "C:\\pilotgames\\NDGDRelease.bak" -Force
|
||||
}
|
||||
|
||||
Write-Log "Copying release zip file..."
|
||||
$zipPath = "C:\\pilotDownloads\\$orient\\$zipFile"
|
||||
Copy-Item -Path $zipPath -Destination "C:\\pilotgames\\downloads\\" -Force
|
||||
|
||||
Write-Log "Unzipping file into C:\\pilotgames..."
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipPath, "C:\\pilotgames")
|
||||
|
||||
Update-StartBat -Mode $Mode
|
||||
|
||||
Write-Log "Waiting 20 seconds..."
|
||||
Start-Sleep -Seconds 20
|
||||
|
||||
Write-Log "Starting PilotGameAgent service..."
|
||||
Set-Service -Name "PilotGameAgent" -StartupType Automatic -PassThru
|
||||
Start-Service -Name "PilotGameAgent"
|
||||
|
||||
Write-Log "$Mode installation completed successfully."
|
||||
}
|
||||
|
||||
function Set-HighPerformancePowerPlan {
|
||||
Write-Log "`nActivating High Performance power plan..."
|
||||
$highPerf = powercfg -l | Where-Object { $_ -match "High performance" -or $_ -match "Alto desempenho" }
|
||||
if ($highPerf) {
|
||||
$guid = ($highPerf -split '\s+')[3]
|
||||
powercfg -setactive $guid
|
||||
|
||||
powercfg -change -monitor-timeout-ac 0
|
||||
powercfg -change -monitor-timeout-dc 0
|
||||
powercfg -change -standby-timeout-ac 0
|
||||
powercfg -change -standby-timeout-dc 0
|
||||
powercfg -change -disk-timeout-ac 0
|
||||
powercfg -change -disk-timeout-dc 0
|
||||
|
||||
Write-Log "Power settings applied successfully.`n"
|
||||
} else {
|
||||
Write-Log "High Performance power plan not found.`n"
|
||||
}
|
||||
}
|
||||
|
||||
function Rename-PCToMac {
|
||||
Write-Log "`nRenaming PC using MAC address..."
|
||||
$mac = (Get-NetAdapter -InterfaceAlias "*Ethernet*" | Select-Object -First 1 -ExpandProperty MacAddress) -replace '-', ''
|
||||
if ($mac) {
|
||||
Rename-Computer -NewName "$mac" -Force
|
||||
Write-Log "Computer renamed to: $mac"
|
||||
Write-Log "Please restart the computer to apply the change.`n"
|
||||
} else {
|
||||
Write-Log "Could not retrieve MAC address.`n"
|
||||
}
|
||||
}
|
||||
|
||||
function Install-CommonTools {
|
||||
Write-Log "`nInstalling tools and dependencies via winget..."
|
||||
try {
|
||||
winget install -e --id Notepad++.Notepad++ --accept-source-agreements --accept-package-agreements
|
||||
winget install -e --id Microsoft.DotNet.DesktopRuntime.8 --accept-source-agreements --accept-package-agreements
|
||||
winget install -e --id Microsoft.VCRedist.2015+.x64 --accept-source-agreements --accept-package-agreements
|
||||
Write-Log "Installation completed.`n"
|
||||
} catch {
|
||||
Write-Log "Installation error: $_"
|
||||
}
|
||||
}
|
||||
|
||||
function Disable-UACAndNotifications {
|
||||
Write-Log "`nDisabling UAC and notifications..."
|
||||
try {
|
||||
Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLUA -Value 0
|
||||
Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name ConsentPromptBehaviorAdmin -Value 0
|
||||
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\Notifications" -Force | Out-Null
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\Notifications" -Name "DisableEnhancedNotifications" -Type DWord -Value 1
|
||||
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search -Name SearchBoxTaskbarMode -Value 0 -Type DWord -Force
|
||||
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
|
||||
Write-Log "UAC and notifications disabled.`n"
|
||||
} catch {
|
||||
Write-Log "Error while configuring system: $_"
|
||||
}
|
||||
}
|
||||
|
||||
# GUI
|
||||
$form = New-Object System.Windows.Forms.Form
|
||||
$form.Text = "Pilot Installer"
|
||||
$form.Size = New-Object System.Drawing.Size(600,500)
|
||||
$form.StartPosition = "CenterScreen"
|
||||
|
||||
$buttons = @(
|
||||
@{ Text = "Install Portrait"; Action = { Install-Pilot -Mode "Portrait" } },
|
||||
@{ Text = "Install Dual"; Action = { Install-Pilot -Mode "Dual" } },
|
||||
@{ Text = "Exit"; Action = { $form.Close() } }
|
||||
)
|
||||
|
||||
$x = 10
|
||||
foreach ($btn in $buttons) {
|
||||
$button = New-Object System.Windows.Forms.Button
|
||||
$button.Text = $btn.Text
|
||||
$button.Size = New-Object System.Drawing.Size(140,30)
|
||||
$button.Location = New-Object System.Drawing.Point($x,20)
|
||||
$button.Add_Click($btn.Action)
|
||||
$form.Controls.Add($button)
|
||||
$x += 150
|
||||
}
|
||||
|
||||
$outputBox = New-Object System.Windows.Forms.TextBox
|
||||
$outputBox.Multiline = $true
|
||||
$outputBox.ScrollBars = "Vertical"
|
||||
$outputBox.ReadOnly = $true
|
||||
$outputBox.Size = New-Object System.Drawing.Size(560,370)
|
||||
$outputBox.Location = New-Object System.Drawing.Point(10,70)
|
||||
$outputBox.Font = New-Object System.Drawing.Font("Consolas",10)
|
||||
$outputBox.Name = "OutputTextBox"
|
||||
|
||||
$form.Controls.Add($outputBox)
|
||||
$form.Topmost = $true
|
||||
$form.ShowDialog()
|
||||
Reference in New Issue
Block a user