##Программный продукт является собственностью компании DIRECTUM # Любое копирование текста влечет за собой нарушение авторских прав и карается уголовной ответственностью :) # Шутка, пользуйтесь и распространяйте, но помните: # За запуск и все последствия автор скрипта ответственности не несет! # Конфиденциальная информация взята в восклицательные знаки «!!» # Автор Дамир Мухутдинов. #Подключение модуля для AD import-module ActiveDirectory # 3 строки для создания форм [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") set-executionpolicy remotesigned # Подключение модуля для Lync cd $env:UserProfile; Import-Module '\\!Lync!\C$\Program Files\Common Files\Microsoft Lync Server 2010\Modules\Lync\Lync.psd1' # Подключение модуля для Exchange $s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://!ПОЧТА!/PowerShell/ -Authentication Kerberos Import-PSSession $s # почистим экран cls # чтоб много не спрашивал. $ConfirmPreference = "High" # функция создания основной формочки Function Main { $B_NewUser = new-object System.Windows.Forms.Button $B_Rename = new-object System.Windows.Forms.Button $B_Delete = new-object System.Windows.Forms.Button $B_moveOtd = new-object System.Windows.Forms.Button $B_moveFlo = new-object System.Windows.Forms.Button ## ## Кнопка_NewUser ## $B_NewUser.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_NewUser.Location = new-object System.Drawing.Point(15, 20) $B_NewUser.Name = "B_NewUser" $B_NewUser.Size = new-object System.Drawing.Size(232, 41) $B_NewUser.TabIndex = 3 $B_NewUser.Text = "Оформление сотрудника" $B_NewUser.UseVisualStyleBackColor = $true ## ## Кнопка_Rename ## $B_Rename.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_Rename.Location = new-object System.Drawing.Point(15, 80) $B_Rename.Name = "B_Rename" $B_Rename.Size = new-object System.Drawing.Size(232, 41) $B_Rename.TabIndex = 4 $B_Rename.Text = "Изменение фамилии" $B_Rename.UseVisualStyleBackColor = $true ## ## Кнопка_Delete ## $B_Delete.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_Delete.Location = new-object System.Drawing.Point(15, 140) $B_Delete.Name = "B_Delete" $B_Delete.Size = new-object System.Drawing.Size(232, 41) $B_Delete.TabIndex = 5 $B_Delete.Text = "Увольнние сотрудника" $B_Delete.UseVisualStyleBackColor = $true ## ## Кнопка_moveOtd ## $B_moveOtd.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_moveOtd.Location = new-object System.Drawing.Point(15, 200) $B_moveOtd.Name = "B_moveOtd" $B_moveOtd.Size = new-object System.Drawing.Size(232, 41) $B_moveOtd.TabIndex = 6 $B_moveOtd.Text = "Перевод в другой отдел" $B_moveOtd.UseVisualStyleBackColor = $true ## ## Кнопка_moveFlo ## $B_moveFlo.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_moveFlo.Location = new-object System.Drawing.Point(15, 260) $B_moveFlo.Name = "B_moveFlo" $B_moveFlo.Size = new-object System.Drawing.Size(232, 41) $B_moveFlo.TabIndex = 7 $B_moveFlo.Text = "Переезд на другой этаж" $B_moveFlo.UseVisualStyleBackColor = $true ## ## Теперь основное MainForm ## $MainForm = New-Object System.Windows.Forms.Form $MainForm.ClientSize = new-object System.Drawing.Size(260, 339) $MainForm.AutoSizeMode = [System.Windows.Forms.AutoSizeMode]::GrowAndShrink $MainForm.AutoScaleDimensions = new-object System.Drawing.SizeF(260, 339) $MainForm.MaximizeBox = $false; $MainForm.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen; $MainForm.Name = "MainForm" $MainForm.Text = "Что случилось?" $MainForm.Controls.Add($B_moveFlo) $MainForm.Controls.Add($B_moveOtd) $MainForm.Controls.Add($B_Delete) $MainForm.Controls.Add($B_Rename) $MainForm.Controls.Add($B_NewUser) # обработка для кнопок $B_NewUser.Add_Click({NewUser}) $B_Rename.Add_Click({RenameUser}) $B_Delete.Add_Click({DeleteUser}) $B_moveOtd.Add_Click({MoveDepartment}) $B_moveFlo.Add_Click({MoveFloor}) $MainForm.ShowDialog() } # Функция для нового пользователя Function NewUser { $L_Menu = New-Object System.Windows.Forms.Label $T_Login = New-Object System.Windows.Forms.TextBox $L_Login = New-Object System.Windows.Forms.Label $L_LastName = New-Object System.Windows.Forms.Label $T_LastName = New-Object System.Windows.Forms.TextBox $L_FistName = New-Object System.Windows.Forms.Label $T_FirstName = New-Object System.Windows.Forms.TextBox $L_Password = New-Object System.Windows.Forms.Label $T_Password = New-Object System.Windows.Forms.TextBox $L_Company = New-Object System.Windows.Forms.Label $C_Company = New-Object System.Windows.Forms.ComboBox $L_Department = New-Object System.Windows.Forms.Label $C_Department = New-Object System.Windows.Forms.ComboBox $L_floor = New-Object System.Windows.Forms.Label $C_Floor = New-Object System.Windows.Forms.ComboBox $Ch_Mailbox = New-Object System.Windows.Forms.CheckBox $Ch_Lync = New-Object System.Windows.Forms.CheckBox $B_OK = New-Object System.Windows.Forms.Button ## ## L_Menu ## $L_Menu.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 11.607, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Menu.Location = New-Object System.Drawing.Point(33, 4) $L_Menu.Name = "L_Menu"; $L_Menu.Size = New-Object System.Drawing.Size(313, 23); $L_Menu.Text = 'Заполнение всех полей обязательно'; $L_Menu.TabIndex = 0; ## ## L_Login ## $L_Login.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Login.Location = New-Object System.Drawing.Point(24, 30); $L_Login.Name = "L_Login"; $L_Login.Size = New-Object System.Drawing.Size(75, 20); $L_Login.Text = "Логин:"; $L_Login.TabIndex = 1; ## ## T_Login ## $T_Login.Location = New-Object System.Drawing.Point(117, 30); $T_Login.Name = "T_Login"; $T_Login.Size = New-Object System.Drawing.Size(214, 20); $T_Login.TabIndex = 2; ## ## L_LastName ## $L_LastName.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_LastName.Location = New-Object System.Drawing.Point(24, 70); $L_LastName.Name = "L_LastName"; $L_LastName.Size = New-Object System.Drawing.Size(75, 20); $L_LastName.Text = "Фамилия:"; $T_LastName.TabIndex = 3; ## ## T_LastName ## $T_LastName.Location = New-Object System.Drawing.Point(117, 70); $T_LastName.Name = "T_LastName"; $T_LastName.Size = New-Object System.Drawing.Size(214, 20); $T_LastName.TabIndex = 4; ## ## L_FistName ## $L_FistName.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_FistName.Location = New-Object System.Drawing.Point(24, 110); $L_FistName.Name = "L_FistName"; $L_FistName.Size = New-Object System.Drawing.Size(75, 20); $L_FistName.TabIndex = 5; $L_FistName.Text = "Имя:"; ## ## T_FirstName ## $T_FirstName.Location = New-Object System.Drawing.Point(117, 110); $T_FirstName.Name = "T_FirstName"; $T_FirstName.Size = New-Object System.Drawing.Size(214, 20); $T_FirstName.TabIndex = 6; ## ## L_Password ## $L_Password.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Password.Location = New-Object System.Drawing.Point(24, 150); $L_Password.Name = "L_Password"; $L_Password.Size = New-Object System.Drawing.Size(75, 20); $L_Password.TabIndex = 7; $L_Password.Text = "Пароль:"; ## ## T_Password ## $T_Password.Location = New-Object System.Drawing.Point(117, 150); $T_Password.Name = "T_Password"; $T_Password.Size = New-Object System.Drawing.Size(214, 20); $T_Password.TabIndex = 8; ## ## L_Company ## $L_Company.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Company.Location = New-Object System.Drawing.Point(24, 190); $L_Company.Name = "L_Company"; $L_Company.Size = New-Object System.Drawing.Size(75, 20); $L_Company.TabIndex = 9; $L_Company.Text = "Компания:"; ## ## C_Company ## $C_Company.FormattingEnabled = $true; foreach ($company in $fcompany) { $C_Company.Items.AddRange(($company)) } $C_Company.Location = New-Object System.Drawing.Point(117, 190); $C_Company.Name = "C_Company"; $C_Company.Size = New-Object System.Drawing.Size(214, 21); $C_Company.TabIndex = 10; ## ## L_Department ## $L_Department.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Department.Location = New-Object System.Drawing.Point(24, 230); $L_Department.Name = "L_Department"; $L_Department.Size = New-Object System.Drawing.Size(75, 20); $L_Department.TabIndex = 11; $L_Department.Text = "Отдел:"; ## ## C_Department ## $C_Department.FormattingEnabled = $true; foreach ($department in $fdepartment) {$C_Department.Items.AddRange(($department))} $C_Department.Location = New-Object System.Drawing.Point(117, 230); $C_Department.Name = "C_Department"; $C_Department.Size = New-Object System.Drawing.Size(214, 21); $C_Department.TabIndex = 12; ## ## L_floor ## $L_floor.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_floor.Location = New-Object System.Drawing.Point(24, 270); $L_floor.Name = "L_floor"; $L_floor.Size = New-Object System.Drawing.Size(75, 20); $L_floor.TabIndex = 13; $L_floor.Text = "Этаж"; ## ## C_Floor ## $C_Floor.FormattingEnabled = $true; foreach ($Floor in $Ffloor) {$C_Floor.Items.AddRange(($Floor))} $C_Floor.Location = New-Object System.Drawing.Point(117, 270); $C_Floor.Name = "C_Floor"; $C_Floor.Size = New-Object System.Drawing.Size(214, 21); $C_Floor.TabIndex = 14; ## ## Ch_Mailbox ## $Ch_Mailbox.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $Ch_Mailbox.Location = New-Object System.Drawing.Point(24, 310); $Ch_Mailbox.Name = "Ch_Mailbox"; $Ch_Mailbox.Size = New-Object System.Drawing.Size(307, 24); $Ch_Mailbox.TabIndex = 15; $Ch_Mailbox.Text = "Добавить в Microsoft Exchange Server"; $Ch_Mailbox.UseVisualStyleBackColor = $true; ## ## Ch_Lync ## $Ch_Lync.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $Ch_Lync.Location = New-Object System.Drawing.Point(24, 350); $Ch_Lync.Name = "Ch_Lync"; $Ch_Lync.Size = New-Object System.Drawing.Size(307, 24); $Ch_Lync.TabIndex = 16; $Ch_Lync.Text = "Добавить в Microsoft Lync Server"; $Ch_Lync.UseVisualStyleBackColor = $true; ## ## B_OK ## $B_OK.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_OK.Location = New-Object System.Drawing.Point(131, 391); $B_OK.Name = "B_OK"; $B_OK.Size = New-Object System.Drawing.Size(119, 40); $B_OK.TabIndex = 17; $B_OK.Text = "Оформить"; $B_OK.UseVisualStyleBackColor = $true; ## ## New-ObjectUserForm ## $NewUserForm = New-Object System.Windows.Forms.Form $NewUserForm.ClientSize = new-object System.Drawing.Size(369, 448) $NewUserForm.AutoSizeMode = [System.Windows.Forms.AutoSizeMode]::GrowAndShrink $NewUserForm.AutoScaleDimensions = new-object System.Drawing.SizeF(369, 448) $NewUserForm.MaximizeBox = $false; $NewUserForm.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen; $NewUserForm.Name = "NewUserForm" $NewUserForm.Text = "Процесс офрмиления сотрудника" $NewUserForm.Controls.Add($B_OK); $NewUserForm.Controls.Add($Ch_Lync); $NewUserForm.Controls.Add($Ch_Mailbox); $NewUserForm.Controls.Add($C_Floor); $NewUserForm.Controls.Add($L_floor); $NewUserForm.Controls.Add($C_Department); $NewUserForm.Controls.Add($L_Department); $NewUserForm.Controls.Add($C_Company); $NewUserForm.Controls.Add($L_Company); $NewUserForm.Controls.Add($T_Password); $NewUserForm.Controls.Add($L_Password); $NewUserForm.Controls.Add($T_FirstName); $NewUserForm.Controls.Add($L_FistName); $NewUserForm.Controls.Add($T_LastName); $NewUserForm.Controls.Add($L_LastName); $NewUserForm.Controls.Add($L_Login); $NewUserForm.Controls.Add($T_Login); $NewUserForm.Controls.Add($L_Menu); $B_OK.Add_Click({Proces_NewUser}); $NewUserForm.ShowDialog() } Function RenameUser { $L_Menu = New-Object System.Windows.Forms.Label $L_LoginOld = New-Object System.Windows.Forms.Label $T_LoginOld = New-Object System.Windows.Forms.TextBox $L_LoginNew = New-Object System.Windows.Forms.Label $T_LoginNew = New-Object System.Windows.Forms.TextBox $L_LastNameNew = New-Object System.Windows.Forms.Label $T_LastNameNew = New-Object System.Windows.Forms.TextBox $B_Rename = New-Object System.Windows.Forms.Button ## ## L_Menu ## $L_Menu.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 11.607, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Menu.Location = New-Object System.Drawing.Point(33, 7); $L_Menu.Name = "L_Menu"; $L_Menu.Size = New-Object System.Drawing.Size(362, 23); $L_Menu.TabIndex = 0; $L_Menu.Text = 'Заполнение всех полей обязательно'; ## ## L_LoginOld ## $L_LoginOld.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_LoginOld.Location = New-Object System.Drawing.Point(12, 30); $L_LoginOld.Name = "L_LoginOld"; $L_LoginOld.Size = New-Object System.Drawing.Size(113, 27); $L_LoginOld.TabIndex = 1; $L_LoginOld.Text = "Старый логин:"; ## ## T_LoginOld ## $T_LoginOld.Location = New-Object System.Drawing.Point(131, 30); $T_LoginOld.Name = "T_LoginOld"; $T_LoginOld.Size = New-Object System.Drawing.Size(214, 20); $T_LoginOld.TabIndex = 2; ## ## L_LoginNew ## $L_LoginNew.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_LoginNew.Location = New-Object System.Drawing.Point(12, 70); $L_LoginNew.Name = "L_LoginNew"; $L_LoginNew.Size = New-Object System.Drawing.Size(113, 27); $L_LoginNew.TabIndex = 3; $L_LoginNew.Text = "Новый логин:"; ## ## T_LoginNew ## $T_LoginNew.Location = New-Object System.Drawing.Point(131, 70); $T_LoginNew.Name = "T_LoginNew"; $T_LoginNew.Size = New-Object System.Drawing.Size(214, 20); $T_LoginNew.TabIndex = 4; ## ## L_LastNameNew ## $L_LastNameNew.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_LastNameNew.Location = New-Object System.Drawing.Point(12, 110); $L_LastNameNew.Name = "L_LastNameNew"; $L_LastNameNew.Size = New-Object System.Drawing.Size(122, 27); $L_LastNameNew.TabIndex = 5; $L_LastNameNew.Text = "Новая Фамилия:"; ## ## T_LastNameNew ## $T_LastNameNew.Location = New-Object System.Drawing.Point(131, 110); $T_LastNameNew.Name = "T_LastNameNew"; $T_LastNameNew.Size = New-Object System.Drawing.Size(214, 20); $T_LastNameNew.TabIndex = 6; ## ## B_Rename ## $B_Rename.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_Rename.Location = New-Object System.Drawing.Point(131, 153); $B_Rename.Name = "B_Rename"; $B_Rename.Size = New-Object System.Drawing.Size(134, 40); $B_Rename.TabIndex = 21; $B_Rename.Text = "Переименовать"; $B_Rename.UseVisualStyleBackColor = $true; ## ## RenameUserForm ## $RenameUserForm = New-Object System.Windows.Forms.Form $RenameUserForm.ClientSize = new-object System.Drawing.Size(380, 209) $RenameUserForm.AutoSizeMode = [System.Windows.Forms.AutoSizeMode]::GrowAndShrink $RenameUserForm.AutoScaleDimensions = new-object System.Drawing.SizeF(380, 209) $RenameUserForm.MaximizeBox = $false; $RenameUserForm.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen; $RenameUserForm.Name = "RenameUserForm" $RenameUserForm.Text = "Процесс переименования сотрудника" $RenameUserForm.Controls.Add($B_Rename); $RenameUserForm.Controls.Add($T_LastNameNew); $RenameUserForm.Controls.Add($L_LastNameNew); $RenameUserForm.Controls.Add($T_LoginNew); $RenameUserForm.Controls.Add($L_LoginNew); $RenameUserForm.Controls.Add($T_LoginOld); $RenameUserForm.Controls.Add($L_LoginOld); $RenameUserForm.Controls.Add($L_Menu); $B_Rename.Add_Click({Proces_Rename}) $RenameUserForm.ShowDialog() } Function DeleteUser { $L_Menu = New-Object System.Windows.Forms.Label $L_LoginDelete = New-Object System.Windows.Forms.Label $T_LoginDelete = New-Object System.Windows.Forms.TextBox $L_LoginMaster = New-Object System.Windows.Forms.Label $T_LoginMaster = New-Object System.Windows.Forms.TextBox $B_Disable = New-Object System.Windows.Forms.Button $B_Delete = New-Object System.Windows.Forms.Button ## ## L_Menu ## $L_Menu.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 11.607, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Menu.Location = New-Object System.Drawing.Point(33, 7); $L_Menu.Name = "L_Menu"; $L_Menu.Size = New-Object System.Drawing.Size(313, 23); $L_Menu.TabIndex = 0; $L_Menu.Text = "Заполнение всех полей обязательно"; ## ## L_LoginDelete ## $L_LoginDelete.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_LoginDelete.Location = New-Object System.Drawing.Point(12, 40); $L_LoginDelete.Name = "L_LoginDelete"; $L_LoginDelete.Size = New-Object System.Drawing.Size(113, 40); $L_LoginDelete.TabIndex = 1; $L_LoginDelete.Text = "Логин уволенного:"; ## ## T_LoginDelete ## $T_LoginDelete.Location = New-Object System.Drawing.Point(131, 40); $T_LoginDelete.Name = "T_LoginDelete"; $T_LoginDelete.Size = New-Object System.Drawing.Size(214, 20); $T_LoginDelete.TabIndex = 2; ## ## L_LoginMaster ## $L_LoginMaster.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_LoginMaster.Location = New-Object System.Drawing.Point(12, 70); $L_LoginMaster.Name = "L_LoginMaster"; $L_LoginMaster.Size = New-Object System.Drawing.Size(113, 40); $L_LoginMaster.TabIndex = 3; $L_LoginMaster.Text = "Логин руководителя:"; ## ## T_LoginMaster ## $T_LoginMaster.Location = New-Object System.Drawing.Point(131, 75); $T_LoginMaster.Name = "T_LoginMaster"; $T_LoginMaster.Size = New-Object System.Drawing.Size(214, 20); $T_LoginMaster.TabIndex = 4; ## ## B_Delete ## $B_Delete.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_Delete.Location = New-Object System.Drawing.Point(131, 132); $B_Delete.Name = "B_Delete"; $B_Delete.Size = New-Object System.Drawing.Size(119, 40); $B_Delete.TabIndex = 6; $B_Delete.Text = "Уволен"; $B_Delete.UseVisualStyleBackColor = $true; ## ## DeleteUserForm ## $DeleteUserForm = New-Object System.Windows.Forms.Form $DeleteUserForm.ClientSize = new-object System.Drawing.Size(367, 190) $DeleteUserForm.AutoSizeMode = [System.Windows.Forms.AutoSizeMode]::GrowAndShrink $DeleteUserForm.AutoScaleDimensions = new-object System.Drawing.SizeF(367, 190) $DeleteUserForm.MaximizeBox = $false; $DeleteUserForm.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen; $DeleteUserForm.Name = "DeleteUserForm" $DeleteUserForm.Text = "Процесс увольнения сотрудника" $DeleteUserForm.Controls.Add($B_Delete); $DeleteUserForm.Controls.Add($L_help); $DeleteUserForm.Controls.Add($T_LoginMaster); $DeleteUserForm.Controls.Add($L_LoginMaster); $DeleteUserForm.Controls.Add($T_LoginDelete); $DeleteUserForm.Controls.Add($L_LoginDelete); $DeleteUserForm.Controls.Add($L_Menu); $B_Disable.Add_Click({Proces_Disable}) $B_Delete.Add_Click({Proces_Delete}) $DeleteUserForm.ShowDialog() } Function MoveDepartment { $L_Menu = New-Object System.Windows.Forms.Label $L_Login = New-Object System.Windows.Forms.Label $T_Login = New-Object System.Windows.Forms.TextBox $L_OldDepartment = New-Object System.Windows.Forms.Label $C_OldDepartment = New-Object System.Windows.Forms.ComboBox $L_NewDepartment = New-Object System.Windows.Forms.Label $C_NewDepartment = New-Object System.Windows.Forms.ComboBox $B_Remove = New-Object System.Windows.Forms.Button ## ## L_Menu ## $L_Menu.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 11.607, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Menu.Location = New-Object System.Drawing.Point(12, 7); $L_Menu.Name = "L_Menu"; $L_Menu.Size = New-Object System.Drawing.Size(331, 23); $L_Menu.TabIndex = 0; $L_Menu.Text = 'Заполнение всех полей обязательно'; ## ## L_Login ## $L_Login.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Login.Location = New-Object System.Drawing.Point(12, 30); $L_Login.Name = "L_Login"; $L_Login.Size = New-Object System.Drawing.Size(58, 27); $L_Login.TabIndex = 1; $L_Login.Text = "Логин:"; ## ## T_Login ## $T_Login.Location = New-Object System.Drawing.Point(117, 30); $T_Login.Name = "T_Login"; $T_Login.Size = New-Object System.Drawing.Size(214, 20); $T_Login.TabIndex = 2; ## ## L_OldDepartment ## $L_OldDepartment.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_OldDepartment.Location = New-Object System.Drawing.Point(12, 70); $L_OldDepartment.Name = "L_OldDepartment"; $L_OldDepartment.Size = New-Object System.Drawing.Size(105, 27); $L_OldDepartment.TabIndex = 3; $L_OldDepartment.Text = "Старый отдел:"; ## ## C_OldDepartment ## $C_OldDepartment.FormattingEnabled = $true; foreach ($department in $fdepartment) {$C_OldDepartment.Items.AddRange(($department))} $C_OldDepartment.Location = New-Object System.Drawing.Point(117, 70); $C_OldDepartment.Name = "C_OldDepartment"; $C_OldDepartment.Size = New-Object System.Drawing.Size(214, 21); $C_OldDepartment.TabIndex = 4; ## ## L_NewDepartment ## $L_NewDepartment.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_NewDepartment.Location = New-Object System.Drawing.Point(12, 110); $L_NewDepartment.Name = "L_NewDepartment"; $L_NewDepartment.Size = New-Object System.Drawing.Size(105, 27); $L_NewDepartment.TabIndex = 5; $L_NewDepartment.Text = "Новый отдел:"; ## ## C_NewDepartment ## $C_NewDepartment.FormattingEnabled = $true; foreach ($department in $fdepartment) {$C_NewDepartment.Items.AddRange(($department))} $C_NewDepartment.Location = New-Object System.Drawing.Point(117, 110); $C_NewDepartment.Name = "C_NewDepartment"; $C_NewDepartment.Size = New-Object System.Drawing.Size(214, 21); $C_NewDepartment.TabIndex = 6; ## ## B_Remove ## $B_Remove.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_Remove.Location = New-Object System.Drawing.Point(117, 150); $B_Remove.Name = "B_Remove"; $B_Remove.Size = New-Object System.Drawing.Size(134, 40); $B_Remove.TabIndex = 7; $B_Remove.Text = "Перевод"; $B_Remove.UseVisualStyleBackColor = $true; $MoveDepartmentForm = New-Object System.Windows.Forms.Form $MoveDepartmentForm.ClientSize = new-object System.Drawing.Size(354, 202) $MoveDepartmentForm.AutoSizeMode = [System.Windows.Forms.AutoSizeMode]::GrowAndShrink $MoveDepartmentForm.AutoScaleDimensions = new-object System.Drawing.SizeF(354, 202) $MoveDepartmentForm.MaximizeBox = $false; $MoveDepartmentForm.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen; $MoveDepartmentForm.Name = "MoveDepartmentForm" $MoveDepartmentForm.Text = "Процесс перевода сотрудника в другой отдел" $MoveDepartmentForm.Controls.Add($B_Remove); $MoveDepartmentForm.Controls.Add($C_NewDepartment); $MoveDepartmentForm.Controls.Add($L_NewDepartment); $MoveDepartmentForm.Controls.Add($C_OldDepartment); $MoveDepartmentForm.Controls.Add($L_OldDepartment); $MoveDepartmentForm.Controls.Add($T_Login); $MoveDepartmentForm.Controls.Add($L_Login); $MoveDepartmentForm.Controls.Add($L_Menu); $B_Remove.Add_Click({[System.Windows.Forms.MessageBox]::Show("Сотрудник: " + $T_Login.Text + " переведен из " + $C_OldDepartment.SelectedItem + " в " + $C_NewDepartment.SelectedItem )}) $MoveDepartmentForm.ShowDialog() } Function MoveFloor { $L_Menu = New-Object System.Windows.Forms.Label $L_Login = New-Object System.Windows.Forms.Label $T_Login = New-Object System.Windows.Forms.TextBox $L_OldFloor = New-Object System.Windows.Forms.Label $C_OldFloor = New-Object System.Windows.Forms.ComboBox $L_NewFloor = New-Object System.Windows.Forms.Label $C_NewFloor = New-Object System.Windows.Forms.ComboBox $B_Remove = New-Object System.Windows.Forms.Button ## ## L_Menu ## $L_Menu.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 11.607, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Menu.Location = New-Object System.Drawing.Point(23, 4); $L_Menu.Name = "L_Menu"; $L_Menu.Size = New-Object System.Drawing.Size(319, 23); $L_Menu.TabIndex = 1; $L_Menu.Text = 'Заполнение всех полей обязательно'; ## ## L_Login ## $L_Login.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_Login.Location = New-Object System.Drawing.Point(12, 30); $L_Login.Name = "L_Login"; $L_Login.Size = New-Object System.Drawing.Size(58, 27); $L_Login.TabIndex = 1; $L_Login.Text = "Логин:"; ## ## T_Login ## $T_Login.Location = New-Object System.Drawing.Point(117, 30); $T_Login.Name = "T_LoginOld"; $T_Login.Size = New-Object System.Drawing.Size(214, 20); $T_Login.TabIndex = 2; ## ## L_OldFloor ## $L_OldFloor.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_OldFloor.Location = New-Object System.Drawing.Point(12, 70); $L_OldFloor.Name = "L_OldFloor"; $L_OldFloor.Size = New-Object System.Drawing.Size(105, 27); $L_OldFloor.TabIndex = 3; $L_OldFloor.Text = "Старый этаж:"; ## ## C_OldFloor ## $C_OldFloor.FormattingEnabled = $true; foreach ($Floor in $Ffloor) {$C_OldFloor.Items.AddRange(($Floor))} $C_OldFloor.Location = New-Object System.Drawing.Point(117, 70); $C_OldFloor.Name = "C_OldFloor"; $C_OldFloor.Size = New-Object System.Drawing.Size(214, 21); $C_OldFloor.TabIndex = 4; ## ## L_NewFloor ## $L_NewFloor.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.1887, [System.Drawing.FontStyle]::Italic, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $L_NewFloor.Location = New-Object System.Drawing.Point(12, 110); $L_NewFloor.Name = "L_NewFloor"; $L_NewFloor.Size = New-Object System.Drawing.Size(105, 27); $L_NewFloor.TabIndex = 5; $L_NewFloor.Text = "Новый этаж:"; ## ## C_NewFloor ## $C_NewFloor.FormattingEnabled = $true; foreach ($Floor in $Ffloor) {$C_NewFloor.Items.AddRange(($Floor))} $C_NewFloor.Location = New-Object System.Drawing.Point(117, 110); $C_NewFloor.Name = "C_NewFloor"; $C_NewFloor.Size = New-Object System.Drawing.Size(214, 21); $C_NewFloor.TabIndex = 6; ## ## B_Remove ## $B_Remove.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 10.1887, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.byte](204))) $B_Remove.Location = New-Object System.Drawing.Point(117, 150); $B_Remove.Name = "B_Remove"; $B_Remove.Size = New-Object System.Drawing.Size(134, 40); $B_Remove.TabIndex = 7; $B_Remove.Text = "Переезд"; $B_Remove.UseVisualStyleBackColor = $true; ## ## MoveFloorForm ## $MoveFloorForm = New-Object System.Windows.Forms.Form $MoveFloorForm.ClientSize = new-object System.Drawing.Size(354, 202) $MoveFloorForm.AutoSizeMode = [System.Windows.Forms.AutoSizeMode]::GrowAndShrink $MoveFloorForm.AutoScaleDimensions = new-object System.Drawing.SizeF(354, 202) $MoveFloorForm.MaximizeBox = $false; $MoveFloorForm.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen; $MoveFloorForm.Name = "MoveFloorForm" $MoveFloorForm.Text = "Процесс переезда сотрудника на другой этаж" $MoveFloorForm.Controls.Add($C_NewFloor); $MoveFloorForm.Controls.Add($C_OldFloor); $MoveFloorForm.Controls.Add($L_NewFloor); $MoveFloorForm.Controls.Add($L_OldFloor); $MoveFloorForm.Controls.Add($B_Remove); $MoveFloorForm.Controls.Add($L_Menu); $MoveFloorForm.Controls.Add($L_Login); $MoveFloorForm.Controls.Add($T_Login); $B_Remove.Add_Click({[System.Windows.Forms.MessageBox]::Show("Сотрудник: " + $T_Login.Text + " переехал с " + $C_OldFloor.SelectedItem + " на " + $C_NewFloor.SelectedItem )}) $MoveFloorForm.ShowDialog() } # А вот в этой функции мы полностью создаем пользователя. Здесь придется подумать самим, все лишнее стер, оставил лишь комманды. Function Proces_NewUser { $displayname = !!!! $principalName = !!!! $logonscript = !!!! $OU = !!!! $email = !!!! # Добавляем в AD New-ADUser !!!! # Добавляем в Lync Enable-CSUser !!!! # Добавляем в Exchange New-mailbox !!!! ## сообщение о том что все тип топ. [System.Windows.Forms.MessageBox]::Show("Сотрудник создан в домене !!!") } # А вот в этой функции мы полностью переименовываем пользователя. Здесь придется подумать самим, все лишнее стер, оставил лишь комманды. Function Proces_Rename { $FirstName = !!!! $displayname = !!!! $principalName = !!!! Get-AdUser -Identity !!!! | Set-ADUser -DisplayName !!!! -Surname !!!! -SamAccountName !!!! -userprincipalName !!!! -OtherName !!!! $User = Get-AdUser !!!!! $temp = "LDAP://" + $User.DistinguishedName $user = new-object system.directoryservices.directoryEntry($temp) $UserNEWCN = "CN=" + $T_LoginNew.text $user.PSBase.Rename($UserNEWCN) [System.Windows.Forms.MessageBox]::Show("Сотрудник перименован.") } Function Proces_Delete { $OU = !!!! # Исключаем из всех групп $User = Get-AdUser !!!! $temp = "LDAP://" + $User.DistinguishedName $userCN = [ADSI]$temp foreach ($group in $usercn.memberof) { Remove-ADGroupMember -Identity $group -Members !!!! -Confirm:$false } # Disable the account $userCN.psbase.invokeset("AccountDisabled", "True") $userCN.setinfo() [System.Windows.Forms.MessageBox]::Show("Учетная запись сотрудника отключена.") } # Остальные функции вычистил. # И вот тут начало программы :) "START" #Proces_NewUser Main # ну вот и все. На самом деле здесь самое важное – ИДЕЯ! Использования форм в Powershell. Если вы ранее не изучали ранее этот продукт – вам может быть сложно. # Если у вас вдруг возник вопрос, черкните мне: Дамиру Мухутдинову Muhutdinov_DM@directum.ru. Думаю, что помогу, как будет свободная минутка.