# ================================================ # Windows & Office Activator GUI v.20260407 # by bolgov0zero — суперкомпактная версия # ================================================ Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Drawing [System.Windows.Forms.Application]::EnableVisualStyles() # ====================== Основная форма ====================== $form = New-Object System.Windows.Forms.Form $form.Text = "Windows & Office Activator" $form.Size = New-Object System.Drawing.Size(348, 540) $form.StartPosition = "CenterScreen" $form.FormBorderStyle = "FixedSingle" $form.MaximizeBox = $false $form.BackColor = [System.Drawing.Color]::FromArgb(28, 28, 28) $form.MinimumSize = $form.Size # Заголовок и автор в одной строке $lblTitle = New-Object System.Windows.Forms.Label $lblTitle.Text = "Windows && Office Activator" $lblTitle.Font = New-Object System.Drawing.Font("Segoe UI", 12, [System.Drawing.FontStyle]::Bold) $lblTitle.ForeColor = [System.Drawing.Color]::Gold $lblTitle.AutoSize = $true $lblTitle.Location = New-Object System.Drawing.Point(12, 10) $form.Controls.Add($lblTitle) $lblAuthor = New-Object System.Windows.Forms.Label $lblAuthor.Text = "by bolgov0zero • v.20260407" $lblAuthor.Font = New-Object System.Drawing.Font("Segoe UI", 7.5, [System.Drawing.FontStyle]::Bold) $lblAuthor.ForeColor = [System.Drawing.Color]::White $lblAuthor.AutoSize = $true $lblAuthor.Location = New-Object System.Drawing.Point(12, 35) $form.Controls.Add($lblAuthor) # ====================== Информация о системе (компактная) ====================== $groupInfo = New-Object System.Windows.Forms.GroupBox $groupInfo.Text = "Система" $groupInfo.ForeColor = [System.Drawing.Color]::White $groupInfo.Location = New-Object System.Drawing.Point(12, 55) $groupInfo.Size = New-Object System.Drawing.Size(308, 80) $groupInfo.Font = New-Object System.Drawing.Font("Segoe UI", 8, [System.Drawing.FontStyle]::Bold) $form.Controls.Add($groupInfo) $lblOS = New-Object System.Windows.Forms.Label $lblOS.Location = New-Object System.Drawing.Point(10, 20) $lblOS.Size = New-Object System.Drawing.Size(293, 16) $lblOS.ForeColor = [System.Drawing.Color]::Cyan $groupInfo.Controls.Add($lblOS) $lblOffice = New-Object System.Windows.Forms.Label $lblOffice.Location = New-Object System.Drawing.Point(10, 38) $lblOffice.Size = New-Object System.Drawing.Size(293, 16) $lblOffice.ForeColor = [System.Drawing.Color]::Yellow $groupInfo.Controls.Add($lblOffice) $lblNetFx = New-Object System.Windows.Forms.Label $lblNetFx.Location = New-Object System.Drawing.Point(10, 56) $lblNetFx.Size = New-Object System.Drawing.Size(293, 16) $lblNetFx.ForeColor = [System.Drawing.Color]::White $groupInfo.Controls.Add($lblNetFx) # ====================== Активация Windows ====================== $groupWin = New-Object System.Windows.Forms.GroupBox $groupWin.Text = "Активация Windows" $groupWin.ForeColor = [System.Drawing.Color]::LimeGreen $groupWin.Location = New-Object System.Drawing.Point(12, 140) $groupWin.Size = New-Object System.Drawing.Size(150, 145) $groupWin.Font = New-Object System.Drawing.Font("Segoe UI", 8, [System.Drawing.FontStyle]::Bold) $form.Controls.Add($groupWin) $btnWin2022 = New-Object System.Windows.Forms.Button $btnWin2022.Text = "Server 2022" $btnWin2022.Location = New-Object System.Drawing.Point(8, 20) $btnWin2022.Size = New-Object System.Drawing.Size(135, 25) $btnWin2022.BackColor = [System.Drawing.Color]::FromArgb(0, 100, 0) $btnWin2022.ForeColor = "White" $btnWin2022.FlatStyle = "Flat" $btnWin2022.Font = New-Object System.Drawing.Font("Segoe UI", 8) $groupWin.Controls.Add($btnWin2022) $btnWin2019 = New-Object System.Windows.Forms.Button $btnWin2019.Text = "Server 2019" $btnWin2019.Location = New-Object System.Drawing.Point(8, 48) $btnWin2019.Size = New-Object System.Drawing.Size(135, 25) $btnWin2019.BackColor = [System.Drawing.Color]::FromArgb(0, 100, 0) $btnWin2019.ForeColor = "White" $btnWin2019.FlatStyle = "Flat" $btnWin2019.Font = New-Object System.Drawing.Font("Segoe UI", 8) $groupWin.Controls.Add($btnWin2019) $btnWinPro = New-Object System.Windows.Forms.Button $btnWinPro.Text = "Windows 10/11 Pro" $btnWinPro.Location = New-Object System.Drawing.Point(8, 76) $btnWinPro.Size = New-Object System.Drawing.Size(135, 25) $btnWinPro.BackColor = [System.Drawing.Color]::FromArgb(0, 100, 0) $btnWinPro.ForeColor = "White" $btnWinPro.FlatStyle = "Flat" $btnWinPro.Font = New-Object System.Drawing.Font("Segoe UI", 8) $groupWin.Controls.Add($btnWinPro) $btnWin7 = New-Object System.Windows.Forms.Button $btnWin7.Text = "Windows 7/8.1 Pro" $btnWin7.Location = New-Object System.Drawing.Point(8, 104) $btnWin7.Size = New-Object System.Drawing.Size(135, 25) $btnWin7.BackColor = [System.Drawing.Color]::FromArgb(0, 100, 0) $btnWin7.ForeColor = "White" $btnWin7.FlatStyle = "Flat" $btnWin7.Font = New-Object System.Drawing.Font("Segoe UI", 8) $groupWin.Controls.Add($btnWin7) # ====================== Активация Office ====================== $groupOfficeAct = New-Object System.Windows.Forms.GroupBox $groupOfficeAct.Text = "Активация Office" $groupOfficeAct.ForeColor = [System.Drawing.Color]::Yellow $groupOfficeAct.Location = New-Object System.Drawing.Point(170, 140) $groupOfficeAct.Size = New-Object System.Drawing.Size(150, 55) $groupOfficeAct.Font = New-Object System.Drawing.Font("Segoe UI", 8, [System.Drawing.FontStyle]::Bold) $form.Controls.Add($groupOfficeAct) $btnOfficeActivate = New-Object System.Windows.Forms.Button $btnOfficeActivate.Text = "Активировать" $btnOfficeActivate.Location = New-Object System.Drawing.Point(8, 20) $btnOfficeActivate.Size = New-Object System.Drawing.Size(135, 25) $btnOfficeActivate.BackColor = [System.Drawing.Color]::FromArgb(180, 140, 0) $btnOfficeActivate.ForeColor = "White" $btnOfficeActivate.Font = New-Object System.Drawing.Font("Segoe UI", 8) $btnOfficeActivate.FlatStyle = "Flat" $groupOfficeAct.Controls.Add($btnOfficeActivate) # ====================== Установка Office ====================== $groupOfficeInst = New-Object System.Windows.Forms.GroupBox $groupOfficeInst.Text = "Установка Office" $groupOfficeInst.ForeColor = [System.Drawing.Color]::Cyan $groupOfficeInst.Location = New-Object System.Drawing.Point(170, 200) $groupOfficeInst.Size = New-Object System.Drawing.Size(150, 85) $groupOfficeInst.Font = New-Object System.Drawing.Font("Segoe UI", 8, [System.Drawing.FontStyle]::Bold) $form.Controls.Add($groupOfficeInst) $btnInst2024 = New-Object System.Windows.Forms.Button $btnInst2024.Text = "Office 2024" $btnInst2024.Location = New-Object System.Drawing.Point(8, 20) $btnInst2024.Size = New-Object System.Drawing.Size(135, 25) $btnInst2024.BackColor = [System.Drawing.Color]::FromArgb(0, 120, 120) $btnInst2024.ForeColor = "White" $btnInst2024.FlatStyle = "Flat" $btnInst2024.Font = New-Object System.Drawing.Font("Segoe UI", 8) $groupOfficeInst.Controls.Add($btnInst2024) $btnInst2021 = New-Object System.Windows.Forms.Button $btnInst2021.Text = "Office 2021" $btnInst2021.Location = New-Object System.Drawing.Point(8, 50) $btnInst2021.Size = New-Object System.Drawing.Size(135, 25) $btnInst2021.BackColor = [System.Drawing.Color]::FromArgb(0, 120, 120) $btnInst2021.ForeColor = "White" $btnInst2021.FlatStyle = "Flat" $btnInst2021.Font = New-Object System.Drawing.Font("Segoe UI", 8) $groupOfficeInst.Controls.Add($btnInst2021) # ====================== Утилиты ====================== $groupUtils = New-Object System.Windows.Forms.GroupBox $groupUtils.Text = "Компоненты" $groupUtils.ForeColor = [System.Drawing.Color]::White $groupUtils.Location = New-Object System.Drawing.Point(12, 290) $groupUtils.Size = New-Object System.Drawing.Size(308, 55) $groupUtils.Font = New-Object System.Drawing.Font("Segoe UI", 8, [System.Drawing.FontStyle]::Bold) $form.Controls.Add($groupUtils) $btnNetFx = New-Object System.Windows.Forms.Button $btnNetFx.Text = ".NET Framework 3.5" $btnNetFx.Location = New-Object System.Drawing.Point(8, 20) $btnNetFx.Size = New-Object System.Drawing.Size(293, 25) $btnNetFx.BackColor = [System.Drawing.Color]::FromArgb(80, 80, 80) $btnNetFx.ForeColor = "White" $btnNetFx.FlatStyle = "Flat" $btnNetFx.Font = New-Object System.Drawing.Font("Segoe UI", 8) $groupUtils.Controls.Add($btnNetFx) # ====================== Область лога ====================== $groupLog = New-Object System.Windows.Forms.GroupBox $groupLog.Text = "Лог" $groupLog.ForeColor = [System.Drawing.Color]::White $groupLog.Location = New-Object System.Drawing.Point(12, 350) $groupLog.Size = New-Object System.Drawing.Size(308, 105) $groupLog.Font = New-Object System.Drawing.Font("Segoe UI", 8, [System.Drawing.FontStyle]::Bold) $form.Controls.Add($groupLog) $rtbLog = New-Object System.Windows.Forms.RichTextBox $rtbLog.Location = New-Object System.Drawing.Point(8, 18) $rtbLog.Size = New-Object System.Drawing.Size(293, 80) $rtbLog.ReadOnly = $true $rtbLog.BackColor = [System.Drawing.Color]::Black $rtbLog.ForeColor = [System.Drawing.Color]::Lime $rtbLog.Font = New-Object System.Drawing.Font("Consolas", 7.5) $groupLog.Controls.Add($rtbLog) # ====================== Кнопка Выход ====================== $btnExit = New-Object System.Windows.Forms.Button $btnExit.Text = "Выход" $btnExit.Location = New-Object System.Drawing.Point(230, 460) $btnExit.Size = New-Object System.Drawing.Size(90, 25) $btnExit.BackColor = [System.Drawing.Color]::FromArgb(140, 0, 0) $btnExit.ForeColor = "White" $btnExit.Font = New-Object System.Drawing.Font("Segoe UI", 8, [System.Drawing.FontStyle]::Bold) $btnExit.FlatStyle = "Flat" $form.Controls.Add($btnExit) # ====================== Функции ====================== function Write-Log($message, $color = "Lime") { $rtbLog.SelectionColor = [System.Drawing.Color]::$color $rtbLog.AppendText("$message`n") $rtbLog.ScrollToCaret() [System.Windows.Forms.Application]::DoEvents() } function Find-OfficePath { $possiblePaths = @( "C:\Program Files\Microsoft Office\root\Office16", "C:\Program Files\Microsoft Office\Office16", "${env:ProgramFiles(x86)}\Microsoft Office\root\Office16", "${env:ProgramFiles(x86)}\Microsoft Office\Office16" ) foreach ($path in $possiblePaths) { if (Test-Path "$path\ospp.vbs") { return $path } } return $null } function Get-OfficeVersion { $officePath = Find-OfficePath if (-not $officePath) { return $null } try { Push-Location $officePath $licenseInfo = cscript ospp.vbs /dstatus 2>&1 | Out-String # Ищем год в названии лицензии if ($licenseInfo -match "20(16|19|21|24)") { $year = $matches[1] if ($year -eq "16") { return "2016" } if ($year -eq "19") { return "2019" } if ($year -eq "21") { return "2021" } if ($year -eq "24") { return "2024" } } Pop-Location return "2019" } catch { return "2019" } } function Update-Info { try { $os = Get-WmiObject -Class Win32_OperatingSystem $osName = $os.Caption if ($osName.Length -gt 50) { $osName = $osName.Substring(0, 47) + "..." } $lblOS.Text = "ОС: $osName" } catch { $lblOS.Text = "ОС: не удалось определить" } $officePath = Find-OfficePath if ($officePath) { $version = Get-OfficeVersion $lblOffice.Text = "Office: установлен (версия $version)" $lblOffice.ForeColor = [System.Drawing.Color]::Yellow } else { $lblOffice.Text = "Office: не установлен" $lblOffice.ForeColor = [System.Drawing.Color]::Orange } try { $net = Get-WindowsOptionalFeature -Online -FeatureName "NetFx3" -ErrorAction SilentlyContinue if ($net.State -eq "Enabled") { $lblNetFx.Text = ".NET 3.5: установлен" $lblNetFx.ForeColor = [System.Drawing.Color]::Lime } else { $lblNetFx.Text = ".NET 3.5: не установлен" $lblNetFx.ForeColor = [System.Drawing.Color]::Red } } catch { $lblNetFx.Text = ".NET 3.5: статус неизвестен" $lblNetFx.ForeColor = [System.Drawing.Color]::Orange } } function Activate-Office { $rtbLog.Clear() Write-Log "[ Активация Office ]" "Yellow" Write-Log ">> Поиск Office..." "Cyan" $officePath = Find-OfficePath if (-not $officePath) { Write-Log ">> ОШИБКА: Office не найден!" "Red" return } Write-Log ">> Office найден" "Green" $version = Get-OfficeVersion Write-Log ">> Определена версия: Office $version" "Cyan" $keys = @{ "2024" = "V28N4-JG22K-W66P8-VTMGK-H6HGR" "2021" = "KDX7X-BNVR8-TXXGX-4Q7Y8-78VT3" "2019" = "6NWWJ-YQWMR-QKGCB-6TMB3-9D9HK" "2016" = "JNRGM-WHDWX-FJJG3-K47QV-DRTFM" } $productKey = $keys[$version] try { Push-Location $officePath Write-Log ">> Установка KMS сервера..." "Cyan" $null = cscript ospp.vbs /sethst:ms.idisk.cloud 2>&1 Write-Log " [OK] KMS сервер установлен" "Green" Start-Sleep 1 Write-Log ">> Установка ключа..." "Cyan" $result = cscript ospp.vbs /inpkey:$productKey 2>&1 | Out-String if ($result -match "Product key applied successfully") { Write-Log " [OK] Ключ установлен" "Green" } else { Write-Log " [i] Ключ уже существует" "Yellow" } Start-Sleep 1 Write-Log ">> Активация..." "Cyan" $result = cscript ospp.vbs /act 2>&1 | Out-String $successCount = ([regex]::Matches($result, "Product activation successful")).Count if ($successCount -gt 0) { Write-Log " [OK] Активация выполнена! ($successCount продукт(ов))" "Lime" } elseif ($result -match "already activated") { Write-Log " [i] Продукт уже активирован" "Yellow" } else { Write-Log " [?] Статус неизвестен" "Yellow" } Pop-Location } catch { Write-Log ">> ОШИБКА: $($_.Exception.Message)" "Red" Pop-Location -ErrorAction SilentlyContinue } Write-Log "[ Активация завершена ]" "Yellow" Update-Info } # ====================== Обработчики кнопок ====================== $btnWin2022.Add_Click({ $rtbLog.Clear() Write-Log "[ Активация Windows Server 2022 ]" "Yellow" Write-Log ">> Установка ключа..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -upk | Out-Null cscript //nologo "$env:windir\system32\slmgr.vbs" -ipk VDYBN-27WPP-V4HQT-9VMD4-VMK7H | Out-Null Write-Log ">> Установка KMS сервера..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -skms ms.idisk.cloud | Out-Null Write-Log ">> Активация..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -ato | Out-Null Write-Log "[OK] Windows Server 2022 активирован" "Lime" Update-Info }) $btnWin2019.Add_Click({ $rtbLog.Clear() Write-Log "[ Активация Windows Server 2019 ]" "Yellow" Write-Log ">> Установка ключа..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -upk | Out-Null cscript //nologo "$env:windir\system32\slmgr.vbs" -ipk N69G4-B89J2-4G8F4-WWYCC-J464C | Out-Null Write-Log ">> Установка KMS сервера..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -skms ms.idisk.cloud | Out-Null Write-Log ">> Активация..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -ato | Out-Null Write-Log "[OK] Windows Server 2019 активирован" "Lime" Update-Info }) $btnWinPro.Add_Click({ $rtbLog.Clear() Write-Log "[ Активация Windows 10/11 Pro ]" "Yellow" Write-Log ">> Установка ключа..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -upk | Out-Null cscript //nologo "$env:windir\system32\slmgr.vbs" -ipk W269N-WFGWX-YVC9B-4J6C9-T83GX | Out-Null Write-Log ">> Установка KMS сервера..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -skms ms.idisk.cloud | Out-Null Write-Log ">> Активация..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -ato | Out-Null Write-Log "[OK] Windows 10/11 Pro активирован" "Lime" Update-Info }) $btnWin7.Add_Click({ $rtbLog.Clear() Write-Log "[ Активация Windows 7/8.1 Pro ]" "Yellow" Write-Log ">> Установка ключа..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -upk | Out-Null cscript //nologo "$env:windir\system32\slmgr.vbs" -ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 | Out-Null Write-Log ">> Установка KMS сервера..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -skms ms.idisk.cloud | Out-Null Write-Log ">> Активация..." "Cyan" cscript //nologo "$env:windir\system32\slmgr.vbs" -ato | Out-Null Write-Log "[OK] Windows 7/8.1 Pro активирован" "Lime" Update-Info }) $btnOfficeActivate.Add_Click({ Activate-Office }) $btnInst2024.Add_Click({ $rtbLog.Clear() Write-Log "[ Установка Office 2024 ]" "Yellow" reg add "HKCU\Software\Microsoft\Office\16.0\Common\ExperimentConfigs\Ecs" /v "CountryCode" /t REG_SZ /d "std::wstring|US" /f | Out-Null $s = "$env:TEMP\setup.exe"; $c = "$env:TEMP\mso_2024std.xml" Write-Log ">> Скачивание..." "Cyan" Invoke-WebRequest "https://act.idisk.cloud/odt/setup.exe" -OutFile $s -UseBasicParsing Invoke-WebRequest "https://act.idisk.cloud/odt/mso_2024std.xml" -OutFile $c -UseBasicParsing Write-Log ">> Установка (может занять время)..." "Cyan" Start-Process $s "/configure `"$c`"" -Wait -WindowStyle Minimized Remove-Item $s,$c -Force -ErrorAction SilentlyContinue Write-Log "[OK] Office 2024 установлен" "Lime" Update-Info }) $btnInst2021.Add_Click({ $rtbLog.Clear() Write-Log "[ Установка Office 2021 ]" "Yellow" reg add "HKCU\Software\Microsoft\Office\16.0\Common\ExperimentConfigs\Ecs" /v "CountryCode" /t REG_SZ /d "std::wstring|US" /f | Out-Null $s = "$env:TEMP\setup.exe"; $c = "$env:TEMP\mso_2021std.xml" Write-Log ">> Скачивание..." "Cyan" Invoke-WebRequest "https://act.idisk.cloud/odt/setup.exe" -OutFile $s -UseBasicParsing Invoke-WebRequest "https://act.idisk.cloud/odt/mso_2021std.xml" -OutFile $c -UseBasicParsing Write-Log ">> Установка (может занять время)..." "Cyan" Start-Process $s "/configure `"$c`"" -Wait -WindowStyle Minimized Remove-Item $s,$c -Force -ErrorAction SilentlyContinue Write-Log "[OK] Office 2021 установлен" "Lime" Update-Info }) $btnNetFx.Add_Click({ $rtbLog.Clear() Write-Log "[ Установка .NET 3.5 ]" "Yellow" $tempFolder = "C:\Temp\NetFx3" New-Item -ItemType Directory -Path $tempFolder -Force | Out-Null $ProgressPreference = 'SilentlyContinue' Write-Log ">> Скачивание файлов..." "Cyan" # Скачиваем с оригинальными именами Invoke-WebRequest "https://act.idisk.cloud/Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~~.cab" -OutFile "$tempFolder\Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~~.cab" -UseBasicParsing Invoke-WebRequest "https://act.idisk.cloud/Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~ru-RU~.cab" -OutFile "$tempFolder\Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~ru-RU~.cab" -UseBasicParsing Invoke-WebRequest "https://act.idisk.cloud/Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~~.cab" -OutFile "$tempFolder\Microsoft-Windows-NetFx3-OnDemand-Package~31bf3856ad364e35~amd64~~.cab" -UseBasicParsing Write-Log ">> Установка компонента..." "Cyan" Add-WindowsCapability -Online -Name NetFx3~~~~ -Source $tempFolder | Out-Null Write-Log ">> Очистка временных файлов..." "Cyan" Remove-Item $tempFolder -Recurse -Force -ErrorAction SilentlyContinue Write-Log "[OK] .NET 3.5 установлен" "Lime" Update-Info }) $btnExit.Add_Click({ $form.Close() }) # ====================== Запуск ====================== Update-Info [void]$form.ShowDialog()