windows使用powershell管理文件共享(权限未设置成功,待完善)

阅读数:139 评论数:0

跳转到新版页面

分类

应用软件

正文

一、枚举当前系统中已存在共享

win32_share对象便是windows系统上共享的磁盘、打印机、系统默认共享以及其他共享设备。

PS C:\Windows\system32> Get-WmiObject -Class win32_share | ft -AutoSize -Wrap

Name   Path                         Description  
----   ----                         -----------  
ADMIN$ C:\Windows                   Remote Admin 
C$     C:\                          Default share
IPC$                                Remote IPC   
test   C:\Users\huzx\documents\test 

二、创建新的共享

1、创建共享的语法

(Get-WmiObject -List -Class win32_share).create(PATH,NAME,SHARETYPE)

(1)path:共享的路径

(2)NAME: 自定义共享名称

(3)SHARETYPE:共享资源的类型

0 = Disk Drive
1 = Print Queue
2 = Device * 3 = IPC
2147483648 = Disk Drive Admin
2147483649 = Print Queue Admin
2147483650 = Device Admin
2147483651 = IPC Admin
PS C:\Windows\system32> new-item -Path c:\ -Name test2 -ItemType directory 

    Directory: C:\

Mode                LastWriteTime         Length Name                                                                                                                                                             
----                -------------         ------ ----                                                                                                                                                             
d-----        2/26/2021   4:54 PM                test2


PS C:\Windows\system32> (Get-WmiObject -List -Class win32_share).create("c:\test3","test3",0)


__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     : 
__DYNASTY        : __PARAMETERS
__RELPATH        : 
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         : 
__NAMESPACE      : 
__PATH           : 
ReturnValue      : 0
PSComputerName   : 

三、删除共享

PS C:\Windows\system32> $share=Get-WmiObject -Class win32_share | ? {$_.name -eq 'test3'} 

PS C:\Windows\system32> $share

Name  Path     Description
----  ----     -----------
test3 c:\test3            

PS C:\Windows\system32> $share.Delete() 


__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     : 
__DYNASTY        : __PARAMETERS
__RELPATH        : 
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         : 
__NAMESPACE      : 
__PATH           : 
ReturnValue      : 0
PSComputerName   : 

PS C:\Windows\system32> Get-WmiObject win32_share 

Name   Path                         Description  
----   ----                         -----------  
ADMIN$ C:\Windows                   Remote Admin 
C$     C:\                          Default share
IPC$                                Remote IPC   
test   C:\Users\huzx\documents\test    

四、配置共享的访问权限

1、通过get-acl命令列出ACL

PS C:\Windows\system32> $share=Get-WmiObject -ComputerName dc -Class win32_share | ? {$_.name -eq 'test3'} 

PS C:\Windows\system32> $share 

Name  Path     Description
----  ----     -----------
test3 c:\test3            

PS C:\Windows\system32> $share | get-acl | fl *


PSPath                  : Microsoft.PowerShell.Core\FileSystem::C:\test3
PSParentPath            : Microsoft.PowerShell.Core\FileSystem::C:\
PSChildName             : test3
PSDrive                 : C
PSProvider              : Microsoft.PowerShell.Core\FileSystem
CentralAccessPolicyId   : 
CentralAccessPolicyName : 
Path                    : Microsoft.PowerShell.Core\FileSystem::C:\test3
Owner                   : BUILTIN\Administrators
Group                   : buffallos\Domain Users
Access                  : {System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule, 
                          System.Security.AccessControl.FileSystemAccessRule...}
Sddl                    : O:BAG:DUD:AI(A;OICIID;FA;;;BA)(A;OICIID;FA;;;SY)(A;OICIID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)
AccessToString          : BUILTIN\Administrators Allow  FullControl
                          NT AUTHORITY\SYSTEM Allow  FullControl
                          BUILTIN\Users Allow  ReadAndExecute, Synchronize
                          NT AUTHORITY\Authenticated Users Allow  Modify, Synchronize
                          NT AUTHORITY\Authenticated Users Allow  -536805376
AuditToString           : 
AccessRightType         : System.Security.AccessControl.FileSystemRights
AccessRuleType          : System.Security.AccessControl.FileSystemAccessRule
AuditRuleType           : System.Security.AccessControl.FileSystemAuditRule
AreAccessRulesProtected : False
AreAuditRulesProtected  : False
AreAccessRulesCanonical : True
AreAuditRulesCanonical  : True

2、通过set-acl设置权限

PS C:\Windows\system32> $acl = get-acl -Path //dc/c$/test3 

PS C:\Windows\system32> $permission = "buffallos\adminhuzx","FullControl","Allow"

PS C:\Windows\system32> $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission

PS C:\Windows\system32> $acl.SetAccessRule($accessRule)

PS C:\Windows\system32> $acl | Set-Acl '\\dc\c$\test3' 



相关推荐

一、概述 在windows中,cmd和powershell都是命令执行窗口,powershell从win7开始内置于windows系统中,可以看作是cmd的增强。 为了兼容unix/linux she

一、设置ip netsh interface ip set address name=”Ethernet0″ static 10.1.2.220 255.255.255.0 10.1.2.1 根据自己

一、概述 在windows powershell中,可以在netsecurity模块中找到所有防火墙命令。 Get-Command -Module NetSecurity | Format-List

一、mstsc Microsoft Terminal Service Client。 1、运行命令mstsc win+r->输入"mstsc" 2、服务器远程连接配置 二、使用powershell远

一、概述 官方提供的windows安装mysql有两种: 1、msi安装包 2、zip包 下面以zip这种形式进行安装。 二、安装 1、切换到Program Files下 cd 'C:\Program

一、下载安装包 https://github.com/tporadowski/redis/releases 如果下载慢,参考:http://1024s.top/blog/detail?blogId=4

1、下载 链接:https://pan.baidu.com/s/

方法一 win+r 输入shell:startup 把编写bat脚本放置在以下位置 方法二 c->programData-&

获取批处理命令时间戳,最终格式为yyyyMMddHHmmSS **windows没有专门的时间戳函数,只有d

win+r diskpart list disk 找到要恢复的磁盘 select disk 2 数据字为上面显示的磁盘号 clea