繁体   English   中英

Powershell Gui If语句不起作用

[英]Powershell Gui If Statement not working

我有一些功能强大,可以通过单击按钮来运行,以使用文本框中提供的名称创建一个AD组。 true语句有效,但false语句不执行。 我的代码如下:

    function Button_Click( )
{
    $Nameofgroup = $TextBox1.text

    if (Get-adgroup $nameofgroup)
    {
        [System.Windows.Forms.MessageBox]::Show(" $nameofgroup Already exists", "Alert")
        }
        else
    {
        [System.Windows.Forms.MessageBox]::Show(" $nameofgroup Created", "Alert")
            NEW-ADGroup –name $Nameofgroup –groupscope Global –path “OU=example,OU=example,DC=Example,DC=example,DC=example”
    }

如果要在不使用GUI的情况下进行测试,则可以改用以下代码。

$Nameofgroup = $TextBox1.text

if (Get-adgroup $nameofgroup)
{
    Write-host "Already Exists"
    }
    else
{
    Write-Host "Created Successfully"
        NEW-ADGroup –name $Nameofgroup –groupscope Global –path “OU=example,OU=example,DC=Example,DC=example,DC=example”
}

如果自己测试AD组创建代码,则可以正常工作。

如果您对解决此问题有任何想法,请告诉我。

谢谢,

SG

如果指定的组不存在,则Get-ADGroup cmdlet会引发异常。 您可以使用try catch语句来捕获异常,但是我认为使用filter参数指定组名会更容易(如果您的过滤器未产生结果,则不会产生异常):

if (Get-ADGroup -Filter { Name -eq $nameofgroup })
{
    [System.Windows.Forms.MessageBox]::Show(" $nameofgroup Already exists", "Alert")
}
else
{
    [System.Windows.Forms.MessageBox]::Show(" $nameofgroup Created", "Alert")
    New-ADGroup –name $Nameofgroup –groupscope Global –path "OU=example,OU=example,DC=Example,DC=example,DC=example"
}

使用此代码,如果该组不存在,则不会产生任何错误(只是一个空响应),您的else代码应运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM