Как массово создать учётные записи в АД из csv файла

Import-Module ActiveDirectory
Import-Csv -Path C:\user\1.csv -Encoding Default -Delimiter ";" |
foreach-object{
  Write-Host "Username" $_.CN "not exists " $_.SamAccountName.Length
   if ($_.SamAccountName.Length  -gt 20 ) {  $_.SamAccountName=$_.SamAccountName.Substring(0,20)
 Write-Host $_.SamAccountName}
 $Firstname=''
 $FirstName=$_.FirstName
 $filter="SamAccountName -eq '"+$_.SamAccountName+"'"
 $usrexist=get-aduser -filter $filter


  if ($usrexist -eq $null)
  {

  new-aduser -Name $_.CN.trim() -DisplayName $_.DisplayName.trim() -City $_.City -Department $_.Department -Surname $_.Surname -GivenName $_.Givename  -SamAccountName $_.SamAccountName   -Title $_.title -POBox $_.postOfficeBox -AccountPassword (ConvertTo-SecureString '123456Q!' -AsPlainText -force) -Path "OU=Temp,DC=voxys,DC=ru" -UserPrincipalName $_.emailaddress -Enabled $true -ChangePasswordAtLogon $true
  }
  else
  {
  
  Write-Host "Username" $_.CN "exists" -ForegroundColor Red
  
  }}

Формат csv

Как массово создать учётные записи в АД из csv файла

Как создать контакты exchange почты из домена организации с помощью powershell.

add-pssnapin quest.activeroles.admanagement
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
#Адрес контроллера домена, к которому подключаемся";
$Domain = 'namedomen.ru'
Connect-QADService -Service $Domain
#Получаем список пользователей удаленного домена   
$userlist = (Get-QADUser -name [А-Я]* -IncludedProperties DisplayName, title, company, department, mailNickname, Office, l, firstname, sn, PhoneNumber, Mobile, Email, physicalDeliveryOfficeName, AccountIsDisabled, msExchMailboxGuid -SizeLimit 0)
ForEach ($user in $userlist)
 {
 #Пользователь заблокирован?
 if ($user.AccountIsDisabled -eq $true) 
   {
  #У пользователя есть почта?
  if ($user.msExchMailboxGuid -notlike $NULL)   {
   #Пользователь заблокирован, удаляем существующий контакт
   Remove-MailContact $user.mail –Confirm:$false
   }
  }
 elseif ($(Get-contact $user.displayname))
  {
  if ($user.mail -notlike $NULL)
   {
   #Пользователь не заблокирован, контакт существует, надо обновить
   Set-Contact $user.email -Company "Имя компании" -Title $user.Title -Department $user.Department 
Читать далее

Как создать учётные записи с помощью powershell в AD из csv

Import-Csv -Path C:\1.csv -Encoding Default -Delimiter ";" | sort CN |
foreach-object{
#New-ADUser -Name $_.Full_Name -AccountPassword (ConvertTo-SecureString 'password!' -AsPlainText -force) -CannotChangePassword $True -Description $_.Desc -DisplayName $_.Full_Name -EmailAddress $_.Email -Enabled $False -GivenName $_.First_Name -HomeDirectory $_.Homedir -HomeDrive $Homedri -PasswordNeverExpires $True -Path $_.Path -SamAccountName $_.Email -ScriptPath LogonS.cmd -Surname $_.Last_Name -UserPrincipalName $_.Email -passthru
#Write-Host $_.SamAccountName
$filter="SamAccountName -eq '"+$_.SamAccountName+"'"
$usrexist=get-aduser -filter $filter
#Write-Host $_.SamAccountName
#Write-Host $_.SamAccountName
if ($usrexist -eq $null)
{
Write-Host "Username" $_.CN "not exists " $_.SamAccountName.Length
if ($_.SamAccountName.Length -gt 20 ) { $_.SamAccountName=$_.SamAccountName.Substring(0,20)
Write-Host $_.SamAccountName}
if (!$_.emailaddress){ $_.emailaddress=$_.SamAccountName+'@domen.ru'}
# write-host -Name $_.CN -DisplayName $_.DisplayName -City $_.City -Department $_.Department -Surname $_.Surname -GivenName $_.Givenname -SamAccountName 
Читать далее

Как установить winlogbeat для elk kibana на windows server

Задача собрать логи с windows server с помощью winlogbeat. Качаем актуальную версию winlogbeat https://artifacts.elastic.co/downloads/beats/winlogbeat/winlogbeat-7.9.1-windows-x86_64.zip 

Распаковываем на сервер. переименовываем в winlogbeat. Копируем в C:\Program Files .

После этого запускаем установку

cd 'C:\Program Files\Winlogbeat'
.\install-service-winlogbeat.ps1

Проверяем что служба установилась Как установить winlogbeat для elk kibana на windows server

После этого правим конфиг

У меня так

winlogbeat.event_logs:
  - name: Application
    ignore_older: 72h

  - name: System

  - name: Security
    processors:
      - script:
          lang: javascript
          id: security
          file: ${path.home}/module/security/config/winlogbeat-security.js

  - name: Microsoft-Windows-Sysmon/Operational
    processors:
      - script:
          lang: javascript
          id: sysmon
          file: ${path.home}/module/sysmon/config/winlogbeat-sysmon.js

  - name: Windows PowerShell
    event_id: 400, 403, 600, 800
    processors:
      - script:
          lang: javascript
          id: powershell
          file: ${path.home}/module/powershell/config/winlogbeat-powershell.js

  - name: Microsoft-Windows-PowerShell/Operational
    event_id: 4103, 
Читать далее

Как с помощью 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 посмотреть event log gpo журнал выполнение групповых политик на разных пк.

Задача выяснить сколько выполняются групповые политики на разных пк в сети.  Applications and Services Logs –> Microsoft -> Windows -> Applications and Services Logs -> Group Policy -> Operational.

$S = Get-Content C:\tmp2.txt
ForEach ($Server in $S) {

get-WinEvent -LogName "Microsoft-Windows-GroupPolicy/Operational" -ComputerName $Server | Select-Object TimeCreated,Message,Id, @{name='ComputerName'; expression={$Server}} | Where-Object {$_.ID -like ‘500*’} |  Format-Table -AutoSize

}

c:\temp2 список пк с новой строки.

Для анализа времени применения политик будут полезны следующие EventID:

  • События 4016 и 5016 показывают время начала и завышения процесса обработки расширений применения GPO, причем в последнем указано общую длительность обработки расширения.Включен фильтр журнала Group Policy ->
Читать далее

Как установить System Center Operations Manager (SCOM) 2019

Поскольку это чистый, ванильный сервер Windows 2019, нам нужно будет установить все необходимые компоненты веб-консоли вместе с элементами управления Report Viewer (возможно, SQL CLR-типы тоже …).

  • Чтобы узнать о предварительных требованиях к Report Viewer, перейдите ЗДЕСЬ .
  • Вот команда PowerShell, которую я выполнил для установки необходимых функций / ролей IIS:
Import-Module ServerManager
Add-WindowsFeature Web-Server, Web-WebServer, Web-Common-Http, Web-Default-Doc, Web-Dir-Browsing, Web-Http-Errors, Web-Static-Content, Web-Health, Web-Http-Logging, Web-Log-Libraries, Web-Request-Monitor, Web-Performance, Web-Stat-Compression, Web-Security, Web-Filtering, Web-Windows-Auth, Web-App-Dev, Web-Net-Ext45, Web-Asp-Net45, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Mgmt-Tools, Web-Mgmt-Console, Web-Mgmt-Compat, Web-Metabase, NET-Framework-45-Features, NET-Framework-45-Core, NET-Framework-45-ASPNET, NET-WCF-Services45, NET-WCF-HTTP-Activation45, NET-WCF-TCP-PortSharing45, WAS, WAS-Process-Model, WAS-Config-APIs -restart

Как только сервер снова будет в сети, вам нужно будет зарегистрировать ASP.Net.… Читать далее

Как обновить драйвер QLogic Fibre Channel на esxi 6.7. PSOD пурпурный экран смерти.

У нас была проблема что чистый esxi 6.7 валился в psod пурпурный экран смерти на blade сервере ProLiant BL460c Gen9. В ошибке писал usb устройство но usb не было вставлено. После изучения дампа нашел запись про Fibre Channel.

Сначала нужно определить какой драйвер используется у нас и какой адаптер.

Подключился по ssh на esxi хост. Перед эти включил ssh

Как обновить драйвер QLogic Fibre Channel на esxi 6.7. PSOD пурпурный экран смерти.

После этого определил модель Fibre Channel

esxcfg-scsidevs -a

Как обновить драйвер QLogic Fibre Channel на esxi 6.7. PSOD пурпурный экран смерти.

После этого определил модель и версию драйвера

vmkload_mod -s qlnativefc |grep Version

Как обновить драйвер QLogic Fibre Channel на esxi 6.7. PSOD пурпурный экран смерти.

Скачал драйвер с сайта.

https://www.vmware.com/resources/compatibility/detail.php?deviceCategory=io&productid=20791

Закинул драйвер на esxi. И установил его

esxcli software vib update -d VMW-ESX-6.7.0-qlnativefc-3.1.31.0-offline_bundle-15336880.zip

После установки ребут … Читать далее