Рубрика: PowerShell

Почтовая рассылка с помощью PowerShell c GUI интерфейсом

На дня потребовалось сделать систему почтовой рассылки для маркетинга , можно воспользоваться готовыми решениями, но они стоят денег =) Сам скрипт Function Get-FileName($InitialDirectory,$Title) { $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog $OpenFileDialog.InitialDirectory = $initialDirectory $OpenFileDialog.Filter = "All files (*.*)| *.*" $OpenFileDialog.Title = $Title $OpenFileDialog.ShowDialog() | Out-Null $OpenFileDialog.Filename }   Function Check { $subject = $richTextBox1.Text -match "w" $addr = …

Active Directory сменить пароль пользователям через PowerShell

Структура CSV файла users.csv: Login = SamAccountName Login;Password user1;MyNewPass user2;MyNewPass3 Запрос PowerShell: Import-Csv users.csv -Delimiter ";" | Foreach { $NewPassword = ConvertTo-SecureString -AsPlainText $_.Password -Force Set-ADAccountPassword -Identity $_.Login -NewPassword $NewPassword -Reset -PassThru | Set-ADUser -ChangePasswordAtLogon $false }

PowerShell — Аудит файлового сервера

Есть много решений для аудите файлового сервера, вот одно из них: #cat SHARE-audit-delete-files.ps1 $id = @{ 0x10000 = "Delete" 0x6 = "Write" 0x2 = "CreateFiles" 0x12019f = "Write, Read, Synchronize" } Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=(::ToDay)} | Where {$_.properties.value -match "xlsx$"} | Select ` @{n="Time";e={$_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")}}, @{n="UserName";e={$_.properties.Value + "/" + $_.properties.Value}}, @{n="Action";e={$_.properties.value}}, @{n="FileName";e={$_.properties.value}} | Export-Csv ResultAudit.csv -Encoding UTF8 -NoTypeInformation …

PowerShell — Аудит создания и удаления пользователей в Active Directory

Для уведомлений о создание и удаления пользователя в Active Directory я использую два скрипта PowerShell, всегда в курсе кто создал и кто удалил пользователя. Скрипт 1: Создание пользователя $Theme = “Добавлен новый пользователь в домен” $Subject = “Создание пользователя” $Server = “mail.domain.local” $From = “ad-event-4720@domain.local” $To = “d.kudryavtsev@domain.local” $encoding = ::UTF8 $Body=Get-WinEvent -FilterHashtable @{LogName=”Security”;ID=4720} | Select …

Скрипт PowerShell для импорта в лес Active Directory

На днях потребовалось загрузить больше 2к пользователей , руками делать тяжко, поэтому было принято решение  сделать все через PS Подготавливаем CSV файл Далее запускаем скрипт Import-Module ActiveDirectory Import-CSV c:users.csv | Foreach { $param = @{ Name = $_.DisplayName Department = $_.Department Description = $_.Description DisplayName = $_.DisplayName EmailAddress = $_.EmailAddress SamAccountName = $_.SamAccountName OfficePhone = $_.telephoneNumber …

GPO — Удаление ярлыка управления сервера и powershell для пользователей в Windows Server

Для удаления данных ярлыков пользователям нужно создать групповую политику. Открываем оснастку Управление групповой политикой далее заходим: Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Файловая система   Добавляем расположение ярлыков для управления сервера и powershell %AllUsersProfile%MicrosoftWindowsStart MenuProgramsAdministrative ToolsServer Manager.lnk %AllUsersProfile%MicrosoftWindowsStart MenuProgramsAccessoriesWindows PowerShellWindows PowerShell.lnk Выставляем права   На этом все.

PowerShell — Как выгрузить всех пользователей AD в текстовый файл с добавлением префикса

На днях потребовалось сделать выгрузку всех пользователей AD в текстовый файл с добавлением префикса, вот сам скрипт: #cat import-users-ad.ps1 Import-Module ActiveDirectory Get-ADUser -Filter * | %{$_.samaccountname+"@DOMAIN.LOCAL"} | out-file C:ADLISTusers.txt

PowerShell — Аудит компьютерного парка в Active Directory

Потребовалось собрать информацию обо всех компьютерах в сети офиса. Нужно было знать имя компьютера, мак адрес, кто последний авторизовался. Сам скрипт: $base = "OU=Computers,DC=Domain,DC=Local" Get-ADComputer -Filter * -SearchBase $base | Foreach { $pr=$mac=$null if (Test-Connection $_.Name -Count 2 -Quiet) { $pr = Get-WMIObject Win32_NetworkLoginProfile -ComputerName $_.Name| Sort LastLogon -Desc | Select -First 1 | Foreach {$_.Caption} …

PowerShell — Аудит заполнения полей в Active Directory

Когда то такой вопрос возникает практически у каждого администратора домена, а все ли поля корректно заполнены в active directory. Если в домене 10-30 пользователей можно пробежаться руками и проверить поля на заполнение , а если их больше 500 или 1000 пользователей это офигеть, нам на помощь приходит снова PowerShell: $base = "OU=Users,DC=Domain,DC=Local" $properties = "telephoneNumber","mail","displayName","company","department","manager","title" $body …