PowerShell-Übergabe von Variablen an Remote-Skript

Ich habe die folgende cmd-Datei: -

PowerShell.exe -noexit E:\wwwroot\domains\processes\AddDirectory.ps1 -Param testdomain.co.uk

was geht durch: -

$Session = New-PSSession -ComputerName 192.168.0.25
$script = {
Param($Param1)
set-executionpolicy unrestricted -force

# Set Variables
$domain = $Param1
$sitepath = "e:\domains\" + $domain

# Check for physical path
if (-not (Test-Path -path $sitePath))
{
New-Item -Path $sitepath -type directory 
New-Item -Path $sitepath\wwwroot -type directory 
}
set-executionpolicy restricted -force     
}
Invoke-Command -Session $Session -ScriptBlock $script

Aber es läuft nur, tut aber nichts.

Wenn ich die Variable "$ domain" als "$ domain =" testdomain.co.uk "deklariere, funktioniert das, aber es möchte nicht die Variable aus der cmd-Datei durchlaufen. Was mache ich falsch? Ich habe versucht, es als -ArgumentsList - $ Param1 in den Invoke-Command zu schreiben, aber das funktioniert auch nicht .....

Alle Ideen sehr gut aufgenommen

Vielen Dank, Paul

Update - Ich habe meinen Code wie folgt aktualisiert, erhalte jedoch das gleiche Problem: -

param($domainName)
$script = {
    Param($Param1)
    set-executionpolicy unrestricted -force
    # Set Variables
    $domain = $Param1
    $sitepath = "e:\domains\" + $domain
    # Check for physical path
    if (-not (Test-Path -path $sitePath))
    {
        New-Item -Path $sitepath -type directory
        New-Item -Path $sitepath\wwwroot -type directory
        New-Item -Path $sitepath\db -type directory
        New-Item -Path $sitepath\stats -type directory
    }
    set-executionpolicy restricted -force
}

$Session = New-PSSession -ComputerName 192.168.0.25

Invoke-Command -Session $Session -ScriptBlock $script -ArgumentList $domainName

Antworten auf die Frage(1)

Ihre Antwort auf die Frage