hali!
Jött egy feladat, amire hegesztettem egyet én is ps-ben. NEm nagy cucc, de akár hasznos is lehet másnak, ahol sok az adminisztráció.Egy neten talált scriptet "fejlesztettem" tovább...
windows srv 2008 MAGYAR dhcp listából átforgat mindenkit fentartott ips-re.
#kliensek exportja
$dhcpdump = (netsh dhcp server 192.168.1.2 scope 192.168.1.0 show clients 1)
$sorok = @()
#sorok kiválogatása, ahol van IP és MAC:
foreach ($i in $dhcpdump){
if ($i -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"){
If ($i -match "[0-9a-f]{2}[:-][0-9a-f]{2}[:-][0-9a-f]{2}[:-][0-9a-f]{2}[:-][0-9a-f]{2}[:-][0-9a-f]{2}"){
$sorok += $i.Trim()
}
}
}
$logfile = @()
#hasznos adatok kinyerése
foreach ($l in $sorok){
$Row = "" | select Hostname,IP,MACAddress
$l = $l -replace '-D-','-'
$l = $l -replace '-U-','-'
$l = $l -replace '-N-','-'
$l = $l -replace '-\d{4}.\d{2}.\d{2}.',''
$l = $l -replace '\d{1,2}[:]\d{2}[:]\d{2}',''
$l = $l -replace '- SOHA NEM JÁR LE ',''
$l = $l -replace '- INAKTÍV ',''
$l = $l -replace ' - ',','
$l = $l -replace ' -',','
$l = $l -replace ' ',''
#$l
If (($l.Split(","))[3] -ne '') {
If (($l.Split(","))[3] -ne 'szervernevehogykiszedjukasajatcuccait') {
$Row.IP = ($l.Split(","))[0]
$Row.Hostname = ($l.Split(","))[3]
$Row.MACAddress = (($l.Split(","))[2] -replace '-','')
$logfile += $Row
#netsh dhcp server 192.168.1.2 scope 192.168.1.0 add reservedip $Row.IP $Row.MACAddress $Row.Hostname
}
}
}
$logfile | sort-object Hostname | Export-Csv "c:\temp\Out_List.csv"
[ Szerkesztve ]
ajándék ló nem látja a fától a szódás a lovát...