เดฐเดเดฏเดฟเดคเดพเดตเต เดเตเดฏเดฟเดฎเดฟเดจเต เดตเดณเดฐเตเดฏเดงเดฟเดเด เดธเตเดจเตเดนเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เด
เดฆเตเดฆเตเดนเด เดคเดจเตเดจเต เดเดฐเต เดเตเดฑเดฟเดฏ เดธเตเตผเดตเดฑเดฟเดจเตเดฑเต เด
เดกเตเดฎเดฟเดจเดฟเดธเตเดเตเดฐเตเดฑเตเดฑเดฑเดพเดฃเต "เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดธเตเดนเตเดคเตเดคเตเดเตเดเตพเดเตเดเดพเดฏเดฟ." เด
เดฎเดเตเดตเตผเดฎเดพเตผเดเตเดเดฟเดเดฏเดฟเตฝ เดชเดคเดฟเดตเตเดชเตเดฒเต, เดธเตเตผเดตเดฑเดฟเดฒเต เดเดฒเตเดฒเดพเด เดชเดฐเดฟเดทเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เด
เดธเตเดฅเดฟเดฐเดคเดฏเตเดเตเดเต เดเดพเดฐเดฃเดฎเดพเดเตเดจเตเดจเต, เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดคเดเดฐเตเดจเตเดจเต. เดชเดตเตผเดทเตเดฒเดฟเดจเตเดฑเต เดฐเดเดฏเดฟเดคเดพเดตเดฟเดจเต เดคเดจเตเดฑเต เดคเตเดฐเตเดตเดฟเดฒเต เดธเตเดฑเตเดฑเตเดฑเตเดเดณเตเดเต เดธเตเดฅเดพเดจเดคเตเดคเตเดเตเดเดพเตพ เดจเดจเตเดจเดพเดฏเดฟ เด
เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด
เดฆเตเดฆเตเดนเด เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต "Minecraft 2020 เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดฟเดเดเตเด เดธเตโเดเตเดฐเดฟเดชเตเดฑเตเดฑเต" เดเตเดเดชเตเดฒเตเดฑเตเดฑเดฟเดจเตเดฑเต เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เดเดคเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต
เดจเดฎเตเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดฎเดพเตปเดกเตเดเตพ
เดเดคเดฐ เดฒเตเดเดฟเดเดเต
เดเดฐเต เดฆเดฟเดตเดธเด, เดฐเดฃเตเดเต เดฎเตเดกเตเดเตพ เดเตเดเดฟ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดค เดถเตเดทเด, เดธเตเตผเดตเตผ, เดชเตเดฐเดคเตเดฏเดเตเดทเดคเตเดคเดฟเตฝ, เดฏเตเดฆเตเดงเด เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเดพเดคเต เดคเดเดฐเตเดจเตเดจเดคเดพเดฏเดฟ เดเดพเตป เดเดฃเตเดเตเดคเตเดคเดฟ. latest.log-เดฒเต เดกเตเดฌเดเตเดเดฟเดฒเต เดธเตเตผเดตเตผ เดชเดฟเดถเดเตเดเตพ เดเดดเตเดคเดฟเดฏเดฟเดฒเตเดฒ, เดเตเดเดพเดคเต เดธเดฟเดฆเตเดงเดพเดจเตเดคเดคเตเดคเดฟเตฝ เด เดชเดฟเดถเดเต เดเดดเตเดคเดฟ เดจเดฟเตผเดคเตเดคเตเดฃเตเด เดเตบเดธเตเตพ เด เดเดเตเดเต.
เด เดฏเดพเตพเดเตเดเต เดเดดเตเดคเดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดคเต เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. เดจเดฎเตเดเตเดเต cmdlet เดเดณเตเดณ Powershell เดเดฃเตเดเต เดเต-เดเดฌเตเดเดเตเดฑเตเดฑเต, เด เดคเต เดเดฐเต เดเดฌเตเดเดเตเดฑเตเดฑเต เดเดเตเดคเตเดคเต เดเดฐเต เดซเดฏเดฒเดฟเดฒเตเดเตเดเตเด เดเตบเดธเตเดณเดฟเดฒเตเดเตเดเตเด เดเดฐเต เดธเดฎเดฏเด เดเดเตเดเตเดชเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเต.
.handler.ps1 | Tee-Object .StandardOutput.txt -Append
เด เดฐเตเดคเดฟเดฏเดฟเตฝ, Powershell เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเดเตเดเตเดชเตเดเตเดเต เดเดเตเดคเตเดคเต เดเดฐเต เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดเดดเตเดคเตเด. เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดฐเตเดคเต เดเดฐเดเดญ-เดชเตเดฐเดเตเดฐเดฟเดฏเดเดพเดฐเดฃเด เด เดคเต System.ComponentModel.Component เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเด, เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเดเตเดเตโเดชเตเดเตเดเดฒเตเดฒ, เดเตเดเดพเดคเต -RedirectStandardOutput เดเตบเดธเตเดณเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดฟเดเตเดเตเดจเตเดจเดคเต เด เดธเดพเดงเตเดฏเดฎเดพเดเตเดเตเด, เด เดคเดพเดฃเต เดเดเตเดเตพ เดเดดเดฟเดตเดพเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดคเต.
เดตเดพเดฆเดเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเด
เด เดคเต เดเตเดกเดฟ เดฎเตเดกเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดค เดถเตเดทเด, เดธเตเตผเดตเดฑเดฟเดจเต เดฎเดคเดฟเดฏเดพเดฏ เดฑเดพเด เดเดฒเตเดฒเตเดจเตเดจเต เดฐเดเดฏเดฟเดคเดพเดตเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเต. เดเดคเดฟเดจเต เดฒเตเดเตเดเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ เดฎเดพเดฑเตเดฑเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดฒเตเดฒเดพเดตเดฐเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ start.bat-เตฝ เดเดฐเต เดคเดตเดฃเดฏเตเด เด เดต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต เดชเดเดฐเด เด เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเตเด.
เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเดณเดฟเดจเต "เดเดธเตเดฑเตเดฑเต เดฒเตเดเตเดเต เดฆเดฟเดธเต" เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเต-เดเดฌเตเดเดเตเดฑเตเดฑเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเดเตเดเตเดชเตเดเตเดเต เดฎเดพเดคเตเดฐเดฎเต เดตเดพเดฏเดฟเดเตเดเตเดเดฏเตเดณเตเดณเต เดเดจเตเดจเดคเดฟเดจเดพเตฝ, เดจเดฟเดเตเดเตพ เดฎเดฑเตเดฑเตเดฐเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เด เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต Minecraft เดคเดจเตเดจเต เดชเตเดฑเดคเตเดคเดฟเดฑเดเตเดเตเด. เดจเดฎเตเดเตเดเต เดตเดพเดฆเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเดเดญเดฟเดเตเดเดพเด.
เดญเดพเดตเดฟเดฏเดฟเตฝ เดเดคเตเดฏเดจเตเดคเดฟเด เด เดฒเดธเดคเดฏเดฟเตฝ เดฎเตเดดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเดเตเดเดฏเดฟเตฝ เดฒเตเดเตเดเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ เดถเตเดเดฐเดฟเดเตเดเดฃเด. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดเดฑเตเดฑเดตเตเด เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดจเดพเดฏเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจเดคเดฟเดฒเตเดเต เดจเดฎเตเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเดพเด เดคเตเดฑเตเดฑเดฟ.
$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 เดซเดฏเดฒเตเดเตพ เดเดฃเตเดเดฟเดเตเดเตเดฃเตเดเต, เดเดจเตเดจเดพเตฝ เดธเตเตผเดตเตผ เดจเดฟเตผเดคเตเดคเดฟเดฏเดคเดฟเดจเตเดฑเต เดเดพเดฐเดฃเด เด
เดตเตผ เดเดฃเดเตเดเดฟเดฒเตเดเตเดคเตเดคเดฟเดฒเตเดฒ. เดเดคเต เด
เดธเตเดเดฐเตเดฏเดฎเดพเดฃเต, เดจเดฟเดเตเดเตพเดเตเดเต เดฎเตเดกเต เดซเดฏเตฝ เดฎเดพเดฑเตเดฑเตเดเดฏเต เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเต เดเตเดฏเตเดฏเดฃเดฎเตเดเตเดเดฟเตฝ เดเดจเตเดคเตเดเตเดฏเตเดฏเตเด?
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดถเดฐเดฟเดฏเดพเดฏ เดชเตเดจเดฐเดพเดฐเดเดญเด เดจเดเดคเตเดคเดพเด. เดเดจเตเดคเตเดเตเดฃเตเดเดพเดฃเต เดธเตเตผเดตเตผ เดทเดเตเดเต เดกเตเตบ เดเตเดฏเตเดคเดคเต เดเดจเตเดจเดคเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเดพเดคเต เดคเดจเตเดจเต เดธเตเตผเดตเตผ เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจ เดตเดฟเดเดฟเดคเตเดฐเดฎเดพเดฏ เดธเตโเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดฐเดเดฏเดฟเดคเดพเดตเดฟเดจเต เดฎเตเดฎเตเดชเต เดเดฃเตเดเต. เดเดเตเดเตพ เดเดเตเดธเดฟเดฑเตเดฑเตเดเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเตเด. เดเดพเดต เดเดฐเต เดตเดฟเดเดฏเดฎเดพเดฏเดฟ 0 เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เด
เดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เดเดตเดฟเดเต เดจเดฟเดจเตเดจเต เดจเตเดคเตเดคเด เดเตเดฏเตเดฏเตเด.
เดเดฆเตเดฏเด, เดธเตเตผเดตเตผ เดชเดฐเดพเดเดฏเดชเตเดชเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ เด เดคเต เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดซเดเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเดพเด.
function Get-MinecraftExitCode {
do {
if ($global:Process.ExitCode -ne 0) {
Write-Log
Restart-Minecraft
}
else {
Write-Log
}
} until ($global:Process.ExitCode -eq 0)
}
/stop เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดตเดจเตเดคเด เดเตบเดธเตเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเตผเดตเตผ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดทเดเตเดเต เดกเตเตบ เดเดเตเดจเตเดจเดคเต เดตเดฐเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดฒเตเดชเตเดชเดฟเตฝ เดจเดฟเดฒเดจเดฟเตฝเดเตเดเตเด.
เดเดฒเตเดฒเดพเด เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดเตเดเตพ เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเดฐเดเดญ เดคเตเดฏเดคเดฟ, เดชเตเตผเดคเตเดคเตเดเดฐเดฃ เดคเตเดฏเดคเดฟ, เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดพเดจเตเดณเตเดณ เดเดพเดฐเดฃเด เดเดจเตเดจเดฟเดต เดถเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดจเดจเตเดจเดพเดฏเดฟเดฐเดฟเดเตเดเตเด.
เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดเดฐเดเดญ-เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเดเต เดซเดฒเด เดเดฐเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเตเดเตเดเต เดเดดเตเดคเตเดจเตเดจเต. เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เดเดคเต เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
$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
เดเดกเต-เดเดฃเตเดเดจเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดคเตเดฒเตเดฒเดพเด เดเดฐเต เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเดพเด. เดเดคเต เด เตฝเดชเตเดชเด เดเตเดเดฟเดฏ เดถเตเดทเด, เดเดเตเดเตพเดเตเดเต เด เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดฒเดญเดฟเดเตเดเต, เดจเดฎเตเดเตเดเต เดเดคเดฟเดจเต 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-เดจเตเดฑเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดคเดฟเดชเตเดชเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดฐเดเดฏเดฟเดคเดพเดตเต เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดซเตเตพเดกเดฑเดฟเตฝ เดฒเตเดเตเดเตพ เดธเดเดญเดฐเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด.
เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดฒเตเดเดฟเตป เดเตเดฏเตเดคเดฟเดเตเดเตเดณเตเดณ เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเต เดชเตเดฐเดเตเดฐเดฟเดฏ เดเดฐเดเดญเดฟเดเตเดเดฃเด เดเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดถเตเดจเด. เดเดคเต เดกเตเดธเตเดเตเดเตเดชเตเดชเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ 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
เด เดคเต เดธเตเดฐเดเตเดทเดฟเดคเดฎเดฒเตเดฒ. เดชเตเดฐเดตเตเดถเดจเดตเตเด เดชเดพเดธเตโเดตเตเดกเตเด เดเดตเดฟเดเต เดชเตเดฒเตเดฏเดฟเตปเดเตเดเตโเดธเตเดฑเตเดฑเดฟเตฝ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เด เดคเดฟเดจเดพเตฝ เดธเตเตผเดตเตผ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดชเดฏเตเดเตเดคเต เดคเดฒเดคเตเดคเดฟเดฒเต เด เดคเดฟเดฒเตเด เดเดเตเดเตเดเดฟเดฏ เดเตเดฐเตเดชเตเดชเดฟเดฒเต เดเดเตโเดธเดธเต เดเดณเตเดณ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเตเดทเตโเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เด เดกเตเดฎเดฟเดจเดฟเดธเตเดเตเดฐเตเดฑเตเดฑเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเตผเดถเดจเดฎเดพเดฏเดฟ เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ.
เดเดเตเดเตพ เดฏเดพเดจเตเดคเตเดฐเดฟเด-เดฒเตเดเดฟเตป เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเต. เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพ เดธเตเตผเดตเดฑเดฟเดจเดพเดฏเดฟ เดเดฐเต เดชเตเดคเดฟเดฏ เดเดพเดธเตโเดเต เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต. เดชเดตเตผเดทเตเดฒเตเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเตพ เดเดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด, เด เดคเดฟเดจเดพเตฝ เดเดคเต เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเด:
$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
เดเดฆเตเดฏเด, เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเดเตเดเตเดชเตเดเตเดเต เดเตเตพเดเตเดเตเดเดฏเตเด เดฑเตเดเตเดเตเตผเดกเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฐเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฒเตเดฒเดพเดคเต เดฎเดฑเตเดฑเตเดจเตเดจเตเด เดเตเดฏเตเดฏเดพเดคเตเดค เดเดฐเต เดฎเตเดกเตเดฏเตเตพ เดจเดฎเตเดเตเดเต เดธเตเดทเตเดเดฟเดเตเดเดพเด.
เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดฌเตเดฒเตเดเตเดเดฟเตฝ, เดเดคเต เดซเตเตพเดกเดฑเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต 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-เดฒเตเดเตเดเต เดชเตเดเดพเด
เดตเดฟเดณเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดเตเดเดณเตเดเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดเดฐเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ เดฌเตเดฒเตเดเตเดเตเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดฆเดฏเดตเดพเดฏเดฟ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด, เดเดคเต 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
เดเดฐเต เดชเตเดคเดฟเดฏ เดเดพเดธเตโเดเต เดฎเดพเดคเตเดฐเด เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดดเดฟเดเตเดเดพเตฝ, เดธเตโเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดพเดฏเตเดเดฟเดเดฎเดพเดฏเดฟ 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
เดฐเดเดฟเดธเตเดฑเตเดฑเตผ-เดเดเตเดเตเดฒเตเดเตบ
เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดฌเตเดฒเตเดเตเดเดฟเตฝ, เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเดตเตเด เดชเดพเดธเตโเดตเตเดกเตเด เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดจเดฟเดฒเดตเดฟเดฒเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต เดชเตเดฐเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
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 เดธเตเตผเดตเตผ เดเดเตเดเดจเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเด. เดจเดฎเตเดเตเดเต เดเดฆเตเดฏเด เดฎเตเดคเตฝ เดเดฐเดเดญเดฟเดเตเดเดพเด.
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"
เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเตฝ
เดฐเดเดฏเดฟเดคเดพเดตเต เดคเดจเดฟเดเตเดเตเดตเตเดฃเตเดเดฟ เดเตพเดชเตเดชเตเดเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเต, เด เดคเดฟเดจเดพเตฝ, เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเดเตเดเดณเตเดเต เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเตพ เดเตเตพเดเตเดเตเดจเตเดจเดคเดฟเตฝ เด เดฆเตเดฆเตเดนเดคเตเดคเดฟเดจเต เดธเดจเตเดคเตเดทเดฎเตเดฃเตเดเต. เด เดเตเดกเตเดเดณเตเดฒเตเดฒเดพเด เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดฐเตเดเตเดเดฟเดฏเดคเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเตเดจเตเดจเตเด เดฒเตเดเดจเด เดฐเดธเดเดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเตเดตเตเดจเตเดจเตเด เดฐเดเดฏเดฟเดคเดพเดตเต เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต.
เด
เดตเดฒเดเดฌเด: www.habr.com