需求:
用户因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 |