特定のユーザーとしてリモート アプリケーションから PowerShell スクリプトを実行する方法

特定のユーザーとしてリモート アプリケーションから PowerShell スクリプトを実行する方法

リモート Windows マシンで PowerShell スクリプトを実行できるアプリケーションがあります。 PowerShell スクリプトを使用してネットワーク ドライブをマップしようとしています。 同じスクリプトをエンドポイントで実行すると、スクリプトは正常に動作し、ネットワーク ドライブをマップできます。 しかし、同じスクリプトをアプリケーションから実行すると、ネットワーク ドライブのマップは実行されますが、切断されたネットワーク ドライブとしてマップされます。

さて、私の観察: 私のアプリケーションがアカウントを使用してスクリプトを実行していることがわかりましたNT Authority\System。おそらくこれが原因で、マップされたネットワーク ドライブが特定のユーザーには切断されたドライブとして表示されます。私の考えは正しいでしょうか?

さて、問題は、すべてのユーザーが利用できるネットワーク ドライブをマップするにはどうすればよいでしょうか。または、PowerShell スクリプトを特定のユーザーとして実行して、そのドライブがそのユーザーのみにマップされるようにすることはできますか。

とにかく、私はすでに、およびを使用して、アプリケーションとは別のユーザーとして PowerShell スクリプトを実行しようとしましたStart-ProcessInvoke-Command、エラーがスローされ、run と表示され、winrm quickconfigこれも機能しませんでした。

何か助けて頂けませんか? 感謝します!!

答え1

NT Authority\Systemドライブからマップされると切断されたように表示されますが、動作するはずです:サービスで使用するネットワークドライブをマップする

注意: 新しく作成されたマップされたドライブは、このシステムのすべてのユーザーに表示されますが、「切断されたネットワーク ドライブ (Z:)」として表示されます。名前に惑わされないでください。切断されているように見えますが、すべてのユーザーに対して機能します。

さらに、 を使用してドライブをマッピングすることNT Authority\Systemは、ネットワーク ドライブをすべてのユーザーが利用できるようにする唯一の方法です (ただし、正式にはサポートされていません)。

特定のユーザー用にドライブをマップしたい場合は、別のユーザーとして PowerShell を実行するただし、そのユーザーの資格情報を取得する必要があることも意味します。

これはトークン操作で軽減できますが、難しいです。トークン操作の呼び出し関数とそのImpersonateUserパラメータ。

関連情報