标签: powershell

通过 PowerShell 将 Hyper-V 内部交换机与主机网络适配器可靠关联

Hyper Get-VMSwitch-V cmdlet 返回具有 NetAdapterInterfaceDescription 属性的 VMSwitch 对象,但这仅针对物理类型的交换机进行填充。

对于内部类型的开关,此属性为空。主机上的虚拟适配器和 VMSwitch 之间唯一明显的关系是名称 - 例如,对于交换机“Foo”,默认适配器名称是“vEthernet (Foo)”。

但是,网络适配器可以重命名。我已经在与开关相关的输出上寻找其他值Get-NetAdapter,但没有取得任何成功。

是否有其他 cmdlet 或 API 可以将内部 Hyper-V 虚拟交换机与主机网络适配器相匹配?

powershell hyper-v windows-server-2012

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

通过脚本更改快捷方式参数

我们这里有一个程序,要求每个用户在桌面上有一个指向 ini 文件的快捷方式。每个文件对于用户来说都是唯一的。最近,我们在单独的服务器上重新安装了该应用程序。我希望能够在客户端计算机上运行一个脚本,该脚本将查看当前的快捷方式,更改服务器名称,然后将其保存到同一位置。

我认为 powershell 为此是必要的。一些效果:

$oldargs = # Pull out the args from the current shortcut using voodoo magic
$args = $oldargs -replace "server1", "server2"
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\app.lnk")
$Shortcut.TargetPath = "%ProgramFiles%\appdir\app.exe"
$Shortcut.Arguments = "$args"
$Shortcut.WorkingDirectory = "%ProgramFiles%\appdir"
$Shortcut.IconLocation = "%ProgramFiles%\appdir\pic.ico"
$Shortcut.Save()
Run Code Online (Sandbox Code Playgroud)

真的,我只是不知道如何从当前的快捷方式参数中提取参数。

scripting windows powershell shortcut application

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

获取 PowerShell 命令输出作为 bat (cmd) 脚本中的变量

我正在尝试在某些 .cmd 文件中获取主机的 FQDN。我们有脱节的 AD 域,所以"@echo %COMPUTERNAME%.%USERDNSDOMAIN%"不起作用。我的意思是它有效,但返回错误的值。

我最终得到的解决方案是 powershell.exe -noninteractive -command[System.Net.Dns]::GetHostByName(($env:computerName)).HostName

它在命令行中工作正常。我试图将它放入我的 cmd 文件中的一个变量中:

FOR /F "tokens=* USEBACKQ" %%F IN (\`powershell.exe -noninteractive -command     
[System.Net.Dns]::GetHostByName(($env:computerName)).HostName\`) DO (
    SET var=%%F
)
ECHO %var%
Run Code Online (Sandbox Code Playgroud)

但是此时出现以下错误: ).HostName`) 是意外的。

我知道应该筛选某些内容,因为 cmd 和 powershell 都在解析这一行,但不知道筛选什么以及如何筛选。如何让这个开始工作?

powershell batch windows-command-prompt variables

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

捕获上周谁都访问了共享文件夹?

在 Windows Server 2012 中,您是否可以检索上周访问、修改或删除共享文件夹的用户的日志(通过 Powershell)?

powershell windows-server-2012

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

导出和导入 - 使用 powershell 的单个 IIS 网站

有没有办法将单个iis网站从一台服务器导出和导入到另一台服务器。

谢谢,桑德什

iis powershell

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

不使用安装向导创建新的 AD LDS 实例?

是否可以安装新的唯一 AD LDS 实例(使用 cmd 或 PowerShell)?我可以在网上找到的所有资源都只需使用 Active Directory 轻型目录服务安装向导。

PowerShell 具有用于处理现有LDS 实例的 Active Directory 模块,但我还没有找到可用于创建 AD LDS 新实例的方法。

scripting powershell active-directory windows-command-prompt ad-lds

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

无法使用 Powershell 连接到正确的 Azure 订阅

我在 Azure 上有很多租户,我使用 Powershell 来管理它们。

我正在连接我的帐户:

Login-AzureRmConnect

Account                     SubscriptionName          TenantId                             Environment
-------                     ----------------          --------                             -----------
XXX@XXXX.XXX                Microsoft Partner Network XXXXX-XXXX-XXXX-XXXX-XXXX            AzureCloud
Run Code Online (Sandbox Code Playgroud)

当我想用有效的 SubscriptionID 更改订阅时,我有以下答案:

Select-AzureRmSubscription -SubscriptionId "XXXX-XXXX-XXXX-XXXXX-XXXXXX"
Select-AzureRmSubscription : Please provide a valid tenant or a valid subscription.
Au caractère Ligne:1 : 1
+ Select-AzureRmSubscription -SubscriptionId "XXXX-XXXX-XXXX-XXXXX-X ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError : (:) [Set-AzureRmContext], ArgumentException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.SetAzureRMContextCommand
Run Code Online (Sandbox Code Playgroud)

当我这样做时Get-AzureRmSubscription:

Get-AzureRmSubscription
AVERTISSEMENT : Unable to acquire token for tenant 'XXXXX-XXXX-XXXX-XXXX-XXXX'
AVERTISSEMENT : Unable to acquire …
Run Code Online (Sandbox Code Playgroud)

powershell azure azure-powershell

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

使用 powershell 在 Windows Server 2019 上安装 IIS 和所需模块的官方方法是什么

我找不到在服务器 2019 上安装和配置 IIS 的明确方法

Add-WindowsFeature
Enable-WindowsOptionalFeature
Install-WindowsFeature
is dism still a thing?
Run Code Online (Sandbox Code Playgroud)

我需要安装带有以下模块的 IIS:

  • asp-net-45
  • 动态压缩
  • 所有管理工具
  • 需要启用远程管理,以便我可以使用 webdeploy 进行部署

我看到了上述所有工具的示例,但似乎有些是错误/过时的

从 2019 年开始,通过脚本安装和配置 IIS 的正确命令/工具是什么?

windows iis powershell windows-server-2019

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

使用导入虚拟机还是新虚拟机复制虚拟机?

我正在编写一个 PowerShell 脚本来克隆现有的 hyper-v 虚拟机/基于模板创建新的虚拟机。我在哪里查看 cmdletExport-VM并Import-VM使用它。但是,cmdletNew-VM也可以选择使用现有的 VHD。只是复制 VHD 并创建一个New-VM更容易吗?它只是 1 个文件,而不是 VHD + 虚拟机文件夹 + 设置新的快照文件夹。(模板没有快照)

使用Import-VMover 有New-VM什么好处?是否有或基于此主要意见?

powershell hyper-v virtual-machines cloning

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

如何在 Windows cmd 中获取正在使用端口的特定进程的会话下的所有进程

我想列出并终止属于使用端口的特定进程的会话的所有进程。这应该通过 Windows 批处理命令来实现,该命令接受端口号作为输入。

例如:假设进程 PA 当前正在侦听端口 8081。PA 运行在会话 S1 下。有进程 PB 和 PC 与 PA 属于同一会话。PB和PC将运行在不同的端口上(它们运行在哪个端口上并不重要)

Windows 命令/批处理文件应以 8081 作为输入并终止进程 PA、PB 和 PC。

这可能吗?感谢对此的一些帮助,因为我不太熟悉批处理命令/脚本。

我失败的尝试:

(for /F "tokens=2" %%i in (for /f "tokens=5" %a in ('netstat -aon ^| findstr 8081') do tasklist /NH /FI "PID eq %a") do taskkill /NH /FI "SESSIONNAME eq %%i")
Run Code Online (Sandbox Code Playgroud)

windows powershell batch-file batch windows-command-prompt

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