दिलचस्प पोस्ट
किसी दिनांक स्ट्रिंग को बदलने और मान्य करने का सबसे अच्छा तरीका सी # मैं एक फाइल का परीक्षण कैसे कर सकता हूं jpeg? WCF त्रुटि: 405 विधि अनुमति नहीं है जीआईटी व्हाइसेस्पेस संकट अजीब लिंकिंग त्रुटि: डीएसओ कमांड लाइन से गायब है एक आवेदन को छोड़कर पर frowned है? शब्द द्वारा स्ट्रिंग शब्द का इनपुट लेना ऑब्जेक्टआईडी बनाम यूयूआईडी की एक बड़ी वितरित प्रणाली में टक्कर की संभावना जब मैं बैबल का उपयोग करता हूं तो क्या मुझे जेएस की आवश्यकता है? सादा पाठ के रूप में TinyMCE पेस्ट करें ऑब्जेक्ट की प्रॉपर्टी नाम प्राप्त करना वितरण के लिए सी ++ प्रोग्राम से अजगर कॉलिंग XSLT ट्रांसफ़ॉर्म काम नहीं करता जब तक कि मैं रूट नोड को हटा न दूं एंड्रॉइड एप्लिकेशन के साथ एसडीसीडी पर एक फ़ाइल का नाम कैसे बदलें? आप एक्लिप्स कैसे बढ़ा सकते हैं?

RPM और UNC उपलब्ध नहीं होने के बाद फ़ाइल को एक XP पीसी से दूसरी में WMI का उपयोग करने की कोशिश कर रहा है

मैं VBScript के लिए नया हूँ मुझे वीबीएस में एक एक्सपी मेजबान से दूसरे फाइलों को कॉपी करने का कोई तरीका नहीं मिल सकता है। फ़ाइलों की प्रतिलिपि बनाने का सामान्य तरीका (RPC – दूरस्थ प्रक्रिया कॉल, एसएमबी, यूएनसी) कई मेजबानों के लिए उपलब्ध नहीं हैं लेकिन WMI सभी होस्ट्स के लिए उपलब्ध है, और मुझे अपने व्यवस्थापक होस्ट से एक लक्ष्य विंडोज होस्ट में फ़ाइलों की प्रतिलिपि बनाने की आवश्यकता है I मैंने सोचा कि मुझे वहां कुछ नमूना कोड मिलेगा लेकिन मुझे इसके बारे में कोई जानकारी नहीं मिली है। मुझे कुछ भी नहीं बताया गया है कि यह नहीं किया जा सकता है, या तो

स्रोत फाइलें मेरे एडमिन कंप्यूटर के 'एफ: \ TEMP' फ़ोल्डर में एक्जीक्यूटेबल और 'test1.txt' हैं I मैं फ़ाइलों को दूरस्थ मेजबान HOST1 के 'C: \ TEMP' फ़ोल्डर में रखना चाहता हूं। मेरे दोनों मेजबानों पर मेरे पास पूर्ण अधिकार हैं यहां तक ​​कि मेरे पास अभी तक एक फ़ाइल है (परीक्षण को सरल रखने के लिए):

strComputer = "HOST1" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colFiles = objWMIService.ExecQuery( _ "Select * from Win32_Directory where Name = 'c:\\temp'") For Each objFiles in colFiles errResults = objFolder.Copy("f:\temp\test1.txt") Wscript.Echo errResults Next 

Solutions Collecting From Web of "RPM और UNC उपलब्ध नहीं होने के बाद फ़ाइल को एक XP पीसी से दूसरी में WMI का उपयोग करने की कोशिश कर रहा है"

मैंने सीखा है कि WMI दूरस्थ होस्ट पर फाइल नहीं बना सकता, और यह एक नेटवर्क कनेक्शन पर फाइल कॉपी नहीं कर सकता है: http://msdn.microsoft.com/en-us/library/windows/desktop/aa389288%28v=vs.85% 29.aspx

हालांकि, यह एक सीएमडी प्रक्रिया चला सकता है फ्रैंक व्हाइट का कोड सी तेज में है, उसके उदाहरण के बाद: https://stackoverflow.com/a/8913231/1569434

 InputParameters("CommandLine") = "cmd /c echo myFTPCommands > c:\ftpscript.txt" 

आपको नीचे दिए गए सभी स्क्रिप्टलेटों का उपयोग करने के लिए चार चीजों की आवश्यकता होगी, जो एक दूसरे पर "सामान्य" वीबीएसपीएप या बैच स्क्रिप्ट को दूरस्थ होस्ट पर चलाने के लिए पीएक्सएसी का उपयोग करने के लिए निर्माण करते हैं:

  1. रिमोट होस्ट पर व्यवस्थापक अधिकार;
  2. दूरस्थ मेजबान पर WMI सक्षम है
  3. एक नेटवर्क साझा (आरपीसी, यूएनसी, एफ़टीपी, आदि का प्रयोग, लेकिन नहीं डीएफएस! ("वितरित फाइल सिस्टम" – ध्यान दें देखें) कि आपके रिमोट होस्ट का उपयोग हो सकता है; और
  4. psexec.exe और नेटवर्क शेयर पर आपकी "सामान्य" स्क्रिप्ट (ओं)।

महत्वपूर्ण नोट: नेटवर्क शेयर को मैप करने के लिए डीएफएस का उपयोग करें! यदि आप अपने नेटवर्क साझाकरण के लिए वितरित फ़ाइल सिस्टम का उपयोग करते हैं, तो यह विफल हो जाएगा । एक त्रुटि कोड है कि आप "सिस्टम त्रुटि 1312" की कोशिश के आधार पर कैसे प्राप्त कर सकते हैं, भले ही कोई ऑपरेटिंग सिस्टम (जैसे, XP, 7 विन)

जब RPC एक दूरस्थ होस्ट पर उपलब्ध नहीं है, लेकिन WMI है, तो निम्न विधि दूरस्थ होस्ट के c: \ temp फ़ोल्डर पर एक स्थानीय एएससीआईआई फ़ाइल बनाएगी, जिसमें "myTextCommands" पाठ शामिल है, उद्धरण चिह्नों के बिना।

 ' https://stackoverflow.com/questions/8884728/wmi-remote-process-to-copy-file strCommand = "cmd /c echo myTextCommands > c:\temp\testscript.txt" Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set objProcess = objWMIService.Get("Win32_Process") errReturn = objProcess.Create(strCommand, null, null, intProcessID) ' See following link for error codes returned by errReturn ' http://msdn.microsoft.com/en-us/library/windows/desktop/aa389388(v=vs.85).aspx 

उपरोक्त स्क्रिप्ट में महत्वपूर्ण सीमा पर ध्यान दें: यह केवल एएससीआईआई फाइल बना सकता है – बाइनरी नहीं।

ड्राइव तकनीक को मैप करने के लिए उस तकनीक का उपयोग करें:

 strCommand = "cmd /c net use z: " & MyShare & " /user:%USERDOMAIN%\%USERNAME% " _ & strPassword & ">" & strRemoteLog Set objProcess = objWMIService.Get("Win32_Process") Call errProcess 

जहां "strRemoteLog" को "c: \ temp \ MyLog.txt", "strPassword" की तरह कुछ सेट किया गया है (नीचे पूर्ण स्क्रिप्ट उदाहरण और संदर्भ देखें), और "त्रुटिप्रक्रिया" एक सब-रूटिन है जो निम्न प्रक्रिया का उपयोग करते हुए चलती है "सीएमडी / सी" ऊपर उल्लेखित चाल:

 Sub errProcess errReturn = objProcess.Create(strCommand, null, null, intProcessID) If errReturn = 0 Then Wscript.Echo "Process was started with a process ID: " & intProcessID WScript.Sleep 5000 Else Wscript.Echo "Process could not be started due to error: " & errReturn End If End Sub 

नेटवर्क ड्राइव मैप के साथ, अपनी स्क्रिप्ट को होस्ट पर कॉपी करें:

 strCommand="cmd /c xcopy Z:\scripts\SCRIPT1.bat c:\temp\ >>" & strRemoteLog Call errProcess 

SCRIPT1.bat तैयार है, इसलिए दूरस्थ होस्ट पर इसके विरुद्ध psexec को प्रारंभ करें, जो आपकी स्क्रिप्ट को एक चर strUserID पास करते हैं जो पहले प्राप्त की जाएगी और उदाहरण के लिए यहां है:

 strCommand="cmd /c Z:\psexec \\%COMPUTERNAME% /accepteula -s -n 120 " _ & cmd /cc:\temp\SCRIPT1.bat " & strUserID & ">>" & strRemoteLog Call errProcess 

एक बार psexec समाप्त हो जाने के बाद, आप परिणाम सहेज सकते हैं। इसलिए आप लॉग फ़ाइल का नाम बदल सकते हैं, उसे अपलोड कर सकते हैं, अपनी ड्राइव को अनमाप कर सकते हैं, और शेष फाइलों को साफ कर सकते हैं:

 strCommand="cmd /c REN " & strRemoteLog & " SCRIPT1-%COMPUTERNAME%.txt" Call errProcess strCommand="cmd /c MOVE /Y c:\temp\SCRIPT1*.txt Z:\scripts\LOGS\" Call errProcess strCommand="cmd /c net use * /del /Y" Call errProcess strCommand="cmd /c del c:\temp\SCRIPT1*.bat /q" Call errProcess 

हो गया। आपने सफलतापूर्वक एक ड्राइव को मैप किया है, दूरस्थ होस्ट के खिलाफ एक नियमित स्क्रिप्ट चलाने के लिए, और इसके आउटपुट को अपलोड किया है

ध्यान दें कि यह विधि विंडोज 7 और विंडोज 2008 पर यूएसी के साथ काम करती है।

यहां पूर्ण 'नमूना' एकीकृत स्क्रिप्ट है सुधार, सुधार, इत्यादि को सुझाव देने के लिए स्वतंत्र महसूस करें

 On Error Resume Next MyShare="\\SHARE1" strRemoteLog="c:\temp\MapZ.txt" ' Set remote hostname strComputer="HOST2" 'strComputer = InputBox("Enter Computer name", _ '"Find PC", strComputer) ' Set remote userid strUserID="USERID1" 'strComputer = InputBox("Enter userid", _ '"Find User", strComputer) ' Enumerate cimv2 on remote host strComputer Set objWMIService = GetObject("winmgmts:" & _ "{impersonationLevel=Impersonate}!//" & strComputer & "\root\cimv2") ' Verify remote host exists on domain If( IsEmpty( objWMIService ) = True ) Then WScript.Echo( "OBJECT_NOT_INITIALIZED :: " & strComputer ) WScript.Quit( OBJECT_NOT_INITIALIZED ) End If ' Prompt for masked password strPassword=GetPass ' Build and run command to execute on strComputer strCommand = "cmd /c net use z: " & MyShare & " /user:%USERDOMAIN%\%USERNAME% " & strPassword & ">" & strRemoteLog Set objProcess = objWMIService.Get("Win32_Process") Call errProcess ' Copy script(s) from MyShare to HOST2 since psexec cannot run scripts on shared drives strCommand="cmd /c xcopy Z:\scripts\cleanpclocal.bat c:\temp\ /V /C /I /Q /H /R /Y>>" & strRemoteLog Call errProcess ' Change directory to c:\temp 'strCommand="cmd /c cd c:\temp>" & strRemoteLog 'Call errProcess ' Start PSEXEC against script strCommand="cmd /c Z:\psexec \\%COMPUTERNAME% /accepteula -s -n 120 cmd /cc:\temp\cleanpclocal.bat " & strUserID & ">>" & strRemoteLog Call errProcess ' Rename logfile to include hostname, upload to share, unmap networked drive, and delete script strCommand="cmd /c REN " & strRemoteLog & " cleanpc-%COMPUTERNAME%.txt" Call errProcess strCommand="cmd /c MOVE /Y c:\temp\clean*.txt Z:\scripts\LOGS\" Call errProcess strCommand="cmd /c net use * /del /Y" Call errProcess strCommand="cmd /c del c:\temp\clean*.bat /q" Call errProcess WScript.Quit ' *********** ' APPENDIX ' Subroutines, functions ' *********** ' **SUBROUTINES** 'strCommand="cmd /c dir z:\scripts\>" & strRemoteLog ' Works to get dir of z:\scripts\ ' Function to handle errReturn Sub errProcess WScript.Echo "strCommand=" & strCommand errReturn = objProcess.Create(strCommand, null, null, intProcessID) If errReturn = 0 Then Wscript.Echo "Process was started with a process ID: " & intProcessID WScript.Sleep 5000 Else Wscript.Echo "Process could not be started due to error: " & errReturn End If WScript.Echo ' Error return codes for Create method of the Win32_Process Class ' http://msdn.microsoft.com/en-us/library/windows/desktop/aa389388(v=vs.85).aspx ' 0=Successful Completion ' 2=Access Denied ' 3=Insufficient Privilege ' 8=Unknown failure ' 9=Path Not Found ' 21=Invalid Parameter End Sub ' **FUNCTIONS** ' Subroutine to get masked password Function GetPass ' Mask Passwords Using Internet Explorer ' Ensure you follow the technet.com instructions and create file password.htm ' http://blogs.technet.com/b/heyscriptingguy/archive/2005/02/04/how-can-i-mask-passwords-using-an-inputbox.aspx Set objExplorer = WScript.CreateObject _ ("InternetExplorer.Application", "IE_") objExplorer.Navigate "file:///C:\SCRIPTS\password.htm" objExplorer.ToolBar = 0 objExplorer.StatusBar = 0 objExplorer.Width = 400 objExplorer.Height = 350 objExplorer.Left = 300 objExplorer.Top = 200 objExplorer.Visible = 1 Do While (objExplorer.Document.Body.All.OKClicked.Value = "") Wscript.Sleep 250 Loop strPassword = objExplorer.Document.Body.All.UserPassword.Value strButton = objExplorer.Document.Body.All.OKClicked.Value objExplorer.Quit Wscript.Sleep 250 If strButton = "Cancelled" Then Wscript.Quit 'Else ' Wscript.Echo strPassword End If ' Return the password GetPass = strPassword End Function 

सबसे पहले, मुझे लगता है कि आपके कोड में एक टाइपो है जहां आपने लिखा है:

 errResults = objFolder.Copy("f:\temp\test1.txt") 

मुझे लगता है कि आपका मतलब है:

 errResults = objFiles.Copy("f:\temp\test1.txt") 

दूसरे, मुझे नहीं पता कि आप क्या करने की कोशिश कर रहे हैं संभव है। मुझे लगता है कि आपको मिले कोड दूरस्थ कंप्यूटर पर एक निर्देशिका से फाइल को प्रतिलिपि कंप्यूटर पर दूसरी निर्देशिका में कॉपी कर सकता है।

हालांकि एक समाधान के लिए, यदि WMI सभी कंप्यूटरों पर दूरस्थ रूप से उपलब्ध है, इसका मतलब है कि कम से कम एक पोर्ट खुला है। अगर ऐसा है, तो क्या कोई अन्य बंदरगाह खुले हैं? यदि ऐसा है, तो शायद आप पोर्ट एक्स पर अपने व्यवस्थापक होस्ट पर एक FTP सर्वर स्थापित कर सकते हैं और उसके बाद अन्य होस्ट डिफ़ॉल्ट एक्सपीपी क्लाइंट को स्वचालित करके फ़ाइल भेज सकते हैं।

मुझे पता है कि यह सवाल पुराना है, लेकिन जब मैं एक समाधान खोजने की कोशिश कर रहा था, तो लोगों का जवाब मैंने लिखा था और यहां पोस्ट किया था:

.NET – किसी अन्य कंप्यूटर पर लैन में निष्पादन योग्य की प्रतिलिपि बनाने, और इसे निष्पादित करना

संक्षेप में, WMI का उपयोग करते हुए किसी भी फाइल के बेस 64 रूपांतरण (एक exe सहित) को गूंज करना संभव है और उसके बाद इसे प्रमाणपत्र के साथ डीकोड करना संभव है

क्या आपने निम्नलिखित की कोशिश की है?

 set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "f:\temp\test1.txt", "\\HOST1\C$\temp\test1.txt", true 

WMI जानकारी का एक डेटाबेस है आप फ़ाइलों को कॉपी करने के लिए इसका उपयोग नहीं कर सकते।