脚本用于定位所有远程本地驱动器,然后检查顶级目录

脚本用于定位所有远程本地驱动器,然后检查顶级目录

我正在尝试弄清楚如何在远程服务器上仅定位本地磁盘,然后查看其顶级目录。这是我目前所拥有的:

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-childitemakagci以获取顶级目录(仅目录。如果您还想要文件,请删除| ? {$_.PSIsContainer}

如果您想导出数据,只需使用:

$DriveInformation | out-file "U:\somepath\somename.txt" -force

并将其放在脚本的末尾

相关内容