2016-08-18 6 views
1

毎週Nessusスキャンに基づいてさまざまなレポートを作成するための個別のスクリプトが用意されています。個々のスクリプトでは、次のように実行します。複数のPowerShellスクリプト間でCSVを渡す

Function Get-FileName($initialDirectory) 
{ 
    [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null 

    $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog 
    $OpenFileDialog.initialDirectory = $initialDirectory 
    $OpenFileDialog.filter = "csv (*.csv)| *.csv" 
    $OpenFileDialog.ShowDialog() | Out-Null 
    $OpenFileDialog.FileName 
} 

Clear-Host 

# Get the scan CSV 
$inputData = Get-FileName "C:\users\$env.username\Downloads" 
$data = Import-Csv $inputData 

ここから、私は個々のスクリプトに必要な作業を行います。私は一度ファイルを取得し、ちょうどスクリプトの間でCSVを渡す場所にそれを設定したいと思います:

$data = Import-Csv $inputData 

#Call Installed Software script 
". .\Build Software List (Test).ps1 $data" 

#Call Most Prolific Vulnerabilities 
#This continues until I've called all scripts 

私はCSVに合格するには、いくつかの異なる方法を試してみたが、どれもまだ働いていません。誰かが私が行方不明に私を手がかりにすることができますか?

ありがとうございます! Build Software List (Test).ps1

+1

はあなたドットソーシングを囲む引用符を削除しますか? – briantist

答えて

1

、位置パラメータが入力を受け入れることを確認してください:あなたは、ファイル名にスペースを削除した場合、あなたは無効にすることができます

& '.\Build Software List (Test).ps1' $Data 

param(
    [Parameter(Mandatory=$true,Position=0)] 
    [psobject[]]$Data 
) 

# process items in $Data here 

次にようにそれを呼び出しますコールオペレーター(&)と引用:

.\Build-SoftwareList.ps1 $Data 
+0

マティアス、私のPSの質問に答えているのは2/2です。すぐにお返事ありがとうございました! クイックフォローアップの質問:私のコードでは、二重引用符を使用しましたが、シングルではありません。ここで違いはないようです。違いはありますか? – Tchotchke

+0

@Tchotchke助けて嬉しいです:)この場合ではなく、いいえ。 '' 'と' ''を使うことの違いは、最初のものが* expandable *であることです(つまり、そこに変数を置くことができ、パーサはその値で置き換えられます)。文字列。ファイル名には変数参照や部分式がないため、この場合は違いはありません –

0

私は思わないあなたはここにドットを入れたいと思う。で

#Call Installed Software script 
". .\Build Software List (Test).ps1 $data" 

この行を置き換え

#Call Installed Software script 
& ".\Build Software List (Test).ps1" $data 

これは代わりに、現在実行中のスクリプトの一部としてそれをインポートするの、引数を指定してスクリプトを実行するためのPowerShellに指示します。

ただし、これを行っても、データを引数リストに追加しようとします。 $dataがオブジェクトではなく、ファイル名ですので、おそらく代わりにパイプラインを使用したいと思うでしょう:

$data | & ".\Build Software List (Test).ps1" 
関連する問題