Articles of PowerShell的

如何成功更改执行策略并启用PowerShell脚本的执行

我在更改Windows Server 2008+操作系统中的执行策略时遇到问题。 这是我第一次尝试运行我需要资源完全访问权限的脚本,并且在高级模式下启动Powershell后,我尝试以下方法: Set-ExecutionPolicy Unrestricted 但是我得到这个: Set-ExecutionPolicy:Windows PowerShell更新了您的执行策略 成功,但是这个设置被一个更多的策略所覆盖 具体范围。 由于重写,你的shell将保持其当前 RemoteSigned的有效执行策略。 input“Get-ExecutionPolicy -List” 查看您的执行策略设置。 欲了解更多信息,请参阅 “Get-Help Set-ExecutionPolicy”。 在行:1 char:1 + Set-ExecutionPolicy不受限制 + ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ + CategoryInfo:PermissionDenied:(:) [Set-ExecutionPolicy],SecurityException + FullyQualifiedErrorId:ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand 虽然我是pipe理员,但我无法更改执行策略。 该怎么办?

我怎样才能从一个.bat文件variables的PowerShell脚本?

我用PowerShellreplace.bat脚本的部分。 batch file的configuration是通过set适当的环境variables的文件完成的。 我正在寻找一种方法来将这些variables值加载到.ps1脚本中,而无需修改.bat文件(因为它们也在其他地方使用。 一个例子.bat如下所示: set VAR_ONE=some_value set VAR_TWO=/other-value 在批处理脚本中,我只是CALLconfiguration文件,variables将可用。 我已经尝试了源代码( . filename.bat )和调用( & filename.bat )来自PowerShell的configuration文件,这些都没有使variables可见。 尝试使用$VAR_ONE和$env:VAR_ONE语法访问它们。 加载这样的configuration文件,而不修改磁盘上的格式是一个好的方法?

如何避免Powershell中的反斜杠

我正在写一个PowerShell程序来replace使用的string -replace "$in", "$out" 它不适用于包含反斜杠的string,我该如何逃避它?

如何执行控制台EXEs而不产生新的控制台窗口?

我有一个通常从Windows PowerShell调用的Python脚本,带有一些命令行参数。 我想以.exe格式分发这个脚本,并且我想保留基于控制台的相同“用户界面”的用法。 用户打开Windows Powershell。 用户从shell调用myscript.exe程序: myscript.exe argument1 argument2 argument3 该程序在相同的控制台中执行,并将其输出写入同一控制台 。 其实我有一个myscript.exe程序,这当然从PowerShell获得参数,但不幸的是,执行程序在另一个在调用产生的控制台。 我怎样才能避免这种行为,并保持在同一个控制台的一切? 编辑:我已经按照http://www.py2exe.org/index.cgi/Tutorial上的教程。 对于我使用的setup.py构build文件: console关键字(提供myscript.py作为列表​​中的唯一元素) zipfile关键字(设置为True) options关键字optimize: 2 , bundle_files: 1 , compressed: True 。 编译工作正常,程序做它应该做的事情。 唯一不希望的是打开一个专用的控制台,而不是在同一个控制台上执行。 编辑2:这正是我的setup.py代码。 from distutils.core import setup import py2exe, sys, os sys.argv.append('py2exe') setup( options = {'py2exe': {'bundle_files': 1, 'compressed': True, 'optimize': 2}}, console = [{'script': "myscript.py"}], zipfile = […]

使用Windows命令行或Python查找具有模式的文本行

我需要运行一个命令行工具来validation一个文件并显示一堆关于它的信息。 我可以将这些信息导出到一个txt文件,但是它包含了很多额外的数据。 我只需要一行文件: “签名是时间戳:2012年5月24日星期四17:13:16” 时间可能会有所不同,但我只需要提取这些数据并将其放入一个文件。 有没有从命令行或Python可以做到这一点的好方法? 我打算使用Python来定位和下载要validation的文件,然后运行命令行工具进行validation,以便可以获取数据,然后通过电子邮件发送数据。 这是在Windows PC上。 谢谢你的帮助

$ LastExitCode = 0,但在PowerShell中$?= False。 将stderrredirect到stdout会导致NativeCommandError

为什么Powershell会在下面的第二个例子中显示出令人惊讶的行为? 首先,一个理智行为的例子: PS C:\> & cmd /c "echo Hello from standard error 1>&2"; echo "`$LastExitCode=$LastExitCode and `$?=$?" Hello from standard error $LastExitCode=0 and $?=True 没有惊喜。 我打印一条消息给标准错误(使用cmd的echo )。 我检查variables$? 和$LastExitCode 。 如预期的那样,它们分别等于“真”和“0”。 但是,如果我要求PowerShell通过第一个命令将标准错误redirect到标准输出,我得到一个NativeCommandError: PS C:\> & cmd /c "echo Hello from standard error 1>&2" 2>&1; echo "`$LastExitCode=$LastExitCode and `$?=$?" cmd.exe : Hello from standard error At […]

使用PowerShell重命名文件

我需要在Windows PowerShell中一次重命名一堆文件。 我在这里阅读HTG的文章,这有一点帮助。 我的问题是,它只会重命名目录顶部的文件,没有更深的。 例如:有FOLDER A,FOLDERA内部是文件和FOLDER B,FOLDER B内部是另一个文件。 两个文件夹和两个文件都需要重新命名。 现在它的工作方式是,文件夹A,文件夹A中的文件和文件夹B正在重命名,但不是文件夹B中的文件。 我目前的代码是: Dir | Rename-Item –NewName { $_.name –replace “ “,”_” } 谢谢您的帮助!

如何将unicode文件名批量转换为Ascii文件名Windows XP或PowerShell

问题:出于某种奇怪的原因, windows zip util不会压缩包含Unicode文件名的文件夹 。 所以,我需要将一大组文件名(不是内容)转换为ASCII文件名。 这里的答案讨论内容转换 如何批量/批量转换/重命名Windows CMD行或Power Shell中的文件名本身。 我不在乎输出文件的名字有多余1等 //While this changes the content inside the file. it does not rename my file name! COPY /Y UniHeader.txt Unicode_Output.txt CMD /U /C Type ANSI_Input.txt >> Unicode_Output.txt

从Powershell运行R脚本

在批处理脚本中,我可以使用以下语法运行R脚本: Rterm.exe –quiet –slave –vanilla < "C:\some_script.R" 但是,Powershell似乎已经为未来的扩展保留了“<”。 我想知道是否有一个直接的方法来运行另一个Powershell脚本中的R脚本。

Powershell – 本地凭证validation

我利用Powershell来检查本地pipe理员凭据作为这个片段的基础,并遇到问题。 (不想要threadjack) Add-Type -AssemblyName System.DirectoryServices.AccountManagement $pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext('machine',$entry) if($pc.ValidateCredentials("secretadmin", "secretpassword")){Write-host "good"}else{write-host "bad"} 它大约有百分之五十的时间。 剩下的时间,我得到这个 使用“2”参数调用“ValidateCredentials”exception:“不允许同一用户使用多个用户名与服务器或共享资源build立多个连接,断开以前与服务器或共享资源的所有连接,再试一次。 这让我想起使用net use的批处理脚本来validation我们只需要删除映射的驱动器来解决问题的凭据。 由于没有保存的对象,即时通讯知道,即时通讯不确定如何清除此login。 我检查login用户,什么都没看见 基本上,我们正在为医院build立数百台服务器,需要确保遵守政策,检查这些凭证只是其中的一部分,但这是我遇到的问题。 任何帮助将不胜感激。 在提出这些问题之前请注意一下。 凭据是正确的,他们在脚本中被硬编码,我可以收到失败,并立即通过RDP和psexeclogin相同的凭据引发错误。 防火墙允许任何从我的主机到目的地。