Questions tagged «powershell»

Windows PowerShell是Windows的命令行外壳程序和脚本语言,它取代了CMD.exe Shell和批处理语言。PowerShell还是Windows的自动化引擎,提供类似于Windows Script Host和VBScript的功能。

0
PowerShell上下文菜单脚本块
Windows注册表编辑器版本5.00 [HKEY_CLASSES_ROOT * \ shell \ FileDateTime] @ =“文件日期时间属性(一次1个文件)” [HKEY_CLASSES_ROOT * \ shell \ FileDateTime \ command] @ =“powershell.exe $ Filename = Get-ChildItem \\”\“%1 \\”\“; $ TEMP2 =($(Get-Date)。年)+1 ; $ TEMP = \\“\”1月1日,{0} 12:00:00 AM \\“\” - f $ TEMP2; $ Filename.creationtime = $ TEMP; $ Filename.lastaccesstime = $ TEMP; …

1
Windows 10中的新对象System.Windows.Media.Imaging.BitmapImage失败
我正在重写几个月前制作的一个小型PowerShell应用程序。此应用程序创建NotifyIcon。以前我通过将脚本指向图像文件来加载图标(图像)。现在我想使用Base64代码直接嵌入图像代码。 这在Windows 7和Windows Server 2012R2计算机上完美运行,但在Windows 10(更新)上失败。 这是失败的命令和返回的错误: New-Object System.Windows.Media.Imaging.BitmapImage 错误:New-Object:找不到类型[System.Windows.Media.Imaging.BitmapImage]:验证是否已加载包含此类型的程序集。 Windows 10计算机上的PowerShell版本命令失败: PSVersion:5.1.14393.187 Windows Server 2012 R2上的PowerShell版本是命令运行: PSVersion:4.0 任何人都知道如何使它在Windows 10计算机上工作,或如何在PowerShell会话中加载所需的程序集?

0
Active Directory通过用户和计算机GUI工作,但AD PS无法正常工作
昨天AD在我的工作站上工作正常。我可以从用户和计算机GUI或Powershell中查询AD。昨晚发布了更新,我今天上午开始上班,AD RSAT已经卸载(正常)。我重新安装它,用户和计算机GUI工作,但PS中的所有AD模块都失败了WARNING: Unable to contact the server. This may be because this server does not exist, it is currently down, or it does not have the Active Directory Web Services running. 显然,我与服务器有一定程度的连接,并且没有触及服务器并且仍然安装了AD,因为GUI工作正常。但我不能从Powershell调用任何AD模块。

1
Powershell和/或cmd调用中的敏感信息
我想在Windows主机上运行Powershell和/或cmd.exe的命令。这些命令可能会接受,作为参数,这应该密码不被保存任何地方。 这些脚本可能需要从某个自动进程运行,因此密码提示不会飞。 当然,这是我想阻止他坐在服务器上的东西。Windows可以保留哪些方式(在历史记录,日志等中)先前的命令数据,如参数内容,以及如何阻止它这样做? 非常感谢任何见解。 像Powershell中的使用密码一样的文章表明我不会有问题(暗示你可以直接在shell中写密码),并且社区答案并不完全证明它是安全的,但是一个社区答案可以让我知道这是不安全的。:)


2
PowerShell:更新/刷新Word文档的TOC
我正在使用PowerShell脚本自动更新/刷新Word文档中的目录(之前是从不自动执行此操作的应用程序导出的) 导出文档中的TOC到达如下: 点击(Inhaltsverzeichnis aktualisieren)它会正确生成目录。 但是,我希望使用PowerShell自动执行此操作并提出以下脚本(请注意,我是PowerShell的初学者): $latestFile = Get-ChildItem -Path C:\ExportedDocuments -File -Filter "*.docx" | Sort-Object LastAccessTime -Descending | Select-Object -First 1 $word = New-Object -ComObject Word.Application $word.Visible=$true $doc=$word.Documents.Open($latestFile.FullName) $toc = $latestFile.TablesOfContents $toc.Update() $latestFile.save() $latestFile.close() 我收到以下错误 - 但我不完全理解,我也不知道如何解决它们: You cannot call a method on a null-valued expression. At line:6 char:1 + …

1
循环时,文本向右移动更多
这是我在下面创建一个带有for循环的函数时的输出: NO Type -- ---- 1 System.Int32 2 System.Int32 3 System.Int32 4 System.Int32 5 System.Int32 6 System.Int32 7 System.Int32 8 System.Int32 9 System.Int32 10 System.Int32 你看到当10出现时,它会将System.Int32更多地移动到右边。如何更改代码中的内容?这可能与Powershell无关。 码: function CountTen() { [array]$ListOfNumbers = @() [array]$NumbersType = @() for ($i=1; $i -le 10; $i++) { $ListOfNumbers += ("`n", $i, "`t`t", ($i.GetType())) } …

0
如何在Power shell中将Start Process用作FileSystemWatcher的操作
我能够成功使用System.IO.FileSystemWatcher来查看已创建文件的文件夹和子目录,但是当我尝试使用Start Process运行批处理文件时,它会运行一次,但之后再也不会触发。我从这里修改了答案。 这是我的powershell脚本 $watcher = New-Object System.IO.FileSystemWatcher $watcher.Path = "C:\lectures" $watcher.Filter = "*.*" $watcher.IncludeSubdirectories = $true $watcher.EnableRaisingEvents = $true $action = { $path = $Event.SourceEventArgs.FullPath Write-Host "Event Fired" $ext = [io.path]::GetExtension($path) if($ext -eq ".wma"){ $file = [io.path]::GetFileNameWithoutExtension($path) $folder = Split-Path(Split-Path $path -Parent) -Leaf $date = Get-Date -UFormat "%Y-%m-%d" $newName = …

1
为什么PowerShell的行为与给定相同命令的cmd.exe不同?
这个问题最好用场景来解释,我意识到这两个程序的运行方式不同。 我的Linux硬盘上有一个旧备份,包含一个名为con的文件。如MSDN所述,con是保留的设备名称,不能用于文件: 不要将以下保留的设备名称用于文件名: CON,PRN,AUX,NUL,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8和LPT9 所以我在删除文件时遇到了问题,但是当我在超级用户回答的命令中找到正确的名称时,我能够将其删除: del "\\.\F:\Movies\Con Man\Con.Man.2018.720p.WEBRip.x264-[YTS.AM].mp4" 首先,我尝试通过PowerShell使用给定命令删除该文件。它抛出一个错误,说目录或驱动器不存在。只有C:\ WINDOWS \ System32 \ cmd.exe才能删除该文件。我用管理员权限运行了两个shell。 所以从这一点开始我只想知道:为什么他们的行为不同?PowerShell是否存在某种单独的权限级别,还是在某种特殊的沙箱中运行?

2
在哪里/如何安装cmdlet?
我写的cmdlet脚本运行良好。我想在任何目录中使用它。我可以通过将它放在PATH上的目录中来完成此操作。 但是,它并没有真正“安装”为cmdlet。它在命令名称上始终具有“.ps1”扩展名。 必须编写和安装模块吗? 更大的问题是我的小组中的每个人都应该能够使用该脚本。这是否意味着将其导入All Users,All Hosts配置文件脚本?用户应使用-NoProfile为生产过程运行PowerShell。如果创建.psm1,PowerShell会一直加载吗?

1
使用txt中的部分文件名列表将文件从一个文件夹复制到另一个文件夹
我有大量图像存储在一个文件夹中,并通过它们进行排序,以选择复制到某些文件夹,如“scenery”或“technical”,并为文本文件中的每个文件夹创建一个部分文件名列表。例如。Scenery.txt 4811 4819 4820 这些是唯一的文件编号,它们是完整文件名的一部分,例如: C:\Users\drewb\Pictures\2018_08_Inuvik\All\DSC_4811.jpg 我有一个PowerShell中的脚本,当我有一个.txt文件中列出的完整文件名列表时,它对我有用,但由于我只写了图片编号,因此节省了大量照片。我希望有一种方法可以创建这个列表的数组并将其作为循环中的完整文件名中的变量提供,但任何建议都值得赞赏。 在.txt中使用全名工作的代码是 Get-Content C:\Users\drewb\Pictures\2018_08_Inuvik\Technical.txt | ForEach-Object {copy-item $_ C:\Users\drewb\Pictures\2018_08_Inuvik\Technical} 已解决:我通过将文件路径连接到名称和excel中的文件扩展名来解决它,然后使用我之前使用的PS脚本。但是,我觉得必须有更直接的方式来编写脚本。

1
如何在Windows上安装mmc证书?
我对Windows不太熟悉,我在安装MMC证书时遇到问题。我按照此说明使用MMC创建证书,但我无法完成标记为“安装或查看以下证书:”的步骤。没有什么可以'ConsoleRoot' - >'证书(本地计算机)' - >'个人',当我试图找到证书时我找不到它。 还有另一个页面有很好的截图,直到我要选择证书文件的第9步。我不知道这个文件的创建位置,如果有的话。 如何创建/安装/导入此证书?我需要这个才能使用Enter-PSSession远程机器上的powershell ......

1
Windows PowerShell
PowerShell是否可以在打开或关闭文件时自动执行任务?更具体地说:如果我右键单击文件有“上下文菜单”,是否可以在打开和/或关闭文件时自动在菜单中运行其中一个项目?

1
Powershell - 在单个表中显示匹配的自定义对象属性
我的脚本输出有问题以我希望的方式显示信息。我想在一个表下查看每个生成的自定义对象的匹配属性(对象是在foreach循环中生成,因此它们将始终具有完全相同的属性),而不是为每个对象创建一个新表,如下面的脚本确实。这个脚本创建对象的方式是否可行?如果是这样,它会怎么做? function Get-Uptime { [CmdletBinding()] Param ( [Parameter(ValueFromPipeline=$true, Position=0)] [String[]]$ComputerName = $env:COMPUTERNAME ) Begin {} Process { foreach ($computer in $ComputerName) { $ComputerObject = [Ordered]@{"Computer Name" = $computer "Start Time" = $null "Uptime (Days)" = $null "Status" = $null "May Need Patched?" = $null} $IsOnline = Test-Connection -ComputerName $Computer -Quiet …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.