Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ Powershell ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Python

SQL\T-SQL

FreeBSD and Nix

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Сетевые ресурсы и powershell


Работая в организации часто даешь доступ к сетевым ресурсам(папки отделов на сервере например) , соответственно права доступа должны быть ограничены пользователями только которым это разрешено.Так-же не помешает иметь список сетевых ресурсов и прав доступа к ним на случай ухода из организации сотрудников , чтоб быстро внести требуемые изменения.Итак приступим.

 
    Сначала мы получим список общих папок на локальном компьютере:
 
PS C:Windowssystem32> Get-WmiObject -class win32_share -ComputerName localhost
 
Name                                    Path                                    Description
—-                                    —-                                    ————
ADMIN$                                  C:Windows                              Удаленный Admin
C$                                      C:                                     Стандартный общий ресурс
D$                                      D:                                     Стандартный общий ресурс
IPC$                                                                            Удаленный IPC
print$                                  C:Windowssystem32spooldrivers       Драйверы принтеров
VBRCatalog                              C:VBRCatalog
Y$                                      Y:                                     Общий ресурс по умолчанию
 
    Методы и свойства можно посмотреть с помощью командлета Get-Member:
 
PS C:Windowssystem32> Get-WmiObject -class win32_share | Get-Member
 
 
   TypeName: System.Management.ManagementObject#rootcimv2Win32_Share
 
Name                MemberType   Definition
—-                ———-   ———-
Delete              Method       System.Management.ManagementBaseObject Delete()
GetAccessMask       Method       System.Management.ManagementBaseObject GetAccessMask()
SetShareInfo        Method       System.Management.ManagementBaseObject SetShareInfo(System.UInt32 Maxi
AccessMask          Property     System.UInt32 AccessMask {get;set;}
AllowMaximum        Property     System.Boolean AllowMaximum {get;set;}
Caption             Property     System.String Caption {get;set;}
Description         Property     System.String Description {get;set;}
InstallDate         Property     System.String InstallDate {get;set;}
MaximumAllowed      Property     System.UInt32 MaximumAllowed {get;set;}
Name                Property     System.String Name {get;set;}
Path                Property     System.String Path {get;set;}
Status              Property     System.String Status {get;set;}
Type                Property     System.UInt32 Type {get;set;}
__CLASS             Property     System.String __CLASS {get;set;}
__DERIVATION        Property     System.String[] __DERIVATION {get;set;}
__DYNASTY           Property     System.String __DYNASTY {get;set;}
__GENUS             Property     System.Int32 __GENUS {get;set;}
__NAMESPACE         Property     System.String __NAMESPACE {get;set;}
__PATH              Property     System.String __PATH {get;set;}
__PROPERTY_COUNT    Property     System.Int32 __PROPERTY_COUNT {get;set;}
__RELPATH           Property     System.String __RELPATH {get;set;}
__SERVER            Property     System.String __SERVER {get;set;}
__SUPERCLASS        Property     System.String __SUPERCLASS {get;set;}
PSStatus            PropertySet  PSStatus {Status, Type, Name}
ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime();
ConvertToDateTime   ScriptMethod System.Object ConvertToDateTime();
 
    Общие ресурсы делятся на административные и не административные , первые — созданы системой , вторые — уже человеком например посмотрим на список не административных ресурсов:
 
PS C:Windowssystem32> Get-WmiObject win32_share -Filter «type = ’0′»
 
Name                                    Path                                    Description
—-                                    —-                                    ————
print$                                  C:Windowssystem32spooldrivers       Драйверы принтеров
VBRCatalog                              C:VBRCatalog
 
   Так-же выведем список административных ресурсов:
 
PS C:Windowssystem32> Get-WmiObject win32_share -Filter «type > ’0′»
 
Name                                    Path                                    Description
—-                                    —-                                    ————
ADMIN$                                  C:Windows                              Удаленный Admin
C$                                      C:                                     Стандартный общий ресурс
D$                                      D:                                     Стандартный общий ресурс
IPC$                                                                            Удаленный IPC
Y$                                      Y:                                     Общий ресурс по умолчанию
 
    Изменим количество одновременных подключений у существующего общего ресурса на 10 одновременных подключений и введем ему описание:
 
PS C:Windowssystem32> (Get-WmiObject -Class win32_share -filter «name=’Share’»).setShareinfo(«10″,»Test Share»)
 
 
__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0
 
    Давайте создадим общую шару , тут мы используем ускоритель ввода [wmiClass] , после передаем параметры методу create , («путь», «Имя шары», «значение созданной пользователем шары», «количество подключений одновременно», «описание»)
 
PS C:Windowssystem32> $share = [wmiClass] ‘Win32_share’
PS C:Windowssystem32> $share.create(«C:powershellshare», «UserShare», «0″, «10″, «Test_share»)
 
 
__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0
 
В этом выводе последняя строка со значением «0″ говорит об успешном завершении команды
 
Второй вариант написания еще проще: ([wmiClass] ‘Win32_share’).Create(«C:powershellshare», «UserShare», «0″, «10″, «Test_share»)
 
 В Windows 2003 и выше при создании нового общего ресурса права назначаются только группе Everyone на чтение.
 
Теперь давайте удалим общий ресурс:
 
PS C:Windowssystem32> $share = Get-WmiObject Win32_share | where {$_.name -eq «UserShare»}
PS C:Windowssystem32> Get-WmiObject -class win32_share -ComputerName localhost
 
Name                                    Path                                    Description
—-                                    —-                                    ————
ADMIN$                                  C:Windows                              Удаленный Admin
C$                                      C:                                     Стандартный общий ресурс
D$                                      D:                                     Стандартный общий ресурс
IPC$                                                                            Удаленный IPC
print$                                  C:Windowssystem32spooldrivers       Драйверы принтеров
UserShare                               C:powershellshare                     Test_share
VBRCatalog                              C:VBRCatalog
Y$                                      Y:                                     Общий ресурс по умолчанию
 
PS C:Windowssystem32> $share.Delete()
 
 
__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0
 
 
 
PS C:Windowssystem32> Get-WmiObject -class win32_share -ComputerName localhost
 
Name                                    Path                                    Description
—-                                    —-                                    ————
ADMIN$                                  C:Windows                              Удаленный Admin
C$                                      C:                                     Стандартный общий ресурс
D$                                      D:                                     Стандартный общий ресурс
IPC$                                                                            Удаленный IPC
print$                                  C:Windowssystem32spooldrivers       Драйверы принтеров
VBRCatalog                              C:VBRCatalog
Y$                                      Y:                                     Общий ресурс по умолчанию
 
Или проще выполнить так: (Get-WmiObject Win32_Share | where {$_.name -eq «UserShare»}).Delete()
 
Посмотреть на назначенные права можно так(первый вариант обычный , второй рекурсивный с выводом подкаталогов):
 
PS C:Windowssystem32> Get-Acl c:Мишаня
 
PS C:Windowssystem32> Get-ChildItem c:Мишаня -recurse | Get-Acl

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект