เดฎเดฟเด•เดšเตเดš Minecraft เดธเต†เตผเดตเตผ เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต

เดฎเดฟเด•เดšเตเดš Minecraft เดธเต†เตผเดตเตผ เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต

เดฐเดšเดฏเดฟเดคเดพเดตเต เด—เต†เดฏเดฟเดฎเดฟเดจเต† เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดธเตเดจเต‡เดนเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เด…เดฆเตเดฆเต‡เดนเด‚ เดคเดจเตเดจเต† เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเดฑเดพเดฃเต "เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดธเตเดนเตƒเดคเตเดคเตเด•เตเด•เตพเด•เตเด•เดพเดฏเดฟ." เด…เดฎเดšเตเดตเตผเดฎเดพเตผเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดชเดคเดฟเดตเตเดชเต‹เดฒเต†, เดธเต†เตผเดตเดฑเดฟเดฒเต† เดŽเดฒเตเดฒเดพเด‚ เดชเดฐเดฟเดทเตเด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เด…เดธเตเดฅเดฟเดฐเดคเดฏเตเด•เตเด•เต เด•เดพเดฐเดฃเดฎเดพเด•เตเดจเตเดจเต, เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดคเด•เดฐเตเดจเตเดจเต. เดชเดตเตผเดทเต†เดฒเดฟเดจเตเดฑเต† เดฐเดšเดฏเดฟเดคเดพเดตเดฟเดจเต เดคเดจเตเดฑเต† เดคเต†เดฐเตเดตเดฟเดฒเต† เดธเตเดฑเตเดฑเต‹เดฑเตเด•เดณเตเดŸเต† เดธเตเดฅเดพเดจเดคเตเดคเต‡เด•เตเด•เดพเตพ เดจเดจเตเดจเดพเดฏเดฟ เด…เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด…เดฆเตเดฆเต‡เดนเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต "Minecraft 2020 เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดฟเด•เดšเตเดš เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต" เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เด‡เดคเต‡ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต Ruvds เดšเดจเตเดคเดธเตเดฅเดฒเด‚. เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเด‚ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดฒเต‡เด–เดจเดคเตเดคเดฟเดฒเตเดฃเตเดŸเต. เด‡เดชเตเดชเต‹เตพ, เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ, เดŽเดฒเตเดฒเดพเด‚ เดŽเด™เตเด™เดจเต† เดšเต†เดฏเตเดคเต.

เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เด•เดฎเดพเตปเดกเตเด•เตพ

เด‡เดคเดฐ เดฒเต‹เด—เดฟเด‚เด—เต

เด’เดฐเต เดฆเดฟเดตเดธเด‚, เดฐเดฃเตเดŸเต เดฎเต‹เดกเตเด•เตพ เด•เต‚เดŸเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค เดถเต‡เดทเด‚, เดธเต†เตผเดตเตผ, เดชเตเดฐเดคเตเดฏเด•เตเดทเดคเตเดคเดฟเตฝ, เดฏเตเดฆเตเดงเด‚ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเด•เตเด•เดพเดคเต† เดคเด•เดฐเตเดจเตเดจเดคเดพเดฏเดฟ เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเดฟ. 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"

เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เตฝ

เดฐเดšเดฏเดฟเดคเดพเดตเต เดคเดจเดฟเด•เตเด•เตเดตเต‡เดฃเตเดŸเดฟ เด‰เตพเดชเตเดชเต†เดŸเต† เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเต, เด…เดคเดฟเดจเดพเตฝ, เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด•เต‡เตพเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เด…เดฆเตเดฆเต‡เดนเดคเตเดคเดฟเดจเต เดธเดจเตเดคเต‹เดทเดฎเตเดฃเตเดŸเต. เดˆ เด•เต‹เดกเตเด•เดณเต†เดฒเตเดฒเดพเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเตเดฐเตเด™เตเด™เดฟเดฏเดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต†เดจเตเดจเตเด‚ เดฒเต‡เด–เดจเด‚ เดฐเดธเด•เดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเตเดตเต†เดจเตเดจเตเด‚ เดฐเดšเดฏเดฟเดคเดพเดตเต เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เดฎเดฟเด•เดšเตเดš Minecraft เดธเต†เตผเดตเตผ เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•