powershell改ip脚本
1. 如何利用windows powershell修改ip地址
电脑修改IP的方法
第一步:搜索:双鱼IP转换器
第二步:免费注册账号
第三步:连接你要修改的目的节点
第四步:打开浏览器查询IP是你修改之后的IP
2. 如何用PowerShell设置虚拟机里面的ip地址
假定你的服务器主机名在D盘根目录下一个叫ServerList的csv文件里,代码如下:
$ServerList = Import-Csv D:\ServerList.csv
foreach ($Server in $ServerList)
{
$ServerName = $Server.Name
Write-Host $ServerName
$IP = (Get-WmiObject win32_networkadapterconfiguration -ComputerName $ServerName).ipaddress
Write-Output "$ServerName,$IP" >> D:\ServerIPList.txt
}
注:代码很简略,如果需要其它信息请追问,我尽力回答。
3. 如何使用Powershell脚本检查打印机IP在线
1.要先点击开始 --控制面板 --查看设备和打印机。
2.然后要找到安装的打印机的图标,右键单击打印机属性。
3.然后得选择端口,点击添加端口,选择Standard TCP/IP Port 之后点击新的端口。
4.然后要在显示的窗口中点击下一步。
5.然后输入打印服务器的IP地址,点击下一步。
6.然后要选择自定义并且点击设置按钮。
协议选中LPR ,队列名称为lp1 ,并把启用LPR字节勾选计数之后点击确定。
7.接着点击结束按钮,完成配置。
8.最后点击应用按钮并选中关掉 ,就可以使用打印服务器共享打印机了。(必须得要点击应用才可以生效)
4. windows powershell代码,如果c盘存在b文件夹则将文本文件a中的内容ip=192替换
#说明:由于此脚本涉及服务操作,所以需要以管理员身份运行
#requires-version4.0
#requires–runasadministrator
$d="c:"
$a="a.txt"
if([io.Directory]::Exists($d)){
#在计算机中可能存在多个ip地址
#因此此时ip用数组表示
#同时,在不同的计算机中,ip地址各不相同
#-2表示在ip的数组中倒数第二个地址
#同理,-1表示倒数第一个.-3表示倒数第3个,-n表示倒数第n个,0表示正数第0个,n表示正数第n个
#-2需要根据自己的计算机进行修改
$ip=(Get-NetIPAddress|?AddressFamily-EQ"IPv4").IPAddress
$ip=$ip[-2]
$file=Get-Content$a
$file=$file.Replace("ip=192","ip=$ip")
echo$file>$a
Restart-Service"telnet"
}
5. 怎么ip地址格式批量转换
使用“powershell脚本+正则表达式”就可以实现。
(get-contentd:123.txt)-replace"1.0.0.0.[1-255]","1.0.0.0/24"|out-filed:234.txt
将上面的命令复制到文本文档中,将文本文档的后缀txt改成ps1,右键选择使用powershell运行。
测试环境:windows7,powershell4.0以上
6. 请教大家,利用WMI修改IP,网关,DNS的问题
以下是使用PowerShell处理的脚本
使用方法:
先将自定义Function的代码运行一次.
然后用你希望的内容替换掉""里的说明但保留""并运行命令.
另外在修改远程计算机时会弹出要求输出账户密码的对话框,请输入拥有远程计算机权限的账号和密码.
以下为PowerShell代码
修改本机:
Set-StaticIPAddress -ComputerName LocalHost -IPAddress "设定后的IP地址" -SubnetMask "子网" -DefaultGateway "默认网关" -DNSServers "DNS服务器地址"
修改远程计算机:
Set-StaticIPAddress -ComputerName "要修改的计算机名或者IP地址" -IPAddress "设定后的IP地址" -SubnetMask "子网" -DefaultGateway "默认网关" -DNSServers "DNS服务器地址" -Credential (Get-Credential)
#以下为自定义Function代码
Function Set-StaticIPAddress
{
param
(
[Parameter(Mandatory = $true,
Position = 0,
ValueFromPipeline = $true,
= $true)]
[String] $ComputerName
,
[Parameter(Mandatory = $true,
Position = 1)]
[Alias("IPv4Address")]
[String] $IPAddress
,
[Parameter(Position = 2)]
[String] $SubnetMask = "none"
,
[Parameter(Position = 3)]
[String] $DefaultGateway = "none"
,
[Parameter(Position = 4)]
[String[]] $DNSServers = ("172.16.1.36","172.16.1.78")
,
[Parameter(Position = 5)]
[PSCredential] $Credential
)
process
{
# There's some error-checking here that I've snipped out for convenience
Write-Verbose "Testing connection to $ComputerName"
if (-not (Test-Connection $ComputerName))
{
Write-Error "Unable to connect to $ComputerName."
return
}
Write-Verbose "Obtaining remote WMI reference"
if ($Credential)
{
$wmi = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $ComputerName -Filter "IPEnabled = 'True'" -Credential $Credential
} else {
$wmi = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $ComputerName -Filter "IPEnabled = 'True'"
}
Write-Verbose "Attempting to set DNS servers"
$wmi.SetDNSServerSearchOrder($DNSServers)
Write-Verbose "Attempting to set dynamic DNS registration"
$wmi.SetDynamicDNSRegistration($true)
Write-Verbose "Attempting to set static IP address and subnet mask"
$wmi.EnableStatic($IPAddress, $SubnetMask)
Clear-DnsClientCache #This may not be necessary; I added it as a troubleshooting step
Write-Verbose "Attempting to set default gateway"
$wmi.SetGateways($DefaultGateway, 1)
Write-Output $wmi
}
}
7. win7怎样运行powershell脚本
新版本的PowerShell随着Windows Server 2012 R2到来。现在,使用PowerShell 4.0的唯一途径就是获取并使用Windows Management Framework 4.0。 PowerShell在Windows虚拟化任务方面能发挥最大帮助和用途。现在网上有关于此话题的资料库,最热的是TechNet博客中的一个五部分的系列文章。通过这些信息,你可以找到大量有关PowerShell脚本自动化多虚拟化设置、配置和维护任务的相关细节。 TechNet系列文章提供了运行PowerShell脚本的基础知识 TechNet系列中的内容很好地概述了PowerShell在虚拟化世界里的作用。该系列还概述了图形PowerShell接口,提供了将工作进程ID映射到VM的脚本,介绍使用PowerShell WMI创建虚拟硬盘(VHD)时如何创建脚本,如何获取一台Hyper-V虚拟机的IP地址,如何关闭Hyper-V中的客户虚拟机,以及如何在Hyper-V中创建一个完整的虚拟网络。 只要有足够的时间和热情,你可以利用PowerShell做很多事情。当然,真正的好处在于你可以自动化重复的任务。任务的重复度越高利用率就越高。 CodePlex提供Hyper-V脚本 Windows Server 2012和Windows Server 2012 R2中的可扩展交换机比早期版本容易使用虚拟基础设施。交换机扩展还意味着你可以使用更新和增强功能而不必白费力气做重复工作。 CodePlex PowerShell管理库提供了最好的资料,你可以通过这里的100多条cmdlet找到并连接到VM,观察和操作机器状态,备份或出口VM以及处理VHD文件等等。 Hyper-V有自己的cmdlet集合 图1. Hyper-V PowerShell脚本 Hyper-V 3.0和150条PowerShell cmdlets。你可以使用PowerShell显示可用资源以及如何运行和使用这些脚本,这需要在正常的PowerShell运行环境中输入以下命令:Get-Command –Mole Hyper-V(图1)。 在命令后面附加上-Name *search*就可以得到该条cmdlet的其他细节。*号是通配符,你可以将其替换成想要搜索的字符串,例如add、find等等。Get-Help cmdlet后面可接三种输出类型:-Examples(代码实例)、-Detailed(详细输出)和-Full(所有信息)。因此,Get-Help Add_VMNetworkAdapter -Examples显示的是在虚拟机上添加网络适配器的PowerShell脚本实例。 使用PowerShell访问Hyper-V模块时,你需要提前启动该功能,输入下面的命令: Add-WindowsFeature Hyper-V -IncludeManagementTools 作为管理员,你还必须运行PowerShell控制台与Hyper-V进行互动和管理,所以一定要尽快遵循这些简单的步骤。
8. 如何允许PowerShell执行任意自定义脚本
Windows Powershell的执行权限策略如下:
1、运行gpedit.msc,打开组策略编辑器;
2、找到计算机配置 - 管理模板 - Windows组件 - Windows Powershell;
3、在右侧找到启用脚本执行,将策略设置为“已启用”,选择对应的执行策略,确定;
4、重启计算机。
9. powershell脚本请教
不太明白你说的function指的是哪方面,自定义的函数,还是和cmdlet并列的function。
和cmdlet并列的function,和cmdlet的使用没有区别,就是一个内置的命令,可以用以下命令获取所有的function命令列表:
1Get-Command -CommandType Function
如果你想使用自定义的函数,则分为两步:定义和调用。
定义函数,格式如下。根据Powershell的命令格式,建议自定义函数也采用“动词-名称”的格式。
123function Def-Function {功能代码}
调用函数。直接使用Def-Function函数。
示例如下:
12345function Show-IPAddress {Get-NetIPAddress | `? { $_.IPAddress -match "^10\.*|^192\.*|^172\.*"} | `Select-Object IPAddress}1Show-IPAddress
10. powershell中怎么批量配置可信任IP列表
在PSNet程序集的基础上进行扩展,首先在$env:PSSpace/PSNet/TCPOp下创建脚本文件Invoke-ScanIPPort.ps1,并在$env:PSSpace/PSNet/TCPOp/PSNet.psm1中添加对脚本文件的调用:
复制代码代码如下:
. $env:PSSpace/PSNet/TCPOp/Invoke-ScanIPPort.ps1
首先对后面代码中将会出现的变量进行介绍:
复制代码代码如下:
-StartAddress[扫描的起始IP地址],与-EndAddress配合使用,【此参数必须】
-EndAddress[扫描的结束IP地址],【此参数必须】
-ResolveHost[是否尝试对主机名尝试进行解析]
-ScanPort[是否进行端口扫描],如果要扫描端口此选项必须
-AllPort[是否对所有端口进行扫描],范围为1~65534(注意此选项扫描时间很长建议在选中单个IP的情况下进行使用,并且尽量少使用)
-StartPort[扫描的起始端口端口],与-EndPort配合使用,如果此选项与-Ports选项同时存在则-Port参数失效
-EndPort[扫描的结束端口]
-Ports扫描时默认扫描的端口,如果后续不带参数则仅扫描21,22,23,53,69,71,80,98,110,139,111,389,443,445,1080,1433,2001,2049,
3001,3128,5222,6667,6868,7777,7878,8080,1521,3306,3389,5801,5900,5555,5901如果后续带多个以逗号分割的多个数字则会扫描数字对应的端口,如果只扫描默认的端口,则不需此参数
-TimeOut超时时间,默认值为100ms(毫秒)
此函数的调用方式如下:
复制代码代码如下:
Invoke-ScanIPPort -StartAddress 192.168.10.1 -EndAddress 192.168.10.254#扫描IP段
Invoke-ScanIPPort -StartAddress 192.168.10.1 -EndAddress 192.168.10.254 –ResolveHost#扫描IP段,并尝试解析IP对应主机名
Invoke-ScanIPPort -StartAddress 192.168.10.1 -EndAddress 192.168.10.254 -ResolveHost –ScanPort#扫描IP段,并尝试扫描默认端口
Invoke-ScanIPPort -StartAddress 192.168.10.1 -EndAddress 192.168.10.254 -ResolveHost -ScanPort -TimeOut 50 #扫描IP段,尝试扫描默认端口,端口扫描50ms超时
Invoke-ScanIPPort -StartAddress 192.168.10.1 -EndAddress 192.168.10.254 -ResolveHost -ScanPort -Port 80 #扫描IP段,并尝试扫描80端口
Invoke-ScanIPPort -StartAddress 192.168.10.1 -EndAddress 192.168.10.1 -ResolveHost -ScanPort –AllPort#扫描ip,并尝试扫描所有1~65534之间端口
Invoke-ScanIPPort -StartAddress 192.168.10.1 -EndAddress 192.168.10.254 -ScanPort -StarPort 21 -EndPort 81#扫描IP段之间主机所有21至81之间的端口