--- title: "Basic tasks to get you started automating with Powershell" date: 2024-04-05T22:00:00+02:00 tags: ['Powershell'] draft: true --- Here are 10 common tasks that you will need to master when automating in Powershell (or any language for that matter). ## 1. Reading and writing files ```powershell # Let's write something to a file PS> "Hello, World!" | Out-File -FilePath myfile.txt # Read contents of file PS> Get-Content -Path myfile.txt Hello, World! # Shorthand PS> gc myfile.txt Hello, World! ``` ## 2. Working with data ### Convert Powershell object to JSON ```powershell PS> $myobj = [PSCustomObject]@{ > Name = "dotpwsh" > Homepage = "https://dotpwsh.com" > Twitter = "@moiaune" > } PS> $myobj | ConvertTo-Json { "Name": "dotpwsh", "Homepage": "https://dotpwsh.com", "Twitter": "@moiaune" } ``` ### Convert JSON string to Powershell object ```powershell PS> $jsonData = @" > { > "Name": "dotpwsh", > "Homepage": "https://dotpwsh.com", > "Youtube": "https://youtube.com/@moiaune" > } > "@ PS> $jsonData { "Name": "dotpwsh", "Homepage": "https://dotpwsh.com", "Youtube": "https://youtube.com/@moiaune" } PS> $jsonData | ConvertFrom-Json Name Homepage Youtube ---- -------- ------- dotpwsh https://dotpwsh.com https://youtube.com/@moiaune ``` ### Convert CSV string to Powershell object ```powershell PS> $csvData = @" > name,homepage,twitter > dotpwsh,https://dotpwsh.com,@moiaune > "@ PS> $csvData name,homepage,twitter dotpwsh,https://dotpwsh.com,@moiaune PS> $csvData | ConvertFrom-Csv name homepage twitter ---- -------- ------- dotpwsh https://dotpwsh.com @moiaune ``` ### Convert Powershell object to CSV ```powershell PS> $myobj = [PSCustomObject]@{ > Name = "dotpwsh" > Homepage = "https://dotpwsh.com" > Twitter = "@moiaune" > } PS> $myobj | ConvertTo-Csv "Name","Homepage","Twitter" "dotpwsh","https://dotpwsh.com","@moiaune" ``` ## 3. Interacting with REST API's ## 4. Archiving and extracting files ## 5. Working with Regular Expresions