在我的报告中,当我删除export-csv部分时,数据在屏幕上正确显示,当我添加export-csv时,没有导出数据但是创建了文件。下面是我的脚本以及脚本运行(修改)数据外观时的数据。
#Get all DHCP Servers
$ServerList = (Get-Content -Path "\\termserv\DHCPServers.txt")
foreach ($server in $serverlist)
{
#Get the scopes from each serve
Get-DHCPServerv4Scope -ComputerName $server | select ScopeID |
#Get the lease information for each scope
ForEach-Object {Get-DHCPServerv4Lease -ScopeId $_.ScopeId -ComputerName
$server -AllLeases |
where {$_.AddressState -like "*Reservation"} | Select-Object
$server,ScopeId,IPAddress,HostName,ClientID,AddressState | Export-
Csv "\\termserv\d$\term\User\Reservations1.csv"
}
}
导出时没有export-csv的数据是什么
NOPEDH01: 范围编号:000.11.2.3 IPAddress:111.22.3.444 主机名:NOPE00112233 ClientID:00-11-22-33-44-55 AddressState:ActiveReservation
NOPEDH01: 范围编号:000.11.2.3 IP地址:111.22.3.445 主机名:NOPE0011223344 ClientID:00-11-22-33-44-56 AddressState:ActiveReservation
更新:当我在我的DH服务器上本地运行脚本的修改版本时,它仍然没有尝试,但是我在我的环境中查看了近100台DH服务器,见下文
Get-DHCPServerV4Scope | ForEach {
Get-DHCPServerv4Lease -ScopeID $_.ScopeID -AllLeases | where
{$_.AddressState -like '*Reservation'}
} | Select-Object ScopeId,IPAddress,HostName,ClientID,AddressState | Export-
Csv "\\termserv\d$\term\$($env:COMPUTERNAME)-Reservations1.csv" -
NoTypeInformation
答案 0 :(得分:1)
这表示您正在做的事情:
gsub("(?<=[\\s+])[0-9]", "\t", test2, perl=TRUE)
这样做会导出数据ABRIGO PIZARRO PATRICIO ESTEBAN \t 16024716-9 \t VAR \t PUEB ALCERRECA \t GENERAL LAGOS \t 5V
ABURTO VELASCO ESTHER MARISOL \t 13005517-6 \t MUJ \t VILLA INDUSTRIAL \t GENERAL LAGOS \t 2M
次,这是很多I / O操作。这只是一个物流问题。您可以在导出之前将整个信息收集到表对象中。但是,这个决定取决于您和您的特定业务需求。
然而,真正的问题是你正在导出到同一个文件中,这个文件基本上是在你没有告诉它之前写下你以前写的任何内容。因此,只有最后一次出口仍然存在,我怀疑它是空白的。
导出时尝试使用Foreach ($Server in $ServerList)
{
Foreach ($Scope in $ScopeList)
{
$Data | Export-csv -Path FileName.csv
}
}
开关。
[(Total Servers) x (Total Scopes per server)]
此外,我注意到您在-Append
cmdlet中使用$Data | Export-csv -Path FileName.csv -NoTypeInformation -Append
变量,您应该只使用对象的属性名称而不是变量名称。我不知道是否返回任何内容,因为cmdlet不知道如何处理它,这也可能导致问题。
答案 1 :(得分:0)
根据您的代码,您在Export-Csv
内使用foreach-object
。通常Export-csv
会创建包含新数据的csv文件。如果csv文件中已存在数据,则它将使用新数据覆盖现有数据。
所以不要使用
Export-Csv "\\termserv\d$\term\User\Reservations1.csv"
你可以使用
Export-Csv "\\termserv\d$\term\User\Reservations1.csv" -Force -Append -NoTypeInformation
此处-Append
会将数据附加到csv文件中。没有覆盖。