เชฒเซเชเชเชจเซ เช เชฐเชฎเชค เชเซเชฌ เช เชเชฎเซ เชเซ, เช
เชจเซ เชคเซ เชชเซเชคเซ เชเช เชจเชพเชจเชเชกเชพ เชธเชฐเซเชตเชฐเชจเซ เชเชกเชฎเชฟเชจเชฟเชธเซเชเซเชฐเซเชเชฐ เชเซ โเชเซเชตเชณ เชฎเชฟเชคเซเชฐเซ เชฎเชพเชเซโ. เชเชฎเซเชเซเชฏเซเชฐเซเชธเชฎเชพเช เชนเชเชฎเซเชถเชจเซ เชเซเชฎ, เชธเชฐเซเชตเชฐ เชชเชฐเชจเซ เชฆเชฐเซเช เชตเชธเซเชคเซ เชธเซเชงเชพเชฐเซเชฒ เชเซ, เช
เชจเซ เช เช
เชธเซเชฅเชฟเชฐเชคเชพเชจเซ เชธเชฎเชพเชตเซเชถ เชเชฐเซ เชเซ เช
เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ, เชเซเชฐเซเชถ เชฅเชพเชฏ เชเซ. เชชเชพเชตเชฐเชถเซเชฒเชจเชพ เชฒเซเชเช เชคเซเชจเซ เชถเซเชฐเซ เชชเชฐเชจเชพ เชธเซเชเซเชฐเซเชธเชจเชพ เชธเซเชฅเชพเชจ เชเชฐเชคเชพเช เชตเชงเซ เชธเชพเชฐเซ เชฐเซเชคเซ เชเชพเชฃเซ เชเซ, เชคเซเชฅเซ เชคเซเชฃเซ "Minecraft 2020 เชฒเซเชจเซเช เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชถเซเชฐเซเชทเซเช เชธเซเชเซเชฐเชฟเชชเซเช" เชฎเชพเช เชเซเชฎเซเชชเชฒเซเช เชฎเชพเชเซเชจเชพ เชเชงเชพเชฐ เชคเชฐเซเชเซ เชธเชฎเชพเชจ เชธเซเชเซเชฐเชฟเชชเซเช เชธเซเชตเชพ เชเชชเซ เชนเชคเซ
เชเชฆเซเชถเซ เชเชชเชฃเชจเซ เชเซเชเช เชเซ
เชตเซเชเชฒเซเชชเชฟเช เชฒเซเชเซเชเช
เชเช เชฆเชฟเชตเชธ, เชฅเซเชกเชพ เชตเชงเซ เชฎเซเชกเซเชธ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเชพ เชชเชเซ, เชฎเซเช เชถเซเชงเซเชฏเซเช เชเซ เชธเชฐเซเชตเชฐ, เชฆเซเชเซเชคเซ เชฐเซเชคเซ, เชฏเซเชฆเซเชงเชจเซ เชเซเชทเชฃเชพ เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ เชเซเชฐเซเชถ เชฅเช เชฐเชนเซเชฏเซเช เชนเชคเซเช. เชธเชฐเซเชตเชฐเซ latest.log เช เชฅเชตเชพ เชกเซเชฌเชเชฎเชพเช เชญเซเชฒเซ เชฒเชเซ เชจ เชนเชคเซ, เช เชจเซ เชเชจเซเชธเซเชฒ, เชเซ เชธเชฟเชฆเซเชงเชพเชเชคเชฎเชพเช เช เชญเซเชฒ เชฒเชเซ เช เชจเซ เชฌเชเชง เชฅเชตเซ เชเซเชเช เชคเซ เชฌเชเชง เชฅเช เชเชฏเซเช เชนเชคเซเช.
เชเซ เชคเซ เชฒเชเชตเชพ เชฎเชพเชเชเชคเซ เชจเชฅเซ, เชคเซ เชคเซเชจเซ เชเชฐเซเชฐ เชจเชฅเซ. เช เชฎเชพเชฐเซ เชชเชพเชธเซ cmdlet เชธเชพเชฅเซ เชชเชพเชตเชฐเชถเซเชฒ เชเซ เชเซ-เชเชฌเซเชเซเชเซเช, เชเซ เชเชฌเซเชเซเชเซเช เชฒเซ เชเซ เช เชจเซ เชคเซเชจเซ เชเช เช เชธเชฎเชฏเซ เชซเชพเชเชฒ เช เชจเซ เชเชจเซเชธเซเชฒ เชชเชฐ เชเชเชเชชเซเช เชเชฐเซ เชเซ.
.handler.ps1 | Tee-Object .StandardOutput.txt -Append
เช เชฐเซเชคเซ, เชชเชพเชตเชฐเชถเซเชฒ เชธเซเชเชพเชจเซเชกเชฐเซเชกเชเชเชเชชเซเช เชชเชธเชเชฆ เชเชฐเชถเซ เช เชจเซ เชคเซเชจเซ เชซเชพเชเชฒเชฎเชพเช เชฒเชเชถเซ. เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชถเซ เชจเชนเซเช เชชเซเชฐเชพเชฐเชเชญ-เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชเชพเชฐเชฃ เชเซ เชคเซ StandardOutput เชจเซ เชฌเชฆเชฒเซ System.ComponentModel.Component เชชเชฐเชค เชเชฐเชถเซ, เช เชจเซ -RedirectStandardOutput เชเชจเซเชธเซเชฒเชฎเชพเช เชชเซเชฐเชตเซเชถเชตเชพเชจเซเช เช เชถเชเซเชฏ เชฌเชจเชพเชตเชถเซ, เชเซ เชเชชเชฃเซ เชเชพเชณเชตเชพ เชฎเชพเชเชเซเช เชเซเช.
เชฆเชฒเซเชฒเซ เชถเชฐเซ เชเชฐเซ
เชฎเซเชกเซเชธเชจเซ เชคเซ เช เชเซเชกเซเชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเชพ เชชเชเซ, เชฒเซเชเชเซ เชจเซเชเชงเซเชฏเซเช เชเซ เชธเชฐเซเชตเชฐ เชชเชพเชธเซ เชชเชฃ เชชเซเชฐเชคเซ RAM เชจเชฅเซ. เช เชจเซ เช เชฎเชพเชเซ เชฒเซเชเชเชจเซ เชฆเชฒเซเชฒเซ เชฌเชฆเชฒเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชฆเชฐเซเช เชตเชเชคเซ เชคเซเชจเซ 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 เชซเชพเชเชฒเซ เชเซเช เชเซ, เชชเชฐเชเชคเซ เชธเชฐเซเชตเชฐ เชเซเชฎ เชฌเชเชง เชฅเชฏเซเช เชคเซ เชเชพเชฐเชฃเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชงเซเช เชจเชฅเซ. เช เช
เชธเซเชตเชฟเชงเชพเชเชจเช เชเซ, เชเซ เชคเชฎเชพเชฐเซ เชซเชเซเชค เชฎเซเชก เชซเชพเชเชฒ เชฌเชฆเชฒเชตเชพเชจเซ เช
เชฅเชตเชพ เชเชเชเช เชเชพเชขเซ เชจเชพเชเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซ เชถเซเช?
เชนเชตเซ เชเชพเชฒเซ เชฏเซเชเซเชฏ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชเชฐเซเช. เชฒเซเชเชเชจเซ เช
เชเชพเช เชตเชฟเชเชฟเชคเซเชฐ เชธเซเชเซเชฐเชฟเชชเซเชเซ เชฎเชณเซ เชเซ เชเซเชฃเซ เชธเชฐเซเชตเชฐ เชถเชพ เชฎเชพเชเซ เชฌเชเชง เชเชฐเซเชฏเซเช เชคเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชงเชพ เชตเชฟเชจเชพ เชธเชฐเซเชตเชฐเชจเซ เชซเชฐเซเชฅเซ เชถเชฐเซ เชเชฐเซเชฏเซเช. เช
เชฎเซ เชเชเซเชเชฟเชเชเซเชกเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช. Java เชธเชซเชณเชคเชพ เชคเชฐเซเชเซ 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
เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชเช เชฎเซเชกเซเชฏเซเชฒ เชฌเชจเชพเชตเซเช เชเซ เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเชตเชพ เชธเชฟเชตเชพเชฏ เชฌเซเชเซเช เชเชเช เชเชฐเชถเซ เชจเชนเซเช เชเซ เชฎเชพเชจเช เชเชเชเชชเซเช เชธเชพเชเชญเชณเชถเซ เช เชจเซ เชฐเซเชเซเชฐเซเชก เชเชฐเชถเซ.
เชชเซเชฐเชพเชฎเซเชเชฐ เชฌเซเชฒเซเชเชฎเชพเช, เชคเซ เชชเซเชเซ เชเซ เชเซ เชเชฏเชพ เชซเซเชฒเซเชกเชฐเชฎเชพเชเชฅเซ เชฎเชพเชเชจเชเซเชฐเชพเชซเซเช เชฒเซเชเช เชเชฐเชตเซเช เช เชจเซ เชฒเซเช เชเซเชฏเชพเช เชฎเซเชเชตเซ.
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"
เชเซเชตเซ เชฐเซเชคเซ เชเชชเชฏเซเช เชเชฐเชตเซ
เชนเชตเซ เชเชพเชฒเซ เชเซเชเช เชเซ เชฒเซเชเช เชชเซเชคเซ เช เชฌเชงเชพเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. Windows เชชเชฐ เชธเชพเชฐเซเชตเชเชจเชฟเช 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