Articles of PowerShell的

有没有办法使PowerShell等待安装完成?

我有一个Windows软件包列表,我使用下面的命令通过PowerShell进行安装: & mypatch.exe /passive /norestart mypatch.exe正在从一个列表中传递,它不会等待之前的安装完成 – 它只是继续前进。 它构build了一个正在等待安装的巨大安装窗口。 另外,我不能使用$LASTEXITCODE来确定安装是成功还是失败。 在开始下一步之前,有没有办法让安装等待呢?

Powershell – 查询远程registry键值并生成文本文件IF值等于1

第一次发布。 彻底享受网站和所有停止帮助的人才。 我已经把PowerShell的一些function放在一起,远程查询存储在.csv文件中的计算机列表,查找registry值。 如果registry项的值等于'1',那么脚本应该使用机器的名称作为文本文件的名称创build一个文本文件。 一切都很好。 脚本运行愉快没有任何错误。 问题是,当我返回并远程检查目标registry值时,我发现该值不是1.该脚本只是为.csv中的每一行创build一个文件。 我究竟做错了什么? 编辑***我发现了一个问题,我在registrypath的$ keyvariables中input错误。 7/17/2013 2:21p $File = Import-Csv 'c:\temp\machines.csv' foreach ($line in $file) { $machinename = $line.machinename trap [Exception] {continue} $reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine",$MachineName) $key = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon" $regkey = "" $regkey = $reg.opensubkey($key) $keyValue = "" $keyValue = $regKey.GetValue('AutoAdminLogon') if ($keyValue = "1") { try { $textFile = […]

缺less参数-m在Windows PowerShell中使用svn

我试图在Windows PowerShell中运行这个: svn ci -m "" directory_name 但是它返回: svn:E205005:日志消息是一个path名(是-F意向?); 使用'–force-log'来覆盖 我试图cd目录并提交没有directory_name参数,它回退: svn ci -m "" svn.exe:缺less参数:m 我认为,PowerShell可能不理解,但很less(对我来说)这个作品: svn -h 难道我做错了什么? 所有这些在CMD完美的作品:/

Powershell“启动过程”不按计划任务运行

有两个PowerShell脚本,我编辑从XP运行在Win Server 2K8 R2。 它们在通过手动方式在PowerShell中执行时运行良好,但如果按照域pipe理员的计划和运行,它们将执行所有文件操作; 除非他们不做一个启动进程,将文件发送到它需要去的SFTP站点。 它们是通过运行带有参数的powershell.exe启动的: -noprofile -ExecutionPolicy Bypass -file C:\Users\administrator\Documents\script1.ps1 同样,就像我之前提到的那样,它们运行良好,并按照要求start-process ,如果您手动运行它们,并且只在计划时运行文件操作并跳过启动进程。 start-process如下: start-process -FilePath "c:\Program Files (x86)\Tumbleweed\STClient\stclient.exe" -ArgumentList "httpsu://www.securesiteexample.org/incoming/ $filename /prefNoAskSched /hidden /log /Remote-Site return /quitWhenDone" 我错过了什么?

Findstr总是无法在文本文件中find哈希string

我想要replace某个.jar文件,如果该文件的MD5哈希值更改。 我已经编写了一个小的PowerShell脚本来完成文件的散列操作,并且.ps1脚本通过batch file运行。 PowerShell打印哈希到1.txt我希望批处理脚本检查文本文件的正确散列,如果哈希是不同的,它会覆盖旧版本的文件。 文件的replace还没有实现,但一旦findstr问题解决了。 @echo off setlocal EnableDelayedExpansion :a powershell.exe -ExecutionPolicy ByPass -file powershellmd5.ps1 findstr /c:"ff b1 b9 2d b1 03 db 59 3f 9e ca 51 f0 14 67 62 ca a8 d7 7d" "1.txt" echo !errorlevel! timeout /t 10 /NOBREAK goto a 哈希完成时,以下是1.txt的内容: 文件license.jar的SHA1哈希值: ff b1 b9 2d b1 03 db 59 […]

通过Powershell或Batch将文件从Windows转换到UNIX

我有一个批处理脚本,提示用户input一些input,然后输出我在AIX环境中使用的几个文件。 这些文件需要在UNIX格式(我相信是UTF8),但我正在寻找一个方向,以最简单的方式做到这一点。 我不喜欢下载额外的软件包; Cygwin或GnuWin32。 我不介意编码,如果可能的话,我的编码选项是批处理,Powershell和VBS。 有谁知道一个办法做到这一点? 或者,我可以使用批处理创build文件并调用Powershell脚本来重新创build这些文件? 这里的想法是一个用户会被提示input一些信息,然后输出一个标准文件,这些文件在AIX中基本上是一个工作的快速答案。 我最初使用批处理,因为我不知道我会遇到这个问题,但我有点倾向于在Powershell中重做这个。 因为我在另一个可以进行转换的论坛上find了一些代码(下面)。 % foreach($i in ls -name DIR/*.txt) { \ get-content DIR/$i | \ out-file -encoding utf8 -filepath DIR2/$i \ } 寻找一些方向或在这方面的一些input。

使用当前Powershell凭据进行远程调用

我有一个Powershell脚本,用于远程调用其他服务器上的其他Powershell脚本。 该脚本用于closures并启动不同服务器上的服务。 Powershell脚本的设置方式是,我所要做的就是通过调用serverStartStop [START|STOP]调用它,并自动并有条不紊地将其serverStartStop [START|STOP]到服务器列表,并closures每个服务器上的服务列表。 我最近升级了系统,需要启动一些服务后运行批处理脚本。 我可以远程调用批处理脚本,但批处理脚本会调用另一个尝试访问networking上共享的命令。 该命令失败,因为用于调用该命令的用户没有足够的权限访问该共享。 我已经尝试了几件事情来解决这种情况,并对Powershell中的Invoke-Command行和Windows Batch的runas命令进行了一些研究。 runas命令要求input用户密码,这是不可接受的,因为这是一个自动脚本。 有没有人有任何想法,我可以做这个工作干净,没有用户的互动,而不是做初步的START或STOP呼叫?

从PowerShell启动WinRT应用程序

我有一个Windows RT应用程序,我需要启动一个脚本。 我已经使用PowerShell在设备上安装了应用程序,但是我需要使用PowerShell或命令提示符启动应用程序。 有没有办法做到这一点? 谢谢。 PS看起来有一种方法可以使用Start-MetroApp命令在Windows 8上启动Metro应用程序,但这在Windows RT上不起作用。 是否有某种类似的Windows RT?

将Word文档/ docx文件转换为PDF时,文件系统监视器停止工作

我有一个Powershell脚本,用于自动将.doc / .docx文件转换为* .pdf。 该脚本运行良好的第一个文件。 但是如果我把另一个文件放在监视文件夹中,监视器不会触发一个事件。 这是完整的脚本。 如果我注释掉所有$ docvariables,脚本就会多次运行而不会有任何问题。 我忽略了/忽略了什么? $watcher = New-Object System.IO.FileSystemWatcher $watcher.Path = "$Env:DropboxRoot" $watcher.Filter = "*.doc*" $watcher.IncludeSubdirectories = $true $watcher.EnableRaisingEvents = $true Add-type -AssemblyName Microsoft.Office.Interop.Word $action = { $name = (get-item $Event.SourceEventArgs.FullPath).BaseName ### DON'T PROCESS WORD BACKUP FILES (START WITH A TILDE ~) if(!($name.startsWith("~"))){ write-host Triggered event from $Event.SourceEventArgs.FullPath $inputFilePath = […]

执行远程Powershell会话中的交互式命令不起作用

我有麻烦在需要用户交互的远程PowerShell会话中执行命令。 例如:我input一个远程会话 Enter-PSSession -ComputerName mobius 在这个会话中,我执行一个要求input密码的命令: [mobius]: PS C:\Windows\system32> & 'c:\Program Files (x86)\Putty\plink.exe' merlin -l joe joe@merlin's password: c:\Program Files (x86)\Putty\plink.exe : Using username "plakat". + CategoryInfo : NotSpecified: (Using username "plakat".:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError 最后两行显示为红色。 似乎有两个问题。 问题1: plink.exe将文本“使用用户名”plakat“'写入stderr。 这可能会导致错误消息。 我可以压制这个吗? (pipe道标准输出或其他东西。) 问题2:进程退出时,我应该input密码。 我也可以用其他命令来重现 [mobius]: PS C:\Windows\system32> cmd /c date 它不让我inputdate。 如果我在本地PowerShell中运行它们,这两个命令都可以工作。 […]