Powershell 建立檔案,安全組和DFS鏈結

2021-09-21 19:25:29 字數 4487 閱讀 5137

最近工作需要,需要建立80多個資料夾,300多個對應的安全組,把某部門的一堆使用者放進對應的組,然後把這些資料夾都設定成dfs的target的共享物件,然後拷貝檔案。

這些工作手工操作的話實在是太繁瑣了,豆子考慮用powershell來實現這些功能,畢竟以後也用得著。這裡把我的指令碼備忘一下,以便日後參考:

基本思路和實現其實都很簡單,有個別地方dos命令和powershell的特殊符號無法直接識別,需要一些小技巧處理:

基本過程

建立使用者組

新增使用者到組

建立新的共享資料夾,新增成新的dfs物件,配置訪問許可權

robocopy 拷貝檔案內容

上面4個小任務,豆子很屌絲的寫了4個對應的小指令碼,當然放在乙個裡面也是可以實現的。

指令碼1就是從某個檔案裡面讀取客戶名,然後建立對應的組,然後根據我公司的訪問要求進行巢狀,具體情況可以根據實際ntfs的需求來更改。裡面的try catch我也寫的很隨意,catch應該根據具體的報錯進行輸出,這裡我都簡單化了。

script 1:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

$groups=import-csvc:\temp\newgroups.csv

foreach($groupin$groups)

else

catch

try

catch

try

catch

try

catch

try

catch

}

write-host ""

}

指令碼裡面讀取的文字格式如下所示

我們可以指定乙個日期,然後檢視是否成功建立了這些組,比如我是上週5建立的,然後這個部落格是周一寫的,所以隨手查詢一下上周四以後我建立的新組是啥

類似的,第二個指令碼就是乙個雙重迴圈,新增成員到組就是了,也很簡單。trim的目的是為了去掉excel文件裡面的結束空格字元。

script 2:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

$users=get-contentc:\temp\apollousers.csv

$groups=get-contentc:\temp\apollogroups.csv

foreach($userin$users)

else

catch

}

}

write-host ""

}

第三個指令碼稍微花了我點時間,因為我裡面呼叫的是dos命令的icacls來更改許可權,不太想用powershell的set-acl 命令,因為太麻煩,我不想花時間去查.net class。但是 icacls並不能很好的識別powreshell傳遞的變數,必須用$()的形式才能工作。

另外dfsutil 要求我的伺服器必須安裝dfs feature, new-smbshare是powershell 4.0裡面的命令,因此只能執行在安裝了.net4 的 windows 8 平台之上。

script3:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

$clients=import-csvc:\temp\dfs1.csv

foreach($clientin$clients)

else

}

建立完了之後,可以通過share和dfs進行確認。

第四個指令碼就是簡單的robocopy指令碼,我這裡不需要保留原始檔的許可權,所以簡單的

robocopy source destination /e 就可以了

Powershell 建立檔案,安全組和DFS鏈結

最近工作需要,需要建立80多個資料夾,300多個對應的安全組,把某部門的一堆使用者放進對應的組,然後把這些資料夾都設定成dfs的target的共享物件,然後拷貝檔案。這些工作手工操作的話實在是太繁瑣了,豆子考慮用powershell來實現這些功能,畢竟以後也用得著。這裡把我的指令碼備忘一下,以便日後...

IO 建立檔案

public class demo03 catch exception e public static void test3 throws ioexception,interruptedexception 刪除檔案 boolean flag src.delete system.out.println...

建立檔案鏈結

硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號 inode index 在linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以...