2017-05-13 10 views
0
var processStartInfo = new ProcessStartInfo(); 
     processStartInfo.WorkingDirectory = @"c:\temp"; 
     processStartInfo.FileName = "cmd.exe"; 
     processStartInfo.UseShellExecute = false; 
     processStartInfo.RedirectStandardInput = true; 
     // set additional properties  
     Process proc = Process.Start(processStartInfo); 

     //process.StandardInput.WriteLine("c:"); 
     proc.StandardInput.WriteLine("powershell -ExecutionPolicy Bypass c:\\temp\\autologin.ps1"); 
     proc.StandardInput.Close(); 

レジストリに必要な変更を行うPowerShellのPowerShellスクリプトではなく

$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" 
Set-ItemProperty $RegPath "AutoAdminLogon" -Value "0" -type String 
Set-ItemProperty $RegPath "DefaultUsername" -Value " " -type String 
Set-ItemProperty $RegPath "DefaultPassword" -Value " " -type String 

私は私のプログラムの書き込みPowerShellスクリプトを実行しようとしてきました。私はコンピュータを再起動して、そのpowershellプログラムに再びアクセスするので、プログラムでpowershellコマンドを実行するだけではいけません。

アイデア?現在はコマンドを実行しますが、レジストリに変更は加えませんが、コマンドを自分でCMDに入力すると完全に動作します。だから私はちょっと立ち往生して、必要なのはC#が私のためにそのPowerShellスクリプトを実行することだけです。参照用

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon REGキー

NEW EDIT:プログラムはWOW6432NODE

+0

変更するレジストリキーは何ですか?それらにアクセスするには管理者権限が必要ですか? – mageos

+0

proc.StandardInput.WriteLine( "reg add" + c "HKLM \\ソフトウェア\\ Microsoft \\ Windows NT \\ CurrentVersion \\ Winlogon" + c + "/ v AutoAdminLogon/t REG_SZ/d 0/f") ; Windows NT \ CurrentVersion \\ Winlogon "+ c +"/v DefaultUserName/t REG_SZ/d "+ username +"これは、/f "); Windows NT \ CurrentVersion \ Winlogon "+ c +"/v DefaultPassword/t REG_SZ/d "+"はい " + "/ f"); proc.StandardInput.WriteLine( "タイムアウト10"); –

+0

それは、バッチバージョンのPowerShellのバージョンが異なっていますが、私はスクリプトを実行していない代わりにコマンドをseperatly実行し、レジストリに変更はありません。 –

答えて

0

でレジストリキーを実行しますが入れている問題は、アプリケーションがこれらのキーにアクセスするための管理者権限を必要としていることであるように聞こえます。 Windows 7以降でUACを有効にすると、ログインしているユーザーに管理者権限があっても、プロセスが要求しない限り、管理者権限を持たなくなります。

この記事:それは管理者権限で実行されるようにHow to force my C# Winforms program run as administrator on any computer?

は、あなたのセットアッププロジェクトに役立つはずです。

+0

悲しいことに、私はすでにアプリケーションマニフェストの変更を問題は、CMDが管理者として実行されていないことです。iは管理者として実行されているデバッグを行い、実際にCMDプロンプトに自分のコマンドを書き込んで、正常に実行しました。しかし、私のプログラムは私のE:ドライブであり、私のメインCではありません。 –

1
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 0 /reg:64 /f 
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d USERNAME /reg:64 /f 
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d PASSWORD /reg:64 /f 

デバッグ後にバッチ処理が行われたことがわかりました。ファイルを書き込んだ方法を編集できました。今、あなたの助けに感謝しています!

関連する問題