here is my code, so im a sysadmin. 21, little coding exp... im trying to develop a script that will move inactive users to an ou, and export logs of their previous ou, description and principal name into a folder that i can then use for reverse engineering another script if i have a disaster.. works great besides the csv part wont export at all. all help is appreciated.
#Import AD Module
Import-Module ActiveDirectory
$ErrorActionPreference = "SilentlyContinue"
$DestOUName = "Disabled Users"
$searchbase = (Get-ADDomain).DistinguishedName
$DestinationOU = "OU=$DestOUName,$searchbase"
$DestOU = Get-ADOrganizationalUnit -Filter "distinguishedName = '$DestinationOU'"
If($null -eq $DestOU)
{
Write-Host "Creating New Orginizational Unit $DestinationOU"
New-ADOrganizationalUnit -Name $DestOUName -Path $searchbase
}
If(($null -ne $DestOU) -and ($null -ne $DestOUName))
{
Write-Host "Orginizational Unit $DestinationOU Exist"
}
$Days = (Get-Date).AddDays(-365)
Write-Host "Days: $Days"
$ProgramFiles = ($env:ProgramFiles)
Write-Host "ProgramFiles: $ProgramFiles"
$Name = "InnerCore"
Write-Host "FolderName: $Name"
$InnerCoreFolder = "$ProgramFiles\'$Name"
Write-Host "InnerCoreFolder: $InnerCoreFolder"
$Result = (Test-path $InnerCoreFolder)
Write-Host "Result: $Result"
Write-Host "Test-Path $(Test-Path $InnerCoreFolder)"
$Users = get-aduser -properties userPrincipalName,LastLogonDate,description -Filter {(LastLogonDate -lt $Days)} -SearchBase $searchbase
# Create Innercore Folder if Result is false, then move users to Dest Ou
if($Result -eq $false)
{
Write-Host "Creating a Folder for InnerCore Technologies"
New-Item -Name "$Name" -ItemType "directory"
}
if($Result -eq $true)
{
Write-Host "($InnerCoreFolder) Already Exist"
}
Write-Host "Moving Inactive Users to $DestOUName"
foreach ($user in $Users)
{
#Get ADUser DistinguishedName/CanomicalName
#Get ADUser Description
#Get ADUser OU
$OrigionalCanomicalName = $User.CanomicalName
$OrigionalDescription = $User.Description
$OrigionalOU = ($user.DistinguishedName -split ",",2)[1]
Get-aduser $OrigionalCanomicalName,$OrigionalDescription,$OrigionalOU | Select-Object $OrigionalCanomicalName,$OrigionalDescription,$OrigionalOU
#Move and Disable $User
$Date = Get-Date -Format "dddd MM/dd/yyyy HH:mm"
Write-Host "Disabling and Moving: $($user.userPrincipalName), $($user.LastLogonDate), $($user.description)"
#Set-AdUser $user -Enabled $False -Description "Disabled and Moved on ($Date)|$($user.description)"
#$User | Move-ADObject -TargetPath $DestinationOU
}
#Export Info as a CSV to the InnerCore Folder for Reverse Engineering
$LogName = "InactiveUsersBeforeChange.csv"
Write-Host "Logname: $Logname"
$LogPath = $InnerCoreFolder/$Logname
Write-Host = "$Logname": $LogPath
Export-csv -Path "$LogPath" -Name "$LogName"
Write-Host -ForegroundColor Cyan "exporting a log to the InnerCore folder just in case you need it :)"
Write-Host -ForegroundColor Green "all done :)"