diff --git a/posh.txt b/posh.txt
index 3d94314..d23bf6a 100644
--- a/posh.txt
+++ b/posh.txt
@@ -453,6 +453,25 @@ $obj += [PSCustomObject]@{Time = $temp_fw.TimeCreated; Type = $type; Port = $por
# XML
+$xml = [xml](Get-Content C:\file.xml) # прочитать содержимое xml-файла
+$xml = New-Object System.Xml.XmlDocument # создать пустой xml объект
+$xml.Save("C:\file.xml") # сохранить содержимое объекта в файла
+
+$xmlDocument = [xml]'
+
+Book 1
+Author 1
+
+
+Book 2
+Author 2
+
+'
+$xmlDocument.SelectNodes("//Book")
+
+Export-CliXml # экспортировать объект powershell в xml
+Import-Clixml # импортировать объект xml в powershell
+
if (Test-Path $CredFile) {
$Cred = Import-Clixml -path $CredFile
} elseif (!(Test-Path $CredFile)) {
@@ -477,6 +496,25 @@ New-Object PSObject -Property @{
}}
$EventData
+### JSON
+
+log =
+{
+ level = 7;
+};
+
+$log = [xml]"
+ 7
+"
+
+$log = '{
+ "log": {
+ "level": 7
+ }
+}' | ConvertFrom-Json
+
+Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/posts" -Method Get # GET-запрос для получения объекта JSON
+
# Application
### Get-Package
@@ -1940,6 +1978,8 @@ Remove-DatabaseAvailabilityGroupServer -Identity dag-01 -MailboxServer EXCH-MX-0
Import-Module FailoverClusters
Get-ClusterNode EXCH-MX-04 | Remove-ClusterNode -Force # удалить отказавший узел из Windows Failover Cluster
+Get-DatabaseAvailabilityGroup | Get-DatabaseAvailabilityGroupHealth # мониторинг
+
### Index
Get-MailboxDatabaseCopyStatus * | select name,status,ContentIndexState,ContentIndexErrorMessage,ActiveDatabaseCopy,LatestCopyBackupTime,CopyQueueLength # узнать состояние работы индксов БД и текст ошибки, на каком сервере активная копия БД, дата последней копии и текущая очередь
Get-MailboxDatabaseCopyStatus -Identity $db_name\* | Format-List Name,ContentIndexState # отобразить список всех копий конкретной БД на всех серверах, и статус их индексов, если у второго сервера статус Healthy, можно восстановить из него
@@ -1952,7 +1992,7 @@ Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq "Failed" -or $
# Git
git --version
-git config --global user.name "Lifailon" # add name for commit
+git config --global user.name "Lifailon" # добавить имя для коммитов
git config --global user.email "lifailon@mail.com"
ssh-keygen -t rsa -b 4096 -с "lifailon@mail.com"
Get-Service | where name -match "ssh-agent" | Set-Service -StartupType Automatic
@@ -1963,15 +2003,17 @@ cat ~\.ssh\id_rsa.pub | Set-Clipboard # copy to https://github.com/settings/keys
mkdir C:\Git; cd C:\Git
git clone git@github.com:Lifailon/PowerShell-Commands
cd PowerShell-Commands
-git grep powershell # search text to all files
-git pull # synchronize changes from the repository
-git status
-git diff
-git add -A # or git restore filename
-git commit -m "update files"
-git push
-git log # commit logs
-git show d01f09dead3a6a8d75dda848162831c58ca0ee13
-git branch test # creat branch
-git checkout test # or git switch test for change branch
-git branch -d test # delete branch
\ No newline at end of file
+git grep powershell # поиск текста в файлах
+git pull # синхронизировать изменения из хранилища
+git status # отобразить статус изменений по файлам
+git diff # отобразить изменения построчно
+git add -A # добавить изменения
+git restore filename # удалить изменения
+git commit -m "update files" # сохранить изменения с комментарием
+git push # синхронизировать локальные изменения с репозиторием
+git log # лог коммитов
+git show d01f09dead3a6a8d75dda848162831c58ca0ee13 # отобразить подробный лог по номеру коммита
+git branch test # создать новую ветку
+git branch -d test # удалить ветку
+git checkout test # переключиться на другую ветку
+git merge test # слияние текущей ветки (git branch) с указанной
\ No newline at end of file