Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] WMIobject (http://forum.oszone.net/showthread.php?t=293031)

red.army@vk 25-12-2014 07:33 2447942

WMIobject
 
Научите пользоваться WMIobject.

Вот допустим хочу найти WMI связанный с сетевыми шарами

Код:

PS C:\> Get-WmiObject -List | grep share

Win32_Share                        {Create, SetShare... {AccessMask, AllowMaximum, Caption, Description...}
Win32_ClusterShare                  {Create, SetShare... {AccessMask, AllowMaximum, Caption, Description...}
Win32_LogicalShareSecuritySetting  {GetSecurityDescr... {Caption, ControlFlags, Description, Name...}
Win32_SecuritySettingOfLogicalShare {}                  {Element, Setting}
Win32_OfflineFilesBackgroundSync    {}                  {BackgroundSyncWorkOfflineSharesEnabled, BlockOutDurationMin, BlockOutStartTimeHoursMinutes, MaxTimeBetweenSyncs...}
Win32_ShareToDirectory              {}                  {Share, SharedElement}
CIM_AdjacentSlots                  {}                  {DistanceBetweenSlots, SharedSlots, SlotA, SlotB}
Win32_LogicalShareAuditing          {}                  {AuditedAccessMask, GuidInheritedObjectType, GuidObjectType, Inheritance...}
Win32_PrinterShare                  {}                  {Antecedent, Dependent}
Win32_ConnectionShare              {}                  {Antecedent, Dependent}
Win32_LogicalShareAccess            {}                  {AccessMask, GuidInheritedObjectType, GuidObjectType, Inheritance...}


PS C:\> Get-WmiObject win32_share

Name                                                      Path                                                      Description
----                                                      ----                                                      -----------
ADMIN$                                                    C:\Windows                                                Remote Admin
C$                                                        C:\                                                      Default share
E                                                          E:\
IPC$                                                                                                                Remote IPC
print$                                                    C:\Windows\system32\spool\drivers                        Printer Drivers


PS C:\> Get-WmiObject win32_share | Get-Member


  TypeName: System.Management.ManagementObject#root\cimv2\Win32_Share

Name                MemberType    Definition
----                ----------    ----------
PSComputerName      AliasProperty PSComputerName = __SERVER
Delete              Method        System.Management.ManagementBaseObject Delete()
GetAccessMask      Method        System.Management.ManagementBaseObject GetAccessMask()
SetShareInfo        Method        System.Management.ManagementBaseObject SetShareInfo(System.UInt32 MaximumAllowed, System.String Description, System.Management.Management...
AccessMask          Property      uint32 AccessMask {get;set;}
AllowMaximum        Property      bool AllowMaximum {get;set;}
Caption            Property      string Caption {get;set;}
Description        Property      string Description {get;set;}
InstallDate        Property      string InstallDate {get;set;}
MaximumAllowed      Property      uint32 MaximumAllowed {get;set;}
Name                Property      string Name {get;set;}
Path                Property      string Path {get;set;}
Status              Property      string Status {get;set;}
Type                Property      uint32 Type {get;set;}
__CLASS            Property      string __CLASS {get;set;}
__DERIVATION        Property      string[] __DERIVATION {get;set;}
__DYNASTY          Property      string __DYNASTY {get;set;}
__GENUS            Property      int __GENUS {get;set;}
__NAMESPACE        Property      string __NAMESPACE {get;set;}
__PATH              Property      string __PATH {get;set;}
__PROPERTY_COUNT    Property      int __PROPERTY_COUNT {get;set;}
__RELPATH          Property      string __RELPATH {get;set;}
__SERVER            Property      string __SERVER {get;set;}
__SUPERCLASS        Property      string __SUPERCLASS {get;set;}
PSStatus            PropertySet  PSStatus {Status, Type, Name}
ConvertFromDateTime ScriptMethod  System.Object ConvertFromDateTime();
ConvertToDateTime  ScriptMethod  System.Object ConvertToDateTime();

Итак есть метод Delete, как им воспользоваться, не создавая переменную?
только так? :
Код:

(Get-WmiObject win32_share | where {$_.Name -eq "E"}).delete()

Foreigner 25-12-2014 08:24 2447950

Чем не устраивает?
Можно так:
Код:

(gwmi -query "select * from win32_share where name='E'").delete()

red.army@vk 25-12-2014 10:38 2447988

длинновато набирать вообщем(( не юзабельно в работе получается... только если в скриптах использовать.

Foreigner 25-12-2014 10:49 2447990

red.army@vk, В данном случае можно и net share:
Код:

net share E /delete

red.army@vk 25-12-2014 11:14 2448005

можно и Remove-SmbShare E
Дело было просто научится пользоваться WMI а шара так просто взята

Foreigner 25-12-2014 11:20 2448008

red.army@vk, Понятно, я POSH использую в основном для скриптов, в интерактиве она подтормаживает при старте или если долго не пользовался открытой консолью. Ну и синтаксис конечно тоже играет роль.


Время: 21:08.

Время: 21:08.
© OSzone.net 2001-