标签: powershell

在脚本中更改 NIC 速度/双工设置?

我有一台运行 Windows Server 2003 SP2 并安装了 PowerShell 的笔记本电脑。

有时,该系统必须在需要将 NIC 手动设置为 100 Mbps/全双工才能正常运行的环境中使用。在大多数其他环境中,这需要设置为自动检测以获得最佳性能。

通常,我通过以下程序执行此操作:

  • 右键单击网上邻居,选择属性。
  • 右键单击本地连接,选择属性
  • 单击配置
  • 在 Advanced 选项卡上,选择 Speed & Duplex 属性并将值从 Auto 更改为 100 Mb Full。
  • 完成工作后撤消更改。

有没有办法通过 Batch 或 PowerShell 脚本来做到这一点?我正在做这样的事情:

@ECHO OFF
[Insert 100 Mbps/Full Duplex commands here]
ECHO NIC set to 100 Mbps/Full Duplex
ECHO Press any key to return to Auto-Detect
PAUSE
[Insert Auto-Detect commands here]
ECHO NIC returned to Auto-Detect
ECHO Press any key to exit
PAUSE

有人告诉我,可能有一些方法可以通过 WMIC 或 PowerShell 执行此操作,但我一直无法找到正确的开关、值或语法。

windows script powershell batch

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

PowerShell 中的计划任务属性?

我不确定如何在 PowerShell 中执行此操作,但我认为它不受支持。

例如:

$tasks = schtasks /query 
Run Code Online (Sandbox Code Playgroud)

将所有任务存储到变量中 $tasks

示例输出:

Folder: \Microsoft\Windows\WindowsBackup
TaskName                                 Next Run Time          Status
======================================== ====================== ===============
ConfigNotification                       Disabled
Run Code Online (Sandbox Code Playgroud)

不能轻易引用属性“TaskName”(即$tasks.TaskName

是否有其他方法可以引用$tasks变量中的 TaskName 属性,类似于如何引用 get-service cmdlet 中的属性?

$services = gsv
$services | Where-Object { Write-Output $_.Name }
Run Code Online (Sandbox Code Playgroud)

powershell scheduled-tasks properties

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

Powershell 后台任务

如何在 Powershell 中执行后台任务?

$ ant >/dev/null &        #cygwin
Run Code Online (Sandbox Code Playgroud)

我在 Powershell 中最接近这个的是

ps2> start-job {ant |out-null; `a}   #powershell
Run Code Online (Sandbox Code Playgroud)

但后来我没有得到实时输出,也没有听到哔哔声。我必须用接收作业轮询它,并在标准输出被轮询时发出哔哔声。

powershell

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

Windows Powershell:通过上下文菜单执行命令?

我正在使用 kramdown 将我的 markdown 格式的源文件转换为 html。我一直在使用的命令是:

kramdown %filename | Out-Clipboard
Run Code Online (Sandbox Code Playgroud)

(Out-Clipboard 来自神奇的PSCX。这意味着我格式化的 html 可以立即粘贴到另一个程序或编辑器中)

我很想简化这个过程,并且能够使用上下文菜单项来做同样的事情,而不是每次打开一个 shell 并输入命令。将这些说明传递给 powershell 并将其添加为菜单选项的最佳方法是什么?

powershell context-menu

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

如何使PowerShell别名执行文件?

我想要这个:

Set-Alias pr php \.fileToExecute
Run Code Online (Sandbox Code Playgroud)

以便它在 PHP 中运行文件(取决于我在执行时所在的位置pr)。

powershell command-line

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

如何使用 PowerShell 在桌面上创建快捷方式

我一直在参考这篇文章的第三个答案来编写我的 PowerShell 脚本,但它似乎不起作用。


$linkPath        = Join-Path ([Environment]::GetFolderPath("Desktop")) "My shortcut.lnk"
$targetPath      = Join-Path ([Environment]::GetFolderPath("MyDocuments")) "...\run.exe"
$link            = (New-Object -ComObject WScript.Shell).CreateShortcut($linkPath)
$link.TargetPath = $targetPath
Run Code Online (Sandbox Code Playgroud)

它只打印输出窗格中的代码,但似乎从未完全执行;桌面上没有显示快捷方式。

desktop powershell shortcuts

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

如何使用 Windows 7 中的 Powershell 启动 Windows XP Virtual PC 应用程序?

这是我从 Windows 7 启动的应用程序的快捷方式目标,该应用程序在 Windows XP 模式下启动程序。

%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\VMCPropertyHandler.dll,LaunchVMSal "Windows XP Mode" "||fc9407e9" "wIntegrate"
Run Code Online (Sandbox Code Playgroud)

我似乎无法让 PS Start-process 命令为该目标工作。

我使用的代码:

Start-Process %SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\VMCPropertyHandler.dll,LaunchVMSal "Windows XP Mode" "||fc9407e9" "wIntegrate"
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误:

Start-Process : A positional parameter cannot be found that accepts argument 'Windows XP Mode'.
At C:\Users\username.domain\Desktop\rebootpick.ps1:13 char:14
+ Start-Process <<<<  %SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\VMCPropertyHandler.dll,LaunchVMSal "Windows XP Mode" "||fc9407e9" "wIntegrate"
    + CategoryInfo          : InvalidArgument: (:) [Start-Process], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
Run Code Online (Sandbox Code Playgroud)

有没有人有幸从 Windows 7 的 Powershell 执行 Windows XP Mode 应用程序?

powershell windows-xp-mode powershell-2.0

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

为什么`rd /S` 说“目录不为空”?

我正在尝试rd /S在非空目录上执行,有时它工作正常,有时它报告“目录不为空”。为什么我收到这个错误?有没有一种可靠的方法可以删除 Windows 下充满文件和子目录的文件夹?PowerShellRemove-Item也存在这个问题。

powershell command-line

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

从 Powershell 编辑和查看注册表项

我正在学习 Powershell,并一直在尝试编写一个脚本,将我的驱动器自动映射到特定的网络驱动器。这很容易,但我还希望从 Windows 资源管理器中获得与它们相关联的某些名称。这可以从注册表中完成,但我不知道如何从 Powershell 中完成。我在网上进行了研究,现在我可以使用 gci 和 set-location/cd 像普通驱动器一样在注册表中导航到某个点,但是一旦我到达最后一个文件夹键,我就看不到键中的 DWORD 使用gci了。从regedit,我知道里面有一堆钥匙。我的路径是 HKCU:\software\microsoft\windows\currentversion\explorer\mountpoints2##ComputerName#DriveName

windows-registry windows-7 powershell

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

为什么 ForEach-Object 在作为 foreach 调用时表现不同?

在PowerShell中,foreach并且%是默认的别名ForEach-Object。但是,该命令的行为似乎取决于它的调用方式。

特别是,除非我专门使用foreach别名,否则我很难在不从管道中提供输入的情况下让命令工作。

在此处输入图片说明

我在这里做错了什么,还是出于某种原因设计的?

powershell

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