Архив рубрики: PowerShell

Блокировка устаревших записей ПК AD

Powershell

PS C:\Users\lexit>  Import-Module ActiveDirectory
PS C:\Users\lexit> get-command -module ActiveDirectory
PS C:\Users\lexit> $OldDate = (Get-Date).AddDays(-45).ToFileTime()
PS C:\Users\lexit> $r=Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $OldDate} | Set-ADComputer -Enabled $false

Экспорт пользователей домена в CSV powershell

Экспорт пользователей домена в CSV powershell

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = "LDAP://dc=domain,dc=local"
$objSearcher.Filter = "(&(objectCategory=person)(!userAccountControl:1.2.840.113556.1.4.803:=2))"
$users = $objSearcher.FindAll()
# Количество учетных записей
$users.Count
$users | ForEach-Object {
   $user = $_.Properties
   New-Object PsObject -Property @{
   Должность = [string]$user.description
   Отдел = [string]$user.department
   Логин = [string]$user.userprincipalname
   Телефон = [string]$user.telephonenumber
   MТелефон = [string]$user.mobile
   Комната = [string]$user.physicaldeliveryofficename
   ФИО = [string]$user.cn
   ФАМ = [string]$user.sn
   ИМЯ = [string]$user.givenname
   ГОРОД = [string]$user.l
   МЫЛО = [string]$user.mail

    }
} | Export-Csv -NoClobber -Encoding Unicode -Path  c:\list_users_act.csv

Массовая смена паролей в AD средствами Powershell

Для начала нам понадобится скачать и установить ActiveRoles Management Shell for Active Directory http://www.quest.com/powershell/activeroles-server.aspx
После установки подключаем…

PS C:> Add-PSSnapin Quest.ActiveRoles.ADManagement

$OU = "domain.local/OU_UNIT/"
Get-QADUser -SizeLimit 0 -SearchRoot $OU | ForEach-Object {
$DN = $_.DN
$Password = ""
$rand = New-Object System.Random
1..6 | ForEach { $Password = $Password + [char]$rand.next(97,122) }
$login = $_.LogonName
$file=c:report.txt
Add-Content -Path $file -Value "Пользователь:$(ConvertFrom-DN($DN))`t Имя для входа – $($login)`t Новый пароль – $($Password)"
$account = [ADSI]$ldapURL
$account.InvokeSet("SetPassword", $Password)
$account.setinfo()
}


 

 

Обновляем старые скрипты на их PowerShell аналоги

Для перезагрузки удаленного сервера (Server1) с 10-ти секундной задержкой, в прежнем скрипте использовалась данная конструкция:

shutdown /r /m SERVER1 /f /t 10

В PowerShell это будет выглядеть так:

Start-Sleep 10
Restart-Computer -Force -ComputerName SERVER1

Перезапуск службы

Для перезапуска службы DNS cache в Windows Server используется следующая команда:

sc stop dnscache
sc start dnscache

В PowerShell это будет выглядеть так:

Restart-Service dnscache

Подключение диска

В окне DOS или исполняемом файле используется следующая команда для подключения диска с сетевого компютера:

Net use L: server1c$

В PowerShell это будет выглядеть так:

New-PSDrive -name L -psprovider FileSystem -root server1c$

Хотя я показал примеры замены самых простейших скриптов, и для более сложных можно, а точнее я думаю уже нужно создавать Powershell-аналоги, которые будут часто и короче и быстрее.

Автор: Rick Vanover.

Найдено на http://system-administrators.info/?p=3558

QADuser или первые шаги…

Задача — добавить пользователя в AD через PowerShell windows 2008 server
Для того чтобы добавить пользователя используем команду new-QADUser
Так как оснастка у меня не была установлена то сначала я получил ошибку

Имя «New-QADuser» не распознано как имя командлета, функцииБ файла скрипта или выполняемой программы

Поправим.

set-Location c:
add-PSSnapin quest.activeroles.admanagement
get-PSSnapin | ft name

проверим
Get-command | where {$_.name -match «QAD»}

Продолжение следует…