New-Item:拒绝访问路径

时间:2015-05-14 18:52:37

标签: powershell

我在下面有一个PowerShell脚本

$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:\ work \ userinfo.csv”被拒绝。

导致此错误的原因是什么?

更新

在我的情况下,不知何故,PowerShell区分大小写....输出文件夹名称是大写,在我的脚本中是小写,它在我匹配后工作它们。

1 个答案:

答案 0 :(得分:1)

我绕过了错误的原因(我不确定原因。)。得到你想要的另一种方式

  

每次我运行脚本时,我都可以获得没有先前结果的新结果

您只需要将输出代码移到循环外部并删除追加。 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

注意到某些内容

您没有在select语句中调用您正在使用的所有属性。这应该会导致输出中的一些空列。我会将你的代码更新为这样的东西。

$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