如何将我的输出从 DHCP 租约信息更改为 ScopeId "Name"
How can I change my output from DHCP Lease info to ScopeId "Name"
我的输出是这样的,它只是主机名所在的租约信息:
IPAddress ScopeId ClientId HostName AddressState
--------- ------- -------- -------- ------------
10.10.10.10 99.99.99.99 11-11-11-11-11-11 AL10 Active
使用此 PowerShell 脚本:
$hostname = "AL10"
$locationArray = @()
foreach ($Server in $DHServers){
$scope = Get-DHCPServerv4scope -ComputerName $Server.dnsname | Get-DHCPServerv4Lease -ComputerName $Server.dnsname | Where-Object HostName -like "$hostName*"
$locationArray += $scope
}
$locationArray
我想要的,是不是就是要输出:
ScopeID Name
---------
Name
目标是:提供主机名.txt,找到对应的DHCP服务器租约,然后像使用Get-DHCPServerv4scope -ComputerName $Server.dnsname | Select-Object "name"
[一样输出ScopeID的“名称” =15=]
我使用了哈希 table。
$hashtable = @{} #create hash table
$i=0
foreach ($Server in $DHServers){
$scopes = Get-DHCPServerv4Scope -ComputerName $Server.dnsname #get all scopes
foreach ($hostname in (Import-Csv C:\script\Asset_List.csv | Select-Object -ExpandProperty asset)){ #get hostnames from list
foreach ($scope in $scopes) {
if($scope | Get-DhcpServerV4Lease -ComputerName $server.dnsname | Where-Object HostName -like "$hostName*" ) { #compares the hostname to find which lease it is in
try{
$hashtable.add($hostname, $scope.name)# add keys, values to table
}
catch {
$ErrorMessage = $_.Exception.Message
if ($ErrorMessage -like '*Key in dictionary Already*') {
write-host 'Network issues could be causing process to take longer than normal' -ForegroundColor Green
}
}
}
}
}
}
然后我在我的PSCustomObject
中调用了它
[PSCustomObject]@{ #Rename varibles in data pull for output file
Asset = $hostname
Model = $System.Model
SerialNumber = $BIOS.SerialNumber
Location = $hashtable[$hostname]
LastUser = $User
MacAddress = $mac
IpAddress = $IpV
Status = "Online"
}
}
我的输出是这样的,它只是主机名所在的租约信息:
IPAddress ScopeId ClientId HostName AddressState
--------- ------- -------- -------- ------------
10.10.10.10 99.99.99.99 11-11-11-11-11-11 AL10 Active
使用此 PowerShell 脚本:
$hostname = "AL10"
$locationArray = @()
foreach ($Server in $DHServers){
$scope = Get-DHCPServerv4scope -ComputerName $Server.dnsname | Get-DHCPServerv4Lease -ComputerName $Server.dnsname | Where-Object HostName -like "$hostName*"
$locationArray += $scope
}
$locationArray
我想要的,是不是就是要输出:
ScopeID Name
---------
Name
目标是:提供主机名.txt,找到对应的DHCP服务器租约,然后像使用Get-DHCPServerv4scope -ComputerName $Server.dnsname | Select-Object "name"
[一样输出ScopeID的“名称” =15=]
我使用了哈希 table。
$hashtable = @{} #create hash table
$i=0
foreach ($Server in $DHServers){
$scopes = Get-DHCPServerv4Scope -ComputerName $Server.dnsname #get all scopes
foreach ($hostname in (Import-Csv C:\script\Asset_List.csv | Select-Object -ExpandProperty asset)){ #get hostnames from list
foreach ($scope in $scopes) {
if($scope | Get-DhcpServerV4Lease -ComputerName $server.dnsname | Where-Object HostName -like "$hostName*" ) { #compares the hostname to find which lease it is in
try{
$hashtable.add($hostname, $scope.name)# add keys, values to table
}
catch {
$ErrorMessage = $_.Exception.Message
if ($ErrorMessage -like '*Key in dictionary Already*') {
write-host 'Network issues could be causing process to take longer than normal' -ForegroundColor Green
}
}
}
}
}
}
然后我在我的PSCustomObject
[PSCustomObject]@{ #Rename varibles in data pull for output file
Asset = $hostname
Model = $System.Model
SerialNumber = $BIOS.SerialNumber
Location = $hashtable[$hostname]
LastUser = $User
MacAddress = $mac
IpAddress = $IpV
Status = "Online"
}
}