82 lines
4.4 KiB
Markdown
82 lines
4.4 KiB
Markdown
## posh-Commands
|
||
|
||
### Help
|
||
`Get-Command *Service*` поиск команды по имени \
|
||
`Get-Help Get-Service` синтаксис \
|
||
`Get-Service | Get-Member` отобразить Method (действия: Start, Stop), Property (объекты вывода: Status, DisplayName), Event (события объектов: Click) и Alias \
|
||
`Get-Alias ps` \
|
||
`Get-Verb` действия, утвержденные для использования в командах \
|
||
`Set-ExecutionPolicy Unrestricted` \
|
||
`Get-ExecutionPolicy`
|
||
|
||
### ping
|
||
`Test-Connection -Count 1 $srv1, $srv2` отправить icmp-пакет двум хостам \
|
||
`Test-Connection $srv -ErrorAction SilentlyContinue` не выводить ошибок, если хост не отвечает \
|
||
`Test-Connection -Source $srv1 -ComputerName $srv2` пинг с удаленного компьютера
|
||
|
||
### nslookup
|
||
`Resolve-DnsName ya.ru -Type MX` ALL,ANY,A,NS,SRV,CNAME,PTR,TXT(spf)
|
||
|
||
### port
|
||
`tnc $srv -p 5985` \
|
||
`tnc $srv -CommonTCPPort WINRM # HTTP,RDP,SMB` \
|
||
`tnc ya.ru –TraceRoute -Hops 2 # TTL=2` \
|
||
`tnc ya.ru -DiagnoseRouting` # маршрутизация до хоста, куда (DestinationPrefix: 0.0.0.0/0) через (NextHop: 192.168.1.254)
|
||
|
||
### ipconfig
|
||
`Get-NetIPConfiguration` \
|
||
`Get-NetAdapter` \
|
||
`Get-NetAdapterAdvancedProperty` \
|
||
`Get-NetAdapterStatistics`
|
||
|
||
### Route
|
||
`Get-NetRoute`
|
||
|
||
### Netstat
|
||
`Get-NetTCPConnection -State Established,Listen | where LocalAddress -match "192.168"`
|
||
|
||
### Hash
|
||
`Get-Filehash -Algorithm SHA256 "$env:USERPROFILE\Documents\RSA.conf.txt"`
|
||
|
||
### Clipboard
|
||
`Set-Clipboard $srv` скопировать в буфер обмена \
|
||
`Get-Clipboard` вставить
|
||
|
||
### Array
|
||
`$srv = @("server-01", "server-02")` создать массив \
|
||
`$srv += @("server-03")` добавить в массив новый элемент \
|
||
`$srv.Count` отобразить кол-во элементов в массиве \
|
||
`Out-String` построчный вывод
|
||
|
||
### Index
|
||
`$srv[0]` вывести первое значение элемента массива \
|
||
`$srv[0] = Name` замена элемента в массиве \
|
||
`$srv[0].Length` узнать кол-во символов первого значения в массиве \
|
||
`$srv[10..100]` срез
|
||
|
||
### PSCustomObject
|
||
`$obj = @()` \
|
||
`$obj += [PSCustomObject]@{User = $env:username; Server = $env:computername}` медленный метод добавления, в каждой интерации перезаписывается массив и коллекция становится фиксированного размера (Collection was of a fixed size)
|
||
|
||
`$Collections = New-Object System.Collections.Generic.List[System.Object]` \
|
||
`$Collections.Add([PSCustomObject]@{User = $env:username; Server = $env:computername})`
|
||
|
||
`Get-Service | Select Name,DisplayName,Status,StartType | Export-csv -path "$home\Desktop\Get-Service.csv" -Append -Encoding Default` экспортировать в csv (-Encoding UTF8) \
|
||
`Import-Csv "$home\Desktop\Get-Service.csv" -Delimiter ","` импортировать массив
|
||
|
||
### Pipeline
|
||
`$obj | Add-Member -MemberType NoteProperty -Name "Type" -Value "user" -Force` добавление объкта вывода NoteProperty \
|
||
`$obj | Add-Member -MemberType NoteProperty -Name "User" -Value "admin" -Force` изменеие содержимого для сущности объекта User \
|
||
`ping $srv | Out-Null` перенаправить результат вывода в Out-Null
|
||
|
||
### Variable
|
||
`$var = Read-Host "Enter"` ручной ввод \
|
||
`$pass = Read-Host "Enter Password" -AsSecureString` скрывать набор \
|
||
`$global:path = "\\path"` задать глобальную переменную, например в функции \
|
||
`$using:srv` использовать переменную текущей сесси в Invoke-сессии \
|
||
`Get-Variable` отобразить все переменные \
|
||
`Get-Variable *srv*` найти переменную по имени \
|
||
`Get-Variable -Scope Global` отобразить все глобальные переменные \
|
||
`Get-Variable Error` последняя команда с ошибкой \
|
||
`Remove-Variable -Name *` очистить все переменные \
|
||
`$LASTEXITCODE` содержит код вывода последней запущенной программы, например ping. Если код возврата положительный (True), то $LastExitCode = 0
|