मैं निम्नलिखित कोड का उपयोग कर सी # से एक स्क्रिप्ट localwindows.ps1 चलाने का भी प्रयास से एक powershell स्क्रिप्ट फ़ाइल (example.ps1) कॉल करने के लिए \ localwindows .ps1 'को cmdlet, फ़ंक्शन, स्क्रिप्ट फ़ाइल या ऑपरेट करने योग्य प्रोग्राम के नाम के रूप में पहचाना नहीं गया है।सी #
PSCredential credential = new PSCredential(userName, securePassword);
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(false, "machineName", 5985, "/wsman", shellUri, credential);
using (Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo))
{
runspace.Open();
using (PowerShell powershell = PowerShell.Create())
{
powershell.Runspace = runspace;
PSCommand new1 = new PSCommand();
String machinename = "machinename";
String file = "C:\\localwindows.ps1";
new1.AddCommand("Invoke-Command");
new1.AddParameter("computername", machinename);
new1.AddParameter("filepath", file);
powershell.Commands = new1;
Console.WriteLine(powershell.Commands.ToString());
Collection<PSObject> results = powershell.Invoke();
}
मैं त्रुटि हो रही है:
तो मैं निम्नलिखित की कोशिश की "पथ नहीं ढूंढा जा सकता 'C: \ localwindows.ps1'। क्योंकि यह मौजूद नहीं है"
लेकिन स्थानीय मशीन में पावरहेल से कमांड 'Invoke-Command -ComputerName "मशीन नाम" -फाइलपाथ सी: \ localwindows.ps1' का उपयोग करके, दूरस्थ मशीन में एक नया खाता बनाया गया।
सी # से स्थानीयwindows.ps1 स्क्रिप्ट को कैसे कॉल करें? सी # के माध्यम से 'Invoke-Command -ComputerName' मशीन नाम "-फाइलपाथ सी: \ localwindows.ps1 'आदेश को निष्पादित करने के लिए कैसे करें?
स्क्रिप्ट localwindows.ps1
$comp = [adsi]“WinNT://machinename,computer”
$user = $comp.Create(“User”, "account3")
$user.SetPassword(“change,password.10")
$user.SetInfo()
मैंने केस पाइपलाइन की कोशिश की। टिप्पणियाँ। एडस्क्रिप्ट (System.IO.File.ReadAllText (फ़ाइल)); मुझे त्रुटि मिल रही है: 'अप्रत्याशित टोकन' विन: // machineName 'अभिव्यक्ति या कथन में।' जबकि वही स्क्रिप्ट invoke-command के साथ स्थानीय उपयोगकर्ता खाता बनाता है। मैंने समाधान की कोशिश की - पाइपलाइन। कॉमांड। एडस्क्रिप्ट (System.IO.File.ReadAllText ("।" फ़ाइल)); प्रोग्राम फ़ाइल का पता लगाने में सक्षम नहीं था। –
मैंने कोशिश की - new1.AddParameter ("Scriptblock", "{।" + File + "}"); मुझे त्रुटि मिल रही है - 'स्क्रिप्टब्लॉक' पैरामीटर बाध्य नहीं कर सकता। "System.Management.Automation.ScriptBlock" टाइप करने के लिए "{C: \ localwindows.ps1}" प्रकार "System.String" प्रकार का मान परिवर्तित नहीं कर सकता। ' –
अद्यतन उत्तर देखें।मेरा मानना है कि आपकी समस्या का क्रूक्स यह है कि स्क्रिप्ट आपके स्थानीय कंप्यूटर पर 'c: \ localwindows.ps1' पर नहीं है। –