Skip to main content

Posts

Showing posts with the label Bash script

PowerShell regex count specific character or number

Example input is: 0009911000


$Input_Number = '0009911000'

#[1] = tells regex to match on the right or look forward
$xtotal=[regex]::Matches($Input_Number,'0+')[1].Value.Length
#[0] = tells regex to match on the left or look backward
$ytotal=[regex]::Matches($Input_Number,'0+')[0].Value.Length

#Matches($Number,'0+') means #Matches($input, $pattern)

Write-Output $xtotal Write-Output $ytotal
Image output from PowerShell ISE:


Above code works or matches if input is something like this: “0009911000” There are zeroes on the left and right and in between are any numbers or characters.
For input like this: 0000991100010 in which zeroes are in different position of the string the below code will work.
$Input_Number = '0000991100010' $xytotal=[regex]::Matches($Input_Number,'[0]*[0]*[0]+') Write-Output $xytotal

Output will be something like this: Groups: {0000} Success: True Captures : {0000} Index: 0 Length: 4 Value: 0000
Groups: {000} Success: T…

Test AD account password without logging in to the computer

Documenting AD password is a good practice and should be a part of IT policy.
It’s easier to troubleshoot and support users if the password is known to IT. Of course, ethical use of the password should be followed.
How to test an active directory account password whether it’s working or not, without logging in or signing in on a computer?
PowerShell can help to test a user account password quite easily.
AD admin account is needed and the PowerShell must be elevated while running the script below. Correct version of PowerShell is needed for this script.
See image below:


That’s it! Just replace the username and password to be tested and you can tell your users that the password is not working and needs password reset for their account to work.
The script is written for educational purposes and used it ethically.
Cheers!! Till next time. Happy Coding!!!
================================ Free Android Apps:
Click  links below to find out more:
Excel Keyboard guide: https://play.google.com/store/apps/det…

Replace column value of text files using awk

AWK is a handy tool to process large text files.
Ever came across a need to replace 100 or more text files value in a single column?
Of course, the old school method is to do it manually which is definitely time consuming and not efficient at all.
Below is a sample code how to replace value in a column for all text files found in the directory specified.
#!/bin/bash
for file in /home/pc_text/Documents/source/*
do xfilename=$(basename $file)
#echo "$xfilename" if you need to display the filename while the code is running
awk 'FNR==1{print $0}' $file >> /home/pc_text/Documents/output/$xfilename
awk 'NR>1{print $1 , $2 , $3 , $4, "0.873" , $6 , $7 }' $file >> /home/pc_text/Documents/output/$xfilename
done
Code explanation:
for file in /home/pc_text/Documents/source/* - get all text files for processing
xfilename=$(basename $file) – get all the filename of the text files
awk 'FNR==1{print $0}' $file >> /home/pc_text/Documents/outpu…

Add a remote folder in Linux

Adding a remote folder in Linux or basically mounting a folder in Linux system is quite easy.
Like in copying and moving files or folder, it requires a source and a destination.
A simple copy command in Linux is:
cp --source or any file to be copied--  --destination or where to copy the file--

In mounting a folder, using mount command does require also a source and a destination. man mount will display the available options for this command.
Since source and destination is a pre-requisite in cp, mv ormount command.
In mounting a remote folder, the destination folder must be ready or created first before typing the mount command.

Linux has default destination for mounting folder which is /mnt folder.
Mounting a remote folder can be also done on other location such /home /usr or other preferred locations.

To mount a folder in /mnt directory, a sub folder must be created first.
To create a folder, type: mkdir /mnt/remote_folder_101

Once the sub folder or the destination folder is created…

Change Password of Scheduled Tasks in PowerShell

How to change Tasks Scheduler password?
How to set a new password for scheduled tasks in Windows Task Scheduler using a script?
PowerShell is always a friend to cure laziness in an effective and efficient way.
Of course, not all things can be done by automation. Sometimes manual method is more applicable and a secure method on some scenario.
If you have a few servers that has scheduled tasks on it and need to change the password occasionally to comply with cyber security policies, changing tasks manually might be painful and chances are some tasks might be missed.
Changing the password in Task Scheduler using PowerShell is an efficient method if the task has to be done repeatedly on a few servers.
To change the password, the TaskName must be known since it’s an input or a required field for the command used to change the Task password.
To get Tasks Name use the PowerShell code below:
Get-ScheduleTask - TaskPath "\"| Get-ScheduledTaskInfo
The TaskPath refers to location of the Task Na…

How to get uptime in Windows using PowerShell

If you need to monitor how long the machine has been up, or whether the machine rebooted by itself or someone has just rebooted the server for without any reason. Then getting the uptime of the machine or server is important.
PowerShell code below gets the uptime by using a command line and processing its output.
#==========================
#get the uptime and save to text file Invoke-command -ScriptBlock { net statistics server >c:\online.txt }  $xcmd = select-string -path "c:\online.txt" -Pattern "since" | select line |ft -hidetableheaders  write-output $xcmd | out-file c:\online1.txt  $stry = get-content c:\online1.txt | out-string  $concatString = $stry.Substring(18,15) Write-host  $concatString
#Get the date $StartDate= [datetime] $concatString $EndDate= (GET-DATE) $xdate = NEW-TIMESPAN –Start $StartDate –End $EndDate write-output $xdate #==========================
Sample output:
Days              : 3 Hours             : 12 Minutes           : 12 Seconds           : 17 …

Add a user in command line in Windows and Linux

How to add a user via command line in Windows and Linux?

Adding a user whether in Linux or Windows requires the user have rights to create.

In Windows you must be a member of the administrator or other groups who has the rights to create a user.

In Linux you must be a root or either a member of the sudoers depending on what distro you are using.

In Windows to create  a local user in a Windows client operating system such as Windows 7 or Windows 10.

A one liner command can be issued to create a local user, using the command prompt Window at an elevated mode or administrator mode.

At the command prompt type:

Net user  "username" "password" /add

Net user  << this should be type like that it’s part of the command syntax while username and password, can be any data and of course /add is needed meaning the command is adding a user to the system.

Example: net user spiderbond 007-homeSp!dey /add

Command will add a user name called spiderbond and the password is 007-…

Linux list folders recursively

To list all folders on the root directory, type:
  ls -d /*
Sample Output:
/bin     /dev   /smsbackup  /lost+found  /mnt  /proc  /selinux  /tmp /boot    /etc   /lib        /media       /net  /root  /srv      /usr /cgroup  /home  /lib64      /misc        /opt  /sbin  /sys      /var
To list all folders on the current folder, one level depth only; type:
[xxx@mx var]$ ls -d */
Sample Output:
account/  cvs/    games/  local/  lost+found/  opt/       spool/  yp/ cache/    db/     gdm/    lock/  sms/        preserve/  tmp/ crash/    empty/  lib/    log/    nis/         run/       www/

List all folders and sub folders, 2 level depth or 2 level hierarchy; type:
[xxx@mx var]$ ls -d */*/
Sample Output:
cache/abrt-di/        lib/misc/        log/ConsoleKit/      run/portreserve/ cache/cups/           lib/mlocate/     log/cups/            run/rhsm/ cache/fontconfig/     lib/net-snmp/    log/sms/            run/saslauthd/ cache/foomatic/       lib/nfs/         log/gdm/             run/sepermit/ cache…

Use tar command to backup in Linux

tar or tape archive is a basic tool that every Linux user should know.

Its syntax is quite different from the traditional copy or move command.

Since tar works from a 'current working directory' perspective.

Traditional syntax for copy or move is source then the destination.

In tar, the syntax is the filename or the path where the backup will be save and the source or the folder to be backed up or archived.

Typing: man tar (at the terminal shows the following)

tar -cf archive.tar foo bar
# Create archive.tar from files foo and bar.

Basically, it's like the destination where the file will be saved and the source or the files that will be archived.

Here's a simple bash script that will append the time and date the tar file was executed to the filename of the tar file.

If the bash script is automated via cron, the filename of the tar file will include the date and time the cron executes the script.


#script begins

#!/bin/bash
NOW=$(date +%Y%m%d%H%M)
echo $NOW
tar -Pczvf   /mnt/o…