16

以下のコードに応答してこのエラーが発生する理由をご存知でしょうか。ユーザー名とパスワードが正しいことが確認されました。

$secPassword = ConvertTo-SecureString "Password" -AsPlaintext -Force 
$farmCredential = New-Object System.Management.Automation.PsCredential "SharePoint\SP_Farm",$secPassword

Start-Process $PSHOME\powershell.exe -Credential $FarmCredential -ArgumentList "-NoExit","-Command `"&{`$outvar1 = 4+4; `"write-output `"Hello:`"`$outvar1`"}`"" -Wait

エラー;

Start-Process : This command cannot be executed due to the error: The directory name is invalid.
At C:\Users\Administrator.SHAREPOINT\AppData\Local\Temp\fb2956d7-87fc-4235-9f3c-742698cafe9f.ps1:8 char:14
+ Start-Process <<<<  $PSHOME\powershell.exe -Credential $FarmCredential -ArgumentList "-NoExit","-Command `"&{`$outvar1 = 4+4; `"write-output 
`"Hello:`"`$outvar1`"}`"" -Wait
    + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

ただし、これは問題なく機能します。

Start-Process $PSHOME\powershell.exe -ArgumentList "-NoExit","-Command `"&{`$outvar1 = 4+4; `"write-output `"Hello:`"`$outvar1`"}`"" -Wait

注: これは、PowerGUI または ISE ide 内から実行する場合です。ファイル fb2956d7-87fc-4235-9f3c-742698cafe9f.ps1 はパスの場所に存在するため、何らかの理由で ide がこれに問題を抱えています。それでも、Power Shell コマンド プロンプト/シェル内で直接実行すると機能します。ローカル管理者として実行されているローカル マシン アカウントでログインしました。スクリプトは、管理者権限を持たず、ユーザー権限のみで実行されるドメイン アカウントに実行を指示します。

powershellコマンドプロンプトウィンドウでブロックを実行すると動作するため、開発者としてIDEがこれによってつまずくべきではないため、これはバグですか??

4

7 に答える 7

16

同じバグがあります。

この機能は Powershell ISE では問題ありませんが、PowerGUI では機能しません。

Start-Process -FilePath "C:\WINDOWS\System32\cmd.exe" -Credential $credential -ArgumentList ("/c $sFileExecutable")

WorkingDirectoryパラメータで動作します

Start-Process -FilePath 'cmd.exe' -Credential $credential -ArgumentList ("/c $sFileExecutable") -WorkingDirectory 'C:\Windows\System32'
于 2014-06-06T08:00:54.760 に答える
5

私はこれがかなり遅いことを知っていますが、スレッドは私を助けました (特に@Dionysoos からの提案)。私の答えが他の人に役立つことを願っています。

同じエラーが発生しました...

Start-Process : This command cannot be executed due to the error: The directory name is invalid.

...スクリプトが ISE で動作しているときに無人でスクリプトを実行するとき。

無人スクリプトは、ユーザー固有$env:TEMPのディレクトリを作業ディレクトリとして使用していました。これは、新しいプロセスがそれにアクセスできないことを意味していました。コマンドで指定-WorkingDirectory $env:windirすると、問題が解決しました。Start-Process

于 2016-11-21T00:33:17.793 に答える
5

これは奇妙なものですが、エラーを再現して修正しました...

http://support.microsoft.com/kb/832434

基本的に、Powershell_ISE (または PowerGUI!) の開始ディレクトリをシステム全体の値に変更します。

于 2011-09-06T12:42:45.650 に答える
1

これは少し遅いかもしれませんが、現在のディレクトリがネットワーク パスであるときにそのコマンドを実行していますか? 私はこれを問題として経験しており、システム ドライブから同じコマンドを実行すると機能します。

于 2011-11-21T16:28:58.927 に答える
0

私の場合、その理由は、Windows 10 が新しいファイルを別の方向に作成するために保存したためでした。ファイルを追加しようとしprofile.ps1ましC:\Users\Username\Documents\WindowsPowerShellたがC:\Users\Username\**OneDrive**\Documents\WindowsPowerShell 、次の手順に従ってください。

RUN:
Test-Path C:\Users\User\Documents\WindowsPowerShell\
IF FALSE
New-Item -Path C:\Users\User\Documents\WindowsPowerShell\ -ItemType Directory
THEN
New-Item -Path $profile.CurrentUserAllHosts -Type File
THEN
start $profile.CurrentUserAllHosts
于 2020-03-22T17:36:23.300 に答える
-1

-WorkingDirectory を exe ディレクトリに設定するとまだ問題がありました... -WorkingDirectory を C:\Windows\System32 に設定し、fq パスを使用して exe が機能することがわかりました。

于 2017-07-20T15:40:44.823 に答える