Add files via upload
added: defender, dnscache, snmp
This commit is contained in:
parent
d81bb25fc6
commit
d3cabb1017
1 changed files with 123 additions and 8 deletions
131
posh.txt
131
posh.txt
|
|
@ -2,7 +2,7 @@ PowerShell Commands
|
||||||
|
|
||||||
- Object
|
- Object
|
||||||
- Regex
|
- Regex
|
||||||
- Items
|
- Files
|
||||||
- Credential
|
- Credential
|
||||||
- WinEvent
|
- WinEvent
|
||||||
- Firewall
|
- Firewall
|
||||||
|
|
@ -28,8 +28,8 @@ PowerShell Commands
|
||||||
- REST API
|
- REST API
|
||||||
- IE
|
- IE
|
||||||
- Selenium
|
- Selenium
|
||||||
- COM Object
|
- COM
|
||||||
- dotNET Object
|
- dotNET
|
||||||
- Console API
|
- Console API
|
||||||
- Socket
|
- Socket
|
||||||
- Excel
|
- Excel
|
||||||
|
|
@ -38,6 +38,7 @@ PowerShell Commands
|
||||||
- SQLite
|
- SQLite
|
||||||
- MySQL
|
- MySQL
|
||||||
- MSSQL
|
- MSSQL
|
||||||
|
- SNMP
|
||||||
- DSC
|
- DSC
|
||||||
- Ansible
|
- Ansible
|
||||||
|
|
||||||
|
|
@ -433,8 +434,15 @@ $Error.clear()
|
||||||
$LASTEXITCODE # результат выполнения последней команды (0 - успех)
|
$LASTEXITCODE # результат выполнения последней команды (0 - успех)
|
||||||
exit 1 # код завершения, который возвращается $LASTEXITCODE
|
exit 1 # код завершения, который возвращается $LASTEXITCODE
|
||||||
|
|
||||||
# Items
|
# Files
|
||||||
|
|
||||||
|
$file = [System.IO.File]::Create("$home\desktop\test.txt") # создать файл
|
||||||
|
$file.Close() # закрыть файл
|
||||||
|
[System.IO.File]::ReadAllLines("$home\desktop\test.txt") # прочитать файл
|
||||||
|
$file = New-Object System.IO.StreamReader("$home\desktop\test.txt")
|
||||||
|
$file.ReadToEnd()
|
||||||
|
|
||||||
|
Get-Content $home/desktop\test.txt -Wait # аналог tail
|
||||||
Test-Path $path # проверить доступность пути
|
Test-Path $path # проверить доступность пути
|
||||||
Get-ChildItem $path -Filter *.txt -Recurse # отобразить содержимое каталога (Alias: ls/gci/dir) и дочерних каталогов (-Recurse) и отфильтровать вывод
|
Get-ChildItem $path -Filter *.txt -Recurse # отобразить содержимое каталога (Alias: ls/gci/dir) и дочерних каталогов (-Recurse) и отфильтровать вывод
|
||||||
Get-Location # отобразить текущие месторасположение (Alias: pwd/gl)
|
Get-Location # отобразить текущие месторасположение (Alias: pwd/gl)
|
||||||
|
|
@ -783,6 +791,10 @@ Set-NetIPInterface -InterfaceIndex 14 -Dhcp Enabled # включить DHCP
|
||||||
Get-DNSClientServerAddress
|
Get-DNSClientServerAddress
|
||||||
Set-DNSClientServerAddress -InterfaceIndex 14 -ServerAddresses 8.8.8.8
|
Set-DNSClientServerAddress -InterfaceIndex 14 -ServerAddresses 8.8.8.8
|
||||||
|
|
||||||
|
### DNSCache
|
||||||
|
Get-DnsClientCache # отобразить кэшированные записи клиента DNS
|
||||||
|
Clear-DnsClientCache # очистить кэш
|
||||||
|
|
||||||
### Binding
|
### Binding
|
||||||
Get-NetAdapterBinding -Name Ethernet -IncludeHidden -AllBindings
|
Get-NetAdapterBinding -Name Ethernet -IncludeHidden -AllBindings
|
||||||
Get-NetAdapterBinding -Name "Беспроводная сеть" -DisplayName "IP версии 6 (TCP/IPv6)" | Set-NetAdapterBinding -Enabled $false # отключить IPv6 на адаптере
|
Get-NetAdapterBinding -Name "Беспроводная сеть" -DisplayName "IP версии 6 (TCP/IPv6)" | Set-NetAdapterBinding -Enabled $false # отключить IPv6 на адаптере
|
||||||
|
|
@ -1355,7 +1367,14 @@ Get-RDAvailableApp -ConnectionBroker $broker -CollectionName C03 # список
|
||||||
(Get-RDSessionCollectionConfiguration -ConnectionBroker $broker -CollectionName C03 | select *).CustomRdpProperty # use redirection server name:i:1
|
(Get-RDSessionCollectionConfiguration -ConnectionBroker $broker -CollectionName C03 | select *).CustomRdpProperty # use redirection server name:i:1
|
||||||
Get-RDConnectionBrokerHighAvailability
|
Get-RDConnectionBrokerHighAvailability
|
||||||
|
|
||||||
# DNS
|
# DNSServer
|
||||||
|
|
||||||
|
Get-Command -Module DnsServer
|
||||||
|
Show-DnsServerCache # отобразить весь кэш DNS-сервера
|
||||||
|
Show-DnsServerCache | where HostName -match ru
|
||||||
|
Clear-DnsServerCache
|
||||||
|
Get-DnsServerCache
|
||||||
|
Get-DnsServerDiagnostics
|
||||||
|
|
||||||
$zone = icm $srv {Get-DnsServerZone} | select ZoneName,ZoneType,DynamicUpdate,ReplicationScope,SecureSecondaries,
|
$zone = icm $srv {Get-DnsServerZone} | select ZoneName,ZoneType,DynamicUpdate,ReplicationScope,SecureSecondaries,
|
||||||
DirectoryPartitionName | Out-GridView -Title "DNS Server: $srv" –PassThru
|
DirectoryPartitionName | Out-GridView -Title "DNS Server: $srv" –PassThru
|
||||||
|
|
@ -1388,7 +1407,9 @@ $TextA = "$FQDN IN A $IP"
|
||||||
[Void]$DNSRR.CreateInstanceFromTextRepresentation($DNSServer,$DNSFZone,$TextA)
|
[Void]$DNSRR.CreateInstanceFromTextRepresentation($DNSServer,$DNSFZone,$TextA)
|
||||||
}
|
}
|
||||||
|
|
||||||
# DHCP
|
# DHCPServer
|
||||||
|
|
||||||
|
Get-Command -Module DhcpServer
|
||||||
|
|
||||||
$mac = icm $srv -ScriptBlock {Get-DhcpServerv4Scope | Get-DhcpServerv4Lease} | select AddressState,
|
$mac = icm $srv -ScriptBlock {Get-DhcpServerv4Scope | Get-DhcpServerv4Lease} | select AddressState,
|
||||||
HostName,IPAddress,ClientId,DnsRegistration,DnsRR,ScopeId,ServerIP | Out-GridView -Title "HDCP Server: $srv" –PassThru
|
HostName,IPAddress,ClientId,DnsRegistration,DnsRR,ScopeId,ServerIP | Out-GridView -Title "HDCP Server: $srv" –PassThru
|
||||||
|
|
@ -2167,7 +2188,7 @@ $Button_Auth.Click()
|
||||||
$Result = $ie.Document.documentElement.innerHTML
|
$Result = $ie.Document.documentElement.innerHTML
|
||||||
$ie.Quit()
|
$ie.Quit()
|
||||||
|
|
||||||
# COM Object
|
# COM
|
||||||
|
|
||||||
$wshell = New-Object -ComObject Wscript.Shell
|
$wshell = New-Object -ComObject Wscript.Shell
|
||||||
$wshell | Get-Member
|
$wshell | Get-Member
|
||||||
|
|
@ -2269,7 +2290,7 @@ $Explorer = $Folder.GetExplorer()
|
||||||
$Explorer.Display()
|
$Explorer.Display()
|
||||||
$Outlook.Quit()
|
$Outlook.Quit()
|
||||||
|
|
||||||
# dotNET Object
|
# dotNET
|
||||||
|
|
||||||
[System.Diagnostics.EventLog] | select Assembly,Module
|
[System.Diagnostics.EventLog] | select Assembly,Module
|
||||||
$EventLog = [System.Diagnostics.EventLog]::new("Application")
|
$EventLog = [System.Diagnostics.EventLog]::new("Application")
|
||||||
|
|
@ -3587,6 +3608,100 @@ exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN'
|
||||||
|
|
||||||
DBCC FREEPROCCACHE
|
DBCC FREEPROCCACHE
|
||||||
|
|
||||||
|
# SNMP
|
||||||
|
|
||||||
|
### Setup SNMP Service
|
||||||
|
|
||||||
|
Install-WindowsFeature SNMP-Service,SNMP-WMI-Provider -IncludeManagementTools # установить роль SNMP и WMI провайдер через Server Manager
|
||||||
|
Get-WindowsFeature SNMP*
|
||||||
|
Add-WindowsCapability -Online -Name SNMP.Client~~~~0.0.1.0 # установить компонент Feature On Demand для Windows 10/11
|
||||||
|
Get-Service SNMP*
|
||||||
|
Get-NetFirewallrule -DisplayName *snmp* | ft
|
||||||
|
Get-NetFirewallrule -DisplayName *snmp* | Enable-NetFirewallRule
|
||||||
|
|
||||||
|
### Setting SNMP Service via Regedit
|
||||||
|
|
||||||
|
Agent:
|
||||||
|
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\SNMP\Parameters\RFC1156Agent" -Name "sysContact" -Value "lifailon-user" # создать (New) или изменить (Set)
|
||||||
|
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\SNMP\Parameters\RFC1156Agent" -Name "sysLocation" -Value "plex-server"
|
||||||
|
|
||||||
|
Security:
|
||||||
|
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\services\SNMP\Parameters\TrapConfiguration\public" # создать новый community string
|
||||||
|
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities" -Name "public" -Value 16 # назначить права на public
|
||||||
|
1 — NONE
|
||||||
|
2 — NOTIFY # позволяет получать SNMP ловушки
|
||||||
|
4 — READ ONLY # позволяет получать данные с устройства
|
||||||
|
8 — READ WRITE # позволяет получать данные и изменять конфигурацию устройства
|
||||||
|
16 — READ CREATE # позволяет читать данные, изменять и создавать объекты
|
||||||
|
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers" -Name "1" -Value "192.168.3.99" # от кого разрешено принимать запросы
|
||||||
|
Get-Service SNMP | Restart-Service
|
||||||
|
|
||||||
|
### snmpwalk
|
||||||
|
snmpwalk -v 2c -c public 192.168.3.100
|
||||||
|
snmpwalk -v 2c -c public -O e 192.168.3.100
|
||||||
|
|
||||||
|
### Modules
|
||||||
|
|
||||||
|
Install-Module -Name SNMP
|
||||||
|
Get-SnmpData -IP 192.168.3.100 -OID 1.3.6.1.2.1.1.4.0 -UDPport 161 -Community public
|
||||||
|
(Get-SnmpData -IP 192.168.3.100 -OID 1.3.6.1.2.1.1.4.0).Data
|
||||||
|
Invoke-SnmpWalk -IP 192.168.3.100 -OID 1.3.6.1.2.1.1 # пройтись по дереву OID
|
||||||
|
Invoke-SnmpWalk -IP 192.168.3.100 -OID 1.3.6.1.2.1.25.6.3.1.2 # список установленного ПО
|
||||||
|
Invoke-SnmpWalk -IP 192.168.3.100 -OID 1.3.6.1.2.1.25.2.3.1 # список разделов и памяти (C: D: Virtual Memory и Physical Memory)
|
||||||
|
Set-SnmpData # изменение данных на удаленном устройстве
|
||||||
|
|
||||||
|
Install-Module -Name SNMPv3
|
||||||
|
Invoke-SNMPv3Get # получение данных по одному OID
|
||||||
|
Invoke-SNMPv3Set # изменение данных
|
||||||
|
Invoke-SNMPv3Walk # обход по дереву OID
|
||||||
|
Invoke-SNMPv3Walk -UserName lifailon -Target 192.168.3.100 -AuthSecret password -PrivSecret password -OID 1.3.6.1.2.1.1 -AuthType MD5 -PrivType AES128
|
||||||
|
|
||||||
|
### Lextm.SharpSnmpLib
|
||||||
|
|
||||||
|
https://api.nuget.org/v3-flatcontainer/lextm.sharpsnmplib/12.5.2/lextm.sharpsnmplib.12.5.2.nupkg
|
||||||
|
Add-Type -LiteralPath "$home\Desktop\lextm.sharpsnmplib-12.5.2\net471\SharpSnmpLib.dll"
|
||||||
|
|
||||||
|
$port = 161
|
||||||
|
$OID = "1.3.6.1.2.1.1.4.0"
|
||||||
|
$variableList = New-Object Collections.Generic.List[Lextm.SharpSnmpLib.Variable]
|
||||||
|
$variableList.Add([Lextm.SharpSnmpLib.Variable]::new([Lextm.SharpSnmpLib.ObjectIdentifier]::new($OID)))
|
||||||
|
$timeout = 3000
|
||||||
|
[Net.IPAddress]$ip = "192.168.3.100"
|
||||||
|
$endpoint = New-Object Net.IpEndPoint $ip, $port
|
||||||
|
$Community = "public"
|
||||||
|
[Lextm.SharpSnmpLib.VersionCode]$Version = "V2"
|
||||||
|
|
||||||
|
$message = [Lextm.SharpSnmpLib.Messaging.Messenger]::Get(
|
||||||
|
$Version,
|
||||||
|
$endpoint,
|
||||||
|
$Community,
|
||||||
|
$variableList,
|
||||||
|
$TimeOut
|
||||||
|
)
|
||||||
|
$message.Data.ToString()
|
||||||
|
|
||||||
|
### Walk
|
||||||
|
|
||||||
|
[Lextm.SharpSnmpLib.ObjectIdentifier]$OID = "1.3.6.1.2.1.1" # дерево или конечный OID
|
||||||
|
$WalkMode = [Lextm.SharpSnmpLib.Messaging.WalkMode]::WithinSubtree # режим обхода по дереву
|
||||||
|
$results = New-Object Collections.Generic.List[Lextm.SharpSnmpLib.Variable]
|
||||||
|
$message = [Lextm.SharpSnmpLib.Messaging.Messenger]::Walk(
|
||||||
|
$Version,
|
||||||
|
$endpoint,
|
||||||
|
$Community,
|
||||||
|
$OID,
|
||||||
|
$results,
|
||||||
|
$TimeOut,
|
||||||
|
$WalkMode
|
||||||
|
)
|
||||||
|
$results
|
||||||
|
|
||||||
|
$results2 = @()
|
||||||
|
foreach ($d in $results) {
|
||||||
|
$results2 +=[PSCustomObject]@{'ID'=$d.id.ToString();'Data'=$d.Data.ToString()} # перекодировать вывод построчно в строку
|
||||||
|
}
|
||||||
|
$results2
|
||||||
|
|
||||||
# DSC
|
# DSC
|
||||||
|
|
||||||
Import-Module PSDesiredStateConfiguration
|
Import-Module PSDesiredStateConfiguration
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue