需求:
用戶因HR自動化項目上線,每日會批量更新域用戶屬性;爲防止開發人員出問題後無法及時回滾用戶屬性相關信息,按照需求在HR計劃任務同步前1小時對域用戶屬性按日期命名做導出操作。
步驟:
1.與研發溝通同步屬性字段,確認後臺對應域用戶屬性字段;
2.編寫測試域導出用戶屬性腳本內容;
3.設置計劃任務;
腳本內容:
$Ubakdate = "{0:yyyyMMdd}" -f (Get-Date) $Filename = $Ubakdate + "-Usersattbak.csv" Get-ADUser -Filter * -Properties * -SearchBase "OU=Staff,DC=azureyun,DC=com" |Select-Object name,SamAccountName,Givenname,surname,Displayname,title,mobile,Created,Department,DistinguishedName,description,manager, physicalDeliveryOfficeName,streetAddress,EmailAddress,homeMDB,mail,mailNickname,MemberOf,PrimaryGroup,proxyAddresses,UserPrincipalName,whenCreated,whenChanged, employeeNumber,postalCode,company |Export-Csv D:\UserBak\$Filename -Encoding UTF8 -NoTypeInformation
註解:
按當前導出時間設置文件名稱:
方法一:
$Ubakdate = "{0:yyyyMMdd}" -f (Get-Date)
$Filename = $Ubakdate + "-Usersattbak.csv"
方法二:
$Ubakdate = "{0:yyyyMMdd}" -f (Get-Date)
$Filename = $Ubakdate + '-' + "Usersattbak.csv"
設置計劃任務:
1.創建任務計劃程序:
2.設置觸發器,每天21:00執行一次:
3.設置觸發操作:
4.點擊確定,在彈窗中輸入對應賬戶密碼:
5.完成計劃任務設置。
補充:PowerShell日期格式化選項註解:
符號 | 類型 | 調用示例 | 輸出 |
d | 短日期格式 | “{0:d}” –f $value | 2019/9/3 |
D | 長日期格式 | “{0:D}” –f $value | 2019年9月3日 |
t | 短時間格式 | “{0:t}” –f $value | “{0:t}” –f $value |
T | 長時間格式 | “{0:T}” –f $value | 18:18:50 |
f | 完整日期和時間(短) | “{0:f}” –f $value | 2019年9月3日 18:18 |
F | 完整日期和時間(長) | “{0:F}” –f $value | 2019年9月3日 18:18:50 |
g | 標準時間 (短) | “{0:g}” –f $value | 2019/9/3 18:18 |
G | 標準時間長 (長) | “{0:G}” –f $value | 2019/9/3 18:18 |
M | 月日格式 | “{0:M}” –f $value | 9月3日 |
r | RFC1123 日期格式 | “{0:r}” –f $value | Tue, 03 September 2019 18:18:50 GMT |
s | 排序日期格式 | “{0:s}” –f $value | 2019-09-03T18:18:50 |
u | 通用日期格式 | “{0:u}” –f $value | 2019-09-03 18:18:50Z |
U | 通用排序日期 GMT格式 | “{0:U}” –f $value | 2019年9月3日 15:18:50 |
Y | 年/月格式模式 | “{0:Y}” –f $value | 2019年9月 |
自定義日期格式 | |||
dd | 一個月中天 | “{0:dd}” -f $value | 1 |
ddd | 星期的縮寫 | “{0:ddd}” -f $value | 週六 |
dddd | 完整星期 | “{0:dddd}” -f $value | 星期六 |
gg | 紀年法 | “{0:gg}” -f $value | 公元 |
hh | 小時0-12 | “{0:hh}” -f $value | 11 |
HH | 小時0-23 | “{0:HH}” -f $value | 23 |
mm | 分鐘 | “{0:mm}” -f $value | 18 |
MM | 月份 | “{0:MM}” -f $value | 6 |
MMM | 月份縮寫 | “{0:MMM}” -f $value | 六月 |
MMMM | 完整月份 | “{0:MMMM}” -f $value | 六月 |
ss | 秒 | “{0:ss}” -f $value | 55 |
tt | 上午或者下午 | “{0:tt}” -f $value | 下午 |
yy | 兩位數字的年份 | “{0:yy}” -f $value | 13 |
yyyy | 四位數字的年份 | “{0:yyyy}” -f $value | 2019 |
zz | 不包含分鐘的時區 | “{0:zz}” -f $value | 8 |
zzz | 包含分鐘的時區 | “{0:zzz}” -f $value | +08:00 |