2015-05-14 4 views
0

У меня есть сценарий PowerShell нижеNew-Item: Доступ к пути запрещен

$ous = 'ou=office,dc=xxx,dc=com',` 
     'ou=shop0,dc=xxx,dc=com',` 
     'ou=shop1,dc=xxx,dc=com',` 
     'ou=shop2,dc=xxx,dc=com' 
$outfile = 'c:\work\userinfo.csv' 

New-Item -Force -type "file" -Path 'c:\work\userinfo.csv' 

$ous | ForEach { 
    Get-ADUser -Filter * -SearchBase $_ | 
    Select-Object -Property CN,` 
     DisplayName,` 
     GivenName,` 
     Surname,` 
     SamAccountName,` 
     PasswordExpired,` 
     mail,` 
     Description,` 
     Office,` 
     EmployeeNumber,` 
     Title | 
    Sort-Object -Property Name | 
    export-csv -Append $outfile -NoTypeInformation 

    } 

Тогда, когда я запускаю его, я получил сообщение об ошибке «New-Item: доступ к пути C: \ работа \ userinfo.csv ".

В чем причина этой ошибки?

Update:

В моем случае, так или иначе, PowerShell чувствительны к регистру .... имя папки вывода является прописными, в моем сценарии строчной, он работает после того, как я сопрягать их ,

+0

Уже открыт? Или использовать в другом месте, как Excel или блокнот. Это может быть просто вопрос с разрешениями, но я думаю, вы уже это считали. – Matt

+0

Нет, файл не существует, причина, по которой я поставил «новый элемент», заключается в том, что каждый раз, когда я запускаю скрипт, я могу получить свежий результат без предыдущих результатов. или, может быть, мне просто нужно изменить способ вывода файла? –

+0

Даже я запускаю только файл «New-Item -Force-type» «-Path» c: \ work \ userinfo.csv'' Я все равно получаю ту же ошибку. –

ответ

1

Я обошел причину ошибки (о которой я не уверен в причине). Еще один способ получить то, что вы хотите

каждый раз, когда я бегу сценарий, я мог бы получить свежий результат без предыдущих результатов

Вам просто нужно, чтобы переместить выходной код вне цикла и удалить Append. Pipeline обрабатывает Append для вас.

$ous | ForEach { 
    Get-ADUser -Filter * -SearchBase $_ | 
    Select-Object -Property CN,` 
     DisplayName,` 
     GivenName,` 
     Surname,` 
     SamAccountName,` 
     PasswordExpired,` 
     mail,` 
     Description,` 
     Office,` 
     EmployeeNumber,` 
     Title    
} | Sort-Object -Property Name | 
    export-csv -Append $outfile -NoTypeInformation 

Заметил что-то

Вы не призывающие все свойства, которые вы используете в вашем отборном заявлении. Это должно привести к некоторым нулевым столбцам в вашем выпуске. Я бы обновил ваш код до чего-то подобного.

$props = "CN","DisplayName","GivenName","Surname","SamAccountName","PasswordExpired","mail","Description","Office","EmployeeNumber","Title" 

$ous | ForEach-Object { 
    Get-ADUser -Filter * -SearchBase $_ -Properties $props | Select-Object $props   
} | Sort-Object -Property Name | 
    export-csv $outfile -NoTypeInformation 
+0

Спасибо за это. Я только заметил, что нет проблем, если я использую новый элемент для создания txt-файла, но csv-файла. так что новый элемент не будет работать с файлом csv? –

+0

@RootLoop интересный ..... – Matt

+0

Я пробовал свой путь, он не работает, я чувствую, что он должен быть где-то не так с csv-файлом. Он работает с txt-файлом. –

Смежные вопросы