To get the most out of this book
For most chapters, you will need PowerShell 7.3 and above, as well as a Visual Studio Code installation to examine and edit your code.
Depending on the chapter you follow, we will also look at other technologies, such as Windows PowerShell 5.1, Visual Studio, C/C++/C#, Visual Basic, Assembly, Ghidra, Wireshark, and Microsoft Excel.
Software/hardware covered in the book |
Operating system requirements |
PowerShell 7.3 and above |
Windows 10 and above |
Windows PowerShell 5.1 |
Windows Server 2019 and above |
Visual Studio Code |
Although most examples in this book might work with one test machine only, it is highly recommended to set up a demo environment to improve your experience for some parts of this book.
I used virtual machines to set up my environment, and I recommend doing the same to follow along. Hyper-V is a free hypervisor that you can use to set up your machines.
For my demo environment, I set up the following machines, which I will reference throughout this book:
- PSSec-PC01:
172.29.0.12
, Windows 10 Enterprise, 22H2, joined to the domainPSSec.local
- PSSec-PC02:
172.29.0.13
, Windows 10 Enterprise, 22H2, joined to the domainPSSec.local
- PSSec-Server:
172.29.0.20
, Windows Server 2019 Datacenter, joined to the domainPSSec.local
- DC01:
172.29.0.10
, Windows Server 2019 Datacenter, hosting the domainPSSec.local
- Installed relevant roles: Active Directory Certificate, Active Directory Domain Services, DNS Server, and Group Policy Management
- Azure demo environment for Chapter 7:
PSSec-Demo.onmicrosoft.com
- Optional: Linux and macOS to follow the PowerShell remoting (SSH) configuration in Chapter 3
The following diagram demonstrates the relevant setup used in this book:
Figure P.1 – The setup used in this book
This setup is only configured in a test environment and should, therefore, not be used in production environments.
If you are using the digital version of this book, we advise you to type the code yourself or access the code from the book’s GitHub repository (a link is available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.