PSNetShare – Get ACL

W poprzednim artykule pisałem jak nadawać uprawnienia, niemniej jednak odczytanie uprawnień sprawia troszkę więcej problemów. Klasa Win32_Share posiada co prawda metodę GetAccessMask nie niej nie zwraca ona faktycznego stanu access listy.

$objNetShare = Get-WMIObject -class Win32_Share  -Filter "name='Test'"
$objNetShare.GetAccessMask()

Co w takim razie zrobić by sprawdzić kto ma dostęp do danego zasobu i z jakimi uprawnieniami? Do tego celu można posłużyć się klasą Win32_LogicalShareSecuritySetting.

Czytaj dalej

PSNetShare – ACL

Jak ostatnio pisałem dziś skupię się na omówieniu klasy Win32_SecurityDescriptor w celu tworzenia Access List do naszych udostępnianych zasobów. Obiekty tej klasy same w sobie nie zawierają wiele na pierwszy rzut oka jasnych danych:

class Win32_SecurityDescriptor : __SecurityDescriptor
{
  uint32        ControlFlags;
  Win32_ACE     DACL[];
  Win32_Trustee Group;
  Win32_Trustee Owner;
  Win32_ACE     SACL[];
};

Dlatego by móc zrobić cokolwiek interesującego będziemy musieli posłużyć się kolejnymi dwoma klasami Win32_Ace – odpowiadającej za nadawanie uprawnień oraz Win32_Trustee – odpowiadającej za identyfikowanie użytkownika.

Czytaj dalej

PSNetShare

Ostatnio miałem drobny zgryz. Od jakiegoś czasu pracuję głównie na systemach w wersji Core, a z racji iż wcześniej nie miałem potrzeby udostępniać zasobów sieciowych to problem się zrodził jak tego dokonać mając do dyspozycji tylko linię poleceń.

Wyjścia w zasadzie są dwa. Albo wykorzystać wbudowane polecenie net share, albo posłużyć się obiektem WMI Win32_Share. Poniżej skupię się jak wykorzystać tą właśnie klasę.

Na początek sprawdźmy jakie zasoby mamy udostępnione na danej maszynie.

Get-WmiObject -class Win32_Share

Czytaj dalej