Я делаю скрипт, который будет искать файл. Если файл найден, он запишет текстовый файл на сервер с именем компьютера и путем, где находится файл.
$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.
Проблема в том, что скрипт запуска программы от имени администратора, поэтому скрипт powershell не может искать файлы в папке C:\Users[some_other_user].
Есть ли способ принудительно выполнить поиск в папках с ограниченным доступом?
2) Второй вопрос не столь важен, а можно ли как-то включить в $filePath не только C:, но и D:?
====================================== РЕДАКТИРОВАТЬ: Хорошо, я думаю, что проблема теперь еще хуже . Он вообще не ищет не только в пользовательской папке, но и на диске С... почему-то я этого не заметил.
Так что проблема не в скрипте powershell, а в стороннем инструменте развертывания. При запуске скрипта вручную на физическом компьютере он работает.
Поэтому мне лучше найти способ запустить этот скрипт другим способом, есть ли другой способ запустить этот скрипт для пользователей?
Я попробовал на локальной машине из cmd.exe:
powershell.exe -noprofile -executionpolicy bypass -file .\script.ps1
Он возвращал результаты поиска только на D: и I:, но игнорировал C:
======================================EDIT2: я запускаю Powershell как обычный пользователь, копирую и вставляю script и он работает, он находит файл на диске C!
Если я запускаю Powershell как сценарий копирования-вставки администратора, он не работает, он не находит файл на диске C.