Home > Software engineering >  powershell cmdlet doesn't return output properties stated in documentation
powershell cmdlet doesn't return output properties stated in documentation

Time:11-11

I try to write a PowerShell script that outputs open SMB connections on a server so that I can see who's working with the server and with which directory. For that, I found cmdlet get-smbopenfile which looks pretty handy.

The documentation https://learn.microsoft.com/de-de/powershell/module/smbshare/Get-SmbOpenFile?view=windowsserver2022-ps says that the get-smbopenfile output contains properties ClientComputerName and ClientUserName but on my box (Windows Server 2022) the only properties returned are FileId, SessionId and Path. I can't make it return any additional properties. The documentation seems to be crystal clear on that. What am I missing?

CodePudding user response:

get-smbopenfile | fl * to see everything, otherwise powershell commands use a format file with a default view. All commands are like this. You can still reference any property, even without fl or format-list.

get-smbopenfile | select -first 1 | fl *

SmbInstance           : Default
ClientComputerName    : [::1]
ClientUserName        : AD\SERVER$
ClusterNodeName       :
ContinuouslyAvailable : False
Encrypted             : False
FileId                : 1546188227134
Locks                 : 0
Path                  : \eventlog
Permissions           : 1180064
ScopeName             : *
SessionId             : 1546188226562
ShareRelativePath     : eventlog
Signed                : False
PSComputerName        :
CimClass              : ROOT/Microsoft/Windows/SMB:MSFT_SmbOpenFile
CimInstanceProperties : {ClientComputerName, ClientUserName, ClusterNodeName, ContinuouslyAvailable...}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties
  • Related