Set-MpPreference -DisableRealtimeMonitoring $trueSet-MpPreference -DisableScriptScanning $trueSet-MpPreference -DisableBehaviorMonitoring $trueSet-MpPreference -DisableBehaviorMonitoring $trueSet-MpPreference -DisableBehaviorMonitoring $true
Рубрика: PowerShell
pnputil.exe /add-driver «C:\tmp\drv\*.inf» /subdirs
PowerCLI commands
Найти все снэпшоты
Connect-VIServer vcsa01, vcsa02
get-vm | where {($_.Name -like "s") -OR ($_.Name -like "dmz") -OR (($_.Name -like "v") -AND ($_.Name -notlike "vbnk"))} | get-snapshot | where {$_.Name -ne "base-snapshot"} | Sort SizeGB -Descending | FT VM,Name,SizeGB,Created -AutoSize
Удалить кастомный атрибут
Get-CustomAttribute -Name "Atr Name" -TargetType VirtualMachine | Remove-CustomAttribute -Confirm:$false
ДЛЯ Intel I226-V
1 — Скачиваем ML версию драйвера, вытаскиваем из архива папку с драйвером по пути ***\PRO2500\Winx64\NDIS68. В ней находим и редактируем e2f.inf файл, копируем строку
%E125CNC.DeviceDesc% = E125C.10.0.1..17763, PCI\VEN_8086&DEV_125C
сохраняем файл

2 — Переводим Windows в режим тестирования. Это нужно для отключения проверки подписи устанавливаемых драйверов.
bcdedit.exe /set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe /set TESTSIGNING ON
Перезагружаемся
3 — Устанавливаем драйвер, проверяем что драйвер установился корректно. После чего отключаем тестовый режим
bcdedit.exe /set loadoptions ENABLE_INTEGRITY_CHECKS
bcdedit.exe /set TESTSIGNING OFF
Перезагружаемся
ДЛЯ Wi-Fi 6 AX200
1 — Устанавливаем дополнительный компонент «Служба беспроводной локальной сети»

2 — Устанавливаем драйвер
Теперь, когда WhatsApp практически заставил нас использовать версию Microsoft Store, удалось найти альтернативу для прямой загрузки версии Microsoft Store.
Шаг 1
Берем прямой URL-адрес приложения с веб-сайта Microsoft Store.
На момент написания этой статьи это
https://apps.microsoft.com/store/detail/whatsapp/9NKSQGP7F2NH?hl=en-us&gl=us
(Не уверен, что это будет изменено в будущем)
Шаг 2
Переходим на этот URL https://store.rg-adguard.net/
Шаг 3
Скачать последний (по дате) файл WhatsAppDesktop, который заканчивается на .msixbundle (размер должен составлять >100 МБ).
Шаг 4 (тут можно просто ПКМ на файле и Install)
Запустите PowerShell от имени администратора (без администратора тоже должно работать, но на всякий случай просто запустите его от имени администратора)
Шаг 5
Вставьте следующую строку с соответствующими изменениями в зависимости от пути к файлу загрузки.
Add-AppxPackage -Path “C:\Users\*USERNAME*\Downloads\*FILENAME*.Msixbundle”
В моем случае это было бы
Add-AppxPackage -Path “C:\Users\USERNAME\Downloads\5319275A.WhatsAppDesktop_2.2419.11.0_neutral_~_cv1g1gvanyjgm.Msixbundle”
После этого приложение будет успешно установлено.
1. Создать файл профиля Powershell ISE:New-Item -Path $Profile -ItemType file -Force
2. Открыть файл:notepad $profile
3.Добавить строку с нужным кодом:
Например для загрузки установленного PowerCLI 6.5$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("PowerCLI", {& "C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"} , $null) | Out-Null
1. Нужно через Exchange PowerShell создать новую роль на основе роли MyDistributionGroups:
Get-ManagementRoleEntry "MyDistributionGroups\*"
New-ManagementRole -Name "Ownership Distribution Groups Management" -Parent "MyDistributionGroups"
Get-ManagementRoleEntry "Ownership Distribution Groups Management\*"

2. Выпилить из только что созданной роли все лишние права ( т.е. создание/изменение/удаление групп рассылок):
Get-ManagementRoleEntry "Ownership Distribution Groups Management\Set-*" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry "Ownership Distribution Groups Management\New-*" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry "Ownership Distribution Groups Management\Remove-DistributionGroup" | Remove-ManagementRoleEntry -Confirm:$false
Проверяем:
Get-ManagementRoleEntry "Ownership Distribution Groups Management\*"

3. Подключаем новую роль в политике пользователей по умолчанию Default Role Assignmeng Policy:

# Поиск, отключение и перенос неактивных ПК и пользователей старше указанного кол-ва дней в переменной $DaysInactiveimport-module activedirectory
$Server = "MyDC01"
$OU = "OU=Company,DC=domain,DC=com"
$OUOldComputers = "OU=Computer,OU=Old objects,DC=domain,DC=com"
$OUOldUsers = "OU=Users,OU=Old objects,DC=domain,DC=com"
$DaysInactive = 45
$time = (Get-Date).Adddays(-($DaysInactive))
# Поиск старых ПК
$OldPC = Get-ADComputer -Filter {(LastLogonTimeStamp -lt $time) -AND (operatingSystem -notlike «Windows Server*»)} -Server $Server -SearchBase $OU -SearchScope Subtree -Properties LastLogonTimeStamp,description,operatingSystem | Sort Name,LastLogonTimeStamp
$OldPC | FT Name,@{N=’LastLogonTimeStamp’; E={[DateTime]::FromFileTime($_.LastLogonTimeStamp)}},operatingSystem,description
$OldPC.count
$OldPC | Disable-ADAccount
$OldPC | Move-ADObject -TargetPath $OUOldComputers
# Поиск старых Пользователей
$OldUsers = Get-ADUser -Filter {LastLogonTimeStamp -lt $time} -Server $Server -SearchBase $OU -SearchScope Subtree -Properties LastLogonTimeStamp,description | Sort Name,LastLogonTimeStamp
$OldUsers | FT Name,@{N=’LastLogonTimeStamp’; E={[DateTime]::FromFileTime($_.LastLogonTimeStamp)}},description
$OldUsers.count
$OldUsers | Disable-ADAccount
$OldUsers | Move-ADObject -TargetPath $OUOldUsers
# Поиск, отключение и перенос неактивных ПК и пользователей старше указанного кол-ва дней в переменной $DaysInactiveimport-module activedirectory
$Server = "MyDC01"
$OU = "OU=Company,DC=domain,DC=com"
$OUOldComputers = "OU=Computer,OU=Old objects,DC=domain,DC=com"
$OUOldUsers = "OU=Users,OU=Old objects,DC=domain,DC=com"
$DaysInactive = 45
$time = (Get-Date).Adddays(-($DaysInactive))
# Поиск старых ПК
$OldPC = Get-ADComputer -Filter {(LastLogonTimeStamp -lt $time) -AND (operatingSystem -notlike «Windows Server*»)} -Server $Server -SearchBase $OU -SearchScope Subtree -Properties LastLogonTimeStamp,description,operatingSystem | Sort Name,LastLogonTimeStamp
$OldPC | FT Name,@{N=’LastLogonTimeStamp’; E={[DateTime]::FromFileTime($_.LastLogonTimeStamp)}},operatingSystem,description
$OldPC.count
$OldPC | Disable-ADAccount
$OldPC | Move-ADObject -TargetPath $OUOldComputers
# Поиск старых Пользователей
$OldUsers = Get-ADUser -Filter {LastLogonTimeStamp -lt $time} -Server $Server -SearchBase $OU -SearchScope Subtree -Properties LastLogonTimeStamp,description | Sort Name,LastLogonTimeStamp
$OldUsers | FT Name,@{N=’LastLogonTimeStamp’; E={[DateTime]::FromFileTime($_.LastLogonTimeStamp)}},description
$OldUsers.count
$OldUsers | Disable-ADAccount
$OldUsers | Move-ADObject -TargetPath $OUOldUsers
При создании правила транспортировки и выборе действия «отправить сообщение об отклонении отправителю с расширенным кодом состояния»

Пользователю приходит стандартный текст из которого пользователь мало что сможет понять (Сообщение не было доставлено из-за проблемы с разрешениями или безопасностью. Сообщение мог отклонить модератор, адресат может принимать сообщения электронной почты лишь от некоторых получателей, либо же доставке препятствует другое ограничение.)

Что бы написать свой текст ответа к этому правилу, необходимо в Powershell Exchange создать новый тип системного сообщения:
New-SystemMessage -DsnCode 5.7.229 -Internal $True -Language ru -Text «НОВОЕ СООБЩЕНИЕ»
Где параметр DsnCode может быть любой в диапазоне от 5.7.10 до 5.7.999
Затем уже при создании правила нужно просто указать номер этого сообщения.