Рубрики
Echange PowerShell Windows

Отключить Windows Defender

Set-MpPreference -DisableRealtimeMonitoring $true
Set-MpPreference -DisableScriptScanning $true
Set-MpPreference -DisableBehaviorMonitoring $true
Set-MpPreference -DisableBehaviorMonitoring $true
Set-MpPreference -DisableBehaviorMonitoring $true

Рубрики
PowerShell Windows

Интегрировать драйвера в образ Windows (pnputil)

pnputil.exe /add-driver «C:\tmp\drv\*.inf» /subdirs

Рубрики
PowerCLI

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
Рубрики
PowerShell Windows

Установка драйверов для Intel I226-V и Wi-Fi 6 AX200 на Windows Server 2019

ДЛЯ 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 — Устанавливаем драйвер

Рубрики
PowerShell Windows

Обновление WhatsUp на ПК без магазина приложений Windows

Теперь, когда 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”

После этого приложение будет успешно установлено.

Источник

Рубрики
PowerShell Windows

Добавить кнопку в меню Powershell ISE

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
источник2

Рубрики
Echange PowerShell Windows

Exchange 2010/2013/2016 невозможно изменить список членов группы рассылки

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:

источник

Рубрики
PowerShell Windows

Поиск, отключение и перенос неактивных ПК и пользователей старше указанного кол-ва дней

# Поиск, отключение и перенос неактивных ПК и пользователей старше указанного кол-ва дней в переменной $DaysInactive
import-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 Windows

Поиск, отключение и перенос неактивных ПК и пользователей старше указанного кол-ва дней

# Поиск, отключение и перенос неактивных ПК и пользователей старше указанного кол-ва дней в переменной $DaysInactive
import-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

Источник

Рубрики
Echange PowerShell Windows

Изменение текста сообщения автоматического ответа Exchange при срабатывании правила транспортировки

При создании правила транспортировки и выборе действия «отправить сообщение об отклонении отправителю с расширенным кодом состояния»

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

Что бы написать свой текст ответа к этому правилу, необходимо в Powershell Exchange создать новый тип системного сообщения:

New-SystemMessage -DsnCode 5.7.229 -Internal $True -Language ru -Text «НОВОЕ СООБЩЕНИЕ»

Где параметр DsnCode может быть любой в диапазоне от 5.7.10 до 5.7.999

Затем уже при создании правила нужно просто указать номер этого сообщения.