If you want to log the entire script, then you could do something like this
@(
$u=rene
New-AdUser -Name $u ...
Write-Hoste "New User ist Create $u"
... Rest of your script
) | Out-file -FilePath \\PathToYourLogFile\Logfile.txt"
That is one way of doing it. One more way of doing it would be using the Start-Transcript at the beginning of your script and ending your script with Stop-Transcript cmdlet and redirecting the output to a text fie. See start-transcript and stop-transcript for details.
I found one example that will create a daily log for your script (if you run it multiple times a day it'll just append to what you have). The log will be in the same folder as your script and it'll clean out any logs older than 15 days.
$VerbosePreference = "Continue"
$LogPath = Split-Path $MyInvocation.MyCommand.Path
Get-ChildItem "$LogPath\*.log" | Where LastWriteTime -LT (Get-Date).AddDays(-15) | Remove-Item -Confirm:$false
$LogPathName = Join-Path -Path $LogPath -ChildPath "$($MyInvocation.MyCommand.Name)-$(Get-Date -Format 'MM-dd-yyyy').log"
Start-Transcript $LogPathName -Append
Then at the end of your script, just add
Stop-Transcript
Here is the link for the same.
If you want to log specific things then you could use Out-File cmdlet at specific and desired places. Hope that helps!