I don't use Set-Content very often, this is because for routine tasks that
need to save to file I prefer to use
Out-File. The one job that I have for the Set-Content cmdlet is
editing a file with -Replace. What makes me wary of
Set-Content is that instead of appending, its default behaviour is to delete the contents of a file.
Note 1: The reason that I used the variable
$File to define
the path, is that I want to remind you to change its value before
running this script on your machine.
Note 2: If the file specified does not exist PowerShell
creates it!
Note 3: However, if the file has existing content, the new value
will overwrite the old entries with the -value.
Note 4: One reason that PowerShell is replacing
VBScript is the ease with which PowerShell creates, opens and closes files.
In fact it handles these basic file operations automatically, thus don't
look for, or worry about, 'File Close', PowerShell will handle the operation
natively.
Although -Replace does not appear amongst the parameter's of any
PowerShell cmdlet it clearly works in this context. Observe in
this example how the two Content cmdlets work
together to edit the text.
Recommended: Solarwinds' Permissions Analyzer - Free Active Directory Tool
I like the
Permissions Monitor because it enables me to see WHO has permissions
to do WHAT at a glance. When you launch this tool it analyzes a users effective NTFS
permissions for a specific file or folder, and takes into account network share
access, then displays the results in a nifty desktop dashboard!
Think of all the frustration that this free SolarWinds utility saves when you are
troubleshooting authorization problems for user's access to a resource.
Give this permissions monitor a try - it's free!
Checking the help file will reveal useful parameters, for instance you
can employ the -Force parameter to overwrite read-only files.
Reading the help file also reveals that this command is primarily used
for writing text to multiple files, perhaps this is why I am wary of
using it myself and avoid recommending this particular cmdlet for others
to practice with.
# PowerShell Alias Ac Get-Alias
-definition Set-Content
With Microsoft, there are always at least
three ways of doing everything, what seems like redundancy when you are an
expert, seems like perspective when you are a beginner. One obvious
example is that you can abbreviate Format-Table to ft. As you increase
your range of PowerShell commands, keep an eye out for another
PowerShell Alias, for example gci (Get-Childitem).
»
Summary of PowerShell's Set-Content Cmdlet
In VBScript dealing with files was never straightforward. However,
with PowerShell it's so effortless that you may not realize that the
Set-Content cmdlet opens and closes as part of its
job description.
Set-Content is a simple enough cmdlet to understand. What it does is
write text to files.
Just playing with Set-Content
leads to questions such as 'Why bother', or 'What's the point?' I hope that
your
answer to such questions will give you a PowerShell technique that you can
incorporate in bigger more complex scripts.
If you like this page then please share it with your friends
Please email me if you have a better example script. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.
Windows Management Instrumentation (WMI) is
most useful for PowerShell scripting.
SolarWinds
have produced this
Free WMI Monitor to take the guess work out of which
WMI counters to use for applications like Microsoft Active Directory,
SQL or Exchange Server.