αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Minecraft αžŠαŸαž›αŸ’αž’

αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Minecraft αžŠαŸαž›αŸ’αž’

αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžŸαŸ’αžšαž‘αžΆαž‰αŸ‹αž αŸ’αž‚αŸαž˜αž“αŸαŸ‡αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹ αž αžΎαž™αžαŸ’αž›αž½αž“αž‚αžΆαžαŸ‹αž•αŸ’αž‘αžΆαž›αŸ‹αž‚αžΊαž‡αžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΌαž…αž˜αž½αž™ "αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž·αžαŸ’αžαž—αž€αŸ’αžαž·αžŸαž»αž‘αŸ’αž’αžŸαžΆαž’"αŸ” αžŠαžΌαž…αž’αž˜αŸ’αž˜αžαžΆαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž’αŸ’αž“αž€αžŸαŸ’αž˜αŸαž‚αŸ’αžšαž…αž·αžαŸ’αž αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αž”αŸ’αžšαŸ‚ αž αžΎαž™αž“αŸαŸ‡αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αž’αžŸαŸ’αžαž·αžšαž—αžΆαž– αž αžΎαž™αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž‚αžΆαŸ†αž„αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’ Powershell αžŠαžΉαž„αž…αŸ’αž”αžΆαžŸαŸ‹αž‡αžΆαž„αž‘αžΈαžαžΆαŸ†αž„αž αžΆαž„αž“αŸ…αžαžΆαž˜αž•αŸ’αž›αžΌαžœαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹ αž‚αžΆαžαŸ‹αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αž„αŸ’αž€αžΎαž "αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž›αŸ’αž’αž”αŸ†αž•αž»αžαžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Minecraft 2020" αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαž”αžΆαž“αž”αž˜αŸ’αžšαžΎαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ†αžšαžΌαž“αŸ…αž€αŸ’αž“αž»αž„ αž‘αžΈαž•αŸ’αžŸαžΆαžš Ruvds. αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαž—αž–αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αžšαž½αž…αž αžΎαž™αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™ αžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš

αž€αžΆαžšαž€αžΆαž”αŸ‹αžˆαžΎαž‡αŸ†αž“αž½αžŸ

αžαŸ’αž„αŸƒαž˜αž½αž™ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αž‘αžΎαž„ mods αž–αžΈαžšαž”αžΈαž‘αŸ€αž αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžαžΆ αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ server αž€αŸ†αž–αž»αž„αž‚αžΆαŸ†αž„αžŠαŸ„αž™αž˜αž·αž“αž”αŸ’αžšαž€αžΆαžŸαžŸαž„αŸ’αžšαŸ’αž‚αžΆαž˜αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αž·αž“αž”αžΆαž“αžŸαžšαžŸαŸαžšαž€αŸ†αž αž»αžŸαž“αŸ…αž€αŸ’αž“αž»αž„ latest.log αž¬αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž‘αŸ αž αžΎαž™αž€αž»αž„αžŸαžΌαž›αžŠαŸ‚αž›αžαžΆαž˜αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαž‚αž½αžšαžαŸ‚αžŸαžšαžŸαŸαžšαž€αŸ†αž αž»αžŸαž“αŸαŸ‡αž αžΎαž™αž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αžΆαžαŸ‹αž˜αž·αž“αž…αž„αŸ‹αžŸαžšαžŸαŸαžš αž‚αžΆαžαŸ‹αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αŸαŸ” αž™αžΎαž„αž˜αžΆαž“ Powershell αž‡αžΆαž˜αž½αž™ cmdlet Tee-αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž™αž€αžœαžαŸ’αžαž»αž˜αž½αž™ αž αžΎαž™αž”αž‰αŸ’αž…αŸαž‰αžœαžΆαž‘αŸ…αž―αž€αžŸαžΆαžš αž“αž·αž„αž‘αŸ…αž€αž»αž„αžŸαžΌαž›αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αŸ”

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

αžœαž·αž’αžΈαž“αŸαŸ‡ Powershell αž“αžΉαž„αž™αž€ StandardOutput αž αžΎαž™αžŸαžšαžŸαŸαžšαžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαŸ” αž€αž»αŸ†αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ’αžšαžΎ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αžœαžΆαž“αžΉαž„αžαŸ’αžšαž‘αž”αŸ‹ System.ComponentModel.Component αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆ StandardOutput αž αžΎαž™ -RedirectStandardOutput αž“αžΉαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž˜αž·αž“αž’αžΆαž…αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžŸαžΌαž›αž”αžΆαž“αž‘αŸ αžŠαŸ‚αž›αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αž‡αŸ€αžŸαžœαžΆαž„αŸ”

αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αž‘αžΎαž„ mods αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ„αŸ‡ αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžƒαžΎαž‰αžαžΆ server αž€αŸαž˜αž·αž“αž˜αžΆαž“ RAM αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαŸ‚αžšαŸ” αž αžΎαž™αž“αŸαŸ‡αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ” αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αž½αž€αžœαžΆαžšαžΆαž›αŸ‹αž–αŸαž›αž“αŸ…αž€αŸ’αž“αž»αž„ start.bat αžŠαŸ‚αž›αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž”αŸ’αžšαžΎ αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžΎαžŸαŸ’αž‚αŸ’αžšαžΈαž”αž“αŸαŸ‡αŸ”

αžŠαŸ„αž™αžŸαžΆαžš Tee-Object αž’αžΆαž“αžαŸ‚ StandardOutput αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ "Just Like This" αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαžŸαŸ’αž‚αŸ’αžšαžΈαž”αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™ Minecraft αžαŸ’αž›αž½αž“αž―αž„αŸ” αž…αžΌαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž™αž€αž—αžΆαž–αžαŸ’αž‡αž·αž›αž”αŸ†αž•αž»αžαž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αž αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžαŸ’αžšαžΌαžœαžαŸ‚αž”αŸ’αžšαž˜αžΌαž›αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž—αŸ’αž›αžΆαž˜αŸ—αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αžŸαžΌαž˜αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αŸ†αžŽαŸ‚αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαŸ” forge.

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

αžŠαŸ„αž™αž”αŸ’αžšαžΎ sort-object αž™αžΎαž„αž“αžΉαž„αž™αž€αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž˜αžΆαž“αž…αŸ†αž“αž½αž“αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž‚αŸαž‡αžΆαž“αž·αž…αŸ’αž… αž˜αž·αž“αžαžΆαž’αŸ’αž“αž€αžŠαžΆαž€αŸ‹αž…αŸ†αž“αž½αž“αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž“αŸ„αŸ‡αž‘αŸαŸ” αž—αžΆαž–αžαŸ’αž‡αž·αž›αž…αŸ’αžšαž’αžΌαžŸαž”αŸ†αž•αž»αžαŸ”

αž₯αž‘αžΌαžœαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž™αž€αž”αžšαž·αž˜αžΆαžŽαž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž αžΎαž™αžŸαžšαžŸαŸαžšαž…αŸ†αž“αž½αž“αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαŸ”

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

αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·

αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αžƒαžΎαž‰αž―αž€αžŸαžΆαžš .bat αž–αžΈαž’αŸ’αž“αž€αžŠαž‘αŸƒ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαž˜αž·αž“αž”αžΆαž“αž‚αž·αžαž–αžΈαž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹αž“αŸ„αŸ‡αž‘αŸαŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαžšαž’αžΆαž€αŸ‹αžšαž’αž½αž›αžαžΎαž’αŸ’αžœαžΎαžŠαžΌαž…αž˜αŸ’αžαŸαž…αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž―αž€αžŸαžΆαžš mod αž¬αž›αž»αž”αž’αŸ’αžœαžΈαž˜αž½αž™?
αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž…αžΌαžšαž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αž±αŸ’αž™αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž–αžΈαž˜αž»αž“αž”αžΆαž“αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž…αž˜αŸ’αž›αŸ‚αž€αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αžΎαž„αžœαž·αž‰αžŠαŸ„αž™αž˜αž·αž“αž‚αž·αžαž–αžΈαž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž”αž·αž‘αŸ” αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαž›αŸαžαž€αžΌαžŠαž…αŸαž‰αŸ” 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 αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž“αŸ„αŸ‡αžœαžΆαž‡αžΆαž€αžΆαžšαž›αŸ’αž’αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž”αž‰αŸ’αž…αž”αŸ‹ αž“αž·αž„αž αŸαžαž»αž•αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž•αž„αžŠαŸ‚αžšαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž™αžΎαž„αžŸαžšαžŸαŸαžšαž›αž‘αŸ’αž’αž•αž›αž“αŸƒ Start-Process αž‘αŸ…αž‡αžΆαž’αžαŸαžšαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžœαžΆαž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡:

$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

αžœαžΆαž˜αž·αž“αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž‘αŸαŸ” αž€αžΆαžšαž…αžΌαž› αž“αž·αž„αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž’αž˜αŸ’αž˜αžαžΆ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαž“αŸ…αž€αž˜αŸ’αžšαž·αžαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž¬αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αžαžΌαž…αž…αž„αŸ’αž’αŸ€αžαŸ” αžœαžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž™αŸ‰αžΆαž„αžαžΉαž„αžšαžΉαž„αž±αŸ’αž™αž”αŸ’αžšαžΎαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΏαž„αž“αŸαŸ‡αž‘αŸαŸ”

αž™αžΎαž„αž”αžΆαž“αžαž˜αŸ’αžšαŸ€αž”αž…αŸαž‰αž€αžΆαžšαž…αžΌαž›αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ” αž₯αž‘αžΌαžœαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž—αžΆαžšαž€αž·αž…αŸ’αž…αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αž™αžΎαž„αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž–αžΈ 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

αžŠαŸ†αž”αžΌαž„ αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αŸ‰αžΌαžŒαž»αž›αžŠαŸ‚αž›αž“αžΉαž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž€αŸ’αžšαŸ…αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž“αžΉαž„αžŸαŸ’αžαžΆαž”αŸ‹ αž“αž·αž„αž€αžαŸ‹αžαŸ’αžšαžΆαž›αž‘αŸ’αž’αž•αž›αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αž›αž»αž€αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš αž‚αžΆαžαŸ‹αžŸαž½αžšαž–αžΈαžαžαžŽαžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš 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

αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ - Autologon

αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αž›αž»αž€αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž‘αž‘αž½αž›αž™αž€αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžˆαŸ’αž˜αŸ„αŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ αž“αž·αž„αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎβ€‹αžˆαŸ’αž˜αŸ„αŸ‡β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎβ€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž‰αŸ’αž‡αžΆαž€αŸ‹β€‹αž‘αŸ αžˆαŸ’αž˜αŸ„αŸ‡β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎβ€‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎαŸ”

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

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹