Скрипт для включения аккаунтов Active Directory с заданными параметрами

Представим, что выключенные (disabled) аккаунты у вас хранятся в отдельном OU, в них прописаны определеныне аттрибуты, чтобы не ходила почта, а отбойник отправлялся получателям.

Вот пример такого скрипта, который включает аккаунт, перемещает в правильный OU, включает почту через 13 Exchange attribute, делает unhide почтового ящика в Global Address Book (GAL).
Читать полностью »

Популярность: 1%

Скрипт Powershell: отключение Out-of-Office сообщения в почтовом ящике

Этот скрипт отключает auto-reply message (сообщение автоответа) в почтовом ящике MS Exchange. Как обычно, пере запуском команд Exchange, не забудьте запустить скрипт в Exchange Console Shell или импортировать снап-ин Exchange.

#disable OOO
$username = get-mailbox -identity (Read-Host -Prompt "Enter username" -ErrorAction Stop)
Set-MailboxAutoReplyConfiguration -Identity $username -AutoReplyState Disabled
#check
Write-Host "Current state:" -ForegroundColor green
(Get-MailboxAutoReplyConfiguration -Identity $username).AutoReplyState

Популярность: 1%

Скрипт Powershell: получение списка ACL прав всех папок и подпапок

Этот скрипт для примера получает права папок и подпапок C:\Scripts и выводит результаты в CSV файл.

$OutFile = "C:\temp\Permissions.csv"
$Header = "Folder Path,IdentityReference,AccessControlType,IsInherited,InheritanceFlags,PropagationFlags"
Del $OutFile
Add-Content -Value $Header -Path $OutFile 

Читать полностью »

Популярность: 1%

Скрипты Powershell для работы с AD аккаунтами

Получить список группы по маске:

Import-Module ActiveDirectory
Get-ADGroup -Filter {name -like "*Workstation Admins"} | select name

Получить список членов AD группы, которые удовлетворяют критерию (содержат в своем названии search_matching_rule):

Читать полностью »

Популярность: 1%

Скрипт Powershell: управление правами на папки в почтовом ящике

Отличие этих скриптов в том, что они получают список папок я почтовом ящике и продавливают на них права.

Скрипт для добавления прав на папки  в ящике:

[CmdletBinding()]
param (
	[Parameter( Mandatory=$true)]
	[string]$Mailbox,

	[Parameter( Mandatory=$true)]
	[string]$User,
  	[Parameter( Mandatory=$true)]
	[string]$Access
)

Читать полностью »

Популярность: 1%

Скрипт Powershell: размер папок почтовых ящиков

Этот скрипт выводит размер в МБ папки Inbox для всех почтовых ящиков:

#Get size of Inbox folders in all mailboxes
$mailboxes = @(Get-Mailbox -ResultSize Unlimited)
$report = @()

Читать полностью »

Популярность: 1%

Скрипт Powershell для выгрузки DN, SMTP адреса, почтового сервера для списка пользователей

Не забудьте перед запуском подгрузить снапин Exchange, если вы запускаете не из Exchange Powershell консоли. Список пользователей предоставляется в виде списка их логинов (accounts names) в столбик.

#Add-PSSnapin -name "Microsoft.Exchange.Management.PowerShell.E2010"
$date = date | Out-File D:\AD\mbx_list.txt -Append
$users = get-content -Path (Read-Host -Prompt "Path to TXT file with users (usually c:\temp\users.txt)" -ErrorAction Stop)
foreach($user in $users)
{
$list = ((Get-Mailbox $user.trim()) | select alias,name,PrimarySmtpAddress,servername,LegacyExchangeDN)
$line = ($list.alias, $list.name, $list.PrimarySmtpAddress, $list.servername, $list.LegacyExchangeDN -join "`t")
$line | Out-File D:\AD\smtp_address_list.txt -Append
}

Если вам требуется выгрузить только один параметр, например, DN, то код будет проще:

Читать полностью »

Популярность: 1%

Скрипт для пересоздания профиля пользователя

При запуске необходимо указать путь к папке профиля (обычно c:\users\username).

@echo off
echo.
:enteruname
set /p uname=Please enter userprofile folder name:
if not defined uname goto enteruname
echo.
:rename
echo 1) Renaming of user profile
FOR /F %%a IN ('psgetsid \\%cname% %uname% /accepteula') DO set sid=%%a
echo %uname%'s SID is %sid%
for /f "tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%sid%" /v ProfileImagePath') do set profilepath=%%a
echo User profile is located in %profilepath%
echo.
if exist %profilepath%_old ren %profilepath%_old %uname%_old_%random%
ren %profilepath% %uname%_old
if %ERRORLEVEL% EQU 0 (echo User profile renamed from %uname% to %uname%_old & goto ren_ok) else (echo Failed to rename profile folder, please restart computer now!)
echo Press ANY KEY to restart a computer and then login under administrator account!
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v !RecreateProfile /t REG_SZ /d c:\temp\recreate_user_profile.bat /f
pause
shutdown -r -t 0 -f
goto rename
echo.

Читать полностью »

Популярность: 1%

Скрипт для решения проблемы с TEMP профилями

Скрипт решает проблему, когда пользователь логинится под своим аккаунтом, а попадет в профиль TEMP.

@echo off
echo.
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" > c:\temp\profiles.txt
findstr "bak" c:\temp\profiles.txt > c:\temp\sidbak.txt
echo Registry backup keys found:
type c:\temp\sidbak.txt
pause
for /f "tokens=*" %%a in (c:\temp\sidbak.txt) do reg delete "%%a" /f
if %ERRORLEVEL% EQU 0 (echo Registry patched.) else (echo Failed to patch registry.)
echo.
timeout 5

 

Популярность: 1%

Скрипт для удаления локальной адресной книги Outlook

Написан для Windows 7 и Windows XP, но его можно легко модифицировать, изменив проверку версии ОС. Проверяет запущен ли MS Lync / Communicator.

@echo off
setlocal
echo Please make sure MS Outlook and MS Lync are closed.
pause
:Outlookcheck
for /f "skip=3 Tokens=1" %%a in ('tasklist /fi "imagename eq outlook.exe"') do (
if %errorlevel% EQU 0 (goto outexit) else (goto Comcheck)
)

Читать полностью »

Популярность: 1%