Windows

如何使用 PowerShell 列出隱藏的管理共享?

  • October 4, 2013

我正在嘗試編寫一個腳本來審核一些 HIPAA 敏感伺服器上的共享文件夾。我使用 獲取一個共享列表就好了gwmi Win32_Share,但是當我使用 獲取每個共享的權限時gwmi Win32_LogicalShareSecuritySetting,隱藏的管理共享沒有列出。

我意識到這是出於顯而易見的原因,它不像權限更改,但我想要某種跡象表明這實際上是一個管理共享。目前我正在使用 try-catch 塊來處理錯誤並踢出“找不到權限”消息。

有什麼方法可以使用 PowerShell 僅列出隱藏的管理共享?

嘗試(將“.”更改為您的遠端電腦名稱):

[String]                                   $Local:strComputerName  = ".";
[System.Management.ManagementBaseObject[]] $Local:arrShares        = @();
[System.Management.ManagementBaseObject]   $Local:objShare         = $null;

$arrShares = Get-WMIObject -class "Win32_Share" -namespace "root\CIMV2" -computername $strComputerName -ErrorAction SilentlyContinue | Where-Object { $_.Type -eq 2147483648 };
if ( $? ) {
   foreach ( $objShare in $arrShares ) {
       # List attributes (other attributes include AccessMask, AllowMaximum, Description,
       # InstallDate, MaximumAllowed, Status and Type).
       Write-Host -Object ( "Name        : {0}" -f $objShare.Name );
       Write-Host -Object ( "Path        : {0}" -f $objShare.Path );
       Write-Host -Object ( "Caption     : {0}" -f $objShare.Caption );
       Write-Host -Object "";
       } #foreach
} else {
   Write-Host -Object "ERROR.";
} #else-if

引用自:https://serverfault.com/questions/543906