Get-LocalShares.ps1 (zpäť na zoznam)
Informácie o všetkých zdielaniach na servri (okrem admin zdielaní).
$shares = get-WmiObject Win32_Share
$readAccessMask = 131072
$writeAccessMask = 262144
$fullControlMask = 2032127
$hostname = hostname
$anyShare = $false
foreach ($share in $shares) {
if ($share.Name -notmatch "\$") {
$anyShare = $true
$name = $share.Name
$path = $share.Path
$shareInfo = ((Get-WmiObject win32_LogicalShareSecuritySetting -filter "name='$name'").GetSecurityDescriptor().Descriptor.DACL)
if ($PSVersionTable.PSVersion -eq "2.0") {
if ($shareInfo.gettype().baseType -match "array") {
for ($j = 0; $j -lt $shareInfo.Count; $j++) {
$accessMask = $shareInfo[$j] | Select-Object -property AccessMask
$userName = $shareInfo[$j] | Select-Object -property Trustee
if ($userName.Trustee.Name.gettype() -match "String") {
$user = $userName.Trustee.Name
if (([int]$accessMask.AccessMask -BAND $readAccessMask) -ne 0) {
$access = "Read access"
}
if (([int]$accessMask.AccessMask -BAND $writeAccessMask) -ne 0) {
$access = "Write access"
}
if ([int]$accessMask.AccessMask -eq $fullControlMask) {
$access = "Full Control"
}
Write-Host "$hostname;$path;$user;$access"
}
else {
for($i = 0; $i -lt $accessMask.Count; $i++) {
$user = $userName[$i].Trustee.Name
if (([int]$accessMask[$i].AccessMask -BAND $readAccessMask) -ne 0) {
$access = "Read access"
}
if (([int]$accessMask[$i].AccessMask -BAND $writeAccessMask) -ne 0) {
$access = "Write access"
}
if ([int]$accessMask[$i].AccessMask -eq $fullControlMask) {
$access = "Full Control"
}
Write-Host "$hostname;$path;$user;$access"
}
}
}
}
else {
$accessMask = $shareInfo | Select-Object -property AccessMask
$userName = $shareInfo | Select-Object -property Trustee
if ($userName.Trustee.Name.gettype() -match "String") {
$user = $userName.Trustee.Name
if (([int]$accessMask.AccessMask -BAND $readAccessMask) -ne 0) {
$access = "Read access"
}
if (([int]$accessMask.AccessMask -BAND $writeAccessMask) -ne 0) {
$access = "Write access"
}
if ([int]$accessMask.AccessMask -eq $fullControlMask) {
$access = "Full Control"
}
Write-Host "$hostname;$path;$user;$access"
}
else {
for($i = 0; $i -lt $accessMask.Count; $i++) {
$user = $userName[$i].Trustee.Name
if (([int]$accessMask[$i].AccessMask -BAND $readAccessMask) -ne 0) {
$access = "Read access"
}
if (([int]$accessMask[$i].AccessMask -BAND $writeAccessMask) -ne 0) {
$access = "Write access"
}
if ([int]$accessMask[$i].AccessMask -eq $fullControlMask) {
$access = "Full Control"
}
Write-Host "$hostname;$path;$user;$access"
}
}
}
}
else {
$accessMask = $shareInfo.AccessMask
$userName = $shareInfo.Trustee.Name
for($i = 0; $i -lt $accessMask.Count; $i++) {
if ($userName.GetType() -match "String") {
$user = $userName
}
else {
$user = $userName[$i]
}
if (([int]$accessMask[$i] -BAND $readAccessMask) -ne 0) {
$access = "Read access"
}
if (([int]$accessMask[$i] -BAND $writeAccessMask) -ne 0) {
$access = "Write access"
}
if ([int]$accessMask[$i] -eq $fullControlMask) {
$access = "Full Control"
}
Write-Host "$hostname;$path;$user;$access"
}
}
}
}
if (-not $anyShare) {
Write-Host "$hostname;No Shares"
}