Megosztások és webmappák elérése

A megosztások elérése  nagyon egyszerű a PowerShellből: egyszerűen a UNC névvel kell hivatkozni a megosztott könyvtárakra és az ott található fájlokra:

[2] PS C:\> Get-ChildItem \\asus\powershell

 

 

    Directory: Microsoft.PowerShell.Core\FileSystem::\\asus\powershell

 

 

Mode           LastWriteTime       Length Name

----           -------------       ------ ----

d----   2008.05.04.    12:55        <DIR> cd

d----   2008.07.15.    20:01        <DIR> Copy of scripts

d----   2008.02.28.    21:14        <DIR> demo

Sőt! A TAB-kiegészítés is működik! Valamint az ebben a fejezetben leírt összes cmdlet is működik az UNC nevekkel is, például:

[4] PS C:\> get-acl \\asus\powershell\munka\tömbök.txt

 

 

    Directory: Microsoft.PowerShell.Core\FileSystem::\\asus\powershell\munk

    a

 

 

Path                      Owner                    Access

----                      -----                    ------

tömbök.txt                ASUS\Administrator       BUILTIN\Administrator...

Megosztások létrehozása már nem ilyen egyszerű, de ehhez is van megoldás, melyet a 2.15.4 WMI objektumok metódusainak meghívása fejezetben mutatok egy WMI kifejezés segítségével.

Mindezen kívül a weben megosztott mappák is elérhetők ezekkel a cmdletekkel:

[5] PS C:\> get-childitem \\live.sysinternals.com\Tools

 

 

    Directory: Microsoft.PowerShell.Core\FileSystem::\\live.sysinternals.co

    m\Tools

 

 

Mode           LastWriteTime       Length Name

----           -------------       ------ ----

d---- 2008. 06. 02.     1:16        <DIR> WindowsInternals

-a--- 2008. 05. 30.    17:55          668 About_This_Site.txt

-a--- 2008. 07. 15.    17:39       229928 accesschk.exe

-a--- 2006. 11. 01.    14:06       174968 AccessEnum.exe

-a--- 2006. 11. 01.    22:05       121712 accvio.EXE

-a--- 2007. 07. 12.     7:26        50379 AdExplorer.chm

-a--- 2007. 11. 26.    13:21       422952 ADExplorer.exe

-a--- 2007. 11. 07.    10:13       401616 ADInsight.chm

-a--- 2007. 11. 20.    13:25      1049640 ADInsight.exe

-a--- 2006. 11. 01.    14:05       150328 adrestore.exe

-a--- 2006. 11. 01.    14:06       154424 Autologon.exe

-a--- 2008. 08. 20.    15:18        48986 autoruns.chm

...

Megosztások hozzáférésének szabályozása

A megosztások hozzáférés szabályozása nem is olyan egyszerű dolog, legalábbis ez még nincs „felemelve” PowerShell szintre. Most én sem kezdenék bele ennek nulláról való leprogramozásába, hiszen egy PowerShell MVP kolléga, Vadims Podāns a honlapján ( http://www.sysadmins.lv/ ) közzétette az általa írt ShareUtils szkriptmodult:

[1] PS C:\> Import-Module C:\_munka\powershell\ModulesFree\ShareUtils

[2] PS C:\> Get-Command -Module shareutils

 

CommandType     Name                            Definition

-----------     ----                            ----------

Filter          Add-SharePermission             ...

Function        Get-Share                       ...

Function        New-Share                       ...

Filter          Remove-Share                    ...

Filter          Remove-SharePermission          ...

Filter          Set-Share                       ...

Filter          Set-SharePermission             ...

Function        Test-ElevatedShell              ...

Látható, hogy néhány függvény áll rendelkezésünkre ebben a modulban, amelyek alapvetően WMI objektumokon alapszanak, és amelyekkel egyszerűen kezelhetjük a megosztásokat:

[3] PS C:\> Get-Share

 

Name                      ComputerName              Description

----                      ------------              -----------

ee                        TIBI-PC

Users                     TIBI-PC

_munka                    TIBI-PC

_upload                   TIBI-PC

 

 

[4] PS C:\> Get-Share ee

 

Name                      ComputerName              Description

----                      ------------              -----------

ee                        TIBI-PC

 

 

[5] PS C:\> Get-Share ee | fl *

 

 

ComputerName       : TIBI-PC

Name               : ee

Path               : C:\ee

Description        :

AllowMaximum       : True

MaximumAllowed     : 0

SecurityDescriptor : {ShareUtils.SecurityDescriptor.SD}

 

 

 

[6] PS C:\> Get-Share ee | Select-Object -ExpandProperty securitydescriptor

 

 

User       : Everyone

SIDString  : S-1-1-0

Domain     :

AccessType : Allow

Permission : Read

AccessMask : 1179817

AceType    : 0

AceFlags   : 0

Mondjuk, nekem kicsit hiányzik a Get-SharePermission függvény, de ezt a [6]-os sorban leírtak logika alapján végül is akár függvénnyé tudnánk mi magunk is alakítani.

Másik megszokást igénylő sajátossága az, hogy bizonyos dolgokat „commitálni” kell a következő módon:

[7] PS C:\> New-Share -Name UjShare -Path C:\_download | Set-Share

Azaz az új megosztás létrehozása csak a Set-Share kiadása után érvényesül. Ugyanígy, csak a Set‑Share kiadása után érvényesül újabb jog hozzáadása:

[13] PS C:\> Get-Share UjShare | Add-SharePermission -User everyone -AccessType

 allow -Permission FullControl | Set-Share

[14] PS C:\> Get-Share ujshare | Select-Object -ExpandProperty securitydescript

or

 

 

User       : Everyone

SIDString  : S-1-1-0

Domain     :

AccessType : Allow

Permission : FullControl

AccessMask : 2032127

AceType    : 0

AceFlags   : 0

 

User       : Everyone

SIDString  : S-1-1-0

Domain     :

AccessType : Allow

Permission : Read

AccessMask : 1179817

AceType    : 0

AceFlags   : 0

De ha ezeket a kis furcsaságokat megszokjuk, akkor nagyon jól használható ez az ingyenes modul.



Word To HTML Converter