Showing posts with label array. Show all posts
Showing posts with label array. Show all posts

Thursday, 18 March 2021

PowerShell Script: Copy Several files with same name to a folder without overriding with a differentiator

Powershell Script Description:

PowerShell script that will go through a directory called "C:\Deploy"

that has several subfolders with a file named "index.html in each of the subfolders and copy all the files named "index.html to a new folder called "C:\AllIndex" but not overwrite.

The files after copying would be named index001.html, index002.html, index003.html...



#source dir

$src = "C:\Deploy"

#destination dir 
$destn = "C:\AllIndex"

 

#Get the list of index.html
$index_html_list = (Get-ChildItem -Path "$src" -Name "index.html" -Recurse -Force)

 

# initialize counter
$counter = 1

 

#run in loop for all index.html 
foreach ($html in $index_html_list){
$counter = $counter.ToString('000')

#copy each index.html to new file in destination dir 
Copy-Item -Path "$src\$html" -Destination "$destn\index$counter.html"
#increment counter
$counter = [int]$counter + 1

}

 

Saturday, 31 October 2020

PowerShell: Write a Script to Add a local user

Create a group of users using a PowerShell script.

There is a file consisting of a group of 3 new user name’s and passwords in each line.

userFile.txt
Jack,123jack
Tim,123tim
Shawn,123shawn


 Write a script that does the following

i.      Retrieve the names and assign them to an array

ii.      Write a loop that prints out each of the user names. 

iii.      Create an account and Add each of these users to the local group  'Users'


PowerShell Script


#Use get-content to retrieve the names and assign them to an array
    $userData = Get-Content .\userFile.txt

#Write a loop that prints out each of the user names. 
    Write-Output "Below is the list of users:"
    foreach ($data in $userData){
        $user = ($data.split(","))[0]
        $user
    }

#create an account using localuser for each of the users, Add each of these users to the local group Users
    foreach ($data in $userData){
       $user = ($data.split(","))[0]
        $psswd = ($data.split(","))[1]
    
#convert password to  secure string
        $securPass=convertTo-SecureString -string $psswd -asPlainText -Force
#create new local user
        New-LocalUser -Name "$user"  -Password $securPass
#add user to local group Users
        Add-LocalGroupMember -Group "Users" -Member "$user"
}



You can verify the script by using the below cmdlet in PowerShell prompt:

        Get-LocalGroupMember -Name 'Users





Wednesday, 28 October 2020

Simple parsing in PowerShell & Sorting

Take a variable and break it up into 2 parts, store it in a simple array, and display values using PowerShell. Also, sort the array in descending order.


Input: "Hello-World"
variable one would be from 1st character of the input and up to the "-"
variable two would be from the character "-" to the end of the input variable


so
Output 1 would be "Hello"
Output 2 would be "World"


Program:

$string = Read-Host "Enter a String" 
$varArray = $string.split("-")

#variable 1
$varArray[0]

#variable 2
$varArray[1]

#sorting the array
Write-Host "`nSorted Array in Descending Order:"
$varArray | Sort-Object -Descending