PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources
Forum experts available to answer your PowerShell questions

Power Tips

Power Tips

Syndication

  • Setting (And Deleting) Environment Variables

    PowerShell can read environment variables easily. This returns the current windows folder: $env:windir However, if you want to make permanent changes to user or machine environment variables, you need to access .NET functionality. Here is a simple function...
  • Mandatory Parameter with a Dialog

    Typically, when you mark a function parameter as "mandatory", PowerShell will prompt the user when the user omits the parameter: function Get-Something { param ( [ Parameter ( Mandatory = $true )] $Path ) "You entered $Path" } The...
  • Using Comma as Decimal Delimiter

    You may not be aware of this, but PowerShell uses a different decimal delimiter for input and output - which may cause confusions to script users. When you enter information, PowerShell expects culture-neutral format (using "." as decimal delimiter...
  • Testing for Valid Date

    If you need to test whether some information resembles a valid date format, here is a test function: function Test-Date { param ( [ Parameter ( Mandatory = $true ] $Date ) (( $Date -as [ DateTime ]) -ne $null ) } It uses the -as operator to try and convert...
  • Speaking English and German (and Spanish, and you name it)

    Windows 8 is the first operating system that comes with fully localized text-to-speech engines. So you can now have PowerShell speak (and curse) in your mother tongue. At the same time, there is always an English engine, so your computer is now bilingual...
  • Multiple Assignments in One Line

    When you assign something to a variable, you can enclose the expression in braces. This will also output the data. Have a look: $a = Get-Service ( $a = Get-Service ) See the difference? The second line will not only assign the results from Get-Service...
  • Pinging Computers

    There are multiple ways how you can ping computers. Here is a simple approach that uses the traditional ping.exe but can be easily integrated into your scripts: function Test-Ping { param ([ Parameter ( ValueFromPipeline = $true )] $Name ) process { ...
  • Playing a Sound on Error

    To catch a user’s attention, your script can easily play WAV sound files. Here is a simple function: function Play-Alarm { $path = " $PSScriptRoot\Alarm06.wav " $playerStart = New-Object Media.SoundPlayer $path $playerStart . Load () ...
  • Getting DNS IP Address from Host Name

    There is a tiny .NET function called GetHostByName() that is vastly useful. It will look up a host name and return its current IP address: [ System.Net.DNS ] :: GetHostByName ( ' someName ' ) With just a simple PowerShell wrapper, this is turned...
  • Reading and Writing NTFS Streams

    When a file is stored on a drive with NTFS file system, you can attach data streams to it to store hidden information. Here is a sample that hides PowerShell code in an NTFS stream of a script. When you run this code, it creates a new PowerShell script...
  • Create New Local Admin Account on the Fly

    Ever needed a new local administrator account for testing purposes? Provided you are already Administrator, and you opened a PowerShell with full Administrator privileges, adding such a user is a matter of just a couple of lines of code: $user = '...
  • Launching Any Excel Version

    Microsoft Excel is an example of a program that is not easy to launch directly: the path to Excel may be different, depending on Office version and platform (32-bit or 64-bit). PowerShell has a very clever cmdlet to run programs: Get-Process. Traditionally...
  • Unblocking Download Files

    Any file you download from the Internet or receive via email get marked by Windows as potentially unsafe. If the file contains executables or binaries, they will not run until you unblock the file. PowerShell 3.0 and better can identify files with a "download...
  • Eliminating Empty Results

    To exclude results that have empty properties, you can easily use Where-Object. For example, when you run Get-Hotfix, and you only want to see hotfixes that have a date for InstalledOn, here is the solution: Likewise, to get only network adapters from...
  • Hidden Array Extensions in PowerShell 4.0

    PowerShell 4.0 (final version as found in Windows 8.1) has Foreach and Where built directly into arrays. This is a geek stuff, so there is no apparent advantage to it over using the traditional pipeline (except maybe for speed). This line will get only...
« First ... < Previous 26 27 28 29 30 Next > ... Last »
Copyright 2012 PowerShell.com. All rights reserved.