null

Полезные скрипты PowerShell для повседневных задач администрирования Windows ч. 2

Полезные скрипты PowerShell для повседневных задач администрирования Windows ч 2


 

В продолжение предыдущей заметки приведу еще несколько примеров полезных скриптов для администрирования Windows.


 

Предположим, требуется массово поменять какие-то параметры(например, сменилось название организации, или ее адрес).

Для этого создаем CSV-файл с полями(приведен обший пример, поля в конкретном случае будут определятся тем, что вам необходимо изменить):

  • Name

  • Surname

  • E-Mail

  • Phone

  • Organization

  • JobTitle


 


mport-Module ActiveDirectory

$Users = Import-CSV $1 –Delimiter “;”

Foreach($CurrentUser in $Users) {

$Name = $CurrentUser.Name

$Surname = $CurrentUser.Surname

$Email = $CurrentUser.E-Mail

$Phone = $CurrentUser.Phone

$Organization = $CurrentUser.Organization

$JobTitle = $CurrentUser.JobTitle

$Login = (Get-ADuser –Filter {GivenName –eq $Name –and Surname –eq $Surname}).SamAccountName #поиск УЗ пользователя

Set-ADUser $Login –EmailAddress $Email –MobilePhone $Phone –Company $Organization –Title $JobTitle

}


Сеть:

получаем список профилей («Неопознанная, Частная, Публичная или Доменная») и номер, который закреплен за интерфейсом

Get-NetConnectionProfile


 

Устанавливаем необходимый профиль(в данном случае - Private)

Set-NetConnectionProfile -InterfaceIndex %#% -NetworkCategory Private

 

Удаляем файлы старше двух месяцев

 

$date = (Get-Date).AddMonths(-2)
Get-ChildItem -Path D:\Files\Common | where {!$_.PSIsContainer} |
foreach {
   if ($_.LastWriteTime -lt $date) {
      # в тестовых целях указываем -whatif
      # когда убедимся что все корректно работает то убираем его
      Remove-Item $_ -whatif
   }
}

 

Количество файлов в папках и размер папок

Cкрипт, выводящий на экран и в файл D:\CountFiles.csv информацию о том, сколько содержит файлов каждая папка и подпапки в директории D:\DIR, а также размер этих папок и подпапок.


 

$source="D:\DIR"
Get-ChildItem $source -recurse -force | where {$_.psIscontainer} | foreach {
   $count = Get-ChildItem $_.fullname -recurse | where {$_.length} | Measure-Object -property length -Sum
   Write-Host($_.FullName)
   $FilesSize = '{0:F}' -f ((($count.Sum)/1024)/1024)
   Write-Host("Files: " + $count.count )
   Write-Host("Size: " + $FilesSize + " MB")
   '"' + $_.FullName + '","' + $count.count + '","' + $FilesSize + '"' | Out-File D:\CountFiles.csv -Append
}

 

Коротко о себе:

Работаю инженером в компании Tune IT.

Ничего не найдено. n is 0