Powershellの共有ネットワークフォルダーにアクセスしてファイルなどを取得することがよくあります。ただし、共有にユーザー名/パスワードが必要な場合、Windowsエクスプローラーとは異なり、Powershellはこれらの入力を求めません。Windowsエクスプローラーで最初にフォルダーに接続すると、Powershellで接続できるようになります。
Powershellで自分自身を認証するにはどうすればよいですか?
Powershellの共有ネットワークフォルダーにアクセスしてファイルなどを取得することがよくあります。ただし、共有にユーザー名/パスワードが必要な場合、Windowsエクスプローラーとは異なり、Powershellはこれらの入力を求めません。Windowsエクスプローラーで最初にフォルダーに接続すると、Powershellで接続できるようになります。
Powershellで自分自身を認証するにはどうすればよいですか?
一見New-PSDrive
すると、資格情報を提供することを実際に使用したいと考えています。
> New-PSDrive -Name P -PSProvider FileSystem -Root \\server\share -Credential domain\user
New-PSDrive : コマンドレットの動的パラメーターを取得できません。'FileSystem' プロバイダーの NewDrive の動的パラメーターを取得できません。プロバイダーは資格情報の使用をサポートしていません。資格情報を指定せずに操作を再実行してください。
ドキュメントには、オブジェクトを提供できると記載されていますPSCredential
が、よく見ると、コマンドレットはまだこれをサポートしていません。多分次のバージョンで私は推測します。
したがって、関数を呼び出して、net use
またはオブジェクトを使用できます。WScript.Network
MapNetworkDrive
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("u:", "\\server\share", $false, "domain\user", "password")
どうやら PowerShell の新しいバージョンでは、New-PSDrive
コマンドレットはネットワーク共有を資格情報にマップするように機能します!
New-PSDrive -Name P -PSProvider FileSystem -Root \\Server01\Public -Credential user\domain -Persist
これはPowerShell固有の回答ではありませんが、最初に「NETUSE」を使用して共有に対して認証できます。
net use \\server\share /user:<domain\username> <password>
そして、PowerShellで必要なことは何でもします...
PowerShell 3 は、すぐに使用できるようになりました。
PowerShell 2 に行き詰まっている場合は、基本的にレガシーnet use
コマンドを使用する必要があります (前述のように)。