====== Powershell ====== # Create a folder New-Item -Path 'C:\Games' -ItemType Directory # Download a file with HTTP Invoke-WebRequest 'http://a.a/a.txt' -OutFile C:\a.txt # Can also use Invoke-RestMethod or # (New-Object System.Net.WebClient).DownloadFile('http://a.a/a.txt', 'C:\a.txt') # Async BITS transfer Import-Module BitsTransfer Start-BitsTransfer -Source 'http://a.a/a.txt' -Destination 'C:\a.txt' # -Asynchronous # Unset a variable Remove-Variable -Name MyVar1 # or Remove-Item -Path Variable:MyVar1 # Set a variable value to $null Clear-Variable -Name MyVar1 # or $MyVariable = $null # Multi variable assignment $a,$b,$c = 1, $true, "Nitin" # Display output Write-Output $a # Strong-typing in PowerShell [int]$number = 8 $number = "12345" # The string is converted to an integer. $number = "Hello" # Error # String interpolation $a = "$($var1)" # Copy file from remote $theSrv = New-PSSession mySrv Copy-Item -FromSession $theSrv C:\test1.txt -Destination C:\test.txt # -ToSession is to "Copy file to remote" # the local session where copying is initiated must have PowerShell 5 or higher installed. # Copy-Item -Path \\mysrv\c$\test1.txt -Destination \\srv2\c$\test.txt; # "New-PSDrive" is only visible in PowerShell; it's like "Net use y: \\ServerName\Share" # New-PSDrive -Name Y -PSProvider filesystem -Root \\ServerName\Share # Copy-Item BigFile Y:\BigFileCopy # Remove with "Remove-PSDrive" like "net use drive-letter /delete" # Web client can be used to copy to/from shared folders $WebClient = New-Object System.Net.WebClient $WebClient.Credentials = New-Object System.Net.NetworkCredential('user', 'pass') $WebClient.DownloadFile('\\mysrv\s1\file1', 'file1.txt') $WebClient.UploadFile('file1.txt', '\\mysrv\s1\file1') When using Invoke-Command, variables can be used in the ScriptBlock with the "$using:" prefix. See: [[https://powershellexplained.com/2016-08-28-PowerShell-variables-to-remote-commands/|https://powershellexplained.com/2016-08-28-PowerShell-variables-to-remote-commands/]] See these instructions on enabling PowerShell remoting: [[https://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/|https://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/]]