2015-01-16 7 views
0

У меня возникла проблема, когда я получаю terminatorexpectedatendof ошибки строки со следующим кодом, который будет использоваться для удаления неактивных учетных записей. В настоящее время я просто тестирование протоколирование:Терминатор, ожидаемый в конце строки

Get-ADUser -Filter * -Properties accountauditstatus, displayname, distinguishedname, lastlogondate, lastlogondate, passwordlastset, created, enabled -SearchBase "OU=Vendors, DC=my, DC=domain, DC=com" |Where-Object {$_.accountauditstatus -ne "ignore: proxy account" -and $_.passwordLastSet –lt (Get-Date).AddDays(-7) -and $_.created -lt (get-date).adddays(-365) -and $_.lastlogondate -lt (get-date).adddays(-365) -and $_.Enabled -eq $true}|Select-object -First 10 |ForEach-Object {Write-output $_.name |Out-File -filepath c:\temp\log.log -append}

Что такое нечетное, что если я вставить команду в PowerShell подсказывать отлично работает нормально, но когда я пытаюсь запустить как файл .ps1, я получаю Ошибка. Я не совсем эксперт PowerShell, поэтому я уверен, что чего-то не хватает. Любая помощь будет замечательной!

+0

Предполагая, что вы сохранили все в одной строке ... Я начал бы удалять командлет с помощью командлета, чтобы увидеть, в какой части ошибки ... –

+0

Adriano, спасибо за ответ. Да, все на одной линии. Я мог бы, конечно, попробовать то, что вы предлагаете, но странно, что команда работает нормально из приглашения, а не как файл. – JWIL

ответ

1

Проходя шаг за шагом я обнаружил, что PowerShell не понравилась эта строка:

$_.passwordLastSet –lt (Get-Date).AddDays(-7) 

Я взял

-lt (get-date).adddays(-365) 

Со следующего места в коде и скопировать и вставить его, заменив 365 с 7 и код работал. Не уверен, в чем проблема, но код теперь работает.

Спасибо за ваше предложение, Адриано.