mirror of
https://github.com/fleschutz/PowerShell.git
synced 2024-11-21 23:43:25 +01:00
Updated some scripts
This commit is contained in:
parent
0ffef56c95
commit
946e76a5ca
@ -1,6 +1,6 @@
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./MD5.ps1 <file>
|
||||
# Syntax: ./MD5.ps1 [<file>]
|
||||
# Description: prints the MD5 checksum of the given file
|
||||
# Author: Markus Fleschutz
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
param([string]$File)
|
||||
if ($File -eq "" ) {
|
||||
$File = read-host "Enter file: "
|
||||
$File = read-host "Enter file"
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./SHA1.ps1 <file>
|
||||
# Syntax: ./SHA1.ps1 [<file>]
|
||||
# Description: prints the SHA1 checksum of the given file
|
||||
# Author: Markus Fleschutz
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
param([string]$File)
|
||||
if ($File -eq "" ) {
|
||||
$File = read-host "Enter file: "
|
||||
$File = read-host "Enter file"
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./SHA256.ps1 <file>
|
||||
# Syntax: ./SHA256.ps1 [<file>]
|
||||
# Description: prints the SHA256 checksum of the given file
|
||||
# Author: Markus Fleschutz
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
param([string]$File)
|
||||
if ($File -eq "" ) {
|
||||
$File = read-host "Enter file: "
|
||||
$File = read-host "Enter file"
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/snap/bin/powershell
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./crash_dumps.ps1
|
||||
# Description: enables crash dumps
|
||||
@ -6,46 +6,46 @@
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
# License: CC0
|
||||
|
||||
##################################################################
|
||||
# #
|
||||
# Written by: Ryan Waters #
|
||||
# #
|
||||
# Program: Get-Dump.ps1 #
|
||||
# Date: 2-06-2020 #
|
||||
# Purpose: To set registry keys to gather a WER Usermode Dump #
|
||||
# and be able to change from a custom, mini, or FULL #
|
||||
# Dumps for ease of use for customers and others. #
|
||||
# #
|
||||
# EULA: Code is free to use for all, and free to distribute #
|
||||
# I just ask that you leave the credit information and #
|
||||
# this EULA and Comment Section in tact and do not delete. #
|
||||
# #
|
||||
# Bitwise Values: (For reference) #
|
||||
# #
|
||||
# 0x00000000 - MiniDumpNormal #
|
||||
# 0x00000001 - MiniDumpWithDataSegs #
|
||||
# 0x00000002 - MiniDumpWithFullMemory #
|
||||
# 0x00000004 - MiniDumpWithHandleData #
|
||||
# 0x00000008 - MiniDumpFilterMemory #
|
||||
# 0x00000010 - MiniDumpScanMemory #
|
||||
# 0x00000020 - MiniDumpWithUnloadedModules #
|
||||
# 0x00000040 - MiniDumpWithIndirectlyReferenced #
|
||||
# 0x00000080 - MemoryMiniDumpFilterModulePaths #
|
||||
# 0x00000100 - MiniDumpWithProcessThreadData #
|
||||
# 0x00000200 - MiniDumpWithPrivateReadWriteMemory #
|
||||
# 0x00000400 - MiniDumpWithoutOptionalData #
|
||||
# 0x00000800 - MiniDumpWithFullMemoryInfo #
|
||||
# 0x00001000 - MiniDumpWithThreadInfo #
|
||||
# 0x00002000 - MiniDumpWithCodeSegs #
|
||||
# 0x00004000 - MiniDumpWithoutAuxiliaryState #
|
||||
# 0x00008000 - MiniDumpWithFullAuxiliaryState #
|
||||
# 0x00010000 - MiniDumpWithPrivateWriteCopyMemory #
|
||||
# 0x00020000 - MiniDumpIgnoreInaccessibleMemory #
|
||||
# 0x00040000 - MiniDumpWithTokenInformation #
|
||||
# #
|
||||
##################################################################
|
||||
|
||||
#Setting Values:
|
||||
##################################################################
|
||||
# #
|
||||
# Written by: Ryan Waters #
|
||||
# #
|
||||
# Program: Get-Dump.ps1 #
|
||||
# Date: 2-06-2020 #
|
||||
# Purpose: To set registry keys to gather a WER Usermode Dump #
|
||||
# and be able to change from a custom, mini, or FULL #
|
||||
# Dumps for ease of use for customers and others. #
|
||||
# #
|
||||
# EULA: Code is free to use for all, and free to distribute #
|
||||
# I just ask that you leave the credit information and #
|
||||
# this EULA and Comment Section in tact and do not delete. #
|
||||
# #
|
||||
# Bitwise Values: (For reference) #
|
||||
# #
|
||||
# 0x00000000 - MiniDumpNormal #
|
||||
# 0x00000001 - MiniDumpWithDataSegs #
|
||||
# 0x00000002 - MiniDumpWithFullMemory #
|
||||
# 0x00000004 - MiniDumpWithHandleData #
|
||||
# 0x00000008 - MiniDumpFilterMemory #
|
||||
# 0x00000010 - MiniDumpScanMemory #
|
||||
# 0x00000020 - MiniDumpWithUnloadedModules #
|
||||
# 0x00000040 - MiniDumpWithIndirectlyReferenced #
|
||||
# 0x00000080 - MemoryMiniDumpFilterModulePaths #
|
||||
# 0x00000100 - MiniDumpWithProcessThreadData #
|
||||
# 0x00000200 - MiniDumpWithPrivateReadWriteMemory #
|
||||
# 0x00000400 - MiniDumpWithoutOptionalData #
|
||||
# 0x00000800 - MiniDumpWithFullMemoryInfo #
|
||||
# 0x00001000 - MiniDumpWithThreadInfo #
|
||||
# 0x00002000 - MiniDumpWithCodeSegs #
|
||||
# 0x00004000 - MiniDumpWithoutAuxiliaryState #
|
||||
# 0x00008000 - MiniDumpWithFullAuxiliaryState #
|
||||
# 0x00010000 - MiniDumpWithPrivateWriteCopyMemory #
|
||||
# 0x00020000 - MiniDumpIgnoreInaccessibleMemory #
|
||||
# 0x00040000 - MiniDumpWithTokenInformation #
|
||||
# #
|
||||
##################################################################
|
||||
|
||||
#Setting Values:
|
||||
$MDN = '0'
|
||||
$MDWDS = '1'
|
||||
$MDWFM = '2'
|
||||
@ -91,27 +91,27 @@ $t = $MDWTOI
|
||||
$0x = "0x"
|
||||
|
||||
$array = @()
|
||||
|
||||
Clear-host
|
||||
write-host "Setting up your machine to receive Usermode Dumps via WER."
|
||||
Start-sleep -s 3
|
||||
|
||||
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpFolder" -Value "%LOCALAPPDATA%\CrashDumps" -PropertyType ExpandString -Force
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpCount" -Value "10" -PropertyType DWORD -Force
|
||||
|
||||
clear-host
|
||||
write-host "What would you like to do?"
|
||||
write-host "(0) Disable Dumps and restore system to factory."
|
||||
write-host "(1) Enable System for Full Dumps."
|
||||
write-host "(2) Enable System for Mini Dumps."
|
||||
write-host "(3) Enable System for custom dump with options."
|
||||
$NCD = Read-Host "Enter a number option"
|
||||
|
||||
If ($NCD -eq '3')
|
||||
{
|
||||
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpType" -Value "0" -PropertyType DWORD -Force
|
||||
|
||||
Clear-host
|
||||
write-host "Setting up your machine to receive Usermode Dumps via WER."
|
||||
Start-sleep -s 3
|
||||
|
||||
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpFolder" -Value "%LOCALAPPDATA%\CrashDumps" -PropertyType ExpandString -Force
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpCount" -Value "10" -PropertyType DWORD -Force
|
||||
|
||||
clear-host
|
||||
write-host "What would you like to do?"
|
||||
write-host "(0) Disable Dumps and restore system to factory."
|
||||
write-host "(1) Enable System for Full Dumps."
|
||||
write-host "(2) Enable System for Mini Dumps."
|
||||
write-host "(3) Enable System for custom dump with options."
|
||||
$NCD = Read-Host "Enter a number option"
|
||||
|
||||
If ($NCD -eq '3')
|
||||
{
|
||||
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpType" -Value "0" -PropertyType DWORD -Force
|
||||
Do
|
||||
{
|
||||
clear-host
|
||||
@ -231,61 +231,61 @@ If ($NCD -eq '3')
|
||||
}
|
||||
While($Option -ne "q")
|
||||
$sum = $array -join '+'
|
||||
$SumArray = Invoke-Expression $sum
|
||||
$FinalSum = $0x + $SumArray
|
||||
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "CustomDumpFlags" -Value "$FinalSum" -PropertyType DWORD -Force
|
||||
|
||||
write-host " "
|
||||
write-host "Setting up the system for crash dumps requires a reboot"
|
||||
}
|
||||
ElseIf ($NCD -eq '0')
|
||||
{
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpCount" -Force -ErrorAction SilentlyContinue
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpType" -Force -ErrorAction SilentlyContinue
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpFolder" -Force -ErrorAction SilentlyContinue
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "CustomDumpFlags" -Force -ErrorAction SilentlyContinue
|
||||
write-host " "
|
||||
$reboot = read-host "Registry reset to factory settings and cleared. It is recommended to restart your machine, would you like to now?"
|
||||
if($reboot -eq "Yes" -or $reboot -eq "Y" -or $reboot -eq "yes" -or $reboot -eq "y")
|
||||
{
|
||||
shutdown -r
|
||||
}
|
||||
Else
|
||||
{
|
||||
write-host "Please restart the machine for settings to take effect at your convenience."
|
||||
}
|
||||
}
|
||||
ElseIf ($NCD -eq '1')
|
||||
{
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpType" -Value "2" -PropertyType DWORD -Force
|
||||
write-host "The computer has been set up to create a Full Sized Dump and will be located in %LOCALAPPDATA%\CrashDumps."
|
||||
write-host "The computer must also restart for settings to take effect. Would you like to now? (Y/n)"
|
||||
if($reboot -eq "Yes" -or $reboot -eq "Y" -or $reboot -eq "yes" -or $reboot -eq "y")
|
||||
{
|
||||
shutdown -r
|
||||
}
|
||||
Else
|
||||
{
|
||||
write-host "Please restart the machine for settings to take effect at your convenience."
|
||||
}
|
||||
}
|
||||
ElseIf ($NCD -eq '2')
|
||||
{
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpType" -Value "1" -PropertyType DWORD -Force
|
||||
write-host "The computer has been set up to create a Mini Dump and will be located in %LOCALAPPDATA%\CrashDumps."
|
||||
write-host "The computer must also restart for settings to take effect. Would you like to now? (Y/n)"
|
||||
if($reboot -eq "Yes" -or $reboot -eq "Y" -or $reboot -eq "yes" -or $reboot -eq "y")
|
||||
{
|
||||
shutdown -r
|
||||
}
|
||||
Else
|
||||
{
|
||||
write-host "Please restart the machine for settings to take effect at your convenience."
|
||||
}
|
||||
}
|
||||
Else
|
||||
{
|
||||
write-host "You did not enter a valid option. Please re-run Get-Dump.ps1"
|
||||
start-sleep -s 5
|
||||
$SumArray = Invoke-Expression $sum
|
||||
$FinalSum = $0x + $SumArray
|
||||
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "CustomDumpFlags" -Value "$FinalSum" -PropertyType DWORD -Force
|
||||
|
||||
write-host " "
|
||||
write-host "Setting up the system for crash dumps requires a reboot"
|
||||
}
|
||||
ElseIf ($NCD -eq '0')
|
||||
{
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpCount" -Force -ErrorAction SilentlyContinue
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpType" -Force -ErrorAction SilentlyContinue
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpFolder" -Force -ErrorAction SilentlyContinue
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "CustomDumpFlags" -Force -ErrorAction SilentlyContinue
|
||||
write-host " "
|
||||
$reboot = read-host "Registry reset to factory settings and cleared. It is recommended to restart your machine, would you like to now?"
|
||||
if($reboot -eq "Yes" -or $reboot -eq "Y" -or $reboot -eq "yes" -or $reboot -eq "y")
|
||||
{
|
||||
shutdown -r
|
||||
}
|
||||
Else
|
||||
{
|
||||
write-host "Please restart the machine for settings to take effect at your convenience."
|
||||
}
|
||||
}
|
||||
ElseIf ($NCD -eq '1')
|
||||
{
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpType" -Value "2" -PropertyType DWORD -Force
|
||||
write-host "The computer has been set up to create a Full Sized Dump and will be located in %LOCALAPPDATA%\CrashDumps."
|
||||
write-host "The computer must also restart for settings to take effect. Would you like to now? (Y/n)"
|
||||
if($reboot -eq "Yes" -or $reboot -eq "Y" -or $reboot -eq "yes" -or $reboot -eq "y")
|
||||
{
|
||||
shutdown -r
|
||||
}
|
||||
Else
|
||||
{
|
||||
write-host "Please restart the machine for settings to take effect at your convenience."
|
||||
}
|
||||
}
|
||||
ElseIf ($NCD -eq '2')
|
||||
{
|
||||
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpType" -Value "1" -PropertyType DWORD -Force
|
||||
write-host "The computer has been set up to create a Mini Dump and will be located in %LOCALAPPDATA%\CrashDumps."
|
||||
write-host "The computer must also restart for settings to take effect. Would you like to now? (Y/n)"
|
||||
if($reboot -eq "Yes" -or $reboot -eq "Y" -or $reboot -eq "yes" -or $reboot -eq "y")
|
||||
{
|
||||
shutdown -r
|
||||
}
|
||||
Else
|
||||
{
|
||||
write-host "Please restart the machine for settings to take effect at your convenience."
|
||||
}
|
||||
}
|
||||
Else
|
||||
{
|
||||
write-host "You did not enter a valid option. Please re-run Get-Dump.ps1"
|
||||
start-sleep -s 5
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./download.ps1 <URL>
|
||||
# Syntax: ./download.ps1 [<URL>]
|
||||
# Description: downloads the file/directory from the given URL
|
||||
# Author: Markus Fleschutz
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
param([string]$URL)
|
||||
if ($URL -eq "" ) {
|
||||
$URL = read-host "Enter URL to download: "
|
||||
$URL = read-host "Enter URL to download"
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -6,9 +6,9 @@
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
# License: CC0
|
||||
|
||||
$UserName = read-host "Your full name: "
|
||||
$UserEmail = read-host "Your email address: "
|
||||
$UserEditor = read-host "Your favorite editor (nano, vi, emacs): "
|
||||
$UserName = read-host "Your full name"
|
||||
$UserEmail = read-host "Your email address"
|
||||
$UserEditor = read-host "Your favorite editor (nano, vi, emacs)"
|
||||
|
||||
try {
|
||||
git config --global user.name $UserName
|
||||
|
@ -1,14 +1,18 @@
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./latlong.ps1 <city>
|
||||
# Syntax: ./latlong.ps1 [<city>]
|
||||
# Description: prints the lat/long coordinates of the given city
|
||||
# Author: Markus Fleschutz
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
# License: CC0
|
||||
|
||||
param([string]$City)
|
||||
if ($City -eq "" ) {
|
||||
$City = read-host "Enter city"
|
||||
}
|
||||
|
||||
try {
|
||||
write-progress "Reading worldcities.csv..."
|
||||
$Table = import-csv worldcities.csv
|
||||
$FoundOne = 0
|
||||
foreach($Row in $Table) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/snap/bin/powershell
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./test.ps1
|
||||
# Description: simple PowerShell test script
|
||||
|
@ -12,7 +12,7 @@ try {
|
||||
$Table = import-csv domain_table.csv
|
||||
foreach($Row in $Table) {
|
||||
$Domain = $Row.Domain
|
||||
write-progress "Training DNS cache with $Domain ..."
|
||||
write-progress "Training DNS cache with $Domain..."
|
||||
$Ignore = nslookup $Domain
|
||||
}
|
||||
|
||||
|
@ -1,25 +1,25 @@
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./txt2wav.ps1
|
||||
# Description: converts the given text into an audio .WAV file
|
||||
# Author: Markus Fleschutz
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
# License: CC0
|
||||
|
||||
# Configuration:
|
||||
$Text = "Hello, my name ist Bond, James Bond"
|
||||
$Speed = -1 # -10 is slowest, 10 is fastest
|
||||
$TargetWavFile = "spoken.wav"
|
||||
|
||||
# Run:
|
||||
try {
|
||||
Add-Type -AssemblyName System.Speech
|
||||
$SpeechSynthesizer = New-Object System.Speech.Synthesis.SpeechSynthesizer
|
||||
# $SpeechSynthesizer.SelectVoice("Microsoft Eva Mobile")
|
||||
$SpeechSynthesizer.Rate = $Speed
|
||||
$SpeechSynthesizer.SetOutputToWaveFile($TargetWavFile)
|
||||
$SpeechSynthesizer.Speak($Text)
|
||||
$SpeechSynthesizer.Dispose()
|
||||
exit 0
|
||||
} catch { Write-Error $Error[0] }
|
||||
exit 1
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./txt2wav.ps1
|
||||
# Description: converts the given text into an audio .WAV file
|
||||
# Author: Markus Fleschutz
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
# License: CC0
|
||||
|
||||
# Configuration:
|
||||
$Text = "Hello, my name ist Bond, James Bond"
|
||||
$Speed = -1 # -10 is slowest, 10 is fastest
|
||||
$TargetWavFile = "spoken.wav"
|
||||
|
||||
# Run:
|
||||
try {
|
||||
Add-Type -AssemblyName System.Speech
|
||||
$SpeechSynthesizer = New-Object System.Speech.Synthesis.SpeechSynthesizer
|
||||
# $SpeechSynthesizer.SelectVoice("Microsoft Eva Mobile")
|
||||
$SpeechSynthesizer.Rate = $Speed
|
||||
$SpeechSynthesizer.SetOutputToWaveFile($TargetWavFile)
|
||||
$SpeechSynthesizer.Speak($Text)
|
||||
$SpeechSynthesizer.Dispose()
|
||||
exit 0
|
||||
} catch { Write-Error $Error[0] }
|
||||
exit 1
|
||||
|
@ -1,61 +1,65 @@
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./wakeup.ps1
|
||||
# Description: sends a magic packet to the given computer, waking him up
|
||||
# Author: Markus Fleschutz
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
# License: CC0
|
||||
|
||||
function Send-WOL
|
||||
{
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Send a WOL packet to a broadcast address
|
||||
.PARAMETER mac
|
||||
The MAC address of the device that need to wake up
|
||||
.PARAMETER ip
|
||||
The IP address where the WOL packet will be sent to
|
||||
.EXAMPLE
|
||||
Send-WOL -mac 00:11:32:21:2D:11 -ip 192.168.8.255
|
||||
.EXAMPLE
|
||||
Send-WOL -mac 00:11:32:21:2D:11
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory=$True,Position=1)]
|
||||
[string]$mac,
|
||||
[string]$ip="255.255.255.255",
|
||||
[int]$port=9
|
||||
)
|
||||
$broadcast = [Net.IPAddress]::Parse($ip)
|
||||
|
||||
$mac=(($mac.replace(":","")).replace("-","")).replace(".","")
|
||||
$target=0,2,4,6,8,10 | % {[convert]::ToByte($mac.substring($_,2),16)}
|
||||
$packet = (,[byte]255 * 6) + ($target * 16)
|
||||
|
||||
$UDPclient = new-Object System.Net.Sockets.UdpClient
|
||||
$UDPclient.Connect($broadcast,$port)
|
||||
[void]$UDPclient.Send($packet, 102)
|
||||
}
|
||||
|
||||
$Hostname = read-host "Enter hostname: "
|
||||
$MyMACAddresses = "io=11:22:33:44:55:66","pi=11:22:33:44:55:66"
|
||||
|
||||
try {
|
||||
foreach($item in $MyMACAddresses) {
|
||||
$array = $item.Split("=")
|
||||
$thisHost=$array[0]
|
||||
$thisMAC=$array[1]
|
||||
if ($thisHost -like $Hostname) {
|
||||
Send-WOL $thisMAC
|
||||
write-output "✔️ host $thisHost waked up (MAC $thisMAC)"
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
echo "Sorry, hostname $Hostname is unknown."
|
||||
pause
|
||||
exit 1
|
||||
} catch { Write-Error $Error[0] }
|
||||
exit 1
|
||||
#!/snap/bin/powershell
|
||||
|
||||
# Syntax: ./wakeup.ps1 [<hostname>]
|
||||
# Description: sends a magic packet to the given computer, waking him up
|
||||
# Author: Markus Fleschutz
|
||||
# Source: github.com/fleschutz/PowerShell
|
||||
# License: CC0
|
||||
|
||||
param([string]$Hostname)
|
||||
if ($Hostname -eq "" ) {
|
||||
$Hostname = read-host "Enter hostname"
|
||||
}
|
||||
|
||||
function Send-WOL
|
||||
{
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Send a WOL packet to a broadcast address
|
||||
.PARAMETER mac
|
||||
The MAC address of the device that need to wake up
|
||||
.PARAMETER ip
|
||||
The IP address where the WOL packet will be sent to
|
||||
.EXAMPLE
|
||||
Send-WOL -mac 00:11:32:21:2D:11 -ip 192.168.8.255
|
||||
.EXAMPLE
|
||||
Send-WOL -mac 00:11:32:21:2D:11
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory=$True,Position=1)]
|
||||
[string]$mac,
|
||||
[string]$ip="255.255.255.255",
|
||||
[int]$port=9
|
||||
)
|
||||
$broadcast = [Net.IPAddress]::Parse($ip)
|
||||
|
||||
$mac=(($mac.replace(":","")).replace("-","")).replace(".","")
|
||||
$target=0,2,4,6,8,10 | % {[convert]::ToByte($mac.substring($_,2),16)}
|
||||
$packet = (,[byte]255 * 6) + ($target * 16)
|
||||
|
||||
$UDPclient = new-Object System.Net.Sockets.UdpClient
|
||||
$UDPclient.Connect($broadcast,$port)
|
||||
[void]$UDPclient.Send($packet, 102)
|
||||
}
|
||||
|
||||
$MyMACAddresses = "io=11:22:33:44:55:66","pi=11:22:33:44:55:66"
|
||||
|
||||
try {
|
||||
foreach($item in $MyMACAddresses) {
|
||||
$array = $item.Split("=")
|
||||
$thisHost=$array[0]
|
||||
$thisMAC=$array[1]
|
||||
if ($thisHost -like $Hostname) {
|
||||
Send-WOL $thisMAC
|
||||
write-output "✔️ host $thisHost waked up (MAC $thisMAC)"
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
echo "Sorry, hostname $Hostname is unknown."
|
||||
pause
|
||||
exit 1
|
||||
} catch { Write-Error $Error[0] }
|
||||
exit 1
|
||||
|
Loading…
Reference in New Issue
Block a user