Você pode usar um script do PowerShell para encontrar todos os compartilhamentos nos servidores? [fechadas]

1

Eu só quero saber todos os compartilhamentos em um servidor ou melhor todos os compartilhamentos no domínio. Eu estava esperando que fosse possível através de um roteiro de powershell.

    
por user3821261 25.08.2014 / 03:43

2 respostas

3

Se você quiser inventariar os compartilhamentos de todos os computadores em um domínio, você pode usar Get-WmiObject para consultar a classe Win32_Share wmi em cada computador:

# 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
    
por 25.08.2014 / 20:32
2

Com o PowerShell, você pode usar Get-SMBShare .

Se você tiver versões do sistema operacional que não são compatíveis com esse cmdlet, poderá usar o bom e velho net share em vez disso.

Quanto a como executá-lo em cada servidor, você pode usar Invoke-Command PowerShell, ou psexec da Sysinternals em um prompt de comando.

    
por 25.08.2014 / 04:06