ChamplainTechJournals/sysadmin-ii-sys265/windows/dhcp_check.ps1
2025-04-19 23:42:08 -04:00

97 lines
2.2 KiB
PowerShell

# SYS265 - DHCP Lab
# 1/31/25
# Get Username
function get_username(){
Write-Host 'Username:'$env:USERNAME
}
# Get IP Address
function get_ip(){
$ip_address = (Get-NetIPAddress -AddressFamily IPv4 | Select IPv4Address | Where-Object { $_.IPv4Address -ne "127.0.0.1" } | Format-Table -HideTableHeaders | Out-String).Trim()
Write-Host 'IP Address:'$ip_address
}
# Get DHCP Server Address
function get_dhcp(){
$dhcp_address = (Get-CimInstance Win32_NetworkAdapterConfiguration | Select DHCPServer | Format-Table -HideTableHeaders | Out-String).Trim()
Write-Host 'DHCP Server:'$dhcp_address
$dhcp_lease = (Get-CimInstance Win32_NetworkAdapterConfiguration | Select DHCPLeaseExpires | Format-Table -HideTableHeaders | Out-String).Trim()
Write-Host 'Lease Expiration:'$dhcp_lease
}
# Get Gateway IP
function get_gateway(){
$gateway_address = (Get-CimInstance Win32_NetworkAdapterConfiguration | Select DefaultIPGateway | Format-Table -HideTableHeaders | Out-String).Trim()
Write-Host 'Default Gateway:'$gateway_address
}
# Get DNS Server IP
function get_dns(){
$dns_address = ((Get-DnsClientServerAddress -AddressFamily IPv4 | Where-Object { $_.InterfaceAlias -ne "loopback" }).ServerAddresses | Out-String).Trim()
Write-Host 'DNS Server:'$dns_address
}
clear
$Prompt = "`nChoose number for operation`n"
$Prompt += "1. All`n"
$Prompt += "2. Username`n"
$Prompt += "3. IP`n"
$Prompt += "4. DHCP`n"
$Prompt += "5. Default Gateway`n"
$Prompt += "6. DNS`n"
$Prompt += "7. exit"
$operation = $true
while($operation){
Write-Host $Prompt | Out-String
$choice = Read-Host
Write-Host "----------"
if($choice -eq 1){
get_username
get_ip
get_dhcp
get_gateway
get_dns
}
elseif($choice -eq 2){
get_username
}
elseif($choice -eq 3){
get_ip
}
elseif($choice -eq 4){
get_dhcp
}
elseif($choice -eq 5){
get_gateway
}
elseif($choice -eq 6){
get_dns
}
elseif($choice -eq 7){
Write-Host "Goodbye" | Out-String
exit
$operation = $false
}
else{
Write-Host "Invalid Input" | Out-String
}
Write-Host "----------"
}