Questions tagged «powershell»

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

1
powershell目录前缀
你在powershell目录路径中称为前缀部分是什么?与证书一样,您可以: cd cert:/path/to/certificate 或者对于注册管理机构,您可以: cd HKCU:/path/to/registry/key 你称之为“证书:”或“HKCU:”部分是什么?你如何获得哪些可用的列表? 谢谢 肖恩

0
PowerShell中的后缀别名功能
我正在寻找在调用带有扩展名的文件时运行某些cmdlet的能力。例如,在打电话时PS> .\test.php我想打电话Invoke-Php .\test.php。类似于ZSH中的后缀别名。 现在我知道我可以只为某些脚本分配php扩展,但它也会影响资源管理器,而且它不是我想要的。也许有可能“挂钩”表达式调用过程? 编辑:我正在寻找类似的东西:https://serverfault.com/questions/165598/can-i-hook-powershell-to-call-a-function-each-time-i-execute-a-command / 186468#186468但不仅在PATH工作。

3
确定Azure AD设备ID
如果在初始Windows 10配置期间将新PC加入Azure AD,则该设备将以其原始名称列出,例如DESKTOP-NNNNN。如果随后重命名计算机(通常的做法),则不会更新Azure AD。如果然后需要Bitlocker密钥(保存在AZ中),那么除非您知道原始名称,否则您将被卡住。这是一个已知问题。 有没有办法从PC上找到设备ID?在注册表或PowerShell cmdlet中的某个位置? 当然,如果您遇到用户要求他们的Bitlocker密钥的情况,那么您会被加倍填充,因为无论如何他们都无法访问桌面或PowerShell!我已经将原始名称记录到我们的新套件设置程序中,因此这对于已经完成的笔记本电脑来说更是如此。 我知道解决方法是使用本地帐户设置Windows,重命名计算机,然后添加到Azure AD,然后删除本地帐户。虽然这是我们迄今为止所做的最好的。


1
通过PowerShell使用FFmpeg-正确在参数中使用破折号和引号
很长时间以来,StackExchange一直是我寻找答案的第一位-不幸的是,我找不到针对当前问题的任何(有效的)解决方案,因此我打开了这个问题。 我想做的是创建一个PowerShell脚本(我对PS还是很陌生的),以通过FFmpeg自动处理文件列表(即与脚本共享同一文件夹的所有MP4文件)。 TL; DR:我无法工作:使用-vf "iamafilterargument"包含变量的过滤器命令()。 手写到cmd时我要尝试执行的命令是: ffmpeg -i <input_file> -an -c:v libx264 -crf 16 -preset veryslow -vf "drawtext=fontsize=12:fontfile=/Windows/Fonts/arial.ttf:text='<input_filename>':bordercolor=black:borderw=2:fontcolor=white:x=(w-tw)/2:y=5:alpha=0.5" <output_filename>.mkv 通过cmd,它可以按预期工作。现在我的PS脚本: $encoder = "C:\FFMPEG\ffmpeg.exe" $dateien = Get-ChildItem .\*.mp4 $dateinamen = ForEach-Object {$dateien.BaseName} for($i=0; $i -lt $dateien.Length; $i++){ $filterbefehl = " -i " + $dateien[$i] + " -an -map_metadata -1 -vf=`"drawtext=fontsize=12:fontfile=/Windows/Fonts/arial.ttf:text=" + …

2
从计划任务运行时,Get-CimInstance不起作用
我有一个Powershell脚本,该脚本使用以下命令导出本地计算机上所有服务的列表: Get-CimInstance win32_service | Export-Csv $PSScriptRoot\Local\services.csv 当我从Powershell提示符下在本地管理员帐户下运行它时,它工作正常。我尝试将其作为计划任务运行,使用相同的本地管理员帐户运行计划任务,但没有任何输出到.csv文件。 我知道计划任务本身运行正常,因为还有其他输出文件正在按我的期望进行更新。将脚本作为中断任务的计划任务运行有什么不同? 更新:我在后台运行ProcMon的情况下都运行了脚本。我注意到的一个区别是计划任务的进程的Session ID为0,而运行脚本时的Session ID为4。


1
Start-BitsTransfer-“找不到路径,因为它不存在”,具有与本地主机不同的凭据
我在PowerShell提示符下键入以下命令: Start-BitsTransfer -Source "\\serverA\c$\test.txt" -Destination . -TransferType Download -cred (get-credential) 正确输入凭据后,我得到: 找不到路径“ \\ serverA \ c $ \ test.txt”,因为它不存在 我可以将\\ serverA \ c $映射到网络驱动器(例如Y:\),然后进行以下工作: Start-BitsTransfer -Source "Y:\\test.txt" -Destination . -TransferType Download 但这不是可取的,因为我需要能够一次从超过26台服务器下载文件的功能,这意味着我将用完驱动器号。

1
为什么我需要在此Powershell此处字符串中转义最后一个单引号?
根据Powershell的“ 关于引用规则 ”: 此处的字符串是单引号或双引号的字符串,其中的引号是按字面意义解释的。 但是,以下字符串在Powershell版本5.0(内部版本10586,修订版117)中导致TerminatorExpectedAtEndOfString异常。在Powershell 2.0版中,它可以按预期工作: $herestr=@" '"' "@ Write-Host $herestr 如果我用反引号(`)引用最后一个单引号,那么here-string在2.0版和5.0版中都可以正常工作。 $herestr=@" '"`' "@ Write-Host $herestr 为什么我需要在here字符串中转义最后一个单引号?

1
适用于任何USB设备的WmiEvent
我正在关注这个答案,其中包含 Register-WmiEvent -Class win32_VolumeChangeEvent -SourceIdentifier volumeChange 和 $newEvent = Wait-Event -SourceIdentifier volumeChange 当我插入或卸下USB闪存驱动器时,此方法有效。(我想是因为VolumeChange)我想检测任何 USB设备的插入或移除,而不仅仅是驱动器。这可能吗?谢谢!
1 usb  powershell  wmi  win32 

0
命令行中的IP范围
我希望在Windows 7 Ultimate 32位中使用Powershell和Task Scheduler在VPN连接断开时重拨VPN。我找到了一个脚本(http://blog.degree.no/2011/10/permanent-vpn-connection-in-windows/),但是它只有一个IP地址。由于我的vpn分配IP地址的方式,我需要的是IP地址范围,如10.0.0.0/16。谁能帮我吗? 创建c:\pn.ps1并添加以下内容: $ip = "10.20.30.40" $result = gwmi -query "SELECT * FROM Win32_PingStatus WHERE Address = '$ip'" if ($result.StatusCode -eq 0) { Write-Host "$ip is up." } else{ Write-Host "$ip is down." Write-Host "Disconnecting..." rasdial.exe DegreeVPN /DISCONNECT Write-Host "Connecting..." rasdial.exe DegreeVPN vpnUsername vpnPassword12345 }

1
使用PowerShell将JSON转换为YAML
我有一个像这样的json数据。 sample.json [ { "id": 0, "name": "Cofine", "title": "laboris minim qui nisi esse amet non", "description": "Consequat laborum quis exercitation culpa. Culpa esse sint consectetur deserunt non.", "website": "cofine.com", "image": "http://placehold.it/32x32", "labels": ["blue", "red"], "labels_link": ["http://cofine.com/labels/blue","http://cofine.com/labels/red"], }, { "id": 1, "name": "Zomboid", "title": "adipisicing mollit esse aliquip ullamco nisi …
1 powershell  json  yaml 


1
自毁目录
我想在目录中运行脚本,然后删除目录,子目录和文件。 If(Test-Path -Path $var_InterventionManuelle) {Remove-Item -Recurse -Force $var_InterventionManuelle} 当我运行命令行时,它工作正常……但是,如果有人从命令行进入该目录并运行脚本,则不会删除目录和文件。由于目录正在使用中,我只是收到一个错误。 我该如何绕过这个问题?

4
如何使用Windows轻松查找没有扩展名的文件
我的硬盘驱动器上有一些文件没有任何扩展名。手动找到它们非常困难,我真的不喜欢这样一个事实,即我需要尽快更换我的鼠标,因为不是很大但却非常突出的损坏,通过不断尝试找到这些文件对硬件做了很多单击和滚动,因为它们是单个文件夹中数千个文件中的几百个。 这里有没有人知道 cmd 要么 PowerShell 命令,或一些Windows资源管理器搜索高级查询语法,以帮助简化此任务?

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.