Blog Post

Basic Windows Administration through Powershell

,

Hi Guys,

In the previous blog I took you through PowerShell basics We know that PowerShell to works with different modules like SQL server, Active Directory, Windows Administration, IIS, etc. In this blog I shall be updating a few scripts I've used. You may modify the same as per your environment.
You will be able to find many such scripts online and under http://powershell.com

1.Deleting Files older than Certain Date

#Folder from which files are to be deleted 
$filepath= "D:\"#Change the path based on your file location
#Accepting the number of days prior to which user wants to delete the files
$no_of_days = read-host "Enter the number of days(integer) prior to which backups should be delete "
$a=get-date
$a= $a.adddays(-$no_of_days)
#Confirming the date with the user
write-host "Do you want to delete files older than"$a"   Y/N"
$response=read-host
If ($response -eq "Y"-or $response-eq "y")
{
write-host " Deleting files from $filepath older than " $a
#Deleting files only
get-childitem $path -recurse | where-object {$_.mode -notmatch"d"} |where-object {$_.lastwritetime.date -lt $a} | ForEach-Object{ Write-Host "Deleting "$_.FullName; Remove-Item $_.FullName;}
}
#Confirming shell closure
else
{
write-host "Execution cancelled to execute successfully pass the right parameters & hit Y/y. Any other input will be considered Invalid"

start-sleep -s 7} 

2. Pinging Multiple Servers

#Servername Text File
$filepath = "C:\Test.txt" #Change the path based on your file location
$Sname = Get-Content $filepath
#Running Loop for each servername in text file
foreach ($S in $Sname)
{
     #Checks if the server is pingable
     $StatusFlag =test-Connection -ComputerName$S -Count 1 -Quiet
     if ($StatusFlag) #If server is pingable dispaly source,destination & response time
      
       {
#Sends just one packet to the server and provides the response time 
        Test-Connection $S-count 1|select-object -Property @{Name="Source"; Expression = {$_.pscomputername}},@{Name="Destination"; Expression = {$_.address}},responsetime
       }
      else
                           
        {
         write-host "$S is inaccessible from $env:computername" -ForegroundColorCyan
        }    
        
} 

3.Multiple Server Entire Directory Structure and File Copy 

# Directory from where the files and folder structure needs to be copied
$directorypath = 'C:\directory\*.*' #Change the path based on your file location
$servercount = read-host "Enter total number of servers for filecopy"
# Accepting servernames and inserting them in an Array
if ($servercount-gt 0)
{
#write-host "Enter the servernames"
$servers = @()
$i=0
 do
{
   $servers += read-host "Enter Server $($i+1)"
   $i++
}   while($i -lt $servercount)
   
   
    #Once servernames are accepted copy the entire direcorypath structure with the files to destination 
    Foreach ($s in $servers){
   
    #write-host "destination is " $s
     Copy-Item $directorypath-Destination "\\$s\C$\directory"-Recurse 
    #Change the Destination as per your requirement
     }
}
else
{
write-host "Total number of servers is 0 script exccution closed"
}
I'll update this with more scripts as and when tested and used. Until then keep learning and exploring...

Rate

★ ★ ★ ★ ★ ★ ★ ★ ★ ★

You rated this post out of 5. Change rating

Share

Share

Rate

★ ★ ★ ★ ★ ★ ★ ★ ★ ★

You rated this post out of 5. Change rating