在本地 64 位机器上,我可以打开“PowerShell (x86)”。但是,如果我对另一台运行 64 位操作系统的机器执行“Enter-PSSession”,它会创建一个 64 位 PowerShell。
在我的场景中,我需要一个 32 位的 PowerShell 会话。我怎样才能得到一个?
在 PowerShell 脚本中,我想在删除文件夹之前压缩文件夹。我运行以下(我不记得我在哪里找到的代码段):
function Compress-ToZip
{
param([string]$zipfilename)
if(-not (test-path($zipfilename)))
{
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(Get-ChildItem $zipfilename).IsReadOnly = $false
}
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
foreach($file in $input)
{
$zipPackage.CopyHere($file.FullName)
}
}
Run Code Online (Sandbox Code Playgroud)
此代码段实际上压缩了文件夹,但以异步方式进行。实际上,Shell.Application 对象的 CopyHere 方法开始压缩并且不等待其完成。我的脚本的下一个语句然后搞砸了(因为 zip 文件过程没有完成)。
有什么建议?如果可能的话,我想避免添加任何可执行文件并继续使用纯 Windows 功能。
[编辑] 我的 PS1 文件的全部内容减去数据库的实际名称。该脚本的目标是备份一组 SQL 数据库,然后将备份压缩在一个以当前日期命名的文件夹中的单个包中:
$VerbosePreferenceBak = $VerbosePreference
$VerbosePreference = "Continue"
add-PSSnapin SqlServerCmdletSnapin100
function BackupDB([string] $dbName, [string] $outDir)
{
Write-Host "Backup de la base : $dbName"
$script = "BACKUP …Run Code Online (Sandbox Code Playgroud) Linux 以拥有大量基于 GTK、Qt、GNOME、KDE 或 X 来运行 shell(如 bash)的终端和控制台而闻名。默认情况下,Windows 上的 PowerShell 与 Windows 控制台一起运行(与用于 cmd.exe 的相同)。
支持 PowerShell 的 Windows 可用的其他控制台或终端有哪些?
我尝试msiexec在 PowerShell 中运行,但不断收到错误消息。如果我cmd从那时起运行它,一切都很好。
有人可以让我知道如何在 PowerShell 中运行此命令吗?
这是我在 PowerShell 中输入的命令:
msiexec.exe /qb /I "C:\m_temp\Floating\PrimeWixInstaller.msi" INSTALLLOCATION="C:\Program Files\Mathcad\Mathcad Prime 1.0" ALT_DOC_DIR="C:\Program Files\Mathcad\Mathcad Prime 1.0"
Run Code Online (Sandbox Code Playgroud)
当我尝试运行该命令时,会弹出 Windows Installer 帮助窗口:

我曾尝试从 Windows 恢复环境中的命令提示符访问 PowerShell,但没有成功。我能够在那里运行 VBScripts 没有问题,我现在想知道是否有某种方法也可以从那里运行我的 PowerShell 命令。
PowerShell 可以在 WinRE 中使用,还是我最多只能使用 VBScript/JScript 支持?
请注意,这是关于 WinRE 而不是 WinPE!
编辑
EBGreen 曾评论过向 WinPE 添加其他组件,以允许在该环境中使用 PowerShell。可以对 WinRE 采取相同的方法吗?
我正在处理我的 dotfiles,我想创建一个批处理脚本,它会在切换到新计算机时为我做一些初始设置,比如使用psget安装模块等......我也喜欢它继续将我的 ExecutionPolicy 更改为可用的内容。
我创建了一个批处理文件,它只是在BypassExecutionPolicy下触发一个 powershell 脚本:
powershell -ExecutionPolicy ByPass
-NoLogo -NoProfile -NoExit
-File .\set-policy.ps1
Run Code Online (Sandbox Code Playgroud)
set-policy.ps1 尝试以管理员身份运行 powershell 以更改 ExecutionPolicy:
Start-Process powershell -verb runas
-ArgumentList "-No Exit -Command { Set-ExecutionPolicy Restricted }"
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎并没有做到这一点(下面的输出)。不确定是什么问题。
Set-ExecutionPolicy Restricted
PS C:\windows\system32> Get-ExecutionPolicy
RemoteSigned
Run Code Online (Sandbox Code Playgroud)
有关如何使用批处理文件 + powershell 脚本更改执行策略的任何提示?
Powershell 以极小的字体(约 5 pts)打开。当我转到默认 > 字体时,设置是合理的 8 x 12 像素,但这不是屏幕上显示的内容。我尝试更改其中一些设置,但没有任何更改。当它第一次打开时,它会以预期的大小出现一瞬间,然后缩小到左上角。这似乎是一个错误。
我知道这个问题就需要一定的字体大小某些字体。已经尝试了回答该问题的建议,但没有成功。这是一个不同的问题。
操作系统:Windows 8.1 Powershell 以管理员身份打开。
当我在 Windows 上使用 vagrant 时,我有时会发现没有正确遵守换行符。这通常是在执行vagrant ssh. 所以文字最终看起来像
This machine with the name 'default' was not found
configured for this environment.
Run Code Online (Sandbox Code Playgroud)
在 bash 中,当发生这种终端错误时,我可以运行reset它并清除并重置终端设置。我怎样才能在 Powershell/CMD 中做类似的事情而不必杀死窗口并启动一个新的 powershell/cmd 会话?
如何以编程方式禁用监视器。从显示设置对话框中,我可以将显示器设置为另一台显示器的副本、普通桌面的扩展或“断开连接”。
这可以使用 powershell 或某些脚本语言(如 autoit)来完成,如果需要,我对使用 C# 感到满意吗?我需要能够运行程序并使第三台显示器断开连接或将其启用为桌面的扩展。
我创建了文件C:\Users\<myname>\Documents\WindowsPowerShell\profile.ps1;但是,PowerShell 不会在启动时加载它。我已经测试了默认的 PowerShell 以及 VS Code 的集成 PowerShell。我也尝试将profile.ps1文件重命名为Microsoft.PowerShell_profile.ps1,但这没有任何改变。每次更改后,我都会重新启动有问题的应用程序。
运行Test-Path $profile.CurrentUserAllHosts返回 True。
配置文件当前仅包含一行 ( Set-PSReadlineKeyHandler -Key Tab -Function Complete)。启动 PowerShell 或 VS Code 的集成 shell 后,运行Get-PSReadlineKeyHandler | findstr -i Tab显示尚未设置。复制并粘贴配置文件中的行,运行它,然后Get-...再次运行该命令显示它已正确设置,并且更改做了它应该做的。重新启动外壳将恢复为默认设置。
我是否还需要执行其他步骤才能让 PowerShell 执行配置文件?(我来自 Linux/UNIX 背景,我认为 PowerShell 的工作方式类似,但当然 PowerShell 的设计完全不同)。如果没有额外的步骤,为什么 PowerShell 在这种情况下不加载配置文件?
附加信息:
> $profile | Format-List * -force
AllUsersAllHosts : C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
AllUsersCurrentHost : C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : C:\Users\<myname>\Documents\WindowsPowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\<myname>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Length : 76
Run Code Online (Sandbox Code Playgroud)