Can you help me please, Screen Create User Powershell

I need to create logins, passwords and permissions in SQL, GUI via Powershell.

my code is lost in the line 139.

If ($objTextBox.Text -eq '' -and $objTextBox2.Text -eq '' -and $objTextBox3.Text -eq '' -and $objTextBox4.Text -eq '' -and $procName.Checked -eq '' -and $procName2.Checked -eq '' -and $procName3.Checked -eq '' ) 

And does not create the login on SQL Server, you can be?

[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms.DataVisualization") [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null 
$x = @() 
$Form = New-Object System.Windows.Forms.Form 
$Form.Text = "Administrao de usuarios SQLServer" 
$Form.Size = New-Object System.Drawing.Size(800,600) 
$Form.StartPosition = "CenterScreen" 
#$Form.controls.add() 
#$Form.Add_Shown({$Form.Activate()}) 
#$Form.ShowDialog() 


$Form.KeyPreview = $True 
$Form.Add_KeyDown({if ($_.KeyCode -eq "Enter") 
    {$x=$objTextBox.Text;$Form.Close()}}) 
$Form.Add_KeyDown({if ($_.KeyCode -eq "Escape") 
    {$Form.Close()}}) 

#nova ver ponteiro no primeiro campo 
#$Form.Cursor=[System.Windows.Forms.Cursors]::WaitCursor 
[System.Windows.Forms.Application]::UseWaitCursor=$false 


$OKButton = New-Object System.Windows.Forms.Button 
$OKButton.Location = New-Object System.Drawing.Size(65,460) 
$OKButton.Size = New-Object System.Drawing.Size(75,23) 
$OKButton.Text = "OK" 
$OKButton.Add_Click({$x=$objTextBox.Text,$objTextBox2.Text,$objTextBox3.Text,$objTextBox4.Text,$procName.Checked,$procName2.Checked,$procName3.Checked;$Form.Close()})
$Form.Controls.Add($OKButton) 


$CancelButton = New-Object System.Windows.Forms.Button 
$CancelButton.Location = New-Object System.Drawing.Size(150,460) 
$CancelButton.Size = New-Object System.Drawing.Size(75,23) 
$CancelButton.Text = "Cancel" 
$CancelButton.Add_Click({$Form.Close()}) 
$Form.Controls.Add($CancelButton) 


$objLabel = New-Object System.Windows.Forms.Label 
#$objLabel.DataBindings.DefaultDataSourceUpdateMode = 0 
$objLabel.Location = New-Object System.Drawing.Size(10,20) 
$objLabel.Size = New-Object System.Drawing.Size(280,20) 
$objLabel.Text = "Server:" 
$Form.Controls.Add($objLabel) 


$objTextBox = New-Object System.Windows.Forms.TextBox 
$objTextBox.DataBindings.DefaultDataSourceUpdateMode = 0 
$objTextBox.Location = New-Object System.Drawing.Size(10,40) 
$objTextBox.Size = New-Object System.Drawing.Size(260,20) 
$objTextBox.Name="ServerName" 
$objTextBox.TabIndex = 0 
$Form.Controls.Add($objTextBox) 


$objLabel2 = New-Object System.Windows.Forms.Label 
$objLabel2.Location = New-Object System.Drawing.Size(10,70) 
$objLabel2.Size = New-Object System.Drawing.Size(260,20) 
$objLabel2.Text = "Database:" 
$Form.Controls.Add($objLabel2) 


$objTextBox2 = New-Object System.Windows.Forms.TextBox 
$objTextBox2.Location = New-Object System.Drawing.Size(10,90) 
$objTextBox2.Size = New-Object System.Drawing.Size(260,20) 
$objTextBox2.Name="Base Name" 
$objTextBox2.TabIndex = 0 
$Form.Controls.Add($objTextBox2) 


$objLabel3 = New-Object System.Windows.Forms.Label 
$objLabel3.Location = New-Object System.Drawing.Size(10,120) 
$objLabel3.Size = New-Object System.Drawing.Size(260,20) 
$objLabel3.Text = "User:" 
$Form.Controls.Add($objLabel3) 


$objTextBox3 = New-Object System.Windows.Forms.TextBox 
$objTextBox3.Location = New-Object System.Drawing.Size(10,140) 
$objTextBox3.Size = New-Object System.Drawing.Size(260,20) 
$objTextBox3.name="User" 
$objTextBox3.TabIndex = 0 
$Form.Controls.Add($objTextBox3) 


$objLabel4 = New-Object System.Windows.Forms.Label 
$objLabel4.Location = New-Object System.Drawing.Size(350,120) 
$objLabel4.Size = New-Object System.Drawing.Size(260,20) 
$objLabel4.Text = "Password:" 
$Form.Controls.Add($objLabel4) 


$objTextBox4 = New-Object System.Windows.Forms.TextBox 
$objTextBox4.Location = New-Object System.Drawing.Size(350,140) 
$objTextBox4.Size = New-Object System.Drawing.Size(260,20) 
$objTextBox4.name="Pass" 
$objTextBox4.TabIndex = 0 
$Form.Controls.Add($objTextBox4) 


$groupBox = New-Object System.Windows.Forms.GroupBox 
$groupBox.Location = New-Object System.Drawing.Size(10,190) 
$groupBox.size = New-Object System.Drawing.Size(755,200) 
$groupBox.Text = "Permisses e acessos Database:" 
$Form.Controls.Add($groupBox) 


$procName = New-Object System.Windows.Forms.checkbox 
$procName.Location = New-Object System.Drawing.Size(10,40) 
$procName.Size = New-Object System.Drawing.Size(100,20) 
$procName.Checked = $false 
$procName.Text = "Read" 
$procName.TabIndex = 0 
$groupBox.Controls.Add($procName) 


$procName2 = New-Object System.Windows.Forms.checkbox 
$procName2.Location = New-Object System.Drawing.Size(270,40) 
$procName2.Size = New-Object System.Drawing.Size(100,20) 
$procName2.Checked = $false 
$procName2.Text = "Write" 
$procName2.TabIndex = 0 
$groupBox.Controls.Add($procName2) 


$procName3 = New-Object System.Windows.Forms.checkbox 
$procName3.Location = New-Object System.Drawing.Size(550,40) 
$procName3.Size = New-Object System.Drawing.Size(100,20) 
$procName3.Checked = $false 
$procName3.Text = "Alter" 
$procName3.TabIndex = 0 
$groupBox.Controls.Add($procName3) 


If ($objTextBox.Text -eq '' -and $objTextBox2.Text -eq '' -and $objTextBox3.Text -eq '' -and $objTextBox4.Text -eq '' -and $procName.Checked -eq '' -and $procName2.Checked -eq '' -and $procName3.Checked -eq '' ) 




Else 

$objForm.Cursor=[System.Windows.Forms.Cursors]::WaitCursor 

$Instance = $objTextBox.Text 
$DBName = $objTextBox2.Text 
$LoginName = $objTextBox3.Text 
$Password = $objTextBox4.Text 

$bb=$Instance 
$bb 
$bb 

$Server = New-Object ("Microsoft.SqlServer.Management.SMO.Server") $instance 

#Recebi login pra ver se exist. 
$Login = $Server.Logins.Item($LoginName) 

IF (!($Login))  #check se existente. 

    #Caso no existir criado um novo login 
    $Login = New-Object ("Microsoft.SqlServer.Management.SMO.Login") ($Server, $LoginName)   
    $Login.LoginType = [Microsoft.SqlServer.Management.Smo.LoginType]::SqlLogin 
    $Login.Create($Password) 


$DB = $Server.Databases[$DBName] 
$User = $DB.Users[$LoginName] 




if (!($User)) # check se usurio existente. 

    #Se no Add. 
    $User = New-Object ("Microsoft.SqlServer.Management.SMO.User") ($DB, $LoginName) 
    $User.Login = $LoginName 
    $User.Create() 

    IF ($procName.Checked -eq $true) 

    $Role_Leitura="db_datareader" 

    $dbrole = $DB.Roles[$Role_Leitura]   
    $dbrole.AddMember($user.Name) 
    $dbrole.Alter() 
    Write-Host("User $user adicionado com sucesso para $Role_Leitura.") 

Else{ 

}

IF ($procName2.Checked -eq $true) 

    $Role_Gravacao ="db_datawriter" 

    $dbrole2 = $DB.Roles[$Role_Gravacao] 
    $dbrole2.AddMember($user.Name) 
    $dbrole2.Alter() 
    Write-Host("User $user adicionado com sucesso para $Role_Gravacao.") 

Else { 





IF ($procName3.Checked -eq $true) 

    $Role_Modificacao ="db_owner" 

        $dbrole3 = $DB.Roles[$Role_Modificacao] 
    $dbrole3.AddMember($user.Name) 
    $dbrole3.Alter() 
    Write-Host("User $user adicionado com sucesso para $Role_Modificacao.") 

Else { 

  } 

}
$Form.Topmost = $True 

$Form.Add_Shown({$Form.Activate()}) 
[void] $Form.ShowDialog() 


$x 

                             
September 14th, 2015 10:40pm

Forms do not work like that.  You need too ask the person who built your form to help you modify it to do what you want.

In a form all code must be in an event.  Much of your code is just inserted into the form code body.

Free Windows Admin Tool Kit Click here and download it now
September 14th, 2015 10:54pm

Suggestion - create a function that creates a user ac count. Place a "Save" or "Create User" button on form. Call the function from the button.

September 14th, 2015 11:01pm