2016-09-16 9 views
0

最近、私はregを照会するスクリプトを持っていて、値を設定してから、その照会から取り出したフォルダの下のフォルダを削除します。次のようになります。Regリモートで使用しているときにワイピングコンピュータを照会

pause 

FOR /F "TOKENS=2*" %%I IN ('REG QUERY "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Outlook\Security" /V OutlookSecureTempFolder') Do SET "ValueData=%%J" 

pause 

echo Delete Outlook Temp. Files??? 
echo Enter to continue or Ctrl+C to cancel. 

pause 

del /q /f /s "%valuedata%\*.*" 

del /q /f /s "%systemdrive%\Jacob'sTemp" 

pause 
echo -------------------------------------------------------------------------------- 
echo Complete! Goodbye! 
echo -------------------------------------------------------------------------------- 


timeout /t 3 

ローカルで使用すると効果的です。だから私は、リモートで実行するためにPSEXECを使用し、それにこのスクリプトを使ってフォルダをコピーするにはロボのコピーを設定し、それは次のようになります。

set /p cpu= 

robocopy "\\nmcfs01\software\scripts\Jacob's Awesome Outlook Scripts" \\%cpu%\c$\Jacob'sTemp 

pause 

psexec \\%cpu% -u administrator "%systemdrive%\Jacob'sTemp\outlooktempdelete.bat" 


pause 

今では動作し、それが実行するが、ここでするときにキッカーであるだろう実行するregクエリを実行するregクエリバッチに戻りますが、クエリに続く最初の一時停止をスキップし、常にレジストリキーを見つけることができないと言いますが、パスに従うことができます。最悪の部分は、スクリプトを終了すると、ユーザーがアクセスできるすべてのコンピュータをワイプします。フォルダではなく、すべてのファイル/サブファイル。どんな洞察力も大いにアピール!ここで

+0

興味深いですね。コード内に存在しないはずのランダムなスペースや、間違った文字がないかチェックしましたか?私は私のPC上でこれを実行することについて懐疑的に感じています... – Jonas

+0

あなたのPC上でregのクエリを実行することができ、それが鍵がある限り、それはいいです。私はそこにIFが必要だと思うので、キー/レジストリがそこになければそれはそれを止めるでしょう。それがregキーがそこにないと言います。しかし、ええ、私はスクリプトを何度かチェックして、私にはうまく見えますが、スクリプトとidkジャックを作成するのはかなり新しいです。ちょうどコピー、貼り付け、クロスフィンガー? lol – Leavii

+0

そのrobocopyにいくつかのアクセス許可を追加する必要があるかもしれません。 – Jonas

答えて

1

は、スクリプトのアップ迅速整頓です:

@Echo Off 
SetLocal EnableExtensions 

(Set OV=14.0) 

Choice /C YN /M "Delete Outlook Temp Files?" 
If ErrorLevel 2 Exit/B 
Set "BK=HKCU\SOFTWARE\Microsoft\Office\" 
Set "EK=\Outlook\Security" 
Set "VN=OutlookSecureTempFolder" 
For /F "Tokens=2*" %%I In ('Reg Query "%BK%%OV%%EK%" /V %VN%') Do Set "VD=%%J" 
PushD "%VD%" && (RD/S/Q "%VD%" 2>Nul) && PopD 
REM The below commands will empty Jacob'sTemp: 
If Exist "%SystemDrive%\Jacob'sTemp" (PushD "%SystemDrive%\Jacob'sTemp" && (
    (RD/S/Q "%SystemDrive%\Jacob'sTemp" 2>Nul) && PopD 
REM The below commands without the first two characters will remove Jacob'sTemp 
::If Exist "%SystemDrive%\Jacob'sTemp" (RD/S/Q "%SystemDrive%\Jacob'sTemp" 
Pause 
Echo(------------------------------------------------------------------------------ 
Echo(Complete! Goodbye! 
Echo(------------------------------------------------------------------------------ 
Timeout 5 >Nul 

は、それがどんな違いがあれば、単に見ることであると正確に試すことを与えます。

私は外出していましたが、編集可能な「セット」を一番上に残しました。これは、Outlookの以前のエディションまたはそれ以降のエディションに対応するために必要な唯一のビットです。

+0

私はそれを見逃しているかもしれませんが、そこにはOutlookSecureTempfolderの下のファイルが削除されますか?それが私が目指しているものです。私はちょうど1つのスクリプトでは、リモートでファイルを削除するには、スクリプトを使用してフォルダをコピーすることができたと思ったが、私はターゲットとしているコンピュータ上でローカルに。ヤコブの一時は、すべてのコンピュータ上にあるわけではなく、レジストリが削除された後に削除されたスクリプトから来ただけです。私は現在、私がテストしたラップトップを再イメージングしています。すぐにこれを実行します。 – Leavii

+0

'PushD"%VD% "&&(RD/S/Q"%VD% "2> Nul)&& PopD' OutlookSecureTempFolderとそのすべてのサブフォルダを再帰的に削除することです。この場合のトリックは、スクリプトがOutlookSecureTempFolderに移動し、実際には削除されないようにすることですが、その内容はすべて*にする必要があります。 – Compo

+0

そして、OutlookSecureTempFolderは、レジストリで指定したパスの最後のフォルダですか?私のregを見ると、C:\ Users \ jaj \ AppData \ Local \ Microsoft \ Windows \ INetCache \ Content.Outlook \ 8R7ATMABのパスが得られ、最後のフォルダ8R7ATMABは明確にするために。あなたはおそらく正しいかもしれませんが、私は他の何かをねじません、私はちょうど私が正しく笑を理解していることを確認したい。 – Leavii

関連する問題