Getting essential computer info for network admins
It looks quite fine to me.

I'm mainly surprised by the massive duplication in the CreateCSVdocument function:


function CreateCSVdocument {
    Get-MACAddress | New-Item C:\Users\$($env:username)\Documents\$($env:username).txt -type file -force 
    Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt " "

Get-IPAddress | Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt
Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt " "

Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt "Hostname:"
Get-Hostname | Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt
Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt " "



It would be better to introduce a variable there and use that, for example:

function CreateCSVdocument {
    $Dir="C:\Users\$($env:username)\Documents\$($env:username).txt" 

    Get-MACAddress | New-Item $Dir -type file -force 

    Add-Content $Dir " "    
    Get-IPAddress | Add-Content $Dir
    Add-Content $Dir " "

    Add-Content $Dir "Hostname:"
    Get-Hostname | Add-Content $Dir
    Add-Content $Dir " "


Actually, this is still too repetitive.
Probably there is a better way to output all the text and pipe the whole thing to ... | Add-Content $Dir once at the end,
but I don't know how to do that in powershell.



The formatting is inconsistent:


In function definitions, sometimes you put a space between function name and { and sometimes you don't:

function Get-MACAddress {
function Get-UserName{


I recommend to put a space always, consistently.
Indentation is inconsistent:


You correctly indented the body of Get-MACAddress, Get-IPAddress and others
But you didn't follow the same logic in Get-HostName, Get-UserName, Get-DomainName and others