2009-06-10 9 views
0

クライアントマシンにWindowsフォームアプリケーションがあります。私はtelnetでログインしようとしていますが、シャットダウンしてファイルを更新して再起動します。私はどのように私のwinformsアプリケーションをtelnetで起動しますか?

クライアントマシンでcmdを使用し、MyApp.exeを入力するとすぐに起動できます。しかし、私がtelnetウィンドウでこれを行うと、何か不思議なことが起こります。アプリケーションはプロセスリストにある限り起動しますが、フォームが開いていなくてもlog4netのログも行われません。

何が起こっているのですが、どうすれば解決できますか?

編集:これは、フォームベースのすべてのWindowsアプリの場合のようです。自分で試してみてください:telnet localhost =>メモ帳。それは彼のユーザーインターフェイスではなく、UIでポップアップ!

また、これらのマシンにはすべてRAdminがインストールされていますか?私が見てきたことから、存在しないオートメーション施設がありましたが、それを助けてくれるものがありますか?

+0

何が起こっているのは、アプリケーションが関連付けられているユーザーデスクトップなしで起動していることです。現在ログインしているユーザーアカウントを見つけて、そのユーザー権限で実行する必要があります。あなたがtelnetされたユーザの下でそれを走らせるならば、あなたはヘッドレスディスプレイを得ます - それはほとんどの場合デスクトップと対話できません。 –

+0

Jason、telnetからユーザーとしてアプリケーションを実行する方法を教えてください。コンピュータには管理者ユーザーしかいないので、私はtelnetで接続していて、管理者としてデスクトップを実行しています。 –

+0

ちょうど好奇心から、リモートデスクトップを使用できない理由はありますか? –

答えて

1

編集:私の元の答えでは、私はあなたの質問を誤解した、私はあなたがマシンを再起動したと思った。

それでも、私はおそらくおそらく別のアプローチを取ろうとしています。いくつかのタイプの自動更新サービスをMyApp.exeに設定できますか?簡単な方法は、MyApp.exeが新しいバージョンがいつ利用可能かを見るためにポーリングできるWebサービスを設定することです。更新作業を行うには、アップデータアプリケーションを起動する必要があります。

+0

なぜユーザーコンテキストはありませんか?私はユーザーとしてtelnetにログインします。私はマシンを再起動したくない、プログラムのdllなどのシステムファイルを更新するだけだ。 –

+0

私たちは間違ったモードで起動しているアプリケーションの問題を解決するために、かなり複雑なアーキテクチャーを構築しています。最悪の場合はProcess.Startを使用する2行のブートストラップアプリケーションを実行できますが、それは別の動いている部分ですが、もっと単純なものが必要ですか? –

1

私はあなたのアプリがプライベートデスクトップで起動していると思って、あなたのtelnetセッションを閉じるとすぐに終了します。私は "現在/アクティブ"のデスクトップウィンドウで起動する方法を知らないが、telnetからログアウトした後も起動させ続けるには、 "start"コマンドで実行してみてください。

+0

ああ、ありがとうジョエル、興味深い手がかり。 –

+0

実際に私はこれを考えました。なぜなら、単にプライベートなデスクトップで起動していたのであれば、なぜlog4netは何もログに記録していませんでしたか? –

+0

すぐにログアウトすると、何かをする時間が来る前に終了する可能性があります。しかし、私はそれが権限の問題である可能性が高いと思う。 –

1

telnetを使用する代わりに、VNCRobotを試してみることもできます。 VNCRobotはユーザーとして実行され、同じデスクトップを共有する必要があります。

免責事項:私はVNCRobotを使用したことは一度もありませんでしたが、私はそれが言及する価値があると思いました。

+0

おかげさまで、面白そうに聞こえますが、たとえ自動化されていても、すでにリモート管理者がいても、これらのマシンにサードパーティ製のVNCソフトウェアをインストールすることは正当化できません。 –

+0

http://www.radmin.com/products/radmin/がインストールされていますか?私はその問題に気付かなかった。あなたはこの問題を引き起こすそのツール経由でtelnettingについて特別な何かがあるかもしれないのであなたの質問にそれを編集したいかもしれません。あるいはそうではないかもしれませんが、ちょうどその場合に言及する価値があります。 – dss539

+0

さて、私はそのツールを使ってtelnetでいないので、実際にはルビースクリプトを使ってこれをやっています。あるいはcmd、またはpowershell - 特に気にしないでください。私はこの事実を編集しました。たぶんそれは私が使うことができる何らかの種類のユーティリティまたは拡張機能を持っています。 –

0

これらのマシンでPowerShellを実行できる場合は、実行中のプロセスを見つけてそれを強制終了するために使用できます。 ..

Get-Process 

..Cmdletは、あなたがこのリストをforeachの直接PowerShellで正規表現を使用してアプリケーションに合わせて、ロジックを記述することができ、あなたの実行中のプロセスが表示されます、私は、Rubyを知らないが、理論的には、あなたは可能性そのプロセスを強制終了するには

powershell.exe -command Get-Process 

::でPowerShellのコマンドを呼び出す同じことを行うためにそれを使用するTelnet経由でGUIプロセスを起動する方法を

Stop-Process <processId> 
Stop-Process -processname <processName> 

かなりわからない、私はしないでください私の装置にtelnetが設定されている。私はしかし、私は、新しいプロセスを強制終了することができませんでしたhttp://www.peterprovost.org/blog/post/Powershell-Sudo-(sort-of)-for-Vista-UAC.aspx

は、そのアドレスの例のように、「runasコマンドは、」これをやって、UACを起動するために動詞の設定:

おそらくあなたはこれに似た何かを行うことができます

$psi.Verb = "open" 

をさらにあなたが同様にこれらの属性を設定することができます:私は設定されている場合、それを殺すためにWindows XP上

Verb     : open 
Arguments    : 
CreateNoWindow   : False 
EnvironmentVariables : {processor_revision, processor_level, logonserver, systemroot...} 
RedirectStandardInput : False 
RedirectStandardOutput : False 
RedirectStandardError : False 
StandardErrorEncoding : 
StandardOutputEncoding : 
UseShellExecute   : True 
Verbs     : {open, runas, runasuser} 
UserName    : 
Password    : 
Domain     : 
LoadUserProfile   : False 
FileName    : notepad.exe 
WorkingDirectory  : 
ErrorDialog    : False 
ErrorDialogParentHandle : 0 
WindowStyle    : Normal 
+0

私が抱いている唯一の問題は、プロセスを開始することです。それを止めるのは簡単です。また、PowerShellはない、彼らはあまりにも承認されることはほとんどないので、タッチスクリーンのダム端末です。 –

1

を、私はこのlimitaを回避する方法を見つけましたWindowsのタスクスケジューラを使用してWindows 7では、デフォルトでtelnetはインストールされません。

私が最初にネットワークアクセスに変更する必要がありました: - するローカルアカウントの共有とセキュリティモデルを次のレジストリ設定マージすることにより、「クラシックローカルユーザーがローカルユーザーとして認証する」:

ます。Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINEを\ SYSTEM \ CurrentControlSet \ Control \ Lsa] "forceguest" = dword:00000000

私はそれをリモートFTPサーバー上のファイルに置き、FTPコマンドを使用して取得しました。

regeditを/ sのfile.regで

それをマージは、それから私は、一度走ったタスク作成: でschtasks /作成/ SC ONCE/RU "ユーザー"/RPパス/ TN "startappの"/TRを「\ "C:\ WINDOWS \ notepad.exeを\"」/ ST 00:00:00

は手動でスケジュールを開始しました: Schtasksの/実行/ TNは "startappの"

は、スケジュールを削除: でschtasks /削除します/ F/tn「StartAPP」

それはうまくいった。クレイジー右!なんと痛い!

+0

Yikes!申し訳ありませんが、Windows XPで作業する必要があります。クライアントにアップグレードを指示する必要があります。 –

関連する問題