2017-06-19 24 views
0
私は、次のエラーを取得しています

、キャッチPowershell - ファイルパス。コマンドレットの名前として認識されません。機能スクリプトファイル

エラー - 閉じ込められた:捕獲されたメッセージを持つSystem.Management.Automation.RemoteException:用語「D:\ ServiceNow \ RDC- のDev-すべての\エージェント\ scripts \ PowerShell \ ImMigration_script.ps1 'は、コマンドレット、関数、スクリプトfil e、または実行可能なプログラムの名前として認識されません。名前の綴りを確認するか、パスが含まれている場合は、パスが正しいことを確認し、再度 を実行してください。

問題は、私は運と-FilePath使用して疲れていInvoke-Commandコマンドで

Invoke-Command -Session $Session -ScriptBlock $theCommand2 

ように見えます。 はまた、個別にコマンドを渡すとPARAM疲れ:

Invoke-Command -Session $Session -ScriptBlock $theCommand2 -argumentlist $leName 

私が使用してスクリプトをトリガしています:

D:\ServiceNow\RDC-Dev-All\agent\scripts\PowerShell\invokLyncUAdd.ps1 -param1 'CN=lync2013testuser1,CN=Users,DC=test,DC=COMPANY,DC=com' -param2 AD\sys-LyncProATSC -param3 Z0185-XAP0007-S.test.COMPANY.com 

################### ########################## ##########

param($param1, $param2, $param3) 

$ErrorActionPreference = "Stop" 

# trap { 
#    write-output $("TRAPPED: " + $_.Exception.GetType().FullName); 
#    write-output $("TRAPPED: " + $_.Exception.Message); 
#    break 
#} 

$leName = $param1 
$leName = ("'" + "$leName" + "'") 

$thePath = 'D:\ServiceNow\RDC-Dev-All\agent\scripts\PowerShell' 
$theCommand = $thePath+"\ImMigration_script.ps1 -param1 $leName" 
$theCommand2 = [Scriptblock]::Create($theCommand) 

# Write-Host "We use string $theCommand below" 

$Account = $param2 
$useP = Get-Content $thePath\'Information.txt' 
$Prompt = convertto-securestring $useP -AsPlainText -Force 
$leHost = $param3 
try{ 

$Credential = new-object -typename System.Management.Automation.PSCredential 
-argumentlist $Account, $Prompt 
$Timeout = New-PSSessionOption -IdleTimeout 60000 
$Session = New-PSSession -ComputerName $leHost -Credential $Credential - 
Authentication Credssp -SessionOption $Timeout -ErrorAction Stop 
Invoke-Command -Session $Session -ScriptBlock $theCommand2 
} 
catch 
{ 
    $exceptType = $("TRAPPED: " + $_.Exception.GetType().FullName); 
    $exceptMess = $("TRAPPED: " + $_.Exception.Message); 

} 
finally 
{ 
    if($exceptType) { "Errors caught - $exceptType with message $exceptMess " } } 

すべてのヘルプは素晴らしいことだ、感謝

+0

ファイルがローカルコンピュータまたはリモートコンピュータに存在すると思われますか? – gms0ulman

+0

@ gms0ulmanこんにちは、私は自分のローカルサーバー上のファイルを持っています。私は考えているのは、リモートマシン上で$ command2を実行することです –

答えて

1

セッションはリモートコンピュータ上で実行されていますが、PowerShellがそのファイルを存在させることが予想される場所です。

私はそれがメモリにあるようにスクリプトブロックとしてローカルスクリプトをロードしようとすることで、それに近づくでしょう:

$thePath  = 'D:\ServiceNow\RDC-Dev-All\agent\scripts\PowerShell' 
$theCommand = $thePath+"\ImMigration_script.ps1" 
$theCommand2 = [Scriptblock]::Create(Get-Content $theCommand) 

次に、あなたの質問から:

Invoke-Command -Session $Session -ScriptBlock $theCommand2 -argumentlist $leName 

を場合は私に知らせてくださいこれは機能します。

0

の場合これは、リモートシステムにある場合は、ファイルを、あなたは、Invoke-Commandコマンドに適切にリモートパスを言及していることを確認し、

powershell.exe -noexit -file 'D:\ServiceNow\RDC-Dev-All\agent\scripts\PowerShell\invokLyncUAdd.ps1' -param1 'CN=lync2013testuser1,CN=Users,DC=test,DC=COMPANY,DC=com' -param2 'AD\sys-LyncProATSC' -param3 'Z0185-XAP0007-S.test.COMPANY.com' 

、その後、ローカルです。

関連する問題