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

PowerShell新手求助:脚本中Get-ADUser命令无法正常输出结果

嘿,我帮你排查了下脚本里的问题,主要有几个点会导致Get-ADUser在脚本里无法正常输出结果,一起来解决:

1. 忘记导入ActiveDirectory模块

控制台里你可能之前手动加载过AD模块,但脚本独立运行时不会自动加载这个模块,所以必须在脚本开头明确导入:

Import-Module ActiveDirectory -ErrorAction Stop

注意:运行脚本的PowerShell窗口最好以管理员身份打开,确保有权限访问AD模块。

2. 函数调用的冗余赋值

在Get-function里,$script:ChosenFunction=userInfo这行完全没必要,直接调用userInfo函数就行,赋值这个变量不会帮你输出结果,反而容易造成逻辑混淆。

3. Exit选项的Switch分支缺失

你菜单里写了X. Exit,但Switch语句里只处理了5对应Exit,输入X时会导致$Choice为空,需要补上对应分支:

"X" {$Choice="Exit"}

修改后的完整脚本

# 导入AD模块,确保脚本能找到Get-ADUser命令
Import-Module ActiveDirectory -ErrorAction Stop

Clear-Host
$script:ChosenFunction = Get-function

function Get-function {
    Write-Host "1. IP (future addon)"
    Write-Host "2. UserInfo"
    Write-Host "3. CopyZ (Future addon)"
    Write-Host "4. Local Users (Future addon)"
    Write-Host "X. Exit"
    $Action = Read-Host "Choose an action:"
    
    Switch ($Action) {
        1 {$Choice="IP"}
        2 {$Choice="UserInfo"}
        3 {$Choice="CopyZ"}
        4 {$Choice="Local Users"}
        "X" {$Choice="Exit"} # 修正Exit选项的分支
    }
    
    Write-Host "Function chosen is $Choice"
    
    if ($Action -eq 2) {
        Write-Host "if is working"
        userInfo # 直接调用用户信息查询函数
    }
}

function userInfo {
    cls
    $Name = Read-Host "Enter user name: "
    Write-Host "finding $Name"
    # 加上ErrorAction方便排查找不到用户的情况
    Get-ADUser $Name -Properties Description -ErrorAction Stop
}

额外排查点

如果还是没输出,可以试试:

  • 确认输入的用户名是AD中存在的正确账号(先在控制台单独运行Get-ADUser jdoe -Properties Description验证)
  • 在Get-ADUser后面加上| Out-Host强制输出到控制台,比如:Get-ADUser $Name -Properties Description | Out-Host

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 09:44:08