Наваял вот такой скрипт, можно ли его оптимизировать по скорости работы.
Скажем я пытался в команде Get-ChilItem в -Filter запихнуть два значения: *.log, *.ini. Но два он не обрабатывает или я не правильно, что-то написал. Пришлось запихнуть данные в -include ( он субъективно, медленнее работает)
Можно ли не создавать переменную $MM? Там текущий месяц. Если просто подоставить в:
Код:
Код: Выделить всё
-and $_.CreationTime.Month -like "(get-date).Month"}
то скрипт ничего не обрабатывает, как-будто в этом месяце не было записей...
Сам скрипт:
Код:
Код: Выделить всё
$AddDirectory = Read-Host "Please write name Directory"
New-item "$AddDirectory" -ItemType Directory
Write-Host "$addDirectory was create in current directory"
$MM = (get-date).Month
$AddDay = Read-Host "Please write day then log file was create"
$AddPCName = Read-Host "Please write PC name."
$ArrayPC = $addPCName -split "[,]"
foreach ($1 in $ArrayPC) {
IF (Test-connection -Quiet -Delay 1 -Count 2 -ErrorAction SilentlyContinue -ComputerName $1)
{
$file = Get-ChildItem \\$1\C$\folder\* -Include *.log, *.ini | '
Where-Object {$_.CreationTime.Day -like "$AddDay" '
-and $_.CreationTime.Month -like "$MM"}
New-item -Path $AddDirectory -Name $1 -ItemType Directory
Copy-Item $file -Destination $AddDirectory\$1
"Компьютер $1 включен. Файлы скопированы." }
Else {"Компьютер $1 выключен.Создана запись в файл ShutDownPC."
Add-Content -Path "$AddDirectory\ShutDownPC.txt" -Value "Компьютер $1 выключен"
}}