2012-10-31 9 views
14

मेरे पास निम्न कोड है जो अनुसूचित कार्य जानकारी के माध्यम से जाता है और स्क्रीन पर होने वाली आउटपुट को लॉग फ़ाइल में रखता है।स्टार्ट-ट्रांसक्रिप्ट लॉग आउट फ़ाइल में सभी आउटपुट कैप्चर नहीं कर रहा है ..?

हालांकि, मैंने जो देखा है वह है कि सभी त्रुटियां लॉग इन हैं जिनके पास "एक्सेस अस्वीकृत है" - मैं लॉग फ़ाइल में उन त्रुटियों को कैसे लॉग कर सकता हूं। यहाँ स्क्रीन पर उत्पादन होता है

Start-Transcript -path $scheduledpath\logging.txt -append 

foreach ($name in $names) 
{ 
    Write-Host "Running Against Server $name" -ForegroundColor Magenta 
    if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue) 
     { 
      #$Command = "schtasks.exe /query /S $name /fo CSV /v >c:\tools\Scheduled\$name.csv" 
      $Command = "schtasks.exe /query /S $name /fo CSV /v >$scheduledpath\$name.csv" 
      Invoke-Expression $Command 
      Clear-Variable Command -ErrorAction SilentlyContinue 
     } 

    else{ 
      Write-Host "$name is Down" -ForegroundColor Red 
     } 

} 

Stop-Transcript 

:

नीचे कोड है

> Running Against Server SV064909 
> SV064909 is Down 
> Running Against Server SV081372 
> SV081372 is Down 
> Running Against Server YBEF008690_vorher_SV064930 
> YBEF008690_vorher_SV064930 is Down 
> Running Against Server Alt_SV064921 
> Alt_SV064921 is Down 
> Running Against Server SV073632 
> ERROR: Access is denied. 
> Running Against Server SV073633 
> ERROR: Access is denied. 

यहाँ लॉग फ़ाइल में उत्पादन होता है .... पहुँच नहीं दिखाया से इनकार किया है .. ।?

> Running Against Server SV064909 
> SV064909 is Down 
> Running Against Server SV081372 
> SV081372 is Down 
> Running Against Server YBEF008690_vorher_SV064930 
> YBEF008690_vorher_SV064930 is Down 
> Running Against Server Alt_SV064921 
> Alt_SV064921 is Down 
> Running Against Server SV073632 
> Running Against Server SV073633 

उत्तर

13

देशी आदेश उत्पादन प्रारंभ-ट्रांसक्रिप्ट उत्पादन में रिकॉर्ड किया जा रहा है लेकिन कंसोल के लिए किया जा रहा है उत्पादन कनेक्ट बग 315857 में रिपोर्ट के साथ यह व्यवहार। संभावित समाधान के लिए कामकाज देखें।

+0

aaahhhh ......... दिलचस्प .... इसके लिए धन्यवाद ...! – lara400

+7

और अब लिंक टूटा हुआ है और इसके साथ सभी कामकाज :-( – kroimon

+2

[पुन: संरक्षित लिंक] (http://web.archive.org/web/20130608164153/http://connect.microsoft.com/PowerShell/feedback/ विवरण/315875/असमर्थ-से-कैप्चर-ऑल-सत्र-आउटपुट-इन-ए-ट्रांसक्रिप्ट) –

10

सरलतम तरीके को पाइप के Out-Host

schtasks.exe /query /S $name /fo CSV /v >$scheduledpath\$name.csv | Out-Host 
+1

और अब, पाइपलाइन फट गई है, और आप अपने आउटपुट को किसी अन्य चीज़ पर पाइप नहीं कर सकते हैं। यह सबसे स्पष्ट दोष है वर्कअराउंड –

+0

मुझे संदेह है कि (schtasks.exe/query/S $ name/fo CSV/v> $ शेड्यूलपाथ \ $ name.csv | आउट-होस्ट) पाइपलाइन को अनबर्स्ट करेगा, हालांकि अब त्रुटियों को संभाल नहीं पाएगा। –

1

आह के मूल निवासी आदेश के परिणाम है, सही जवाब होना चाहिए:

$ कमान = "Schtasks.exe/क्वेरी/एस $ नाम/के लिए सीएसवी/वी 2> & 1> $ शेडपैथ \ $ name.csv "

आईई पाइप stderror (पाइप 2) stdout (पाइप 1) करने के लिए, ताकि दोनों stdout में दिखाता है।

0

उपरोक्त में से कोई भी मेरे लिए काम नहीं करता है। मुझे इस मुद्दे की चर्चा के साथ a link from 2009 मिला। लेकिन एक माइक्रोसॉफ्ट blog from 2010 ने मेरे लिए मुद्दा हल किया।

संक्षेप में, देशी कमांड आउटपुट को आउट-डिफॉल्ट पर पाइप करें।

schtasks.exe /query /S $name /fo CSV /v | Out-Default 

{मैं वास्तव में है कि रेखा अपने आप कोशिश नहीं की, लेकिन आप विचार मिलता है।}

0

प्राप्त सेवा टैग

$servicetag = Get-WmiObject win32_bios | Select-Object -ExpandProperty SerialNumber 
    Write-output $servicetag 

मैं शीर्ष पर एक पंक्ति में राइट-उत्पादन के लिए इस्तेमाल किया मेरी लिपि, उसके बाद वे सभी लिखित-होस्ट थे। लेकिन हर "लिखें" आउटपुट अब मेरी लिपि में दिख रहा है।

संबंधित मुद्दे