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

Możemy również sprawdzić zasoby innej maszyny poprzez dodanie parametru ComputerName.

Get-WmiObject -class Win32_Share -ComputerName G1

Klasa Win32_Share sama w sobie posiada cztery metody z czego 2 są wręcz niezbędne do zarządzania udostępnianymi udziałami. Mowa tu o Create oraz Delete.

By utworzyć udział sieciowy tworzymy najpierw biekt na bazie klasy Win32_Share.

$objNetShare = [WMIClass] "Win32_Share"

A następnie wykorzystujemy metodę Create. Do prostego udostępnienia wystarczy sama lokalizacja nazwa udziału oraz typ.

$objNetShare.Create(<lokalizacja>, <nazwa udziału>, <typ udziału>, <liczba jednoczesnych użytkowników>, <komentarz>, <hasło>, <ACL>)
$Result = $objNetShare.Create('C:\Users\mg\Desktop\Nowy folder', 'Test', 0)

Natomiast aby usunąć zasób wystarczy wyszukać wskazajną pozycję i użyć metody Delete.

$objToDelete = Get-WmiObject -class Win32_Share -Filter "Name='Test'"
$objToDelete.Delete()

Możemy sprawdzić efekt, czy aby naprawdę zasób został usunięty.

Get-WmiObject -class Win32_Share

Jest to zupełnie najprostsza forma udostępniania zasobów. Powyższy przykład nie umożliwia jednak nadawania uprawnień. Wiąże się to głównie z tym okiełznaniem klasy Win32_SecurityDescriptor, którą oczywiście nie omieszkam opisać później. Natomiast dla niecierpliwych polecam mój gotowy moduł PSNetShare.

Jak na początku wspomniałęm alternatywą jest wbudowane w system polecenie Net Share.

net share <Nazwa udziału>=<lokalizacja> /users:<limit użtkowników> /grant:<uprawnienia>
net share Test="C:\Users\mg\Desktop\Nowy folder"

W celu usnięcia zasobu wystarczy użyć parametru delete.

net share Test /delete

Źródła:
http://technet.microsoft.com/en-us/library/bb490712.aspx
http://msdn.microsoft.com/en-us/library/aa394435(v=vs.85).aspx
http://code.msdn.microsoft.com/PSNetShare

Advertisements

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s