リモートWindowsマシンでPowerShellスクリプトを実行できるアプリケーションがあります。 PowerShellスクリプトを使用してネットワークドライブをマップしようとしています。同じスクリプトがエンドポイントで実行されると、スクリプトは正常に機能し、ネットワークドライブをマップできます。しかし、同じスクリプトがアプリケーションから実行された場合、ネットワークドライブのマッピングは完了しましたが、切断されたネットワークドライブとして行われました。
さて、私の観察:私のアプリケーションがNT Authority\System
アカウントでスクリプトを実行していることがわかりました。このため、マップされたネットワークドライブは、切断されたドライブとして特定のユーザーに表示されます。私は正しいですか!!?
さて、問題:すべてのユーザーが利用できるネットワークドライブをマップするために何ができるでしょうか?または、PowerShellスクリプトを特定のユーザーとして実行して、ドライブがそのユーザーにのみマップされるようにすることはできますか?
とにかく、Start-Process
とInvoke-Command
を使用して、アプリケーションとは別のユーザーとしてPowerShellスクリプトを実行しようとしましたが、エラーがスローされ、run winrm quickconfig
も機能しませんでした。
何か助けはありますか?感謝!!
NT Authority\System
からマップすると、ドライブは切断されたものとして表示されますが、機能するはずです: サービスが使用するネットワークドライブをマップする
注:新しく作成されたマップされたドライブは、このシステムのすべてのユーザーに表示されますが、「切断されたネットワークドライブ(Z :)」として表示されます。名前にだまされてはいけません。切断されていると主張する場合もありますが、すべての人に有効です。
さらに、NT Authority\System
を使用してドライブをマッピングすることは、ネットワークドライブをすべてのユーザーが利用できるようにする唯一の(公式にはサポートされていませんが)方法です。
ドライブを特定のユーザーにマップする場合は、 PowerShellを別のユーザーとして実行する にする必要があります。ただし、そのユーザーの資格情報を取得する必要があることも意味します。
これはトークン操作を使用して軽減できますが、注意が必要です。 Invoke-TokenManipulation 関数を参照してください。これは、ImpersonateUser
パラメーターです。