Created
April 28, 2015 14:45
-
-
Save jpoehls/b645e1173dc0121dcafb to your computer and use it in GitHub Desktop.
Symlink support in PowerShell V5 *-Item cmdlets
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### SYMBOLIC LINK FILES | |
# Create a new symbolic link file named MySymLinkFile.txt in C:\Temp which links to $pshome\profile.ps1 | |
cd C:\Temp | |
New-Item -ItemType SymbolicLink -Name MySymLinkFile.txt -Target $pshome\profile.ps1 # File | |
# Target is an alias to the Value parameter | |
# Equivalent to above | |
New-Item -ItemType SymbolicLink -Path C:\Temp -Name MySymLinkFile.txt -Value $pshome\profile.ps1 | |
# Equivalent to above | |
New-Item -ItemType SymbolicLink -Path C:\Temp\MySymLinkFile.txt -Value $pshome\profile.ps1 | |
# Equivalent to above | |
New-Item -ItemType SymbolicLink -Name C:\Temp\MySymLinkFile.txt -Value $pshome\profile.ps1 | |
### SYMBOLIC LINK DIRECTORIES | |
# Create a new symbolic link directory named MySymLinkDir in C:\Temp which links to the $pshome folder | |
# ItemType is the same for files and directories - autodetect based on specified target | |
cd C:\Temp | |
New-Item -ItemType SymbolicLink -Name MySymLinkDir -Target $pshome # Directory | |
# Target is an alias to the Value parameter | |
# Similar to above, any combination of Path and Name also works | |
New-Item -ItemType SymbolicLink -Path C:\Temp -Name MySymLinkDir -Value $pshome | |
New-Item -ItemType SymbolicLink -Path C:\Temp\MySymLinkDir -Value $pshome | |
New-Item -ItemType SymbolicLink -Name C:\Temp\MySymLinkDir -Value $pshome | |
### HARD LINKS | |
New-Item -ItemType HardLink -Path C:\Temp -Name MyHardLinkFile.txt -Value $pshome\profile.ps1 | |
# Same combinations of Path and Name allowed as described above | |
### DIRECTORY JUNCTIONS | |
New-Item -ItemType Junction -Path C:\Temp\MyJunctionDir -Value $pshome | |
# Same combinations of Path and Name allowed as described above | |
# GET-CHILDITEM | |
# Append link type column to Mode property and display with Get-ChildItem | |
# Use 'l' for all link types | |
# Increase the width of the Length column by 4 (from 10 to 14) | |
Get-ChildItem C:\Temp | sort LastWriteTime -Descending | |
Directory: C:\Temp | |
Mode LastWriteTime Length Name | |
---- ------------- ------ ---- | |
-a---- 6/13/2014 3:00 PM 16 File.txt | |
-a---- 6/13/2014 3:00 PM 98956046499840 My90TB.vhd | |
d----- 6/13/2014 3:00 PM Directory | |
-a---l 6/13/2014 3:21 PM 0 MySymLinkFile.txt | |
d----l 6/13/2014 3:22 PM MySymLinkDir | |
-a---l 6/13/2014 3:23 PM 23304 MyHardLinkFile.txt | |
d----l 6/13/2014 3:24 PM MyJunctionDir | |
# New Target property | |
# Works with any link type | |
# Not displayed in the default table view | |
# Displayed in the default list view | |
# New LinkType property with values: SymbolicLink | |
Get-ChildItem C:\Temp\MySymLinkFile.txt | Format-List | |
Directory: C:\Temp | |
Name : MySymLinkFile.txt | |
Length : 0 | |
Mode : -a---l | |
LinkType : SymbolicLink | |
Target : C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 | |
CreationTime : 6/16/2014 3:21:01 PM | |
LastWriteTime : 6/16/2014 3:21:01 PM | |
LastAccessTime : 6/16/2014 3:21:01 PM | |
VersionInfo : File: C:\Temp\MySymLinkFile.txt | |
InternalName: | |
OriginalFilename: | |
FileVersion: | |
FileDescription: | |
Product: | |
ProductVersion: | |
Debug: False | |
Patched: False | |
PreRelease: False | |
PrivateBuild: False | |
SpecialBuild: False | |
Language: | |
# REMOVE-ITEM | |
# Works like any other item type | |
# Removes MySymLinkFile.txt | |
Remove-Item C:\Temp\MySymLinkFile.txt | |
# Returns an error as this is a reparse point. | |
Remove-Item C:\Temp\MySymLinkDir | |
# Removes the files under the target directory and MySymLinkDir | |
Remove-Item C:\Temp\MySymLinkDir -Force |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment