2017-06-16 46 views
2

私はこれに私が認めたいと思うより多くの時間を費やしました。 静かに異なる資格情報を使って新しいPowerShellインスタンスを(既存のPowerShellウィンドウで)起動します。Powershell.exeを別の資格情報を使用して(ユーザー名/パスワードの入力を求めずに)、QUIETLY起動する方法?

私が思いつくのは、非常に厄介です...私の画面上に2つの異なるPowershell Windowsをポップアップしてから、私に最後にプロンプ​​トを表示します。明らかに、-NoNewWindow引数は、新しいPowerShellウィンドウを開くことを妨げるものではありません。

私の非常に不格好コード:

Start-Process powershell.exe -Credential $DomainAdmin -WorkingDirectory $env:windir -NoNewWindow -ArgumentList "Start-Process powershell.exe -Verb runAs" 

"RunAsの" デスクトップのショートカットからたpowershell.exe(とユーザー名/パスワードを保存)する方法があります。私もそれに満足しています。以下は、私が作ろうとしたコードです。しかし、「267:ディレクトリ名が無効です」、私にエラーを与え続けてバグがあるように思わ

動作しないバッチファイル:

runas.exe /savecred /env /noprofile /user:MKA "powershell.exe -noprofile -command \"start-process -WorkingDirectory c:\temp powershell -verb RunAs\"" 

ソリューションを大幅だろう感謝。 、ユーザーMKAとして実行Targetウィンドウでこれにショートカットを作成する

+0

私はRunAsのは、あなたがそれがないと思うように動作しないと思います。 UACが有効になっていると、 'runas.exe'は管理者としてではなく、標準ユーザーとして'%user% 'にログオンします。私はあなたがやろうとしていることが可能かどうかは分かりません。私は最近非常によく似た質問を出しました。答えが得られませんでした。 [私の質問にリンク](https://stackoverflow.com/questions/43939765/batch-programming-a-runas-utility-creater) – GrumpyCrouton

+0

私の質問はなぜ新しいセッションを開けたいのですか?新しいシステムへのリモート接続の場合は、同じPowerShellウィンドウでそれを実行し、必要に応じて各セッションをあなたのスクリプトで呼び出すことができます。 – CrypticSage

+0

リモート処理がありません。私は実際にPowershellのインスタンスを意味します。 PowerShellのコンソールウィンドウでは、 "Powershell"と入力するのと同じように...別のユーザーコンテキストを除いて。 – MKANET

答えて

1

C:\Windows\System32\runas.exe /User:MKA /savecred C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 

PowerShellコンソールウィンドウを非表示にするには、実行中のスクリプトの先頭にこのコードを置くことができます。それはthis StackOverflow postの私の好意的な解決策です。

add-type -name win -member '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);' -namespace native 
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0) 

The post discusses other ways that may be more suitable for you.

+0

ありがとうgms0ulman!偉大な、働くソリューション。 – MKANET

関連する問題