Así que estoy buscando si un servidor tiene una unidad compartida, hasta ahora he podido encontrar esta codificación de Powershell.
Get-WmiObject Win32_LogicalDisk -ComputerName Zetafax -Filter DriveType=3 | Select-Object DeviceID, @{'Name'='Size (GB)'; 'Expression'={[string]::Format('{0:N0}',[math]::truncate($_.size / 1GB))}}, @{'Name'='Freespace (GB)'; 'Expression'={[string]::Format('{0:N0}',[math]::truncate($_.freespace / 1GB))}}
Esto solo me dará la letra, es decir, C: o D:, ¿hay alguna manera de hacer que muestre la ruta como lo hace Get-PSDrive en una PC local?
Gracias
Respuesta1
Podría estar equivocado, pero como busca información para compartir, ¿no sería mejor que usara el comando Win32_Share para WmiObject?
Get-WmiObject Win32_Share
Esto le dará el nombre del recurso compartido y la ruta. Si necesita más detalles, como espacio y tamaño, deberá obtener esa información utilizando el primer comando.
Respuesta2
Puede usar cualquier comando, incluidos los que usa en una máquina local en una máquina remota usando:
Comunicación remota con PowerShell
Hay cmdlets integrados para este caso de uso.
Get-Command -Name '*smbshare*' |
Format-Table -AutoSize
CommandType Name Version Source
----------- ---- ------- ------
Function Block-SmbShareAccess 2.0.0.0 SmbShare
Function Get-SmbShare 2.0.0.0 SmbShare
Function Get-SmbShareAccess 2.0.0.0 SmbShare
Function Grant-SmbShareAccess 2.0.0.0 SmbShare
Function New-SmbShare 2.0.0.0 SmbShare
Function Remove-SmbShare 2.0.0.0 SmbShare
Function Revoke-SmbShareAccess 2.0.0.0 SmbShare
Function Set-SmbShare 2.0.0.0 SmbShare
Function Unblock-SmbShareAccess 2.0.0.0 SmbShare
# get function / cmdlet details
(Get-Command -Name Get-SmbShare).Parameters
Get-help -Name Get-SmbShare -Full
Get-help -Name Get-SmbShare -Online
Get-help -Name Get-SmbShare -Examples
Get-SmbShare
Name ScopeName Path Description
---- --------- ---- -----------
ADMIN$ * C:\Windows Remote Admin
C$ * C:\ Default share
D$ * D:\ Default share
E$ * E:\ Default share
F$ * F:\ Default share
IPC$ * Remote IPC