Попытка получить DHCP без списка отработки отказа, но это грязно - PullRequest
1 голос
/ 26 марта 2020

'Я пытаюсь экспортировать список 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
}
}
}

1 Ответ

0 голосов
/ 26 марта 2020

Существует командлет 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.

...