0

我正在尝试使用 Powershell 3.0 针对 multilpe 服务器运行以下命令,但由于某种原因,我发现路径不存在......即使它存在?

有任何想法吗?

代码:

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 获取内容:找不到路径“\$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 获取内容:找不到路径“\$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$for$admin share必须用反引号 ` 转义

于 2013-02-26T19:00:05.347 回答
3

找不到的路径前面只有一个\,UNC共享必须以两个\开头。我可以从您的代码中看到,您似乎在为两个 \ 加上前缀,但看起来并没有被延续。

正如已经指出的那样,我会使用双引号而不是单引号,如果你这样做,那么你也不应该需要转义 $ 字符。

假设本地计算机上的 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 回答