PowerShell Notes
Install programs through enter pssession
ISE is dope
Set-netipaddress
Set-netipv6protocol
How to tell if script exited succsfully
-last exit code
-so do an if to see if it exited with $last exit code
$username
Java script
-taskkill.exe iexplore.exe
-taskkill.exe chrome.exe
Using regular expressions to search for critical errors through log files
-get-eventlog
Using the pipeline to ping multiple computers,
using pipeline to connect to multiple computers
pipeline
-transmits data from one cmmdlet to another
-data must be passed into the pipeline to be continued
-converttocsv transmits data through the pipeline
-exporttocsv does not
-clixml has better hierarchy than a .csv file
Use {0} and then -f $Variable to build string reliably
ISE is dope
Set-netipaddress
Set-netipv6protocol
How to tell if script exited succsfully
-last exit code
-so do an if to see if it exited with $last exit code
$username
Java script
-taskkill.exe iexplore.exe
-taskkill.exe chrome.exe
Using regular expressions to search for critical errors through log files
-get-eventlog
Using the pipeline to ping multiple computers,
using pipeline to connect to multiple computers
pipeline
-transmits data from one cmmdlet to another
-data must be passed into the pipeline to be continued
-converttocsv transmits data through the pipeline
-exporttocsv does not
-clixml has better hierarchy than a .csv file
Rejoin computer to domain
Test-computersecurechannel –repair
Test-computersecurechannel –repair
Get-member
Objects have properties
Collection=table
Object=row
Property=column
Objects usually have methods as well, use get-member (or gm) to get details on them
PowerShell.exe -Command "Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File "F:\VMs\StartVMs.ps1"' -Verb RunAs"
Importing csvs
-first line is header, then deliminator is used as properties
There are 5 pipelines
Write-debug
Write-warning
Write-error
Write-output
Write-verbose
-verbosepreference = continue
Copy the scripts to people’s computers using a login script so I can run it on their machines
For each script, have a “pre execution” and “post execution” functions with stuff like stopping windows updates, checking for hard drive space, etc. easier to run and easier to maintain.
Have event IDs be dynamic variables that are set in the parameters. Then change all the numbers to “$script normal event” or “$script error event” to allow for easier management.
Switch –wildcard ($name) “*DC*” or -regex
-“break” to exit switch command
try, catch
-use finally to eliminate redundant code
use hashtable to add properties to psobject
write output instead of return
begin, process, end blocks for functions
Objects have properties
Collection=table
Object=row
Property=column
Objects usually have methods as well, use get-member (or gm) to get details on them
PowerShell.exe -Command "Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File "F:\VMs\StartVMs.ps1"' -Verb RunAs"
Importing csvs
-first line is header, then deliminator is used as properties
There are 5 pipelines
Write-debug
Write-warning
Write-error
Write-output
Write-verbose
-verbosepreference = continue
Copy the scripts to people’s computers using a login script so I can run it on their machines
For each script, have a “pre execution” and “post execution” functions with stuff like stopping windows updates, checking for hard drive space, etc. easier to run and easier to maintain.
Have event IDs be dynamic variables that are set in the parameters. Then change all the numbers to “$script normal event” or “$script error event” to allow for easier management.
Switch –wildcard ($name) “*DC*” or -regex
-“break” to exit switch command
try, catch
-use finally to eliminate redundant code
use hashtable to add properties to psobject
write output instead of return
begin, process, end blocks for functions
helptext
Looping Constructs
foreach
-similar to foreach-object
Looping Constructs
foreach
-similar to foreach-object
while
change ok button on gpresult program to grey out "ok"
show progress or powershell status in program
variables for task sequence to install certain programs: “tax”, “assurance”, “best”
Best Practices List for functions
-Use Jobs for background tasks to eliminate waiting
-scripts have help info
-scripts have parameters
-parameters have help
-parameters have properties that are defined and controlled
-scripts use error handling
-scripts have try/catch blocks with error output
-scripts use verbose logging options
For changing an OS imaging process, create a PowerShell Script that takes a need, change and tests and inserts it into an excel change management sheet
Run argument list as a string that you built before
change ok button on gpresult program to grey out "ok"
show progress or powershell status in program
variables for task sequence to install certain programs: “tax”, “assurance”, “best”
Best Practices List for functions
-Use Jobs for background tasks to eliminate waiting
-scripts have help info
-scripts have parameters
-parameters have help
-parameters have properties that are defined and controlled
-scripts use error handling
-scripts have try/catch blocks with error output
-scripts use verbose logging options
For changing an OS imaging process, create a PowerShell Script that takes a need, change and tests and inserts it into an excel change management sheet
Run argument list as a string that you built before
$argList = "C: \\Computer1\ServerBackups$\$ComputerName\$JobTitle.vhd /accepteula"
Start-Process -filepath "C:\Powershell-Backup\disk2vhd.exe" -argumentlist $argList
EG:
$FilePath = ("C:\Users\{0}\Appdata") -f $Username
$FilePath = "C:\Users\$Username\Appdata"
Comments
Post a Comment