Я пытаюсь найти каталог файлов в списке удаленных серверов. Я хочу:
- Используйте PowerShell; получить цели из текстового файла с разделителями-запятыми, т.е. server1,file1
Примечание: файл отличается для каждого сервера.
- Поиск файла в разделах C: и E:, даже если его несколько экземпляров.
- Получить каталог файлов
- Запишите результат в .csv
- Просмотрите вывод в главном окне Powershell.
Вот сценарий, с которым я работал. Я не могу заставить его работать должным образом. Мне нужна помощь:
$scriptpath = $MyInvocation.MyCommand.Path
$dir = разделенный путь
$FileName = "$каталог\Servers.txt"
$Данные = gc $ИмяФайла
foreach ($ строка в $ данных)
{
$Позиция = $Строка.IndexOf(",")
$Server = $Row.Substring(0, $Position)
$Файл = $Строка.Подстрока($Позиция + 1)
$CPart = @{
Имя = "CPart"
Путь = "\$Сервер\C$"
#Path = "Файловая система::\$Сервер\C$"
}
$EPart = @{
Имя = "EPPart"
Путь = "\$Сервер\E$"
#Path = "Файловая система::\$Сервер\E$"
}
@($CPart, $EPart) | ForEach-Object {
if ($Server -like "*.mydomain.com") {$session = New-PSSession -Computer $Server -Credential MYDOMAIN\userid -ErrorAction Stop}
else {$Session = New-PSSession -Computer $Server -ErrorAction Stop}
Invoke-Command -Session $Session -ScriptBlock {$Result = Get-ChildItem -Recurse -Path $_.Path | Where-Object {$_.Name -match '$File'};возврат $Result}
$Результат
#$item = Get-ChildItem -Recurse -Path $_.Path | Where-Object {$_.Name -match '$File' -и }
#Write-Host $item
}
}
<#foreach ($Server в $Servers)
{
"\$Сервер\C$" | Get-ChildItem -recurse -filter $FileList | Выберите Каталог, Имя | Write-Host $_.Directory + "\" + $_.Name
"\$Сервер\E$" | Get-ChildItem -recurse -filter $FileList | Выберите Каталог, Имя | Write-Host $_.Directory + "\" + $_.Name
}
$columnToGet = 0
$columns = gc $fileName |
%{ $_.Split(",")[$columnToGet] }
$столбцы
#>