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

Как сделать автоматическую очистку почты exchange при заполнении больше 90 процентов ящика.

Задача чистить почту при заполнении почты у пользователей больше 90%. Удаляются самые старые письма.

<# .SYNOPSIS
    Очистка почты операторов
.DESCRIPTION
    Скрипт проверяет все ящики в базах Op01/02, при заполнении почты более чем на 90% от квоты удаляет самые старые письма в папке Входящие и её подкаталогах.
    Удаление идёт до тех пор пока размер заполнености ящика не станет равен 90%.
#>
#╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗#
$Host.UI.RawUI.WindowTitle = "Очистка почты операторов"
#╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝#
 
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
$watch = [System.Diagnostics.Stopwatch]::StartNew()
$watch.Start()
[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
    }
Читать далее

Как завести пользователь в exchange через powershell.

Задача у пользователей была почта zimbra и прописана в ad. Надо всех пользователей завести в exchange.

<# .SYNOPSIS
    Заведение почты операторов adminbd
.DESCRIPTION
    Скрипт ищет пользователей с почтой corp.adminbd.ru и заводит почту в adminbd.ru. Исключение OU=External.
#>
#╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗#
$Host.UI.RawUI.WindowTitle = "Заведение почты операторов adminbd"
#╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝#
[system.gc]::Collect()
 
#------ Variables ------#
 
$BaseOU = "OU=Locations,DC=adminbd,DC=ru"
$ExceptinOU = "*External*"
$MailCorp = Get-ADUser -SearchBase $BaseOU -filter * -properties 'mail','UserPrincipalName','SamAccountName' | Where-Object {$_.mail -Match ".*@corp.adminbd.ru"} | Where-Object {$_.CanonicalName -notlike $ExceptinOU}
#$MailCorp = Get-ADUser -SearchBase $BaseOU -filter * -properties 'mail','UserPrincipalName','SamAccountName' | Where-Object {$_.mail -like $NULL} | Where-Object {$_.CanonicalName -notlike $ExceptinOU}
 
  
 #------ Execution ------#
$UserCredential = Get-Credential
#$UserCredential 
Читать далее

Как сбросить все зависшие или в состоянии disconnect сессии в rpd rds ferma со всех хостов разом.

Задача отключить всех зависших или отключённых пользователей от терминальной фермы со всех (rdsh host) хостов.

 

$dtstamp = Get-Date -Format "yyyy-MM-dd"
$RDSCollection = "Farm"
$activbrocer = if (Get-RDConnectionBrokerHighAvailability -ConnectionBroker  "HWRDCB01.adminbd.ru")
{Get-RDConnectionBrokerHighAvailability -ConnectionBroker  "HWRDCB01.adminbd.ru"}
else 
{Get-RDConnectionBrokerHighAvailability -ConnectionBroker  "HWRDCB02.adminbd.ru"}



$server = Get-RDSessionHost -CollectionName $RDSCollection -ConnectionBroker $activbrocer.ActiveManagementServer 
$server=$server.SessionHost

foreach($servers in $server) {



$ts = qwinsta /server:$servers
    $td = ($ts | where { ($_ -like "*Disc*" -or $_ -like "*Диск*" -or $_ -like "*ЁбЄ*" ) -and $_ -notlike "*services*"})
    $tdselect = $td # Для отладки или внесения в лог: Login Id State
        $td = $td -ireplace ("[a-z][0-9]","") # убираем логины содержащие цифры
    $td = 
Читать далее

Как сделать что бы VM в veeam добавлялись в задание автоматически. Сделал TAG для vm vmware Powercli.

Задача. Есть много машин vm на vSphere. Нужно что бы машины vm сами попадали в задание по бэкапу. Так как 3 разных домена будем делать три задания и три разных учетные записи.  Плюс еще отдельным заданием linux машины.

Буду назначать на VM разные tag  с помощью powercli . Так же должна быть возможность исключить из бэкапа vm через vSphere

В vSphere создаём категорию Backup

Как сделать что бы VM в veeam добавлялись в задание автоматически. Сделал TAG для vm vmware Powercli.

в ней TAgs

Как сделать что бы VM в veeam добавлялись в задание автоматически. Сделал TAG для vm vmware Powercli.

После этого написал скрипт для назначение tags виртуалкам по критериям.

$vcenter = "vcsa01"
Connect-VIServer $vcenter
$Datacenter_name = "Moscow*"
 
$FileContent= `
Get-Datacenter -Name $Datacenter_name | Get-Cluster | Where-Object {$_.Name -notlike 'L05' } | Get-VM   
Читать далее

Как исправить ошибку The target principal name is incorrect. Cannot generate SSPI context.

Ошибка

TITLE: Connect to Server
——————————

Cannot connect to DB01.

——————————
ADDITIONAL INFORMATION:

The target principal name is incorrect. Cannot generate SSPI context. (Microsoft SQL Server, Error: 0)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=0&LinkId=20476

——————————
BUTTONS:

OK
——————————

Исправляется с помощью  https://www.microsoft.com/en-us/download/details.aspx?id=39046

KerberosX64MSI (2)

Запускаем “C:\Program Files\Microsoft\Kerberos Configuration Manager for SQL Server\KerberosConfigMgr.exe”

Как исправить ошибку The target principal name is incorrect. Cannot generate SSPI context.

Как исправить ошибку The target principal name is incorrect. Cannot generate SSPI context.

Как сделать отчет vm с тегами(tags) и записями блокнота(Note) с помощью Vmware powercli в одну строку.

Задача выгрузить vm с тегами и записями в csv

$vcenter = "msk-vc.bd.ru"

Connect-VIServer $vcenter 

$Locations = ('Data')

$VmInfo = ForEach ($Datacenter in (Get-Datacenter -Name $Locations)) {

     ForEach ($VM in ($Datacenter | Get-VM | where {$_.powerstate -match "on"} | Get-VMGuest)) {

        $vm | Select @{N="VM_NAME#";E={$vm.VM.name}},

           # @{N="VM_CPU_Core#";E={$VM.VM.NumCPU}},

           # @{N="VM_IP#";E={$vm.IPAddress}},

            @{N="VM_OS";E={$vm.OSFullName}},

            @{N="VM_DC";E={$Datacenter.name}},

            @{N='VM_Cluster';E={(Get-Cluster -VM $VM.VM).Name}},

            @{N="VM_NOTES";E={$VM.VM.Notes.Replace("`n",'/')}},

            @{N='VM_Tags';E={(Get-TagAssignment -Entity $VM.VM).Tag.Name -join '|'}}

     }

}

$VmInfo | Export-Csv -Path "c:\tmp\testnotes.csv" -NoTypeInformation -UseCulture -Encoding "UTF8"

Как сделать отчет vm с тегами(tags) и записями блокнота(Note) с помощью Vmware powercli в одну строку.

Чуть другой скрипт

# Connect to the vCenter
#Connect-VIServer vCenter1 -user user1 -Password "password"
Connect-VIServer msk-vcs.bd.ru
 
 $Locations = ('DataS')
 
#Create vmInfo object
$vmInfo = @()
$vmInfoTemp = New-Object "PSCustomObject"
$vmInfoTemp 
Читать далее

Как заставить Cisco IP Communicator подхватывать настройки пользователя в vdi horizon Instant Clone not run as administrator.

Суть проблемы в том что Cisco IP Communicator не сохраняет настройки Device Name у пользователя при работе в vdi horizon Instant Clone.

В horizon Instant Clone каждый раз машина пересоздается и у нею каждый раз генериться mac .

C технологией horizon Instant Clone настроено еще fslogix перемещаемый профиль.

Суть в том что настройки Device Name Cisco IP Communicator меняются в ветки реестра Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Cisco Systems, Inc.

Но при этом у пользователя в ветке реестра HKCU:\Software\Cisco Systems, Inc.\Communicator остается информация о Device Name.

Дабы исправить данную проблему сделал скрипт на powershell :

$value = Get-ItemProperty  -Path "HKCU:\Software\Cisco Systems, Inc.\Communicator" -name HostName
 
Set-ItemProperty 
Читать далее

Как сделать что бы настройки cisco ip communicator мог править сам пользователь. Без run as administrator

Задача состоит в том что бы пользователь сам мог настраивать cisco ip communicator без прав администратора.

Как сделать что бы настройки cisco ip communicator мог править сам пользователь. Без run as administrator

Что бы Cisco IP Communicator не просил админские права для редактирования Device Name надо дать права на ветку реестра Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Cisco Systems, Inc.

Как сделать что бы настройки cisco ip communicator мог править сам пользователь. Без run as administrator

Рег файл для настроек

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Cisco Systems, Inc.\Communicator]
"HostName"="SEP00987654321"
"UseSetVolume"=dword:00000001
"EnableHttpDownload"=dword:00000001
"UseDefaultDevices"=dword:00000000
"AlternateTftp"=dword:00000001
"TftpServer1"=dword:0b2e10ac
"TftpServer2"=dword:0c2e10ac
 
 
[HKEY_CURRENT_USER\Software\Cisco Systems, Inc.\Communicator]
"TftpServer1"=dword:0b2e10ac
"TftpServer2"=dword:0c2e10ac
"HostName"="SEP00987654321"

Создал powershrll скрипт для редактирование Device Name и tftp сервера

Add-Type -AssemblyName Microsoft.VisualBasic
$hostname = [Microsoft.VisualBasic.Interaction]::InputBox('Username:', 'User', "Enter cisco device name here")
 
 
#$hostname = Read-Host 'cisco device name?' -AsSecureString
 
 
Set-ItemProperty -Path 'HKLM:\SOFTWARE\WOW6432Node\Cisco Systems, Inc.\Communicator' -Name HostName -Value 
Читать далее

Как сделать автоматизированную подготовку полного клона для VMware Horizon. VMware Horizon Automated Full Clone Provisioning

1. Подготовьте золотой образ

  1. Создайте чистый образ Gold в vCenter, который управляет кластером ресурсов VDI.
  2. Установите VMware Tools в свой образ
  3. Установите агент Horizon в свой образ
  4. Перезагрузите образ Gold при появлении запроса
  5. Убедитесь, что у вас есть локальная учетная запись администратора на образе
  6. Запустите VMware Optimization Tool на золотом образе
    • Убедитесь, что «Microsoft OneDrive» не выбран (необязательно)
    • Убедитесь, что флажок «Удалить сторонние приложения» не выбран (необязательно)
  7. Создайте папку на образе Gold (C:\Temp)

Обратите внимание : если вам нужно присоединить образ Gold к домену для распространения привилегий пользователей, рекомендуется разместить образ Gold в изолированной организационной единице, чтобы у вас не … Читать далее

Как в 1с опубликовать apache web приложение на разные имена.

Задача опубликовать web 1c на разные имена. тоесть должно быть buh.adminbd.ru, zup.adminbd.ru

Правим файл C:\Apache24\conf\httpd.conf

C:\Apache24\conf\httpd.conf

<VirtualHost sed.adminbd.ru:443>
    DocumentRoot  "C:/Apache24/htdocs/DocManagement/"
    ServerName sed.adminbd.ru:443
    ErrorLog "C:/Apache24/logs/error-ssl.log"
    TransferLog "C:/Apache24/logs/access-ssl.log"
    ServerAlias www.sed.adminbd.ru sed.adminbd.ru
    #Alias "/DocManagement"  "C:/Apache24/htdocs/DocManagement/default.vrd"
    #Redirect permanent / https://sed.adminbd.ru/DocManagement  
    SSLEngine On
    SSLCertificateFile "C:\certs\areon_pro.crt"
    SSLCertificateKeyFile "C:\certs\key.txt"
</VirtualHost>



# 1c VirtualHost
<VirtualHost sed.adminbd.ru:80>
 ServerName sed.adminbd.ru
 DocumentRoot "C:/Apache24/htdocs/DocManagement/"
 ServerAlias www.sed.adminbd.ru sed.adminbd.ru
 Alias "/DocManagement"  "C:/Apache24/htdocs/DocManagement/default.vrd"
 Redirect permanent / https://sed.adminbd.ru/
</VirtualHost>


# 1c publication
#Alias "/DocManagement" "C:/Apache24/htdocs/DocManagement/"
<Directory "C:/Apache24/htdocs/DocManagement/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/Apache24/htdocs/DocManagement/default.vrd"
</Directory>




<VirtualHost zup.adminbd.ru:443>
    DocumentRoot  "C:/Apache24/htdocs/zup_areon/"
    ServerName zup.adminbd.ru:443
    ErrorLog "C:/Apache24/logs/error-ssl.log"
    TransferLog "C:/Apache24/logs/access-ssl.log"
    SSLEngine On
    SSLCertificateFile "C:\certs\areon_pro.crt"
    SSLCertificateKeyFile "C:\certs\key.txt"
</VirtualHost>



Читать далее