0

Powershell 3.0 を使用して複数のサーバーに対して以下を実行しようとしていますが、何らかの理由でパスが存在しないというメッセージが返ってきます。

何か案は?

コード:

clear
$computer = Get-Content -path c:\temp\servers.txt

foreach ($computer1 in $computer){

Write-Host $computer1
Get-Content -Path '\\$computer1\C$\Program Files\BMC Software\BladeLogic\RSCD\rscd.log' -Tail 10

}

エラー:

SV191267 Get-Content : 存在しないため、パス '\$computer1\C$\Program Files\BMC Software\BladeLogic\RSCD\rscd.log' が見つかりません。C:\Users\gaachm5\AppData\Local\Temp\e4651274-dcab-4a87-95a6-0f11437a7187.ps1:7 char:1 + Get-Content -Path '\$computer1\C$\Program Files\BMC Software\ BladeLogic\RSCD\rs ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (\$computer1\C $...c\RSCD\rscd.log:String) [Get-Content], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

SV193936 Get-Content : パス '\$computer1\C$\Program Files\BMC Software\BladeLogic\RSCD\rscd.log' が存在しないため、見つかりません。C:\Users\gaachm5\AppData\Local\Temp\e4651274-dcab-4a87-95a6-0f11437a7187.ps1:7 char:1 + Get-Content -Path '\$computer1\C$\Program Files\BMC Software\ BladeLogic\RSCD\rs ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (\$computer1\C $...c\RSCD\rscd.log:String) [Get-Content], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

4

2 に答える 2

4

試す:

"\\$computer1\C`$\Program Files\BMC Software\BladeLogic\RSCD\rscd.log" -Tail 10

一重引用符では、変数は展開されませんが、 の'ようにリテラルとして扱われます。$computer1$$admin share

于 2013-02-26T19:00:05.347 に答える
3

見つからないパスの先頭には \ が 1 つしかありません。UNC 共有は 2 つの \ で始まる必要があります。あなたのコードから、2 つの \ をプレフィックスとして付けているように見えますが、持ち越されているようには見えません。

すでに指摘したように、一重引用符の代わりに二重引用符を使用します。そうすれば、$ 文字もエスケープする必要はありません。

ローカル マシンの C:\temp フォルダに file.txt というファイルが存在するとします。

これは失敗します:

$computer1 = "localhost"
Test-Path '\\$computer1\c$\temp\file.txt'

これは機能します:

$computer1 = "localhost"
Test-Path "\\$computer1\c$\Temp\file.txt"
于 2013-02-26T21:44:40.647 に答える