そこで、サーバーに共有ドライブがあるかどうかを確認したいのですが、これまでのところ、この 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))}}
これでは C: または D: などの文字しか表示されませんが、ローカル PC で Get-PSDrive が行うのと同じようにパスを表示する方法はありますか?
ありがとう
答え1
間違っているかもしれませんが、共有情報を探しているのであれば、WmiObject の Win32_Share コマンドを使用する方がよいのではないでしょうか。
Get-WmiObject Win32_Share
これにより、共有名とパスがわかります。スペースやサイズなどの詳細が必要な場合は、最初のコマンドを使用してその情報を取得する必要があります。
答え2
ローカル マシンで使用するコマンドも含め、任意のコマンドをリモート マシンでも使用できます。
このユースケースには組み込みのコマンドレットがあります。
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