เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershell

เบกเบทเป‰เบ—เบตเปˆเบ”เบตเบ—เบธเบเบ„เบปเบ™, เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‡เปˆเบฒเบเป† "เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบขเบธเบ”เบเบฒเบ™ pinging เป‚เบฎเบ”เบ”เป‰เบงเบเบ•เบปเบงเป€เบญเบ‡เป„เบ”เป‰เปเบ™เบงเปƒเบ”. เบšเปเปˆเบกเบตเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ เบซเบผเบท SMS!โ€

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershellเบˆเบฒเบเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”

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

เปƒเบœเบเปเปˆเบ•เบฒเบกเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบŠเบญเบเบซเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบซเบผเบทเบขเบฒเบเบฎเบนเป‰เบขเบฒเบเป€เบซเบฑเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ‚เปเปƒเบซเป‰เบžเบฒเบเปƒเบ•เป‰ cat เป„เบ”เป‰.

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

เบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบ„เบปเบ™เบกเบฑเบ console/terminal

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบงเปˆเบฒเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบ‚เบฑเบ”เปเบเป‰เบ‡เปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เบธเบเบ„เบปเบ™เบเบฑเบ‡เปƒเบŠเป‰ console email clients เปเบฅเบฐ GUI เบˆเบฐเบšเปเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบš *nix.

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

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershell

Add-Type -assembly System.Windows.Forms #ะŸะพะดะบะปัŽั‡ะธะผ ะฑะธะฑะปะธะพั‚ะตะบัƒ
$main_form = New-Object System.Windows.Forms.Form #ะกะพะทะดะฐะตะผ ะพะฑัŠะตะบั‚ ั ะฝะฐัˆะธะผ "ะพะบะฝะพะผ"

#ะ—ะฐะดะฐะตะผ ะดะปั ะฝะตะณะพ ะฟะฐั€ะฐะผะตั‚ั€ั‹
$main_form.Text ='Links up' #ะ˜ะผั ะฒ ะทะฐะณะพะปะพะฒะบะต
$main_form.Width = 300 #ะจะธั€ะธะฝะฐ ะพะบะฝะฐ
$main_form.Height = 200 #ะ’ั‹ัะพั‚ะฐ ะพะบะฝะฐ
$main_form.AutoSize = $true #ะ”ะฐะตะผ ะตะผัƒ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะฐะผะพัั‚ะพัั‚ะตะปัŒะฝะพ ะธะทะผะตะฝัั‚ัŒ ั€ะฐะทะผะตั€, ะฟั€ะธ ะฝะตะพะฑั…ะพะดะธะผะพัั‚ะธ
$main_form.ShowDialog() #ะ’ั‹ะทั‹ะฒะฐะตะผ "ะพะบะฝะพ"

เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบกเบญเบปเบ‡เบ›เบฐเบเบญเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบชเปˆเบ™เบตเป‰เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบš Windwows-window tautology เบ›เบฐเบ–เบปเบก?.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershell

Add-Type -assembly System.Windows.Forms #ะŸะพะดะบะปัŽั‡ะธะผ ะฑะธะฑะปะธะพั‚ะตะบัƒ

$main_form = New-Object System.Windows.Forms.Form #ะกะพะทะดะฐะตะผ ะฟะตั€ะตะผะตะฝะฝัƒัŽ ั ะฝะฐัˆะธะผ "ะพะบะฝะพะผ"

#ะ—ะฐะดะฐะตะผ ะดะปั ะฝะตะณะพ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ั‡ะตั€ะตะท ะฟะฐั€ะฐะผะตั‚ั€ั‹
$main_form.Text ='Links up' #ะ˜ะผั ะฒ ะทะฐะณะพะปะพะฒะบะต
$main_form.Width = 300 #ะจะธั€ะธะฝะฐ ะพะบะฝะฐ
$main_form.Height = 200 #ะ’ั‹ัะพั‚ะฐ ะพะบะฝะฐ
$main_form.AutoSize = $true #ะ”ะฐะตะผ ะตะผัƒ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะฐะผะพัั‚ะพัั‚ะตะปัŒะฝะพ ะธะทะผะตะฝัั‚ัŒ ั€ะฐะทะผะตั€, ะฟั€ะธ ะฝะตะพะฑั…ะพะดะธะผะพัั‚ะธ

$Label = New-Object System.Windows.Forms.Label #ะ’ัะต ัะปะตะผะตะฝั‚ั‹ ั„ะพั€ะผั‹ ะฑัƒะดัƒั‚ ะทะฐะฝะพัะธั‚ัŒัั ะฒ ะฟะตั€ะตะผะตะฝะฝั‹ะต, ะฝะพ ะฟะพ ั„ะฐะบั‚ัƒ ัั‚ะพ ะพะฑัŠะตะบั‚ั‹, ะบะฐะบ ะปัŽะฑั‹ะต ะดั€ัƒะณะธะต ะฟะตั€ะตะผะตะฝะฝั‹ะต ะฒ Powershell
$Label.Text = "ะŸั€ะธะฒะตั‚! ะฏ ัะปะตะผะตะฝั‚ะฐั€ะฝะพะต Windows-ะพะบะฝะพ, ะฐ ั‡ะตะณะพ ะดะพะฑะธะปัั ั‚ั‹?" #ะ’ั‹ะฒะพะดะธะผั‹ะน ั‚ะตะบัั‚
$Label.Location  = New-Object System.Drawing.Point(10,65) #ะ ะฐัะฟะพะปะพะถะตะฝะธะต ะพะฑัŠะตะบั‚ะฐ ะฒะฝัƒั‚ั€ะธ ั„ะพั€ะผั‹ ะฟะพ ะณะพั€ะธะทะพะฝั‚ะฐะปะธ ะธ ะฒะตั€ั‚ะธะบะฐะปะธ (x,y)
$Label.AutoSize = $true 

$main_form.Controls.Add($Label) #ะดะพะฑะฐะฒะปัะตะผ ัะพะทะดะฐะฝะฝั‹ะน ะพะฑัŠะตะบั‚ ะบ ั„ะพั€ะผะต, ั‡ั‚ะพะฑั‹ ะพะฝ ะฝะต ะฟะพั‚ะตั€ัะปัั ะฟั€ะธ ะฒั‹ะฟะพะปะฝะตะฝะธะธ ัะบั€ะธะฟั‚ะฐ

$main_form.ShowDialog() #ะ’ั‹ะทั‹ะฒะฐะตะผ ะพัะบะพั€ะฑะธั‚ะตะปัŒะฝะพ ัะปะตะผะตะฝั‚ะฐั€ะฝะพะต ะพะบะฝะพ

เบกเบฒเป€เบžเบตเปˆเบกเบฅเบณเป‚เบžเบ‡

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบ‚เป‰เบญเบ "pinged Yandex" เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡ *.iso เป„เบ”เป‰เบฎเบฑเบš GUI เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเบžเบฝเบ‡เบžเป. เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบกเบตเบขเบนเปˆ, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡ restart script เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡.

เบ—เปเบฒเบญเบดเบ”, เปƒเบซเป‰เปเบ•เป‰เบกเบชเบญเบ‡เป„เบญเบ„เบญเบ™เปเบฅเบฐเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบฎเบนเบšเบžเบฒเบš.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershell

$PictureBox = New-Object system.Windows.Forms.PictureBox #ะžะฑัŠะตะบั‚ ะดะปั ะฒั‹ะฒะพะดะฐ ะธะทะพะฑั€ะฐะถะตะฝะธะน ะฝะฐะทั‹ะฒะฐะตั‚ัั ะฒะฟะพะปะฝะต ะปะพะณะธั‡ะฝะพ
$PictureBox.width = 10
$PictureBox.height = 10
$PictureBox.location = New-Object System.Drawing.Point(178,12)

#ะ’ะพั‚ ั‚ัƒั‚ ะผั‹ ะฟะตั€ะตั…ะพะดะธะผ ะบ ะดะตะปัƒ ะฟั€ะธะฒัะทั‹ะฒะฐะตะผ ะฒั‹ะฒะพะดะธะผัƒัŽ ะบะฐั€ั‚ะธะฝะบัƒ ะบ ั€ะตะทัƒะปัŒั‚ะฐั‚ัƒ ะฟั€ะพะฒะตั€ะบะธ ะดะพัั‚ัƒะฟะฝะพัั‚ะธ ัƒะทะปะฐ ะธัะฟะพะปัŒะทัƒั ะบะพะผะฐะฝะดะปะตั‚
#<b>test-connection</b>, ะณะดะต:
#-Count - ะฟะตั€ะตะดะฐะตั‚ ะบะพะป-ะฒะพ ะทะฐะฟั€ะพัะพะฒ
#-computer - IP ะธะปะธ ะดะพะผะตะฝะฝะพะต ะธะผั ะดะปั ะทะฐะฟั€ะพัะฐ
#-quiet - ะดะปั ั‚ะพะณะพ ั‡ั‚ะพะฑั‹ ะฝะฐะผ ะฒะตั€ะฝัƒะปะพััŒ ั‚ะพะปัŒะบะพ Boolean ะทะฝะฐั‡ะตะฝะธะต
if ((test-connection -Count 1 -computer ya.ru -quiet) -eq $True) {
	$PictureBox.imageLocation = "C:Testyes.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
Else {
	$PictureBox.imageLocation = "C:Testno.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
$PictureBox.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::zoom

$main_form.Controls.Add($PictureBox)

เบŠเบทเปˆ DNS เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เปเบกเปˆเบ™โ€‹เบซเบผเบดเป‰เบ™ pranks เบญเบตเบโ€‹เป€เบ—เบทเปˆเบญโ€‹เบซเบ™เบถเปˆเบ‡ ...

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershell
เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบธเปˆเบกเป€เบžเบทเปˆเบญเบชเบฒเบกเบฒเบ”เบญเบฑเบšเป€เบ”เบ”เบเบฒเบ™เบญเปˆเบฒเบ™เป„เบ”เป‰.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershell

$Button = New-Object System.Windows.Forms.Button
$Button.Location = New-Object System.Drawing.Size(100,150) 
$Button.Size = New-Object System.Drawing.Size(80,30)
$Button.Text = "Reload"

# ะ’ะตัˆะฐะตะผ ะฝะฐ ัะพะฑั‹ั‚ะธะต ะฝะฐะถะฐั‚ะธั ะบะฝะพะฟะบะธ ะพะฑั€ะฐั‰ะตะฝะธะต ะบะฐะถะดะพะณะพ PictureBox ัะพะณะปะฐัะฝะพ ั€ะฐะฝะตะต ะพะฟะธัะฐะฝะฝะพะน ะปะพะณะธะบะต
$Button.Add_Click({ 
	if ((Test-Connection -Count 1 -computer ya.ru -quiet) -eq $True)
		{$PictureBox.imageLocation	= "C:Testyes.png"}
	Else {$PictureBox.imageLocation	= "C:Testno.png"}
	  
	if ((Test-Connection -Count 1 -computer 8.8.8.8 -quiet) -eq $True)
		{$PictureBox1.imageLocation	= "C:Testyes.png"}
	Else {$PictureBox1.imageLocation	= "C:Testno.png"}
 	})

$main_form.Controls.Add($Button)

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershell

เบชเบดเปˆเบ‡เบกเบฐเบซเบฑเบ”, เบ›เบฐเบˆเบธเบšเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”!?

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

spectacle เบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบš faint เบ‚เบญเบ‡เบซเบปเบงเปƒเบˆ

Add-Type -assembly System.Windows.Forms #ะŸะพะดะบะปัŽั‡ะธะผ ะฑะธะฑะปะธะพั‚ะตะบัƒ

$main_form = New-Object System.Windows.Forms.Form #ะกะพะทะดะฐะตะผ ะฟะตั€ะตะผะตะฝะฝัƒัŽ ั ะฝะฐัˆะธะผ "ะพะบะฝะพะผ"

#ะ—ะฐะดะฐะตะผ ะดะปั ะฝะตะณะพ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ั‡ะตั€ะตะท ะฟะฐั€ะฐะผะตั‚ั€ั‹
$main_form.Text ='Links up' #ะ˜ะผั ะฒ ะทะฐะณะพะปะพะฒะบะต
$main_form.Width = 300 #ะจะธั€ะธะฝะฐ ะพะบะฝะฐ
$main_form.Height = 200 #ะ’ั‹ัะพั‚ะฐ ะพะบะฝะฐ
$main_form.AutoSize = $true #ะ”ะฐะตะผ ะตะผัƒ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะฐะผะพัั‚ะพัั‚ะตะปัŒะฝะพ ะธะทะผะตะฝัั‚ัŒ ั€ะฐะทะผะตั€, ะฟั€ะธ ะฝะตะพะฑั…ะพะดะธะผะพัั‚ะธ

$Label = New-Object System.Windows.Forms.Label #ะ’ัะต ัะปะตะผะตะฝั‚ั‹ ั„ะพั€ะผั‹ ะฑัƒะดัƒั‚ ะทะฐะฝะพัะธั‚ัŒัั ะฒ ะฟะตั€ะตะผะตะฝะฝั‹ะต, ะฝะพ ะฟะพ ั„ะฐะบั‚ัƒ ัั‚ะพ ะพะฑัŠะตะบั‚ั‹, ะบะฐะบ ะปัŽะฑั‹ะต ะดั€ัƒะณะธะต ะฟะตั€ะตะผะตะฝะฝั‹ะต ะฒ Powershell
$Label.Text = "ya.ru		............................" #ะ’ั‹ะฒะพะดะธะผั‹ะน ั‚ะตะบัั‚ 
$Label.Location  = New-Object System.Drawing.Point(15,10) #ะ ะฐัะฟะพะปะพะถะตะฝะธะต ะพะฑัŠะตะบั‚ะฐ ะฒะฝัƒั‚ั€ะธ ั„ะพั€ะผั‹ ะฟะพ ะณะพั€ะธะทะพะฝั‚ะฐะปะธ ะธ ะฒะตั€ั‚ะธะบะฐะปะธ (x,y)
$Label.AutoSize = $true 

$Label1 = New-Object System.Windows.Forms.Label #ะ’ัะต ัะปะตะผะตะฝั‚ั‹ ั„ะพั€ะผั‹ ะฑัƒะดัƒั‚ ะทะฐะฝะพัะธั‚ัŒัั ะฒ ะฟะตั€ะตะผะตะฝะฝั‹ะต, ะฝะพ ะฟะพ ั„ะฐะบั‚ัƒ ัั‚ะพ ะพะฑัŠะตะบั‚ั‹, ะบะฐะบ ะปัŽะฑั‹ะต ะดั€ัƒะณะธะต ะฟะตั€ะตะผะตะฝะฝั‹ะต ะฒ Powershell
$Label1.Text = "8.8.8.8		............................" #ะ’ั‹ะฒะพะดะธะผั‹ะน ั‚ะตะบัั‚ googl-ะพะฒัะบะธะน DNS-ะฝะธะบ
$Label1.Location  = New-Object System.Drawing.Point(15,30) #ะ ะฐัะฟะพะปะพะถะตะฝะธะต ะพะฑัŠะตะบั‚ะฐ ะฒะฝัƒั‚ั€ะธ ั„ะพั€ะผั‹ ะฟะพ ะณะพั€ะธะทะพะฝั‚ะฐะปะธ ะธ ะฒะตั€ั‚ะธะบะฐะปะธ (x,y)
$Label1.AutoSize = $true 

$Label2 = New-Object System.Windows.Forms.Label
$Label2.Text = "192.168.x.x	............................"
$Label2.Location  = New-Object System.Drawing.Point(15,50)
$Label2.AutoSize = $true

$Label3 = New-Object System.Windows.Forms.Label
$Label3.Text = "192.168.x.x	............................"
$Label3.Location  = New-Object System.Drawing.Point(15,70)
$Label3.AutoSize = $true

$Label4 = New-Object System.Windows.Forms.Label
$Label4.Text = "10.0.x.x	 ............................"
$Label4.Location  = New-Object System.Drawing.Point(15,90)
$Label4.AutoSize = $true

$Label5 = New-Object System.Windows.Forms.Label
$Label5.Text = "162.102.x.x	 ............................"
$Label5.Location  = New-Object System.Drawing.Point(15,110)
$Label5.AutoSize = $true

$PictureBox = New-Object system.Windows.Forms.PictureBox #ะžะฑัŠะตะบั‚ ะดะปั ะฒั‹ะฒะพะดะฐ ะธะทะพะฑั€ะฐะถะตะฝะธะน ะฝะฐะทั‹ะฒะฐะตั‚ัั ะฒะฟะพะปะฝะต ะปะพะณะธั‡ะฝะพ
$PictureBox.width = 10
$PictureBox.height = 10

#ะ’ะพั‚ ั‚ัƒั‚ ะผั‹ ะฟะตั€ะตั…ะพะดะธะผ ะบ ะดะตะปัƒ ะฟั€ะธะฒัะทั‹ะฒะฐะตะผ ะฒั‹ะฒะพะดะธะผัƒัŽ ะบะฐั€ั‚ะธะฝะบัƒ ะบ ั€ะตะทัƒะปัŒั‚ะฐั‚ัƒ ะฟั€ะพะฒะตั€ะบะธ ะดะพัั‚ัƒะฟะฝะพัั‚ะธ ัƒะทะปะฐ ะธัะฟะพะปัŒะทัƒั ะบะพะผะฐะฝะดะปะตั‚
#<b>test-connection</b>, ะณะดะต:
#-Count - ะฟะตั€ะตะดะฐะตั‚ ะบะพะป-ะฒะพ ะทะฐะฟั€ะพัะพะฒ
#-computer - IP ะธะปะธ ะดะพะผะตะฝะฝะพะต ะธะผั ะดะปั ะทะฐะฟั€ะพัะฐ
#-quiet - ะดะปั ั‚ะพะณะพ ั‡ั‚ะพะฑั‹ ะฝะฐะผ ะฒะตั€ะฝัƒะปะพััŒ ั‚ะพะปัŒะบะพ Boolean ะทะฝะฐั‡ะตะฝะธะต
$PictureBox.location = New-Object System.Drawing.Point(235,12)
if ((test-connection -Count 1 -computer ya.ru -quiet) -eq $True) {
	$PictureBox.imageLocation = "C:Testyes.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
Else {
	$PictureBox.imageLocation = "C:Testno.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
$PictureBox.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::zoom

$PictureBox1 = New-Object system.Windows.Forms.PictureBox #ะžะฑัŠะตะบั‚ ะดะปั ะฒั‹ะฒะพะดะฐ ะธะทะพะฑั€ะฐะถะตะฝะธะน ะฝะฐะทั‹ะฒะฐะตั‚ัั ะฒะฟะพะปะฝะต ะปะพะณะธั‡ะฝะพ
$PictureBox1.width = 10
$PictureBox1.height = 10
$PictureBox1.location = New-Object System.Drawing.Point(235,32)
if ((test-connection -Count 1 -computer 8.8.8.8 -quiet) -eq $True) {
	$PictureBox1.imageLocation = "C:Testyes.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
Else {
	$PictureBox1.imageLocation = "C:Testno.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
$PictureBox1.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::zoom

$PictureBox2 = New-Object system.Windows.Forms.PictureBox #ะžะฑัŠะตะบั‚ ะดะปั ะฒั‹ะฒะพะดะฐ ะธะทะพะฑั€ะฐะถะตะฝะธะน ะฝะฐะทั‹ะฒะฐะตั‚ัั ะฒะฟะพะปะฝะต ะปะพะณะธั‡ะฝะพ
$PictureBox2.width = 10
$PictureBox2.height = 10
$PictureBox2.location = New-Object System.Drawing.Point(235,52)
if ((test-connection -Count 1 -computer 192.168.x.x -quiet) -eq $True) {
	$PictureBox2.imageLocation = "C:Testyes.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
Else {
	$PictureBox2.imageLocation = "C:Testno.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
$PictureBox2.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::zoom

$PictureBox3 = New-Object system.Windows.Forms.PictureBox #ะžะฑัŠะตะบั‚ ะดะปั ะฒั‹ะฒะพะดะฐ ะธะทะพะฑั€ะฐะถะตะฝะธะน ะฝะฐะทั‹ะฒะฐะตั‚ัั ะฒะฟะพะปะฝะต ะปะพะณะธั‡ะฝะพ
$PictureBox3.width = 10
$PictureBox3.height = 10
$PictureBox3.location = New-Object System.Drawing.Point(235,72)
if ((test-connection -Count 1 -computer 192.168.x.x -quiet) -eq $True) {
	$PictureBox3.imageLocation = "C:Testyes.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
Else {
	$PictureBox3.imageLocation = "C:Testno.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
$PictureBox3.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::zoom

$PictureBox4 = New-Object system.Windows.Forms.PictureBox #ะžะฑัŠะตะบั‚ ะดะปั ะฒั‹ะฒะพะดะฐ ะธะทะพะฑั€ะฐะถะตะฝะธะน ะฝะฐะทั‹ะฒะฐะตั‚ัั ะฒะฟะพะปะฝะต ะปะพะณะธั‡ะฝะพ
$PictureBox4.width = 10
$PictureBox4.height = 10
$PictureBox4.location = New-Object System.Drawing.Point(235,92)
if ((test-connection -Count 1 -computer 10.0.x.x -quiet) -eq $True) {
	$PictureBox4.imageLocation = "C:Testyes.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
Else {
	$PictureBox4.imageLocation = "C:Testno.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
}
$PictureBox1.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::zoom

$PictureBox5 = New-Object system.Windows.Forms.PictureBox #ะžะฑัŠะตะบั‚ ะดะปั ะฒั‹ะฒะพะดะฐ ะธะทะพะฑั€ะฐะถะตะฝะธะน ะฝะฐะทั‹ะฒะฐะตั‚ัั ะฒะฟะพะปะฝะต ะปะพะณะธั‡ะฝะพ
$PictureBox5.width = 10
$PictureBox5.height = 10
$PictureBox5.location = New-Object System.Drawing.Point(235,112)
if ((test-connection -Count 1 -computer 162.102.x.x -quiet) -eq $True) {
	$PictureBox5.imageLocation = "C:Testyes.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
	}
Else {
	$PictureBox5.imageLocation = "C:Testno.png" #ะžะฑัŠะตะบั‚ ะพะฑั€ะฐั‰ะฐะตั‚ัั ะบ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะตะน ะบะฐั€ั‚ะธะฝะบะต 
	}
$PictureBox5.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::zoom

$Button = New-Object System.Windows.Forms.Button
$Button.Location = New-Object System.Drawing.Size(100,150) 
$Button.Size = New-Object System.Drawing.Size(80,30)
$Button.Text = "Reload"

# ะ’ะตัˆะฐะตะผ ะฝะฐ ัะพะฑั‹ั‚ะธะต ะฝะฐะถะฐั‚ะธั ะบะฝะพะฟะบะธ ะพะฑั€ะฐั‰ะตะฝะธะต ะบะฐะถะดะพะณะพ PictureBox ัะพะณะปะฐัะฝะพ ั€ะฐะฝะตะต ะพะฟะธัะฐะฝะฝะพะน ะปะพะณะธะบะต
$Button.Add_Click({ 
	if ((Test-Connection -Count 1 -computer ya.ru -quiet) -eq $True)
		{$PictureBox.imageLocation	= "C:Testyes.png"}
	Else {$PictureBox.imageLocation	= "C:Testno.png"}
	  
	if ((Test-Connection -Count 1 -computer 8.8.8.8 -quiet) -eq $True)
		{$PictureBox1.imageLocation	= "C:Testyes.png"}
	Else {$PictureBox1.imageLocation	= "C:Testno.png"}

	if ((Test-Connection -Count 1 -computer 192.168.x.x -quiet) -eq $True)
		{$PictureBox2.imageLocation	= "C:Testyes.png"}
	Else {$PictureBox2.imageLocation	= "C:Testno.png"}

	if ((Test-Connection -Count 1 -computer 192.168.x.x -quiet) -eq $True)
		{$PictureBox3.imageLocation	= "C:Testyes.png"}
	Else {$PictureBox3.imageLocation	= "C:Testno.png"}

	if ((Test-Connection -Count 1 -computer 10.0.x.x -quiet) -eq $True)
		{$PictureBox4.imageLocation	= "C:Testyes.png"}
	Else {$PictureBox4.imageLocation	= "C:Testno.png"}

	if ((Test-Connection -Count 1 -computer 162.102.x.x -quiet) -eq $True)
		{$PictureBox5.imageLocation	= "C:Testyes.png"}
	Else {$PictureBox5.imageLocation	= "C:Testno.png"}
	})

$main_form.Controls.Add($Label) #ะดะพะฑะฐะฒะปัะตะผ ัะพะทะดะฐะฝะฝั‹ะน ะพะฑัŠะตะบั‚ ะบ ั„ะพั€ะผะต, ั‡ั‚ะพะฑั‹ ะพะฝ ะฝะต ะฟะพั‚ะตั€ัะปัั ะฟั€ะธ ะฒั‹ะฟะพะปะฝะตะฝะธะธ ัะบั€ะธะฟั‚ะฐ
$main_form.Controls.Add($Label1)
$main_form.Controls.Add($Label2)
$main_form.Controls.Add($Label3)
$main_form.Controls.Add($Label4)
$main_form.Controls.Add($Label5)
$main_form.Controls.Add($PictureBox)
$main_form.Controls.Add($PictureBox1)
$main_form.Controls.Add($PictureBox2)
$main_form.Controls.Add($PictureBox3)
$main_form.Controls.Add($PictureBox4)
$main_form.Controls.Add($PictureBox5)
$main_form.Controls.Add($Button)

$main_form.ShowDialog() #ะ’ั‹ะทั‹ะฒะฐะตะผ ะพัะบะพั€ะฑะธั‚ะตะปัŒะฝะพ ัะปะตะผะตะฝั‚ะฐั€ะฝะพะต ะพะบะฝะพ

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

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบเป‰เบฒเบเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบฅเบฐเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ•เบปเบงเปเบ›เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ:

$script_path	= "C:TestPS ping"

#ะŸะตั€ะตะตะทะถะฐะตะผ ะฒ ั„ะธะฝะบั†ะธัŽ ัƒะถะต ัะพะทะดะฐะฝะฝั‹ะน ะพะฑัŠะตะบั‚ PictureBox ะธ IP-ะฐะดั€ะตัั ะบะพั‚ะพั€ั‹ะน ะฝัƒะถะฝะพ ะฟั€ะพะฒะตั€ะธั‚ัŒ.
#ะะฐ ะฒั‹ั…ะพะดะต ะพะฝะพ ะผะตะฝัะตั‚ ะฟะพะดะณั€ัƒะถะฐะตะผัƒัŽ ะบะฐั€ั‚ะธะฝะบัƒ.
function get_status($PictureBox,$path_ip) {
	if ((Test-Connection -Count 1 -computer $path_ip -quiet) -eq $True)
		{$PictureBox.imageLocation	= $script_path + "yes.png"}
	Else {$PictureBox.imageLocation	= $script_path + "no.png"} 
	}

เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™ host เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบžเบฒเบเบ™เบญเบ path.txt, เบ‚เบฝเบ™เบกเบฑเบ™เปƒเบ™เบฎเบนเบšเปเบšเบš "ip/host-functional-name/", เปเบฅเบฐเปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™ arrays. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ•เปเบฒเปเบซเบ™เปˆเบ‡ Y เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบซเบผเบฒเบเบ‚เบถเป‰เบ™. เบ—เบฑเบ‡เปเบปเบ”เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบกเบตเป‚เบญเบเบฒเบ”เบชเป‰เบฒเบ‡เบ›เป‰เบฒเบเบเบณเบเบฑเบš เปเบฅเบฐเบเปˆเบญเบ‡เปเบฒเบเป‚เบ”เบเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™:

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershell

#ัะพะทะดะฐะตะผ ะพะฟะธัะฐั‚ะตะปัŒะฝัƒัŽ ะปะธะฝะธัŽ, ะฝะฐ ะฒั…ะพะด ะธะดัƒั‚: ะพะฑัŠะตะบั‚ Label, IP-ะฐะดั€ะตัั, ะพะฟะธัะฐะฝะธะต ะธ ะฟะพะทะธั†ะธั ะฟะพ ะพัะธ Y
Function Create_line($label,$path_ip,$caption, $top){ 
	$label.Location = New-Object System.Drawing.Point(1, $top)
	$label.text = $path_ip+$caption
	$label.font = $font
	$Label.AutoSize = $true
	}
#ัะพะทะดะฐะตะผ ะธะฝะดะธะบะฐั‚ะพั€ ะดะปั ะพะฟะธัะฐั‚ะตะปัŒะฝะพะน ะปะธะฝะธัŽ, ะฝะฐ ะฒั…ะพะด ะธะดัƒั‚: ะพะฑัŠะตะบั‚ PictureBox, IP-ะฐะดั€ะตัั ะธ ะฟะพะทะธั†ะธั ะฟะพ ะพัะธ Y
Function Create_link($PictureBox,$path_ip, $top){ 
	$PictureBox.width	= 10
	$PictureBox.height	= 10
	$PictureBox.location	= New-Object System.Drawing.Point(210,$top)
	get_status -PictureBox $PictureBox -path_ip $path_ip
	$PictureBox.SizeMode	= [System.Windows.Forms.PictureBoxSizeMode]::zoom
	}

$line = Get-content -LiteralPath $script_path"path.txt" #ะฒั‹ั‚ะฐัะบะธะฒะฐะตะผ ะดะฐะฝะฝั‹ะต ะพ ะฝะตะพะฑั…ะพะดะธะผั‹ั… ั…ะพัั‚ะฐั…
$len = $line.Length	#ะฒั‹ั‡ะธัะปัะตะผ ะดะปะธะฝัƒ, ะฐ ั‚ะพั‡ะฝะตะต ะผะฐััะธะฒ ะดะปะธะฝ ะบะฐะถะดะพะน ัั‚ั€ะพะบะธ

$i = 0

#ะดะฐะปะตะต ะพะฑัŠัะฒะปัะตะผ ะผะฐััะธะฒั‹ ะบะพั‚ะพั€ั‹ะต ะฟะพะฝะฐะดะพะฑัั‚ัั ะดะฐะปัŒัˆะต
$ip = @()	#ะผะฐััะธะฒ ip
$capt = @()	#ะผะฐััะธะฒ ะพะฟะธัะฐะฝะธั
$Labels =@()	#ะผะฐััะธะฒ Label
$PictureBoxs =@()	#ะผะฐััะธะฒ PictureBox

while($i -lt $len){
	$f = $line[$i].IndexOf("/") #ะฒั‹ั‡ะธัะปัะตะผ ะฟะพะทะธั†ะธัŽ ะฝะฐั‡ะฐะปะฐ ะพะฟะธัะฐะฝะธั
	$l = $line[$i].LastIndexOf("/")	#ะฒั‹ั‡ะธัะปัะตะผ ะฟะพะทะธั†ะธัŽ ะบะพะฝั†ะฐ ะพะฟะธัะฐะฝะธั
	$ip += $line[$i].Substring(0,$f)	#ะฒั‹ั‚ะฐัะบะธะฒะฐะตะผ ip
	$capt += $line[$i].Substring($f+1,$l-$f-1)	#ะฒั‹ั‚ะฐัะบะธะฒะฐะตะผ ะพะฟะธัะฐะฝะธะต

	#ัะพะทะดะฐะตะผ ะฟะพะปะต Label
	Create_line -label ($label_obj = New-Object System.Windows.Forms.Label) -path_ip $ip[$i] -caption $capt[$i] -top $label_from_top
	#ัะพะทะดะฐะตะผ ะฟะพะปะต PictureBox
	Create_link -PictureBox ($PictureBox_obj = New-Object system.Windows.Forms.PictureBox) -path_ip $ip[$i] -top $label_from_top

	$label_from_top += 15	#ะดะตะปะฐะตะผ "ัˆะฐะณ" ะฟะพ ะพัะธ Y

	$Labels	+= $label_obj	#ะฒะฝะพัะธะผ ัะพะทะดะฐะฝะฝั‹ะน Label ะฒ ะพะฑั‰ะธะน ะผะฐััะธะฒ
	$PictureBoxs	+= $PictureBox_obj	#ะฒะฝะพัะธะผ ัะพะทะดะฐะฝะฝั‹ะน PictureBox ะฒ ะพะฑั‰ะธะน ะผะฐััะธะฒ
	$main_form.Controls.Add($Labels[$i])
	$main_form.Controls.Add($PictureBoxs[$i])
	$i	+=1
	}

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

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ Powershell

$Label0	= New-Object System.Windows.Forms.Label
$Label0.Text	= Get-Date
$Label0.Location	= New-Object System.Drawing.Point(80,180)
$Label0.AutoSize	= $true
$main_form.Controls.Add($Label0)
$Button.Add_Click({ 
	while($i -lt $len){
		get_status -PictureBox $PictureBoxs[$i] -path_ip $ip[$i]
		$i +=1
		}
	$Label0.Text	= Get-Date 
	})

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

Add-Type -AssemblyName System.Speech
$voice	= New-Object System.Speech.Synthesis.SpeechSynthesizer
$voice.Rate	= 5
$voice.Speak("ะ’ะพั€ะฝะธะฝะณ! ะ’ะพั€ะฝะธะฝะณ! ะ‘ะฐะนะท ะธะท ะฐะฝะดะตั€ ะฐั‚ั‚ะฐะบ!")

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบปเบเปเบ•เปˆเบ‡เบชเบญเบ‡เบชเบฒเบกเบขเปˆเบฒเบ‡เปเบฅเบฐเบ™เปเบฒเบกเบฑเบ™เบกเบฒเป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เบ—เบตเปˆเบชเบฐเบ”เบงเบเบชเปเบฒเบฅเบฑเบšเบ‚เป‰เบญเบ, เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเป€เบ›เบฑเบ™เปเบšเบšเบ™เบตเป‰:

เบฅเบฐเบซเบฑเบ”เบชเบฐเบ„เบฃเบดเบšเป€เบ•เบฑเบก

Add-Type -AssemblyName System.Speech
Add-Type -assembly System.Windows.Forms

$script_path	= "C:PS ping"
$label_from_top	= 10
$voice	= New-Object System.Speech.Synthesis.SpeechSynthesizer
$voice.Rate	= 5

#ะŸะตั€ะตะตะทะถะฐะตะผ ะฒ ั„ะธะฝะบั†ะธัŽ ัƒะถะต ัะพะทะดะฐะฝะฝั‹ะน ะพะฑัŠะตะบั‚ PictureBox ะธ IP-ะฐะดั€ะตัั ะบะพั‚ะพั€ั‹ะน ะฝัƒะถะฝะพ ะฟั€ะพะฒะตั€ะธั‚ัŒ.
#ะะฐ ะฒั‹ั…ะพะดะต ะพะฝะพ ะผะตะฝัะตั‚ ะฟะพะดะณั€ัƒะถะฐะตะผัƒัŽ ะบะฐั€ั‚ะธะฝะบัƒ.
function get_status($PictureBox,$path_ip) {
	if ((Test-Connection -Count 1 -computer $path_ip -quiet) -eq $True) {
		$PictureBox.imageLocation	= $script_path + "yes.png"
		}
	Else {
		$PictureBox.imageLocation	= $script_path + "no.png"
		$voice.Speak("ะžัˆะธะฑะบะฐ! ะฅะพัั‚ " + $path_ip + ", ะฝะตะดะพัั‚ัƒะฟะตะฝ!")
		}
	}

#ัะพะทะดะฐะตะผ ะพะฟะธัะฐั‚ะตะปัŒะฝัƒัŽ ะปะธะฝะธัŽ, ะฝะฐ ะฒั…ะพะด ะธะดัƒั‚: ะพะฑัŠะตะบั‚ Label, IP-ะฐะดั€ะตัั, ะพะฟะธัะฐะฝะธะต ะธ ะฟะพะทะธั†ะธั ะฟะพ ะพัะธ Y
Function Create_line($label,$path_ip,$caption, $top){ 
	$label.Location	= New-Object System.Drawing.Point(1, $top)
	$label.text	= $path_ip+$caption
	$label.font	= $font
	$Label.AutoSize	= $true
	}

#ัะพะทะดะฐะตะผ ะธะฝะดะธะบะฐั‚ะพั€ ะดะปั ะพะฟะธัะฐั‚ะตะปัŒะฝะพะน ะปะธะฝะธัŽ, ะฝะฐ ะฒั…ะพะด ะธะดัƒั‚: ะพะฑัŠะตะบั‚ PictureBox, IP-ะฐะดั€ะตัั ะธ ะฟะพะทะธั†ะธั ะฟะพ ะพัะธ Y
Function Create_link($PictureBox,$path_ip, $top){ 
	$PictureBox.width	= 10
	$PictureBox.height	= 10
	$PictureBox.location	= New-Object System.Drawing.Point(210,$top)
	get_status -PictureBox $PictureBox -path_ip $path_ip
	$PictureBox.SizeMode	= [System.Windows.Forms.PictureBoxSizeMode]::zoom
	}

$main_form	= New-Object System.Windows.Forms.Form
$main_form.Text ='Links up' #ะ˜ะผั ะฒ ะทะฐะณะพะปะพะฒะบะต
$main_form.Width = 300 #ะจะธั€ะธะฝะฐ ะพะบะฝะฐ
$main_form.Height = 200 #ะ’ั‹ัะพั‚ะฐ ะพะบะฝะฐ
$main_form.AutoSize = $true #ะ”ะฐะตะผ ะตะผัƒ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัะฐะผะพัั‚ะพัั‚ะตะปัŒะฝะพ ะธะทะผะตะฝัั‚ัŒ ั€ะฐะทะผะตั€, ะฟั€ะธ ะฝะตะพะฑั…ะพะดะธะผะพัั‚ะธ
$main_form.TopMost	= $true #ะญั‚ะพ ะพั‡ะตะฝัŒ ะฒะฐะถะฝะฐั ัˆั‚ัƒะบะฐ, ะพะฝะฐ ะดะฐะตั‚ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะทะฐะบั€ะตะฟะธั‚ัŒ ะพะบะฝะพ ะฟะพะฒะตั€ั… ะดั€ัƒะณะธั…

$line = Get-content -LiteralPath $script_path"path.txt" #ะฒั‹ั‚ะฐัะบะธะฒะฐะตะผ ะดะฐะฝะฝั‹ะต ะพ ะฝะตะพะฑั…ะพะดะธะผั‹ั… ั…ะพัั‚ะฐั…
$len = $line.Length	#ะฒั‹ั‡ะธัะปัะตะผ ะดะปะธะฝัƒ, ะฐ ั‚ะพั‡ะฝะตะต ะผะฐััะธะฒ ะดะปะธะฝ ะบะฐะถะดะพะน ัั‚ั€ะพะบะธ

$i = 0

#ะดะฐะปะตะต ะพะฑัŠัะฒะปัะตะผ ะผะฐััะธะฒั‹ ะบะพั‚ะพั€ั‹ะต ะฟะพะฝะฐะดะพะฑัั‚ัั ะดะฐะปัŒัˆะต
$ip	= @()	#ะผะฐััะธะฒ ip
$capt	= @()	#ะผะฐััะธะฒ ะพะฟะธัะฐะฝะธั
$Labels	=@()	#ะผะฐััะธะฒ Label
$PictureBoxs	=@()	#ะผะฐััะธะฒ PictureBox

while($i -lt $len){
	$f	= $line[$i].IndexOf("/") #ะฒั‹ั‡ะธัะปัะตะผ ะฟะพะทะธั†ะธัŽ ะฝะฐั‡ะฐะปะฐ ะพะฟะธัะฐะฝะธั
	$l	= $line[$i].LastIndexOf("/")	#ะฒั‹ั‡ะธัะปัะตะผ ะฟะพะทะธั†ะธัŽ ะบะพะฝั†ะฐ ะพะฟะธัะฐะฝะธั
	$ip	+= $line[$i].Substring(0,$f)	#ะฒั‹ั‚ะฐัะบะธะฒะฐะตะผ ip
	$capt	+= $line[$i].Substring($f+1,$l-$f-1)	#ะฒั‹ั‚ะฐัะบะธะฒะฐะตะผ ะพะฟะธัะฐะฝะธะต

	#ัะพะทะดะฐะตะผ ะฟะพะปะต Label
	Create_line -label ($label_obj = New-Object System.Windows.Forms.Label) -path_ip $ip[$i] -caption $capt[$i] -top $label_from_top
	#ัะพะทะดะฐะตะผ ะฟะพะปะต PictureBox
	Create_link -PictureBox ($PictureBox_obj = New-Object system.Windows.Forms.PictureBox) -path_ip $ip[$i] -top $label_from_top

	$label_from_top	+= 15	#ะดะตะปะฐะตะผ "ัˆะฐะณ" ะฟะพ ะพัะธ Y

	$Labels	+= $label_obj	#ะฒะฝะพัะธะผ ัะพะทะดะฐะฝะฝั‹ะน Label ะฒ ะพะฑั‰ะธะน ะผะฐััะธะฒ
	$PictureBoxs	+= $PictureBox_obj	#ะฒะฝะพัะธะผ ัะพะทะดะฐะฝะฝั‹ะน PictureBox ะฒ ะพะฑั‰ะธะน ะผะฐััะธะฒ
	$main_form.Controls.Add($Labels[$i])
	$main_form.Controls.Add($PictureBoxs[$i])
	$i	+=1
}

#ัั‚ะพ ะฟะพะปะต ั ะฟะพัะปะตะดะฝะธะผ ะฒั€ะตะผะตะฝะตะผ ะฟั€ะพะฒะตั€ะบะธ
$Label0	= New-Object System.Windows.Forms.Label
$Label0.Text	= Get-Date
$Label0.Location	= New-Object System.Drawing.Point(80,180)
$Label0.AutoSize	= $true


# ะ’ะตัˆะฐะตะผ ะฝะฐ ัะพะฑั‹ั‚ะธะต ะฝะฐะถะฐั‚ะธั ะบะฝะพะฟะบะธ ะพะฑั€ะฐั‰ะตะฝะธะต ะบะฐะถะดะพะณะพ PictureBox ัะพะณะปะฐัะฝะพ ั€ะฐะฝะตะต ะพะฟะธัะฐะฝะฝะพะน ะปะพะณะธะบะต
$Button	= New-Object System.Windows.Forms.Button
$Button.Location	= New-Object System.Drawing.Size(100,200)
$Button.Size	= New-Object System.Drawing.Size(80,30)
$Button.Text	= "Reload"

$Button.Add_Click({ 
	while($i -lt $len){
		get_status -PictureBox $PictureBoxs[$i] -path_ip $ip[$i]
		$i	+=1
		}
	$i	= 0
	$Label0.Text	= Get-Date 
})

$main_form.Controls.Add($Button)
$main_form.Controls.Add($Label0)

$main_form.ShowDialog()

Afterword

เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบซเบงเบฑเบ‡โ€‹เบงเปˆเบฒ tutorial เบ™เบตเป‰โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบšเบฒเบ‡โ€‹เบ„เบปเบ™โ€‹. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เป€เบเบทเบญเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ cradle, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เปเบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบเบดเบ™เบ”เบต, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเป„เบ”เป‰. เปเบ•เปˆเบ‚เป‰เบญเบเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเบฎเบฑเบšเบŸเบฑเบ‡เบ„เปเบฒเบ„เบดเบ”เป€เบซเบฑเบ™เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ.

เบชเบณ เบฅเบฑเบšเบ‚เป‰เบญเบ, เบกเบฑเบ™เบ”เบตเปƒเบˆเบ—เบตเปˆเบˆเบฐเบ‚เบธเบ”เบ„เบปเป‰เบ™เปเบฅเบฐเป€เบญเบปเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ™เป‰เบญเบเป†เปเบ•เปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบŠเบตเบงเบดเบ”เบ›เบฐ เบˆเบณ เบงเบฑเบ™เบฎเปˆเบงเบกเบเบฑเบ™. เปเบœเบ™เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบเบฑเบ‡เบฅเบงเบกเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเปเบฅเบฐเบฅเบถเบš nodes เบˆเบฒเบ GUI, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเบ„เบงเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ” - เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡ "poke" เบ›เบธเปˆเบกเปเบฅเบฐเป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบกเบฑเบ™เบงเบฒเบ‡เบชเบฒเบ "powershell.exe" .

เบชเบฐเบšเบฑเบšเบซเบฅเป‰เบฒเบชเบธเบ”เบ‚เบญเบ‡เบชเบฐเบ„เบดเบšเบเปˆเบฝเบงเบเบฑเบš GitHub

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

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster