You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本导出CSV文件名缺失$ouType参数求助

问题分析与解决

问题原因

输出文件名中缺失$ouType内容,是因为PowerShell字符串插值时,变量$ouType后面直接跟下划线_,导致PowerShell将$ouType_识别为一个完整变量名(该变量未定义),从而输出空值。

修复方案

在字符串中明确变量边界,将$ouType改为${ouType},确保PowerShell正确解析变量:

修改后的$outputFile定义代码:

$outputFile = Join-Path -Path $location -ChildPath "src\Results\User_Profiles_${ouType}_$($scriptStartTime.ToString('dd-MM-yyyy HHmmss')).csv"

完整修复后的函数代码

function Process-UsersInOU {
    param (
        [string[]]$ouDistinguishedName,
        [string]$ouType
    )

    $outputFile = Join-Path -Path $location -ChildPath "src\Results\User_Profiles_${ouType}_$($scriptStartTime.ToString('dd-MM-yyyy HHmmss')).csv"

    $results = @()
    foreach($ou in $ouDistinguishedName){

        Write-Output "Processing $($ou) ..."
        $Users = Get-ADUser -Filter 'enabled -eq $true' -SearchBase $ou
        write-output "This OU has $($Users.count) users..."
        foreach ($user in $Users) {
            $Groups = Get-ADPrincipalGroupMembership $user | Where-Object { $_.Name -like "*profiles*" }

            if ($Groups.Count -eq 0) {
                $result = [PSCustomObject]@{
                    'UserID' = $user.SamAccountName
                    'ProfilesGroup' = "Not a member of any group"
                }
            } else {
                $result = [PSCustomObject]@{
                    'UserID' = $user.SamAccountName
                    'ProfilesGroup' = ($Groups | ForEach-Object { $_.Name }) -join ', '
                }
            }

            $results += $result
        }
    }
    # Export results to CSV
    $results | Export-Csv -Path $outputFile -NoTypeInformation
}

内容的提问来源于stack exchange,提问作者Nuisance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:23:12