【问题标题】:Trying to get a dhcp without failover list but its messy试图获得一个没有故障转移列表的 dhcp,但它很乱
【发布时间】:2023-06-21 19:27:01
【问题描述】:

'我尝试导出一个没有故障转移的 DHCP 服务器列表,但它在一行中全部显示出来 (A1) 所有的头条新闻都昏迷了。 提前抱歉,我是PowerShell的新手。 '

 $CSVFile = "C:\Dhcp_report_$CurrentDate.csv"$machines = Get-DhcpServerInDC

 "DHCPServer,SecondaryDHCPServer,ScopeName,ScopeID,Subnetmask,Startrange,Endrange" |out-file - 
  FilePath $CSVFile -append

  foreach ($machine in $machines)
{
$DHCPName = $machine.dnsname
if ($DHCPName -notin @("server01.company.corp","server02.company.corp")){
$AllScopes = Get-DhcpServerv4Scope -ComputerName $DHCPName
foreach ($scope in $AllScopes)
{
$ScopeName = $scope.Name
$ScopeId = $scope.ScopeId
$failoverscope = Get-dhcpserverv4failover -ComputerName $DHCPName -ScopeId $ScopeId -ErrorAction SilentlyContinue
if ($failoverscope) {
$SecDHCP = ($failoverscope.SecondaryServerName)
}
else {
$SecDHCP = "no failover"
}
$Subnetmask = $scope.subnetmask
$Startrange = $scope.startrange
$Endrange = $scope.endrange
$OutInfo = ($DHCPName).Replace(".company.corp","") + "," + ($SecDHCP).Replace(".company.corp","") + 
"," +$ScopeName + "," + $ScopeId+ "," + $Subnetmask + "," + $Startrange + "," + $Endrange
Write-Host $OutInfo
Add-Content -Value $OutInfo -Path $CSVFile
}
}
}

【问题讨论】:

    标签: powershell failover dhcp


    【解决方案1】:

    有一个 cmdlet Export-Csv 可以将数据导出到 csv:

     $CSVFile = "C:\Dhcp_report_$CurrentDate.csv"
    $machines = Get-DhcpServerInDC
    
     "DHCPServer,SecondaryDHCPServer,ScopeName,ScopeID,Subnetmask,Startrange,Endrange" 
    
      foreach ($machine in $machines)
    {
    $DHCPName = $machine.dnsname
    if ($DHCPName -notin @("server01.company.corp","server02.company.corp")){
    $AllScopes = Get-DhcpServerv4Scope -ComputerName $DHCPName
    foreach ($scope in $AllScopes)
    {
    $ScopeName = $scope.Name
    $ScopeId = $scope.ScopeId
    $failoverscope = Get-dhcpserverv4failover -ComputerName $DHCPName -ScopeId $ScopeId -ErrorAction SilentlyContinue
    if ($failoverscope) {
    $SecDHCP = ($failoverscope.SecondaryServerName)
    }
    else {
    $SecDHCP = "no failover"
    }
    $Subnetmask = $scope.subnetmask
    $Startrange = $scope.startrange
    $Endrange = $scope.endrange
    [pscustomobject]@{
      DHCPServer = ($DHCPName).Replace(".company.corp","")
      SecondaryDHCPServer =  ($SecDHCP).Replace(".company.corp","") 
      ScopeName = $ScopeName 
      ScopeID =  $ScopeId
      SubnetMask = $Subnetmask 
      StartRange = $Startrange 
      EndRange =  $Endrange
    }
    } | Export-Csv $Csv -NoTypeInformation
    }
    } 
    

    这里我在 psobject 中整理数据并导出到 csv。

    【讨论】:

    • 谢谢!看起来好多了,但在导出之前我遇到了一个错误,在 | export-csv $csv -notypeinformation 它说“不允许使用空管道元素”
    • 对不起,仍然没有导出。我一直收到同样的错误,它就像管道不属于最后一行。试图删除它,仍然得到同样的错误
    最近更新 更多