Я пытаюсь написать сценарий, который будет проверять общие папки на нескольких серверах, чувствительных к 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