Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Export results to log file of commands in script

Posted on 2014-10-07
10
Medium Priority
?
234 Views
Last Modified: 2014-10-30
Hey Experts.  Here is a script that I found and am trying to tweak.  I want to echo the results of the script to a log file so I can review it and see how well the script ran.

#Specify the OU you want to search for inactive accounts 
 
    $SearchOU=“ou=depts,dc=12" 
 
#Specify the OU you want to move your inactive computer accounts to 
 
    $DestinationOU=“ou=inactive,dc=12" 
 
#Specify the number of days that computers have been inactive for 
 
    $NumOfDaysInactiveFor = 60
     
#Specify the description to set on the computer account 
 
    $Today = Get-Date 
     
    $Description = "Account disabled due to inactivity on $Today" 

Get

 
#DO NOT MODIFY BELOW THIS LINE 
 
Get-QADComputer -InactiveFor $NumOfDaysInactiveFor -SizeLimit 0 -SearchRoot $searchOU -IncludedProperties ParentContainerDN | foreach {  
 
    $computer = $_.ComputerName 
    $SourceOU = $_.DN 
     
    #Remove the commented # from the next line if you want to set the description to be the source OU 
    #$Description = "SourceOU was $SourceOu" 
     
    Set-QADComputer $computer -Description $Description 
 
    Disable-QADComputer $computer 
 
    Move-QADObject $computer -NewParentContainer $destinationOU  

Open in new window


The log would show which computer(s) were disabled and moved to the Inactive OU.  I'm figuring this would be pretty easy for some PS guru but that isn't me so your help is greatly appreciated!
0
Comment
Question by:samiam41
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 3
10 Comments
 
LVL 22

Expert Comment

by:mcsween
ID: 40366823
Open Powershell prompt:
c:\path\to\script.ps1 | tee-object c:\path\to\outputfile.txt

Open in new window

0
 
LVL 9

Author Comment

by:samiam41
ID: 40366828
Thanks mcsween.  Can the command not be placed in the script?
0
 
LVL 22

Expert Comment

by:mcsween
ID: 40366831
You define the output when you call the script so you cannot place it within the script.  You could however create a second script with that command in it which  you can call.

Also, if you don't want the output on the screen and only in the file you can use this instead to overwrite
c:\path\to\script.ps1 > c:\path\to\outputfile.txt

Open in new window

or use this to append to the output file
c:\path\to\script.ps1 >> c:\path\to\outputfile.txt

Open in new window

0
Protect Your Retail Business and Reputation

Wi-Fi access doesn't just impact your business & customer experience, it can also affect your security.  Join us for an informative webinar to learn more about the top threats and trends impacting retail today, and the key solutions to protecting retail networks and reputations.

 
LVL 9

Author Comment

by:samiam41
ID: 40366862
Gotcha.  Yeah I just want the results to show up in the log file, not on screen.  I'll test with the information you provided.
0
 
LVL 9

Author Comment

by:samiam41
ID: 40369298
I couldn't get the PS script to work as their was some sort of error relating to not having the AD piece installed or enabled or whatever.  I wrote a batch script and never looked back at PS.

I have no idea if that works but believe that it does.  I will ask a mod to verify so that you can get the proper credit rather than delete the question out on you since I can't determine whether or not it does.  I'd rather you have the points AND a verified answer.

Hope that you understand.  Thanks!
0
 
LVL 22

Accepted Solution

by:
mcsween earned 2000 total points
ID: 40369764
If you want to use that powershell script you need to install Quest AD tools
http://www.quest.com/powershell/activeroles-server.aspx

Add this line to the top of your script (not the batch file)
Add-PSSnapin Quest.ActiveRoles.ADManagement

Open in new window


Then you would run the script from a batch file like this
powershell.exe -command "& 'c:\path\to\script.ps1' " > "C:\path\to\outputfile.txt"

Open in new window

0
 
LVL 22

Expert Comment

by:mcsween
ID: 40370921
So you can test until you get your original script running do the following.  Save the following line of code that calls  a single cmdlet to a new file C:\test.ps1.
Get-ADDomain

Open in new window

Then you can use the following command to launch the script and output to a file called c:\output.txt
powershell.exe -command "& 'c:\test.ps1' " > "C:\output.txt"

Open in new window

My original post assumed you were running this script from within a powershell prompt.  This one assumes you are running from a cmd window, run dialogue, or task scheduler.

Also make sure you execution policy is set to unrestricted or these scripts will not run.
Open Powershell Prompt and issue Get-ExecutionPolicy cmdlet.  If it returns anything but Unrestricted issue this command.
Set-ExecutionPolicy Unrestricted

Open in new window

0
 
LVL 22

Expert Comment

by:mcsween
ID: 40406236
Comment http:#a40366831 should be accepted as the answer as it directly answers the author's original question of how to save script output to a text file.
0
 
LVL 22

Expert Comment

by:mcsween
ID: 40406239
My last commend just disappeared so re-posting.

Commend http:#a40369764  should be the accepted answer with a grade of A as it directly answered the author's original question of how to save script output to a text file.
0

Featured Post

U.S. Department of Agriculture and Acronis Access

With the new era of mobile computing, smartphones and tablets, wireless communications and cloud services, the USDA sought to take advantage of a mobilized workforce and the blurring lines between personal and corporate computing resources.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Compliance and data security require steps be taken to prevent unauthorized users from copying data.  Here's one method to prevent data theft via USB drives (and writable optical media).
Active Directory can easily get cluttered with unused service, user and computer accounts. In this article, I will show you the way I like to implement ADCleanup..
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

664 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question