0

初めてのポスターの長年の読者。皆さんのすべての仕事に感謝したいと思います。私は VB プロジェクトに取り組んでいます。現在、いくつかのツールが dos で記述されていますが、そのツールは古く、現在 &%^$ では機能しません。私がバッチで持っているのはこれです。

if exist %userprofile%\Local GOTO W7

RD  /s /q "%userprofile%\Local Settings\Application Data\Our Company Folder"

RD  /s /q "%userprofile%\AppData\Local\Our Company Folder"

これが行うことは、破損が発生したときに会社の構成フォルダーを削除することです。

VBで作成したサポートツールがあるので、このコマンドをVBに変更したいです。

これは私が今持っているものです

     Dim fso
        Dim wshshell As Object
        Dim USRPROFILE
        fso = CreateObject("scripting.filesystemobject")
        wshshell = CreateObject("wscript.shell")
        USRPROFILE = wshshell.expandenvironmentstrings("%APPDATA%")
        If fso.FolderExists(USRPROFILE & "\Our Company Folder") Then
            fso.DeleteFolder(USRPROFILE & "\Our Company Folder")
        End If
        USRPROFILE = wshshell.expandenvironmentstrings("%HOMEPATH%")
        If fso.FolderExists(USRPROFILE & "\Local Settings\Application Data\Our Company Folder") Then
            fso.DeleteFolder(USRPROFILE & "\Local Settings\Application Data\Our Company Folder")
      End If
End Sub

ただし、このエラーメッセージが表示されます。タイプ 'System.Security.SecurityException' の未処理の例外が Microsoft.VisualBasic.dll で発生しました

追加情報: HRESULT からの例外: 0x800A0046 (CTL_E_PERMISSIONDENIED)

4

2 に答える 2

0

これは、プログラムを実行している人は誰でも正しい権限を持っていないため、いくつかのオプションがあります。

  • フォルダーのアクセス許可を変更する
  • 権限を持つユーザーとしてログオン
  • または、以下のリンクで提案されているように、別のユーザーとしてプロセスを実行します。

VB.Net - 「管理者として実行」でプロセスを使用して vbscript を実行する

于 2013-07-02T19:52:02.820 に答える
0

私がそのメッセージを読んだのは、VB コードを実行しているユーザーがフォルダーを削除する権限を持っていないということです。

于 2013-07-02T15:48:44.550 に答える