最近工作需要,需要建立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-csv
c:\temp\newgroups.csv
foreach
(
$group
in
$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-content
c:\temp\apollousers.csv
$groups
=
get-content
c:\temp\apollogroups.csv
foreach
(
$user
in
$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-csv
c:\temp\dfs1.csv
foreach
(
$client
in
$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中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以...