相关疑难解决方法(0)

如何从批处理文件运行PowerShell脚本

我试图在PowerShell中运行此脚本.我已将以下脚本保存在ps.ps1桌面上.

$query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2"
Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"}
Run Code Online (Sandbox Code Playgroud)

我已经制作了一个批处理脚本来运行这个PowerShell脚本

@echo off
Powershell.exe set-executionpolicy remotesigned -File  C:\Users\SE\Desktop\ps.ps1
pause
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

在此输入图像描述

windows shell powershell batch-file

181
推荐指数
6
解决办法
65万
查看次数

如何从批处理文件中执行powershell命令?

我有一个PowerShell脚本将网站添加到Internet Explorer中的可信站点:

set-location "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
set-location ZoneMap\Domains
new-item TESTSERVERNAME
set-location TESTSERVERNAME
new-itemproperty . -Name http -Value 2 -Type DWORD
Run Code Online (Sandbox Code Playgroud)

我想从批处理文件中执行这些PowerShell命令.当我必须运行单个命令时似乎很简单,在这种情况下,我有一系列相关的命令.我想避免为批处理调用PS脚本创建单独的文件 - 所有内容都必须在批处理文件中.

问题是:如何从批处理文件中执行powershell命令(或语句)?

powershell command-line batch-file powershell-2.0

45
推荐指数
4
解决办法
14万
查看次数

通过cmd / batch / powershell启用Win10内置热点

如标题所示,我正在寻找一种通过命令提示符/ powershell /批处理文件在Win10中启用/禁用内置Hotspot的方法。在GUI中,可以使用网络面板中的第三个按钮轻松完成此操作(请参见下图),但我想使其自动化。

我已经找到了数百篇有关如何通过netsh 创建新热点的教程,但是据我所知,这将创建另一个不同的热点。相反,我想使用已经配置的。还是Win10相同并且每次都会创建一个新的热点,但仅在内存之间设置?

提前致谢,

塞巴斯蒂安


编辑:

我玩了一下,发现了以下内容:

  1. 我当前的WiFi驱动程序不支持托管网络。如果我输入netsh wlan show drivers它说hosted network supprt: no。因此,对于“通用”解决方案,我将不得不更新驱动程序。
  2. 不过,我可以使用内置解决方案创建一个HotSpot(参见图片)。
  3. 看来,如果我激活此HotSpot窗口,则会创建一个附加窗口Microsoft Wi-Fi Direct Virtual Adapter #x。一旦我停用HotSpot,适配器就会消失。

因此,看来MS对内置热点使用的是与netsh变体完全不同的技术。这又使我想到了一个问题:如何通过脚本自动启用/禁用此热点?

windows powershell cmd batch-file hotspot

6
推荐指数
2
解决办法
5607
查看次数

将小的 PS 脚本转换为 .BATch 文件中的长行

我有这个 PowerShell 代码,是从这个问题的答案中得到的;它显示了运行 PS 代码的 cmd.exe 窗口的位置/尺寸:

$WindowFunction,$RectangleStruct = Add-Type -MemberDefinition @'
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
    public int Left;
    public int Top;
    public int Right;
    public int Bottom;
}
'@ -Name "type$([guid]::NewGuid() -replace '-')" -PassThru

$MyWindowHandle = (Get-Process -Id (Get-WmiObject Win32_Process -Filter "ProcessId=$PID").ParentProcessId).MainWindowHandle

$WindowRect = New-Object -TypeName $RectangleStruct.FullName
$null = $WindowFunction::GetWindowRect($MyWindowHandle,[ref]$WindowRect)

Write-Host $WindowRect.Left $WindowRect.Top $WindowRect.Right $WindowRect.Bottom
Run Code Online (Sandbox Code Playgroud)

当我从命令行在 .ps1 脚本中运行此代码时,它可以正常工作:

C:\Users\Antonio\Documents\test> powershell Set-ExecutionPolicy …
Run Code Online (Sandbox Code Playgroud)

windows powershell cmd batch-file

3
推荐指数
1
解决办法
1194
查看次数