[英]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.