您可以使用 powershell 脚本查找服务器上的所有共享吗?

您可以使用 powershell 脚本查找服务器上的所有共享吗?

我只想知道服务器上的所有共享,或者更好的是域中的所有共享。我希望可以通过 powershell 脚本来实现。

答案1

如果您想要清点域中所有计算机的共享,您可以使用Get-WmiObject查询Win32_Share每台计算机上的 wmi 类:

# Import the AD module to the session
Import-Module ActiveDirectory 
# Retrieve the dNSHostName attribute from all computer accounts in AD
$ComputerNames = Get-ADComputer -Filter * -Properties dNSHostName |Select-Object -ExpandProperty dNSHostName

$AllComputerShares = @()

foreach($Computer in $ComputerNames)
{
    try{
        $Shares = Get-WmiObject -ComputerName $Computer -Class Win32_Share -ErrorAction Stop
        $AllComputerShares += $Shares
    }
    catch{
        Write-Error "Failed to connect retrieve Shares from $Computer"
    }
}

# Select the computername and the name, path and comment of the share and Export
$AllComputerShares |Select-Object -Property PSComputerName,Name,Path,Description |Export-Csv -Path C:\Where\Ever\You\Like.csv -NoTypeInformation

答案2

使用 PowerShell,您可以使用Get-SMBShare

如果您的操作系统版本与此 cmdlet 不兼容,则可以使用旧的net share反而。

至于如何在每台服务器上运行它,你可以使用Invoke-Command在 PowerShell 中,或psexec从命令提示符中的 Sysinternals 中。

相关内容