Перейти к содержимому

power shell

Как обновить политику адресов электронной почты и скрипт для удаление дополнительных псевдонимов из OU.

Задача при переноси уз с почтовыми адресами (adminbd.ru) в ou на которую назначена политика адресов электронной, необходимо обновить политику что бы создался новый псевдоним (alias email) и удалить старый email адрес.

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
 
 
Get-EmailAddressPolicy (имя политики) | Update-EmailAddressPolicy
$ouName = "НазваниеOU"
$domainToRemove = "adminbd.ru"
$logFilePath = "C:\Scripts\delet_alias_LGC\log.txt"
Remove-item $logFilePath
$emailAddresses1 = Get-Mailbox -OrganizationalUnit $ouName -ResultSize Unlimited
$emailAddresses1 = $emailAddresses1 | Where-Object { $_.PrimarySmtpAddress -notlike "*@adminbd.ru" }
 
foreach ($user in $emailAddresses1) {
    $voxysAddresses = $user.EmailAddresses -split ',' | Where-Object { $_ -like "smtp:*@$domainToRemove" }
    $voxysAddresses = $adminbdAddresses -replace "^smtp:", ""
 
    if ($voxysAddresses.Count -ge 1) {
        # Удаляем все псевдонимы *@adminbd.ru*
        Set-Mailbox 
Читать далее

Как подключиться к почте Exchange через Powershell на другом сервере и создать почтовый ящик пользователю.

Выполняем команды в powershell для подключения к серверу Exchange.

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mxs01.admindb.ru/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -DisableNameChecking

После когда поработали нужно отключиться.

Remove-PSSession $Session

Создать почтовый ящик командой

get-user -Identity d.pupkin | Enable-Mailbox -Database MSK06 -RetentionPolicy "Move to archive after 6 month"
get-user -Identity d.pupkin | Enable-Mailbox -ACrchive -ArchiveDatabase ARC02

 

Как удалить site и pools из windows iis с помощью powershell.Deleting sites and application pools from Microsoft IIS using PowerShell

Удалить po0ls

#Deleting Sites and app pools in IIS 7 with PowerShell
$appCmd = "C:\windows\system32\inetsrv\appcmd.exe"

#lists all the sites
#& $appcmd list site 
#deletes a specific site
#& $appcmd delete site "Name of site"
#lists all the sites
#& $appcmd list apppool 
#deletes a specific application pool
#& $appcmd delete apppool "Name of app pool"
#delete any app pools that use a certain username (in the identity column of the GUI)
#$account = "TheDomain\TheAccount"
$AppPools = & $appcmd list apppool 
foreach ($pool in $AppPools){
    $pool = $pool.split(" ")[1] #get the name only
    & $appcmd delete apppool $pool
}
#delete all 
Читать далее

Как остановить и запустить все пулы iis через Powershell

Остановить pools iis через Powershell

Import-Module WebAdministration

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit }

$AppPools=Get-ChildItem IIS:\AppPools | Where {$_.State -eq "Started"}

ForEach($AppPool in $AppPools)
{
 Stop-WebAppPool -name $AppPool.name
# Write-Output ('Stopping Application Pool: {0}' -f $AppPool.name)
}

Запустить pools iis через Powershell

Import-Module WebAdministration

   if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit }

   $AppPools=Get-ChildItem IIS:\AppPools | Where {$_.State -eq "Stopped"}
   ForEach($AppPool in $AppPools)
   {
    Start-WebAppPool -name $AppPool.name
   # Write-Output ('Starting Application Pool: {0}' -f $AppPool.name)
   }

 

Как с помощью powershell через групповые политики узнать на каких пк нужно дефрагментировать диск и время выполнения политик

Задача собрать информацию с пк пользователей сколько времени выполняются групповые политики и на каких пк нужно выполнить дефрагментацию диска

Написал скрипт и засунул в запланированное задание с помощью групповой политики скрипт

$name=hostname
$Yesterday = (Get-Date) - (New-TimeSpan -Day 2)
get-WinEvent -LogName "Microsoft-Windows-GroupPolicy/Operational"  | Where-Object {$_.ID -like ‘800*’} |  Where-Object {$_.TimeCreated -ge $Yesterday }|  Export-Csv \\имя сервера\test\gpo\$name.csv -Delimiter ";" -Encoding UTF8
$vols = Get-WmiObject  Win32_Volume -filter "DriveType=3"
$defragInfo = $vols | %{$_.DefragAnalysis() | add-member -membertype noteproperty vname $_.name -passThru}
$name2 = $defragInfo | %{$_.DefragRecommended} 
$name3 = $name + ';' + $name2
$defragInfo | %{$_.DefragAnalysis | add-member -membertype noteproperty DefragRecommended $_.DefragRecommended -passThru 
Читать далее

Миграция пользователя в соседний домен с сохранением почтового адреса

Для миграции пользователя с сохранением его почтового адреса требуется Powershell 2.0 и Commandlet Move-ADObject ( появился в Windows Server 2008 R2 и более поздние редакции ) и контроллеры домена с ролью RID pool manager

Важно! Командлет Move-ADObject не сможет мигрировать учетную запись при наличии дочерних объектов ( объекты Exchange, принтеры и т.д. )

Важно! Если пользователь использует почту на телефоне, то лучше ее удалить с телефона, либо отключить ActiveSync для его почтового ящика ( с отключением не тестировал, но должно работать )

Расмотрим пример миграции учетной записи user.exch из домена домен.RU в домен2.RU

  • Определяем контроллеры домена с ролью RID pool
Читать далее

Как очистить ящик exchange от устройств если их нету в мобильных устройствах и в Get-ActiveSyncDeviceStatistics через powershell

Проблема у пользователя при подключении нового устройства к почте через exchange 2010 появилась ошибка. Лимит закончился. Слишком большое количество устройств.

Ошибка (

Установлено связей телефона: 10; максимальное количество разрешенных связей: 10. После достижения максимального количества будет невозможно создавать дополнительные связи в учетной записи до удаления существующих. Для этого войдите в Outlook Web App, последовательно щелкните “Параметры” > “Телефон” > “Мобильные телефоны” и удалите неиспользуемые связи.

)

Начал смотреть в ящике там пусто ( Manage mobile Phone ).

Как очистить ящик exchange от устройств если их нету в  мобильных устройствах и в Get-ActiveSyncDeviceStatistics через powershell

Начал искать через powershell

нашел 10 устройств в  Get-ActiveSyncDevice но в Get-ActiveSyncDeviceStatistics пусто. Решил все старые устройства удалить

Посмотрел командой

Get-ActiveSyncDevice -Mailbox "учетная 
Читать далее

Как отправлять оповещения в telegram из mssql

Задача отправлять оповещение из mssql в телеграмм для быстрого реагирования.

https://www.rootusers.com/install-powershell-5-windows-server-2008-r2/

Решил сделать  через powershell. но так как windows 2008 то версия powershell 2.0. Установил 5 версию powersheell. Так как из-за старой версии слались вопросы в телеграмм когда по русски писал.

Скрипт который будет на диске С хранится tel.ps1

param(
[string]$chat_id = $(Throw "'-chat_id' argument is mandatory"),
[string]$text = $(Throw "'-text' argument is mandatory"),
[switch]$markdown,
[switch]$nopreview
)
$token = "Ваш токен"
if($nopreview) { $preview_mode = "True" }
if($markdown) { $markdown_mode = "Markdown" } else {$markdown_mode = ""}

$payload = @{
    "chat_id" = $chat_id;
    "text" = $text
    "parse_mode" = $markdown_mode;
    "disable_web_page_preview" 
Читать далее