• PS1Exec应用程序的设计是小型工具,可以让你轻松地执行PowerShell脚本,而不必担心获得援引正确的powershell.exe 命令行。

    Windows PowerShell的安装理念是"安全通过默认"。 一个所涉问题的这种理念是,在最初安装PowerShell,你只能利用它作为一个互动的命令解释的—它不会跑脚本,除非你改变的默认执行政策。 然而,我们大多数人最终改变的默认执行政策,以便我们可以运行,脚本后,脚本是一体的语言是最强大的功能。

    然而,即使在启用脚本执行,您仍然不能直接安排PowerShell脚本(用。ps1)在任务的调度程序。 这确实是更加安全,但我们都知道,可用性通常是成反比的安全。 当然,这是可以安排一个PowerShell脚本,如果你得到的powershell.exe 命令行只是正确的,但这可能是棘手的如果剧本的路径包含空间或如果剧本需要的命令行参数包含空间。

    此外,我发现我想要多一点点控制权的PowerShell控制台窗口。 例如,我想到可以指定的一个脚本应该运行隐藏或最小化,或者用一个不同窗口控制台的标题。 为了解决这些问题,我写了ps1exe32(32-bit)和ps1exe64(64位)。 (在本文件中,我提到这两个版本,ps1exe32和ps1exe64,如ps1exec.) ps1exe32是32位的Windows,并ps1exe64是为64位的窗口。

    ps1exec使它能够容易地执行PowerShell脚本(用。ps1)文件,这也给了管理员控制的PowerShell控制台窗口的初始窗口的国家和标题。 这里有一些原因ps1exec可能是一个有用的工具,在您的环境:

    -ps1exec发现powershell.exe 通过阅读登记册,所以你不需要担心的情况下PowerShell安装目录是缺少系统的道路。 (这应当是罕见的,但是我看到一个破碎的道路上设置更多的机器,我在乎,记得。)

    -ps1exec简化调度PowerShell脚本,因为你不需要担心做一个引的错误,当构造的powershell.exe 命令行。

    -ps1exec运行PowerShell脚本在一个单独窗口控制台,因此可以使用ps1exec开始一个长期运行的脚本中的一个单独窗口没有停止你的工作在一个现有的窗口。

    -ps1exec可以暂停脚本的控制台窗口运行脚本后,在种情况下你想要看剧本的输出。

    -ps1exec允许指定PowerShell控制台窗口的初始状态(例如,隐藏的,最小化,等等。) 以及窗口控制台的标题。

    ps1exec的命令行法如下:

    ps1exe32[p][q][w][d路径,][-s windowstate][-t的标题]scriptfile[参数[...]] 64位平台,使用ps1exe64而不是ps1exe32的。 (如果你的运行ps1exe32在64位机,它将执行的32位版本的语言,而不是64位的版本,这可能不是你的目的。)

    重要的! 所有的ps1exec的命令行参数(-p-q-w-d-s-t)必须出现在脚本文件上的姓名命令行。

    ps1exec的命令行参数如下:

    -p

    使控制台窗口的暂停输入键脚本后完成运行中。

    -q

    ps1exec静默方式运行。 没有-q,ps1exec会显示一个对话框如果遇到一个错误。

    -w

    等待powershell.exe 关闭。 没有-w,ps1exec将开始powershell.exe 运行的脚本,然后立即退出。 (I建议-如果你使用ps1exec计划PowerShell脚本,这样的任务调度程序将知道脚本时结束运行。)

    -d路径

    指定一个起始目录powershell.exe中。 如果路径包含空间,将它用双quotes("). 你也可以使用单一的报价周围的道路(')如果运行ps1exec从PowerShell提示。

    -s windowstate

    windowstate是一个数字,指定默认的初始窗口国家的PowerShell控制台窗口。 默认窗口的国家是1。

    -t的标题

    指定一个标题为PowerShell控制台窗口。 如果标题包含空间,将它用双quotes("). 你也可以使用单一的报价周围的标题(')如果运行ps1exec从PowerShell提示。

    scriptfile

    指定文件的PowerShell脚本(用。ps1)的文件你想要的运行。 如果剧本的道路和/或文件包含空间,将整个路径和文件,在双quotes("). 你也可以使用单一的报价周围的脚本文件的名称和路径(')如果运行ps1exec从PowerShell提示。

    参数

    如果剧本要求一个或更多的命令行参数,指定他们在剧本文件的名称。 如果一个脚本的论点包含空间,将它用双quotes("). 它目前不能够嵌入一个双人的报价符(")中的一个脚本参数。 你可以使用单一的报价('),而不是双引号,但你必须双嵌入单一的报价。

  • के PS1Exec आवेदन डिजाइन किया गया था होना करने के लिए एक छोटे से उपकरण है कि मदद से आप आसानी से निष्पादित एक PowerShell स्क्रिप्ट के लिए बिना चिंता के बारे में हो रही का हवाला देते हुए सही पर powershell.exe कमांड लाइन.

    Windows PowerShell की स्थापना का दर्शन है "सुरक्षित डिफ़ॉल्ट रूप से." एक निहितार्थ के इस दर्शन के बाद, आप शुरू में स्थापित PowerShell के साथ, आप कर सकते हैं केवल का उपयोग करें के रूप में यह एक इंटरैक्टिव कमांड दुभाषिया—यह नहीं होगा स्क्रिप्ट चलाएँ जब तक आप डिफ़ॉल्ट निष्पादन नीति है । हालांकि, हम में से सबसे अंत बदल डिफ़ॉल्ट निष्पादन नीति इतना है कि हम कर सकते हैं चलाने के लिए स्क्रिप्ट—सब के बाद, लिपियों में से एक हैं PowerShell के सबसे शक्तिशाली सुविधाओं की है ।

    हालांकि, के बाद भी आप सक्षम स्क्रिप्ट निष्पादन, आप अभी भी नहीं कर सकते हैं सीधे अनुसूची एक PowerShell स्क्रिप्ट (.ps1) में कार्य शेड्यूलर. यह वास्तव में अधिक सुरक्षित है, लेकिन के रूप में हम सभी जानते हैं, प्रयोज्य है आम तौर पर आनुपातिक करने के लिए सुरक्षा. बेशक, यह संभव है करने के लिए शेड्यूल एक PowerShell स्क्रिप्ट हो, तो आप powershell.exe कमांड लाइन बस ठीक है, लेकिन यह मुश्किल हो सकता है अगर स्क्रिप्ट के पथ रिक्त स्थान या अगर स्क्रिप्ट की आवश्यकता है कमांड लाइन तर्क होते हैं कि रिक्त स्थान है.

    इसके अलावा, मुझे पता चला है मैं चाहता था एक छोटा सा पर अधिक नियंत्रण PowerShell कंसोल विंडो. उदाहरण के लिए, मैं चाहता था होना करने के लिए निर्दिष्ट करने के लिए सक्षम है कि एक स्क्रिप्ट चलाने चाहिए या कम से कम, के साथ या एक अलग कंसोल विंडो शीर्षक । इन समस्याओं को हल करने, मैं ने लिखा ps1exe32 (32-बिट) और ps1exe64 (64-बिट) । (इस दस्तावेज़ में, मैं उल्लेख करने के लिए दोनों संस्करणों, ps1exe32 और ps1exe64, के रूप में ps1exec.) ps1exe32 है के लिए 32-बिट Windows, और ps1exe64 है के लिए 64-बिट Windows.

    ps1exec बनाता है यह संभव करने के लिए आसानी से निष्पादित एक PowerShell स्क्रिप्ट (.ps1) फ़ाइल, और इसे भी देता है व्यवस्थापक पर कुछ नियंत्रण PowerShell कंसोल विंडो के प्रारंभिक विंडो राज्य और शीर्षक. यहाँ हैं कुछ कारणों से ps1exec एक उपयोगी उपकरण हो सकता अपने वातावरण में:

    - ps1exec पाता है powershell.exe पढ़ने के द्वारा रजिस्ट्री नहीं है, तो आप की जरूरत है के बारे में चिंता करने के मामले में जहां PowerShell स्थापना निर्देशिका से लापता है सिस्टम पथ में है । (इस दुर्लभ होना चाहिए, लेकिन मैंने देखा है एक टूटी पथ सेटिंग पर अधिक मशीनों है कि मैं याद करने की देखभाल।)

    - ps1exec समय निर्धारण सरल PowerShell स्क्रिप्ट है क्योंकि आप चिंता करने की ज़रूरत नहीं बनाने के बारे में एक गलती का हवाला देते हुए जब निर्माण powershell.exe कमांड लाइन.

    - ps1exec चलाता है एक PowerShell स्क्रिप्ट में एक अलग कंसोल विंडो, तो आप उपयोग कर सकते हैं ps1exec शुरू करने के लिए एक लंबी चलने वाली स्क्रिप्ट एक अलग विंडो में रोक के बिना अपने काम में एक मौजूदा खिड़की.

    - ps1exec रोक सकते हैं एक स्क्रिप्ट कंसोल विंडो स्क्रिप्ट चलाने के बाद, मामले में आप चाहते हैं को देखने के लिए स्क्रिप्ट का उत्पादन.

    - ps1exec निर्दिष्ट करने की अनुमति देता PowerShell कंसोल विंडो की प्रारंभिक अवस्था (जैसे, छिपा, कम से कम, आदि.) के रूप में अच्छी तरह के रूप में कंसोल विंडो के शीर्षक.

    ps1exec के निर्देश-पंक्ति सिंटैक्स निम्नानुसार है:

    ps1exe32 [पी] [क्यू] [डब्ल्यू] [-d पथ] [-s windowstate] [-टी शीर्षक] स्क्रिप्ट फ़ाइल [तर्क [...]] पर 64-बिट प्लेटफॉर्म के साथ, उपयोग ps1exe64 के बजाय ps1exe32. (यदि आप चलाने के लिए ps1exe32 पर एक 64-बिट मशीन, यह जाएगा निष्पादित 32-बिट संस्करण के PowerShell के बजाय 64-बिट संस्करण है, शायद नहीं है, जो आप का इरादा क्या है।)

    महत्वपूर्ण! सभी के ps1exec के कमांड लाइन तर्क (पी, क्यू, डब्ल्यू, डी, एस, और टी) प्रदर्शित करना चाहिए से पहले स्क्रिप्ट फ़ाइल के नाम के साथ कमांड लाइन पर.

    ps1exec के कमांड लाइन तर्क के रूप में निम्नानुसार हैं:

    -p

    का कारण बनता है कॉनसोल विंडो के लिए थामने के लिए दर्ज करें बटन दबाने के बाद स्क्रिप्ट खत्म चल रहा है ।

    -क्यू

    ps1exec चुपचाप चलाता है. बिना क्यू, ps1exec एक संवाद बॉक्स प्रदर्शित करेगा, तो यह कोई त्रुटि है ।

    -डब्ल्यू

    के लिए प्रतीक्षा करें powershell.exe बंद करने के लिए । बिना -डब्ल्यू, ps1exec शुरू होगा powershell.exe स्क्रिप्ट चलाने के लिए और फिर तुरंत बाहर निकलें. (मैं सलाह देते हैं -डब्ल्यू का उपयोग करें यदि आप ps1exec अनुसूची करने के लिए एक PowerShell स्क्रिप्ट तो यह है कि कार्य शेड्यूलर पता चल जाएगा जब स्क्रिप्ट खत्म चल रहा है।)

    -d पथ

    निर्दिष्ट शुरू करने के लिए निर्देशिका powershell.exe है । यदि पथ में रिक्तियाँ हैं, बंद में दोहरे उद्धरण चिह्नों ("). आप भी उपयोग कर सकते हैं एकल उद्धरण में चारों ओर पथ (') यदि आप चल रहे हैं ps1exec से एक PowerShell प्रॉम्प्ट.

    -एस windowstate

    windowstate एक संख्या है कि निर्दिष्ट करता है, डिफ़ॉल्ट प्रारंभिक विंडो के लिए राज्य PowerShell कंसोल विंडो. डिफ़ॉल्ट विंडो राज्य है 1.

    -टी शीर्षक

    एक शीर्षक निर्दिष्ट करें के लिए PowerShell कंसोल विंडो. अगर शीर्षक में शामिल हैं रिक्त स्थान है, तो इसे बंद में दोहरे उद्धरण चिह्नों ("). आप भी उपयोग कर सकते हैं एक उद्धरण के आसपास के शीर्षक (') यदि आप चल रहे हैं ps1exec से एक PowerShell प्रॉम्प्ट.

    स्क्रिप्ट फ़ाइल

    निर्दिष्ट फ़ाइल नाम के PowerShell स्क्रिप्ट (.ps1) आप चाहते हैं फ़ाइल को चलाने के लिए. अगर स्क्रिप्ट पथ और/या फ़ाइल नाम में रिक्तियाँ हैं, बंद के पूरे पथ और फ़ाइल नाम में दोहरे उद्धरण चिह्नों ("). आप भी उपयोग कर सकते हैं एकल उद्धरण में चारों ओर स्क्रिप्ट फ़ाइल का नाम और पथ (') यदि आप चल रहे हैं ps1exec से एक PowerShell प्रॉम्प्ट.

    तर्क

    अगर स्क्रिप्ट की आवश्यकता है एक या एक से अधिक आदेश-पंक्ति तर्क, में निर्दिष्ट के बाद उन्हें स्क्रिप्ट फ़ाइल का नाम है । अगर एक स्क्रिप्ट के तर्क शामिल हैं रिक्त स्थान है, तो इसे बंद में दोहरे उद्धरण चिह्नों ("). यह वर्तमान में संभव नहीं है एम्बेड करने के लिए एक डबल-उद्धरण वर्ण (") में एक स्क्रिप्ट तर्क है । आप उपयोग कर सकते हैं एकल उद्धरण चिह्न (') के बजाय डबल उद्धरण है, लेकिन तुम चाहिए डबल एम्बेडेड एकल उद्धरण.

  • The PS1Exec application was designed to be a small tool that lets you easily execute a PowerShell script without having to worry about getting the quoting correct on the powershell.exe command line.

    Windows PowerShell's installation philosophy is "secure by default." One of the implications of this philosophy is that after you initially install PowerShell, you can only use it as an interactive command interpreter—it won't run scripts unless you change the default execution policy. However, most of us end up changing the default execution policy so that we can run scripts—after all, scripts are one of PowerShell's most powerful features.

    However, even after you enable script execution, you still can't directly schedule a PowerShell script (.ps1) in the task scheduler. This is indeed more secure, but as we all know, usability is typically inversely proportional to security. Of course, it is possible to schedule a PowerShell script if you get the powershell.exe command line just right, but this can be tricky if the script's path contains spaces or if the script requires command-line arguments that contain spaces.

    Also, I discovered I wanted a little bit more control over the PowerShell console window. For example, I wanted to be able to specify that a script should run hidden or minimized, or with a different console window title. To solve these problems, I wrote ps1exe32 (32-bit) and ps1exe64 (64-bit). (In this documentation, I refer to both versions, ps1exe32 and ps1exe64, as ps1exec.) ps1exe32 is for 32-bit Windows, and ps1exe64 is for 64-bit Windows.

    ps1exec makes it possible to easily execute a PowerShell script (.ps1) file, and it also gives the administrator some control over the PowerShell console window's initial window state and title. Here are some reasons ps1exec might be a useful tool in your environment:

    - ps1exec finds powershell.exe by reading the registry, so you don't need to worry about the case where the PowerShell installation directory is missing from the system path. (This should be rare, but I have seen a broken path setting on more machines that I care to remember.)

    - ps1exec simplifies scheduling PowerShell scripts because you don't have to worry about making a quoting mistake when constructing the powershell.exe command line.

    - ps1exec runs a PowerShell script in a separate console window, so you can use ps1exec to start a long-running script in a separate window without stopping your work in an existing window.

    - ps1exec can pause a script's console window after running the script, in case you want to view the script's output.

    - ps1exec allows you to specify the PowerShell console window's initial state (e.g., hidden, minimized, etc.) as well as the console window's title.

    ps1exec's command-line syntax is as follows:

    ps1exe32 [-p] [-q] [-w] [-d path] [-s windowstate] [-t title] scriptfile [argument [...]] On 64-bit platforms, use ps1exe64 instead of ps1exe32. (If you run ps1exe32 on a 64-bit machine, it will execute the 32-bit version of PowerShell instead of the 64-bit version, which is probably not what you intended.)

    Important! All of ps1exec's command-line arguments (-p, -q, -w, -d, -s, and -t) must appear before the script file's name on the command line.

    ps1exec's command-line arguments are as follows:

    -p

    Causes the console window to pause for an Enter keystroke after the script finishes running.

    -q

    ps1exec runs silently. Without -q, ps1exec will display a dialog box if it encounters an error.

    -w

    Wait for powershell.exe to close. Without -w, ps1exec will start powershell.exe to run the script and then exit immediately. (I recommend -w if you use ps1exec to schedule a PowerShell script so that the task scheduler will know when the script finishes running.)

    -d path

    Specify a starting directory for powershell.exe. If the path contains spaces, enclose it in double quotes ("). You can also use single quotes around the path (') if you are running ps1exec from a PowerShell prompt.

    -s windowstate

    windowstate is a number that specifies the default initial window state for the PowerShell console window. The default window state is 1.

    -t title

    Specify a title for the PowerShell console window. If the title contains spaces, enclose it in double quotes ("). You can also use single quotes around the title (') if you are running ps1exec from a PowerShell prompt.

    scriptfile

    Specify the filename of the PowerShell script (.ps1) file you want to run. If the script's path and/or filename contains spaces, enclose the entire path and filename in double quotes ("). You can also use single quotes around the script file's name and path (') if you are running ps1exec from a PowerShell prompt.

    argument

    If the script requires one or more command-line arguments, specify them after the script file's name. If a script's argument contains spaces, enclose it in double quotes ("). It is not currently possible to embed a double quote character (") in a script argument. You can use single quotes (') instead of double quotes, but you must double embedded single quotes.