Код:
$datenow = get-date -uformat "%Y.%m.%d_%H.%M.%S"
#########################################################
#########################changed#########################
#########################################################
$oucity = "moscow"
$path = "c:\ps\all_pc\$datenow\"
#########################################################
#########################changed#########################
#########################################################
new-item $path -itemtype directory
$excel = new-object -comobject excel.application
import-module activedirectory
$workbook = $excel.workbooks.add()
$workbook.worksheets.item(3).delete()
$workbook.worksheets.item(2).delete()
$workbook.worksheets.item(1).name = $oucity
$sheet = $workbook.worksheets.item($oucity)
$out = get-adcomputer -filter * -searchbase "ou=$oucity,dc=mydomain,dc=com" -properties distinguishedname, name | select distinguishedname, name
$sheet.cells.item(1,1) = "distinguishedname"
$sheet.cells.item(1,2) = "name"
$str = 2
foreach ($in in $out){$sheet.cells.item($str,1) = $in.distinguishedname
$sheet.cells.item($str,2) = $in.name
$str++}
$range = $sheet.usedrange
$range.entirecolumn.autofit() | out-null
$excel.activeworkbook.saveas($path+"all_pc")
$excel.quit()
$datenow = get-date -uformat "%Y.%m.%d_%H.%M.%S"
#########################################################
#########################changed#########################
#########################################################
$oucity = "moscow"
$path = "c:\ps\delete_pc_inactive\$datenow\"
#########################################################
#########################changed#########################
#########################################################
new-item $path -itemtype directory
$excel = new-object -comobject excel.application
import-module activedirectory
$workbook = $excel.workbooks.add()
$workbook.worksheets.item(3).delete()
$workbook.worksheets.item(2).delete()
$workbook.worksheets.item(1).name = $oucity
$sheet = $workbook.worksheets.item($oucity)
$out = get-adcomputer -filter * -searchbase "ou=$oucity,ou=computers4delete,dc=mydomain,dc=com" -properties distinguishedname, name | select distinguishedname, name
$sheet.cells.item(1,1) = "distinguishedname"
$sheet.cells.item(1,2) = "name"
$str = 2
foreach ($in in $out){$sheet.cells.item($str,1) = $in.distinguishedname
$sheet.cells.item($str,2) = $in.name
$delete_pc_inactive = $sheet.cells.item($str,1).value()
$str++}
dsrm -subtree -exclude -noprompt -c "ou=$oucity,ou=computers4delete,dc=mydomain,dc=com"
$range = $sheet.usedrange
$range.entirecolumn.autofit() | out-null
$excel.activeworkbook.saveas($path+"delete_pc_inactive")
$excel.quit()
$datenow = get-date -uformat "%Y.%m.%d_%H.%M.%S"
#########################################################
#########################changed#########################
#########################################################
$oucity = "moscow"
$path = "c:\ps\pc_inactive_lastlogon\$datenow\"
#########################################################
#########################changed#########################
#########################################################
new-item $path -itemtype directory
$excel = new-object -comobject excel.application
import-module activedirectory
$workbook = $excel.workbooks.add()
$workbook.worksheets.item(3).delete()
$workbook.worksheets.item(2).delete()
$workbook.worksheets.item(1).name = $oucity
$sheet = $workbook.worksheets.item($oucity)
$out = get-adcomputer -filter * -searchbase "ou=users&pcs,ou=$oucity,dc=mydomain,dc=com" -properties distinguishedname, name, lastlogon | select distinguishedname, name, lastlogon
$sheet.cells.item(1,1) = "distinguishedname"
$sheet.cells.item(1,2) = "name"
$sheet.cells.item(1,3) = "lastlogon"
$beforedate = (get-date).addmonths(-2)
$str = 2
foreach ($in in $out){$sheet.cells.item($str,1) = $in.distinguishedname
$sheet.cells.item($str,2) = $in.name
$sheet.cells.item($str,3) = $in.lastlogon
if ($beforedate -le $in.lastlogon){$sheet.cells.item($str,4) = "disable"}
$str++}
$range = $sheet.usedrange
$range.entirecolumn.autofit() | out-null
$excel.activeworkbook.saveas($path+"pc_inactive_lastlogon")
$excel.quit()
$datenow = get-date -uformat "%Y.%m.%d_%H.%M.%S"
#########################################################
#########################changed#########################
#########################################################
$oucity = "moscow"
$path = "c:\ps\users_inactive\$datenow\"
#########################################################
#########################changed#########################
#########################################################
new-item $path -itemtype directory
$excel = new-object -comobject excel.application
$beforedate = (get-date).addmonths(-1)
import-module activedirectory
function inactive_users{$workbook = $excel.workbooks.add()
$workbook.worksheets.item(3).delete()
$workbook.worksheets.item(2).delete()
$workbook.worksheets.item(1).name = $ouplace
$sheet = $workbook.worksheets.item($ouplace)
$out = get-aduser -filter * -searchbase "ou=$ouplace,ou=users&pcs,ou=$oucity,dc=mydomain,dc=com" -properties distinguishedname, name, postalcode, pager, pwdlastset, whencreated | select distinguishedname, name, postalcode, pager, pwdlastset, whencreated
$sheet.cells.item(1,1) = "distinguishedname"
$sheet.cells.item(1,2) = "name"
$sheet.cells.item(1,3) = "postalcode"
$sheet.cells.item(1,4) = "pager"
$sheet.cells.item(1,5) = "pwdlastset"
$sheet.cells.item(1,6) = "whencreated"
$sheet.cells.item(1,12) = "0"
$sheet.cells.item(1,12).numberformat = 0
$sheet.cells.item(1,13) = "disable"
$str = 2
foreach ($in in $out){$sheet.cells.item($str,1) = $in.distinguishedname
$sheet.cells.item($str,2) = $in.name
$sheet.cells.item($str,3) = $in.postalcode
$sheet.cells.item($str,4) = $in.pager
$sheet.cells.item($str,5).numberformat = 0
$sheet.cells.item($str,5) = $in.pwdlastset
$sheet.cells.item($str,6) = $in.whencreated
if ($in.pwdlastset -eq 0 ){if ($beforedate -gt $in.whencreated){$sheet.cells.item($str,7) = "disable"}}
if ($sheet.cells.item($str,7).value() -eq $sheet.cells.item(1,13).value()){$inactive = $sheet.cells.item($str,1).value()
$objuser = [adsi]"ldap://$inactive"
$objuser.psbase.invokeset("accountdisabled", $true)
$objuser.setinfo()
move-adobject -identity "$inactive" -targetpath "ou=inactive,ou=$oucity,dc=mydomain,dc=com"}
$str++}
$sheet.cells.item(1,12) = ""
$sheet.cells.item(1,13) = ""
$sheet.cells.item(1,11) = ""
$range = $sheet.usedrange
$range.entirecolumn.autofit() | out-null
$excel.activeworkbook.saveas($path+$ouplace)
$excel.quit()}
$ouplace = "office"
inactive_users
$ouplace = "points"
inactive_users
$ouplace = "sc"
inactive_users
$ouplace = "warehouse"
inactive_users