Перейти к содержимому

Как в zabbix agent добавить новую строчку настройки по серверам ad

Проблема в zabbix agent 2 что скрипты перестали выполняться. Ошибка Unknown metric system run.

Надо в конфиг добавить строчку

AllowKey=system.run[*]

Но так как серверов много еще и службу надо перезапустить. То сделал через powershell

Import-Module ActiveDirectory

$servers = Get-ADComputer -Filter {OperatingSystem -like "*Server*" | Select-Object -ExpandProperty Name

foreach ($server in $servers) {
    $serviceName = "Zabbix Agent 2"

    $configPath = "\\$server\C$\Program Files\Zabbix Agent 2\zabbix_agent2.conf"  # Укажите путь к конфигурационному файлу агента
    $newLine = "AllowKey=system.run[*]"

    $configContent = Get-Content -Path $configPath
    $configContent += $newLine

    $configContent | Set-Content -Path $configPath

    Invoke-Command -ComputerName $server -ScriptBlock {
        Param($serviceName)
        Restart-Service -Name $serviceName
    } -ArgumentList $serviceName
}

 

Как собрать информацию из 1с кластера и записатть в таблицу 1с

Скрипт для запуска в шедулер .

$Server = $env:computername
$Start = Get-Date
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("cp866")
$emailFrom = "monitoring@tech.adminbd.ru"
$smtpServer = "adminbd.ru"
$email1 = "konstantin@adminbd.ru"
$debug=0
$force=1
 
 
$SubjRPHost = "$Server : RPHost не запущен."
$SubjRASExist = "$Server : Служба RAS не существовала. Устанавлена."
$SubjRASNotRun = "$Server : Служба RAS была не запущена. Запущена."
$SubjRASVersion = "$Server : Версия RAS не совподает с версией запущенного RPHost. Служба переустанавена."
  
function SendEmail ($subj=$null, $mailbody=" " ) {
    Send-MailMessage -SmtpServer $smtpServer -To $email1 -From $emailFrom -Subject $subj -body $mailbody  -Encoding UTF8
}
  
$RPHostPath = Get-Process -Name rphost | select ID, FileVersion, Path, WorkingSet64 | sort 
Читать далее

Как мониторить количество пользователей 1c web клиент.

Задача мониторить сколько пользователей заходит через web клиент для выявление сколько лицензий нужно покупать.

Буду мониторить через rac.exe + zabbix

Пишем скрипт

$RPHostPath = Get-Process -Name rphost | select ID, FileVersion, Path, WorkingSet64 | sort WorkingSet64 | select -expand path -first 1
$Actual1CFolder = Split-Path $RPHostPath
Set-Location $Actual1CFolder
$cluster = .\rac.exe cluster list | % {if ($_ -match 'cluster'){$_ -replace "^.*?: "}}
$sessionBase = @()
$racSessions = .\rac.exe session --cluster=$cluster list
Foreach($racSession in $racSessions)
{    if ($racSession -match "app-id ")
    {
        if ($debug -eq 1)
        {
            $racSession -replace "^.*?: "
        }
        $Session = New-Object -TypeName PSObject
        $session | Add-Member -Type 
Читать далее

Как поменять на hp ilo 3 сеть через windows 2008 если не открывается HP Lights-Out Online Configuration Utility

В windows 2008 ошибка

Как поменять на hp ilo 3 сеть через windows 2008 если не открывается HP Lights-Out Online Configuration Utility

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Xml.XmlException: There are multiple root elements. Line 2, position 2.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
   at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.Load(String filename)
   at hponcfg_gui.LOM.updateLOM(CreateRIBCL writeXML, MessageDialog msgDialog)
   at hponcfg_gui.SummaryForm.updateFrame(LOM mp)
   at hponcfg_gui.SummaryForm.Form2_Load(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    
Читать далее

Как сделать скрипт для Удаление не активных ПК более 60 дней

Скрипт удаляет не активные ПК более 60

<# .SYNOPSIS
    Удаление не активных ПК более 60
.DESCRIPTION
    Скрипт удаляет не активные ПК более 60
#>
#╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗#
$Host.UI.RawUI.WindowTitle = "Удаление не активных ПК более 60"
#╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝#
Import-Module ActiveDirectory
[system.gc]::Collect()
$ErrorActionPreference="Continue"
#------ Logging section ------#
$fileLocation = (gi $MyInvocation.InvocationName) | ForEach-Object {
    $fileDirectory = "$($_.DirectoryName)\$($_.BaseName)";
    "$fileDirectory\$($_.BaseName)_$('{0:yyyy-MM-dd}'-f(date))";
    if (!(Test-Path "$fileDirectory")) {
        ni "$fileDirectory" -ItemType "directory" | Out-Null
    }
}
#------ Variables ------#
$Result = @()
$OrgUnit = "OU=Locations,DC=adminbd.ru,DC=ru"
$td1 = (Get-Date).adddays(-60) # Шаг 7 дней
$td1=$td1.ToFileTime()
 
#------ Workspace ------#
 
#Get-ADComputer -SearchBase $OrgUnit -Filter {lastLogonTimeStamp -le $td1 -and Enabled -eq "True"} -Properties 'lastLogonTimeStamp','Name'| Select-Object 'Name',@{n='lastLogonTimeStamp';e={[DateTime]::FromFileTime($_.lastLogonTimeStamp)}} 
Читать далее

Как Убрать переключатель PasswordNeverExpired

Скрипт работает по OU=External, убирает переключатель “пароль не когда не истекает”, меняет дату создания пароля на текушую.

<# .SYNOPSIS
    Убрать переключатель PasswordNeverExpired
.DESCRIPTION
    Скрипт работает по OU=External, убирает переключатель "пароль не когда не истекает", меняет дату создания пароля на текушую.
#>
#╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗#
$Host.UI.RawUI.WindowTitle = "Убрать переключатель PasswordNeverExpired"
#╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝#
[system.gc]::Collect()
Import-Module ActiveDirectory
 
#------ Logging section ------#
 
$fileLocation = (gi $MyInvocation.InvocationName) | ForEach-Object {
    $fileDirectory = "$($_.DirectoryName)\$($_.BaseName)";
    "$fileDirectory\$($_.BaseName)_$('{0:yyyy-MM-dd}'-f(date))";
    if (!(Test-Path "$fileDirectory")) {
        ni "$fileDirectory" -ItemType "directory" | Out-Null
    }
}
 
#------ Variables ------#
$UserAD = ''
$Result = @()
$tAD = 'pwdLastSet','PasswordNeverExpires','SamAccountName','CanonicalName'
$OrgUnit = "OU=External,OU=Locations,DC=adminbd.ru,DC=ru"
$UserAD = Get-ADUser -SearchBase $OrgUnit -Filter {PasswordNeverExpires 
Читать далее

Как сделать скрипт для отключения учетных записей пользователей с просроченными паролями.

Отключение учетных записей пользователей с просроченными паролями (пароль не менялся более 100 дней).

<# .SYNOPSIS
    Отключение учетных записей пользователей с просроченными паролями
.DESCRIPTION
    Отключение учетных записей пользователей с просроченными паролями (пароль не менялся более 100 дней).
#>
#╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗#
$Host.UI.RawUI.WindowTitle = "Отключение учетных записей пользователей с просроченными паролями"
#╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝#
[system.gc]::Collect()
#------ Logging section ------#
$fileLocation = (gi $MyInvocation.InvocationName) | ForEach-Object {
    $fileDirectory = "$($_.DirectoryName)\$($_.BaseName)";
    "$fileDirectory\$($_.BaseName)_$('{0:yyyy-MM-dd}'-f(date))";
    if (!(Test-Path "$fileDirectory")) {
        ni "$fileDirectory" -ItemType "directory" | Out-Null
    }
}
$Domain     = "adminbd.ru.ru"
$Sender     = "helpdesk@adminbd.ru.ru"
$smtpserver = "mail.adminbd.ru.ru"
#------ Variables ------#
Import-Module ActiveDirectory
$tAD = 'pwdLastSet','Name','whenCreated','PasswordNeverExpires','PasswordExpired','SamAccountName','mail','lastLogonTimestamp','DistinguishedName','Description','CanonicalName','extensionAttribute15'
$tAD2 = 'whenCreated','Name','SamAccountName','mail',@{n='pwdLastSet';e={[DateTime]::FromFileTime($_.pwdLastSet)}},'PasswordNeverExpires','PasswordExpired',@{n='lastLogonTimestamp';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},'DistinguishedName','Description','CanonicalName','extensionAttribute15'
$OrgUnit = "OU=Locations,DC=adminbd.ru,DC=ru"
$ExceptinOU 
Читать далее

Как сделать автоматическую смену пароля у пользователя exchange и отправка нового пароля на email.

Авто смена пароля пользователей AD OU=External

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

<# .SYNOPSIS
    Авто смена пароля пользователей AD OU=External
.DESCRIPTION
    Скрипт проверяет дату окончания действия пароля пользователей и меняет его в день окончания. Новый пароль отправляется на почту в поле mail.
#>
#╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗#
$Host.UI.RawUI.WindowTitle = "Авто смена пароля пользователей AD"
#╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝#
 
Import-Module ActiveDirectory
 
#------ Logging section ------#
 
$dp0 = ($MyInvocation.MyCommand.Path | Split-Path -Parent)
$fileLocation = (gi $MyInvocation.InvocationName) | ForEach-Object {
    $fileDirectory = "$($_.DirectoryName)\$($_.BaseName)";
    "$fileDirectory\$($_.BaseName)_$('{0:yyyy-MM-dd}'-f(date))";
    if (!(Test-Path "$fileDirectory")) {
        ni "$fileDirectory" -ItemType "directory" | Out-Null
    }
}
$watch = [System.Diagnostics.Stopwatch]::StartNew()
$watch.Start()
Start-Transcript "${fileLocation}.log" -append
 
#------ Initialization ------#
 
. $dp0\functions\Generate-Password.ps1
Читать далее

Как создать переадресацию с одного ящика на другой в exchange. Переезд в другой домен.

Задача. Есть два домена. Из одного домена люди перешли в другой. Нужно настроить переадресацию писем из одного домена в другой.

Скрипт вытягивает пользователей из домена adminbd1 находит соответствие в adminbd2 и создаёт правило пересылки.

<# .SYNOPSIS
    Создание переадресации писем сотрудников adminbd1 с adminbd2 на adminbd1
.DESCRIPTION
    Скрипт вытягивает пользователей из домена adminbd1 находит соответствие в adminbd2 и создаёт правило пересылки.
#>
#╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗#
$Host.UI.RawUI.WindowTitle = "Создание переадресации писем с adminbd2 на adminbd1"
#╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝#
[system.gc]::Collect()
$ErrorActionPreference="Continue"
#------ Logging section ------#
 
#$dp0 = ($MyInvocation.MyCommand.Path | Split-Path -Parent)
$fileLocation = (gi $MyInvocation.InvocationName) | ForEach-Object {
    $fileDirectory = "$($_.DirectoryName)\$($_.BaseName)";
    "$fileDirectory\$($_.BaseName)_$('{0:yyyy-MM-dd}'-f(date))";
    if (!(Test-Path "$fileDirectory")) {
        ni 
Читать далее

Как создать контакты в exchange из другого домена.

Скрипт вытягивает пользователей из домена adminbd.ru и создаёт их контакты в домене adminbd2.ru . Так же прячет одноимённую почту домена adminbd2.ru

При создание файла с данными для входа $UserCredential = Import-CliXML -Path ‘D:\Programs\Scripts\Import_contact-arn_to_vx\mycredentials_adminbd.xml’ важно генерировать файл от того пользователя от которого будет производится запуск крипта.

<# .SYNOPSIS
    Заведение контактов - adminbd.ru to adminbd2.ru
.DESCRIPTION
    Скрипт вытягивает пользователей из домена adminbd.ru и создаёт их контакты в домене adminbd2.ru. Так же прячет одноиённую почту домена adminbd2.ru.
#>
#╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗#
$Host.UI.RawUI.WindowTitle = "Заведение контактов - adminbd.ru to adminbd2.ru"
#╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝#
[system.gc]::Collect()
$ErrorActionPreference="Continue"
#------ Logging section ------#
 
#$dp0 = ($MyInvocation.MyCommand.Path | Split-Path -Parent)
$fileLocation = (gi 
Читать далее