Articles of PowerShell的

Powershell,如何获取最新的Windows更新date安装或至less检查更新?

我试图find一种方法来检索最后的Windows更新被安装,或检查的date/时间。 到目前为止,我已经find了一个允许列出最近的Windows更新的函数,但是对于这样一个简单的函数来说,数据太多了,而且太臃肿了。 其次,我试图访问registry,虽然我没有运气在回顾我所追求的价值。 我正在Windows 10计算机上进行testing,但该软件可能驻留在Windows Server 2012 R2上。 这里是我尝试过的一些代码的例子: $key = “SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install” $keytype = [Microsoft.Win32.RegistryHive]::LocalMachine $RemoteBase = [Microsoft.Win32.RegistryKey]::OpenBaseKey($keytype,"My Machine") $regKey = $RemoteBase.OpenSubKey($key) $KeyValue = $regkey.GetValue(”LastSuccessTime”) $System = (Get-Date -Format "yyyy-MM-dd hh:mm:ss") 另外,只要尝试Get-ChildItem $hello = Get-ChildItem -Path “hkcu:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\” foreach ($a in $hello) { $a } 我检查了registry,这个键不存在。 去“Windows更新”path只显示应用程序更新,而不是Windows更新。 编辑我似乎更接近我的目标:Get-HotFix | 其中{$ _。InstallDate -gt 30} 但是,我怎样才能回收在过去30天安装的那些? 这并不显示很多结果,即使使用Select […]

VMWare VMDK映射到Windows驱动器号

这个代码几乎可以工作,它将VWare VMDK映射到Windows驱动器。 代码不是我的。 在其他信息将返回“ DD-SERV-01_15.vmdk VM MAIN是驱动器号G: ” 脚本将提示input凭据,然后进行映射,但出现错误,只有最后一个虚拟机/驱动器被保存为输出 – 我希望有人可以看一下,更新/修复代码,以便它保存所有的输出吗? 谢谢。 #Get VMware Disk Usage # Created by Hugo Peeters # http://www.peetersonline.nl # VARIABLES $Decimals = 1 $VCServer = "SERVERNAME" # SCRIPT # Connect to VC Write-Progress "Gathering Information" "Connecting to Virtual Center" -Id 0 $VC = Connect-VIServer $VCServer # Create Output Collection $myCol […]

将可能包含非ASCII字符的poweshell输出解码为一个pythonstring

我需要解码从python调用powershell标准输出到一个pythonstring。 我的最终目标是获取一个string列表的forms在Windows中的networking适配器的名称。 我目前的function看起来像这样,并在Windows 10英语语言运行良好: def get_interfaces(): ps = subprocess.Popen(['powershell', 'Get-NetAdapter', '|', 'select Name', '|', 'fl'], stdout = subprocess.PIPE) stdout, stdin = ps.communicate(timeout = 10) interfaces = [] for i in stdout.split(b'\r\n'): if not i.strip(): continue if i.find(b':')<0: continue name, value = [ j.strip() for j in i.split(b':') ] if name == b'Name': interfaces.append(value.decode('ascii')) # This […]

如何在特殊的PowerShell链命令4命令提示符?

通常,PowerShell命令可以用分号链接。 以下打开2个记事本: PS> notepad; notepad 你也可以链接一个更复杂的语句: PS> Add-Type -AssemblyName System.IO.Compression; ` > $src = "C:\aFolder"; $zip="C:\my.zip"; ` > [io.compression.zipfile]::CreateFromDirectory($src, $zip) 链式PowerShell命令也可以从CMD命令行调用: C:\> powershell notepad; notepad 本文描述了一个创build.Net 4.0 PowerShell提示符的方法,即使.Net 2.0是您的操作系统上的活动框架。 您创build一个.cmd脚本,并运行该脚本。 现在你在.Net 4.0环境中。 链接也适用于4.0提示: C:\> ps4.cmd PS> notepad; notepad 也可以从标准CMD提示符下运行: C:\> ps4 notepad; notepad 本文描述了一种将Add-Type到显式path名的方法(需要从ps4提示符引用4.0程序集): Add-Type -Path "C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.IO.Compression.FileSystem\v4.0_4.0.0.0__b77a5c561934e089\System.IO.Compression.FileSystem.dll" 即使在ps4提示符处链接时,也是如此: C:\> ps4 PS> Add-Type -Path "C:\x\System.IO.Compression.FileSystem.dll"; ` […]

Powershell脚本默认不工作

所以我想开始写一个PowerShell脚本。 我想从小开始写简单的脚本,将本地文件夹作为驱动器。 很简单。 在使用旧的DOS命令工具之前,我已经完成了。 所以我想写的脚本是: subst d: G:\CER 好吧,所以我尝试通过按“Play”button(即F5)来执行Powershell ISE中的脚本。 那么我得到什么? 无法加载文件G:\ CER \ Make_Stage.ps1,因为在此系统上禁用了脚本的执行 。 请参阅“get-help about_signing”了解更多详情。 在行:0 char:0 这是多么愚蠢的是,开箱即用的PowerShell脚本执行被禁用 ! 即默认! 简直令人难以置信的是,默认情况下,这个新工具根本不起作用 Powershell必须是最愚蠢的脚本shell。 所以显然我必须注册一些东西(希望不是与MS)。 如果任何人有答案,如何解决这个问题,我会很感激。

有没有办法使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 […]