Showing posts with the label Windows. Powershell

Wanna disable SMBv1 to stop WannaCry

Link from Technet why SMBv1 should be disabled:

STOP using SMBv1

Link below shows how to to check whether SMBV1 is enabled and how to disable SMBV1:

How to disable SMBv1? - How to check if SMBv1 is enabled?

PowerShell codes below is from the link above:

Windows 8 and Windows Server 2012

To check whether SMB1 and SMB2 are enabled:

Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

To disable SMBv1 on the SMB server, run the following cmdlet:

Set-SmbServerConfiguration -EnableSMB1Protocol $false


Windows 7, Windows Server 2008 R2, Windows Vista, and Windows Server 2008

Requires Windows PowerShell 2.0 or a later version of PowerShell

To disable SMBv1 on the SMB server, run the following cmdlet:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force

Or if you're not comfortable using PowerShell just open registry editor and do it manually.

PowerShell is quite straight forw…

How to insert landscape orientation in Word?

If you are writing a thesis, a report or an article that you need to insert a landscape layout in a specific page in Word document but your orientation all long is portrait and changing the orientation causes the whole layout to change.
Inserting landscape in a specific page in a word document can be done by inserting section breaks. Let’s just make a basic example.
Let’s say you have 3 page document and you want that first page in Portrait mode, second page in landscape and third page in portrait layout also.
First, click on “home” tab, click the “show/hide paragraph marks” option or see the icon below. Enabling this option the section breaks, spaces and tabs will be visible. But what we are interested is to see the “section breaks”.

In the first page position the cursor on the last area at the bottom of the page.
In Word 2010, click on “page layout” in the ribbon tab. Click on “breaks” and select “next page”. In the second page, position also the cursor at the middle or bottom of t…

Svchost process in task manager

Svchost.exe contains generic host processes.

If the svchost.exe is accidentally close or intentionally close, then the system might crash or shutdown.

There are times that svchost.exe does consume quite a lot of resources and eats up the memory on the system. Thus, it's quite tempting to close or kill the process.

To kill or close a process forcefully via command line can be done using taskkill command plus the process id.

Ex: Taskkill /pid 1234

How to know exactly which service or process the svchost is running?

To check the pid and the process that svchost is running, type:

tasklist /svc

Tasklist /svc command will display the image name, pid and the services.

Output example for tasklist /svc command:

svchost.exe                   1172 EventSystem, fdPHost, FontCache, netprofm,
                                   nsi, W32Time, WdiServiceHost
svchost.exe                   1200 Appinfo, BITS, Browser, CertPropSvc,
                                   EapHost, IKEEXT, iphlpsvc, LanmanSe…

PowerShell copy file, link or folder to users’ desktop

Deploying a shortcut link, file or folders can easily be done via group policy preferences.
Or it can also be done using PowerShell as logon or start up script.
A one liner code snippet to deploy a file, a shortcut links or a folder to user’s desktop.
Copy a file: copy-item "\\shared_folder\files_2be_copied.txt" "c:\users\public\desktop"
Copy a shortcut link to user desktop: copy-item "\\shared_folder\shortcut_file_2be_copied.lnk" "c:\users\public\desktop"
Copy a folder: copy-item "\\shared_folder\folder_2be_copied" "c:\users\public\desktop" -Container -Recurse

================================ Free Android Apps:
Click on links below to find out more:
Linux Android App cheat sheet:
Multiplication Table for early learners
Catholic Rosary Guide  for Android:…

PowerShell move matching files in a folder

Requires PS 3.0
This is a two lines code snippet to move matching files in a source folder to another folder.

$SourceFolder = "C:\File_monitor_records\"
# Find all files matching *.csv in the folder specified  # Find csv files with 2016 in its filename Get-ChildItem -Path $SourceFolder -Filter *2016*.csv | move-item  -destination C:\File_monitor_archives\2016\

-Filter *2016*.csv –adjust or create your own pattern, use regex if necessary
Test the pattern before moving the files to make sure correct files are being moved. Check and double check, to avoid wasting time and effort.
This will just like matching files.

Get-ChildItem -Path $SourceFolder -Filter *2016*.csv

Move files and change file name:

================================ Free Android Apps:
Click on links below to find out more:
Linux Android App cheat sheet:…

Copy folder/file to multiple folders

Copy a single folder to multiple folders?

Copy a file to multiple folders?

This can be done easily using PowerShell script.

Script below requires PS 3.0, but it can easily be tweak for other version.

Here's the script:

$source_folder="D:\xfolder\United Folders"
dir -Directory "D:\Unity\Project_016\" | ForEach-Object {
write-host $_.fullname
Copy-Item -Path $source_folder -Destination $_.FullName

What the script does is the $source_folder is to be copied to all folders in the destination.

Basically, the "United Folders" is to be copied to the root of the sub folder in destination folder which is "D:\Unity\Project_016\".


After executing the script, the folders will look like this:
D:\Unity\Project_016\01\United Folders
D:\Unity\Project_016\02\United Folders
D:\Unity\Project_016\03\United Folders

It dep…

Active Directory GPO apply to forest

How to apply GPO to whole forest?

1. Open GPMC (Group Policy Management Console) and create a GPO for a single domain.

2. Link the GPO to other domains in the forest.
   Right click each domain and select "Link an Existing GPO Here" then select the GPO that will be applied to all domains in the forest.

3. If everything works fine, then you're a lucky man.

Before rolling out a GPO create a test Organizational Unit and create Active Directory user accounts for test purposes.

Then apply the GPO to the OU.

If it works properly then there's a good chance that it will work smoothly to all users but it's not a guarantee that it will work correctly to all users.

If the GPO is critically needed to be applied to all users and testing works okay, roll out the GPO and troubleshoot issues that may occur.

If no problem arises, then drink a cup of coffee and consider yourself "lucky".

If the GPO is not yet tested and you are not sure whether it will havoc the Active Directory …

PowerShell list processes by username

List all processes by username in PowerShell, requires that PowerShell to be run in elevated mode.

List all running processes for all users:

   Get-Process -IncludeUserName  | ft -AutoSize

     ft - Autosize --will not truncate the output

List all running processes and filter by UserName:

Get-Process -IncludeUserName  | Where UserName -EQ -EQ "This_User_Name"  | ft -AutoSize

Above script will filter the output to the specified username.

Get running word or winword process for the specified user and kill or stop the process.

Get-Process winword -IncludeUserName  | Where UserName -EQ "This_User_Name"  | Stop-Process -Force

-Force parameter will suppress the prompt whether to kill or stop the process, use sparingly in production environment

Requires PS 4.0 version to run above commands.

Cheers!! till next time.
================================ Free Android Apps:
Click on links below to find out more:
Linux Android App cheat sheet:…

PowerShell get filename with extension



[array]$data_files = Get-ChildItem $Folder_file_path  #get all items and save to array

  $i_count=$data_files.count  #count items on the array and assign to $i_count variable

  Write-Host $initCount   #optional to display count value

#if statement to process if files are found

if($data_files.count -gt 0){

#increment for loop from zero to last index of the array
 for  ($initCount; $initCount -lt $i_count; $initCount++ ) { 

       #Write-Host "$($data_files.Count) Files found in folder!"

       Write-Host   ($data_files[$initCount].name ) #display the filename with the extension

        Write-Output  ($data_files[$initCount].name ) >> d:\Files_list.txt # write data to a text file; ">>" append operator since for loop is used



    Write-Host No files in the folder!


Change the script folder path to the desired location.


PowerShell Copy Specific File Extension

PowerShell Code snippet to copy files with a particular extension.
$extension = ('.pdf', '.docx', '.txt')
Gci d:\WorkFolder $_ | Where-Object {
$extension -contains $_.Extension
} | % {Copy-Item $_.FullName d:\mix_backup}
To read files with specified filename extension.
$extension = ('.pdf', '.docx', '.txt')
Dir d:\WorkFolder $_ | Where-Object {
$extension -contains $_.Extension

$extension = ('.pdf', '.docx', '.txt')
Gci d:\WorkFolder $_ | Where-Object {
$extension -contains $_.Extension
} | % {write-host $_.FullName }

Copying files with the long path will result to an error.

Robocopy a command line tool is able to copy files exceeding 256 characters.

Below is the modified code that uses robocopy to copy files with long paths.

Do not interchange source and destination when using robocopy, the files will be overwritten.

$extension = ('.pdf', '.jpg', '.txt')
gci d:\WorkFolder $_ | Where-Object {

Text file compare using PowerShell

PowerShell Get Logged On User on remote machine

Scripting is awesome makes life easier.

For Sys Ad who doesn't want to get their hands wet with PoweShell, better get started PowerShell is a very good tool.

The script below gets the logged on user on the remote machine. No need to walk and get to the workstation just to check who is using the computer.

Here's the script:

$computername = "Lobby-085"

Invoke-Command -ComputerName $computername -ScriptBlock { $(Get-WMIObject -class Win32_ComputerSystem | select username).username }


The script can be tweaked to read a text file with the list of computer names and get the logged on users on the list.

Cheers..till next time.


Linux Android App cheat sheet:

Free Android Apps:

Click on links below to find out more:

Catholic Rosary Guide  for Android:…

List all IP Addresses of a server

Multi-homed server, a server with multi-services and is set with different IPs is quite common if there is a budget constraint. It is always good to have a dedicated server do a single function provided there is enough luxury to do it.
So if you just inherited the network and all the servers in your environment have documentation which is poor to nothing, then pray hard that nothing will happen until you have it under control by proper documentation and familiarization.
It's quite tough to troubleshoot when a problem arises if no proper documentation to depend on and there will be a lot of surprises as the work journey goes on.
Listing or getting the IP Addresses on your entire server and having a proper documentation will definitely help and ease the tension during some issues.
It’s also easy to troubleshoot during a network outage or other circumstances that may arise.
Listing the IP Address of a server can be done in different ways.
Doing it remotely is quite convenient and of…