SMB Freigabe - Kapazität und freien Platz abfragen
Mahlzeit Digitalfreunde,
ich grübele gerade darüber, wie man die Größe und den freiern Platz von SMB Freigaben im Netzwerk (remote) per Powershell abfragen könnte. Und das nicht nur von Windows-Servern, sondern auch von NAS-Boxen etc.
Bekannt ist also:
//Servername/Freigabename
Unerreicht: Lesen & Schreiben
Direkt den freien Plattenplatz und Plattengröße abfragen wird dann wohl nur auf Windows-Systemen per Powershall Gene, oder? Wenn Samba im Einsatz ist, ist wohl diese direkte Abfrage ausgeschlossen.
Geht sowas?
Danke
ich grübele gerade darüber, wie man die Größe und den freiern Platz von SMB Freigaben im Netzwerk (remote) per Powershell abfragen könnte. Und das nicht nur von Windows-Servern, sondern auch von NAS-Boxen etc.
Bekannt ist also:
//Servername/Freigabename
Unerreicht: Lesen & Schreiben
Direkt den freien Plattenplatz und Plattengröße abfragen wird dann wohl nur auf Windows-Systemen per Powershall Gene, oder? Wenn Samba im Einsatz ist, ist wohl diese direkte Abfrage ausgeschlossen.
Geht sowas?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 9610230804
Url: https://administrator.de/contentid/9610230804
Ausgedruckt am: 24.11.2024 um 02:11 Uhr
7 Kommentare
Neuester Kommentar
Dafür gibt's die Credential Parameter ...
Firewall-Freigabe für RemoteManagement natürlich Voraussetzung. Ansonsten geht's auch per Invoke-Command auf der Maschine mit Get-SMBShare und Get-Volume, wie immer 1001 Wege nach Rom.
Auf Linux Devices kannst du Freespace oder diskusage per SSH abfragen z.B. mit df oder du
Gruß
$remoteComputer = "MyComputer"
$shareName = "MyShare"
$credential = Get-Credential
$session = New-CimSession -ComputerName $remoteComputer -Credential $credential
$share = Get-CimInstance -CimSession $session -Query "SELECT * FROM Win32_Share WHERE Name='$shareName'"
if ($share) {
$logicalDisk = Get-CimInstance -CimSession $session -Query "SELECT * FROM Win32_LogicalDisk WHERE DeviceID='$(split-path $share.Path -qualifier)'"
[pscustomobject][ordered]@{
ShareName = $shareName
Size = "{0:F2} GB" -f ((Get-ChildItem -Path "\\$remoteComputer\$shareName" -Recurse -Force -ErrorAction SilentlyContinue -File | measure Length -Sum).Sum /1GB)
FreeSpace = "{0:F2} GB" -f ($logicalDisk.FreeSpace / 1GB)
}
} else {
Write-Error "Share $shareName not found on $remoteComputer"
}
Remove-CimSession -CimSession $session
Auf Linux Devices kannst du Freespace oder diskusage per SSH abfragen z.B. mit df oder du
ssh user@remote.host "df -h /pfad"
ssh user@remote.host "du -hd1 /pfad"
Gruß
oder wenn alle stricke raussen von irgend ner windows maschine aus
Das ganze aber umleiten in ein txt file also:
dann steht unten die zeile drin:
oder sowas
das kannste dann per scriptsprache also öffnen das txt file und die zeile rausfiltern.
Dann die Zahle umformatieren und umkalkulieren in GB, dann haste die Zahl an GB die noch frei sind.
Und dann kannst machen was du willst mit der info
dir \\server\share
Das ganze aber umleiten in ein txt file also:
dir \\server\share >>c:\auswertung.txt
dann steht unten die zeile drin:
4 Verzeichnis(se), 373’987’098’624 Bytes frei
das kannste dann per scriptsprache also öffnen das txt file und die zeile rausfiltern.
Dann die Zahle umformatieren und umkalkulieren in GB, dann haste die Zahl an GB die noch frei sind.
Und dann kannst machen was du willst mit der info