某些命令(例如IisReset和Robocopy)已停止在PowerShell V4 中工作 我有一个很大的脚本,可以在某些方面运行这两个命令,但是现在两个都给我一个一般错误: iisreset : The term 'iisreset' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 这些命令仍然从CMD工作. 所做的唯一更改是我安装了WMF5和PowerShell 5,但尚未重新启动服务器(在数据中心在它们上运行的USB的许多副本),因此我仍在运行PowerShell4.即使安装了PowerShell 7并尝试运行脚本,但它提到它
以下是关于 shell 的编程技术问答
我正在运行Windows 2012,并且每当我在控制台中键入此功能时: start /min calc.exe 它打开了应用程序,但没有最小化任务栏. Windonws 8.1实际上确实使它最小化. 有什么想法为什么? 编辑:我想对这个问题进行具体,因为它变得困惑. calc.exe 只是一个示例来证明/min开关不起作用. 我的真正目标是启动 python 和 chrome 通过命令行中的Win 2012 R2最小化. 使用/min Switch时,他们俩的确在8.1中启动最小. 解决方案 start /min file.exe使用 CreateProcess API呼叫开始该过程,并在 STARTUPINFO lpStartupInfo参数指向的结构. 在此结构中,有一个wShowWindow成员可以指示如何显示启动过程的窗口.其文档状态 wshowwindow 如果 dwflags 指定startf_usesh
我正在通过Wan Miniport(PPPOE)连接使用我的宽带Internet,并且我将Windows 7作为操作系统.我想通过C#断开Internet连接.我通过互联网搜索了很多,但我不确定哪种方法(WMI,Wininet等)适合我的连接. 稍后,我将通过另一个软件重新连接,因此我的要求只是与Internet断开连接,而不是完全禁用它. 请给出一些解决方案和代码以实现此目标. ? 解决方案 使用 WMI: c#: var wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter " + "WHERE NetConnectionId != null " + "AND Manufacturer != 'Microsoft' "); using (var s
我有一个简单的批处理脚本,将文件复制到启动文件夹,但是看来我不能将shell:common startup作为xcopy的参数.我尝试了这个 xcopy hurrdurr.exe "shell:Common Startup" 和许多其他变体,它们不起作用.顺便说一句,如果我可以通过UAC进行许可即可进行Xcopy操作,那么" Hurrdurr.exe"将在每个启动时运行?使用环境变量会更好吗?所讨论的操作系统是Windows XP并进行操作. 解决方案 我不确定为什么您的Shell命令无法正常工作,但是如果您需要让您的程序加载到启动上,那么我更喜欢使用注册表,它更清洁,更简单,这意味着您不必在其他地方复制文件,特别是如果该文件取决于其他内容. reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Hurrdurr" /d "hurrdurr.exe" /f 只需运行CMD作为管理员,它将起
我已经打了一个外壳扩展名(由现在,功能dragqueryfile UINT uNumFiles = DragQueryFile(hDrop,0xFFFFFFFF,NULL,0); 返回正确的选定文件,直到数字高于16.然后始终返回16. 我已经在XP(32)和Vista(32)中对其进行了测试,在Windows7(32/64)中,它没有. 有什么想法? 谢谢. 解决方案 ishellexinit.initialize()方法再次调用,使用完整的文件列表,在调用您的命令之后,就在iContextmenu.invokecommand()之前,请通过shell调用.然后,您有机会再次收集文件列表. 您只是不能依靠文件在第一个initialize()调用上计数,因此,如果它超过16个,请勿在上下文菜单项中显示. 其他解决方案 我已经看到了一些帖子,这些帖子谈论了资源管理器中16个文件的限制,并声称该问题已解决了更改多invoke promptMinem
我们需要支持一个提供Unix和Win32端口的旧应用程序.不幸的是,在游戏的晚些时候,仅针对UNIX端口的KSH脚本编写了许多胶水代码,而Win32端口失去了平等.我一直在努力恢复它,并且一直在尝试一些KSH-FOR-WINDOWS SOLUTIONS(过去曾经工作过的本地ZSH构建),但是在Windows 7下似乎没有任何工作正常工作:Cygwin拒绝使用Win32和Unix风格的道路都可以,因此一些令人费解的脚本中断了. SUA/SFU的情况相同. UWIN在Windows 7上不起作用. 所以,我需要一个Korn-shell工作,它将在Win 7下工作(64位会很棒,但我失去了希望),并且可以与CMD.Exe风格的道路一起使用( c:/path/to/app)和标准unix路径(/路径/到/app).有线索吗? 解决方案 Cygwin确实支持C:/path/to/app样式路径,即使它喜欢抱怨它们. (设置cygwin = nodosfilewarning将将其关闭).也
我正在Windows 7上运行GIT-1.8.0-Preview20121022,并且安装与"仅Git Bash"(Windows CMD最少侵入). 当我从"开始"菜单快捷方式打开git bash时,历史记录一切都很好. 但是,当Git Bash here上下文菜单(git-cheetah shell Extension One或更简单的注册表)是启动会话的内容时,该会话中的命令并未将其保存到.bash_history. . 怎么能弄清楚为什么会发生这种情况?或者更好,有人知道如何解决此问题吗? 解决方案 您应该能够通过将此行添加到~/.bash_profile 来解决此问题 PROMPT_COMMAND='history -a' 其他解决方案 如下所述: > 创建以下文件 ~/.bash_profile ~/.bashrc 并将以下行放入两个行 PROMPT_COMMAND='history -a' 从控制台(git ba
我想用我的WPF应用程序替换Windows 7 Shell(32和64位),该应用程序应该用作外壳.目标是WPF应用程序将启动我的售货亭应用程序,并提供很少的服务. 我的问题是 如何用我的 WPF应用程序? 我必须做吗 我的WPF中的一些特别之处 申请代码或必需 注册表更改以执行WPF 用作外壳? 谢谢. 解决方案 1.)在 hkey_current_user \ Software \ Microsoft \ Microsoft \ Windows \ Windows nt \ currentversion \ winlogon \ shell 解决方案 1.)期望通往可执行文件的完整路径. (可以找到更多信息在这里 > - 它说这是针对XP插入的,但操作方法也对Win7有好处.) 2. em> not 求助您要避免的.如果我没记错的话,计算机的Ctrl-Alt-Del行为不会随自定义外壳而变化,因此您可以使用它来获取登录/关闭命令以及任务管理
我正在尝试通过在VBA中使用Shell对象来获得位图的高度. 这是代码的相关部分(bmp是自定义类的成员,.Width是定义为整数的属性.) Set objImg = objShell.Namespace(subfs(sf)).ParseName(bmp.Name) tmpDim = objShell.Namespace(subfs(sf)).GetDetailsOf(objImg, 162) tmpDim = Replace(tmpDim, "?", "") tmpDim = Replace(tmpDim, " pixels", "") bmp.Width = CInt(tmpDim) 我在最后一行中遇到类型不匹配错误,因为TMPDIM的值为?754.作为参考,第二行之后的TMPDIM值为?754 pixels. 我有一个步骤可以用空字符串替换?,但它不起作用.我如何摆脱问号角色? 解决方案 您看到的问号实际上不是问号. ASC()函数将返回63的值,但是
我想通过脚本打开其默认程序中的文件(尤其是视频文件).当我遇到带有空格的文件名时,它被视为几个参数,这不足为奇: C:\folder>start test space.avi The system cannot find the file test. 但是,当我用引号包围文件名时: C:\folder>start "test space.avi" 而不是在其默认程序(VLC)中打开文件,而是打开一个新的命令提示符窗口到文件的目录. 打开没有空间或引用的文件,可以按预期在VLC中打开文件. 我该如何解决这个问题? 解决方案 只需离开start,然后用双引号包围完整的文件名(包括任何路径).这在我的系统上正常工作: C:\>"test space.avi" 其他解决方案 我怀疑开始时第一个论点的第一个字符是报价时做一些特别的事情.第一个参数是窗口标题,第二个是要打开的命令/文件 start "" "test space.a
我正在尝试完成两件事: 我正在Windows7上运行Cygwin来执行我的Unix Shell命令,我需要通过编写Java应用程序来自动化该过程.我已经知道如何使用"进程类"和Runtime.getRuntime().exec("cmd /c dir")使用Java使用Windows Shell.我需要能够使用unix命令进行相同的操作:即:ls -la等等.我应该看什么? 有没有办法记住外壳状态? 说明:当我使用:Runtime.getRuntime().exec("cmd /c dir")时,我总是会获取主目录的列表.如果我做Runtime.getRuntime().exec("cmd /c cd "),然后再做Runtime.getRuntime().exec("cmd /c dir"),我仍然会获取我的主文件夹的列表.有没有办法告诉记住其状态的过程,就像普通的外壳一样? 看来Paŭlo提出的bash命令行不起作用: C:\cygw
无论我做什么,我都无法工作.即使我将" msg/server:"语法放在蝙蝠文件中,并从shell.lun调用它,它仍然说"'msg'并未被识别为内部或外部命令,可操作的程序或批处理文件." 我还尝试了" msg.exe"和" c:\ windows \ system32 \ msg.exe".从CMD控制台直接输入以及VBScript或CMD/BAT脚本,所有形式都可以正常工作,但不能从HTA中使用.这是"设计"的安全功能?无论如何是否有? 解决方案 用于向后兼容性,64位Windows船,带有两个版本的mshta.exe: C:\Windows\SysWOW64\mshta.exe and C:\Windows\System32\mshta.exe 您描述的行为是关于64位mshta.exe的好奇心之一,它无法调用32位应用程序,例如msg.exe.请注意,c:\ windows \ syswow64 \ cmd.exe的64位命令提示符也将无法找到ms
我有以下代码在Windows XP和Vista上工作 - 32和64位: public static Icon GetFolderIcon(IconSize size, FolderType folderType) { // Need to add size check, although errors generated at present! uint flags = Shell32.SHGFI_ICON | Shell32.SHGFI_USEFILEATTRIBUTES; if (FolderType.Open == folderType) { flags += Shell32.SHGFI_OPENICON; } if (IconSize.Small == size) { flags += Shell32.SHGFI_SMALLICON; } else {
所以我遵循本教程: https://msdn .microsoft.com/en-us/library/windows/desktop/hh127427(v = vs.85).aspx 当我浏览句子时,随便说"调用shchangenotify函数".我该怎么做呢? Powershell并未认可它.我是否必须在C ++中导入一些库并从C ++程序中调用它?我在Windows 10. 解决方案 我使用以下内容通过使用C#代码来调用PowerShell桌面上的刷新: $code = @' [System.Runtime.InteropServices.DllImport("Shell32.dll")] private static extern int SHChangeNotify(int eventId, int flags, IntPtr item1, IntPtr item2); public static void Refresh()
我需要在运行Windows 10 Enterprise的计算机上创建一个特殊帐户.该帐户将直接通过登录而不是默认外壳启动应用程序,然后退出应用程序应迫使计算机重新启动. 我能够使用配置控制台和锁定功能在Windows 8.1嵌入式行业Pro上轻松执行此操作. 现在,在Windows 10上,我尝试按照Technet上的两个教程但是,两个教程都没有工作.我设法执行了其中描述的脚本,但它们没有效果(我已经修改了它们,因此它们不会删除Shells设置). 最后,我最终得到了以下代码: $COMPUTER = "localhost" $NAMESPACE = "root\standardcimv2\embedded" $ACCOUNT_NAME = "cmp" $ShellLauncherClass = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WESL_UserSetting" $NTUserObject = New-Object S
我想知道是否有一种运行PowerShell脚本的方法,以便打印脚本的每一行的命令和输出.例如,在Bash中,您会编写bash -x myscript或将a set -x放在脚本的顶部.在批处理中,您将省略@echo off传统上留在脚本顶部的@echo off. Powershell是否等效于这些结构? 我尝试过的东西:运行powershell -? | sls verbose,什么都没有. 解决方案 只是显示出来,@jamesko,如果您问错误的问题,您得到错误的答案:-(.几个人根据(a)缺乏linux曝光和(b )您对 verbose 的使用.在以下内容中,我将介绍Linux与PowerShell在此主题上的关系,但如果您很着急,请随时跳到答案. : - ) 背景 在powershell中,详细的含义/a>甚至含糊不清: 显示有关操作执行的详细信息 命令.此信息类似于跟踪中的信息 事务日志.仅当命令生成时,此参数才能起作用 详细消息. 听起来甚
如果我的术语不正确,请给我任何帮助,并原谅我. 从这个问题构建在这里:: 我正在尝试运行一个.sh文件,并且我通过上述问题中的答案来做到这一点,这基本上是 1-将我的文件关联 filename.sh 与 filename.bat filename.bat 看起来像这样: @echo off c: chdir c:\cygwin\bin bash --login %* 这通常适用于我的大多数 *.sh文件,其中一个示例是: #!/bin/bash # Configure bash so the script will exit if a command fails. set -e #this is the DIR i want to copy to DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #this is the DIR i want to copy from DIR2=/cygdr
如果我的术语不正确,请给我任何帮助,并原谅我. 从这个问题构建在这里:: 我正在尝试运行一个.sh文件,并且我通过上述问题中的答案来做到这一点,这基本上是 1-将我的文件关联 filename.sh 与 filename.bat filename.bat 看起来像这样: @echo off c: chdir c:\cygwin\bin bash --login %* 这通常适用于我的大多数 *.sh文件,其中一个示例是: #!/bin/bash # Configure bash so the script will exit if a command fails. set -e #this is the DIR i want to copy to DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #this is the DIR i want to copy from DIR2=/cygdr