いくつかの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