Команды для консоли

Безопасные команды для проверки системы перед игрой на сервере.

Важное предупреждение!

Никогда не предоставляйте удалённый доступ к компьютеру незнакомым людям.

ОСНОВНОЙ СКРИПТ (PowerShell). Перед началом ввести cd и путь майнкрафта, затем вставить скрипт

Комплексная проверка: проверка на виртуалку, процессы javaw и explorer, состояния служб и список твинков игрока.


$ErrorActionPreference = "SilentlyContinue"

$OutputFile = Join-Path (Get-Location) "artycheck.txt"

function Safe-Value {
    param($Value)
    if ($null -eq $Value -or [string]::IsNullOrWhiteSpace("$Value")) {
        return "Не найдено"
    }
    return "$Value"
}

function Write-Line {
    param([string]$Text)
    Add-Content -Path $OutputFile -Value $Text -Encoding UTF8
}

function Get-ServiceStartModeText {
    param($Mode)

    switch ($Mode) {
        "Auto" { "Авто" }
        "Manual" { "Вручную" }
        "Disabled" { "Отключена" }
        default { $Mode }
    }
}

if (Test-Path $OutputFile) {
    Remove-Item $OutputFile -Force
}

try {
    $cs = Get-CimInstance Win32_ComputerSystem
    $bios = Get-CimInstance Win32_BIOS
    $drives = Get-CimInstance Win32_DiskDrive
    $gpus = Get-CimInstance Win32_VideoController
    $pnp = Get-CimInstance Win32_PnPEntity

    $computerModel = Safe-Value $cs.Model
    $biosSerial = Safe-Value $bios.SerialNumber

    $regInfo = @()
    $regInfo += "HKLM:\SOFTWARE"
    $regInfo += "HKCU:"
    $regInfo += "HKCR:"
    $regInfo += "HKU:"
    $regInfo += "HKCC:"

    $winVer = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -ErrorAction SilentlyContinue)
    if ($winVer) {
        $regInfo += "Windows=$($winVer.ProductName)"
        $regInfo += "Build=$($winVer.CurrentBuild)"
    }

    $diskModels = if ($drives) {
        ($drives | Select-Object -ExpandProperty Model | Sort-Object -Unique) -join "; "
    } else {
        "Не найдено"
    }

    $gpuModels = if ($gpus) {
        ($gpus | Select-Object -ExpandProperty Name | Sort-Object -Unique) -join "; "
    } else {
        "Не найдено"
    }

    $virtualKeywords = @(
        "virtualbox",
        "vmware",
        "hyper-v",
        "hyperv",
        "vbox",
        "qemu",
        "xen",
        "virtual",
        "kvm",
        "parallels",
        "virtio"
    )

    $virtualDevices = New-Object System.Collections.Generic.List[string]

    foreach ($dev in $pnp) {
        $text = "$($dev.Name) $($dev.Manufacturer)"
        foreach ($kw in $virtualKeywords) {
            if ($text -match [regex]::Escape($kw)) {
                $virtualDevices.Add($dev.Name)
                break
            }
        }
    }

    foreach ($kw in $virtualKeywords) {
        if ($computerModel -match [regex]::Escape($kw)) {
            $virtualDevices.Add("Признак ВМ: $computerModel")
        }
    }

    $virtualDevices = $virtualDevices | Sort-Object -Unique

    Write-Line "1. Модель системы: $computerModel"
    Write-Line "2. Серийный BIOS: $biosSerial"
    Write-Line "3. Реестр: $($regInfo -join ' | ')"
    Write-Line "4. Модель диска: $(Safe-Value $diskModels)"
    Write-Line "5. Видеоадаптеры: $(Safe-Value $gpuModels)"
    Write-Line "6. Виртуальные устройства: $(if($virtualDevices.Count){$virtualDevices -join '; '}else{'Не найдено'})"
}
catch {
    Write-Line "Ошибка получения системной информации: $($_.Exception.Message)"
}

Write-Line ""
Write-Line "==========================================================="
Write-Line ""
Write-Line "Информация о запуске компьютера, процессе explorer и javaw"
Write-Line ""
Write-Line "==========================================================="
Write-Line ""

try {
$os = Get-CimInstance Win32_OperatingSystem
$bootTime = $os.LastBootUpTime
$uptime = (Get-Date) - $bootTime

Write-Line "Последнее включение ПК: $($bootTime.ToString('yyyy-MM-dd HH:mm:ss'))"
Write-Line "Время работы системы: $($uptime.Days) дн. $($uptime.Hours) ч. $($uptime.Minutes) мин. $($uptime.Seconds) сек."
Write-Line ""

$explorer = Get-Process explorer -ErrorAction SilentlyContinue

if ($explorer) {
    $runTime = (Get-Date) - $explorer.StartTime

    Write-Line "explorer.exe:"
    Write-Line "  Время запуска: $($explorer.StartTime.ToString('yyyy-MM-dd HH:mm:ss'))"
    Write-Line "  Время работы: $($runTime.Days) дн. $($runTime.Hours) ч. $($runTime.Minutes) мин."
}
else {
    Write-Line "explorer.exe: Не найдено"
}

Write-Line ""

$javawList = Get-Process javaw -ErrorAction SilentlyContinue

if ($javawList) {
    Write-Line "javaw.exe:"
    foreach ($proc in $javawList) {
        try {
            $procUptime = (Get-Date) - $proc.StartTime

            Write-Line "  PID: $($proc.Id)"
            Write-Line "  Время запуска: $($proc.StartTime.ToString('yyyy-MM-dd HH:mm:ss'))"
            Write-Line "  Время работы: $($procUptime.Days) дн. $($procUptime.Hours) ч. $($procUptime.Minutes) мин."
            Write-Line ""
        }
        catch {
            Write-Line "  PID: $($proc.Id) - информация недоступна"
        }
    }
}
else {
    Write-Line "javaw.exe: Не найдено"
}

}
catch {
Write-Line "Ошибка получения информации о процессах: $($_.Exception.Message)"
}

Write-Line ""
Write-Line "============================================="
Write-Line "               СОСТОЯНИЕ СЛУЖБ"
Write-Line "============================================="
Write-Line ""

Write-Line ("{0,-10} {1,-12} {2,-12} {3}" -f "Служба","Состояние","Тип запуска","Время запуска")
Write-Line ("{0,-10} {1,-12} {2,-12} {3}" -f "------","---------","-----------","-------------")

$servicesToCheck = @(
    "PcaSvc",
    "DPS",
    "SysMain",
    "EventLog"
)

foreach ($svcName in $servicesToCheck) {
    try {
        $svc = Get-CimInstance Win32_Service -Filter "Name='$svcName'"

        $startTime = "Не найдено"

        if ($svc.State -eq "Running") {
            try {
                $proc = Get-Process -Id $svc.ProcessId -ErrorAction SilentlyContinue
                if ($proc) {
                    $startTime = $proc.StartTime.ToString("yyyy-MM-dd HH:mm:ss")
                }
            }
            catch { }
        }

        Write-Line (
            "{0,-10} {1,-12} {2,-12} {3}" -f
            $svc.Name,
            $svc.State,
            (Get-ServiceStartModeText $svc.StartMode),
            $startTime
        )
    }
    catch {
        Write-Line (
            "{0,-10} {1,-12} {2,-12} {3}" -f
            $svcName,
            "Не найдено",
            "Не найдено",
            "Не найдено"
        )
    }
}

Write-Line ""
Write-Line "============================================="
Write-Line " СПИСОК ТВИНКОВ ИГРОКА"
Write-Line "============================================="
Write-Line ""

try {
$nicknames = New-Object System.Collections.Generic.HashSet[string]

$accountFiles = Get-ChildItem -Path (Get-Location) -Recurse -File -ErrorAction SilentlyContinue |
    Where-Object {
        $_.Name -match 'launcher_accounts\.json|launcher_profiles\.json|accounts\.json|usercache\.json'
    }

$patterns = @(
    '"displayName"\s*:\s*"([^"]+)"',
    '"username"\s*:\s*"([^"]+)"',
    '"playerName"\s*:\s*"([^"]+)"',
    '"selectedUser"\s*:\s*"([^"]+)"',
    '"name"\s*:\s*"([A-Za-z0-9_]{3,16})"'
)

$blacklist = @(
    "name","username","displayName","profiles","profile",
    "settings","client","server","version","enabled",
    "modules","libraries","javaArgs","arguments",
    "objects","downloads","features","logging",
    "textures","values","rules","entries"
)

foreach ($file in $accountFiles) {
    try {
        $content = Get-Content $file.FullName -Raw -ErrorAction SilentlyContinue

        if ([string]::IsNullOrWhiteSpace($content)) {
            continue
        }

        foreach ($pattern in $patterns) {
            [regex]::Matches($content, $pattern, "IgnoreCase") | ForEach-Object {

                $name = $_.Groups[1].Value.Trim()

                if (
                    $name -match '^[A-Za-z0-9_]{3,16}$' -and
                    $blacklist -notcontains $name
                ) {
                    [void]$nicknames.Add($name)
                }
            }
        }
    }
    catch { }
}

if ($nicknames.Count -gt 0) {
    $nicknames |
        Sort-Object |
        ForEach-Object {
            Write-Line $_
        }
}
else {
    Write-Line "Не найдено"
}

}
catch {
Write-Line "Не найдено"
}

Write-Line ""
Write-Line "============================================="
Write-Line "script by unheardvoice"
Write-Line "============================================="
        

Поиск Everything

Поиск запрещенных модификаций, читов, конфигов


luminar|elytraswap|armorhotswap|"afk-fish mod"|invmove|goprone|crystaloptimizer|"stepup mod"|autolook|"spawner location"|diamondsim|"player x-ray"|inventoryprofilesnext|zergatul.cheatutils|autoattack|triggerbot|hitbox|noclipflymod|aimassistance|"chest locator"|freecam|"slippery mod"|"x-ray mod"|"launcher feather"|autototem|baritone|celestial|meteor|liquidbounce|wurst|aristois|impact|rusherhack|thunderhack|doomsday|vape|fdpclient|bleachhack|kami|inertia|mathax|meteor-client|wurst-client|future-client|cheatutils|baritone-api|xray|killaura|crystalaura|aimassist|haruka|nurik|nursultan|newlauncher|artygrief|cortex|ket4upvisuals|eclipsevisuals|"neverclose visuals"|"feather launcher"|"badlion launcher"|sunshinevisuals
        

Поиск файлов (Everything)

Поиск файлов читов с расширениями .exe, .jar, .zip, .rar по известным названиям.

ext:.exe;.jar;.zip;.rar regex:(impact|wurst|bleach|aristois|sigma|liquidbounce|meteor|inertia|future|novoline|exhibition|phobos|kami|salhack|gamesense|rusherhack|wolfram|huzuni|nodus|weepcraft|jigsaw|flux|ghost|astolfo|rise|moon|drip|azura|boze|konas|seppuku|zeroday|wintware|prestige|skilled|tenacity|fdp|catlavan|nightx|nightmare) !path:C:\Windows !path:C:\Program Files

Поиск конфигураций (Everything)

Поиск конфигурационных файлов читов за последние 14 дней.

ext:.txt;.json;.toml;.cfg;.yml;.yaml;.properties;.ini dm:last14days regex:(shellbag|baritone|impact|wurst|bleach|aristois|sigma|liquidbounce|meteor|inertia|future|novoline|exhibition|phobos|kami|salhack|gamesense|rusherhack|wolfram|huzuni|nodus|weepcraft|jigsaw|flux|ghost|astolfo|rise|moon|drip|azura|boze|konas|seppuku|zeroday|wintware|prestige|skilled|tenacity|fdp|catlavan|nightx) !path:C:\Windows !path:C:\Program Files

Поиск Everything 1.5 (1/5)

Поиск doomsday с помощью Everything 1.5


ext:jar size:21kb-10mb content:"l.png" content:"mcmod.info"
        

Поиск Everything 1.5 (2/5)

Поиск doomsday с помощью Everything 1.5


size:21kb-1mb content:"l.png" content:"mcmod.info"
        

Поиск Everything 1.5 (3/5)

Поиск doomsday с помощью Everything 1.5


size:1mb-3mb content:"l.png" content:"mcmod.info"
        

Поиск Everything 1.5 (4/5)

Поиск doomsday с помощью Everything 1.5


size:3mb-10mb content:"l.png" content:"mcmod.info"
        

Поиск Everything 1.5 (5/5)

Поиск doomsday с помощью Everything 1.5


size:16kb-10mb utf8content:net/java/s.class | utf8content:net/java/f.class | utf8content:net/java/g.class | utf8content:net/java/h.class | utf8content:net/java/i.class | utf8content:net/java/k.class | utf8content:net/java/i.class | utf8content:net/java/m.class | utf8content:net/java/p.class | utf8content:net/java/r.class | utf8content:net/java/t.class | utf8content:net/java/x.class | utf8content:net/java/y.class | utf8content:net/java/a | utf8content:net/java/b | utf8content:net/java/c | utf8content:net/java/d | utf8content:net/java/e 
        
Скопировано!