• 締切済み

Powershellで実行した結果を

SHIMAPEEの回答

  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.1

Write-Hostで試してみました。究明はできていませんが$env:usernameの直後がコロンだと表示されないようですね。 文字列を分け、()で囲って連結するとそれなりに表示できます。 Windows XP Pro SP3 + PSVersion 2.0で確認しました($PSVersionTableの値)。 【Write-Host.ps1】 Write-Host ◇空白を一つ入れる。 Write-Host "0000001:$env:username :処理に失敗しました。" Write-Host ◇2バイトコードの:を使う。 Write-Host "0000002:$env:username:処理に失敗しました。" Write-Host ◇文字列をJoinで連結する。 Write-Host (-Join("0000003:$env:username", ":処理に失敗しました。")) Write-Host ◇文字列を+で連結する。 Write-Host ("0000004:$env:username" + ":処理に失敗しました。") Write-Host ◇[environment]::usernameを使ってみる。 Write-Host ("0000005:" + [environment]::username + ":処理に失敗しました。") 【実行結果】 ◇空白を一つ入れる。 0000001:user :処理に失敗しました。 ◇2バイトコードの:を使う。 0000002:user:処理に失敗しました。 ◇文字列をJoinで連結する。 0000003:user:処理に失敗しました。 ◇文字列を+で連結する。 0000004:user:処理に失敗しました。 ◇[environment]::usernameを使ってみる。 0000005:user:処理に失敗しました。

関連するQ&A

  • Powershell プログラミングについて

    サーバ管理をしている中で、日次で前日のイベントログを出力するプログラムを書きました。 初めてPowershellを使用し、ネットを観ながら見よう見まねで書いていたのですが、 ひとつ躓いてしまい・・・教えていただけないでしょうか? ---------------------------------------------------------------------------------- # system、application、securityのログを出力(ErrorとWarningのみ) $type = [string] $event = [system.diagnostics.eventLogEntry] $count = [int] $count = 0 foreach ($type in "system","application","security"){ # ログ取得 $event = get-EventLog -logname $type -after $start_time_yesterday -before $end_time_yesterday | ` Where-Object { $_.EntryType -eq "Warning" -or $_.EntryType -eq "Error" } | ` Where-Object { $_.EventID -ne "1111" -and $_.EventID -ne "5722" -and $_.EventID -ne "5719" }| ` Select-Object EntryType,EventID,TimeGenerated,Source,Message,HostName[$hostname] # テキストファイルに出力 $event >> $fPath ---------------------------------------------------------------------------------- このようなプログラムを書いたところ、 出力結果は以下のようになりました。 ---------------------------------------------------------------------------------- EntryType : Warning EventID : 14 TimeGenerated : 2012/10/10 8:54:05 Source : W32Time Message : タイム ソースとして使うドメイン コントローラを見つけることができません でした。15 分後に再試行します。 HostName[SAKURAI-PC] : ---------------------------------------------------------------------------------- HostName :[SAKURAI-PC] にするにはどのように書いたらよいのでしょうか? ご指導お願いいたします。

  • SQL実行結果の出力を見やすくしたい

    Oracle 10gを使用して勉強をしています。 SQL実行結果の出力が見にくくて困っています。 以下、(1)は自分が実行したSQL文ですが、(2)のように見やすく出力したいです。 どのようにすればよいのでしょうか? また参考となるWEB URLがある場合、頂けたら嬉です。 (1)自分が実行したSQL文 SQL> select 2 sid,serial#,username,osuser,program,machine,terminal 3 from v$session 4 where type = 'USER'; SID SERIAL# USERNAME ---------- ---------- ------------------------------ OSUSER PROGRAM ------------------------------ ------------------------------------------------ MACHINE ---------------------------------------------------------------- TERMINAL ------------------------------ 543 39 SYS oracleuser sqlplus@HOGE-net (TNS V1-V3) HOGE-net pts/1 SID SERIAL# USERNAME ---------- ---------- ------------------------------ OSUSER PROGRAM ------------------------------ ------------------------------------------------ MACHINE ---------------------------------------------------------------- TERMINAL ------------------------------ 544 5 SYS oracleuser sqlplus@HOGE-net (TNS V1-V3) HOGE-net pts/0 (2)こんな感じで出力させたいです。 select sid,serial#,username,osuser,program,machine,terminal from v$session where type = 'USER'; SID SERIAL# USERNAME OSUSER PROGRAM  MACHINE   TERMINAL ---- ------- --------- ------ ---------- ---------  -------- 139     2      TEST Owner sqlplus.exe   HOGE_XP HOGE_XP 144     20    SYSTEM      ORACLE.EXE HOGE_XP  HOGE_XP

  • PowerShell スクリプトでの先頭ゼロの記述

    検証環境で多数のユーザーを一括作成するため、Windows Powershell のスクリプト (.ps1) を使用して 以下の通り記述しています。 for ($i = 1; $i -le 100; $i++) { $username = "user-" + $i $computer= [ADSI]"WinNT://." $user = $computer.Create("user", $username) $user.SetPassword("p@ssw0rd") $user.SetInfo() } 上述のスクリプトで 100 ユーザーを作成できる (user-1 から user-100 まで作れます) のですが、アカウント名に付与する数字の桁数を 3 桁に統一したいのです。 しかしながら、上述のスクリプトでは、アカウント名に付与する通し番号 (user- の後) の先頭が 0 (ゼロ) であるとゼロを表示せず、たとえば user-1 のようにユーザーを作成してしまいます。 これを、user-001 のように本来作成したいのですが。。。 http://gallery.technet.microsoft.com/scriptcenter/eba74819-4e66-477d-aefd-a7f939521009 上記サイトなどを参考に先頭にゼロを付与する処理を作るべく頑張ってみましたが、うまくいっていません。 恐縮ですが、どうにか目的を達成できるようなアドバイスをいただきたく書き込みしました。 アドバイスくだされば幸いです。よろしくお願いいたします。

  • リナックスで攻撃?されているログ

    勉強用に立ち上げたサーバーの/var/log/secureに下のようなメッセージがぶわ~っと出力されていたんですが、 これは攻撃を受けていると見てよいのでしょうか? 一つ一つポートをかえてきているようで、とはいってもたまたまヒットしてもパスワードまでは分からないと思うのですが、 何となく不気味です。。。 67427 Feb 4 23:47:22 username sshd[3466]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=217-168-44-137.static.cablecom.ch user=root 67428 Feb 4 23:47:25 username sshd[3466]: Failed password for root from 217.168.44.137 port 41281 ssh2 67429 Feb 4 23:47:25 username sshd[3467]: Received disconnect from 217.168.44.137: 11: Bye Bye 67430 Feb 4 23:47:27 username sshd[3468]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=217-168-44-137.static.cablecom.ch user=root 67431 Feb 4 23:47:29 username sshd[3468]: Failed password for root from 217.168.44.137 port 41641 ssh2 67432 Feb 4 23:47:29 username sshd[3469]: Received disconnect from 217.168.44.137: 11: Bye Bye 知識のある方ご教授いただければと思います。

  • cronでPHP実行

    お世話になります。 OSはクライアントの為、恐縮ながら何を使用しているか不明となっております。 PHPバージョンは5.1.6です。 cronを使用して、毎日特定の時間に、メールを配信するPHPスクリプトを実行しようと試みているのですが、エラーメールが返ってきてしまいます。 因みに、URLを直接指定して実行した場合は正常にメールが配信されます。 設定方法は、crontab -e で 0 12 * * * /usr/lib/php -q /home/hoge/public_html/mail.php と記述しております。 返ってくるエラーメールの内容は、以下の通りです。 Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generated X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/home/hoge> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=hoge> X-Cron-Env: <USER=hoge> Message-Id: <xxxxxx@xxxxxxxxxx> Date: Sun, 28 Sep 2008 12:00:01 +0900 (JST) /bin/sh: /home/hoge/public_html/mail.php: Permission denied 以上、対策方法についてご存知の方がおられましたら、ご教授よろしくお願い致します。

  • 実行したSQLの結果を返す方法

    VBでSQLを発行、及び実行をし、 MDBを更新する処理を作成しています。 各SQLの実行(SELECT、INSERT、DELETE等)が 成功or失敗したかどうかを判定するには どのようにすれば良いのでしょうか? ソースのイメージとしては↓のような感じです。 Dim db As DAO.Database 'DB設定 Set db = OpenDatabase(DB名) 'SQL実行 db.Execute (DB内で作成したSQL) 【実行したSQLの正常終了の判定】 【実行メッセージ(成功or失敗)出力】

  • crontabのファイルのパス設定

    MacOSXを使っているUNIX超初心者です。 crontabのファイルのパス設定について質問です。 HDDが2台あって、コンソール上ではそれぞれ、 abcd123456:~ maruchan$ abcd123456:disk2 maruchan$ と表示されます(数字等は実際と変えていて、ユーザ名がmaruchanです)。 いつもは、コンソールからdisk2上のプログラムを直接動作させていまして、 abcd123456:disk2 maruchan$ /volumes/disk2/holder/program と打って、disk2/holder中のprogramを動作、その出力はdisk2/holderの中に書き込まれます。 コンソール上でいちいち打つ代わりに、crontabで行おうとして、disk2上にテキストファイルtest.crontabを作り、 00 12 * * * /volumes/disk2/holder/program と入れまして、下記を打ちました。 abcd123456:disk2 maruchan$ crontab test.crontab プログラムは指定時間に動作したのですが、出力が、 abcd123456:~ maruchan$ の中に書き込まれます。 出力は、disk2/holderに書かれるようにしたいのです。 原因はCronの環境設定が下記のデフォルトのままであることなのですが、test.crontab中にどのように環境設定記述をすれば良いのでしょうか? X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=maruchan> X-Cron-Env: <USER=maruchan> X-Cron-Env: <HOME=/Users/maruchan> なお、 HOME=/volumes/disk2/holder 00 12 * * * /volumes/disk2/holder/program としてみたのですが、変更できませんでした。 どうぞよろしくお願いします。

  • QUERY_STRING が、SSIを使用すると取得できません

    以下の2ファイルを使用して、 環境変数QUERY_STRINGの取得のテストをしています。 ------------------------------------------------ ファイル名:test_env.cgi ------------------------------------------------ 内容: print <<"HERE"; $ENV{'QUERY_STRING'}<br> $ENV{'REMOTE_ADDR'} HERE ------------------------------------------------ ------------------------------------------------ ファイル名:test_env.shtml ------------------------------------------------ 内容: <html> <head> <title> 環境変数のテスト </title> </head> <body> <!--#include virtual="/cgi-esp/test_env.cgi"--> </body> </html> ------------------------------------------------ ブラウザのアドレスバーに test_env.cgi?name=aaa と入力して実行すると、 QUERY_STRING、REMOTE_ADDR の両方が出力されますが、 test_env.shtml?name=aaa だと、 ローカルでは両方出力できたのに、 サーバにアップするとQUERY_STRINGが出力されません。 SSIを使用してCGIファイルを実行した場合、 QUERY_STRINGは取得できなくなるものなんでしょうか? それとも、取得できる書き方があるのでしょうか? どなたか、ご教示ください。

    • ベストアンサー
    • Perl
  • VBAでXCOPYの実行結果を取得したい

    VBAでshell関数を利用してXCOPYを実行し、テキストファイルにその実行結果を出力しています。 しかし、結果には D:\>xcopy D:\test\ssss.txt D:\test2 ファイルが見つかりません - ssss.txt 0 個のファイルをコピーしました もしくは D:\>xcopy D:\test\sssss.txt D:\test2 D:\test\sssss.txt 1 個のファイルをコピーしました というDOS画面で表示される内容が出力されているだけです。 ここでコピーに失敗している(0個のファイルをコピーしました)ファイル名だけを取得することは可能でしょうか? 色々サイトを検索してみましたが、答えが見つかりません。 恐れ入りますが、どなたかご存知の方がいらっしゃいましたらご教示ください。 よろしくお願いします。

  • シェルファイル内での「setenv」、「unsetenv」の実行 その2

    シェルファイルの先頭行に、 「#!/bin/csh」 と記述したところ「system: Undefined variable.」というメッセージが出力されてしまいました・・・。 どうしたらよいのでしょう?設定の問題なのでしょうか? よくわからないのですが、 「env | grep csh」 と実行してみると「SHELL=/user/bin/csh」という結果がえられるのですが・・・。