เบชเบฐเบ„เบฃเบดเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบŠเบตเบšเป€เบงเบต Minecraft เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก

เบชเบฐเบ„เบฃเบดเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบŠเบตเบšเป€เบงเบต Minecraft เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก

เบœเบนเป‰เบ‚เบฝเบ™เบฎเบฑเบเป€เบเบกเบซเบผเบฒเบ, เปเบฅเบฐเบฅเบฒเบงเป€เบญเบ‡เป€เบ›เบฑเบ™เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ "เบชเปเบฒเบฅเบฑเบšเบซเบกเบนเปˆเป€เบžเบทเปˆเบญเบ™เบขเปˆเบฒเบ‡เบ”เบฝเบง." เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบดเปƒเบ™เบšเบฑเบ™เบ”เบฒเบ™เบฑเบเบชเบกเบฑเบเป€เบฅเปˆเบ™, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป„เบ”เป‰เบ–เบทเบเบ”เบฑเบ”เปเบ›เบ‡, เปเบฅเบฐเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเปเบฅเบฐ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡ Powershell เบฎเบนเป‰เบ”เบตเบเบงเปˆเบฒเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบฎเป‰เบฒเบ™เบขเบนเปˆเบ–เบฐเบซเบ™เบปเบ™เบ‚เบญเบ‡เบฅเบฒเบง, เบฅเบฒเบงเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบฎเบฑเบ” "Script เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เบ•เบปเบง Minecraft 2020" script เบ”เบฝเบงเบเบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเปเบกเปˆเปเบšเบšเปƒเบ™ เบ•เบฐเบซเบผเบฒเบ” Ruvds. เปเบ•เปˆเปเบซเบผเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเปเบฅเป‰เบง. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, เป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™

เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ

เบกเบทเป‰เบซเบ™เบถเปˆเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ mods เบชเบญเบ‡เบชเบฒเบกเบญเบฑเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบ›เบฒเบเบปเบ”เบ‚เบทเป‰เบ™, crashing เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบชเบปเบ‡เบ„เบฒเบก. เป€เบŠเบตเบšเป€เบงเบตเบšเปเปˆเป„เบ”เป‰เบ‚เบฝเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™ latest.log เบซเบผเบทเปƒเบ™ debug, เปเบฅเบฐ console, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบตเบ„เบงเบ™เบˆเบฐเบ‚เบฝเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ™เบตเป‰เปเบฅเบฐเบขเบธเบ”, เบ›เบดเบ”.

เบ–เป‰เบฒเบฅเบฒเบงเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™, เบฅเบฒเบงเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบกเบต Powershell เบเบฑเบš cmdlet Tee-เบงเบฑเบ”เบ–เบธ, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เป€เบงเบฅเบฒเบงเบฑเบ”เบ–เบธเปเบฅเบฐเบชเบปเปˆเบ‡เบกเบฑเบ™เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเปเบฅเบฐ console เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™.

.handler.ps1 | Tee-Object .StandardOutput.txt -Append

เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰, Powershell เบˆเบฐเป€เบฅเบทเบญเบเป€เบญเบปเบฒ StandardOutput เปเบฅเบฐเบ‚เบฝเบ™เบกเบฑเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒ. เบขเปˆเบฒเบžเบฐเบเบฒเบเบฒเบกเปƒเบŠเป‰ เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเบเบฑเบšเบ„เบทเบ™ System.ComponentModel.Component เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™ StandardOutput, เปเบฅเบฐ -RedirectStandardOutput เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ console เป„เบ”เป‰, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™.

เป€เบ›เบตเบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ mods เบ„เบนเปˆเบ”เบฝเบงเบเบฑเบ™, เบœเบนเป‰เบ‚เบฝเบ™เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฑเบ‡เบšเปเปˆเบกเบต RAM เบžเบฝเบ‡เบžเป. เปเบฅเบฐเบ™เบตเป‰เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เบžเบงเบเบกเบฑเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เปƒเบ™ start.bat, เบ—เบตเปˆเบ—เบธเบเบ„เบปเบ™เปƒเบŠเป‰, เบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰ script เบ™เบตเป‰.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ Tee-Object เบžเบฝเบ‡เปเบ•เปˆเบญเปˆเบฒเบ™ StandardOutput เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "เบ„เบทเบเบฑเบ™เบเบฑเบšเบ™เบตเป‰", เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบชเบฐเบ„เบดเบšเบญเบทเปˆเบ™. script เบ™เบตเป‰เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบงเป‚เบ”เบ Minecraft เป€เบญเบ‡. เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบˆเบฐ indulge เบเบฑเบš laziness เบชเบธเบ”เบ—เป‰เบฒเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, script เบ•เป‰เบญเบ‡เป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเปƒเบ™เบ—เบฑเบ™เบ—เบต. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบŠเบญเบเบซเบฒเบชเบฐเบšเบฑเบšเบซเบฅเป‰เบฒเบชเบธเบ” forge.

$forge = ((Get-ChildItem | Where-Object Name -Like "forge*").Name | Sort-Object -Descending) | Select-Object -last 1

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบงเบฑเบ”เบ–เบธ, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบญเบปเบฒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”, เบšเปเปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเบงเบฒเบ‡เบžเบงเบเบกเบฑเบ™เปƒเบชเปˆเบšเปˆเบญเบ™เบ™เบฑเป‰เบ™เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”. เบ„เบงเบฒเบกเบ‚เบตเป‰เบ„เป‰เบฒเบ™เบ—เบตเปˆเบชเบธเบ”.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบกเบญเบšเบซเบกเบฒเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปƒเบซเป‰เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เป€เบญเบปเบฒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปเบฅเบฐเบ‚เบฝเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ•เบฃเบดเบ‡.

$ram = ((Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb)
$xmx = "-Xms" + $ram + "G"

เปเบเป‰โ€‹เป„เบ‚โ€‹เบ›เบดเบ”โ€‹เป€เบ›เบตเบ”โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹

เบœเบนเป‰เบ‚เบฝเบ™เป„เบ”เป‰เป€เบซเบฑเบ™เป„เบŸเบฅเปŒ .bat เบˆเบฒเบเบ„เบปเบ™เบญเบทเปˆเบ™, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเป„เบ”เป‰เบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เป€เบซเบ”เบœเบปเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบˆเบถเปˆเบ‡เบ–เบทเบเบขเบธเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ”เบงเบ, เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เป„เบŸเบฅเปŒ mod เบซเบผเบทเบฅเบถเบšเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡?
เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบฃเบตเบชเบฐเบ•เบฒเบ”เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰เบœเบนเป‰เบ‚เบฝเบ™เป„เบ”เป‰เบžเบปเบšเบชเบฐเบ„เบฃเบดเบšเปเบ›เบเป†เบ—เบตเปˆเป€เบฅเบตเปˆเบกเป€เบŠเบตเบšเป€เบงเบตเบ„เบทเบ™เปƒเปเปˆเป‚เบ”เบเบšเปเปˆเบชเบปเบ™เป€เบฅเบทเปˆเบญเบ‡เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เป€เบŠเบตเบšเป€เบงเบตเบ›เบดเบ”. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰ exitcode. Java เปƒเบŠเป‰ 0 เป€เบ›เบฑเบ™เบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบ•เบฑเป‰เบ™เบˆเบฒเบเบ™เบตเป‰.

เบ—เปเบฒเบญเบดเบ”, เปƒเบซเป‰เบชเป‰เบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบˆเบฐ restart server เบ–เป‰เบฒเบกเบฑเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง.

function Get-MinecraftExitCode {
   
    do {
        
        if ($global:Process.ExitCode -ne 0) {
            Write-Log
            Restart-Minecraft
        }
        else {
            Write-Log
        }
 
    } until ($global:Process.ExitCode -eq 0)
    
}

เบชเบฐเบ„เบฃเบดเบšเบˆเบฐเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เบงเบปเบ‡เบˆเบญเบ™เบˆเบปเบ™เบเปˆเบงเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ›เบดเบ”เบ›เบปเบเบเบฐเบ•เบดเบˆเบฒเบ console เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ /stop.

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ—เบธเบเบขเปˆเบฒเบ‡, เบกเบฑเบ™เบˆเบฐเบ”เบตเบ—เบตเปˆเบˆเบฐเป€เบเบฑเบšเบเปเบฒเบงเบฑเบ™เบ—เบตเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบงเบฑเบ™เบ—เบตเบชเปเบฒเป€เบฅเบฑเบ”, เปเบฅเบฐเป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”.

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡ Start-Process เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ•เบปเบงเปเบ›. เปƒเบ™ script เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

$global:Process = Start-Process -FilePath  "C:Program Files (x86)common filesOracleJavajavapath_target_*java.exe" -ArgumentList "$xmx -server -jar $forge nogui" -Wait -NoNewWindow -PassThru

เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบชเปˆเป„เบŸเบฅเปŒ. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบ•เบปเบงเปเบ›:

$global:Process.StartTime
$global:Process.ExitCode	
$global:Process.ExitTime

เบ—เบฑเบ‡เปเบปเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเป„เบŸเบฅเปŒเป‚เบ”เบเปƒเบŠเป‰ Add-Content. เป‚เบ”เบเป„เบ”เป‰เบฅเบงเบšเบฅเบงเบกเบกเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบชเบฐเบ„เบดเบšเบ™เบตเป‰, เปเบฅเบฐเปƒเบซเป‰เป‚เบ—เบซเบฒเบกเบฑเบ™ handler.ps1.

Add-Content -Value "Start time:" -Path $Logfile 
$global:Process.StartTime
 
Add-Content -Value "Exit code:" -Path $Logfile 
$global:Process.ExitCode | Add-Content $Logfile
    
Add-Content -Value "Exit time:" -Path $Logfile 
$global:Process.ExitTime | Add-Content $Logfile

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบชเบฐเบ„เบดเบšเบ—เบตเปˆเป€เบ›เบตเบ”เบ•เบปเบงเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™.

เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡

เบœเบนเป‰เบ‚เบฝเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡ Minecraft เบˆเบฒเบเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปƒเบ”เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเบ™เบถเปˆเบ‡เป‚เบกเบ”เบนเบ™, เปเบฅเบฐเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบšเบฑเบ™เบ—เบถเบเปƒเบ™เป‚เบŸเบ™เป€เบ”เบตเบชเบฐเป€เบžเบฒเบฐ.

เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบงเปˆเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบœเปˆเบฒเบ™ desktop เบซเบผเบท WinRm. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบ›เบฑเบ™เบœเบนเป‰เปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™, เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ Server.jar เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™ eula.txt เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบ”เป‰.

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบชเบนเปˆโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เบชเบฒเบกโ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹.

New-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" -Name DefaultUserName -Value $Username -ErrorAction SilentlyContinue
New-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" -Name DefaultPassword -Value $Password  -ErrorAction SilentlyContinue
New-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" -Name AutoAdminLogon -Value 1 -ErrorAction SilentlyContinue

เบกเบฑเบ™เบšเปเปˆเบ›เบญเบ”เป„เบž. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เปเบฒเบกเบฐเบ”เบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบœเบนเป‰เปƒเบŠเป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปƒเบ™เบฅเบฐเบ”เบฑเบšเบœเบนเป‰เปƒเบŠเป‰, เบซเบผเบทเบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ—เบตเปˆเปเบ„เบšเบเบงเปˆเบฒ. เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”.

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบ„เบฑเบ”โ€‹เบญเบญเบโ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบชเบนเปˆโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบงเบฝเบเบ‡เบฒเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบˆเบฒเบ Powershell, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบˆเบฐเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰:

$Trigger = New-ScheduledTaskTrigger -AtLogOn
$User = "ServerAdmin"
$PS = New-ScheduledTaskAction -Execute 'PowerShell.exe" -Argument "Start-Minecraft -Type Forge -LogFile "C:minecraftstdout.txt" -MinecraftPath "C:minecraft"'
Register-ScheduledTask -TaskName "StartSSMS" -Trigger $Trigger -User $User -Action $PS -RunLevel Highest

เบเบฒเบ™เบ›เบฐเบเบญเบšเป‚เบกเบ”เบนเบ™

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบฎเบปเบฒเป€เบญเบปเบฒเบ—เบธเบเบขเปˆเบฒเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡. เบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ„เบดเบšเบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเปเบกเปˆเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบปเบšเบเบงเบ™เบเบฑเบšเป‚เบกเบ”เบนเบ™.

เป€เบฅเบตเปˆเบก-Minecraft

เบ—เปเบฒเบญเบดเบ”, เปƒเบซเป‰เป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบซเบเบฑเบ‡เบซเบผเบฒเบเบเปˆเบงเบฒเปเบฅเปˆเบ™ script เบ—เบตเปˆเบˆเบฐเบŸเบฑเบ‡เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”.

เปƒเบ™เบšเบฅเบฑเบญเบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต, เบฅเบฒเบงเบ–เบฒเบกเบงเปˆเบฒเป‚เบŸเบ™เป€เบ”เบตเปƒเบ”เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ” Minecraft เปเบฅเบฐเบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบงเบฒเบ‡เบšเบฑเบ™เบ—เบถเบ.

Set-Location (Split-Path $MyInvocation.MyCommand.Path)
function Start-Minecraft {
    [CmdletBinding()]
    param (
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [string]
        $LogFile,
 
        [Parameter(Mandatory)]  
        [ValidateSet('Vanilla', 'Forge')]
        [ValidateNotNullOrEmpty()]
        [string]
        $Type,
 
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [string[]]
        $MinecraftPath
 
    )
    powershell.exe -file .handler.ps1 -type $type -MinecraftPath $MinecraftPath | Tee-Object $LogFile -Append
}
Export-ModuleMember -Function Start-Minecraft

เปเบฅเบฐเบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบตเบ” Minecraft เปเบšเบšเบ™เบตเป‰:

Start-Minecraft -Type Forge -LogFile "C:minecraftstdout.txt" -MinecraftPath "C:minecraft"

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบฎเบปเบฒเบเป‰เบฒเบงเป„เบ›เบชเบนเปˆ Handler.ps1 เบ—เบตเปˆเบžเป‰เบญเบกเปƒเบŠเป‰เปเบฅเป‰เบง

เป€เบžเบทเปˆเบญเปƒเบซเป‰ script เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเบญเบกเบฎเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฅเบฐเบšเบธเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ block. เบเบฐเบฅเบธเบ™เบฒเบชเบฑเบ‡เป€เบเบ”, เบกเบฑเบ™เปเบฅเปˆเบ™ Oracle Java, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบเบฒเบ™เปเบˆเบเบขเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰.

param (
    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [string]$type,
 
    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [string]$MinecraftPath,
 
    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [string]$StandardOutput
)
 
Set-Location $MinecraftPath
 
function Restart-Minecraft {
 
    Write-host "=============== Starting godlike game server ============"
 
    $forge = ((Get-ChildItem | Where-Object Name -Like "forge*").Name | Sort-Object -Descending) | Select-Object -first 1
 
    $ram = ((Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb)
    $xmx = "-Xms" + $ram + "G"
    $global:Process = Start-Process -FilePath  "C:Program Files (x86)common filesOracleJavajavapath_target_*java.exe" -ArgumentList "$xmx -server -jar $forge nogui" -Wait -NoNewWindow -PassThru
    
}
 
function Write-Log {
    Write-host "Start time:" $global:Process.StartTime
 
    Write-host "Exit code:" $global:Process.ExitCode
    
    Write-host "Exit time:" $global:Process.ExitTime
 
    Write-host "=============== Stopped godlike game server ============="
}
 
function Get-MinecraftExitCode {
   
    do {
        
        if ($global:Process.ExitCode -ne 0) {
            Restart-Minecraft
            Write-Log
        }
        else {
            Write-Log
        }
 
    } until ($global:Process.ExitCode -eq 0)
    
}
 
Get-MinecraftExitCode

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ Minecraft

script เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบทเบเบฑเบ™เบเบฑเบš Start-Minecraft, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบงเบฝเบเบ‡เบฒเบ™เปƒเบซเบกเปˆ. เบเบญเบกเบฎเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ”เบฝเบงเบเบฑเบ™. เบŠเบทเปˆเบœเบนเป‰เปƒเบŠเป‰, เบ–เป‰เบฒเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ, เป€เบญเบปเบฒเบŠเบทเปˆเบ›เบฐเบˆเบธเบšเบฑเบ™.

function Register-Minecraft {
    [CmdletBinding()]
    param (
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [string]
        $LogFile,
 
        [Parameter(Mandatory)]  
        [ValidateSet('Vanilla', 'Forge')]
        [ValidateNotNullOrEmpty()]
        [string]$Type,
 
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [string]$MinecraftPath,
 
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [string]$User,
 
        [Parameter(Mandatory)]
        [string]$TaskName = $env:USERNAME
    )
 
    $Trigger = New-ScheduledTaskTrigger -AtLogOn
    $arguments = "Start-Minecraft -Type $Type -LogFile $LogFile -MinecraftPath $MinecraftPath"
    $PS = New-ScheduledTaskAction -Execute "PowerShell" -Argument "-noexit -command $arguments"
    Register-ScheduledTask -TaskName $TaskName -Trigger $Trigger -User $User -Action $PS -RunLevel Highest
    
}
 
Export-ModuleMember -Function Register-Minecraft

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™-Autologon

เปƒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ•เบฑเบ™, script เบเบญเบกเบฎเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบŠเบทเปˆเบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™. เบ–เป‰เบฒเบŠเบทเปˆเบœเบนเป‰เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธ, เบŠเบทเปˆเบœเบนเป‰เปƒเบŠเป‰เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

function Set-Autologon {
 
    param (
        [Parameter(
        HelpMessage="Username for autologon")]
        $Username = $env:USERNAME,
 
        [Parameter(Mandatory=$true,
        HelpMessage="User password")]
        [ValidateNotNullOrEmpty()]
        $Password
    )
 
    $i = Get-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon"
 
    if ($null -eq $i) {
        New-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" -Name DefaultUserName -Value $Username
        New-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" -Name DefaultPassword -Value $Password 
        New-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" -Name AutoAdminLogon -Value 1
        Write-Verbose "Set-Autologon will enable user auto logon."
 
    }
    else {
        Set-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" -Name DefaultUserName -Value $Username
        Set-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" -Name DefaultPassword -Value $Password
        Set-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" -Name AutoAdminLogon -Value 1
    }
 
    
    Write-Verbose "Autologon was set successfully."
 
}

เบเบฒเบ™เปเบฅเปˆเบ™เบชเบฐเบ„เบฃเบดเบšเบ™เบตเป‰เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

Set-Autologon -Password "PlaintextPassword"

เบงเบดเบ—เบตเปƒเบŠเป‰

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบœเบนเป‰เบ‚เบฝเบ™เป€เบญเบ‡เปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰. เบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ Minecraft เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเปƒเบ™ Windows เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡. เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

1. เบชเป‰เบฒเบ‡เบœเบนเป‰เปƒเบŠเป‰

$pass = Get-Credential
New-LocalUser -Name "MinecraftServer" -Password $pass.Password -AccountNeverExpires -PasswordNeverExpires -UserMayNotChangePassword

2. เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบงเบฝเบเป€เบžเบทเปˆเบญเปเบฅเปˆเบ™เบชเบฐเบ„เบฃเบดเบš

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป‚เบ”เบเปƒเบŠเป‰เป‚เบกเบ”เบนเบ™เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰:

Register-Minecraft -Type Forge -LogFile "C:minecraftstdout.txt" -MinecraftPath "C:minecraft" -User "MInecraftServer" -TaskName "MinecraftStarter"

เบซเบผเบทเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™:

$Trigger = New-ScheduledTaskTrigger -AtLogOn
$User = "ServerAdmin"
$PS = New-ScheduledTaskAction -Execute 'PowerShell.exe" -Argument "Start-Minecraft -Type Forge -LogFile "C:minecraftstdout.txt" -MinecraftPath "C:minecraft"'
Register-ScheduledTask -TaskName "StartSSMS" -Trigger $Trigger -User $User -Action $PS -RunLevel Highest

3. เป€เบ›เบตเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เปเบฅเบฐเบ›เบดเบ”เป€เบ›เบตเบ”เป€เบ„เบทเปˆเบญเบ‡เบ„เบทเบ™เปƒเปเปˆ

Set-Autologon -Username "MinecraftServer" -Password "Qw3"

เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”

เบœเบนเป‰เบ‚เบฝเบ™เป„เบ”เป‰เบ‚เบฝเบ™เบšเบปเบ”, เบฅเบงเบกเบ—เบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบ•เบปเบ™เป€เบญเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบฒเบงเบเบดเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเบŸเบฑเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบท. เบœเบนเป‰เบ‚เบฝเบ™เบซเบงเบฑเบ‡เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบเบฑเบšเบ—เปˆเบฒเบ™, เปเบฅเบฐเบงเปˆเบฒเบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ.

เบชเบฐเบ„เบฃเบดเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบŠเบตเบšเป€เบงเบต Minecraft เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™