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

如何在PowerShell中循环执行创建AD OU的判断语句?

优化AD环境中OU创建的循环逻辑

针对你当前代码重复判断、仅支持两次OU创建的问题,可以通过do-while循环重构逻辑,实现无限次创建直到用户主动停止,同时简化代码结构:

优化后的PowerShell代码

# 创建OU的循环逻辑
$createdOU = $false
do {
    # 根据是否已创建过OU,切换提示文本
    $prompt = $createdOU ? "Do you want to create any additional Organizational Units? Y/N" : "Do you want to create any Organizational Units? Y/N"
    $createOU = Read-Host -Prompt $prompt

    # 匹配Y/Yes(忽略大小写)
    if ($createOU -match '^Y(es)?$') {
        # 收集OU名称(必填参数)
        $ouName = Read-Host -Prompt "Enter the name of the Organizational Unit"
        # 替换为你的实际域路径,比如DC=contoso,DC=com
        New-ADOrganizationalUnit -Name $ouName -Path "DC=yourdomain,DC=com"
        $createdOU = $true
        Write-Host "OU '$ouName' created successfully."
    }
} while ($createOU -match '^Y(es)?$')

关键优化点

  • 循环逻辑:用do-while实现循环创建,用户每次输入Y/Yes就继续,输入其他内容则终止
  • 交互优化:根据是否已创建过OU自动切换提示文本,符合用户操作流程
  • 输入兼容:用正则表达式^Y(es)?$支持大小写不敏感的输入(Y/Yes/y/yes都有效)
  • 补全必填参数:原代码的New-ADOrganizationalUnit缺少必填的-Name和-Path参数,优化后补充了用户输入OU名称的步骤,确保代码能实际运行
  • 代码简洁:消除重复的判断逻辑,所有创建逻辑都在循环内统一处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:20:46