2017-08-16 12 views
0

ユーザーログオン名とコンピュータ名の特定の入力を使用するリモートマシン上のそのユーザーの一時インターネットファイルを削除したいと考えています。私はほとんどそれを動作させることができますが、私はしようとするときに、空であるか、ユーザー名を含めないで失敗する変数としてファイルパスを渡します。私はグーグルで今何時間も自分で修正しようとしました。 私はしばらくの間powershellで遊んだが、私の「スクリプト」は変数を定義しているだけで、コマンドをパイプしている。それ以外のものはおそらくちょうど私を混乱させるだろうが、どんな助けも認められるだろう。以下は私がこれまで持っていたものです。冗長性は私の変数が、スクリプトブロックまで渡されていることをチェックすることだけです。Internet Explorerキャッシュを消去するためのInvoke-Command

$User = Read-Host -Prompt 'Please input the user logon name.' 
$CompName = Read-Host -Prompt 'Please enter the target computername.' 
$UNC = "C:\Users\$User\AppData\Local\Microsoft\Windows\Temporary Internet Files" 
$Block = { Remove-Item $UNC -Recurse -Force -EA Continue } 
Invoke-Command -ComputerName $CompName -ScriptBlock {$Block} 
+0

なぜリモートコンピュータのユーザーのためにそのディレクトリの内容を削除する必要がありますか? –

+0

ユーザーはOWAの資格情報をキャッシュしており、その後パスワードが変更されています。古い資格情報は、ユーザーを認証してロックしようとします。 –

+0

キャッシュをクリアするとその修正はありますか? (奇妙な) –

答えて

1

これは多くの質問です。 $ UNCの内容が存在しない新しいセッションまたはランタイム環境を呼び出しています。その値を呼び出し側スクリプトから呼び出された呼び出しに渡す必要があります。あなたは-ArgumentListでそれを行います。 Invoke-CommandInvoke-Expressionの構文は、このパラメータでは同じです。ここでは完全な例である。これに Invoke-Command -ComputerName $CompName -ScriptBlock {$Block}

Cannot bind parameter to argument 'command' beacuse it is null. Powershell

また、私はこれを変更します Invoke-Command -ComputerName $CompName -ScriptBlock $Block

意味は非常に異なっています。 {$Block}は$ Blockの値(空白)を出力するスクリプトを実行します。 {}がなければ、解析するスクリプトブロック変数を渡しています。ここで


は実施例である:

$OutsideVar = "Hello World!" 

invoke-command -ArgumentList $OutsideVar -ScriptBlock { 
    param($InsideVar) 
    Write-Host $InsideVar 
} 

ここで何が起こっているかを理解する鍵は、理解の範囲です。 $ OutsideVarはプロセスのトップスコープに存在します。 Invoke-Commandで新しいスコープを開始すると、$ OutsideVarは存在しなくなりました。引数を持つ.EXEファイルを呼び出すことができるように、引数を指定してこの新しいスコープを呼び出すことができます。内側のスコープにこれらの引数を処理する方法を教えなければなりません。それはブロックが何をしているのかです。 「あなたは1つの議論を得て、それを$ InsideVarに格納しようとしています。今では、あなたは内側の範囲でその価値を持っています。

invoke-command -ArgumentList $OutsideVar, $OutsideVar2, $OutsideVar3 -ScriptBlock { 
    param($InsideVar, $InsideVar2, $InsideVar3) 
} 
+0

私は変数がもう存在しないが、私はかなり私の状況のた​​めにこの仕事をする方法を理解することはできません。私はこれを意味するために読むことができる本はありますか? –

+0

ここにメソッドのドキュメントがあります:https://msdn.microsoft.com/en-us/library/bb355170(v=vs.110).aspx また、私はあなたがテストするための作業コードで答えを更新しますと。 –

関連する問題