Update README.md
This commit is contained in:
		
							parent
							
								
									7e2b28567a
								
							
						
					
					
						commit
						1a970cf56b
					
				
					 1 changed files with 180 additions and 22 deletions
				
			
		
							
								
								
									
										202
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										202
									
								
								README.md
									
										
									
									
									
								
							|  | @ -10,6 +10,7 @@ | ||||||
| - [Regedit](#Regedit) | - [Regedit](#Regedit) | ||||||
| - [Scheduled](#Scheduled) | - [Scheduled](#Scheduled) | ||||||
| - [Network](#Network) | - [Network](#Network) | ||||||
|  | - [Socket](#Socket) | ||||||
| - [SMB](#SMB) | - [SMB](#SMB) | ||||||
| - [WinRM](#WinRM) | - [WinRM](#WinRM) | ||||||
| - [WMI](#WMI) | - [WMI](#WMI) | ||||||
|  | @ -27,7 +28,7 @@ | ||||||
| - [IE](#IE) | - [IE](#IE) | ||||||
| - [Selenium](#Selenium) | - [Selenium](#Selenium) | ||||||
| - [COM Object](#COM-Object) | - [COM Object](#COM-Object) | ||||||
| - [Class .NET Win API](#Class-.NET-Win-API) | - [Class NET](#Class-NET) | ||||||
| - [Excel](#Excel) | - [Excel](#Excel) | ||||||
| - [XML](#XML) | - [XML](#XML) | ||||||
| - [DSC](#DSC) | - [DSC](#DSC) | ||||||
|  | @ -36,12 +37,12 @@ | ||||||
| - [MySQL](#MySQL) | - [MySQL](#MySQL) | ||||||
| 
 | 
 | ||||||
| ### Help | ### Help | ||||||
|  | `Get-Verb` действия, утвержденные для использования в командах \ | ||||||
| `Get-Command *Service*` поиск команды по имени \ | `Get-Command *Service*` поиск команды по имени \ | ||||||
| `Get-Help Get-Service` синтаксис \ | `Get-Help Get-Service` синтаксис \ | ||||||
| `Get-Help Get-Service -Parameter *` описание всех параметров \ | `Get-Help Get-Service -Parameter *` описание всех параметров \ | ||||||
| `Get-Service | Get-Member` отобразить Method (действия: Start, Stop), Property (объекты вывода: Status, DisplayName), Event (события объектов: Click) и Alias \ | `Get-Service | Get-Member` отобразить Method (действия: Start, Stop), Property (объекты вывода: Status, DisplayName), Event (события объектов: Click) и Alias \ | ||||||
| `Get-Alias ps` \ | `Get-Alias ps` \ | ||||||
| `Get-Verb` действия, утвержденные для использования в командах \ |  | ||||||
| `Set-ExecutionPolicy Unrestricted` \ | `Set-ExecutionPolicy Unrestricted` \ | ||||||
| `Get-ExecutionPolicy` \ | `Get-ExecutionPolicy` \ | ||||||
| `$PSVersionTable` \ | `$PSVersionTable` \ | ||||||
|  | @ -594,8 +595,80 @@ $EventData | ft | ||||||
| `Get-NetRoute` | `Get-NetRoute` | ||||||
| 
 | 
 | ||||||
| ### netstat | ### netstat | ||||||
| `Get-NetTCPConnection -State Established,Listen | ? LocalAddress -match "192.168"` | `Get-NetTCPConnection -State Established,Listen | ? LocalPort -Match 3389` \ | ||||||
|  | `Get-NetTCPConnection -State Established,Listen | ? RemotePort -Match 22` \ | ||||||
|  | `Get-NetUDPEndpoint | ? LocalPort -Match 514` | ||||||
| 
 | 
 | ||||||
|  | # Socket | ||||||
|  | 
 | ||||||
|  | ### UDP Socket | ||||||
|  | ``` | ||||||
|  | function Start-UDPServer { | ||||||
|  | param( | ||||||
|  | $Port = 5201 | ||||||
|  | ) | ||||||
|  | $RemoteComputer = New-Object System.Net.IPEndPoint([System.Net.IPAddress]::Any, 0) | ||||||
|  | Write-Host "Server is waiting for connections - $($UdpObject.Client.LocalEndPoint)" | ||||||
|  | Write-Host "Stop with CRTL + C" | ||||||
|  | do { | ||||||
|  | $UdpObject = New-Object System.Net.Sockets.UdpClient($Port) | ||||||
|  | $ReceiveBytes = $UdpObject.Receive([ref]$RemoteComputer) | ||||||
|  | $UdpObject.Close() | ||||||
|  | $ASCIIEncoding = New-Object System.Text.ASCIIEncoding # Convert received UDP datagram from Bytes to String | ||||||
|  | [string]$ReturnString = $ASCIIEncoding.GetString($ReceiveBytes) | ||||||
|  | [PSCustomObject]@{ | ||||||
|  | LocalDateTime = $(Get-Date -UFormat "%Y-%m-%d %T") | ||||||
|  | SourceIP      = $RemoteComputer.address.ToString() | ||||||
|  | SourcePort    = $RemoteComputer.Port.ToString() | ||||||
|  | Payload       = $ReturnString | ||||||
|  | } | ||||||
|  | } while (1) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | Start-UDPServer -Port 5201 | ||||||
|  | ``` | ||||||
|  | ### Test-NetUDPConnection | ||||||
|  | ``` | ||||||
|  | function Test-NetUDPConnection { | ||||||
|  | param( | ||||||
|  | [string]$ComputerName, | ||||||
|  | [int32]$Port = 5201, | ||||||
|  | [int32]$SourcePort = 5211 | ||||||
|  | ) | ||||||
|  | begin { | ||||||
|  | $UdpObject = New-Object system.Net.Sockets.Udpclient($SourcePort) | ||||||
|  | $UdpObject.Connect($ComputerName, $Port) | ||||||
|  | } | ||||||
|  | process { | ||||||
|  | $ASCIIEncoding = New-Object System.Text.ASCIIEncoding | ||||||
|  | $Bytes = $ASCIIEncoding.GetBytes("$(Get-Date -UFormat "%Y-%m-%d %T")") | ||||||
|  | [void]$UdpObject.Send($Bytes, $Bytes.length) | ||||||
|  | } | ||||||
|  | end { | ||||||
|  | $UdpObject.Close() | ||||||
|  | } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | Test-NetUDPConnection -ComputerName 127.0.0.1 -Port 5201 | ||||||
|  | ``` | ||||||
|  | ### TCP Socket | ||||||
|  | ``` | ||||||
|  | function Start-TCPServer { | ||||||
|  | param( | ||||||
|  | $Port = 5201 | ||||||
|  | ) | ||||||
|  | do { | ||||||
|  | $TcpObject = New-Object System.Net.Sockets.TcpListener($port) | ||||||
|  | $ReceiveBytes = $TcpObject.Start() | ||||||
|  | $ReceiveBytes = $TcpObject.AcceptTcpClient() | ||||||
|  | $TcpObject.Stop() | ||||||
|  | $ReceiveBytes.Client.RemoteEndPoint | ||||||
|  | }  while (1) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | Start-TCPServer -Port 5201 | ||||||
|  | Test-NetConnection -ComputerName 127.0.0.1 -Port 5201 | ||||||
|  | ``` | ||||||
| ### LocalGroup | ### LocalGroup | ||||||
| `Get-LocalUser` список пользователей \ | `Get-LocalUser` список пользователей \ | ||||||
| `Get-LocalGroup` список групп \ | `Get-LocalGroup` список групп \ | ||||||
|  | @ -1921,7 +1994,7 @@ Output: | ||||||
| `$Outlook | Get-Member` \ | `$Outlook | Get-Member` \ | ||||||
| `$Outlook.Version` | `$Outlook.Version` | ||||||
| 
 | 
 | ||||||
| # Class .NET Win API | # Class NET | ||||||
| 
 | 
 | ||||||
| `[System.Diagnostics.EventLog] | select Assembly,Module` \ | `[System.Diagnostics.EventLog] | select Assembly,Module` \ | ||||||
| `$EventLog = [System.Diagnostics.EventLog]::new("Application")` \ | `$EventLog = [System.Diagnostics.EventLog]::new("Application")` \ | ||||||
|  | @ -1935,6 +2008,16 @@ Output: | ||||||
| `Add-Type -AssemblyName System.Web` \ | `Add-Type -AssemblyName System.Web` \ | ||||||
| `[System.Web.Security.Membership]::GeneratePassword(10,2)` | `[System.Web.Security.Membership]::GeneratePassword(10,2)` | ||||||
| 
 | 
 | ||||||
|  | ### SoundPlayer | ||||||
|  | ``` | ||||||
|  | $CriticalSound = New-Object System.Media.SoundPlayer | ||||||
|  | $CriticalSound.SoundLocation = "C:\WINDOWS\Media\Windows Critical Stop.wav" | ||||||
|  | $CriticalSound.Play() | ||||||
|  | 
 | ||||||
|  | $GoodSound = New-Object System.Media.SoundPlayer | ||||||
|  | $GoodSound.SoundLocation = "C:\WINDOWS\Media\tada.wav" | ||||||
|  | $GoodSound.Play() | ||||||
|  | ``` | ||||||
| ### Static Class | ### Static Class | ||||||
| `[System.Environment] | Get-Member -Static` \ | `[System.Environment] | Get-Member -Static` \ | ||||||
| `[System.Environment]::OSVersion` \ | `[System.Environment]::OSVersion` \ | ||||||
|  | @ -1942,6 +2025,9 @@ Output: | ||||||
| `[System.Environment]::MachineName` \ | `[System.Environment]::MachineName` \ | ||||||
| `[System.Environment]::UserName` | `[System.Environment]::UserName` | ||||||
| 
 | 
 | ||||||
|  | `[System.Diagnostics.Process] | Get-Member -Static` \ | ||||||
|  | `[System.Diagnostics.Process]::Start('notepad.exe')` | ||||||
|  | 
 | ||||||
| ### Register-ObjectEvent | ### Register-ObjectEvent | ||||||
| ``` | ``` | ||||||
| $Timer = New-Object System.Timers.Timer | $Timer = New-Object System.Timers.Timer | ||||||
|  | @ -2502,23 +2588,48 @@ Invoke-SqliteQuery -Query "SELECT * FROM Service" -DataSource "$path;Password=pa | ||||||
| `quit;` | `quit;` | ||||||
| 
 | 
 | ||||||
| `mysql -u root -p -e 'SHOW TABLES FROM db_aduser;'` отобразить список таблиц без подключения к консоли MySQL | `mysql -u root -p -e 'SHOW TABLES FROM db_aduser;'` отобразить список таблиц без подключения к консоли MySQL | ||||||
|  | 
 | ||||||
|  | `CREATE` создать БД, пользователя, таблицу \ | ||||||
|  | `ALTER`  управление столбцами таблице \ | ||||||
|  | `DROP` удалить БД, пользователя, таблицу \ | ||||||
|  | `USE` выбрать БД \ | ||||||
|  | `SHOW` вывесли список БД, прав доступа пользователя (GRANTS), названия столбцов и их свойства \ | ||||||
|  | `GRANT` дать доступ пользователю к БД \ | ||||||
|  | `REVOKE`  удалить доступ пользователя к БД \ | ||||||
|  | `UPDATE` изменить права доступа, значения с таблице \ | ||||||
|  | `FLUSH` обновить права доступа \ | ||||||
|  | `SELECT` отобразить выбранную БД, вывести список пользователей, выборка данных в таблице \ | ||||||
|  | `INSERT` внести данные \ | ||||||
|  | `DELETE` удалить данные в (FROM) таблице | ||||||
|  | 
 | ||||||
|  | ### DATA TYPE | ||||||
|  | `VARCHAR(N)` строка переменной длины, в формате ASCII, где один символ занимает 1 байт, числом N указывается максимальная возможная длина строки \ | ||||||
|  | `NVARCHAR(N)` строка переменной длины, в формате Unicode, где один символ занимает 2 байта \ | ||||||
|  | `CHAR(N)/nchar(N)` строка фиксированной длины, которая всегда дополняется справа пробелами до длины N и в базе данных она занимает ровно N символов \ | ||||||
|  | `INT` целое число, от -2147483648 до 2147483647, занимает 4 байта \ | ||||||
|  | `FLOAT` число, в котором может присутствовать десятичная точка (запятая) \ | ||||||
|  | `BIT` флаг, Да - 1 или Нет - 0 \ | ||||||
|  | `DATE` формат даты, например 25.05.2023 \ | ||||||
|  | `TIME` 23:30:55.1234567 \ | ||||||
|  | `DATETIME` 25.05.2023 23:30:55.1234567 | ||||||
| ``` | ``` | ||||||
| ### DATABASE | ### DATABASE | ||||||
| SHOW databases; 																	# вывести список БД | SHOW databases; 																	# вывести список БД | ||||||
| CREATE DATABASE db_aduser;															# создать БД | CREATE DATABASE db_aduser;															# создать БД | ||||||
| CREATE DATABASE db_rep DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 	# создать БД с кодировкой UTF-8 | CREATE DATABASE db_rep DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 	# создать БД с кодировкой UTF-8 | ||||||
| DROP DATABASE db_rep; 																# удалить БД | DROP DATABASE db_rep; 																# удалить БД | ||||||
| USE db_aduser; 																		# выбрать БД | USE db_aduser; 																		# выбрать/переключиться на выбранную БД | ||||||
| SELECT database(); 																	# отобразить выбранную БД | SELECT database(); 																	# отобразить выбранную БД | ||||||
| 
 | 
 | ||||||
| ### USER | ### USER | ||||||
| SELECT USER,HOST FROM mysql.user; 			 							# вывести список УЗ | SELECT USER,HOST FROM mysql.user; 			 							# вывести список УЗ | ||||||
| CREATE USER posh@localhost IDENTIFIED BY '1qaz!QAZ'; 					# создать УЗ, которая будет подключаться с локального сервера | CREATE USER posh@localhost IDENTIFIED BY '1qaz!QAZ'; 					# создать УЗ, которая будет подключаться с локального сервера | ||||||
| CREATE USER posh@'%' IDENTIFIED BY '1qaz!QAZ@'; 						# УЗ для доступа с любого сервера | CREATE USER posh@localhost IDENTIFIED BY '1qaz!QAZ'; 					# создать УЗ, которая будет подключаться с указанного сервера | ||||||
|  | CREATE USER posh@'192.168.1.247' IDENTIFIED BY '1qaz!QAZ'; 				# УЗ для доступа с любого сервера | ||||||
| DROP USER posh@localhost; 												# удалить пользователя | DROP USER posh@localhost; 												# удалить пользователя | ||||||
| SHOW GRANTS FOR posh@'%'; 												# отобразить права доступа пользователя | SHOW GRANTS FOR posh@'%'; 												# отобразить права доступа пользователя | ||||||
| GRANT ALL PRIVILEGES ON db_aduser.* TO posh@'%'; 						# полный доступ для posh к БД db_aduser | GRANT ALL PRIVILEGES ON db_aduser.* TO posh@'192.168.1.247';			# полный доступ для posh к БД db_aduser | ||||||
| GRANT ALL PRIVILEGES ON *.* TO posh@'%'; 								# доступ к всем БД | GRANT ALL PRIVILEGES ON *.* TO posh@'%'; 								# доступ к всем БД c любого клиентского хоста | ||||||
| GRANT SELECT,DELETE ON mysql.* TO posh@'%'; 							# права SELECT и DELETE на встроенную БД mysql | GRANT SELECT,DELETE ON mysql.* TO posh@'%'; 							# права SELECT и DELETE на встроенную БД mysql | ||||||
| REVOKE DELETE ON mysql.* FROM posh@'%'; 								# удалить доступ DELETE | REVOKE DELETE ON mysql.* FROM posh@'%'; 								# удалить доступ DELETE | ||||||
| UPDATE mysql.user SET super_priv='Y' WHERE USER='posh' AND host='%'; 	# изменить привелегии для пользователя | UPDATE mysql.user SET super_priv='Y' WHERE USER='posh' AND host='%'; 	# изменить привелегии для пользователя | ||||||
|  | @ -2531,19 +2642,6 @@ SHOW TABLES LIKE '%user'; 																								# поиск таблицы п | ||||||
| CREATE TABLE table_aduser (id INT NOT NULL AUTO_INCREMENT, Name VARCHAR(100), email VARCHAR(100), PRIMARY KEY (ID)); 	# оздать таблицу | CREATE TABLE table_aduser (id INT NOT NULL AUTO_INCREMENT, Name VARCHAR(100), email VARCHAR(100), PRIMARY KEY (ID)); 	# оздать таблицу | ||||||
| DROP TABLE table_aduser; 																								# удалить таблицу | DROP TABLE table_aduser; 																								# удалить таблицу | ||||||
| 
 | 
 | ||||||
| CREATE TABLE fs_audit (id INT NOT NULL AUTO_INCREMENT, server VARCHAR(100), dt_time  DATETIME, user_name VARCHAR(100), file_name VARCHAR(255), PRIMARY KEY (ID)); |  | ||||||
| 
 |  | ||||||
| ### DATA TYPE |  | ||||||
| VARCHAR(N)			# строка переменной длины, в формате ASCII, где один символ занимает 1 байт, числом N указывается максимальная возможная длина строки |  | ||||||
| NVARCHAR(N) 		# строка переменной длины, в формате Unicode, где один символ занимает 2 байта |  | ||||||
| CHAR(N)/nchar(N) 	# строка фиксированной длины, которая всегда дополняется справа пробелами до длины N и в базе данных она занимает ровно N символов |  | ||||||
| INT 				# целое число, от -2147483648 до 2147483647, занимает 4 байта |  | ||||||
| FLOAT 				# число, в котором может присутствовать десятичная точка (запятая) |  | ||||||
| BIT 				# флаг, Да - 1 или Нет - 0 |  | ||||||
| DATE 				# формат даты, например 25.05.2023 |  | ||||||
| TIME 				# 23:30:55.1234567 |  | ||||||
| DATETIME 			# 25.05.2023 23:30:55.1234567 |  | ||||||
| 
 |  | ||||||
| ### COLUMN | ### COLUMN | ||||||
| SHOW COLUMNS FROM table_aduser; 															# отобразить название стобцов и их свойства | SHOW COLUMNS FROM table_aduser; 															# отобразить название стобцов и их свойства | ||||||
| ALTER TABLE table_aduser DROP COLUMN id; 													# удалить столбец id | ALTER TABLE table_aduser DROP COLUMN id; 													# удалить столбец id | ||||||
|  | @ -2583,9 +2681,17 @@ DELETE FROM table_aduser; 									# удалить ВСЕ значения | ||||||
| ### UPDATE | ### UPDATE | ||||||
| SELECT * FROM table_aduser WHERE Name = 'Jack';				# найти и проверить значение перед изменением | SELECT * FROM table_aduser WHERE Name = 'Jack';				# найти и проверить значение перед изменением | ||||||
| UPDATE table_aduser SET Name = 'Alex' WHERE Name = 'Jack';  # изменить значение 'Jack' на 'Alex' | UPDATE table_aduser SET Name = 'Alex' WHERE Name = 'Jack';  # изменить значение 'Jack' на 'Alex' | ||||||
|  | UPDATE db_aduser.table_aduser SET Name='BCA' WHERE id=1;	# изменить значение в строке с ID 1 | ||||||
| 
 | 
 | ||||||
|  | ### CHECK | ||||||
|  | CHECK TABLE db_aduser.table_aduser; # проверить | ||||||
|  | ANALYZE TABLE db_aduser.table_aduser; # анализировать | ||||||
|  | OPTIMIZE TABLE db_aduser.table_aduser; # оптимизировать | ||||||
|  | REPAIR TABLE db_aduser.table_aduser; # восстановить | ||||||
|  | TRUNCATE TABLE db_aduser.table_aduser; # очистить | ||||||
|  | ``` | ||||||
| ### DUMP | ### DUMP | ||||||
| 
 | ``` | ||||||
| mysqldump -u root -p --databases db_aduser > /bak/db_aduser.sql | mysqldump -u root -p --databases db_aduser > /bak/db_aduser.sql | ||||||
| mysql -u root -p db_aduser < /bak/db_aduser.sql | mysql -u root -p db_aduser < /bak/db_aduser.sql | ||||||
| 
 | 
 | ||||||
|  | @ -2594,3 +2700,55 @@ crontab -e | ||||||
| 00 23 * * * /usr/bin/mysqldump -uroot -p1qaz!QAZ db_zabbix > `date +/dump/smb/zabbix-\%d-\%m-\%Y-\%H:\%M.sql` | 00 23 * * * /usr/bin/mysqldump -uroot -p1qaz!QAZ db_zabbix > `date +/dump/smb/zabbix-\%d-\%m-\%Y-\%H:\%M.sql` | ||||||
| 0 0 * * * find /dump/zabbix -mtime +7 -exec rm {} \; | 0 0 * * * find /dump/zabbix -mtime +7 -exec rm {} \; | ||||||
| ``` | ``` | ||||||
|  | ### MySQL Connector NET | ||||||
|  | 
 | ||||||
|  | ### Add-ADUser | ||||||
|  | ``` | ||||||
|  | $ip = "192.168.1.253" | ||||||
|  | $user = "posh" | ||||||
|  | $pass = "1qaz!QAZ" | ||||||
|  | $db = "db_aduser" | ||||||
|  | Add-Type –Path "$home\Documents\MySQL-Connector-NET\8.0.31-4.8\MySql.Data.dll" | ||||||
|  | $Connection = [MySql.Data.MySqlClient.MySqlConnection]@{ | ||||||
|  | ConnectionString="server=$ip;uid=$user;pwd=$pass;database=$db" | ||||||
|  | } | ||||||
|  | $Connection.Open() | ||||||
|  | $Command = New-Object MySql.Data.MySqlClient.MySqlCommand | ||||||
|  | $Command.Connection = $Connection | ||||||
|  | $UserList = Get-ADUser -filter * -properties name,EmailAddress | ||||||
|  | foreach ($user in $UserList) { | ||||||
|  | $uname=$user.Name | ||||||
|  | $uemail=$user.EmailAddress | ||||||
|  | $Command.CommandText = "INSERT INTO table_aduser (Name,Email) VALUES ('$uname','$uemail')" | ||||||
|  | $Command.ExecuteNonQuery() | ||||||
|  | } | ||||||
|  | $Connection.Close() | ||||||
|  | ``` | ||||||
|  | ### Get-ADUser | ||||||
|  | ``` | ||||||
|  | $ip = "192.168.1.253" | ||||||
|  | $user = "posh" | ||||||
|  | $pass = "1qaz!QAZ" | ||||||
|  | $db = "db_aduser" | ||||||
|  | Add-Type –Path "$home\Documents\MySQL-Connector-NET\8.0.31-4.8\MySql.Data.dll" | ||||||
|  | $Connection = [MySql.Data.MySqlClient.MySqlConnection]@{ | ||||||
|  | ConnectionString = "server=$ip;uid=$user;pwd=$pass;database=$db" | ||||||
|  | } | ||||||
|  | $Connection.Open() | ||||||
|  | $Command = New-Object MySql.Data.MySqlClient.MySqlCommand | ||||||
|  | $Command.Connection = $Connection | ||||||
|  | $MYSQLDataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter | ||||||
|  | $MYSQLDataSet = New-Object System.Data.DataSet | ||||||
|  | $Command.CommandText = "SELECT * FROM table_aduser" | ||||||
|  | $MYSQLDataAdapter.SelectCommand = $Command | ||||||
|  | $NumberOfDataSets = $MYSQLDataAdapter.Fill($MYSQLDataSet, "data") | ||||||
|  | $Collections = New-Object System.Collections.Generic.List[System.Object] | ||||||
|  | foreach($DataSet in $MYSQLDataSet.tables[0]) { | ||||||
|  | $Collections.Add([PSCustomObject]@{ | ||||||
|  | Name = $DataSet.name; | ||||||
|  | Mail = $DataSet.email | ||||||
|  | }) | ||||||
|  | } | ||||||
|  | $Connection.Close() | ||||||
|  | $Collections | ||||||
|  | ``` | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue