Автор Тема: Скрипты для автоматизации административных задач.  (Прочитано 34770 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4398
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Здесь размещаем скрипты. Обсуждение в других темах.
Первая строка каждого поста должна быть представлена в следующем формате:
Наименование скрипта#Язык программирования#автор

Например:
Подключение сетевого принтера и установка его принтером по умолчанию#JScript#ShS

« Последнее редактирование: 13 Ноября 2010, 11:47:39 от Shurikz »

Оффлайн goro

  • Постоялец
  • ***
  • Сообщений: 486
  • Рейтинг: 0
  • Пол: Мужской
    • romeo_2205
    • Просмотр профиля
  • Откуда: Киев
Поделитесь пжл, таким скриптом

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4398
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Поделитесь пжл, таким скриптом
Этим скриптом поделилась сама MS в соответствующей KB, в которой говорится о том, что возможность смены пароля при помощи GPP была убрана из политик.

https://support.microsoft.com/en-us/kb/2962486
« Последнее редактирование: 14 Июня 2016, 19:36:37 от shs »

Оффлайн goro

  • Постоялец
  • ***
  • Сообщений: 486
  • Рейтинг: 0
  • Пол: Мужской
    • romeo_2205
    • Просмотр профиля
  • Откуда: Киев
а если это будет просто cmd в сценарии автозапуска компьютера
с текстом
echo off
net user user  password

Должно сработать?

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4398
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
а если это будет просто cmd в сценарии автозапуска компьютера
с текстом
echo off
net user user  password

Должно сработать?

да, но это еще более небезопасно, чем то, что отменил MS. Пароль хранится в открытом виде вообще внутри батника.

Оффлайн goro

  • Постоялец
  • ***
  • Сообщений: 486
  • Рейтинг: 0
  • Пол: Мужской
    • romeo_2205
    • Просмотр профиля
  • Откуда: Киев
Ищу скрипт для отключения почтовых ящиков exchange у деактивированых учеток, более n-дней.
Может кто поделиться?

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4398
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Ищу скрипт для отключения почтовых ящиков exchange у деактивированых учеток, более n-дней.
Может кто поделиться?
создайте новую тему

Здесь размещаем скрипты. Обсуждение в других темах.Первая строка каждого поста должна быть представлена в следующем формате:Наименование скрипта#Язык программирования#автор

Оффлайн kwuipi

  • Новичок
  • *
  • Сообщений: 1
  • Рейтинг: 0
  • Пол: Мужской
    • drakzon1
    • Просмотр профиля
  • Откуда: Минск
Всем добрый день, нашел этот скрипт для добавления адресной книги ldap. Всё подстроил, что нужно. Только одна проблема, мне нужно добавить две книги на более чем 200 компов, а этот скрипт добавляет одну. Может нужно поменять первые два ключа ? Но даже не имею понятия на какие
http://www.codeproject.com/Articles/14053/Adding-an-LDAP-address-book-to-MS-Outlook

Онлайн Triangle

  • Модераторы
  • Олдфаг
  • *****
  • Сообщений: 6023
  • Рейтинг: 38
  • Пол: Мужской
    • s.popov-skype
    • Просмотр профиля
  • Откуда: замкадыш
Убивалка кэша 1С для всех пользователей сервера#Powershell#it-pages.ru

Get-ChildItem "C:\Users\*\AppData\Local\1C\1Cv82\*","C:\Users\*\AppData\Roaming\1C\1Cv82\*" | Where {$_.Name -as [guid]} |Remove-Item -Force -Recurse
Тетрис научил нас жизненно важному пониманию, успехи исчезают, ошибки накапливаются.

Оффлайн Lexw

  • Начинающий
  • *
  • Сообщений: 40
  • Рейтинг: 0
  • Пол: Мужской
    • admintsm@gmail.com
    • Просмотр профиля
  • Откуда: Тюмень - Бованенково
Очистка временных файлов на всех компах в домене, в системных каталогах и во всех учетках пользователей #Psh
писался давно, работает на любой версии PoSh, без предустановленного модуля Active Directory.
Чистит, если свободного места меньше десяти гигов.
Если после чистки свободного места остаётся меньше шести гигов, пишет имя компа в лог usedSpace. Второй столбец - размер диска C.
В лог clearedSpace.log пишутся результаты до и после чистки.
Логи после работы удобно просматривать в экселе, сортировать по столбцам.


######Настройки
#Указываем корень поиска. По умолчанию ищем во всем домене.
#Вместо $DomainDN указываем свой путь вида  OU=Computers,OU=Accounts,DC=mydomain,DC=ru
$Srchroot = [ADSI]"LDAP://OU=Computers,OU=Accounts,DC=mydomain,DC=ru"
#Путь к лог-файлам
$LogPathLowSpace = "D:\work\log\usedSpace.log"
$LogPathClearSpace = "D:\work\log\clearedSpace.log"



Function Test-Host ($Name)
{
    $ping = new-object System.Net.NetworkInformation.Ping
    trap {Write-Verbose "Ошибка пинга"; $False; continue}
    if ($ping.send($Name, 50).Status -eq "Success" ) { $True }
    else { $False }
}


function Clear-TempFiles
{ param([string]$computername=$env:COMPUTERNAME)

$UsersDir = "\\$computername\C$\users"
$UserProfileTemp1 ="\AppData\Local\Temp"
$UserProfileTemp2 ="\AppData\Local\Microsoft\Windows\Temporary Internet Files"
$WindowsTemp = "\\$computername\C$\Windows\Temp"
$RecycleBin =  "\\$computername\C$"+'\$Recycle.Bin'

$dirs = ls $UsersDir
foreach ($path in $dirs)
{
     $temp1=$path.FullName+$UserProfileTemp1
     $temp2=$path.FullName+$UserProfileTemp2
     if((Test-Path $temp1) -and (Test-Path $temp2)   ){
         Write-host ("Clearing profile: "+$path+".....") -NoNewline
         Remove-Item "$temp1\*" -Force -Recurse -Confirm:$false -ErrorAction SilentlyContinue
         Remove-Item "$temp2\*" -Force -Recurse -Confirm:$false -ErrorAction SilentlyContinue
         Write-Host "Done"
      }
     
}
Write-Host ('Clearing C:\$Recycle.Bin.....') -NoNewline
Remove-Item "$RecycleBin\*" -Force -Recurse -Confirm:$false -ErrorAction SilentlyContinue
Write-Host "Done"   
Write-Host ("Clearing C:\Windows\Temp:.....") -NoNewline
Remove-Item "$WindowsTemp\*" -Force -Recurse -Confirm:$false -ErrorAction SilentlyContinue
Write-Host "Done"   
}


function Get-FreeSpace
{param ([string]$DnsHosName)
   $driveC=Get-WmiObject Win32_LogicalDisk -ComputerName $DnsHosName| Where-Object {$_.DeviceID -eq "C:"}
   $freespace=[int]($driveC.FreeSpace/1GB)
   return $freespace
}


#====Обращение к Актив Директори=================
#Получаем имя домена
$DomainName = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$DomainDN = $DomainName.GetDirectoryEntry().distinguishedName
$DN=$DomainName.Name

#Получаем список компов в домене
$selector = New-Object system.DirectoryServices.DirectorySearcher
$Selector.SearchRoot = $Srchroot
$Selector.PageSize = 3000
$selector.Filter = '(objectClass=Computer)'
$selector.PropertiesToLoad.AddRange(@("name","dnshostname", "distinguishedName",
"canonicalName","lastLogonTimestamp"))
$Computers = $selector.FindAll()
#==================================================


""|Out-File -FilePath $LogPathLowSpace
""|Out-File -FilePath $LogPathClearSpace

foreach ($comp in $Computers)
    { 
        $dnsname = $comp.Properties.get_item("dnshostname")
        $CompName = $comp.Properties.get_item("name")
      if(Test-Host $dnsname)
       {
         
         Write-Host "Scanning:"$CompName
         $freespaceBeforClr = Get-FreeSpace -DnsHosName $dnsname
         if ($freespaceBeforClr -le 10)
          {
             Write-Host ("Clearing: "+$CompName+" FreeSpace: "+$freespaceBeforClr)
             Clear-TempFiles -computername $dnsname   
         
               
             $freespaceAfterClr = Get-FreeSpace -DnsHosName $dnsname
             Write-Host ("Clearing: "+$CompName+" After clr: "+$freespaceAfterClr)     
         
             $clrResult = [string] ($CompName+$freespaceBeforClr+$freespaceAfterClr)
             $clrResult|Out-File -FilePath $LogPathClearSpace -Append
             
                if ($freespaceAfterClr -le 6)
                {                   
                $driveC=Get-WmiObject Win32_LogicalDisk -ComputerName $dnsname| Where-Object {$_.DeviceID -eq "C:"}
                $totalspace=[int]($driveC.Size/1GB)
                $result = [string] ($CompName+$freespaceAfterClr+$totalspace)
                $result| Out-File -FilePath $LogPathLowSpace -Append
         
                }
         
            }
       
       }
   
    }