Авторизация



Теги сайта



0х0000007b 1c access control list acl activation active directory ad roles add route adexplorer apache authentication to zabbix bare metal recovery bg zsh bicycle books bruteforce ccna centos centos packet certificate change net adapter name chap chkrootkit chmod cinnamon cisco class clipboard cmd configuring cpu cores cron crontab csc custom object cut cvsup cvsup-without-gui db dekorator dev null 2 1 dhcp dhcp reservation disable ipv6 diskpart dism django dns domain naming master domain roles download download powershell enable routing on windows enabled encapsulation english english language esx eventlog fail2ban fastest_cvsup fedora fg zsh field formatdatabase freebsd fsmo get-aduser hardware https hyper-v idioms iis inheritance iperf iptables iscsi jobs kernel panic ldap ldap аутентификация zabbix limit lingualeo linux mcitp mcsa memory check method microsoft mod_ssl mount mssql mysql mysql user password netcache network network config network load balance cluster network scripts nginx nlb num lock numlock oop openssl pap partition pdc permissions pfx php pipeline pkg_version polymorphism ports upgrade portupgrade posix powershell ppp puppet pwdlastset python rdp regedit registry remote enable restrictions reverse proxy rhel rid rope jumping bridge мост прыжок высота route add route freebsd routing protocol rpm sc sc sdset sc sdshow schema scope script output secure web security service permissions services session set dns servers set ip address sftp shell script show variables snmp sound scheme sounds speed ssh ssl standard-supfile subinacl supfile switch switchport sync syncronization task sсheduler tempdb tripplite monitoring tweaks unix user must change password at next logon utf8 vim vlan vmware w32tm web windows windows 2003 r2 windows 2008 r2 windows firewall windows server windows server 2012 windows server backup windows service permissions windows пингалка winre wsus xargs xrdp yum zabbix zabbix external check zabbix ldap authentication zsh автоматическое обновление портов freebsd автономные файлы активация английский язык база данных безопасность active directory буфер вело велосипед видео включение роутинга в windows внешняя проверка zabbix вредоносное программное обеспечение posix задание двумерного массива звуки звуковая схема идиомы иероглифы киев кодировка командная строка конфигурация сети маршрутизация маршруты в freebsd маршруты в redhat linux область обновление портов ограничения windows основные команды пакеты centos перевод перенос планировщик задач покатушки полет над днепром проблемы кодировки протокол путь развития в it разрешения служб windows регистрируем cmd скриптом недоступность хоста реестр резервирование ip скриптом роли домена русские символы синхронизация скачать скачать powershell скачать книгу скорость сети списки контроля доступа тарзанка твики фоновые процессы цикл mssql

Главная страница Microsoft POWERSHELL
Поиск событий в журналах EventLog на DC Печать

В данных примерах условлено, что выполнение идет с конкретного контроллера домена. Если выполнять удаленно, либо сразу на нескольких DC, можно указать аргумент -ComputerName dc1,dc2,dc3

 

PS C:\> Get-EventLog -LogName security -InstanceId 4740 | ft -Property index,TimeGenerated,Message -AutoSize -Wrap # Найдет в логе события блокировки учетных записей в домене

PS C:\> Get-EventLog -LogName security -InstanceId 4625 | ft -Property index,TimeGenerated,Message -AutoSize -Wrap # Полезное дополнение для предыдущего командлета. Найдет в логе ошибки входа, которые предшествуют блокировке учетной записи. В сообщении будет IP адрес источника

PS C:\> Get-EventLog -LogName security -After "05/02/2015" | where { ($_.message -match "Comp1") -or ($_.message -match "User1") } | ft -Property index,TimeGenerated,Message -AutoSize -Wrap # Найдет в логе Security все события после указанной даты, относящиеся к рабочей станции Comp1, или к учетной записи User1

 

Еще интересный пример по парсингу эвентлогов

image_EventLog_SVN-Parsing.png

Нужно выбрать поля User и PROPFIND из тела события

 
[array]$svnUsers = @()

Get-EventLog -LogName 'VisualSVNServerActivity' -After '06/04/2018' | ?{$_.Message -like 'PROPFIND*'} | %{$svnUsers += [pscustomobject]@{UserName=((([regex]::Match($_.Message,'(?<=User:\s).+')).Value) -replace "`t|`n|`r",'');Repo=(([regex]::Match($_.Message,'(?<=PROPFIND\s)/.+?/.+?/')).Value)}}
 
$svnUsers | Select-Object -Unique -Property UserName,Repo | Export-Csv -Path ('{0}\Documents\svnUsers.csv' -f $env:USERPROFILE) -Force
 
Скрипт PowerShell для замены на серверах DHCP параметра DNS в Scope Печать

Скрипт Replace-DNSAddressOnDHCPScopes позволяющий поменять на одном или нескольких серверах DHCP параметр "006 DNS Servers".

Допустим у нас есть два сервера динамического распределения узлов DHCP. На каждом из этих серверов порядка сотни областей Scope. Каждая область Scope содержит параметры DNS серверов в своем определенном порядке, которые будут выдаваться клиентам.
Понадобилось нам перенести один или все наши сервера DNS с изменением их IP-адресов. И чтобы затем не пришлось вручную изменять на каждом DHCP сервере, в каждой области Scope, несколько параметров DNS, я предлагаю воспользоваться моим скриптом.

Как им пользоваться:

PS C:\> Get-Help Replace-DNSAddressOnDHCPScopes -Examples

 

Function Global:Replace-DNSAddressOnDHCPScopes ([parameter(Position=0, Mandatory=$true, ValueFromPipeline=$false)][array]$DHCPservers,
                                                [parameter(Mandatory=$true)][string]$DNSserverWhichReplace,
                                                [parameter(Mandatory=$true)][string]$DNSserverReplaceOn)

{

<#
    .SYNOPSIS
    Replace DNS server parameter in each Scope of selected DHCP servers.

    .DESCRIPTION
    This function replaces on the selected DHCP servers a specified DNS server parameter to the new one.

    .PARAMETER DHCPservers
    Specify your DHCP servers.

    .PARAMETER DNSserverWhichReplace
    Specify old DNS server, which will be replaced.

    .PARAMETER DNSserverReplaceOn
    Specify new DNS server.

    .EXAMPLE
    PS C:\> Replace-DNSAddressOnDHCPScopes -DHCPservers dc1.domain.local,dc2.domain.local -DNSserverWhichReplace 192.168.1.2 -DNSserverReplaceOn 10.0.1.2

    .EXAMPLE
    PS C:\> Replace-DNSAddressOnDHCPScopes -DHCPservers dc1.domain.local,dc2.domain.local -DNSserverWhichReplace 192.168.1.2 -DNSserverReplaceOn 10.0.1.2 -Verbose
#>

    Import-Module -Name DhcpServer -ErrorAction Stop

    $IPregex='(?<Address>((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))'

    if ($DNSserverWhichReplace -notmatch $IPregex)
    {
        Write-Error -Message "Old DNS server address, which would be replaced, has been specified incorrectly" -RecommendedAction "Type the valid IP address of DNS server"
        Break
    }

    if ($DNSserverReplaceOn -notmatch $IPregex)
    {
        Write-Error -Message "New DNS server address, which would replace the old one, has been specified incorrectly" -RecommendedAction "Type the valid IP address of DNS server"
        Break
    }


    $Error.Clear | Out-Null
    Write-Host
    Write-Host
    Write-Host 'Original and comments: http://vam.in.ua/index.php/it/25-ms-powershell/240-powershell-replace-dns-on-dhcpscopes.html' -ForegroundColor DarkCyan
    Write-Host 'Feedback: http://vam.in.ua/index.php/contacts/2-admins/1-aleksey.html' -ForegroundColor DarkCyan
    Write-Host

    $CurrentDHCPserver = 0

    foreach ($DHCPserver in $DHCPservers)
    {
        $CurrentDHCPserver += 1
        $TotalDHCPservers = $DHCPservers.Count

        $CountChangedScopes = 0
        $CountChangedDNSservers = 0

        [array]$DHCPScopes = ''
        $DHCPScopes = (Get-DHCPserverv4Scope -ComputerName $DHCPserver).ScopeId.IPAddressToString
        if (($DHCPScopes -eq '') -or ($DHCPserver -eq $null))
        {
            Continue
        }

        [string]$ProgressActivity = "Processing on DHCP server $DHCPserver ($CurrentDHCPserver of $TotalDHCPservers specified)"
        [int32]$CurrentScope = 0

        foreach ($Scope in $DHCPScopes)
        {
            $CurrentScope += 1
            [int32]$ProgressPercent = $CurrentScope * 100 / ($DHCPScopes.Count)
            Write-Progress -Activity $ProgressActivity -Status "Please wait..." -PercentComplete $ProgressPercent

            $OptionDnsServersOfScope = (Get-DHCPserverv4OptionValue -ComputerName $DHCPserver -OptionId 6 -ScopeId $Scope).Value # Получаем текущие записи DNS серверов 

            $SetOptionDnsServersOfScope = @() # Объявляем массив для нового набора DNS серверов

            $NeedReplace = $false

            foreach ($DNSServerOption in $OptionDnsServersOfScope)
            {
                if ($DNSServerOption -eq $DNSserverWhichReplace) 
                {
                    $SetOptionDnsServersOfScope += $DNSserverReplaceOn
                    $NeedReplace = $true
                    $CountChangedDNSservers += 1
                    Write-Verbose "Change was applied in Scope $Scope at server $DHCPserver"
                }
                else
                {
                    $SetOptionDnsServersOfScope += $DNSServerOption
                }
            }

            if ($NeedReplace -eq $true) 
            {
                Set-DHCPserverv4OptionValue -ComputerName $DHCPserver -DnsServer $SetOptionDnsServersOfScope -ScopeId $Scope
                $CountChangedScopes += 1
            }
        }
    
    Write-Host "There were $CountChangedDNSservers changes in $CountChangedScopes Scopes on Server $DHCPserver" -ForegroundColor DarkGray
    }

    Write-Host 
    Write-Host "Everything was done!" -ForegroundColor DarkGray
}
 
Поиск заблокированных учеток в Active Directory с помощью PowerShell Печать
 
PS D:\> Search-ADAccount -LockedOut # Найти все заблокированные учетные записи Active Directory
PS D:\> Search-ADAccount -AccountDisabled # Найти все отключенные учетные записи Active Directory
PS D:\> Search-ADAccount -PasswordExpired # Найти все учетные записи Active Directory, срок действия паролей которых истек
PS D:\> Search-ADAccount -PasswordNeverExpires # Найти все учетные записи Active Directory, пароли которых не нужно менять периодически
PS D:\> Search-ADAccount -AccountExpired # Найти все учетные записи Active Directory, срок действия которых истек
PS D:\> Search-ADAccount -AccountExpiring -TimeSpan 10 # Найти все учетные записи Active Directory, срок действия которых истечет в течение 10 дней
PS D:\> Search-ADAccount -AccountInactive -TimeSpan 10 # Найти все учетные записи Active Directory, которые не логинились на протяжении 10 дней
PS D:\> Search-ADAccount -ComputersOnly # Искать среди компьютеров Active Directory
 
<< Первая < Предыдущая 1 2 3 4 5 6 7 8 9 10 Следующая > Последняя >>

Страница 4 из 20
Главная страница Microsoft POWERSHELL