.CMDファイルがファイルをコピーしようとすると「アクセスが拒否されました」


0

Windowsエクスプローラーでファイルを右クリックして実行する.CMDファイルがあります。クリックしたファイルは、パラメータとして.CMDファイルに渡されます。.CMDファイルはいくつかの処理を行ってから、あるフォルダーから別のフォルダーにファイルをコピーします。Windows XPでは問題なく動作しました。Windows 8では、「コピー」コマンドを実行すると、「アクセスが拒否されました」というエラーメッセージが返されます。

Windowsエクスプローラーを使用してファイルをコピーすると、ダイアログボックスに「このフォルダーにコピーするには管理者権限を提供する必要があります」というメッセージが表示されます。[続行]をクリックすると、ファイルがコピーされます。

UACの詳細は知りませんが、介入なしでファイルをコピーできるようにアクセス許可を変更したくないことを知っています。つまり、.CMDファイル全体を管理者として実行したくないのです。入力ファイルを右クリックし、.CMDファイルを実行し、「コピー」コマンドを実行しようとしたときにダイアログが表示されるようにします。次に、[続行]をクリックして、コピーコマンドのみを管理者権限で実行できるようにします。(ファイルがコピーされた.CMDファイルに別の場所がある場合、または管理者特権を必要とするその他の操作がある場合、ダイアログを再度表示して、その操作を管理者として実行してもよいかどうかを確認します)。

これはできますか?

回答:


2

あなたがやろうとしていることに対する簡単な解決策はないのではないかと思う。

  • cmd あまりインタラクティブではなく、スクリプトは人間の注意なしに実行されることを意図しています。
  • もう1つの制限は、UACの動作方法にあります。プロセスは起動時にのみ昇格できます。プロセスが開始された後、プロセスは管理者権限を持っているかどうかのいずれかです。
    したがって、あなたの場合、UACプロンプトにつながる可能性のあるすべてのコマンドについて、両方の方法でコーディングする必要があります。スクリプトには、昇格なしで、および昇格ありでコピーする許可があります。

昇格cmdを処理する追加ツールがない限り、昇格をプログラムできません。その後、通常のアクセス許可で失敗したコマンドを続行します。


Windows XPでの動作に問題がない場合、最も簡単な解決策は、管理者権限でスクリプトを実行することです。

スクリプトの目的が1つのファイルをコピーすることであり、それがスクリプトのすべてである場合、UACでうまく機能するユーティリティを作成するのはやり過ぎのように思えます。


スクリプトのショートカット.lnkファイルを作成できます。次に、ショートカットプロパティの[ ショートカット ]タブで、[ 詳細設定 ]ボタンをクリックし、[ 管理者として実行 ]をオンにします。[ OK]を 2回クリックして、変更を保存します。

このようなショートカットをクリックすると、Windowsコマンドプロセッサの UACプロンプトが表示されます.cmdファイルを実行するため)。


誰もが助けられるように、私は質問をさらに編集しました。しかし、@ Alexey Ivanov:私がやりたいことはできないということを明確にしたと思います。ショートカット(.lnkファイル)を試します。ありがとう。
user184411

ショートカットは機能しませんでした。sudowinを試してみます。
user184411

@ user184411ショートカットが機能しませんでしたか?
アレクセイイワノフ

@ Alexey Ivanov:10月初旬にコンピューターに戻ったら教えます。
user184411

2

管理者としてコマンドプロンプトを開く必要があります。

  1. 実行ダイアログを開いて(Win+をR一緒に押して)taskmgrと入力するか、Ctrl+ Shift+を押して、タスクマネージャーを開きますEsc

  2. [ ファイル] -> [ 新しいタスク]をクリックします

  3. [ 管理者特権でこのタスクを作成する]チェックボックスをオンにします。これが表示されない場合は、ユーザーアカウントが管理者アカウントではなく標準アカウントであることを意味します。UACプロンプトをクリックできるので、管理者であると想定しています。

  4. cmdと入力して[OK]をクリックします。アクセス許可エラーを受け取ることなく、このコマンドプロンプトからコピーコマンドを実行できるはずです。

または、Win+ Xを押してパワーユーザーメニューを表示し、選択することもできます

パワーユーザーメニュー

そこからコマンドプロンプト(管理者)を選択します(またはAを押します)


質問を編集し、詳細を追加して、これが私が探している答えではない理由を示しました。
user184411

1
@ user184411バッチファイルが必要なようです。コピーコマンドをバッチファイルに配置し、管理者として実行します。
ジョンベンシン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.