我有一个下面的脚本,其中Servers.txt文件包含服务器列表。但是当我在脚本下面运行时:
$Result = @()
foreach($server in (gc .\Servers.txt)){
$computer = [ADSI](”WinNT://” + $server + “,computer”)
$Group = $computer.psbase.children.find(”Administrators”)
function getAdmins
{$members = ($Group.psbase.invoke(”Members”) | %{$_.GetType().InvokeMember(”Adspath”, ‘GetProperty’, $null, $_, $null)}) -replace ('WinNT://DOMAIN/' + $server + '/'), '' -replace ('WinNT://DOMAIN/', 'DOMAIN\') -replace ('WinNT://', '')
$members}
$Result += Write-Output "SERVER: $server"
$Result += Write-Output ' '
$Result += ( getAdmins )
$Result += Write-Output '____________________________'
$Result += Write-Output ' '
}
$Result > c:\results.txt
Invoke-Item c:\results.txt
我得到以下错误:
PS C:> C:\ LocalUsers.ps1 Get-Content:找不到路径 'C:\ Servers.txt',因为它不存在。在C:\ LocalUsers.ps1:3 焦炭:23 + foreach($ server in(gc<<<<<。\ Servers.txt)){ + CategoryInfo:ObjectNotFound:(C:\ Servers.txt:String)[Get-Content],ItemNotFoundException + FullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
为什么我一直收到这个错误?我该如何解决这个问题?
答案 0 :(得分:2)
转到ControlPanel /外观和个性化设置/ FileExplore选项/查看,然后取消选中“隐藏已知文件类型的扩展名。 现在检查您的* .txt文件,可能会看到Computres.txt.txt删除最后一个.txt
答案 1 :(得分:1)
根据评论,您的txt文件位于C:的根目录中,并且 应该。问题是您的脚本确认相对于该txt文件的运行位置。我想如果你调用Get-Location
,你会看到一条不同的路径,也可能是脚本运行的路径。
以下任一选项都是首选。
foreach($server in (gc "c:\Servers.txt")){
答案 2 :(得分:1)
我遇到了类似的问题。 我错误的是我的文件夹选项设置为隐藏已知文件类型的扩展名,导致我的.txt文件实际上是.txt.txt文件。
答案 3 :(得分:0)
尝试改变
[{
"success": true,
"children": [{
"id" : 1,
"name": "Cars",
"leaf": false,
"expanded": true,
"isvisible": true,
"children": [{
"id" : 2,
"name": "Mercedes-Benz",
"leaf": true,
"isvisible": true
}, {
"id" : 3,
"name": "Audi",
"leaf": true,
"isvisible": true
}, {
"id" : 4,
"name": "Ferrari",
"leaf": true,
"isvisible": true
}]
}]
}]
在...(gc .\Servers.txt)...
看看这个:https://technet.microsoft.com/en-us/library/hh849787.aspx
答案 4 :(得分:0)
您的Servers.txt文件位于其他位置或其扩展名不同。
使用Get-Location确保您位于Servers.txt文件的正确路径中。 使用dir查看您是否在目录中看到Servers.txt文件。
您的Servers.txt文件扩展名可能是Servers.txt.txt