Get-ChildItem工作但Import-csv默认为home dir Powershell

时间:2015-02-27 20:36:41

标签: powershell csv

我正在尝试通过电子邮件发送每天生成的报告。此外,尝试计算csv中的用户行以及创建逻辑以仅计算和发送最新报告。

虽然变量似乎在文件名中有正确的值,但是当我在运行此脚本后检查时,我在Import-csv上一直收到错误,说它无法在默认用户目录中找到该文件而不是我指定的路径。这很烦人。请帮忙。感谢

Add-PSSnapin Quest.ActiveRoles.ADManagement
$reports = "\\Server\G$\Marc\Scripts\DailyReports\active\"
$latest = Get-ChildItem -Path $reports | Sort-Object -Descending | Select-Object -First 1


$people = Get-QADUser -SizeLimit 0 -LdapFilter "(&(employeeID=*)(&(objectCategory=person)(objectClass=user)(!objectClass=inetOrgPerson))(sAMAccountName=*))” -includedproperties dn,sn,title,givenname,company,employeeID,primarysmtpaddress,SamAccountName
$people | select dn,sn,title,givenname,company,employeeID,primarysmtpaddress,@{Label="SamAccountName";Expression={$_.SamAccountName.ToLower()}} | ConvertTo-Csv -NoTypeInformation | select -Skip 1 > \\Server\G$\Marc\Scripts\DailyReports\active\Total-Active-Users-AD_$((Get-Date).ToString('MM-dd-yyyy')).csv


$TotalUsers = Import-csv -Path $Latest.name | Measure-Object | Select-Object -expand Count | Out-String

send-mailmessage -from "email@me.com" -to "email@me.com" -subject "Total AD Active Users Report " -body "Total Active Users today was $TotalUsers" -Attachments $Latest.name -priority High -dno onSuccess, onFailure -smtpServer Smtp.server.com

1 个答案:

答案 0 :(得分:0)

您的脚本是否从存储报告的同一目录运行?如果没有,这可能是你的问题:

$Latest.Name只会为您提供该文件的名称,即" report.txt"或者您的报告的名称。如果您运行Import-Csv并为其指定一个没有绝对路径的文件名,那么Powershell将在当前目录(您的情况下为默认用户目录)中找到该文件。

$Latest.FullName将为您提供文件的绝对路径。尝试将其用作Import-Csv的路径参数。