Делаю скрипт, который будет искать файл. Если файл найден, он будет писать txt-файл на сервере с именем и адресом компьютера, где находится файл.Powershell скрипт для поиска файлов в ограниченных папках (другие пользовательские папки)
$filePath = "c:"
$fileName = "somefile"
$computerName = Get-Content env:computername
$srvPath = "\\server\share$\FindFileScript\$computerName.txt"
#SEARCH FOR FILE ON C DISK
$fileResult = (Get-ChildItem -Recurse -Force $filePath -ErrorAction SilentlyContinue
| Where-Object { $_.Name -like "*$fileName*" } | Select-Object FullName | format-Table * -AutoSize)
if ($fileResult -eq $Null)
{
Write-Host "File named $fileName on disk C was not found."
}
Else
{
Write-Host "File named $fileName on disk C was found."
Out-File -FilePath $srvPath -InputObject $fileResult
}
1) Мы используем стороннюю программу, которая может развернуть программы и запустить сценарий powershell.
Проблема заключается в том, что скрипт запуска программы как пользователь Administrator, поэтому сценарию powershell не разрешено искать файлы в папке C: \ Users [some_other_user].
Есть ли способ заставить поиск по папкам с ограниченными, а?
2) Второй вопрос не так важен, но возможно ли каким-то образом включить в $ filePath не только C: но D: также?
====================================== EDIT: Хорошо, я думаю, проблема сейчас еще хуже. Он не ищет не только папку пользователя, но и диск C вообще ... по какой-то причине я этого не заметил.
Таким образом, проблема заключается не в скрипте powershell, а в стороннем инструменте развертывания. При запуске скрипта вручную на физическом компьютере он работает.
Так что мне лучше найти способ запуска этого сценария по-другому, можно ли другим способом запустить этот скрипт для пользователей?
I судимое на локальной машине из cmd.exe:
powershell.exe -noprofile -executionpolicy bypass -file .\script.ps1
Он вернулся результаты поиска на D: и я: только, но игнорировали C:
========== ============================ EDIT2: Я начинаю Powershell как обычный пользовательский копипаст сценарий и он работает, он находит файл на диске C!
Если я запускаю Powershell в качестве скрипта для копирования-вставки администратора, то он не работает, он не находит файл на диске C.
Конечно, для того, чтобы сделать скрипт короче удалю Write-хостинга и положить -ne $ Null позже. – Phoneutria