我正在尝试弄清楚如何在远程服务器上仅定位本地磁盘,然后查看其顶级目录。这是我目前所拥有的:
foreach ($i in Get-Content "U:\Powershell\Lists\Servers.txt")
{$i + "`n" + "=========================="; [System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -eq 'Fixed'}}
我相信这只会返回本地服务器的本地磁盘,但这也是我最接近弄清楚我想要看到的内容的一次。还不完全确定我将如何获取这些结果,然后针对列出的驱动器执行 Get-ChildItem。我对 PS 脚本还不太熟悉,所以任何解释都会很感激!
答案1
您需要设置温控器为此服务。
$DriveInformation = @()
$servers = Get-Content "U:\Powershell\Lists\Servers.txt" | % {
$invoke = Invoke-Command -ComputerName $_ {
[System.IO.DriveInfo]::getdrives() | ? {$_.DriveType -eq 'Fixed'} |
% { gci $_.Name | ? {$_.PSIsContainer} }
}
$DriveInformation += $Invoke
}
首先,我们创建一个数组,该数组末尾将包含驱动器信息,然后我们使用 读取所有服务器名称get-content
,使用foreach-object
别名循环%
获取服务器名称。然后我们调用命令来读取每台服务器上的驱动器信息invoke-command
,在invoke-command
脚本块内选择本地驱动器,对于每个选定的驱动器,我们执行get-childitem
akagci
以获取顶级目录(仅目录。如果您还想要文件,请删除| ? {$_.PSIsContainer}
)
如果您想导出数据,只需使用:
$DriveInformation | out-file "U:\somepath\somename.txt" -force
并将其放在脚本的末尾