Do you want to know about byte arrays in PowerShell? In this PowerShell tutorial, I will explain what a byte array is and how to create a byte array in PowerShell, and I will also show you how to work with PowerShell byte arrays.
What is a Byte Array?
A byte array is a collection of bytes (8-bit values) that can represent anything from strings to binary data of a file. In PowerShell, as in many other programming languages, a byte array is a fundamental data structure that is used to store a collection of bytes.
Why Use Byte Arrays?
Byte arrays are particularly useful when you need to work with data at a binary level. For instance, they are used when reading or writing to files in binary format, sending and receiving data over a network, or when dealing with encryption and decryption processes.
Create Byte Arrays in PowerShell
Now, let us see how to create a byte array in PowerShell using various methods.
Method 1: Using Byte Literal
The simplest way to create a byte array in PowerShell is by directly declaring it using byte values. Here’s an example:
$byteArray = [byte[]](1,2,3,4,5)This creates a byte array with five elements: 1, 2, 3, 4, and 5.
Method 2: From a String
You can also create a byte array in PowerShell from a string using the System.Text.Encoding class. Here’s how you can convert a string to a byte array:
$string = 'Hello World'
$byteArray = [System.Text.Encoding]::UTF8.GetBytes($string)This code snippet converts the string ‘Hello World’ into a UTF-8 encoded byte array.
You can see in the screenshot below I have executed the script, and it created a byte array for me.

Method 3: Creating an Empty Byte Array
If you need an empty byte array in PowerShell, perhaps to fill it later, you can create one by declaring its size. Here’s an example:
$byteArray = New-Object byte[] 10This command creates a byte array in PowerShell with 10 elements, each initialized to 0.
Method 4: From an Existing Object
When dealing with objects that have methods returning or accepting byte arrays, you can use those methods directly. For example, if you are using a System.IO.MemoryStream object, you can use the ToArray method:
$memoryStream = New-Object System.IO.MemoryStream
# ... write some bytes to the memory stream ...
$byteArray = $memoryStream.ToArray()This will create a byte array from the current data in the memory stream in PowerShell.
How to Work with Byte Arrays in PowerShell
Once you have a byte array, you can manipulate it in various ways. Here are a few examples:
Accessing and Modifying Elements
You can access and modify elements of a byte array using their index:
$byteArray[0] = 255 # Set the first element to 255
$value = $byteArray[1] # Get the second elementAdding Elements
PowerShell arrays are fixed in size, but you can concatenate two arrays to add elements:
$byteArray += [byte[]](6,7,8)This will add the bytes 6, 7, and 8 to the end of the $byteArray.
Removing Elements
To remove elements, you can create a new array that excludes the elements you want to remove:
$byteArray = $byteArray | Where-Object { $_ -ne 3 }This command removes the byte with the value 3 from the array.
Converting Back to Strings
If your byte array represents a string, you can convert it back using the System.Text.Encoding class:
$string = [System.Text.Encoding]::UTF8.GetString($byteArray)This will convert the byte array back into a UTF-8 encoded string.
Conclusion
Byte arrays in PowerShell allow you to work closely with binary data and are crucial for tasks that involve file I/O operations, networking, and encryption.
In this PowerShell tutorial, I have explained in detail:
- What is a byte array in PowerShell?
- How to create a PowerShell byte array using various methods
- How to manipulate byte arrays in PowerShell, like adding and removing elements, etc.
You may also like:
- How to Check if a Variable is an Array in PowerShell?
- How to Search an Array for Matches in PowerShell?
- How to Join an Array with a Comma in PowerShell?
- PowerShell Array of Hashtables
Bijay Kumar is an esteemed author and the mind behind PowerShellFAQs.com, where he shares his extensive knowledge and expertise in PowerShell, with a particular focus on SharePoint projects. Recognized for his contributions to the tech community, Bijay has been honored with the prestigious Microsoft MVP award. With over 15 years of experience in the software industry, he has a rich professional background, having worked with industry giants such as HP and TCS. His insights and guidance have made him a respected figure in the world of software development and administration. Read more.