2012-10-23 70 views
2

我有以下CMD文件: -Powershell的傳遞變量來遠程腳本

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

其經歷到: -

$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 

,但它只是運行,但什麼都不做。

如果我將$ domain變量聲明爲$ domain ='testdomain.co.uk'它可以工作,但它不希望從cmd文件中通過var。我究竟做錯了什麼?我試圖把它的調用命令的-ArgumentsList - $參數1但是,這並不正常工作或.....

任何想法greatfully收到

感謝 保羅

更新 - 我已經更新了我的代碼按以下,但得到同樣的問題: -

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 
+0

是e:本地或聯網映射驅動器。如果是後者,您可能會遇到雙跳認證問題。 –

回答

2

您需要在腳本中使用設置了一個param塊,你傳遞給文件中的參數將被分配給$域名,並你會用它將值傳遞給scriptblock:

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


# script file 

param($domainName) 

$script = { 
    Param($Param1) 

    ... 
    $domain = $Param1 
    ... 
} 

$Session = New-PSSession -ComputerName 192.168.0.25 
Invoke-Command -Session $Session -ScriptBlock $script -ArgumentList $domainName 
+0

好吧我已經在下面的代碼現在,但它不工作 - 文件運行,但沒有任何反應: - – Paul

+0

param($ domainName) $ script = { Param($ Param1) set-executionpolicy unrestricted -force #設置變量 $域= $參數1 $ sitepath = 「E:\域\」 + $域 #檢查物理路徑 如果( - 不是(測試的路徑-path $ sitePath)){ 新建 - 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 } 設置executionpolicy -force限制 } $會議=新的PSSession -ComputerName 192.168.0.25 調用命令-Session $會議-ScriptBlock $腳本-ArgumentList $則domainName – Paul

+0

請編輯與此問題代碼清晰可辨。 – EBGreen

相關問題