Create Group Of Users In Powershell

 

Hello everybody,

today I want to share just simple script, with which you can create group of users according to some rules:

$pw = "strangePassword" | ConvertTo-SecureString -AsPlainText -Force

for($i=1

$i -le 320

     $i++){

       $userName = "repeatingUserName" + $i

   New-ADUser -Name $userName -GivenName $userName -AccountPassword $pw -ChangePasswordAtLogon $false -PasswordNeverExpires $true -Enabled $true

           #Remove-ADUser -Identity $userName -Confirm:$false

}

No Comments

Add a Comment
 

 

Powershell Formatting Strings

 

Hello everybody,

today I want to write few words about formatting strings in PowerShell.

Consider the following example:

"Today is $(Get-Date). Enjoy your life"

Output will be the following:

Today is 08/23/2016 16:04:18. Enjoy your life

So, if you want to call some PowerShell function, you can just put it into brackets, put $ in front of it and get the result.

Conisder another example:

"You own to me $(44 + 44* 0.15) dollars"

It will give following output:

You own to me 50.6 dollars

Very cool stuf in PowerShell is about using formatting with templating and key -f.

Take a look:

$apples = 5

$pomegranade = 22

cls

"I have {0} apples and {1} pomegranades" -f $apples, $pomegranade

How do you feel, what will be the output of that program?

here it is:

I have 5 apples and 22 pomegranades

-f is something that says to PowerShell, please apply formatting to preceding string.

Of course, PowerShell can format numbers as well.

Take a look at following PS code:

$num = 9876543210.123456789

"N0 {0:n0} formatting" -f $num

"N1 {0:n1} formatting" -f $num

"N2 {0:n2} formatting" -f $num

"N3 {0:n3} formatting" -f $num

"N0 special formatting {0,20:n0} formatting" -f $num

I hope you've got the pattern.

if you write in curly brackets 0 and then nX, then PS will print x numbers after comma. 

But if you write {x,y:n0} then PS will do the following, it will take the variable, remove numbers after comma, and tries to make of of length y. Below output may help you to grasp clearer:

N0 9,876,543,210 formatting

N1 9,876,543,210.1 formatting

N2 9,876,543,210.12 formatting

N3 9,876,543,210.123 formatting

N0 special formatting        9,876,543,210 formatting

As you can see, N0 special formatting cutted numbers after dot, added comas, and also !!! added aligning, to make string of length 20.

If anybody speaks about numbers, quite often they need to calculate not just apples, pomegranades, but also need to calculate money. And for money special formatting character is intended. It is C character, which stands for currency.

Take a look at code below:

"C0 {0:C0} formatting" -f $num

"C0 {0:C1} formatting" -f $num

"C0 {0:C2} formatting" -f $num

"C0 {0:C3} formatting" -f $num

Try to imagine, what will be the output? Ready?

here it is:

C0 $9,876,543,210 formatting

C0 $9,876,543,210.1 formatting

C0 $9,876,543,210.12 formatting

C0 $9,876,543,210.123 formatting

As you can see, PS reads from system what is default currency at my system, and adds it to formatting. In my case it is $.

PS takes care not only about money. It also takes care about percentages.

Notice following sample:

$percent = 0.1245

"P0 {0:P0}" -f $percent

"P0 {0:P1}" -f $percent

"P0 {0:P2}" -f $percent

If you suppose, that it will print you zeros, or something like this, then notice the output:

P0 12 %

P0 12.5 %

P0 12.45 %

As you can see it multiplies variable at 100, and adds sign of % to the end. 

Now let's think about programmers. If you are programmer, you will think not only in decimal format, but also in hexadecimal format as well. Look at hexadecimal formatting in PowerShell. And you can pass into formatting of any kind. Decimal or hexadecimal. Take a look:

"X0 0x{0:x0} formatting" -f 69

"X0 0x{0:x0} formatting" -f 0x45

And as always here is the output:

X0 0x45 formatting

X0 0x45 formatting

One more string specifier is for decima numbers. It is named by D.

Take a look at the following code:

$dec = 1234567890

"D0 {0:D0}" -f $dec

"D8 {0:D12}" -f $dec

"D0 {0:D0}" -f $dec

"D0 {0,12:D0}" -f $dec

below goes output from it:

D0 1234567890

D8 001234567890

D0 1234567890

D0   1234567890

Take not that "D8 {0:D12}" -f $dec added zeroz in begining of string, while "D0 {0,12:D0}" -f $dec added spaces in begining. 

Other parts of formatting I'll cover in other article.

No Comments

Add a Comment
 

 

Set Execution Policy Unrestricted For Current User

 

Hello everybody,

today I want to write small trick of how to modify execution policy for current user. Here is command:

Set-ExecutionPolicy "Unrestricted" -Scope CurrentUser -Confirm:$false

Have a great day.

No Comments

Add a Comment
 

 

How To Make Pause In Powershell Script Execution

 

Hello everybody,

today I want to make short note about how to make pause untill user press a key in PowerShell execution.

Here it is:

  Write-Host "Press any key to continue ..."

 $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

Presented code will make a pause.

No Comments

Add a Comment
 

 

Powershell Comparison

 

Hello everybody,

today I want to share another trick from PowerShell activities. 

So, imagine, that you see following PowerShell code:

"048" -eq 48

48 -eq "048"

What do you expect to see? True, True or True, False ....

Here is the output:

PS C:\sources> "048" -eq 48

48 -eq "048"

False

True

PowerShell has interesting behaviour in this case. It takes value on the right, and converts it to the value on the left. 

For the first case PS will make following comparison:

convert 48 to string, which will be "48". Compares "48" with "048" and produce False.

No Comments

Add a Comment