Powershell 导出Csv将创建一个空文件
我想将脚本的结果导出到新的CSV文件。不幸的是,Powershell 导出Csv将创建一个空文件,powershell,export-csv,Powershell,Export Csv,我想将脚本的结果导出到新的CSV文件。不幸的是,导出Csv只创建了一个空文件。我想写主机有问题,不能保存到文件中 也许有一个选项可以将控制台的输出保存到txt/csv文件中 $Date = $((Get-Date).ToString('yyyy-MM-dd')) $Evaluation = { $Users = Get-ADUser -Filter 'enabled -eq $true' -SearchBase $OU -Properties mailNickname Wri
导出Csv
只创建了一个空文件。我想写主机有问题,不能保存到文件中
也许有一个选项可以将控制台的输出保存到txt/csv文件中
$Date = $((Get-Date).ToString('yyyy-MM-dd'))
$Evaluation = {
$Users = Get-ADUser -Filter 'enabled -eq $true' -SearchBase $OU -Properties mailNickname
Write-Host "Name;CAL Exchange"
foreach ($User in $Users) {
if ($User.mailNickName -eq $null) {
$User.CALEX = "No"
} else {
$User.CALEX = "Yes"
}
Write-Host "$($User.Name);$($User.CALEX)"
}
Write-Host ""
Write-Host "Count: $($Users.Count) Users"
}
$Evaluation_Department = {
$OU = "OU=ofDepartment"
& $Evaluation | Export-Csv -Path "C:\Support\$($Date)-Department.csv"
}
& $Evaluation_Department
除此之外,我将在文件中:
Name;CAL Exchange
$($User.Name);$($User.CALEX)
[...]
$($User.Name);$($User.CALEX)
Count: $($Users.Count) Users
名称CAL交换
$($User.Name)$($User.CALEX)
[...]
$($User.Name)$($User.CALEX)
计数:$($Users.Count)个用户
和$Evaluation\u部门
仅用于测试目的。我想这就是您要找的
$date = $((Get-Date).ToString('yyyy-MM-dd'))
$OU = "OU=_Users,CN=..."
$Users = Get-ADUser -Filter 'enabled -eq $true' -SearchBase = $OU -Properties mailNickname
$Users | Add-Member -MemberType NoteProperty -Name CALEX -Value $null -Force
foreach ($User in $Users)
{
if ($User.mailNickName -eq $null)
{
$User.CALEX = "No"
}
else
{
$User.CALEX = "Yes"
}
}
$Users | Select-Object SamAccountName, CALEX | Export-CSV -Path "C:\Support\$($Date)-Department.csv" -NoTypeInformation -Force
所需的文件可以通过简化的脚本版本生成:
$Date=$((获取日期).ToString('yyyy-MM-dd'))
$OU=“OU=of部门”
$Users=Get ADUser-Filter'enabled-eq$true'-SearchBase$OU-Properties邮件昵称
$Users |选择对象名称,@{Name=“CAL Exchange”;e={if($User.mailNickName){return“Yes”}否则{return“No”}}}}}导出CSV-Path“C:\temp\$($Date)-Department.CSV”-NoTypeInformation
当然最后它不会有Count:X个用户
,但我故意删除了它-我个人不会把它放在.csv
文件中。通过使用添加内容
,您可以轻松添加此内容
注意:手动将内容添加到CSV文件时,请注意数据格式-否则,例如Excel可能无法读取该文件。通常,您必须记住“
您希望看到的确切输出是什么?一列$User.Name
,一列$User.CALEX
?另外,将代码存储到变量中并使用&
执行它的目的是什么?是否缺少一些逻辑?写入主机就像“打印”-它将文本发送到powershell窗口。尝试删除它。我不太确定您的代码在这里期望的输出是什么,您能解释一下期望的输出吗?尝试用编写另一种语言的方式编写PS脚本是不合适的。您试图做的事情非常简单,但不是以您的方式;我们正在做。如上所述,唐;t使用写入主机-如果要导出到csv,请将数组元素通过管道传输到该主机。尝试此代码查看它的功能:获取ADUser-Filter'enabled-eq$true'-SearchBase$OU | export csv-Path c:\temp\test.csvAlmost done,但CALEX
将是ADPropertyValueCollection
,因此您必须访问其值(例如,使用计算属性)