トップ回答者
エラー:アクセス許可がないため構成ファイルを読み取ることができません

質問
-
お世話になっております。
リモートで仮想ディレクトリのwebdavオーサリング規則の削除をしたいですがエラーが出ます。
スクリプトはbatに書き、開きます。
問題のコマンドとエラーは以下です。
Invoke-Command $session -ScriptBlock {Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -Filter "/system.webServer/webdav/authoringRules" -Location "webdav/$($args[0])" -Name "." -AtElement @{users= 'user01';roles='';path='*'}} -ArgumentList $user
エラー:アクセス許可がないため構成ファイルを読み取ることができません
+CategoryInfo:NotSpecified:(:)[Remove-WebconfigurationProperty], UnauthorizedAccessExeption
+FullyQualifiedErroId: System.UnauthorizedAccessExeption,Microsoft.IIs.PowerShell.Provider.RemoveConfigurationPropertyCommand以上になり、WebDAVオーサリング規則の削除ができません。
リモートでこれを削除するにはどのようにすれば良いか、
ご存じでしたらご教示ください。
- 編集済み kawasa19 2020年11月5日 5:16
回答
すべての返信
-
チャブーンです。
この件ですが、「ビルトインAdministrator」でbatを実行した場合、どうなるでしょうか?(非ドメイン環境の場合実行先サーバーのビルトインAdministratorのパスワードをあわせておく必要があります)
これで実行ができるなら、リモートのUACが邪魔をしている可能性が高いので、以下を見て無効化してください。
https://www.poweradmin.com/help/pa-server-monitor-8-1/howto_disable_remote_uac.aspx
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
-
チャブーンさん
ご回答ありがとうございます。
>この件ですが、「ビルトインAdministrator」でbatを実行した場合、どうなるでしょうか?(非ドメイン環境の場合実行先サーバーのビルトインAdministratorのパスワードをあわせておく必要があります)
スクリプトの内容を修正し、以下のように対応しました。
#リモート接続
$session = New-PSSession -ComputerName <接続先IP> -Credential <接続先IP>\administrator
#仮想ディレクトリuserのオーサリング規則user01を削除する
Invoke-Command $session -ScriptBlock {Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -Filter "/system.webServer/webdav/authoringRules" -Location "webdav/$($args[0])" -Name "." -AtElement @{users= 'user01';roles='';path='*'}} -ArgumentList $user
こちらをbat試した結果、同エラーが発生し、削除に至りませんでした。
リモート接続する側、ビルトインAdministrator
リモート接続される側、ビルトインAdministrator
での実行です。
- 編集済み kawasa19 2020年11月5日 8:54
-
チャブーンさん
ご返信ありがとうございます。以下2点お聞きしたいことがございます。
>UACですが、ログオンしているユーザー(デスクトップのユーザー)に依存するケースがあるため、まずビルトインAdministratorでログオンし、コマンドプロンプトから実行してください。
①リモート接続する側PCにビルトインAdministratorでログオンで良いでしょうか?
②コマンドプロンプトから実行とは、batを実行ですか?作成したコマンドを実行ですか?
現在、ご返信を参考に
→リモート接続する側PCにリモート接続する側PCのビルトインAdministratorでログオン
→スクリプトを記載したbatを実行
→bat内でリモート接続される側PCにリモート接続される側PCのAdministratorでログオン
→UAC無効化→bat内でオーサリング規則削除
→エラー:アクセス許可がないため構成ファイルを読み取ることができません
という流れになっております。
どこか手順が間違っていますでしょうか?お手数ですがご回答よろしくお願いいたします。
- 編集済み kawasa19 2020年11月9日 1:28