Printer Driver

Witam ponownie w kolejnym poście o drukarkach. Mieliśmy już zmianę statusu domyślnej drukarki, instalację jak i udostępnianie ich. Dzisiaj jednak nawiąże jeszcze nieco do instalacji drukarki, choć może nie tyle co drukarki, ale samego jej sterownika. Gdyż gdy w systemie znajdują się odpowiednie drivery to zainstalowanie drukarki nie stanowi problemu. Co jednak wtedy gdy takowych sterowników brak? Czytaj dalej

Dodawanie drukarek z PowerShella

Ostatnio bawiliśmy się modyfikowaniem domyślnych drukarek. Natomiast dziś przedstawię jak można zarządzać drukarkami, tzn. dodać czy udostępnić drukarkę innym. Mając lokalny dostęp do maszyny nie jest to problem, by wykonać taką operację przy użyciu kilku kliknięć. Niemniej jednak gdy chcemy zrobić coś podobnego na masową skalę, np. do kilkuset maszyn to zaczyna nam się rodzić problem. Oczywiście wszystko to da się zrobić z poziomu Active Directory, a konkretnie przy wykorzystaniu GPO, ale jak wiadomo ja lubię rozwiązania mniej konwencjonalne 🙂 Czytaj dalej

Programmatically set default printer

Dziś zaprezentuję jak programowo zmienić domyślną drukarkę. Wiem, iż może się okazać po co, skoro wystarczy kilka kliknięć i gotowe. A no np. dlatego, iż czasem nie mamy dostępu do GUI, np. w systemach w wersji Core, lub po prostu mamy taki kaprys. Jak więc tego dokonać ? Najprościej przy pomocy PowerShella.

Czytaj dalej

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

Zarządzanie uprawnieniami w Hyper-V Menedżerze

Wykorzystywanie przystawki Hyper-V Manager jest dość przydatne gdy nieposiadany specjalistycznego oprogramowania do zarządzania maszynami wirtualnymi. Niemniej jednak największą wadą tego rozwiązania jest konieczność uruchamiania przystawki z uprawnieniami administratora serwera Hyper-V. Niestety problemy rodzą się w sytuacji gdy na jednym serwerze posiadamy maszyny, którymi zarządzają osoby z poza grona głównych administratorów, np. deweloperzy mający dostęp tylko do maszyn na, których testują oprogramowanie. Domyślnie Hyper-V Manager nie posiada funkcjonalności przypisywania uprawnień do maszyn dla konkretnych użytkowników, co więc możemy w tej sytuacji zrobić ?? Możemy np. posłużyć się Menedżerem Autoryzacji (azman.msc) w celu przypisania odpowiednich uprawnień. Najlepiej gdy posiadamy środowisko oparte o usługę Active Directory niemniej jednak nie jest to wymagane dla tego rozwiązania i można sobie poradzić również w oparciu o użytkowników lokalnych. Ja skupię się jednak na rozwiązaniu wykorzystującym AD.

Czytaj dalej