在我的 Windows 7 上,如果我通过“Win+R”运行 powershell,“powershell”将以黑色背景上的白色文本开头,并且设置会通过[HKEY_CURRENT_USER\Colors]. 例如,我可以轻松地将默认的“红色”颜色更改为不那么亮:

但是,如果我将此 powershell 固定到 Windows 7 超级栏并通过单击超级栏图标启动它,它将显示一些我无法更改的疯狂蓝白颜色 O_O:

为什么会有这种差异,是否有任何方式可以配置固定 powershell 的颜色,我可以配置通过“运行”命令启动的 powrshell。
当我执行 aShift+left-click并选择open command window here
我更改了 %ComSpec% 系统变量,甚至添加到指向 PS 路径的用户变量中时,我试图让 PS 而不是 cmd.exe 打开,但没有结果,cmd.exe仍在开放中。
我一定是做错了什么,有人可以帮我吗?
我正在尝试使用 PowerShell 脚本检查远程服务器上是否存在 IIS 应用程序池。我正在运行的命令是:
test-path "IIS:\AppPools\DefaultAppPool"
Run Code Online (Sandbox Code Playgroud)
如果我直接在有问题的 IIS 服务器上运行此脚本,我会收到“True”的响应,因此这告诉我我在 PowerShell 中正确配置了 IIS 管理。但是,当我从远程服务器运行以下脚本时,我收到“False”响应
invoke-command -ComputerName IISSERVER -ScriptBlock { test-path "IIS:\AppPools\DefaultAppPool" }
Run Code Online (Sandbox Code Playgroud)
我知道 PowerShell 远程处理已正确配置,因为我可以运行以下命令并获取文件列表
invoke-command -ComputerName IISSERVER -ScriptBlock { get-childitems "c:\" }
Run Code Online (Sandbox Code Playgroud)
那么为什么我会得到关于应用程序池存在的错误响应呢?
我目前正在尝试为 Windows Server 2012 构建一个关闭脚本,该脚本将在主服务器关闭时执行到我的副本服务器的计划故障转移。
我的问题是关闭脚本在 Hyper-V 服务停止后执行。
有没有可能让它之前被执行?
我似乎丢失了用于启动 Powershell ISE 的 *.ps1 文件的右键单击编辑操作。我怎样才能取回它?
我认为它一定是在我安装和卸载PowerGui之后发生的。
这不一定是问题,我更好奇为什么会发生这种行为。
尝试从 powershell 启动 vim 时,我看到了Open with窗口:
PS C:\> vim
Run Code Online (Sandbox Code Playgroud)

如果我指定:
PS C:\> vim.exe
Run Code Online (Sandbox Code Playgroud)
Vim 按预期启动。无论我是否指定,gVim 都会按预期启动:
PS C:\> gvim.exe
Run Code Online (Sandbox Code Playgroud)
或者
PS C:\> gvim
Run Code Online (Sandbox Code Playgroud)
同样,这不是真正的问题,我只是想知道它为什么会发生,以及从 powershell 启动 vim 和 gvim 时我应该研究什么才能获得一致的行为。
我正在尝试以下 appcmd commnad:
appcmd list app /site.name:"misechko.com.ua-DEV" /xml | appcmd list vdir /in /text:physicalPath
Run Code Online (Sandbox Code Playgroud)
misechko.com.ua-DEV 是 IIS 中的正确站点名称。appcmd 注册在路径中;
当我尝试在 cmd.exe 中执行命令时,出现以下错误输出:
ERROR ( hresult:8007000d, message: The input contains an error element, 这可能表明产生输入的操作失败。)
应用程序设置中的错误是什么?我想我正在混合使用 cmd 和 powershell 方法,但是上面提到的脚本在 PowerShell 中也不起作用。通过网站名称获取路径的 PowerShell 方法是可取的。
PS 我的 PowerShell 替代方案也不起作用:
$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"
$appcmd list app /site.name:"misechko.com.ua-DEV" /xml | $appcmd list vdir /in /text:physicalPath
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在使用 Powershell ISE 运行一些批处理脚本。输出将很长,这些程序将运行相当长的一段时间。我面临的问题是我无法将控制台输出锁定到任何位置以便能够读取显示的一些错误?即使在控制台输出的末尾附加了新输出,是否也可以锁定滚动?
有没有办法让 PowerShell 记住在之前的会话中输入的命令?也就是说,在关闭窗口并再次打开它之后,是否可以设置 PowerShell 来记住命令?
网上有一些解决方案,但大多数只是在您右键单击文件夹时添加命令。我已经找到以管理员身份运行的解决方案(其工作两者)在这里。但它仅适用于管理员访问。
powershell ×10
windows-7 ×2
windows-8 ×2
cmd.exe ×1
command-line ×1
context-menu ×1
hyper-v ×1
iis ×1
scroll-lock ×1
shutdown ×1
vim ×1
windows ×1