2013-09-27 25 views
0

我有一个脚本在以管理员身份运行时运行正常,但在以普通用户身份运行时出现Parse错误。有任何想法吗?; enter image description here带有1个参数的调用“Parse”的异常:输入字符串的格式不正确

SCRIPT

`NeverExpires = 9223372036854775807; 
$ExpireMin = (Get-Date).AddDays(4); 
$ExpireMax = (Get-Date).AddDays(9); 

$Userlist = Get-ADUser -Filter * -Properties name, samaccountname, accountexpirationdate, enabled, distinguishedname, accountExpires | Where-object {($_.DistinguishedName -notlike "*OU=Terminated,OU=Users,OU=Home Office,DC=Domain,DC=com")} | 
Where-Object {$_.accountExpires -ne $NeverExpires ` 
-and [datetime]::FromFileTime([int64]::Parse($_.accountExpires)) -lt $ExpireMax ` 
-and [datetime]::FromFileTime([int64]::Parse($_.accountExpires)) -gt $ExpireMin } 

$Userlist | select name, samaccountname, accountexpirationdate, enabled, distinguishedname | export-csv $ReportName -notypeinformation 

Send-MailMessage -To $To -From $From -Subject $Subject -Body $Body -SMTPServer $SMTPServer -Attachments $ReportName 

Get-ADUser -Filter * -Properties accountExpires | 
Where-Object {$_.accountExpires -ne $NeverExpires ` 
-and [datetime]::FromFileTime([int64]::Parse($_.accountExpires)) -lt $ExpireMax ` 
-and [datetime]::FromFileTime([int64]::Parse($_.accountExpires)) -gt $ExpireMin } | ForEach { 
     $account = $_ 
     $manager = Get-ADUser -Identity $account -Properties EmailAddress,Manager | %{(Get-AdUser $_.Manager -Properties EmailAddress).EmailAddress}` 
+0

我建议您将值'$ _。accountExpires'写入输出,然后在以标准用户身份运行脚本时检查该值。也许这将为根本问题提供进一步的线索。 –

+0

@KeithHill可能是一个特定的属性为普通用户隐藏? – Mitul

+0

@Mitul可能但我会期望一个ArgumentNullException来代替。 –

回答

0

我要说的是$_.accountExpires为空或者是因为财产无法检索或$_本身就是空。 Powershell将静静地将null转换为空字符串,导致解析无效的格式。请注意,Parse调用是完全不必要的,因为powershell会自动尝试为您强制使用字符串,并且可能会给您提供更好的错误消息。尽管空值将被强制为0。

+0

我添加了一个写主机“$ _。accountExpires”,无论我是否以管理员身份运行,输出都是“.accountExpires”。我应该尝试彻底删除解析行吗? – user2402045

+0

@ user2402045以及建议$ _可能为空,但是打印accountExpires属性的语法不正确。 'write-host $ _。accountExpires'(注意:不含引号)或'write-host“$($ _。accountExpires)”'应该可以工作。 –

+0

我试过了,没有引号,什么也没有显示,所以它似乎证明它是空的。奇怪的是,它作为管理员或用户显示为空,并且以admin身份运行时不会收到消息。 – user2402045