←December→
| Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
| |
1 |
2 |
3 |
4 |
5 |
6 |
| 7 |
8 |
9 |
10 |
11 |
12 |
13 |
| 14 |
15 |
16 |
17 |
18 |
19 |
20 |
| 21 |
22 |
23 |
24 |
25 |
26 |
27 |
| 28 |
29 |
30 |
31 |
|
|
|
|
|
Mon, Nov 24, 2025 7:46 pm
Determining the location of a user's "My Documents" folder with PowerShell
I needed to move some files from one Windows 11 system that is no longer
being used, as the user is no longer working for the company, to another
Windows 11 system where the user of that system, Pam, is now handling a task
formerly handled by the prior employee, but while logged onto the account for
the user now handling the task on her system, I noticed that her
Documents folder was empty. The
Windows domain name
changed at that business a few years ago, so I thought that perhaps she
might be using a Documents directory associated with her account under
the prior domain name rather than the new one created for her new domain
login. You can determine the location of a user's "My Documents" directory,
which can be redirected to another location, including a network share
or another drive, by issuing the PowerShell command
[Environment]::GetFolderPath("MyDocuments"). E.g.:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS C:\Users\Pam> [Environment]::GetFolderPath("MyDocuments")
C:\Users\Pam\Documents
PS C:\Users\Pam>
The command utilizes the GetFolderPath method from the
System.Environment class to retrieve the path of special folders,
including "MyDocuments," for the user under whose context the script or command
is executed. This method correctly identifies the mapped location even if the
Documents folder has been redirected or moved from the default location.
In this case, I found that her "My Documents" directory was pointing to
the directory associated with the old domain name. Her "home" folder
was also pointing to the home folder that was in use for her account
in the old domain. You can type $home in a PowerShell window to
see that value. Or you can use $env:USERPROFILE to see the same
information.
PS C:\Users\Pam> $Home
C:\Users\Pam
PS C:\Users\Pam >$env:userprofile
C:\Users\Pam
PS C:\Users\Pam>
[/os/windows/PowerShell]
permanent link
Sat, Nov 22, 2025 10:12 pm
PowerShell cmdlets to check remote connectivity and firewall rules
When I tried to establish a
Secure Shell (SSH)
connection to a Windows 11 PC at a remote location today, I was unable to
do so. I usually connect to the
Windows
domain controller at the location and establish the SSH connection
to the user's Windows 11 system through it, but that was not working. I thought
the problem was likely due to
McAfee stopping providing
firewall protection for incoming connections to ports on PCs as part of
their antivirus software, since the antivirus
software on PCs at that location was
McAfee Antivirus
Plus. When McAfee stopped providing that firewall service as part of
McAfee AntiVirus Plus, the software reverted firewall protection for incoming
connections to Microsoft's default firewall software,
Microsoft Defender
Firewall, aka Windows Firewall. When I check firewall protection on a
Windows system running McAfee AntiVirus Plus, I now see the following message:
McAfee and Windows Defender are now working side by side
Our Advanced Firewall provides enhanced protection by blocking risky
outgoing connections. Windows Defender Firewall provides protection for
incoming connections.
Keep both firewalls on for complete protection.
So I thought I likely needed to create similar firewall rules for
incoming connections in the Windows Firewall software as had existed
previously in the McAfee firewall software.
[ More Info ]
[/os/windows/PowerShell]
permanent link
Sun, Jun 30, 2024 9:12 pm
Determining the version of a PDF document
If you have a Portable Document
Format (PDF) file and wish to determine the version of the PDF standard
used for the document, that information is stored in the first line of the
file. You can open the file with a
text editor, such
as the Windows
Notepad application on a Microsoft Windows system and view
the first line to determine the PDF version used for the file.
You will see %PDF-x.y where x.y is the
version of the PDF standard used in the creation of the file,
e.g., %PDF-1.7 for version 1.7.
On a Microsoft Windows system, you could also open a
PowerShell window (you can type PowerShell
in the Windows Search field and click on the
application when you see it returned in the list of
results) and use the Get-Content
cmdlet
and the -First parameter followed by the number one.
E.g.:
PS C:\> Get-Content "July 2024 Newsletter.pdf" -First 1
%PDF-1.7
PS C:\>
Related:
-
PowerShell Get-Content equivalents to Linux head and tail commands
Date: March 22, 2024
[/os/windows/PowerShell]
permanent link
Mon, Apr 15, 2024 9:01 pm
Calculating a hash value for a file with Get-FileHash
The PowerShell cmdlet
Get-FileHash provides a
cryptographic hash function that will allow you to determine a
hash value of a file on a Microsoft Windows system. By default,
the cmdlet
uses the SHA-256 hash
function, but you can specify other functions, such as
MD5, using the
-Algorithm parameter. You can change the output to a list
format by
piping the output
of the cmdlet to Format-List.
PS C:\users\public\downloads> Get-FileHash ".\rel_x64_Xming-7-7-1-1-setup.exe"
Algorithm Hash Path
--------- ---- ----
SHA256 B7B4C0A191E315686A2481DCC8BBB27D6D7A156FBF689768E48CF08207B86560 C:\users\public\downloads\rel...
PS C:\users\public\downloads> Get-FileHash ".\rel_x64_Xming-7-7-1-1-setup.exe" | Format-List
Algorithm : SHA256
Hash : B7B4C0A191E315686A2481DCC8BBB27D6D7A156FBF689768E48CF08207B86560
Path : C:\users\public\downloads\rel_x64_Xming-7-7-1-1-setup.exe
PS C:\users\public\downloads> Get-FileHash -Algorithm MD5 ".\rel_x64_Xming-7-7-1-1-setup.exe"
Algorithm Hash Path
--------- ---- ----
MD5 BA200636A596A84E0877901CE89D1C2E C:\users\public\downloads\rel...
PS C:\users\public\downloads>
[ More Info ]
[/os/windows/PowerShell]
permanent link
Fri, Mar 22, 2024 9:44 pm
PowerShell Get-Content equivalents to Linux head and tail commands
The Windows
PowerShell
Get-Content
cmdlet can provide the equivalent to the Unix/Linux
head and
tail commands.
E.g., suppose a file named
somefile.txt contains the following
ten lines:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
The following Get-Content commands could be used to obtain the first 5
and the last 5 lines in the file.
PS C:\Users\Arnold\Documents> Get-Content somefile.txt -Head 5
line 1
line 2
line 3
line 4
line 5
PS C:\Users\Arnold\Documents> Get-Content somefile.txt -Tail 5
line 6
line 7
line 8
line 9
line 10
PS C:\Users\Arnold\Documents> Get-Content somefile.txt -TotalCount 5
line 1
line 2
line 3
line 4
line 5
C:\Users\Arnold\Documents>
The TotalCount parameter can function like the
Head parameter and will return the first x number of
lines specified with x being 5 in the example above. You can also
use it to obtain a specific line, though. E.g., if you wished to see the
7th line in the file, you could use the command below.
PS C:\Users\Arnold\Documents> (Get-Content Somefile.txt -TotalCount 7)[-1]
line 7
PS C:\Users\Arnold\Documents>
By default the delimiter for lines is the
newline, aka end-of-line
character, \n, but you can change that with the -Delimiter
parameter.
References:
-
Get-Content
Microsoft Learn
[/os/windows/PowerShell]
permanent link
Fri, Sep 15, 2023 5:14 pm
Determining the Serial Number of a Disk Drive with PowerShell
If you need to determine the serial number of a hard disk drive (HDD)
attached to a Microsoft Windows system, you can do so from a
PowerShell
window using the cmdlet Get-Disk (you can open a
PowerShell window by typing PowerShell in the Windows "Type here to
search field on a Windows 10 system and then selecting the app when it is
returned in the list of search results). If you just want a list of drives
attached to the system by a USB
connection, you can pipe
the output of the cmdlet to the
Where-Object cmdlet where you can filter on just drives that have a USB
connection as shown below.
PS C:\> Get-Disk | Where-Object -FilterScript {$_.Bustype -Eq "USB"}
Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition
Style
------ ------------- ------------- ------------ ----------------- ---------- ----------
1 SanDisk Cr... 03025228050421082418 Healthy No Media 0 B RAW
2 USB2.0 Car... 606569746800 Healthy No Media 0 B RAW
4 USB2.0 Car... 606569746802 Healthy No Media 0 B RAW
5 USB2.0 Car... 606569746803 Healthy No Media 0 B RAW
3 USB2.0 Car... 606569746801 Healthy No Media 0 B RAW
6 WD My Pass... WXM1A375CKEZ Healthy Online 931.48 GB GPT
PS C:\>
[ More Info ]
[/os/windows/PowerShell]
permanent link
Wed, Sep 13, 2023 10:22 pm
Filtering Windows Updates by a Specific Date
When I logged into a user's Microsoft Windows 10 system to check on a problem,
I found the system had rebooted late the night before, September 12, 2003, at
a time much later than I would expect the user to be working, so I didn't think
she had rebooted it. I didn't know if the reboot might be related to the
problem she reported to me or could possibly just be Microsoft Windows
rebooting because of an automatically installed update. From a
command prompt window, you can
obtain the last time the system was rebooted using the
systeminfo
command. To see just the last reboot time and not all of the other output
it provides, you can filter the output with the
find command
by
piping the output of the
systeminfo command to the
find command. You can check on updates that have been
installed using the
Windows Management Instrumentation Command-line (WMIC) command
wmic qfe list ("qfe" stands for "Quick Fix Engineering").
Since that command can also generate a lot of output for updates on dates
you may not be interested in, you can also filter that output
with the
find command.
[ More Info
]
[/os/windows/PowerShell]
permanent link
Fri, Mar 05, 2021 1:38 pm
Obtain Monitor Manufacturer Information Using PowerShell
I wanted to be able to obtain information on a monitor attached to a
Windows 10 desktop system, including the manufacturer,
model number, serial number, and date of manufacture, from a
command-line
interface (CLI). One way to do that is by using
PowerShell, which
Microsoft provides as part of its Windows operating system. You can open
a PowerShell window on a Microsoft Windows 10 system by typing
PowerShell in the "Type here to search" field at the bottom
of the Windows display. You should see the Windows PowerShell app listed as
an option you can click on to open a PowerShell window. If you type
gwmi WmiMonitorID -Namespace root\wmi at the prompt and hit
enter, you will see information similar to the following output displayed.
PS C:\> gwmi WmiMonitorID -Namespace root\wmi
__GENUS : 2
__CLASS : WmiMonitorID
__SUPERCLASS : MSMonitorClass
__DYNASTY : MSMonitorClass
__RELPATH : WmiMonitorID.InstanceName="DISPLAY\\HPN360C\\5&2c03a83e&0&UID262_0"
__PROPERTY_COUNT : 9
__DERIVATION : {MSMonitorClass}
__SERVER : YTTERBIUM
__NAMESPACE : root\wmi
__PATH : \\YTTERBIUM\root\wmi:WmiMonitorID.InstanceName="DISPLAY\\HPN360C\\5&2c03a83e&0&UID262_0"
Active : True
InstanceName : DISPLAY\HPN360C\5&2c03a83e&0&UID262_0
ManufacturerName : {72, 80, 78, 0...}
ProductCodeID : {51, 54, 48, 67...}
SerialNumberID : {67, 78, 75, 48...}
UserFriendlyName : {72, 80, 32, 51...}
UserFriendlyNameLength : 13
WeekOfManufacture : 12
YearOfManufacture : 2020
PSComputerName : YTTERBIUM
PS C:\>
[More Info ]
[/os/windows/PowerShell]
permanent link
Sat, Oct 21, 2017 10:13 pm
Using PowerShell to determine the installed version of Windows
You can determine the version of Microsoft Windows installed on a system
from a
PowerShell prompt using [System.Environment]::OSVersion.Version
or (Get-WmiObject -class Win32_OperatingSystem).Caption.
PS C:\Users\Public> [System.Environment]::OSVersion.Version
Major Minor Build Revision
----- ----- ----- --------
10 0 15063 0
PS C:\Users\Public> (Get-WmiObject -class Win32_OperatingSystem).Caption
Microsoft Windows 10 Pro
PS C:\Users\Public> (Get-WmiObject -class Win32_OperatingSystem)
SystemDirectory : C:\WINDOWS\system32
Organization : Microsoft
BuildNumber : 15063
RegisteredUser : Jeanne
SerialNumber : 00330-80000-00000-AA775
Version : 10.0.15063
PS C:\Users\Public>
[ More Info ]
[/os/windows/PowerShell]
permanent link
Fri, Oct 20, 2017 10:57 pm
Querying disks with the PowerShell Get-Disk cmdlet
You can use the PowerShell Get-Disk cmdlet to query disk drives
within or attached to a PC running the
Microsoft Windows operating system. E.g.:
PS C:\Users\Public> Get-Disk
Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition
Style
------ ------------- ------------- ------------ ----------------- ---------- ----------
0 ST3320418AS 9VMNNJDN Healthy Online 298.09 GB MBR
4 Generic- C... 058F63626421 Healthy No Media 0 B RAW
6 Generic- M... 058F63626423 Healthy No Media 0 B RAW
3 Generic- S... 058F63626420 Healthy No Media 0 B RAW
5 Generic- S... 058F63626422 Healthy No Media 0 B RAW
1 Lexar USB ... AA58ZF9FJCCALAOA Healthy Online 14.92 GB MBR
2 WD My Pass... WXP1A27034VH Healthy Online 931.48 GB GPT
PS C:\Users\Public>
[ More Info ]
[/os/windows/PowerShell]
permanent link
Privacy Policy
Contact