Monday, July 23, 2012

Access/Create folders using WMIObject in PowerShell Script

function PS-CheckFolderExist($rootDrive,$rootFolder,$subFolder,$childFolder)
{
$disks = Get-WMIObject Win32_LogicalDisk -filter "DriveType=3" | Select DeviceID
foreach($disk in $disks)
{
 $deviceID = $disk.DeviceID;
 #write-host $deviceID
 if($rootDrive -eq $deviceID)
 {
  $mypathRoot=$rootDrive+"\"+$rootFolder+"\"+$subFolder+"\"+$childFolder
  if (test-path $mypathRoot -PathType Container)
  {
   write-host $mypathRoot "folder already exists!" -ForegroundColor Green
  }
  else
  {
   $mypathLevel1=$rootDrive+"\"+$rootFolder+"\"+$subFolder
   if (test-path $mypathLevel1 -PathType Container)
   {
    try
    {
     New-Item -path $mypathLevel1 -Name $childFolder -ItemType Directory
     write-host ""
     write-host $mypathLevel1"\"$childFolder "folder created..." -ForegroundColor Green
    }
    catch
    {
     write-host "Directory not available !..Please try again" -ForegroundColor Red
    }
   }
   else
   {
    $mypathLevel2=$rootDrive+"\"+$rootFolder
    if (test-path $mypathLevel2 -PathType Container)
    {
     try
     {
      New-Item -path $mypathLevel2 -Name $subFolder -ItemType Directory
      write-host ""
      write-host $mypathLevel2"\"$subFolder "folder created..." -ForegroundColor Green
     
      New-Item -path $mypathLevel2\$subFolder -Name $childFolder -ItemType Directory
      write-host ""
      write-host $mypathLevel2\$subFolder"\"$childFolder "folder created..." -ForegroundColor Green
     }
     catch
     {
      write-host "Directory not available !..Please try again" -ForegroundColor Red
     }
    }
    else
    {
     try
     {
      $mypathLevel3=$rootDrive+"\"+$rootFolder
      write-host $mypathLevel3
      New-Item -path $mypathLevel3 -ItemType Directory
      write-host ""
      write-host $mypathLevel3 "folder created..." -ForegroundColor Green
      New-Item -path $mypathLevel3 -Name $subFolder -ItemType Directory
      write-host ""
      write-host $mypathLevel3"\"$subFolder "folder created..." -ForegroundColor Green
      New-Item -path $mypathLevel3\$subFolder -Name $childFolder -ItemType Directory
      write-host ""
      write-host $mypathLevel3\$subFolder"\"$childFolder "folder created..." -ForegroundColor Green
     }
     catch
     {
      write-host "Directory not available !..Please try again" -ForegroundColor Red
     }
    }
   }
  }
 }
 else
 {
  write-host $rootDrive "drive is not available !..Please try again" -ForegroundColor Red
 }
 
}
}

PS-CheckFolderExist "C:" "iTest" "myPower" "log"

This example will create folders like below if doesnot exists!

C:\iTest\myPower\log

No comments:

Post a Comment