1

ユーザー名を含むテキスト ファイルを取得し、特定の場所 ( UNCパス) を検索して、見つかった一致を返し、それらをログ ファイルに出力したいと考えています。

#Searches target folder for all folders matching input

$start = (get-date -uformat "%Y-%m-%d_%H%M")
$defaultLogFileName = "folder_matcher" + $start + ".log"

#Log file header

$header = @()
$header += "=============================="
$header += "Search results"
$header += ""
$header += "Execution Start: " + (get-date -uformat "%Y-%m-%d %H%M") + ""
$header += ""

#Get the logfile location
do
{
    $logdir = Read-Host "Enter log directory (or press Enter for default c:\)"
    if ($logdir -eq "")
        {$logfile = ("c:\" + $defaultLogFileName); break;}
    if(Test-Path $logdir)
        {$logfile += ($logdir + "\" + $defaultLogFileName); break;}
    Write-Host -ForegroundColor Red "Directory does not exist"
} while (!(Test-Path $logfile))

$SourceFile = Read-Host "Enter file path"
$SearchValue = Read-host "Enter target directory to sweep"

$header | Out-File -FilePath $logfile

foreach($user in $sourcefile){
    Get-ChildItem $SearchValue -filter $user | Out-file -Append -FilePath $logfile
}

このループでGet-ChildItemを使用しようとすると、次の結果になります。

Get-ChildItem : Second path fragment must not be a drive or UNC name.
Parameter name: path2
At \\erebus\erebus_users$\rraymond1\ps\searchandmatch.ps1:32 char:14
+ Get-ChildItem <<<<  $SearchValue -filter $user | Out-file -Append -FilePath $logfile
+ CategoryInfo          : InvalidArgument: (\\harvard\tsprofiles$:String)
[Get-ChildItem], ArgumentException  + FullyQualifiedErrorId  DirArgumentError,Microsoft.PowerShell.Commands.GetChildItemCommand

変数を固定値に置き換えようとしましたが (UNC パスをローカルにマッピングしてそのように実行しようとしても)、問題は残ります。どうすれば修正できますか?

4

0 に答える 0