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 = "Administração 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 = "Permissões 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 não 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 usuário é existente.
{
#Se não 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