Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Помогите создать фильтр c выводом в Grid

Ответить
Настройки темы
PowerShell - Помогите создать фильтр c выводом в Grid

Новый участник


Сообщения: 32
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Помогите создать фильтр в Grid , и вообще можно ли это реализовать.

Собрал из кусков всего чего нашел в интернете + допилил сам, функцию подключения к фермам 2012 R2 в Shadow + создал для этого GUI
Суть проста.
Подключится к BD , где находятся базы RDS , взять от туда таблицу с UserName, PoolName, ServerName, SessionId
В базах создал Viewer
Скрытый текст
Код: Выделить весь код
CREATE VIEW [dbo].[Shadowing]
AS
SELECT Session.UserName, Pool.DisplayName AS PoolName, Target.Name AS ServerName, Session.SessionId
FROM rds.Session AS Session
INNER JOIN rds.Target AS Target ON Target.Id = Session.TargetId
INNER JOIN rds.Pool AS Pool ON Target.PoolId = Pool.Id
WHERE (Session.State = 0)
GO


далее через GRID , создал форму и подключение в shadow


Скрытый текст
Код: Выделить весь код
$CBSQLServer = "aqua"
$CBDB = "fdrdsdb"
$CBDB2 = "CRMRDSDB"
$CBDB3 = "RDSDB"

$CBDBConnection = New-Object -TypeName System.Data.SqlClient.SqlConnection -ArgumentList "Server=$CBSQLServer;Database=$CBDB;Integrated Security=SSPI"
$CBDBConnection.Open()
$SQLCommand = $CBDBConnection.CreateCommand()
$SQLCommand.CommandText = ("SELECT * FROM Shadowing")
$SQLReader = $SQLCommand.ExecuteReader()
$ShadowingView = New-Object System.Data.DataTable
$ShadowingView.Load($SQLReader)
$SQLReader.Close()
$CBDBConnection1 = New-Object -TypeName System.Data.SqlClient.SqlConnection -ArgumentList "Server=$CBSQLServer;Database=$CBDB2;Integrated Security=SSPI"
$CBDBConnection1.Open()
$SQLCommand1 = $CBDBConnection1.CreateCommand()
$SQLCommand1.CommandText = ("SELECT * FROM Shadowing")
$SQLReader1 = $SQLCommand1.ExecuteReader()
$ShadowingView1 = New-Object System.Data.DataTable
$ShadowingView1.Load($SQLReader1)
$SQLReader1.Close()
$CBDBConnection2 = New-Object -TypeName System.Data.SqlClient.SqlConnection -ArgumentList "Server=$CBSQLServer;Database=$CBDB3;Integrated Security=SSPI"
$CBDBConnection2.Open()
$SQLCommand2 = $CBDBConnection2.CreateCommand()
$SQLCommand2.CommandText = ("SELECT * FROM Shadowing")
$SQLReader2 = $SQLCommand2.ExecuteReader()
$ShadowingView2 = New-Object System.Data.DataTable
$ShadowingView2.Load($SQLReader2)
$SQLReader2.Close()

function Get-ProcessInfo
{
	$array = New-Object System.Collections.ArrayList
	$Script:procInfo = $ShadowingView1 + $ShadowingView + $ShadowingView2 | Select UserName, PoolName, ServerName, SessionId| sort -Property UserName
	$array.AddRange($procInfo)
	$dataGrid1.DataSource = $array
	$form1.refresh()
}


function GenerateForm
{

	[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
	[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null

	

	$form1 = New-Object System.Windows.Forms.Form
	$label1 = New-Object System.Windows.Forms.Label
	$button3 = New-Object System.Windows.Forms.Button
	$button2 = New-Object System.Windows.Forms.Button
	$button4 = New-Object System.Windows.Forms.Button
	$button1 = New-Object System.Windows.Forms.Button
	$dataGrid1 = New-Object System.Windows.Forms.DataGrid
	$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
	
 
	$button3_OnClick =
	{
		$Form1.Close()
	}
	
	$button1_OnClick =
	{
		Get-ProcessInfo
	}
	
	
	$button2_OnClick =
	{
		$selectedRow = $dataGrid1.CurrentRowIndex
		if (($procid = $Script:procInfo[$selectedRow]))
		{
mstsc /v:($procid.ServerName) /shadow:($procid.SessionId) /control /NoConsentPrompt
		}
	}
	 
	
	$button4_OnClick =
	{
		$selectedRow = $dataGrid1.CurrentRowIndex
		if (($procid = $Script:procInfo[$selectedRow]))
		{
			mstsc /v:($procid.ServerName) /shadow:($procid.SessionId) /NoConsentPrompt
		}
	}
	
	$OnLoadForm_UpdateGrid =
	{
		Get-ProcessInfo
	}
	
	
	
	$form1.Text = "Подключатель"
	$form1.Name = "form1"
	$form1.DataBindings.DefaultDataSourceUpdateMode = 0
	$System_Drawing_Size = New-Object System.Drawing.Size
	$System_Drawing_Size.Width = 517
	$System_Drawing_Size.Height = 414
	$form1.ClientSize = $System_Drawing_Size
	
	$label1.TabIndex = 4
	$System_Drawing_Size = New-Object System.Drawing.Size
	$System_Drawing_Size.Width = 155
	$System_Drawing_Size.Height = 23
	$label1.Size = $System_Drawing_Size
	$label1.Text = "Подключатель"
	$label1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.75, 2, 3, 0)
	$label1.ForeColor = [System.Drawing.Color]::FromArgb(255, 0, 102, 204)
	
	$System_Drawing_Point = New-Object System.Drawing.Point
	$System_Drawing_Point.X = 13
	$System_Drawing_Point.Y = 13
	$label1.Location = $System_Drawing_Point
	$label1.DataBindings.DefaultDataSourceUpdateMode = 0
	$label1.Name = "label1"
	
	$form1.Controls.Add($label1)
	
	$button3.TabIndex = 3
	$button3.Name = "button3"
	$System_Drawing_Size = New-Object System.Drawing.Size
	$System_Drawing_Size.Width = 75
	$System_Drawing_Size.Height = 23
	$button3.Size = $System_Drawing_Size
	$button3.UseVisualStyleBackColor = $True
	
	$button3.Text = "Закрыть"
	
	$System_Drawing_Point = New-Object System.Drawing.Point
	$System_Drawing_Point.X = 380
	$System_Drawing_Point.Y = 379
	$button3.Location = $System_Drawing_Point
	$button3.DataBindings.DefaultDataSourceUpdateMode = 0
	$button3.add_Click($button3_OnClick)
	
	$form1.Controls.Add($button3)
	
	$button2.TabIndex = 2
	$button2.Name = "button2"
	$System_Drawing_Size = New-Object System.Drawing.Size
	$System_Drawing_Size.Width = 75
	$System_Drawing_Size.Height = 23
	$button2.Size = $System_Drawing_Size
	$button2.UseVisualStyleBackColor = $True
	
	$button2.Text = "Контроль"
	
	$System_Drawing_Point = New-Object System.Drawing.Point
	$System_Drawing_Point.X = 230
	$System_Drawing_Point.Y = 379
	$button2.Location = $System_Drawing_Point
	$button2.DataBindings.DefaultDataSourceUpdateMode = 0
	$button2.add_Click($button2_OnClick)
	
	$form1.Controls.Add($button2)
	
	$button4.Text = "Наблюдение"
	
	$System_Drawing_Point = New-Object System.Drawing.Point
	$System_Drawing_Point.X = 150
	$System_Drawing_Point.Y = 379
	$button4.Location = $System_Drawing_Point
	$button4.DataBindings.DefaultDataSourceUpdateMode = 0
	$button4.add_Click($button4_OnClick)
	
	$form1.Controls.Add($button4)
	
		$button1.TabIndex = 1
	$button1.Name = "button1"
	$System_Drawing_Size = New-Object System.Drawing.Size
	$System_Drawing_Size.Width = 75
	$System_Drawing_Size.Height = 23
	$button1.Size = $System_Drawing_Size
	$button1.UseVisualStyleBackColor = $True
	
	$button1.Text = "Обновить"
	
	$System_Drawing_Point = New-Object System.Drawing.Point
	$System_Drawing_Point.X = 13
	$System_Drawing_Point.Y = 379
	$button1.Location = $System_Drawing_Point
	$button1.DataBindings.DefaultDataSourceUpdateMode = 0
	$button1.add_Click($button1_OnClick)
	
	$form1.Controls.Add($button1)
	
	$System_Drawing_Size = New-Object System.Drawing.Size
	$System_Drawing_Size.Width = 492
	$System_Drawing_Size.Height = 308
	$dataGrid1.Size = $System_Drawing_Size
	$dataGrid1.DataBindings.DefaultDataSourceUpdateMode = 0
	$dataGrid1.HeaderForeColor = [System.Drawing.Color]::FromArgb(255, 0, 0, 0)
	$dataGrid1.Name = "dataGrid1"
	$dataGrid1.DataMember = ""
	$dataGrid1.TabIndex = 0
	$System_Drawing_Point = New-Object System.Drawing.Point
	$System_Drawing_Point.X = 13
	$System_Drawing_Point.Y = 48
	$dataGrid1.Location = $System_Drawing_Point
	
	$form1.Controls.Add($dataGrid1)
	
	
	$InitialFormWindowState = $form1.WindowState
	
	
	$form1.add_Load($OnLoadForm_UpdateGrid)
	
	
	$form1.ShowDialog() | Out-Null
	
} 

 
GenerateForm



По итогу получилась такая формачка
Скрытый текст


Если обратить внимание столбец "UserName" достаточно большой, так вот вопрос... есть ли режим фильтра в GRID который бы можно было в крутить сюда и по буквам уже чтобы шла фильтрация?

Отправлено: 12:34, 03-12-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Отдельным полем, не? Сама фильтрация, например: Свойство BindingSource.Filter (System.Windows.Forms).

Отправлено: 12:48, 03-12-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 32
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Да, все равно как , главное , чтобы мне было легко это сделать, и работало ...

Цитата Iska:
BindingSource.Filter (System.Windows.Forms). »
Есть примеры на PS ?

Отправлено: 13:16, 03-12-2015 | #3


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Хм... как насчет Out-GridView?

Отправлено: 18:06, 03-12-2015 | #4


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата butunin@vk:
Есть примеры на PS ? »
Я даже не пробовал искать. Можете попробовать поискать сами или подождать коллег.

Цитата butunin@vk:
чтобы мне было легко это сделать, и работало ... »
См. выше:
Цитата greg zakharov:
как насчет Out-GridView? »

Отправлено: 19:25, 03-12-2015 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Помогите создать фильтр c выводом в Grid

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Помогите с выводом информации в Windows sidebar includer-test Программирование и базы данных 10 29-05-2013 22:21
Прочее - Grid порталы: назначение и возможности, организация архитектура и управление, примеры Dark_Semi Сетевые технологии 0 09-10-2012 15:51
Правительство Великобритании хочет создать фильтр от порносайтов OSZone News Новости информационных технологий 10 10-05-2012 19:11
System/Проект - Нужна помощь в создание Grid (кластера) системы для кодирования видео. olega78 Сетевые технологии 0 19-02-2010 21:00
Race Driver: GRID Anatoliy2004 Игры 36 18-03-2009 23:48




 
Переход