Saya bekerja dengan Get-DhcpServerv4Scope
cmdlet dan saya ingin menarik beberapa cakupan ke dalam variabel dengan -scopeid
sakelar.
Get-DhcpServerv4Scope -scopeid 10.1.0.0,10.1.1.0
Namun jika saya lakukan:
$IP = "10.2.0.0,10.1.0.0"
Get-DhcpServerv4Scope -scopeid $IP
Saya mendapatkan kesalahan:
Get-DhcpServerv4Scope: Tidak dapat memproses transformasi argumen pada parameter 'ScopeId'. Tidak dapat mengonversi nilai "10.2.0.0,10.1.0.0" untuk mengetik "System.Net.IPAddress []". Kesalahan: "Tidak dapat mengonversi nilai" 10.2.0.0,10.1.0.0 "untuk mengetik" System.Net.IPAddress ". Kesalahan:" Alamat IP yang tidak valid telah ditentukan. ""
Adakah yang tahu cara melakukan konversi ini?
Sunting: Ini skrip yang saya coba selami ini. Saya ingin memiliki cara untuk mengarahkan skrip ini di server dan itu membangun kembali semua cakupan. saat ini saya mengeluarkan lingkup dalam file yang dibatasi tab, lalu salin & tempel ke dalam Get-dhcpv4scope
untuk menyimpan semua cakupan dalam satu variabel. Saya terbuka untuk saran:
#GetScopes
$ScopeExclusions = Get-DhcpServerv4ExclusionRange
[string]$ScopesCSV=Get-DhcpServerv4Scope | Select ScopeID | convertto-
csv -notypeinformation
$ScopesCSV.replace('" ', ',').replace('"', '').replace('ScopeId,', '')
| out-file c:\users\aturner\desktop\csv.txt
**Copy contents from file to clipboard**
$Scopes=Get-DhcpServerv4Scope -scopeid *PasteScopeCSVListHere* | select
ScopeId,Name,Description,SubnetMask,StartRange,EndRange,LeaseDuration
#Delete Scopes
$Scopes | % { Remove-DhcpServerv4Scope -ScopeId $_.scopeid -force}
#Rebuild Scopes
$Scopes | % {Add-DhcpServerv4Scope -Name $_.name -Description
$_.description -SubnetMask $_.SubnetMask -StartRange $_.StartRange -
EndRange $_.EndRange -LeaseDuration 8.00:00:00 }
$ScopeExclusions | % {Add-DHCPServerv4ExclusionRange -ScopeID $_.ScopeID -
StartRange $_.StartRange -EndRange $_.EndRange}
Kode Baru:
#GetScopes
$ScopeExclusions = Get-DhcpServerv4ExclusionRange
[string]$ScopesArray=Get-DhcpServerv4Scope | Select ScopeID | convertto-csv -notypeinformation
$ScopesCSV=$ScopesArray.replace('" ', ',').replace('"', '').replace('ScopeId,', '')
$ScopeReservations = Get-DhcpServerv4Scope | Get-DhcpServerv4Reservation | select *
$Scopes=Get-DhcpServerv4Scope -scopeid $ScopesCSV.Split(',') | select ScopeId,Name,Description,SubnetMask,StartRange,EndRange,LeaseDuration
#Delete Scopes
$Scopes | % { Remove-DhcpServerv4Scope -ScopeId $_.scopeid -force}
#Rebuild Scopes
$Scopes | % {Add-DhcpServerv4Scope -Name $_.name -Description $_.description -SubnetMask $_.SubnetMask -StartRange $_.StartRange -EndRange $_.EndRange -LeaseDuration 8.00:00:00 }
$ScopeReservations | % {Add-DhcpServerv4Reservation -ScopeID $_.ScopeID -IPAddress $_.IPAddress -ClientId $_.ClientID -Description $_.Description -Name $_.Name -Type $_.Type}
New